[Android] 2. API-Dokumentation

Die CMPManager Klasse bietet Methoden zur Verwaltung der Einwilligung des Nutzers zur Datenverarbeitung und zum Tracking. Diese Dokumentation behandelt die wichtigsten Methoden, die für die Integration in mobile Apps zur Verfügung stehen.

Alle unten genannten Beispiele stammen aus unserer Demo-App und sind dort zu finden.

Bitte überprüfen Sie die veralteten Methoden, falls Sie bereits Version 3 unseres CMP-SDK integrieren.

Initialisierung

UrlConfig()

Legt die URL-Konfiguration für den Consent Manager fest. Muss mit dem unten stehenden Wert initialisiert und an die getInstance Methode übergeben werden. 

Parameter:

  • id: String – Die Code-ID, die Sie in Ihrem CMP-Dashboard abgerufen haben
  • domain: String – Die Domain für das Einwilligungsmanagement, die ebenfalls aus Ihrem CMP-Dashboard abgerufen wird
  • language: String – Der Sprachcode (z. B. „EN“, „IT“, „DE“ usw.)
  • appName: String – Der Name Ihrer App, der ausschließlich für Berichtszwecke verwendet wird
  • jsonConfig: JSON-Objekt – Optional, wird nur in besonderen Fällen verwendet; verwende es nur, wenn dies in deinem CMP-Dashboard zusammen mit den anderen oben genannten Parametern ausdrücklich angegeben ist. 
  • noHash: boolean – Verhindert, dass die von der Webansicht geladene URL einen Hash (#) verwendet, um die Einwilligung weiterzugeben 

Beispiel:

val urlConfig = UrlConfig(
    id = "YOUR_CODE_ID_HERE",
    domain = "delivery.consentmanager.net",
    language = "EN",
    appName = "CMDemoAppKotlin"
)

setActivity()

Legt die Aktivität fest, die die Einwilligungsschicht anzeigt. Es sollte eine ComponentActivity

Parameter:

  • viewController: ComponentActivity – Die Aktivität, in der die Einwilligungsschicht angezeigt wird.

Rückgaben: Keine

Beispiel:

CMPManager.shared.setPresentingViewController(self)

 

ConsentLayerUIConfig()-Parameter

  • position: Strategie zur Positionierung des Dialogs (Standard: Position.FULL_SCREEN):
    • Position.FULL_SCREEN – Deckt den gesamten Bildschirm ab
    • Position.HALF_SCREEN_TOP – Obere Hälfte des Bildschirms
    • Position.HALF_SCREEN_BOTTOM – Untere Hälfte des Bildschirms
    • Position.custom(width: Int, height: Int) – Benutzerdefinierte Abmessungen in Pixeln
  • backgroundStyle: Hintergrunddarstellung (Standard: `BackgroundStyle.dimmed(Color.BLACK, 0.5f))
  • cornerRadius: Float – Eckenradius in dp (Standard: 0f).
    • Hinweis: Erfordert SDK-Version 3.7.0+ für korrektes WebView-Inhalts-Clipping
  • respectsSafeArea: Boolescher Wert – Gibt an, ob die Einrückungen der System-UI berücksichtigt werden sollen (Standard: true).
    • Hinweis: Unter Android 11+ (API 30) ermöglicht die Einstellung false erlaubt es dem Dialog, sich unter die Systemleisten zu erstrecken
  • isCancelable: Boolescher Wert – Gibt an, ob der Dialog geschlossen werden kann (Standard: true)
  • darkMode: Boolescher Wert – Dark-Mode-Stil aktivieren (Standard: 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
)

Verwaltung der Einwilligungs-Layer

getUserStatus()

Liefert einen detaillierten Überblick über den aktuellen Zustimmungsstatus und die Präferenzen des Nutzers. Diese Methode bietet umfassende Informationen zu den Einwilligungsentscheidungen des Nutzers, einschließlich seines allgemeinen Zustimmungsstatus, individueller Anbieterberechtigungen, zweckgebundener Einwilligungen und relevanter Einwilligungsstrings.

Parameter:

  • Keine

Rückgaben:

Rückgabetyp: CMPUserStatusResponse Objekt, erklärt im folgenden Code. 

Beispiel:

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()

Prüft, ob für den Nutzer eine Einwilligung erforderlich ist. Dies führt zu einem Netzwerkaufruf an unsere Server über die in unserem SDK erstellte WebView, die über JavaScript eine Nachricht an unser Backend sendet. Unser Backend erkennt, ob das Gerät über eine gültige Einwilligung verfügt oder nicht, und sendet eine Nachricht an die WebView zurück, die bestimmt, ob sie angezeigt werden muss oder nicht, wobei dabei ein Seitenaufruf verbraucht wird.

Parameter: Keine

Zurück:

  • completion: (Boolescher Wert) -> Einheit – Eine Closure, die mit dem Ergebnis aufgerufen wird, entweder true wenn auf dem Gerät keine gültige Einwilligung gefunden wurde, oder false ansonsten.

Beispiel:

cmpManager.isConsentRequired { needsConsent ->
	toastMessage = "Needs Consent: $needsConsent"
}

checkAndOpen()

Prüft beim Server, ob eine Einwilligung erforderlich ist, und öffnet gegebenenfalls die Einwilligungsschicht. Dies löst einen Netzwerkaufruf an unsere Server über die in unserem SDK erstellte WKWebView aus, wobei dabei ein Seitenaufruf verbraucht wird. Dieser Netzwerkaufruf sendet über JavaScript eine Nachricht an unser Backend, das erkennt, ob das Gerät über eine gültige Einwilligung verfügt oder nicht, was wiederum bestimmt, ob die Einwilligungsmaske angezeigt werden muss oder nicht.  

Parameter:

  • jumpToSettings: Ein boolescher Wert, der bestimmt, ob die angezeigte Einwilligungsschicht automatisch zu der Seite führt, auf der eine detailliertere Kontrolle über die von den Nutzern erteilten Einwilligungen möglich ist, sodass diese ihre Auswahl verfeinern können (bei Einstellung auf true) oder zum anfänglichen Standardbildschirm mit den Schaltflächen (wenn auf false oder unterdrückt).
  • completion: Ein Callback, der aufgerufen wird, wenn der Vorgang abgeschlossen ist, mit dem Ergebnis, entweder true oder false.

Rückgaben: Keine

Beispiel:

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()

Öffnet die Einwilligungsschicht. Dabei wird eine Netzwerkanfrage an unser Backend gestellt, was einen Seitenaufruf verbraucht. Es wird die Einwilligungsschicht angezeigt, in der der Nutzer entweder alle Optionen akzeptieren oder ablehnen kann oder, abhängig vom Parameter „jumpToSettings“, die Einwilligungen detaillierter steuern kann. 

Parameter:

  • jumpToSettings: Ein boolescher Wert, der bestimmt, ob die angezeigte Einwilligungsschicht automatisch zu der Seite führt, auf der eine detailliertere Kontrolle über die von den Nutzern erteilten Einwilligungen möglich ist, sodass diese ihre Auswahl verfeinern können (bei Einstellung auf true) oder zum anfänglichen Standardbildschirm mit den Schaltflächen (wenn auf false oder unterdrückt).
  • completion: Eine Closure, die aufgerufen wird, wenn der Vorgang abgeschlossen ist, und entweder einen Erfolg oder einen Fehler zurückgibt. 

Rückgaben: Keine

Beispiel:

cmpManager.openConsentLayer { result ->
	result.onFailure { error ->
    	toastMessage = "Error: ${error.message}"
	}
}

Einwilligungsstatus

exportCMPInfo()

Exportiert die aktuell auf dem Gerät gespeicherten Einwilligungsinformationen als Zeichenkette. Diese Methode ruft die Einwilligungszeichenkette aus dem SharedPreferences-Bereich des Geräts ab und gibt sie zurück. Normalerweise werden diese Informationen an die importCMPInfo Methode übergeben.

Rückgabewert: String – Die exportierten Einwilligungsinformationen

Beispiel:

val cmpInfo = CMPManager.shared.exportCMPInfo()
Log.d("Exported CMP info: (cmpInfo)")

getGoogleConsentModeStatus()

Nahtlose Integration mit dem Consent Mode, einer Google-Technologie, die Conversion- und Analysemodellierung ermöglicht, sodass die Dienste von Google Datenlücken füllen können, wenn Nutzer keine Einwilligung erteilen. Diese Funktion übersetzt die Einwilligung des Nutzers aus Ihrem CMP in ein Format, das Firebase Analytics verstehen kann, sodass Sie einfach den Rückgabewert dieser Methode abrufen und an die Firebase-Methode .setConsent weiterleiten können.

  • Anschließend wird Google Analytics mit dem aktuellen Einwilligungsstatus des Nutzers aktualisiert.

Parameter:

  • Keine

Gibt zurück: Map<String, String> – Ein Schlüssel-Wert-Array mit den vier Schlüsseln des Google Consent Mode: .analyticsStorage, .adStorage, .adUserData und .adPersonalization, sowie deren jeweilige Werte in Form von .choiceDoesntExist, .granted oder .denied.

Beispiel:

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()

Prüft, ob für einen bestimmten Zweck eine Einwilligung erteilt wurde und ob diese Einwilligung auf dem Gerät gespeichert ist. Es überprüft den Bereich „UserDefaults“ auf akzeptierte oder abgelehnte Einwilligungen und filtert die als Parameter übergebene ID, wobei „true“ zurückgegeben wird, wenn die Einwilligung akzeptiert wurde, andernfalls „false“. 

Parameter:

  • id: String – Die ID des zu prüfenden Zwecks

Ergebnisse: UniqueConsentStatus – Eine Aufzählung mit den Werten .choiceDoesntExist , falls keine Einwilligung erteilt wurde, .granted oder .denied.

Beispiel:

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()

Prüft, ob für einen bestimmten Anbieter eine Einwilligung erteilt wurde und diese Einwilligung auf dem Gerät gespeichert ist. Es überprüft den Bereich „UserDefaults“ auf akzeptierte oder abgelehnte Einwilligungen und filtert die als Parameter übergebene ID, wobei „true“ zurückgegeben wird, wenn die Einwilligung akzeptiert wurde, andernfalls „false“. 

Parameter:

  • id: String – Die ID des zu prüfenden Zwecks

Ergebnisse: UniqueConsentStatus – Eine Aufzählung mit den Werten .choiceDoesntExist , falls keine Einwilligung erteilt wurde, .granted oder .denied.

Beispiel:

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"
}

 

Einwilligungsänderung

acceptAll()

Akzeptiert die Einwilligung für alle Zwecke und Anbieter und verbraucht dabei einen Seitenaufruf. Es wird ein Netzwerkaufruf an unser Backend über eine in die WebView eingefügte Nachricht getätigt, der die Annahme aller Einwilligungen entsprechend der CMP-Konfiguration auslöst. Diese Informationen stehen den anderen Methoden erst zur Verfügung, nachdem der Callback einen Erfolg oder Misserfolg zurückgibt, was bedeutet, dass sie von unserem Backend erfolgreich verarbeitet und auf dem Gerät gespeichert wurden. 

Parameter:

  • completion: Eine Closure, die aufgerufen wird, wenn der Vorgang abgeschlossen ist, und einen Fehler oder Erfolg zurückgibt.

Rückgaben: Keine

Beispiel:

cmpManager.acceptAll { result ->
    result.onSuccess {
	    toastMessage = "All consents accepted"
  	}.onFailure { error ->
		toastMessage = "Error: ${error.message}"
	}
}

acceptPurposes()

Akzeptiert die Einwilligung für bestimmte Zwecke und verbraucht dabei einen Seitenaufruf. Es wird ein Netzwerkaufruf an unser Backend über eine in die WebView eingefügte Nachricht getätigt, der die Akzeptanz der als Parameter übergebenen Zwecke auslöst, entsprechend der CMP-Konfiguration. Diese Informationen stehen den anderen Methoden erst dann zur Verfügung, wenn der Callback einen Erfolg oder Misserfolg zurückgibt, was bedeutet, dass sie von unserem Backend erfolgreich verarbeitet und auf dem Gerät gespeichert wurden. 

Parameter:

  • purposes: List<String> – Eine Liste von Zweck-IDs, die akzeptiert werden sollen
  • updatePurpose: Boolescher Wert – Ob verwandte Zwecke aktualisiert werden sollen
  • completion: Eine Closure, die aufgerufen wird, wenn der Vorgang abgeschlossen ist, und entweder einen Fehler oder einen Erfolg zurückgibt

Rückgaben: Keine

Beispiel:

cmpManager.acceptPurposes(listOf("c52", "c53"), true) { result ->
	  	result.onSuccess {
	  	toastMessage = "Purposes enabled"
  	}.onFailure { error ->
  		toastMessage = "Error: ${error.message}"
    }
}

acceptVendors()

Akzeptiert die Einwilligung für bestimmte Anbieter und verbraucht dabei einen Seitenaufruf. Es wird ein Netzwerkaufruf an unser Backend über eine in die WebView eingefügte Nachricht getätigt, der die Akzeptanz der als Parameter übergebenen Anbieter gemäß der CMP-Konfiguration auslöst. Diese Informationen stehen den anderen Methoden erst dann zur Verfügung, wenn der Callback einen Erfolg oder Misserfolg zurückgibt, was bedeutet, dass sie von unserem Backend erfolgreich verarbeitet und auf dem Gerät gespeichert wurden.  

Parameter:

  • vendors: List<String> – Eine Liste von Anbieter-IDs, die akzeptiert werden sollen
  • completion: Ein Callback, der aufgerufen wird, wenn der Vorgang abgeschlossen ist

Rückgaben: Keine

Beispiel:

cmpManager.acceptVendors(listOf("s2790", "s2791")) { result ->
	result.onSuccess {
		toastMessage = "Vendors Enabled"
	}.onFailure { error ->
		toastMessage = "Error: ${error.message}"
	}
}

importCMPInfo()

Importiert Einwilligungsinformationen aus einer CMP-Zeichenkette. Diese erhält eine einfache Zeichenkette, die die Einwilligungsdaten enthält, die in der Regel über die exportCMPInfo Methode. Diese Informationen werden im SharedPreferences-Bereich des Geräts gespeichert und gleichzeitig über eine in die WebView eingefügte Nachricht an unser Backend gesendet, wobei dabei ein Seitenaufruf verbraucht wird

Parameter:

  • cmpString: String – Der zu importierende CMP-String
  • completion: Ein Callback, der aufgerufen wird, wenn der Vorgang abgeschlossen ist, und entweder einen Fehler oder einen Erfolg zurückgibt

Rückgaben: Keine

Beispiel:

val cmpString = "Q1FERkg3QVFERkg3QUFmR01CSVRCQkVnQUFBQUFBQUFBQWlnQUFBQUFBQUEjXzUxXzUyXzUzXzU0XzU1XzU2XyNfczI3ODlfczI3OTBfczI3OTFfczI2OTdfczk3MV9VXyMxLS0tIw"
cmpManager.importCMPInfo(cmpString) { result ->
	result.onSuccess {
		toastMessage = "Vendors Enabled"
	}.onFailure { error ->
		toastMessage = "Error: ${error.message}"
	}
}

rejectAll()

Lehnt die Einwilligung für alle Zwecke und Anbieter ab und verbraucht dabei einen Seitenaufruf. Es wird ein Netzwerkaufruf an unser Backend über eine in die WebView eingefügte Nachricht getätigt, der die Ablehnung aller Einwilligungen entsprechend der CMP-Konfiguration auslöst. Diese Informationen stehen den anderen Methoden erst zur Verfügung, nachdem der Callback einen Erfolg oder Misserfolg zurückgibt, was bedeutet, dass sie erfolgreich von unserem Backend verarbeitet und auf dem Gerät gespeichert wurden. 

Parameter:

  • completion: Ein Callback, der aufgerufen wird, wenn der Vorgang abgeschlossen ist

Rückgaben: Keine

Beispiel:

cmpManager.rejectAll { result ->
	result.onSuccess {
		toastMessage = "All consents rejected"
	}.onFailure { error ->
		toastMessage = "Error: ${error.message}"
	}
}

rejectPurposes()

Lehnt die Einwilligung für bestimmte Zwecke ab und verbraucht dabei einen Seitenaufruf. Es wird ein Netzwerkaufruf an unser Backend über eine in die WebView eingefügte Nachricht getätigt, der die Ablehnung der als Parameter übergebenen Zwecke entsprechend der CMP-Konfiguration auslöst. Diese Informationen stehen den anderen Methoden erst dann zur Verfügung, wenn der Callback einen Erfolg oder Misserfolg zurückgibt, was bedeutet, dass sie von unserem Backend erfolgreich verarbeitet und auf dem Gerät gespeichert wurden. 

Parameter:

  • purposes: List<String> – Eine Liste von Zweck-IDs, die abgelehnt werden sollen
  • updateVendor: Boolean – Ob zugehörige Anbieter aktualisiert werden sollen
  • completion: Ein Callback, der aufgerufen wird, wenn der Vorgang abgeschlossen ist

Rückgaben: Keine

Beispiel:

cmpManager.rejectPurposes(listOf("c52", "c53"), true) { result ->
    result.onSuccess {
      toastMessage = "Purposes disabled"
    }.onFailure { error ->
      toastMessage = "Error: ${error.message}"
	}
}

rejectVendors()

Lehnt die Einwilligung für bestimmte Anbieter ab und verbraucht dabei einen Seitenaufruf. Es wird ein Netzwerkaufruf an unser Backend über eine in die WebView eingefügte Nachricht getätigt, der die Ablehnung der als Parameter übergebenen Anbieter gemäß der CMP-Konfiguration auslöst. Diese Informationen stehen den anderen Methoden erst zur Verfügung, nachdem der Callback einen Erfolg oder Misserfolg zurückgibt, was bedeutet, dass sie von unserem Backend erfolgreich verarbeitet und auf dem Gerät gespeichert wurden. 

Parameter:

  • vendors: List<String> – Eine Liste von Anbieter-IDs, die abgelehnt werden sollen
  • completion: Eine Closure, die aufgerufen wird, wenn der Vorgang abgeschlossen ist, und entweder einen Fehler oder einen Erfolg zurückgibt

Rückgaben: Keine

Beispiel:

cmpManager.rejectVendors(listOf("s2790", "s2791")) { result ->
	result.onSuccess {
		toastMessage = "Vendors Disabled"
	}.onFailure { error ->
		toastMessage = "Error: ${error.message}"
	}
}

resetConsentManagementData()

Dadurch werden die Schlüssel-Wert-Paare aus den Bereichen „UserDefaults“ und „SharedPreferences“ des Geräts entfernt. Um die Daten vollständig zu löschen, musst du möglicherweise Cookies, Datensätze sowie den Webview-Verlauf und den Cache entfernen, um die Notwendigkeit einer neuen Einwilligung vollständig zu erzwingen.  

Parameter:

Keine

Rückgaben: Keine

Beispiel:

cmpManager.resetConsentManagementData()

Weitergabe von Einwilligungsdaten an SDKs von Drittanbietern

updateThirdPartyConsent

Diese Methode sorgt für die automatische Weitergabe von Einwilligungsdaten an SDKs von Drittanbietern wie AppsFlyer, AdJust, Branch, Kochava, Singular, AirBridge und Tenjin. Sie funktioniert über Introspection/Reflection. Initialisiere also das Drittanbieter-SDK mit deinen Anmeldedaten unter Verwendung der vom Anbieter empfohlenen Strategie, und unser CMP-SDK erkennt die Instanz des Drittanbieter-SDKs und ruft im Hintergrund die erforderlichen Methoden auf. 

 

CMPManagerDelegate-Ereignisse

setOnClickLinkCallback

Das SDK bietet einen flexiblen Mechanismus zur Link-Verarbeitung, mit dem Anwendungen festlegen können, wie URLs innerhalb der Einwilligungsschicht behandelt werden. Standardmäßig werden alle Links im WebView geöffnet, aber Anwendungen können bestimmte URLs abfangen, um sie bei Bedarf extern zu verarbeiten.

        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>)

Dies wird ausgelöst, wenn die Einwilligungsschicht geschlossen wurde, nachdem der Nutzer seine Einwilligungen aktualisiert hat, ODER beim Aufruf von Methoden, die Änderungen an den Einwilligungen bewirken, wie acceptAll, rejectAll, acceptVendors, rejectVendors usw. Das bedeutet, dass der Nutzer einige oder alle Einwilligungen akzeptiert oder abgelehnt hat und dass diese korrekt auf dem Gerät gespeichert wurden.

didShowConsentLayer

Dies wird ausgelöst, wenn die Einwilligungsmaske tatsächlich angezeigt wurde. Das bedeutet, dass auf dem Gerät keine gültige Einwilligung vorlag, sodass eine neue eingeholt werden sollte.

didCloseConsentLayer


Dies wird ausgelöst, wenn das SDK die Notwendigkeit einer Einwilligung geprüft hat, diese jedoch nicht erforderlich war und die Einwilligungsmaske daher nicht angezeigt wurde. Das bedeutet, dass auf dem Gerät bereits eine gültige Einwilligung vorliegt, sodass keine neue erforderlich ist und die Einwilligungsmaske nicht angezeigt wird.

didReceiveError

Dies wird ausgelöst, wenn das SDK auf einen Fehler stößt, und gibt dessen Code zurück. Bei schlechten Netzwerkbedingungen ist mit einer festen Zeitüberschreitung von etwa 10 Sekunden zu rechnen. 

Veraltete Methoden

Alle unten aufgeführten Methoden sind veraltet und werden ab Juli 2025 vollständig aus dem SDK entfernt

checkIfConsentIsRequired()

Prüft, ob für den Nutzer eine Einwilligung erforderlich ist. Dies führt zu einem Netzwerkaufruf an unsere Server über die in unserem SDK erstellte WebView, die über JavaScript eine Nachricht an unser Backend sendet. Unser Backend erkennt, ob das Gerät über eine gültige Einwilligung verfügt oder nicht, und sendet eine Nachricht an die WebView zurück, die bestimmt, ob sie angezeigt werden muss oder nicht, wobei dabei eine Seitenaufruf gezählt wird. Je nach der zurückgegebenen Nachricht interpretiert das SDK diese und gibt die Ergebnisse über den Completion-Handler zurück.

Parameter:

  • completion: (Boolescher Wert) -> Einheit – Eine mit dem Ergebnis aufgerufene Closure, entweder true oder false.

Rückgaben: Keine

Beispiel:

cmpManager.checkIfConsentIsRequired { needsConsent ->
	toastMessage = "Needs Consent: $needsConsent"
}

checkWithServerAndOpenIfNecessary()

Prüft beim Server, ob eine Einwilligung erforderlich ist, und öffnet gegebenenfalls die Einwilligungsschicht. Dies löst einen Netzwerkaufruf an unsere Server über die in unserem SDK erstellte WebView aus, wobei dabei ein Seitenaufruf verbraucht wird. Dieser Netzwerkaufruf sendet über JavaScript eine Nachricht an unser Backend, das erkennt, ob das Gerät über eine gültige Einwilligung verfügt oder nicht, was wiederum bestimmt, ob die Einwilligungsmaske angezeigt werden muss oder nicht.  

Parameter:

  • completion: Ein Callback, der aufgerufen wird, wenn der Vorgang abgeschlossen ist, mit dem Ergebnis, entweder true oder false.

Rückgaben: Keine

Beispiel:

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()

Ruft alle auf dem Gerät gespeicherten Zweck-IDs gemäß den CMP-Konfigurationen ab. Diese Informationen sind erst dann aktuell, wenn die Einwilligung ordnungsgemäß im SharedPreferences-Bereich gespeichert wurde. Wenn du also direkt nach der Verwendung von Methoden überprüfst, die Änderungen an der Einwilligung auslösen, wie openConsentLayer, acceptAll oder rejectAll, dann warten Sie, bis der Callback dieser Methoden ausgelöst wurde, bevor Sie auf die Methode hasUserChoice, um sicherzustellen, dass die Informationen aktuell sind.

Rückgabetyp: List<String> – Eine Liste aller Zweck-IDs

Beispiel:

val allPurposes = cmpManager.getAllPurposesIDs()
Log.d("All purposes: (allPurposes)")

getAllVendorsIDs()

Ruft alle auf dem Gerät gespeicherten Anbieter-IDs gemäß den CMP-Konfigurationen ab. Diese Informationen sind erst dann aktuell, wenn die Einwilligung ordnungsgemäß im SharedPreferences-Bereich gespeichert wurde. Wenn du also direkt nach der Verwendung von Methoden überprüfst, die Änderungen an der Einwilligung auslösen, wie openConsentLayer, acceptAll oder rejectAll, dann warten Sie, bis der Callback dieser Methoden ausgelöst wurde, bevor Sie auf die Methode hasUserChoice, um sicherzustellen, dass die Informationen aktuell sind.

Rückgabetyp: List<String> – Eine Liste aller Anbieter-IDs

Beispiel:

val allVendors = cmpManager.getAllVendorsIDs()
Log.d("All vendors: (allVendors)")

getDisabledPurposesIDs()

Ruft die IDs aller auf dem Gerät gespeicherten deaktivierten Zwecke ab, entsprechend den CMP-Konfigurationen und den Nutzerauswahlen. Wenn der Nutzer alle Einwilligungen akzeptiert, ist dies leer.  Diese Informationen sind erst dann aktuell, wenn die Einwilligung ordnungsgemäß im SharedPreferences-Bereich gespeichert wurde. Wenn du also direkt nach der Verwendung von Methoden überprüfst, die Änderungen an der Einwilligung auslösen, wie openConsentLayer, acceptAll oder rejectAll, dann warten Sie, bis der Callback dieser Methoden ausgelöst wurde, bevor Sie auf die Methode hasUserChoice, um sicherzustellen, dass die Informationen aktuell sind.

Rückgabewert: List<String> – Eine Liste deaktivierter Zweck-IDs

Beispiel:

val disabledPurposes = cmpManager.getDisabledPurposesIDs()
Log.d("Disabled purposes: (disabledPurposes)")

getDisabledVendorsIDs()

Ruft die IDs aller auf dem Gerät gespeicherten deaktivierten Anbieter gemäß den CMP-Konfigurationen ab. Wenn der Nutzer alle Einwilligungen akzeptiert, ist dieses Feld leer. Diese Informationen sind erst dann aktuell, wenn die Einwilligung ordnungsgemäß im SharedPreferences-Bereich gespeichert wurde. Wenn du also direkt nach der Verwendung von Methoden überprüfst, die Änderungen an der Einwilligung auslösen, wie openConsentLayer, acceptAll oder rejectAll, dann warten Sie, bis der Callback dieser Methoden ausgelöst wurde, bevor Sie auf die Methode hasUserChoice, um sicherzustellen, dass die Informationen aktuell sind.

Rückgabewert: List<String> – Eine Liste deaktivierter Anbieter-IDs

Beispiel:

val disabledVendors = CMPManager.shared.getDisabledVendorsIDs()
Log.d("Disabled vendors: (disabledVendors)")

getEnabledPurposesIDs()

Ruft die IDs aller auf dem Gerät gespeicherten, aktivierten Zwecke gemäß den CMP-Konfigurationen ab. Wenn der Nutzer alle Einwilligungen ablehnt, ist dies leer. Diese Informationen sind erst dann aktuell, wenn die Einwilligung ordnungsgemäß im SharedPreferences-Bereich gespeichert wurde. Wenn du also direkt nach der Verwendung von Methoden überprüfst, die Änderungen an der Einwilligung auslösen, wie openConsentLayer, acceptAll oder rejectAll, warten Sie, bis der Callback dieser Methoden ausgelöst wurde, bevor Sie auf die Methode hasUserChoice, um sicherzustellen, dass die Informationen aktuell sind.

Rückgabewert: List<String> – Eine Liste der aktivierten Zweck-IDs

Beispiel:

val enabledPurposes = cmpManager.getEnabledPurposesIDs()
Log.d("Enabled purposes: (enabledPurposes)")

getEnabledVendorsIDs()

Ruft die IDs aller auf dem Gerät gespeicherten aktivierten Anbieter ab. Wenn der Nutzer alle Einwilligungen ablehnt, ist dieses Feld leer. Diese Informationen sind erst dann aktuell, wenn die Einwilligung ordnungsgemäß im SharedPreferences-Bereich gespeichert wurde. Wenn du also direkt nach der Verwendung von Methoden überprüfst, die Änderungen an der Einwilligung auslösen, wie openConsentLayer, acceptAll oder rejectAll, warten Sie, bis der Callback dieser Methoden ausgelöst wurde, bevor Sie auf die Methode hasUserChoice, um sicherzustellen, dass die Informationen aktuell sind.

Rückgabetyp: List<String> – Eine Liste der aktivierten Anbieter-IDs

Beispiel:

val enabledVendors = cmpManager.getEnabledVendorsIDs()
Log.d("Enabled vendors: (enabledVendors)")

hasPurposeConsent()

Prüft, ob für einen bestimmten Zweck eine Einwilligung erteilt wurde und ob diese Einwilligung auf dem Gerät gespeichert ist. Es überprüft den Bereich „SharedPreferences“ auf akzeptierte oder abgelehnte Einwilligungen und filtert die als Parameter übergebene ID, wobei „true“ zurückgegeben wird, wenn die Einwilligung akzeptiert wurde, andernfalls „false“. 

Parameter:

  • id: String – Die ID des zu prüfenden Zwecks

Rückgabe: BooleanTrue Wenn die Einwilligung erteilt wird, false ansonsten

Beispiel:

val hasPurposeConsent = cmpManager.hasPurposeConsent(id: "c53")
Log.d("Has consent for purpose c53: (hasPurposeConsent)")

hasUserChoice()

Prüft, ob der Nutzer eine Entscheidung bezüglich der Einwilligungen getroffen hat und diese Einwilligung auf dem Gerät gespeichert ist. Das bedeutet, dass der Nutzer entweder alle Einwilligungen akzeptiert, alle abgelehnt oder eine gemischte Auswahl aus abgelehnten und akzeptierten Einwilligungen getroffen hat, je nach Gestaltung des CMP, das es den Nutzern möglicherweise erlaubt, einige Einwilligungen zu erteilen und andere abzulehnen. Diese Informationen sind erst dann aktuell, wenn die Einwilligung ordnungsgemäß im SharedPreferences-Bereich gespeichert wurde. Wenn Sie also direkt nach der Verwendung von Methoden prüfen, die Änderungen an der Einwilligung auslösen, wie z. B. openConsentLayer, acceptAll oder rejectAll, warten Sie, bis der Callback dieser Methoden ausgelöst wurde, bevor Sie auf die Methode hasUserChoice, um sicherzustellen, dass die Informationen aktuell sind.

Rückgabe: Booleantrue Wenn der Nutzer eine Auswahl getroffen hat, false ansonsten

Beispiel:

val hasChoice = cmpManager.hasUserChoice()
print("User has made a choice: (hasChoice)")

hasVendorConsent()

Prüft, ob für einen bestimmten Anbieter eine Einwilligung erteilt wurde und diese Einwilligung gemäß den CMP-Konfigurationen auf dem Gerät gespeichert ist. Diese Informationen sind erst dann aktuell, wenn die Einwilligung ordnungsgemäß im SharedPreferences-Bereich gespeichert wurde. Wenn du also direkt nach der Verwendung von Methoden prüfst, die Änderungen an der Einwilligung auslösen, wie openConsentLayer, acceptAll oder rejectAll, dann warten Sie, bis der Callback dieser Methoden ausgelöst wurde, bevor Sie auf die Methode hasUserChoice, um sicherzustellen, dass die Informationen aktuell sind.

Parameter:

  • id: String – Die ID des Anbieters, die überprüft werden soll

Rückgabe: BooleanTrue Wenn die Einwilligung erteilt wird, false ansonsten

Beispiel:

val hasVendorConsent = cmpManager.hasVendorConsent(id: "s2789")
Log.d("Has consent for vendor s2789: (hasVendorConsent)")

 

 

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!