[iOS] Tredjepartsappattributionspartners (AAP)
Översikt
För våra kunder som integrerar vårt CMP SDK tillsammans med ett av följande tredjeparts-SDK:er har vi sammanställt det här dokumentet där du hittar individuella guider som visar hur samtycken som samlas in med vårt CMP SDK skickas till dessa SDK:er. Vår CMP är helt kompatibel med TCF v3 och samlar in DMA-samtyckesdata och lagrar den i UserDefaultsVissa av SDK:erna nedan kan hämta dessa data automatiskt, och vissa kräver kod. Se de enskilda användningsfallen nedan.
Följ noggrant ordningen på de olika SDK-anropen. Vårt CMP SDK måste inhämta användarnas samtycke innan någon åtgärd kan vidtas i tredjeparts-SDK:er. 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 skickar de insamlade samtyckena till dessa SDK:er via introspektion/reflektion, eller (b) använder sina 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 samtycksdata, 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, fortsätt till respektive tredjepartsinstruktioner nedan.
AppsFlyer
Detta SDK söker efter TCF-strängar som lagras inuti UserDefaults enhetens område, vilket automatiskt överför samtycken som samlats in på enheten via vårt CMP SDK till AppsFlyer-händelser. För att skicka samtyckesdata till AppsFlyer, följ instruktionerna nedan:
- Initiera AppsFlyer SDK och aktivera TCF-datainsamlingI koden som presenteras i översiktsavsnittet i detta dokument, ersätt delen om tredjepartsinitiering 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 samtyckesdialogrutan i den aktuella sessionen.
- Om det behövs visas en dialogruta för samtycke för att samla in användarens samtyckesval, oavsett om det är att acceptera alla, avvisa alla eller anpassa val.
- Få bekräftelse från CMP:n att användaren har fattat sitt samtyckesbeslut och att uppgifterna är 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()återuppringning för att uppnå detta. - Det sista steget kan utföras på två sätt: (a) du kan följa vår kodstycke från översikten eller (b) du kan ersätta det med AppFlyers
start()metod. I det senare fallet, byt ut linjen inuti vårdidReceiveMessageåteruppringning via raden nedan:
AppsFlyerLib.shared().start()
Justera
Detta SDK hämtar inte samtyckesdata som lagras inuti 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 samtyckesdialogrutan i den aktuella sessionen.
- Om det behövs visas en dialogruta för samtycke för att samla in användarens samtyckesval, oavsett om det är att acceptera alla, avvisa alla eller anpassa val.
- Få bekräftelse från CMP:n att användaren har fattat sitt samtyckesbeslut och att uppgifterna är tillgängliga i
UserDefaults. Det finns olika sätt att göra detta med vårt CMP SDK. I exemplet nedan använder vididReceiveConsent()återuppringning för att illustrera. - Som ett sista steg kan du antingen (a) anropa
updateThirdPartyConsent()metod från vårt CMP SDK, som automatiskt skickar data till AdJusts SDK via introspektion/reflektion eller ersätter 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)
}
Branch
Detta SDK hämtar inte samtyckesdata som lagras inuti UserDefaults området på enheten, så du har två sätt att uppnå detta: (a) automatisk, som hanteras helt av vårt CMP SDK; och (b) manuell, där du använder båda SDK:ernas funktioner för att uppnå detta.
- Initiera grenen med din app-token
- Initiera vårt CMP SDK
- Använd vårt CMP SDK för att automatiskt avgöra om du behöver samtyckesdialogrutan i den aktuella sessionen.
- Om det behövs visas en dialogruta för samtycke för att samla in användarens samtyckesval, oavsett om det är att acceptera alla, avvisa alla eller anpassa val.
- Få bekräftelse från CMP:n att användaren har fattat sitt samtyckesbeslut och att uppgifterna är tillgängliga i
UserDefaults. Det finns olika sätt att göra detta med vårt CMP SDK. I exemplet nedan använder vididReceiveConsent()återuppringning för att illustrera. - Som ett sista steg kan du antingen (a) anropa
updateThirdPartyConsent()metod från vårt CMP SDK, som automatiskt skickar data till AdJusts SDK via introspektion/reflektion eller ersätter 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ängar som lagras inuti UserDefaults enhetens område, vilket automatiskt överför samtycken som samlats in på enheten via vårt CMP SDK till AppsFlyer-händelser. För att skicka 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 samtyckesdialogrutan i den aktuella sessionen.
- Om det behövs visas en dialogruta för samtycke för att samla in användarens samtyckesval, oavsett om det är att acceptera alla, avvisa alla eller anpassa val.
- Få bekräftelse från CMP:n att användaren har fattat sitt samtyckesbeslut och att uppgifterna är 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()återuppringning för att uppnå detta. - Det sista steget kan utföras på två sätt: (a) du kan följa vår kodstycke från översikten eller (b) du kan ersätta det med Kochavas
startWithAppGuid()metod. I det senare fallet, byt ut linjen inuti vårdidReceiveMessageåteruppringning via raden nedan:
Tracker.getInstance().startWithAppGuid(applicationContext, "YOUR_ANDROID_APP_GUID")
Singular
Detta SDK söker efter TCF-strängar som lagras inuti UserDefaults enhetens område, vilket automatiskt överför samtycken som samlats in på enheten via vårt CMP SDK till AppsFlyer-händelser. För att skicka 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 samtyckesdialogrutan i den aktuella sessionen.
- Om det behövs visas en dialogruta för samtycke för att samla in användarens samtyckesval, oavsett om det är att acceptera alla, avvisa alla eller anpassa val.
- Få bekräftelse från CMP:n att användaren har fattat sitt samtyckesbeslut och att uppgifterna är 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()återuppringning för att uppnå detta. - Det sista steget kan utföras på två sätt: (a) du kan följa vår kodstycke från översikten eller (b) du kan ersätta det med Singulars
trackingOptIn()metod. I det senare fallet, byt ut linjen inuti vårdidReceiveMessageåteruppringning via raden nedan:
Singular.trackingOptIn();
AirBridge
Detta SDK söker efter TCF-strängar som lagras inuti UserDefaults enhetens område, vilket automatiskt överför samtycken som samlats in på enheten via vårt CMP SDK till AppsFlyer-händelser. För att skicka 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 samtyckesdialogrutan i den aktuella sessionen.
- Om det behövs visas en dialogruta för samtycke för att samla in användarens samtyckesval, oavsett om det är att acceptera alla, avvisa alla eller anpassa val.
- Få bekräftelse från CMP:n att användaren har fattat sitt samtyckesbeslut och att uppgifterna är 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()återuppringning för att uppnå detta. - Det sista steget kan utföras på två sätt: (a) du kan följa vår kodstycke från översikten eller (b) du kan ersätta det med AirBridges
startTracking()metod. I det senare fallet, byt ut linjen inuti vårdidReceiveMessageåteruppringning via raden nedan:
Airbridge.startTracking()
tenjin
Detta SDK söker efter TCF-strängar som lagras inuti UserDefaults enhetens område, vilket automatiskt överför samtycken som samlats in på enheten via vårt CMP SDK till AppsFlyer-händelser. För att skicka 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 samtyckesdialogrutan i den aktuella sessionen.
- Om det behövs visas en dialogruta för samtycke för att samla in användarens samtyckesval, oavsett om det är att acceptera alla, avvisa alla eller anpassa val.
- Få bekräftelse från CMP:n att användaren har fattat sitt samtyckesbeslut och att uppgifterna är 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()återuppringning för att uppnå detta. - Det sista steget kan utföras på två sätt: (a) du kan följa vår kodbit från översikten eller (b) du kan ersätta den med Tenjin
optIn()/optOut()metoder.







