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:
- 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);
- Inicializa nuestro SDK de CMP
- Utiliza nuestro SDK de CMP para decidir automáticamente si necesitas el cuadro de diálogo de consentimiento en la sesión actual.
- 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.
- 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 ladidReceiveConsent()callback para lograrlo. - 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 nuestradidReceiveMessagecallback 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:
- Inicializa el SDK de AdJust
- Inicializa nuestro SDK de CMP
- Utiliza nuestro SDK de CMP para decidir automáticamente si necesitas el cuadro de diálogo de consentimiento en la sesión actual.
- 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.
- 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 ladidReceiveConsent()callback para ilustrarlo. - 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.
- Inicializa Branch utilizando el token de tu aplicación
- Inicializa nuestro SDK de CMP
- Utiliza nuestro SDK de CMP para decidir automáticamente si necesitas el cuadro de diálogo de consentimiento en la sesión actual.
- 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.
- 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 ladidReceiveConsent()callback para ilustrarlo. - 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:
- Inicializa el SDK de Kochava
- Inicializa nuestro SDK de CMP
- Utiliza nuestro SDK de CMP para decidir automáticamente si necesitas el cuadro de diálogo de consentimiento en la sesión actual.
- 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.
- 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 ladidReceiveConsent()callback para lograrlo. - 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 nuestradidReceiveMessagecallback 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:
- Inicializa el SDK de Singular
- Inicializa nuestro SDK de CMP
- Utiliza nuestro SDK de CMP para decidir automáticamente si necesitas el cuadro de diálogo de consentimiento en la sesión actual.
- 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.
- 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 ladidReceiveConsent()callback para lograrlo. - 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 nuestradidReceiveMessagecallback 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:
- Inicializa el SDK de AirBridge
- Inicializa nuestro SDK de CMP
- Utiliza nuestro SDK de CMP para decidir automáticamente si necesitas el cuadro de diálogo de consentimiento en la sesión actual.
- 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.
- 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 ladidReceiveConsent()callback para lograrlo. - 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 nuestradidReceiveMessagecallback 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:
- Inicializa el SDK de Tenjin
- Inicializa nuestro SDK de CMP
- Utiliza nuestro SDK de CMP para decidir automáticamente si necesitas el cuadro de diálogo de consentimiento en la sesión actual.
- 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.
- 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 ladidReceiveConsent()callback para lograrlo. - 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().