La CMPManager classe fornisce metodi per gestire il consenso dell'utente al trattamento dei dati e al tracciamento. Questa documentazione illustra i principali metodi disponibili per l'integrazione nelle app mobili.
Tutti gli esempi citati di seguito sono stati estratti dalla nostra App Demo e sono disponibili su di essa.
Verifica i metodi deprecati nel caso in cui tu stia già integrando la v3 del nostro SDK CMP.
Inizializzazione
UrlConfig()
Imposta la configurazione dell'URL per il Consent Manager. Deve essere inizializzato con il valore sottostante e passato al getInstance metodo.
Parametri:
-
id: String – L'ID codice recuperato dalla tua dashboard CMP -
domain: String – Il dominio per la gestione del consenso, anch'esso recuperato dalla tua dashboard CMP -
language: String – Il codice della lingua (ad es. "EN", "IT", "DE", ecc.) -
appName: String – Il nome della tua app, utilizzato solo a fini di reportistica -
jsonConfig: Oggetto JSON – Opzionale, utilizzato solo in casi particolari; non utilizzarlo a meno che non sia chiaramente indicato sulla tua dashboard CMP insieme agli altri parametri sopra indicati. -
noHash: booleano – Impedisce all'URL generato e caricato dalla webview di utilizzare un hash (#) per trasmettere il consenso
Esempio:
val urlConfig = UrlConfig(
id = "YOUR_CODE_ID_HERE",
domain = "delivery.consentmanager.net",
language = "EN",
appName = "CMDemoAppKotlin"
)
setActivity()
Imposta l'attività che presenterà il layer di consenso. Dovrebbe essere un ComponentActivity.
Parametri:
-
viewController: ComponentActivity – L'attività in cui verrà presentato il livello di consenso.
Ritorni: Nessuno
Esempio:
CMPManager.shared.setPresentingViewController(self)
Parametri di ConsentLayerUIConfig()
-
position: Strategia di posizionamento delle finestre di dialogo (impostazione predefinita:Position.FULL_SCREEN):-
Position.FULL_SCREEN– Copre l'intero schermo -
Position.HALF_SCREEN_TOP– Metà superiore dello schermo -
Position.HALF_SCREEN_BOTTOM– Metà inferiore dello schermo -
Position.custom(width: Int, height: Int)– Dimensioni personalizzate in pixel
-
-
backgroundStyle: Aspetto dello sfondo (impostazione predefinita: `BackgroundStyle.dimmed(Color.BLACK, 0.5f)) -
cornerRadius: Float – Raggio angolo in dp (impostazione predefinita:0f).- Nota: richiede la versione 3.7.0+ dell'SDK per un corretto ritaglio dei contenuti WebView
-
respectsSafeArea: Booleano – Se rispettare gli spazi di riempimento dell'interfaccia utente di sistema (impostazione predefinita:true).-
Nota: su Android 11+ (API 30), l'impostazione su
falseconsente alla finestra di dialogo di estendersi sotto le barre di sistema
-
Nota: su Android 11+ (API 30), l'impostazione su
-
isCancelable: Booleano – Se la finestra di dialogo è chiudibile (impostazione predefinita:true) -
darkMode: Booleano – Abilita lo stile della modalità scura (impostazione predefinita:false)
//Example - Custom Position
val displayMetrics = resources.displayMetrics
val customPosition = ConsentLayerUIConfig.Position.custom(
displayMetrics.widthPixels,
(displayMetrics.heightPixels * 0.8).toInt() // 80% screen height
)
val webViewConfig = ConsentLayerUIConfig(
position = customPosition,
cornerRadius = 20f,
respectsSafeArea = true
)
Gestione dei livelli di consenso
getUserStatus()
Fornisce una panoramica dettagliata dello stato attuale del consenso e delle preferenze dell'utente. Questo metodo fornisce informazioni complete sulle scelte di consenso dell'utente, compreso lo stato generale del consenso, le autorizzazioni per i singoli fornitori, i consensi per scopi specifici e le stringhe di consenso pertinenti.
Parametri:
- Nessuno
Ritorni:
Tipo di ritorno: CMPUserStatusResponse oggetto, spiegato nel codice sottostante.
Esempio:
let status = CMPManager.shared.getUserStatus()
var message = "Status: (status.status)nn"
message += "Vendors:n"
for (vendorId, state) in status.vendors {
message += "- (vendorId): (state)n"
}
message += "nPurposes:n"
for (purposeId, state) in status.purposes {
message += "- (purposeId): (state)n"
}
message += "nTCF: (status.tcf)n"
message += "Additional Consent: (status.addtlConsent)n"
message += "Regulation: (status.regulation)"
print(message)
isConsentRequired()
Verifica se è richiesto il consenso dell'utente. Questo effettuerà una chiamata di rete ai nostri server tramite la WebView creata all'interno del nostro SDK, che invierà un messaggio al nostro backend tramite JavaScript. Il nostro backend rileverà se il dispositivo ha un consenso valido o meno, e un messaggio verrà rispedito al WebView, determinando se deve essere visualizzato o meno, consumando una visualizzazione di pagina nel processo.
Parametri: Nessuno
Ritorno:
-
completion: (Booleano) -> Unità – Una chiusura chiamata con il risultato, ovverotruese non è stato trovato alcun consenso valido sul dispositivo ofalsein caso contrario.
Esempio:
cmpManager.isConsentRequired { needsConsent ->
toastMessage = "Needs Consent: $needsConsent"
}
checkAndOpen()
Verifica con il server se è richiesto il consenso e, se necessario, apre il layer di consenso. Questo effettuerà una chiamata di rete ai nostri server tramite il WKWebView creato all'interno del nostro SDK, consumando una visualizzazione di pagina nel processo. Questa chiamata di rete invierà un messaggio al nostro backend tramite JavaScript, che rileverà se il dispositivo ha un consenso valido o meno, il che a sua volta determinerà se il layer di consenso deve essere visualizzato o meno.
Parametri:
-
jumpToSettings: Un valore booleano per determinare se il layer di consenso visualizzato reindirizzerà automaticamente alla pagina in cui è possibile un controllo più granulare sui consensi forniti dagli utenti, consentendo loro di perfezionare le proprie scelte (se impostato sutrue) oppure alla schermata iniziale predefinita con i pulsanti (se impostato sufalseo soppresso). -
completion: Una chiusura chiamata al completamento dell'operazione, con il risultato, ovverotrueofalse.
Ritorni: Nessuno
Esempio:
cmpManager.checkAndOpen { result ->
result.onSuccess {
toastMessage = "Check and Open Consent Layer operation done successfully."
}.onFailure { error ->
toastMessage = "Check and Open Consent Layer operation failed with error: $error"
}
forceOpen()
Apre il layer di consenso. Effettua una richiesta di rete al nostro backend, consumando una visualizzazione di pagina nel processo. Visualizzerà il layer di consenso consentendo all'utente di Accettare tutto o Rifiutare tutto, oppure, a seconda del parametro jumpToSettings, permetterà di gestire i consensi in modo più granulare.
Parametri:
-
jumpToSettings: Un valore booleano per determinare se il layer di consenso visualizzato reindirizzerà automaticamente alla pagina in cui è possibile un controllo più granulare sui consensi forniti dagli utenti, consentendo loro di perfezionare le proprie scelte (se impostato sutrue) oppure alla schermata iniziale predefinita con i pulsanti (se impostato sufalseo soppresso). -
completion: Una chiusura chiamata al completamento dell'operazione, che restituisce un esito positivo o un errore.
Ritorni: Nessuno
Esempio:
cmpManager.openConsentLayer { result ->
result.onFailure { error ->
toastMessage = "Error: ${error.message}"
}
}
Stato del consenso
exportCMPInfo()
Esporta le informazioni di consenso correnti memorizzate sul dispositivo come stringa. Questo metodo recupera la stringa di consenso dall'area SharedPreferences del dispositivo e la restituisce. Di solito queste informazioni vengono passate al importCMPInfo metodo.
Restituisce: String – Le informazioni sul consenso esportate
Esempio:
val cmpInfo = CMPManager.shared.exportCMPInfo()
Log.d("Exported CMP info: (cmpInfo)")
getGoogleConsentModeStatus()
Si integra perfettamente con Consent Mode, una tecnologia di Google che consente la modellazione di conversioni e analisi, permettendo ai servizi di Google di colmare le lacune di dati quando gli utenti non danno il consenso. Questa funzione traduce il consenso dell'utente dal tuo CMP in un formato comprensibile da Firebase Analytics, così puoi semplicemente ottenere il risultato di questo metodo e passarlo al metodo .setConsent di Firebase.
- A quel punto aggiorna Google Analytics con lo stato attuale del consenso dell'utente.
Parametri:
- Nessuno
Restituisce: Map<String, String> – Un array di valori chiave con le quattro chiavi della Modalità Consenso di Google: .analyticsStorage, .adStorage, .adUserData e .adPersonalization, e i rispettivi valori in termini di .choiceDoesntExist, .granted o .denied.
Esempio:
val settings = cmpManager.getGoogleConsentModeStatus()
Log.d("CMPDemo", "Google Consent Mode Settings: $settings")
toastMessage = buildString {
append("Google Consent Settings:")
settings.forEach { (key, value) ->
append("n$key: $value")
}
}
getStatusForPurpose()
Verifica se è stato dato il consenso per uno scopo specifico e se tale consenso è memorizzato sul dispositivo. Controlla l'area UserDefaults per i consensi accettati o rifiutati e filtra l'ID passato come parametro, restituendo true se il consenso è stato accettato o false in caso contrario.
Parametri:
-
id: String – L'ID dello scopo da verificare
Risultati: UniqueConsentStatus – Un elenco con i valori .choiceDoesntExist se non è stato dato il consenso, .granted oppure .denied.
Esempio:
val purposeStatus = cmpManager.getStatusForPurpose("c53")
var message = "Vendor s2789's status: "
switch purposeStatus {
case .choiceDoesntExist: message += "No Choice"
case .granted: message += "Granted"
case .denied: message += "Denied"
@unknown default: message += "No Choice"
}
getStatusForVendor()
Verifica se è stato dato il consenso per un fornitore specifico e se tale consenso è memorizzato sul dispositivo. Controlla l'area UserDefaults per i consensi accettati o rifiutati e filtra l'ID passato come parametro, restituendo true se il consenso è stato accettato o false in caso contrario.
Parametri:
-
id: String – L'ID dello scopo da verificare
Risultati: UniqueConsentStatus – Un elenco con i valori .choiceDoesntExist se non è stato dato il consenso, .granted oppure .denied.
Esempio:
val vendorStatus = cmpManager.getStatusForVendor("s2789")
var message = "Vendor s2789's status: "
switch vendorStatus {
case .choiceDoesntExist: message += "No Choice"
case .granted: message += "Granted"
case .denied: message += "Denied"
@unknown default: message += "No Choice"
}
Modifica del consenso
acceptAll()
Accetta il consenso per tutte le finalità e i fornitori, consumando una visualizzazione di pagina nel processo. Effettua una chiamata di rete al nostro backend tramite un messaggio inserito nel WebView, che attiverà l'accettazione di tutti i consensi, in base alla configurazione del CMP. Queste informazioni saranno disponibili per gli altri metodi solo dopo che la callback avrà restituito un esito positivo o negativo, il che significa che sono state elaborate con successo dal nostro backend e salvate sul dispositivo.
Parametri:
-
completion: Una chiusura chiamata al completamento dell'operazione, che restituisce un errore o un esito positivo.
Ritorni: Nessuno
Esempio:
cmpManager.acceptAll { result ->
result.onSuccess {
toastMessage = "All consents accepted"
}.onFailure { error ->
toastMessage = "Error: ${error.message}"
}
}
acceptPurposes()
Accetta il consenso per scopi specifici, consumando una visualizzazione di pagina nel processo. Effettua una chiamata di rete al nostro backend tramite un messaggio inserito nel WebView, che attiverà l’accettazione degli scopi determinati passati come parametro, in base alla configurazione del CMP. Queste informazioni saranno disponibili per gli altri metodi solo dopo che il callback avrà restituito un esito positivo o negativo, il che significa che sono state elaborate con successo dal nostro backend e salvate sul dispositivo.
Parametri:
-
purposes: List<String> – Un elenco di ID di scopo da accettare -
updatePurpose: Booleano – Se aggiornare le finalità correlate -
completion: Una chiusura chiamata al completamento dell'operazione, che restituisce un errore o un esito positivo
Ritorni: Nessuno
Esempio:
cmpManager.acceptPurposes(listOf("c52", "c53"), true) { result ->
result.onSuccess {
toastMessage = "Purposes enabled"
}.onFailure { error ->
toastMessage = "Error: ${error.message}"
}
}
acceptVendors()
Accetta il consenso per fornitori specifici, consumando una visualizzazione di pagina nel processo. Effettua una chiamata di rete al nostro backend tramite un messaggio inserito nel WebView, che attiverà l’accettazione dei fornitori specificati passati come parametro, in base alla configurazione del CMP. Queste informazioni saranno disponibili per gli altri metodi solo dopo che il callback avrà restituito un esito positivo o negativo, il che significa che sono state elaborate con successo dal nostro backend e salvate sul dispositivo.
Parametri:
-
vendors: List<String> – Un elenco di ID dei fornitori da accettare -
completion: Una chiusura chiamata quando l'operazione è completata
Ritorni: Nessuno
Esempio:
cmpManager.acceptVendors(listOf("s2790", "s2791")) { result ->
result.onSuccess {
toastMessage = "Vendors Enabled"
}.onFailure { error ->
toastMessage = "Error: ${error.message}"
}
}
importCMPInfo()
Importa le informazioni sul consenso da una stringa CMP. Riceverà una stringa semplice contenente i dati del consenso, solitamente ottenuti tramite il exportCMPInfo metodo. Queste informazioni vengono salvate nell’area SharedPreferences del dispositivo e, allo stesso tempo, inviate al nostro backend tramite un messaggio inserito nella WebView, consumando una visualizzazione di pagina nel processo.
Parametri:
-
cmpString: String – La stringa CMP da importare -
completion: Una chiusura chiamata al completamento dell'operazione, che restituisce un errore o un esito positivo
Ritorni: Nessuno
Esempio:
val cmpString = "Q1FERkg3QVFERkg3QUFmR01CSVRCQkVnQUFBQUFBQUFBQWlnQUFBQUFBQUEjXzUxXzUyXzUzXzU0XzU1XzU2XyNfczI3ODlfczI3OTBfczI3OTFfczI2OTdfczk3MV9VXyMxLS0tIw"
cmpManager.importCMPInfo(cmpString) { result ->
result.onSuccess {
toastMessage = "Vendors Enabled"
}.onFailure { error ->
toastMessage = "Error: ${error.message}"
}
}
rejectAll()
Rifiuta il consenso per tutte le finalità e i fornitori, consumando una visualizzazione di pagina nel processo. Effettua una chiamata di rete al nostro backend tramite un messaggio inserito nel WebView, che attiverà il rifiuto di tutti i consensi, in base alla configurazione del CMP. Queste informazioni saranno disponibili per gli altri metodi solo dopo che la callback avrà restituito un esito positivo o negativo, il che significa che sono state elaborate con successo dal nostro backend e salvate sul dispositivo.
Parametri:
-
completion: Una chiusura chiamata quando l'operazione è completata
Ritorni: Nessuno
Esempio:
cmpManager.rejectAll { result ->
result.onSuccess {
toastMessage = "All consents rejected"
}.onFailure { error ->
toastMessage = "Error: ${error.message}"
}
}
rejectPurposes()
Rifiuta il consenso per scopi specifici, consumando una visualizzazione di pagina nel processo. Effettua una chiamata di rete al nostro backend tramite un messaggio inserito nel WebView, che attiverà il rifiuto degli scopi determinati passati come parametro, in base alla configurazione del CMP. Queste informazioni saranno disponibili per gli altri metodi solo dopo che il callback avrà restituito un esito positivo o negativo, il che significa che sono state elaborate con successo dal nostro backend e salvate sul dispositivo.
Parametri:
-
purposes:List<String>– Un elenco di ID di scopo da rifiutare -
updateVendor:Boolean– Se aggiornare i fornitori correlati -
completion: Una chiusura chiamata quando l'operazione è completata
Ritorni: Nessuno
Esempio:
cmpManager.rejectPurposes(listOf("c52", "c53"), true) { result ->
result.onSuccess {
toastMessage = "Purposes disabled"
}.onFailure { error ->
toastMessage = "Error: ${error.message}"
}
}
rejectVendors()
Rifiuta il consenso per fornitori specifici, consumando una visualizzazione di pagina nel processo. Effettua una chiamata di rete al nostro backend tramite un messaggio inserito nel WebView, che attiverà il rifiuto dei fornitori determinati passati come parametro, in base alla configurazione del CMP. Queste informazioni saranno disponibili per gli altri metodi solo dopo che il callback avrà restituito un esito positivo o negativo, il che significa che sono state elaborate con successo dal nostro backend e salvate sul dispositivo.
Parametri:
-
vendors: List<String> – Un elenco di ID dei fornitori da rifiutare -
completion: Una chiusura chiamata al completamento dell'operazione, che restituisce un errore o un esito positivo
Ritorni: Nessuno
Esempio:
cmpManager.rejectVendors(listOf("s2790", "s2791")) { result ->
result.onSuccess {
toastMessage = "Vendors Disabled"
}.onFailure { error ->
toastMessage = "Error: ${error.message}"
}
}
resetConsentManagementData()
Questo rimuove le coppie chiave/valore dalle aree UserDefaults e SharedPreferences del dispositivo. Per cancellare completamente i dati, potrebbe essere necessario rimuovere i cookie, i record di dati, la cronologia e la cache di WebView, in modo da imporre la necessità di un nuovo consenso.
Parametri:
Nessuno
Ritorni: Nessuno
Esempio:
cmpManager.resetConsentManagementData()
Trasmissione dei dati relativi al consenso a SDK di terze parti
aggiornamento del consenso di terze parti
Questo metodo gestisce il passaggio automatico dei dati di consenso a SDK di terze parti come AppsFlyer, AdJust, Branch, Kochava, Singular, AirBridge e Tenjin. Funziona tramite introspezione/riflessione, quindi inizializza l'SDK di terze parti con le tue credenziali utilizzando la consueta strategia raccomandata dal provider, e il nostro SDK CMP rileverà l'istanza dell'SDK di terze parti e richiamerà i metodi necessari sotto il cofano.
Eventi CMPManagerDelegate
setOnClickLinkCallback
L'SDK fornisce un meccanismo flessibile di gestione dei link che consente alle applicazioni di personalizzare la gestione degli URL all'interno del livello di consenso. Per impostazione predefinita, tutti i link si aprono all'interno della WebView, ma le applicazioni possono intercettare URL specifici per gestirli esternamente quando necessario.
cmpManager.setOnClickLinkCallback { url ->
if (url.contains("google.com")) {
// Open Google URLs in external browser
try {
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(url)))
true // Return true to indicate we handled the URL
} catch (e: Exception) {
Log.e("DemoApp", "Error opening URL: $url", e)
false
}
} else {
// Let other URLs load in the WebView
false
}
}
didReceiveConsent(consent: String, jsonObject: Map<String, Any>)
Questo viene attivato quando il layer dei consensi è stato chiuso dopo che l'utente ha aggiornato i propri consensi OPPURE quando si invocano metodi che causano modifiche ai consensi, come acceptAll, rejectAll, acceptVendors, rejectVendors, ecc. Ciò significa che l'utente ha accettato o rifiutato alcuni o tutti i consensi e che questi sono stati correttamente salvati sul dispositivo.
didShowConsentLayer
Questo viene attivato quando il layer di consenso è stato effettivamente visualizzato. Significa che non era presente un consenso valido sul dispositivo, quindi è necessario raccoglierne uno nuovo.
didCloseConsentLayer
Questo si verifica quando l'SDK ha verificato la necessità di un consenso, ma non era necessario e il layer non è stato visualizzato. Significa che nel dispositivo ne esiste già uno valido, quindi non è necessario un nuovo e il layer di consenso non verrà visualizzato.
didReceiveError
Questo viene attivato quando l'SDK riscontra un errore, restituendone il codice. In caso di condizioni di rete scadenti, è prevedibile un timeout fisso di circa 10 secondi.
Metodi deprecati
Tutti i metodi riportati di seguito sono stati deprecati e saranno completamente rimossi dall'SDK a partire da luglio 2025.
checkIfConsentIsRequired()
Verifica se è richiesto il consenso dell'utente. Questo effettuerà una chiamata di rete ai nostri server tramite la WebView creata all'interno del nostro SDK, che invierà un messaggio al nostro backend tramite JavaScript. Il nostro backend rileverà se il dispositivo ha un consenso valido o meno, e il messaggio verrà rispedito al WebView, determinando se deve essere visualizzato o meno, consumando una pagina vista nel processo. A seconda del messaggio restituito, l'SDK lo interpreterà e restituirà i suoi risultati tramite il gestore di completamento.
Parametri:
-
completion: (Booleano) -> Unità – Una chiusura chiamata con il risultato, ovverotrueofalse.
Ritorni: Nessuno
Esempio:
cmpManager.checkIfConsentIsRequired { needsConsent ->
toastMessage = "Needs Consent: $needsConsent"
}
checkWithServerAndOpenIfNecessary()
Verifica con il server se è richiesto il consenso e, se necessario, apre il layer di consenso. Questo effettuerà una chiamata di rete ai nostri server tramite il WebView creato all'interno del nostro SDK, consumando una visualizzazione di pagina nel processo. Questa chiamata di rete invierà un messaggio al nostro backend tramite JavaScript, che rileverà se il dispositivo ha un consenso valido o meno, il che a sua volta determinerà se il layer di consenso deve essere visualizzato o meno.
Parametri:
-
completion: Una chiusura chiamata al completamento dell'operazione, con il risultato, ovverotrueofalse.
Ritorni: Nessuno
Esempio:
cmpManager.checkWithServerAndOpenIfNecessary { result ->
result.onSuccess {
toastMessage = "Check and Open Consent Layer operation done successfully."
}.onFailure { error ->
toastMessage = "Check and Open Consent Layer operation failed with error: $error"
}
getAllPurposesIDs()
Recupera tutti gli ID generici memorizzati sul dispositivo, in base alle configurazioni del CMP. Queste informazioni saranno aggiornate solo dopo che il consenso sarà stato correttamente salvato nell’area SharedPreferences, quindi se esegui il controllo subito dopo aver utilizzato metodi che modificano il consenso, come openConsentLayer, acceptAll o rejectAll, ad esempio, allora attendi che venga attivato il callback da quei metodi prima di accedere al metodo hasUserChoice, per assicurarti che le informazioni siano aggiornate.
Restituisce: List<String> – Un elenco di tutti gli ID di destinazione
Esempio:
val allPurposes = cmpManager.getAllPurposesIDs()
Log.d("All purposes: (allPurposes)")
getAllVendorsIDs()
Recupera tutti gli ID dei fornitori memorizzati sul dispositivo, in base alle configurazioni CMP. Queste informazioni saranno aggiornate solo dopo che il consenso sarà stato correttamente salvato nell'area SharedPreferences, quindi se stai effettuando il controllo subito dopo aver utilizzato metodi che innescano modifiche al consenso come openConsentLayer, acceptAll o rejectAll, ad esempio, allora attendi che venga attivato il callback da quei metodi prima di accedere al metodo hasUserChoice, per assicurarti che le informazioni siano aggiornate.
Restituisce: List<String> – Un elenco di tutti gli ID dei fornitori
Esempio:
val allVendors = cmpManager.getAllVendorsIDs()
Log.d("All vendors: (allVendors)")
getDisabledPurposesIDs()
Recupera gli ID di tutte le finalità disabilitate memorizzate sul dispositivo, in base alle configurazioni del CMP e alle scelte dell'utente. Se l'utente accetta tutti i consensi, questo campo risulterà vuoto. Queste informazioni saranno aggiornate solo dopo che il consenso sarà stato correttamente salvato nell'area SharedPreferences, quindi se stai controllando subito dopo aver utilizzato metodi che innescano modifiche al consenso come openConsentLayer, acceptAll o rejectAll, ad esempio, allora attendi che venga attivata la callback da quei metodi prima di accedere al metodo hasUserChoice, per assicurarti che le informazioni siano aggiornate.
Restituisce: List<String> – Un elenco di ID di finalità disabilitati
Esempio:
val disabledPurposes = cmpManager.getDisabledPurposesIDs()
Log.d("Disabled purposes: (disabledPurposes)")
getDisabledVendorsIDs()
Recupera gli ID di tutti i fornitori disabilitati memorizzati sul dispositivo, in base alle configurazioni CMP. Se l'utente accetta tutti i consensi, questo campo risulterà vuoto. Queste informazioni saranno aggiornate solo dopo che il consenso sarà stato correttamente salvato nell'area SharedPreferences, quindi se stai controllando subito dopo aver utilizzato metodi che innescano modifiche al consenso come openConsentLayer, acceptAll o rejectAll, ad esempio, attendi che venga attivata la callback da quei metodi prima di accedere al metodo hasUserChoice, per assicurarti che le informazioni siano aggiornate.
Restituisce: List<String> – Un elenco di ID fornitore disabilitati
Esempio:
val disabledVendors = CMPManager.shared.getDisabledVendorsIDs()
Log.d("Disabled vendors: (disabledVendors)")
getEnabledPurposesIDs()
Recupera gli ID di tutte le finalità abilitate memorizzate sul dispositivo, in base alle configurazioni del CMP. Se l'utente rifiuta tutti i consensi, questo campo risulterà vuoto. Queste informazioni saranno aggiornate solo dopo che il consenso sarà stato correttamente salvato nell'area SharedPreferences, quindi se stai controllando subito dopo aver utilizzato metodi che innescano modifiche al consenso come openConsentLayer, acceptAll o rejectAll, ad esempio, attendi che venga attivata la callback da quei metodi prima di accedere al metodo hasUserChoice, per assicurarti che le informazioni siano aggiornate.
Restituisce: List<String> – Un elenco di ID di finalità abilitati
Esempio:
val enabledPurposes = cmpManager.getEnabledPurposesIDs()
Log.d("Enabled purposes: (enabledPurposes)")
getEnabledVendorsIDs()
Recupera gli ID di tutti i fornitori abilitati memorizzati sul dispositivo. Se l'utente rifiuta tutti i consensi, questo campo risulterà vuoto. Queste informazioni saranno aggiornate solo dopo che il consenso sarà stato correttamente salvato nell'area SharedPreferences, quindi se stai controllando subito dopo aver utilizzato metodi che innescano modifiche al consenso come openConsentLayer, acceptAll o rejectAll, ad esempio, allora attendi che venga attivata la callback da quei metodi prima di accedere al metodo hasUserChoice, per assicurarti che le informazioni siano aggiornate.
Restituisce: List<String> – Un elenco di ID fornitore abilitati
Esempio:
val enabledVendors = cmpManager.getEnabledVendorsIDs()
Log.d("Enabled vendors: (enabledVendors)")
hasPurposeConsent()
Verifica se è stato dato il consenso per uno scopo specifico e se tale consenso è memorizzato sul dispositivo. Controlla l'area SharedPreferences per i consensi accettati o rifiutati e filtra l'ID passato come parametro, restituendo true se il consenso è stato accettato o false in caso contrario.
Parametri:
-
id: String – L'ID dello scopo da verificare
Restituzioni: Boolean – True se viene dato il consenso, false altrimenti
Esempio:
val hasPurposeConsent = cmpManager.hasPurposeConsent(id: "c53")
Log.d("Has consent for purpose c53: (hasPurposeConsent)")
hasUserChoice()
Verifica se l'utente ha effettuato una scelta riguardo ai consensi e se tale consenso è memorizzato sul dispositivo. Ciò significa che l'utente ha accettato tutti i consensi, li ha rifiutati tutti, oppure ha effettuato una scelta mista di consensi rifiutati e accettati, a seconda del design del CMP, che potrebbe consentire agli utenti di accettare alcuni consensi e rifiutarne altri. Queste informazioni saranno aggiornate solo dopo che il consenso sarà stato correttamente salvato nell'area SharedPreferences, quindi se si effettua il controllo subito dopo aver utilizzato metodi che innescano modifiche al consenso come openConsentLayer, acceptAll o rejectAll, ad esempio, attendi che venga attivata la callback da quei metodi prima di accedere al metodo hasUserChoice, per assicurarti che le informazioni siano aggiornate.
Ritorni: Boolean – true se l'utente ha fatto una scelta, false altrimenti
Esempio:
val hasChoice = cmpManager.hasUserChoice()
print("User has made a choice: (hasChoice)")
hasVendorConsent()
Verifica se è stato dato il consenso per un fornitore specifico e se tale consenso è memorizzato sul dispositivo, in base alle configurazioni del CMP. Queste informazioni saranno aggiornate solo dopo che il consenso sarà stato correttamente salvato nell’area SharedPreferences, quindi se esegui la verifica subito dopo aver utilizzato metodi che innescano modifiche al consenso come openConsentLayer, acceptAll o rejectAll, ad esempio, allora attendi che venga attivata la callback da quei metodi prima di accedere al metodo hasUserChoice, per assicurarti che le informazioni siano aggiornate.
Parametri:
-
id: String – L'ID del fornitore da verificare
Restituzioni: Boolean – True se viene dato il consenso, false altrimenti
Esempio:
val hasVendorConsent = cmpManager.hasVendorConsent(id: "s2789")
Log.d("Has consent for vendor s2789: (hasVendorConsent)")