Panoramica
Per i nostri clienti che integrano il nostro SDK CMP insieme a uno dei seguenti SDK di terze parti, abbiamo redatto questo documento in cui troverai guide individuali che illustrano come i consensi raccolti tramite il nostro SDK CMP vengono trasmessi a questi SDK. Il nostro CMP è pienamente compatibile con TCF v2.2, raccoglie i dati relativi ai consensi DMA e li memorizza in SharedPreferences. Alcuni degli SDK riportati di seguito possono recuperare questi dati automaticamente, mentre altri richiedono l'inserimento di codice. Si prega di consultare i singoli casi d'uso riportati di seguito.
Segui rigorosamente l'ordine delle diverse chiamate agli SDK. Il nostro SDK CMP deve raccogliere il consenso degli utenti prima di invocare qualsiasi azione negli SDK di terze parti riportati di seguito.
Su alcuni SDK di fornitori come AppsFlyer, AdJust e Branch dovrai: (a) richiamare il nostro updateThirdPartyConsent() , che trasmetterà automaticamente i consensi raccolti a questi SDK tramite introspezione/riflessione, oppure (b) utilizzare i loro metodi e proprietà per farlo manualmente. Nel caso in cui si stia utilizzando il nostro SDK CMP per gestire automaticamente il passaggio dei dati di consenso, ecco un esempio di implementazione:
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()
}
}
Per ulteriori informazioni, consulta le rispettive istruzioni di terze parti riportate di seguito.
AppsFlyer
Questo SDK cerca la stringa TCF memorizzata all'interno dell' SharedPreferences area del dispositivo, fornendo un flusso automatico dei consensi raccolti sul dispositivo tramite il nostro SDK CMP agli eventi di AppsFlyer. Per trasmettere i dati relativi ai consensi ad AppsFlyer, segui le istruzioni riportate di seguito:
- Inizializza l'SDK di AppsFlyer e abilita la raccolta dei dati TCF. Nel codice presentato nella sezione Panoramica di questo documento, sostituisci la parte relativa all'inizializzazione di terze parti con:
AppsFlyerLib.getInstance().init(<YOUR_DEV_KEY>, null, this);
AppsFlyerLib.enableTCFDataCollection(true);
- Inizializza il nostro SDK CMP
- Usa il nostro SDK CMP per decidere automaticamente se è necessaria la finestra di dialogo per il consenso nella sessione corrente.
- Se necessario, verrà visualizzata una finestra di dialogo per acquisire le scelte di consenso dell'utente, che si tratti di accettare tutto, rifiutare tutto o personalizzare le opzioni.
- Ottieni la conferma dal CMP che l'utente ha espresso il proprio consenso e che i dati sono disponibili
SharedPreferences. Ci sono diversi modi per farlo con il nostro SDK CMP. Nell'esempio nella panoramica, stiamo usando ildidReceiveConsent()callback per ottenere questo risultato - L'ultimo passaggio può essere eseguito in due modi: (a) puoi seguire il nostro frammento di codice dalla panoramica oppure (b) puoi sostituirlo con il metodo di AppFlyer
start(). In quest'ultimo caso, sostituisci la riga all'interno del nostrodidReceiveMessagecallback con la riga qui sotto:
AppsFlyerLib.getInstance().start(this);
AdJust
Questo SDK non recupera i dati relativi al consenso memorizzati all'interno dell' SharedPreferences area del dispositivo, quindi hai due modi per raggiungere questo obiettivo: (a) automatico, che sarà gestito completamente dal nostro SDK CMP; e (b) manuale, in cui utilizzerai entrambe le funzionalità dell'SDK per ottenere questo risultato. Segui le istruzioni riportate di seguito:
- Inizializza l'SDK di AdJust
- Inizializza il nostro SDK CMP
- Usa il nostro SDK CMP per decidere automaticamente se è necessaria la finestra di dialogo per il consenso nella sessione corrente.
- Se necessario, verrà visualizzata una finestra di dialogo per acquisire le scelte di consenso dell'utente, che si tratti di accettare tutto, rifiutare tutto o personalizzare le opzioni.
- Ottieni la conferma dal CMP che l'utente ha espresso il proprio consenso e che i dati sono disponibili
SharedPreferences. Ci sono diversi modi per farlo con il nostro SDK CMP. Nell'esempio qui sotto, utilizziamo ildidReceiveConsent()callback a scopo illustrativo. - Come ultimo passaggio, puoi (a) richiamare il
updateThirdPartyConsent()dal nostro SDK CMP, che passerà automaticamente i dati all'SDK di AdJust tramite introspezione/riflessione oppure sostituirlo con il codice qui sotto:
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)
}
Filiale
Questo SDK non recupera i dati relativi al consenso memorizzati all'interno dell' SharedPreferences area del dispositivo, quindi hai due modi per raggiungere questo obiettivo: (a) automatico, che sarà gestito completamente dal nostro SDK CMP; e (b) manuale, in cui utilizzerai entrambe le funzionalità dell'SDK per raggiungere questo obiettivo.
- Inizializza Branch utilizzando il token della tua app
- Inizializza il nostro SDK CMP
- Usa il nostro SDK CMP per decidere automaticamente se è necessaria la finestra di dialogo per il consenso nella sessione corrente.
- Se necessario, verrà visualizzata una finestra di dialogo per acquisire le scelte di consenso dell'utente, che si tratti di accettare tutto, rifiutare tutto o personalizzare le opzioni.
- Ottieni la conferma dal CMP che l'utente ha espresso il proprio consenso e che i dati sono disponibili
SharedPreferences. Ci sono diversi modi per farlo con il nostro SDK CMP. Nell'esempio qui sotto, utilizziamo ildidReceiveConsent()callback a scopo illustrativo. - Come ultimo passaggio, puoi (a) richiamare il
updateThirdPartyConsent()dal nostro SDK CMP, che passerà automaticamente i dati all'SDK di AdJust tramite introspezione/riflessione oppure sostituirlo con il codice qui sotto:
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
Questo SDK cerca la stringa TCF memorizzata all'interno dell' SharedPreferences area del dispositivo, fornendo un flusso automatico dei consensi raccolti sul dispositivo tramite il nostro SDK CMP agli eventi di AppsFlyer. Per trasmettere i dati relativi ai consensi ad AppsFlyer, segui le istruzioni riportate di seguito:
- Inizializza l'SDK di Kochava
- Inizializza il nostro SDK CMP
- Usa il nostro SDK CMP per decidere automaticamente se è necessaria la finestra di dialogo per il consenso nella sessione corrente.
- Se necessario, verrà visualizzata una finestra di dialogo per acquisire le scelte di consenso dell'utente, che si tratti di accettare tutto, rifiutare tutto o personalizzare le opzioni.
- Ottieni la conferma dal CMP che l'utente ha espresso il proprio consenso e che i dati sono disponibili
SharedPreferences. Ci sono diversi modi per farlo con il nostro SDK CMP. Nell'esempio nella panoramica, stiamo usando ildidReceiveConsent()callback per ottenere questo risultato - L'ultimo passaggio può essere eseguito in due modi: (a) puoi seguire il nostro frammento di codice dalla panoramica oppure (b) puoi sostituirlo con il metodo di Kochava
startWithAppGuid(). In quest'ultimo caso, sostituisci la riga all'interno del nostrodidReceiveMessagecallback con la riga qui sotto:
Tracker.getInstance().startWithAppGuid(applicationContext, "YOUR_ANDROID_APP_GUID")
Singolare
Questo SDK cerca la stringa TCF memorizzata all'interno dell' SharedPreferences area del dispositivo, fornendo un flusso automatico dei consensi raccolti sul dispositivo tramite il nostro SDK CMP agli eventi di AppsFlyer. Per trasmettere i dati relativi ai consensi ad AppsFlyer, segui le istruzioni riportate di seguito:
- Inizializza l'SDK di Singular
- Inizializza il nostro SDK CMP
- Usa il nostro SDK CMP per decidere automaticamente se è necessaria la finestra di dialogo per il consenso nella sessione corrente.
- Se necessario, verrà visualizzata una finestra di dialogo per acquisire le scelte di consenso dell'utente, che si tratti di accettare tutto, rifiutare tutto o personalizzare le opzioni.
- Ottieni la conferma dal CMP che l'utente ha espresso il proprio consenso e che i dati sono disponibili
SharedPreferences. Ci sono diversi modi per farlo con il nostro SDK CMP. Nell'esempio nella panoramica, stiamo usando ildidReceiveConsent()callback per ottenere questo risultato - L'ultimo passaggio può essere eseguito in due modi: (a) puoi seguire il nostro frammento di codice dalla panoramica oppure (b) puoi sostituirlo con il metodo di Singular
trackingOptIn(). In quest'ultimo caso, sostituisci la riga all'interno del nostrodidReceiveMessagecallback con la riga qui sotto:
Singular.trackingOptIn();
AirBridge
Questo SDK cerca la stringa TCF memorizzata all'interno dell' SharedPreferences area del dispositivo, fornendo un flusso automatico dei consensi raccolti sul dispositivo tramite il nostro SDK CMP agli eventi di AppsFlyer. Per trasmettere i dati relativi ai consensi ad AppsFlyer, segui le istruzioni riportate di seguito:
- Inizializza l'SDK di AirBridge
- Inizializza il nostro SDK CMP
- Usa il nostro SDK CMP per decidere automaticamente se è necessaria la finestra di dialogo per il consenso nella sessione corrente.
- Se necessario, verrà visualizzata una finestra di dialogo per acquisire le scelte di consenso dell'utente, che si tratti di accettare tutto, rifiutare tutto o personalizzare le opzioni.
- Ottieni la conferma dal CMP che l'utente ha espresso il proprio consenso e che i dati sono disponibili
SharedPreferences. Ci sono diversi modi per farlo con il nostro SDK CMP. Nell'esempio nella panoramica, stiamo usando ildidReceiveConsent()callback per ottenere questo risultato - L'ultimo passaggio può essere eseguito in due modi: (a) puoi seguire il nostro frammento di codice dalla panoramica oppure (b) puoi sostituirlo con il metodo di AirBridge
startTracking(). In quest'ultimo caso, sostituisci la riga all'interno del nostrodidReceiveMessagecallback con la riga qui sotto:
Airbridge.startTracking()
Tenjin
Questo SDK cerca la stringa TCF memorizzata all'interno dell' SharedPreferences area del dispositivo, fornendo un flusso automatico dei consensi raccolti sul dispositivo tramite il nostro SDK CMP agli eventi di AppsFlyer. Per trasmettere i dati relativi ai consensi ad AppsFlyer, segui le istruzioni riportate di seguito:
- Inizializza l'SDK di Tenjin
- Inizializza il nostro SDK CMP
- Usa il nostro SDK CMP per decidere automaticamente se è necessaria la finestra di dialogo per il consenso nella sessione corrente.
- Se necessario, verrà visualizzata una finestra di dialogo per acquisire le scelte di consenso dell'utente, che si tratti di accettare tutto, rifiutare tutto o personalizzare le opzioni.
- Ottieni la conferma dal CMP che l'utente ha espresso il proprio consenso e che i dati sono disponibili
SharedPreferences. Ci sono diversi modi per farlo con il nostro SDK CMP. Nell'esempio nella panoramica, stiamo usando ildidReceiveConsent()callback per ottenere questo risultato - L'ultimo passaggio può essere eseguito in due modi: (a) puoi seguire il nostro frammento di codice dalla panoramica oppure (b) puoi sostituirlo con i metodi di Tenjin
optIn()/optOut().