[Android] Socios de atribución de aplicaciones de terceros (AAP)

Resumen

Para nuestros clientes que integran nuestro SDK de CMP junto con uno de los siguientes SDK de terceros, hemos elaborado este documento en el que encontrarás guías individuales que te mostrarán cómo se transmiten a estos SDK los consentimientos recopilados mediante nuestro SDK de CMP. Nuestro CMP es totalmente compatible con TCF v2.2, y recopila datos de consentimiento de la DMA y los almacena en SharedPreferences. Algunos de los SDK que se indican a continuación pueden recuperar estos datos automáticamente, mientras que otros requieren código. Consulte a continuación los casos de uso individuales.  

Sigue estrictamente el orden de las diferentes llamadas a los SDK. Nuestro SDK de CMP debe recabar el consentimiento de los usuarios antes de invocar cualquier acción en los SDK de terceros que se indican a continuación.

En algunos SDK de proveedores como AppsFlyer, AdJust y Branch, tendrás que: (a) invocar nuestro updateThirdPartyConsent() , que pasará automáticamente los consentimientos recopilados a estos SDK mediante introspección/reflexión, o (b) utilizar sus propios métodos y propiedades para hacerlo manualmente. En caso de que estés utilizando nuestro SDK de CMP para gestionar automáticamente el paso de los datos de consentimiento, aquí tienes un ejemplo de implementación: 

import net.consentmanager.cm_sdk_android_v3.CMPManager
import net.consentmanager.cm_sdk_android_v3.CMPManagerDelegate
import net.consentmanager.cm_sdk_android_v3.ConsentLayerUIConfig
import net.consentmanager.cm_sdk_android_v3.UrlConfig

public class AppsflyerBasicApp extends Application {
    @Override
    public void onCreate() {
      	super.onCreate()

		// Initialize your third-party SDK. Replace the code below by your respective third-party init code 
        // according to the instructions along this document
        String yourClientToken = "YOUR-CLIENT-TOKEN"
        YourThirdPartySdk yourThirdPartySdk = YourThirdPartySdk.getInstance()
        yourThirdPartySdk.init(yourClientToken)

		// Initializing our CMP SDK
		val urlConfig = UrlConfig(
            id = "YOUR_CODE_ID_HERE",
            domain = "delivery.consentmanager.net",
            language = "EN",
            appName = "CMDemoAppKotlin"
        )

        cmpManager = CMPManager.getInstance(
            context = this,
            urlConfig = urlConfig,
            webViewConfig = webViewConfig,
            delegate = this
        )

        cmpManager.setActivity(this)

		// 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 SharedPreferences area
		checkAndOpen()
      
    }
  
      override fun didReceiveConsent(consent: String, jsonObject: Map<String, Any>) {
        Log.d("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
        cmpManager.updateThirdPartyConsent()
    }
}	

Para más información, consulta las instrucciones de terceros correspondientes que figuran a continuación.

AppsFlyer

Este SDK busca la cadena TCF almacenada en el SharedPreferences del dispositivo, proporcionando un flujo automático de los consentimientos recopilados en el dispositivo a través de nuestro SDK CMP a los eventos de AppsFlyer. Para enviar los datos de consentimiento a AppsFlyer, sigue las instrucciones que se indican a continuación:

  1. Inicializa el SDK de AppsFlyer y habilita la recopilación de datos TCF. En el código que aparece en la sección «Descripción general» de este documento, sustituye la parte de inicialización de terceros por:
            AppsFlyerLib.getInstance().init(<YOUR_DEV_KEY>, null, this);
    		AppsFlyerLib.enableTCFDataCollection(true);
    1. Inicializa nuestro SDK de CMP
    2. Utiliza nuestro SDK de CMP para decidir automáticamente si necesitas el cuadro de diálogo de consentimiento en la sesión actual.
    3. Si es necesario, se mostrará un cuadro de diálogo de consentimiento para recabar las opciones del usuario, ya sea aceptar todo, rechazar todo o personalizar las opciones.
    4. Obtén la confirmación del CMP de que el usuario ha dado su consentimiento y de que los datos están disponibles SharedPreferences. Hay diferentes formas de hacerlo con nuestro SDK de CMP. En el ejemplo de la descripción general, utilizamos la didReceiveConsent() callback para lograrlo. 
    5. El último paso se puede realizar de dos maneras: (a) puedes seguir nuestro fragmento de código de la descripción general o (b) puedes sustituirlo por el método de AppFlyer start() . En este último caso, sustituye la línea dentro de nuestra didReceiveMessage callback por la línea siguiente: 
            AppsFlyerLib.getInstance().start(this);

    AdJust

    Este SDK no recupera los datos de consentimiento almacenados en el SharedPreferences del dispositivo, por lo que tienes dos formas de lograrlo: (a) automática, que será gestionada íntegramente por nuestro SDK de CMP; y (b) manual, en la que utilizarás ambas funciones del SDK para conseguirlo. Sigue las instrucciones que se indican a continuación: 

    1. Inicializa el SDK de AdJust 
    2. Inicializa nuestro SDK de CMP
    3. Utiliza nuestro SDK de CMP para decidir automáticamente si necesitas el cuadro de diálogo de consentimiento en la sesión actual.
    4. Si es necesario, se mostrará un cuadro de diálogo de consentimiento para recabar las opciones del usuario, ya sea aceptar todo, rechazar todo o personalizar las opciones.
    5. Obtén la confirmación del CMP de que el usuario ha dado su consentimiento y de que los datos están disponibles SharedPreferences. Hay diferentes formas de hacerlo con nuestro SDK de CMP. En el ejemplo siguiente, utilizamos la didReceiveConsent() callback para ilustrarlo. 
    6. Como último paso, puedes (a) invocar el updateThirdPartyConsent() método de nuestro SDK de CMP, que pasará automáticamente los datos al SDK de AdJust mediante introspección/reflexión, o bien sustituirlo por el código siguiente: 
          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" ? "1" : "0"
            val adPersonalizationConsent = consentSettings["ad_personalization"] == "granted" ? "1" : "0"
    
    		val adjustThirdPartySharing = AdjustThirdPartySharing(true)
            adjustThirdPartySharing.addGranularOption("google_dma", "eea", "1");
            adjustThirdPartySharing.addGranularOption("google_dma", "ad_personalization", adPersonalizationConsent);
            adjustThirdPartySharing.addGranularOption("google_dma", "ad_user_data", adStorageConsent);
            Adjust.trackThirdPartySharing(adjustThirdPartySharing)        
        }

    Sucursal

    Este SDK no recupera los datos de consentimiento almacenados en el SharedPreferences del dispositivo, por lo que tienes dos formas de lograrlo: (a) automática, que será gestionada íntegramente por nuestro SDK de CMP; y (b) manual, en la que utilizarás ambas funciones del SDK para conseguirlo. 

    1. Inicializa Branch utilizando el token de tu aplicación
    2. Inicializa nuestro SDK de CMP
    3. Utiliza nuestro SDK de CMP para decidir automáticamente si necesitas el cuadro de diálogo de consentimiento en la sesión actual.
    4. Si es necesario, se mostrará un cuadro de diálogo de consentimiento para registrar las opciones del usuario, ya sea aceptar todo, rechazar todo o personalizar las opciones.
    5. Obtén la confirmación del CMP de que el usuario ha dado su consentimiento y de que los datos están disponibles SharedPreferences. Hay diferentes formas de hacerlo con nuestro SDK de CMP. En el ejemplo siguiente, utilizamos la didReceiveConsent() callback para ilustrarlo. 
    6. Como último paso, puedes (a) invocar el updateThirdPartyConsent() método de nuestro SDK de CMP, que pasará automáticamente los datos al SDK de AdJust mediante introspección/reflexión, o bien sustituirlo por el código siguiente: 
          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

    Este SDK busca la cadena TCF almacenada en el SharedPreferences del dispositivo, proporcionando un flujo automático de los consentimientos recopilados en el dispositivo a través de nuestro SDK CMP a los eventos de AppsFlyer. Para enviar los datos de consentimiento a AppsFlyer, sigue las instrucciones que se indican a continuación:

    1. Inicializa el SDK de Kochava 
    2. Inicializa nuestro SDK de CMP
    3. Utiliza nuestro SDK de CMP para decidir automáticamente si necesitas el cuadro de diálogo de consentimiento en la sesión actual.
    4. Si es necesario, se mostrará un cuadro de diálogo de consentimiento para recabar las opciones del usuario, ya sea aceptar todo, rechazar todo o personalizar las opciones.
    5. Obtén la confirmación del CMP de que el usuario ha dado su consentimiento y de que los datos están disponibles SharedPreferences. Hay diferentes formas de hacerlo con nuestro SDK de CMP. En el ejemplo de la descripción general, utilizamos la didReceiveConsent() callback para lograrlo. 
    6. El último paso se puede realizar de dos maneras: (a) puedes seguir nuestro fragmento de código de la descripción general o (b) puedes sustituirlo por el método de Kochava startWithAppGuid() . En este último caso, sustituye la línea dentro de nuestra didReceiveMessage callback por la línea siguiente: 
    	Tracker.getInstance().startWithAppGuid(applicationContext, "YOUR_ANDROID_APP_GUID")	

    Singular

    Este SDK busca la cadena TCF almacenada en el SharedPreferences del dispositivo, proporcionando un flujo automático de los consentimientos recopilados en el dispositivo a través de nuestro SDK CMP a los eventos de AppsFlyer. Para enviar los datos de consentimiento a AppsFlyer, sigue las instrucciones que se indican a continuación:

    1. Inicializa el SDK de Singular 
    2. Inicializa nuestro SDK de CMP
    3. Utiliza nuestro SDK de CMP para decidir automáticamente si necesitas el cuadro de diálogo de consentimiento en la sesión actual.
    4. Si es necesario, se mostrará un cuadro de diálogo de consentimiento para recabar las opciones del usuario, ya sea aceptar todo, rechazar todo o personalizar las opciones.
    5. Obtén la confirmación del CMP de que el usuario ha dado su consentimiento y de que los datos están disponibles SharedPreferences. Hay diferentes formas de hacerlo con nuestro SDK de CMP. En el ejemplo de la descripción general, utilizamos la didReceiveConsent() callback para lograrlo. 
    6. El último paso se puede realizar de dos maneras: (a) puedes seguir nuestro fragmento de código de la descripción general o (b) puedes sustituirlo por el método de Singular trackingOptIn() . En este último caso, sustituye la línea dentro de nuestra didReceiveMessage callback por la línea siguiente: 
    	Singular.trackingOptIn();

    AirBridge

    Este SDK busca la cadena TCF almacenada en el SharedPreferences del dispositivo, proporcionando un flujo automático de los consentimientos recopilados en el dispositivo a través de nuestro SDK CMP a los eventos de AppsFlyer. Para enviar los datos de consentimiento a AppsFlyer, sigue las instrucciones que se indican a continuación:

    1. Inicializa el SDK de AirBridge 
    2. Inicializa nuestro SDK de CMP
    3. Utiliza nuestro SDK de CMP para decidir automáticamente si necesitas el cuadro de diálogo de consentimiento en la sesión actual.
    4. Si es necesario, se mostrará un cuadro de diálogo de consentimiento para recabar las opciones del usuario, ya sea aceptar todo, rechazar todo o personalizar las opciones.
    5. Obtén la confirmación del CMP de que el usuario ha dado su consentimiento y de que los datos están disponibles SharedPreferences. Hay diferentes formas de hacerlo con nuestro SDK de CMP. En el ejemplo de la descripción general, utilizamos la didReceiveConsent() callback para lograrlo. 
    6. El último paso se puede realizar de dos maneras: (a) puedes seguir nuestro fragmento de código de la descripción general o (b) puedes sustituirlo por el método de AirBridge startTracking() . En este último caso, sustituye la línea dentro de nuestra didReceiveMessage callback por la línea siguiente: 
    	Airbridge.startTracking()

    Tenjin

    Este SDK busca la cadena TCF almacenada en el SharedPreferences del dispositivo, proporcionando un flujo automático de los consentimientos recopilados en el dispositivo a través de nuestro SDK CMP a los eventos de AppsFlyer. Para enviar los datos de consentimiento a AppsFlyer, sigue las instrucciones que se indican a continuación:

    1. Inicializa el SDK de Tenjin 
    2. Inicializa nuestro SDK de CMP
    3. Utiliza nuestro SDK de CMP para decidir automáticamente si necesitas el cuadro de diálogo de consentimiento en la sesión actual.
    4. Si es necesario, se mostrará un cuadro de diálogo de consentimiento para recabar las opciones del usuario, ya sea aceptar todo, rechazar todo o personalizar las opciones.
    5. Obtén la confirmación del CMP de que el usuario ha dado su consentimiento y de que los datos están disponibles SharedPreferences. Hay diferentes formas de hacerlo con nuestro SDK de CMP. En el ejemplo de la descripción general, utilizamos la didReceiveConsent() callback para lograrlo. 
    6. El último paso se puede realizar de dos maneras: (a) puedes seguir nuestro fragmento de código de la descripción general o (b) puedes sustituirlo por los métodos de 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!