[iOS] Partenaires d'attribution d'applications tierces (AAP)

Aperçu

Pour nos clients qui intègrent notre SDK CMP avec l'un des SDK tiers suivants, nous avons rédigé ce document dans lequel vous trouverez des guides individuels qui vous montreront comment les consentements recueillis à l'aide de notre SDK CMP sont transmis à ces SDK. Notre CMP est entièrement compatible avec la version 2.2 de la TCF ; il collecte les données de consentement DMA et les stocke dans UserDefaults. Certains des SDK ci-dessous peuvent récupérer ces données automatiquement, tandis que d'autres nécessitent l'ajout de code. Veuillez consulter ci-dessous les cas d'utilisation individuels.  

Respectez strictement l'ordre des différents appels aux SDK. Notre SDK CMP doit obtenir le consentement des utilisateurs avant de déclencher la moindre action dans les SDK tiers ci-dessous.

Sur certains SDK de fournisseurs tels qu'AppsFlyer, AdJust et Branch, vous devrez soit (a) invoquer notre updateThirdPartyConsent() méthode, qui transmettra automatiquement les consentements collectés à ces SDK via l'introspection/la réflexion, soit (b) utiliser leurs propres méthodes et propriétés pour le faire manuellement. Si vous utilisez notre SDK CMP pour gérer automatiquement le transfert des données de consentement, voici un exemple d'implémentation : 

@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)")
    }
}

Pour plus d'informations, consultez les instructions des tiers concernées ci-dessous.

AppsFlyer

Ce SDK recherche la chaîne TCF stockée dans la UserDefaults zone de l'appareil, assurant un flux automatique des consentements collectés sur l'appareil via notre SDK CMP vers les événements AppsFlyer. Afin de transmettre les données de consentement à AppsFlyer, veuillez suivre les instructions ci-dessous :

  • Initialisez le SDK AppsFlyer et activez la collecte de données TCF. Dans le code présenté dans la section « Aperçu » de ce document, remplacez la partie relative à l'initialisation des tiers par :
	AppsFlyerLib.shared().waitForATTUserAuthorization(timeoutInterval: 60)
    AppsFlyerLib.shared().enableTCFDataCollection(true)
  1. Initialisez notre SDK CMP
  2. Utilisez notre SDK CMP pour déterminer automatiquement si la boîte de dialogue de consentement est nécessaire dans la session en cours.
  3. Si nécessaire, une boîte de dialogue de consentement s'affichera pour recueillir les choix de l'utilisateur, qu'il s'agisse d'accepter tout, de tout refuser ou de personnaliser ses choix.
  4. Obtenez la confirmation du CMP que l'utilisateur a donné son consentement et que les données sont disponibles UserDefaults. Il existe différentes façons de procéder avec notre SDK CMP. Dans l'exemple de la présentation, nous utilisons le didReceiveConsent() callback pour y parvenir. 
  5. La dernière étape peut être réalisée de deux façons : (a) vous pouvez suivre notre extrait de code issu de la présentation ou (b) vous pouvez le remplacer par la méthode d'AppFlyer start() . Dans ce dernier cas, remplacez la ligne à l'intérieur de notre didReceiveMessage callback par la ligne ci-dessous : 
	AppsFlyerLib.shared().start()

AdJust

Ce SDK ne récupère pas les données de consentement stockées dans la UserDefaults de l'appareil ; vous disposez donc de deux méthodes pour y parvenir : (a) la méthode automatique, qui sera entièrement gérée par notre SDK CMP ; et (b) la méthode manuelle, où vous utiliserez les fonctionnalités des deux SDK pour y parvenir. Veuillez suivre les instructions ci-dessous : 

  1. Initialisez le SDK AdJust 
  2. Initialisez notre SDK CMP
  3. Utilisez notre SDK CMP pour déterminer automatiquement si la boîte de dialogue de consentement est nécessaire dans la session en cours.
  4. Si nécessaire, une boîte de dialogue de consentement s'affichera pour recueillir les choix de l'utilisateur, qu'il s'agisse d'accepter tout, de tout refuser ou de personnaliser ses choix.
  5. Obtenez la confirmation de la part du CMP que l'utilisateur a donné son consentement et que les données sont disponibles UserDefaults. Il existe différentes façons de procéder avec notre SDK CMP. Dans l'exemple ci-dessous, nous utilisons le didReceiveConsent() callback à titre d'illustration. 
  6. En dernière étape, vous pouvez soit (a) invoquer la updateThirdPartyConsent() de notre SDK CMP, qui transmettra automatiquement les données au SDK d'AdJust via l'introspection/la réflexion, soit la remplacer par le code ci-dessous : 
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)
}

Branche

Ce SDK ne récupère pas les données de consentement stockées dans la UserDefaults de l'appareil ; vous disposez donc de deux méthodes pour y parvenir : (a) la méthode automatique, qui sera entièrement gérée par notre SDK CMP ; et (b) la méthode manuelle, où vous utiliserez les fonctionnalités des deux SDK pour y parvenir. 

  1. Initialisez Branch à l'aide du jeton de votre application
  2. Initialisez notre SDK CMP
  3. Utilisez notre SDK CMP pour déterminer automatiquement si la boîte de dialogue de consentement est nécessaire dans la session en cours.
  4. Si nécessaire, une boîte de dialogue de consentement s'affichera pour recueillir les choix de l'utilisateur, qu'il s'agisse d'accepter tout, de tout refuser ou de personnaliser ses choix.
  5. Obtenez la confirmation du CMP que l'utilisateur a donné son consentement et que les données sont disponibles UserDefaults. Il existe différentes façons de procéder avec notre SDK CMP. Dans l'exemple ci-dessous, nous utilisons le didReceiveConsent() callback à titre d'illustration. 
  6. En dernière étape, vous pouvez soit (a) invoquer la updateThirdPartyConsent() de notre SDK CMP, qui transmettra automatiquement les données au SDK d'AdJust via l'introspection/la réflexion, soit la remplacer par le code ci-dessous : 
      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

Ce SDK recherche la chaîne TCF stockée dans la UserDefaults zone de l'appareil, assurant un flux automatique des consentements collectés sur l'appareil via notre SDK CMP vers les événements AppsFlyer. Afin de transmettre les données de consentement à AppsFlyer, veuillez suivre les instructions ci-dessous :

  1. Initialisez le SDK Kochava 
  2. Initialisez notre SDK CMP
  3. Utilisez notre SDK CMP pour déterminer automatiquement si la boîte de dialogue de consentement est nécessaire dans la session en cours.
  4. Si nécessaire, une boîte de dialogue de consentement s'affichera pour recueillir les choix de l'utilisateur, qu'il s'agisse d'accepter tout, de tout refuser ou de personnaliser ses choix.
  5. Obtenez la confirmation du CMP que l'utilisateur a donné son consentement et que les données sont disponibles UserDefaults. Il existe différentes façons de procéder avec notre SDK CMP. Dans l'exemple de la présentation, nous utilisons le didReceiveConsent() callback pour y parvenir. 
  6. La dernière étape peut être réalisée de deux façons : (a) vous pouvez suivre notre extrait de code figurant dans l'aperçu ou (b) vous pouvez le remplacer par la méthode de Kochava startWithAppGuid() . Dans ce dernier cas, remplacez la ligne à l'intérieur de notre didReceiveMessage callback par la ligne ci-dessous : 
	Tracker.getInstance().startWithAppGuid(applicationContext, "YOUR_ANDROID_APP_GUID")	

Singulier

Ce SDK recherche la chaîne TCF stockée dans la UserDefaults zone de l'appareil, assurant un flux automatique des consentements collectés sur l'appareil via notre SDK CMP vers les événements AppsFlyer. Afin de transmettre les données de consentement à AppsFlyer, veuillez suivre les instructions ci-dessous :

  1. Initialisez le SDK Singular 
  2. Initialisez notre SDK CMP
  3. Utilisez notre SDK CMP pour déterminer automatiquement si la boîte de dialogue de consentement est nécessaire dans la session en cours.
  4. Si nécessaire, une boîte de dialogue de consentement s'affichera pour recueillir les choix de l'utilisateur, qu'il s'agisse d'accepter tout, de tout refuser ou de personnaliser ses choix.
  5. Obtenez la confirmation du CMP que l'utilisateur a donné son consentement et que les données sont disponibles UserDefaults. Il existe différentes façons de procéder avec notre SDK CMP. Dans l'exemple de la présentation, nous utilisons le didReceiveConsent() callback pour y parvenir. 
  6. La dernière étape peut être réalisée de deux façons : (a) vous pouvez suivre notre extrait de code issu de la présentation générale ou (b) vous pouvez le remplacer par la méthode de Singular trackingOptIn() . Dans ce dernier cas, remplacez la ligne à l'intérieur de notre didReceiveMessage callback par la ligne ci-dessous : 
	Singular.trackingOptIn();

AirBridge

Ce SDK recherche la chaîne TCF stockée dans la UserDefaults zone de l'appareil, assurant un flux automatique des consentements collectés sur l'appareil via notre SDK CMP vers les événements AppsFlyer. Afin de transmettre les données de consentement à AppsFlyer, veuillez suivre les instructions ci-dessous :

  1. Initialisez le SDK AirBridge 
  2. Initialisez notre SDK CMP
  3. Utilisez notre SDK CMP pour déterminer automatiquement si la boîte de dialogue de consentement est nécessaire dans la session en cours.
  4. Si nécessaire, une boîte de dialogue de consentement s'affichera pour recueillir les choix de l'utilisateur, qu'il s'agisse d'accepter tout, de tout refuser ou de personnaliser ses choix.
  5. Obtenez la confirmation du CMP que l'utilisateur a donné son consentement et que les données sont disponibles UserDefaults. Il existe différentes façons de procéder avec notre SDK CMP. Dans l'exemple de la présentation, nous utilisons le didReceiveConsent() callback pour y parvenir. 
  6. La dernière étape peut être réalisée de deux façons : (a) vous pouvez suivre notre extrait de code issu de la présentation ou (b) vous pouvez le remplacer par la méthode d'AirBridge startTracking() . Dans ce dernier cas, remplacez la ligne à l'intérieur de notre didReceiveMessage callback par la ligne ci-dessous : 
	Airbridge.startTracking()

Tenjin

Ce SDK recherche la chaîne TCF stockée dans la UserDefaults zone de l'appareil, assurant un flux automatique des consentements collectés sur l'appareil via notre SDK CMP vers les événements AppsFlyer. Afin de transmettre les données de consentement à AppsFlyer, veuillez suivre les instructions ci-dessous :

  1. Initialisez le SDK Tenjin 
  2. Initialisez notre SDK CMP
  3. Utilisez notre SDK CMP pour déterminer automatiquement si la boîte de dialogue de consentement est nécessaire dans la session en cours.
  4. Si nécessaire, une boîte de dialogue de consentement s'affichera pour recueillir les choix de l'utilisateur, qu'il s'agisse d'accepter tout, de tout refuser ou de personnaliser ses choix.
  5. Obtenez la confirmation du CMP que l'utilisateur a donné son consentement et que les données sont disponibles UserDefaults. Il existe différentes façons de procéder avec notre SDK CMP. Dans l'exemple de la présentation, nous utilisons le didReceiveConsent() callback pour y parvenir. 
  6. La dernière étape peut être réalisée de deux façons : (a) vous pouvez suivre notre extrait de code figurant dans l'aperçu ou (b) vous pouvez le remplacer par les méthodes Tenjin optIn()/optOut() .

 

We do our best to keep this purely informative documentation up to date. However, if you notice that any of these guides need a little touch-up, let us know!