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 los consentimientos recopilados mediante nuestro SDK de CMP se transmiten a estos SDK. Nuestro CMP es totalmente compatible con TCF v2.2, y recopila datos de consentimiento de la DMA y los almacena en UserDefaults. 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:
@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)")
}
}
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 UserDefaults 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.shared().waitForATTUserAuthorization(timeoutInterval: 60)
AppsFlyerLib.shared().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 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
UserDefaults. 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.shared().start()
AdJust
Este SDK no recupera los datos de consentimiento almacenados en el UserDefaults 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
UserDefaults. 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:
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)
}
Sucursal
Este SDK no recupera los datos de consentimiento almacenados en el UserDefaults 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 las funciones de ambos 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 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
UserDefaults. 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 UserDefaults 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
UserDefaults. 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 UserDefaults 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
UserDefaults. 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 UserDefaults 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 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
UserDefaults. 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 UserDefaults 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 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
UserDefaults. 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 métodos de Tenjin
optIn()/optOut().