[iOS] App-attributiepartners van derden (AAP's)
Overzicht
Voor onze klanten die onze CMP SDK integreren met een van de volgende SDK's van derden, hebben we dit document samengesteld. Hierin vindt u individuele handleidingen die laten zien hoe toestemmingen die met onze CMP SDK zijn verzameld, aan deze SDK's worden doorgegeven. Ons CMP is volledig compatibel met TCF v3 en verzamelt DMA-toestemmingsgegevens en slaat deze op in UserDefaultsSommige van de onderstaande SDK's kunnen deze gegevens automatisch ophalen, terwijl andere code vereisen. Bekijk hieronder de individuele use cases.
Volg strikt de volgorde van de verschillende SDK-aanroepen. Onze CMP SDK moet toestemming van gebruikers verzamelen voordat er welke actie dan ook wordt uitgevoerd in de SDK's van derden hieronder.
Bij sommige SDK's van aanbieders zoals AppsFlyer, AdJust en branch moet u (a) onze updateThirdPartyConsent() Methode, die de verzamelde toestemmingen automatisch doorgeeft aan deze SDK's via introspectie/reflectie, of (b) hun eigen methoden en eigenschappen gebruikt om dit handmatig te doen. Als u onze CMP SDK gebruikt om de doorgifte van de toestemmingsgegevens automatisch af te handelen, volgt hier een implementatievoorbeeld:
@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)")
}
}
Voor meer informatie kunt u hieronder de desbetreffende instructies van derden raadplegen.
AppsFlyer
Deze SDK zoekt naar TCF-tekenreeksen die zijn opgeslagen in de UserDefaults gebied van het apparaat, waardoor de toestemmingen die op het apparaat zijn verzameld via onze CMP SDK automatisch worden doorgegeven aan AppsFlyer-gebeurtenissen. Volg de onderstaande instructies om toestemmingsgegevens door te geven aan AppsFlyer:
- Initialiseer de AppsFlyer SDK en TCF-gegevensverzameling inschakelenVervang in de code in het gedeelte Overzicht van dit document het initialisatiegedeelte van derden door:
AppsFlyerLib.shared().waitForATTUserAuthorization(timeoutInterval: 60)
AppsFlyerLib.shared().enableTCFDataCollection(true)
- Initialiseer onze CMP SDK
- Gebruik onze CMP SDK om automatisch te bepalen of u het toestemmingsdialoogvenster nodig hebt in de huidige sessie.
- Indien nodig wordt een toestemmingsdialoogvenster weergegeven om de toestemmingskeuzes van de gebruiker vast te leggen: alles accepteren, alles afwijzen of keuzes aanpassen.
- Ontvang een bevestiging van de CMP dat de gebruiker zijn toestemmingsbeslissing heeft genomen en dat de gegevens beschikbaar zijn in
UserDefaults. Er zijn verschillende manieren om dit te doen met onze CMP SDK. In het voorbeeld in het overzicht gebruiken we dedidReceiveConsent()callback om dit te bereiken. - De laatste stap kan op twee manieren worden uitgevoerd: (a) u kunt ons codefragment uit het overzicht volgen of (b) u kunt het vervangen door AppFlyer's
start()methode. In het laatste geval vervangt u de regel binnen onzedidReceiveMessagecallback door de onderstaande regel:
AppsFlyerLib.shared().start()
Aanpassen
Deze SDK haalt geen toestemmingsgegevens op die zijn opgeslagen in de UserDefaults gebied van het apparaat, dus u kunt dit op twee manieren bereiken: (a) automatisch, wat volledig wordt afgehandeld door onze CMP SDK; en (b) handmatig, waarbij u beide SDK-functies gebruikt om dit te bereiken. Volg de onderstaande instructies:
- Initialiseer de AdJust SDK
- Initialiseer onze CMP SDK
- Gebruik onze CMP SDK om automatisch te bepalen of u het toestemmingsdialoogvenster nodig hebt in de huidige sessie.
- Indien nodig wordt een toestemmingsdialoogvenster weergegeven om de toestemmingskeuzes van de gebruiker vast te leggen: alles accepteren, alles afwijzen of keuzes aanpassen.
- Ontvang een bevestiging van de CMP dat de gebruiker zijn toestemmingsbeslissing heeft genomen en dat de gegevens beschikbaar zijn in
UserDefaults. Er zijn verschillende manieren om dit te doen met onze CMP SDK. In het onderstaande voorbeeld gebruiken we dedidReceiveConsent()terugbellen ter illustratie. - Als laatste stap kunt u (a) een beroep doen op de
updateThirdPartyConsent()methode van onze CMP SDK, die de gegevens automatisch doorgeeft aan de SDK van AdJust via introspectie/reflectie of deze vervangt door de onderstaande code:
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)
}
Tak
Deze SDK haalt geen toestemmingsgegevens op die zijn opgeslagen in de UserDefaults gebied van het apparaat, dus u hebt twee manieren om deze prestatie te bereiken: (a) automatisch, wat volledig wordt afgehandeld door onze CMP SDK; en (b) handmatig, waarbij u beide SDK-functies gebruikt om dit te bereiken.
- Initialiseer Branch met behulp van uw app-token
- Initialiseer onze CMP SDK
- Gebruik onze CMP SDK om automatisch te bepalen of u het toestemmingsdialoogvenster nodig hebt in de huidige sessie.
- Indien nodig wordt een toestemmingsdialoogvenster weergegeven om de toestemmingskeuzes van de gebruiker vast te leggen: alles accepteren, alles afwijzen of keuzes aanpassen.
- Ontvang een bevestiging van de CMP dat de gebruiker zijn toestemmingsbeslissing heeft genomen en dat de gegevens beschikbaar zijn in
UserDefaults. Er zijn verschillende manieren om dit te doen met onze CMP SDK. In het onderstaande voorbeeld gebruiken we dedidReceiveConsent()terugbellen ter illustratie. - Als laatste stap kunt u (a) een beroep doen op de
updateThirdPartyConsent()methode van onze CMP SDK, die de gegevens automatisch doorgeeft aan de SDK van AdJust via introspectie/reflectie of deze vervangt door de onderstaande code:
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
Deze SDK zoekt naar TCF-tekenreeksen die zijn opgeslagen in de UserDefaults gebied van het apparaat, waardoor de toestemmingen die op het apparaat zijn verzameld via onze CMP SDK automatisch worden doorgegeven aan AppsFlyer-gebeurtenissen. Volg de onderstaande instructies om toestemmingsgegevens door te geven aan AppsFlyer:
- Initialiseer de Kochava SDK
- Initialiseer onze CMP SDK
- Gebruik onze CMP SDK om automatisch te bepalen of u het toestemmingsdialoogvenster nodig hebt in de huidige sessie.
- Indien nodig wordt een toestemmingsdialoogvenster weergegeven om de toestemmingskeuzes van de gebruiker vast te leggen: alles accepteren, alles afwijzen of keuzes aanpassen.
- Ontvang een bevestiging van de CMP dat de gebruiker zijn toestemmingsbeslissing heeft genomen en dat de gegevens beschikbaar zijn in
UserDefaults. Er zijn verschillende manieren om dit te doen met onze CMP SDK. In het voorbeeld in het overzicht gebruiken we dedidReceiveConsent()callback om dit te bereiken. - De laatste stap kan op twee manieren worden uitgevoerd: (a) u kunt ons codefragment uit het overzicht volgen of (b) u kunt het vervangen door Kochava's
startWithAppGuid()methode. In het laatste geval vervangt u de regel binnen onzedidReceiveMessagecallback door de onderstaande regel:
Tracker.getInstance().startWithAppGuid(applicationContext, "YOUR_ANDROID_APP_GUID")
Enkelvoud
Deze SDK zoekt naar TCF-tekenreeksen die zijn opgeslagen in de UserDefaults gebied van het apparaat, waardoor de toestemmingen die op het apparaat zijn verzameld via onze CMP SDK automatisch worden doorgegeven aan AppsFlyer-gebeurtenissen. Volg de onderstaande instructies om toestemmingsgegevens door te geven aan AppsFlyer:
- Initialiseer de Singular SDK
- Initialiseer onze CMP SDK
- Gebruik onze CMP SDK om automatisch te bepalen of u het toestemmingsdialoogvenster nodig hebt in de huidige sessie.
- Indien nodig wordt een toestemmingsdialoogvenster weergegeven om de toestemmingskeuzes van de gebruiker vast te leggen: alles accepteren, alles afwijzen of keuzes aanpassen.
- Ontvang een bevestiging van de CMP dat de gebruiker zijn toestemmingsbeslissing heeft genomen en dat de gegevens beschikbaar zijn in
UserDefaults. Er zijn verschillende manieren om dit te doen met onze CMP SDK. In het voorbeeld in het overzicht gebruiken we dedidReceiveConsent()callback om dit te bereiken. - De laatste stap kan op twee manieren worden uitgevoerd: (a) u kunt ons codefragment uit het overzicht volgen of (b) u kunt het vervangen door Singular's
trackingOptIn()methode. In het laatste geval vervangt u de regel binnen onzedidReceiveMessagecallback door de onderstaande regel:
Singular.trackingOptIn();
Lucht brug
Deze SDK zoekt naar TCF-tekenreeksen die zijn opgeslagen in de UserDefaults gebied van het apparaat, waardoor de toestemmingen die op het apparaat zijn verzameld via onze CMP SDK automatisch worden doorgegeven aan AppsFlyer-gebeurtenissen. Volg de onderstaande instructies om toestemmingsgegevens door te geven aan AppsFlyer:
- Initialiseer de AirBridge SDK
- Initialiseer onze CMP SDK
- Gebruik onze CMP SDK om automatisch te bepalen of u het toestemmingsdialoogvenster nodig hebt in de huidige sessie.
- Indien nodig wordt een toestemmingsdialoogvenster weergegeven om de toestemmingskeuzes van de gebruiker vast te leggen: alles accepteren, alles afwijzen of keuzes aanpassen.
- Ontvang een bevestiging van de CMP dat de gebruiker zijn toestemmingsbeslissing heeft genomen en dat de gegevens beschikbaar zijn in
UserDefaults. Er zijn verschillende manieren om dit te doen met onze CMP SDK. In het voorbeeld in het overzicht gebruiken we dedidReceiveConsent()callback om dit te bereiken. - De laatste stap kan op twee manieren worden uitgevoerd: (a) u kunt ons codefragment uit het overzicht volgen of (b) u kunt het vervangen door AirBridge's
startTracking()methode. In het laatste geval vervangt u de regel binnen onzedidReceiveMessagecallback door de onderstaande regel:
Airbridge.startTracking()
tenjin
Deze SDK zoekt naar TCF-tekenreeksen die zijn opgeslagen in de UserDefaults gebied van het apparaat, waardoor de toestemmingen die op het apparaat zijn verzameld via onze CMP SDK automatisch worden doorgegeven aan AppsFlyer-gebeurtenissen. Volg de onderstaande instructies om toestemmingsgegevens door te geven aan AppsFlyer:
- Initialiseer de Tenjin SDK
- Initialiseer onze CMP SDK
- Gebruik onze CMP SDK om automatisch te bepalen of u het toestemmingsdialoogvenster nodig hebt in de huidige sessie.
- Indien nodig wordt een toestemmingsdialoogvenster weergegeven om de toestemmingskeuzes van de gebruiker vast te leggen: alles accepteren, alles afwijzen of keuzes aanpassen.
- Ontvang een bevestiging van de CMP dat de gebruiker zijn toestemmingsbeslissing heeft genomen en dat de gegevens beschikbaar zijn in
UserDefaults. Er zijn verschillende manieren om dit te doen met onze CMP SDK. In het voorbeeld in het overzicht gebruiken we dedidReceiveConsent()callback om dit te bereiken. - De laatste stap kan op twee manieren worden uitgevoerd: (a) u kunt ons codefragment uit het overzicht volgen of (b) u kunt het vervangen door Tenjin
optIn()/optOut()methoden.







