Översikt
För våra kunder som integrerar vårt CMP SDK tillsammans med något av följande SDK från tredje part har vi sammanställt detta dokument där du hittar enskilda guider som visar hur samtycken som samlats in med vårt CMP SDK överförs till dessa SDK. Vår CMP är fullt kompatibel med TCF v2.2 och samlar in DMA-samtyckesdata och lagrar den i UserDefaults. Vissa av SDK:erna nedan kan hämta dessa data automatiskt, medan andra kräver kod. Se nedan för de enskilda användningsfallen.
Följ noggrant ordningen på de olika SDK-anropen. Vår CMP-SDK måste inhämta användarnas samtycke innan någon åtgärd alls utförs i de tredjeparts-SDK:er som anges nedan.
På vissa SDK:er från leverantörer som AppsFlyer, AdJust och Branch måste du antingen (a) anropa vår updateThirdPartyConsent() metod, som automatiskt vidarebefordrar de insamlade samtyckena till dessa SDK:er via introspektion/reflektion, eller (b) använda deras egna metoder och egenskaper för att göra det manuellt. Om du använder vårt CMP SDK för att automatiskt hantera överföringen av samtyckesdata, här är ett exempel på implementering:
@main
class AppDelegate: UIResponder, UIApplicationDelegate, CMPManagerDelegate {
var window: UIWindow?
var cmpManager: CMPManager!
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Initialize your third-party SDK. Replace the code below by your respective third-party init code
// according to the instructions along this document
let yourClientToken = "YOUR-CLIENT-TOKEN"
let yourThirdPartySdk = YourThirdPartySdk.shared()
yourThirdPartySdk.initialize(withToken: yourClientToken)
// Initializing our CMP SDK
let urlConfig = UrlConfig(
id: "YOUR_CODE_ID_HERE",
domain: "delivery.consentmanager.net",
language: "EN",
appName: "CMDemoAppSwift"
)
let webViewConfig = ConsentLayerUIConfig()
cmpManager = CMPManager.shared
cmpManager.delegate = self
cmpManager.setUrlConfig(urlConfig)
cmpManager.setWebViewConfig(webViewConfig)
// Set the root view controller for consent UI presentation
if let rootViewController = window?.rootViewController {
cmpManager.setPresentingViewController(rootViewController)
}
// Here our CMP SDK will automatically display the consent layer if there is no consent
// or the consent is expired. The didReceiveConsent() callback below will be triggered
// once user consent is collected, which happens right after the users accepts/rejects
// and all IAB TCF data is persisted to the UserDefaults area
checkAndOpenConsent()
return true
}
func checkAndOpenConsent() {
cmpManager.checkAndOpen { error in
if let error = error {
print("Error checking consent: (error.localizedDescription)")
}
}
}
// MARK: - CMPManagerDelegate Methods
func didReceiveConsent(consent: String, jsonObject: [String: Any]) {
print("CMP DemoApp: Consent Layer successfully received consent message.")
// Here we'll automatically handle the passing of the consent from our
// CMP SDK to the 3P SDK
let results = cmpManager.updateThirdPartyConsent()
print("Third-party consent update results: (results)")
}
}
För mer information, gå vidare till respektive tredjepartsinstruktioner nedan.
AppsFlyer
Detta SDK söker efter TCF-strängen som lagras i UserDefaults området på enheten och tillhandahåller automatisk överföring av de samtycken som samlats in på enheten via vårt CMP SDK till AppsFlyer-händelser. För att överföra samtyckesdata till AppsFlyer, följ instruktionerna nedan:
- Initiera AppsFlyer SDK och aktivera TCF-datainsamling. I koden som presenteras i avsnittet Översikt i detta dokument ska du ersätta initialiseringsdelen för tredjepart med:
AppsFlyerLib.shared().waitForATTUserAuthorization(timeoutInterval: 60)
AppsFlyerLib.shared().enableTCFDataCollection(true)
- Initiera vårt CMP SDK
- Använd vårt CMP SDK för att automatiskt avgöra om du behöver samtyckesdialogen i den aktuella sessionen.
- Vid behov visas en samtyckesdialog för att registrera användarens val, oavsett om det är att acceptera allt, avvisa allt eller anpassa valen.
- Få bekräftelse från CMP om att användaren har gett sitt samtycke och att uppgifterna finns tillgängliga i
UserDefaults. Det finns olika sätt att göra detta med vårt CMP SDK. I exemplet i översikten använder vididReceiveConsent()callback för att uppnå detta. - Det sista steget kan utföras på två sätt: (a) du kan följa vår kodsnutt från översikten eller (b) du kan ersätta den med AppFlyers
start()metod. I det senare fallet ersätter du raden inuti vårdidReceiveMessagecallback med raden nedan:
AppsFlyerLib.shared().start()
AdJust
Detta SDK hämtar inte samtyckesdata som lagras i UserDefaults enhetens område, så du har två sätt att uppnå detta: (a) automatiskt, vilket hanteras helt av vårt CMP-SDK; och (b) manuellt, där du använder båda SDK:ernas funktioner för att uppnå detta. Följ instruktionerna nedan:
- Initiera AdJust SDK
- Initiera vårt CMP SDK
- Använd vårt CMP SDK för att automatiskt avgöra om du behöver samtyckesdialogen i den aktuella sessionen.
- Vid behov visas en samtyckesdialog för att registrera användarens val, oavsett om det är att acceptera allt, avvisa allt eller anpassa valen.
- Få bekräftelse från CMP om att användaren har gett sitt samtycke och att uppgifterna finns tillgängliga i
UserDefaults. Det finns olika sätt att göra detta med vårt CMP SDK. I exemplet nedan använder vididReceiveConsent()callback för att illustrera. - Som ett sista steg kan du antingen (a) anropa
updateThirdPartyConsent()metoden från vårt CMP SDK, vilket automatiskt skickar data till AdJusts SDK via introspektion/reflektion, eller ersätta den med koden nedan:
func didReceiveConsent(consent: String, jsonObject: [String: Any]) {
print("CMP DemoApp: Consent Layer successfully received consent message.")
// Retrieve Google Consent Mode data...
let consentData = cmpManager.getGoogleConsentModeStatus()
// ... and parse it to pass to Adjust SDK
let adStorageConsent = consentData["ad_storage"] == "granted" ? "1" : "0"
let adPersonalizationConsent = consentData["ad_personalization"] == "granted" ? "1" : "0"
let adjustThirdPartySharing = ADJThirdPartySharing(isEnabled: true)
adjustThirdPartySharing?.addGranularOption("google_dma", key: "eea", value: "1")
adjustThirdPartySharing?.addGranularOption("google_dma", key: "ad_personalization", value: adPersonalizationConsent)
adjustThirdPartySharing?.addGranularOption("google_dma", key: "ad_user_data", value: adStorageConsent)
Adjust.trackThirdPartySharing(adjustThirdPartySharing)
}
Bransch
Detta SDK hämtar inte samtyckesdata som lagras i UserDefaults enhetens område, så du har två sätt att uppnå detta: (a) automatiskt, vilket hanteras helt av vårt CMP-SDK; och (b) manuellt, där du använder båda SDK:ernas funktioner för att uppnå detta.
- Initiera Branch med hjälp av din app-token
- Initiera vårt CMP SDK
- Använd vårt CMP SDK för att automatiskt avgöra om du behöver samtyckesdialogen i den aktuella sessionen.
- Vid behov visas en samtyckesdialog för att registrera användarens val, oavsett om det är att acceptera allt, avvisa allt eller anpassa valen.
- Få bekräftelse från CMP:n om att användaren har gett sitt samtycke och att uppgifterna finns tillgängliga i
UserDefaults. Det finns olika sätt att göra detta med vårt CMP SDK. I exemplet nedan använder vididReceiveConsent()callback för att illustrera. - Som ett sista steg kan du antingen (a) anropa
updateThirdPartyConsent()metoden från vårt CMP SDK, vilket automatiskt skickar data till AdJusts SDK via introspektion/reflektion, eller ersätta den med koden nedan:
override fun didReceiveConsent(consent: String, jsonObject: Map<String, Any>) {
Log.d("CMP DemoApp", "Consent Layer successfully received consent message.")
// Retrieve Google Consent Mode data...
val consentData = cmpManager.getGoogleConsentModeStatus();
// ... and parse it to pass to AdJust SDK
val adStorageConsent = consentSettings["ad_storage"] == "granted"
val adPersonalizationConsent = consentSettings["ad_personalization"] == "granted"
// Example for an EEA resident
Branch.getInstance().setDMAParamsForEEA(true,adPersonalizationConsent,adStorageConsent)
// Example for an non-EEA resident
Branch.getInstance().setDMAParamsForEEA(false,adPersonalizationConsent,adStorageConsent)
// For further information, check:
// https://help.branch.io/developers-hub/docs/ios-advanced-features#user-data
}
Kochava
Detta SDK söker efter TCF-strängen som lagras i UserDefaults området på enheten och tillhandahåller automatisk överföring av de samtycken som samlats in på enheten via vårt CMP SDK till AppsFlyer-händelser. För att överföra samtyckesdata till AppsFlyer, följ instruktionerna nedan:
- Initiera Kochava SDK
- Initiera vårt CMP SDK
- Använd vårt CMP SDK för att automatiskt avgöra om du behöver samtyckesdialogen i den aktuella sessionen.
- Vid behov visas en samtyckesdialog för att registrera användarens val, oavsett om det är att acceptera allt, avvisa allt eller anpassa valen.
- Få bekräftelse från CMP om att användaren har gett sitt samtycke och att uppgifterna finns tillgängliga i
UserDefaults. Det finns olika sätt att göra detta med vårt CMP SDK. I exemplet i översikten använder vididReceiveConsent()callback för att uppnå detta. - Det sista steget kan utföras på två sätt: (a) du kan följa vår kodsnutt från översikten eller (b) du kan ersätta den med Kochavas
startWithAppGuid()metod. I det senare fallet ersätter du raden inuti vårdidReceiveMessagecallback med raden nedan:
Tracker.getInstance().startWithAppGuid(applicationContext, "YOUR_ANDROID_APP_GUID")
Singular
Detta SDK söker efter TCF-strängen som lagras i UserDefaults området på enheten och tillhandahåller automatisk överföring av de samtycken som samlats in på enheten via vårt CMP SDK till AppsFlyer-händelser. För att överföra samtyckesdata till AppsFlyer, följ instruktionerna nedan:
- Initiera Singular SDK
- Initiera vårt CMP SDK
- Använd vårt CMP SDK för att automatiskt avgöra om du behöver samtyckesdialogen i den aktuella sessionen.
- Vid behov visas en samtyckesdialog för att registrera användarens val, oavsett om det är att godkänna allt, avvisa allt eller anpassa valen.
- Få bekräftelse från CMP om att användaren har gett sitt samtycke och att uppgifterna finns tillgängliga i
UserDefaults. Det finns olika sätt att göra detta med vårt CMP SDK. I exemplet i översikten använder vididReceiveConsent()callback för att uppnå detta. - Det sista steget kan utföras på två sätt: (a) du kan följa vår kodsnutt från översikten eller (b) du kan ersätta den med Singulars
trackingOptIn()metod. I det senare fallet ersätter du raden inuti vårdidReceiveMessagecallback med raden nedan:
Singular.trackingOptIn();
AirBridge
Detta SDK söker efter TCF-strängen som lagras i UserDefaults området på enheten och tillhandahåller automatisk överföring av de samtycken som samlats in på enheten via vårt CMP SDK till AppsFlyer-händelser. För att överföra samtyckesdata till AppsFlyer, följ instruktionerna nedan:
- Initiera AirBridge SDK
- Initiera vårt CMP SDK
- Använd vårt CMP SDK för att automatiskt avgöra om du behöver samtyckesdialogen i den aktuella sessionen.
- Vid behov visas en samtyckesdialog för att registrera användarens val, oavsett om det är att acceptera allt, avvisa allt eller anpassa valen.
- Få bekräftelse från CMP om att användaren har gett sitt samtycke och att uppgifterna finns tillgängliga i
UserDefaults. Det finns olika sätt att göra detta med vårt CMP SDK. I exemplet i översikten använder vididReceiveConsent()callback för att uppnå detta. - Det sista steget kan utföras på två sätt: (a) du kan följa vår kodsnutt från översikten eller (b) du kan ersätta den med AirBridges
startTracking()metod. I det senare fallet ersätter du raden inuti vårdidReceiveMessagecallback med raden nedan:
Airbridge.startTracking()
Tenjin
Detta SDK söker efter TCF-strängen som lagras i UserDefaults området på enheten och tillhandahåller automatisk överföring av de samtycken som samlats in på enheten via vårt CMP SDK till AppsFlyer-händelser. För att överföra samtyckesdata till AppsFlyer, följ instruktionerna nedan:
- Initiera Tenjin SDK
- Initiera vårt CMP SDK
- Använd vårt CMP SDK för att automatiskt avgöra om du behöver samtyckesdialogen i den aktuella sessionen.
- Vid behov visas en samtyckesdialog för att registrera användarens val, oavsett om det är att acceptera allt, avvisa allt eller anpassa valen.
- Få bekräftelse från CMP om att användaren har gett sitt samtycke och att uppgifterna finns tillgängliga i
UserDefaults. Det finns olika sätt att göra detta med vårt CMP SDK. I exemplet i översikten använder vididReceiveConsent()callback för att uppnå detta. - Det sista steget kan utföras på två sätt: (a) du kan följa vår kodsnutt från översikten eller (b) du kan ersätta den med Tenjins
optIn()/optOut()metoder.