Info
Inhalt

[Android] 2. API-Dokumentation

Das CMPManager Die Klasse bietet Methoden zum Verwalten der Benutzereinwilligung zur Datenverarbeitung und -verfolgung. Diese Dokumentation behandelt die wichtigsten verfügbaren Methoden für die Integration mobiler Apps.

Alle unten aufgeführten Beispiele stammen aus unserer Demo-App.

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

Initialisierung

UrlConfig()

Legt die URL-Konfiguration für die Consent Manager. Muss mit dem untenstehenden Wert initialisiert und an den getInstance Methode. 

Parameter:

  • id: String – Die CMP-ID
  • domain: String – Die Domäne für das Einwilligungsmanagement
  • language: String - Der Sprachcode (z. B. „EN“)
  • appName: String - Der Name Ihrer App

Ejemplo:

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

setActivity()

Legt die Aktivität fest, die die Zustimmungsebene präsentiert. Es sollte eine ComponentActivity

Parameter:

  • viewController: ComponentActivity – Die Aktivität, bei der die Zustimmungsebene angezeigt wird.

Rücksendung: Keine

Ejemplo:

CMPManager.shared.setPresentingViewController(self)

getUserStatus()

Gibt eine detaillierte Momentaufnahme des aktuellen Zustimmungsstatus und der Einstellungen des Benutzers zurück. Diese Methode bietet umfassende Informationen zu den Zustimmungsentscheidungen des Benutzers, einschließlich seines allgemeinen Zustimmungsstatus, der Berechtigungen einzelner Anbieter, zweckspezifischer Zustimmungen und relevanter Zustimmungszeichenfolgen.

Parameter:

  • Keine

Rücksendung:

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

Ejemplo:

CMPManager.shared.checkIfConsentIsRequired { required in
    print("Consent is required: \(required)")
}

checkAndOpen()

Prüft beim Server, ob eine Zustimmung erforderlich ist, und öffnet bei Bedarf die Zustimmungsebene. Dadurch wird ein Netzwerkaufruf an unsere Server über das in unserem SDK erstellte WKWebView durchgeführt. einen Seitenaufruf verbrauchen im Prozess. Dieser Netzwerkaufruf sendet über JavaScript eine Nachricht an unser Backend, das erkennt, ob das Gerät über eine gültige Zustimmung verfügt oder nicht, was wiederum bestimmt, ob die Zustimmungsebene angezeigt werden muss oder nicht.  

Parameter:

  • jumpToSettings: Ein Boolescher Wert, der bestimmt, ob die angezeigte Zustimmungsebene automatisch zu der Seite führt, auf der eine genauere Kontrolle über die von den Benutzern erteilten Zustimmungen möglich ist, sodass sie ihre Auswahl verfeinern können (wenn auf true) oder den anfänglichen Standardbildschirm mit den Tasten (bei Einstellung auf false oder unterdrückt).
  • completion: Ein Abschluss, der aufgerufen wird, wenn die Operation abgeschlossen ist, mit dem Ergebnis entweder true or false.

Rücksendung: Keine

Ejemplo:

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

erzwingenÖffnen()

Parameter:

  • jumpToSettings: Ein Boolescher Wert, der bestimmt, ob die angezeigte Zustimmungsebene automatisch zu der Seite führt, auf der eine genauere Kontrolle über die von den Benutzern erteilten Zustimmungen möglich ist, sodass sie ihre Auswahl verfeinern können (wenn auf true) oder den anfänglichen Standardbildschirm mit den Tasten (bei Einstellung auf false oder unterdrückt).
  • completion: Ein Abschluss, der aufgerufen wird, wenn der Vorgang abgeschlossen ist und entweder eine erfolgreiche Ausführung oder einen Fehler zurückgibt. 

Rücksendung: Keine

Ejemplo:

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

exportCMPInfo()

Exportiert die aktuell auf dem Gerät gespeicherten Zustimmungsinformationen als Zeichenfolge. Diese Methode ruft die Zustimmungszeichenfolge aus dem Bereich SharedPreferences des Geräts ab und gibt sie zurück. Normalerweise werden diese Informationen an den importCMPInfo Methode.

Rücksendung: String - Die exportierten Einwilligungsinformationen

Ejemplo:

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

getGoogleConsentModeStatus()

Nahtlose Integration mit dem Consent Mode, einer Google-Technologie, die Konvertierungs- und Analysemodellierung ermöglicht. Google-Dienste können Datenlücken schließen, wenn Nutzer nicht zustimmen. Diese Funktion übersetzt die Zustimmung des Benutzers von Ihrem CMP in ein Format, das Firebase Analytics verstehen kann, sodass Sie einfach die Rückgabe dieser Methode abrufen und an die Firebase-Methode .setConsent weitergeben können.

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

Parameter:

  • Keine

Rücksendung: Map<String, String> - Ein Schlüssel-Wert-Array mit den vier Google Consent Mode-Schlüsseln: .analyticsStorage, .adStorage, .adUserData und .adPersonalizationund ihre jeweiligen Werte in Bezug auf .choiceDoesntExist, .granted or .denied.

Ejemplo:

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

Status für Zweck abrufen()

Parameter:

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

Rücksendung: UniqueConsentStatus - Ein Enum mit den Werten .choiceDoesntExist wenn keine Einwilligung vorliegt, .granted or .denied.

Ejemplo:

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

Parameter:

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

Rücksendung: UniqueConsentStatus - Ein Enum mit den Werten .choiceDoesntExist wenn keine Einwilligung vorliegt, .granted or .denied.

Ejemplo:

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

 

alles akzeptieren()

Parameter:

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

Rücksendung: Keine

Ejemplo:

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

AkzeptierenZwecke()

Parameter:

  • purposes: Liste - Eine Liste der zu akzeptierenden Zweck-IDs
  • updatePurpose: Boolean - Gibt an, ob verwandte Zwecke aktualisiert werden sollen
  • completion: Ein Abschluss, der aufgerufen wird, wenn der Vorgang abgeschlossen ist und entweder einen Fehler oder einen Erfolg zurückgibt

Rücksendung: Keine

Ejemplo:

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

Anbieter akzeptieren()

Parameter:

  • vendors: Liste - Eine Liste der zu akzeptierenden Lieferanten-IDs
  • completion: Ein Abschluss, der aufgerufen wird, wenn der Vorgang abgeschlossen ist

Rücksendung: Keine

Ejemplo:

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

importCMPInfo()

Parameter:

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

Rücksendung: Keine

Ejemplo:

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

Alle ablehnen()

Parameter:

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

Rücksendung: Keine

Ejemplo:

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

rejectPurposes()

Parameter:

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

Rücksendung: Keine

Ejemplo:

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

Verkäufer ablehnen()

Parameter:

  • vendors: Liste - Eine Liste der abzulehnenden Lieferanten-IDs
  • completion: Ein Abschluss, der aufgerufen wird, wenn der Vorgang abgeschlossen ist und entweder einen Fehler oder einen Erfolg zurückgibt

Rücksendung: Keine

Ejemplo:

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

zurücksetzenConsentManagementData()

Parameter:

Keine

Rücksendung: Keine

Ejemplo:

cmpManager.resetConsentManagementData()

CMPManagerDelegate-Ereignisse

setOnClickLinkCallback

Das SDK bietet einen flexiblen Link-Handling-Mechanismus, mit dem Anwendungen anpassen können, wie URLs innerhalb der Zustimmungsebene gehandhabt werden. Standardmäßig werden alle Links innerhalb der 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(Zustimmung: String, jsonObject: Map )

Dies wird ausgelöst, wenn die Zustimmungsebene geschlossen wurde, nachdem der Benutzer seine Zustimmungen aktualisiert hatte, ODER wenn Methoden aufgerufen werden, die Änderungen an den Zustimmungen bewirken, wie „acceptAll“, „rejectAll“, „acceptVendors“, „rejectVendors“ usw. Dies bedeutet, dass der Benutzer einige oder alle Zustimmungen akzeptiert oder abgelehnt hat und dass diese korrekt auf dem Gerät gespeichert wurden.

didShowConsentLayer

Dies wird ausgelöst, wenn die Zustimmungsebene tatsächlich angezeigt wurde. Es bedeutet, dass auf dem Gerät keine gültige Zustimmung vorhanden war und daher eine neue eingeholt werden muss.

didCloseConsentLayer


Dies wird ausgelöst, wenn das SDK die Notwendigkeit einer Zustimmung überprüft hat, diese aber nicht erforderlich war und die Ebene nicht angezeigt wurde. Das bedeutet, dass bereits eine gültige Zustimmung im Gerät vorhanden ist, sodass keine neue Zustimmung erforderlich ist und die Zustimmungsebene nicht angezeigt wird.

hatFehler erhalten

Dies wird ausgelöst, wenn beim SDK ein Fehler auftritt und der Code zurückgegeben wird.

Veraltete Methoden

Alle unten aufgeführten Methoden wurden verworfen und wird komplett entfernt aus dem SDK von März / 2025 auf. 

checkIfConsentIsRequired()

Parameter:

  • completion: (Boolean) -> Unit - Eine Closure, die mit dem Ergebnis aufgerufen wird, entweder true or false.

Rücksendung: Keine

Ejemplo:

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

checkWithServerAndOpenIfNecessary()

Prüft beim Server, ob eine Zustimmung erforderlich ist, und öffnet bei Bedarf die Zustimmungsebene. Dadurch wird ein Netzwerkaufruf an unsere Server über die in unserem SDK erstellte WebView durchgeführt. einen Seitenaufruf verbrauchen im Prozess. Dieser Netzwerkaufruf sendet über JavaScript eine Nachricht an unser Backend, das erkennt, ob das Gerät über eine gültige Zustimmung verfügt oder nicht, was wiederum bestimmt, ob die Zustimmungsebene angezeigt werden muss oder nicht.  

Parameter:

  • completion: Ein Abschluss, der aufgerufen wird, wenn die Operation abgeschlossen ist, mit dem Ergebnis entweder true or false.

Rücksendung: Keine

Ejemplo:

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 gemäß den CMP-Konfigurationen alle auf dem Gerät gespeicherten Zweck-IDs ab. Diese Informationen sind erst dann aktuell, wenn die Zustimmung im Bereich „SharedPreferences“ ordnungsgemäß gespeichert wurde., wenn Sie also direkt nach der Verwendung von Methoden prüfen, die Änderungen in der Zustimmung auslösen, wie openConsentLayer, acceptAll or rejectAll, dann zum Beispiel Warten Sie, bis der Rückruf dieser Methoden ausgelöst wird, bevor Sie auf die Methode zugreifen. hasUserChoice, um sicherzustellen, dass die Informationen aktuell sind.

Rücksendung: Liste - Eine Liste aller IDs

Ejemplo:

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

getAllVendorsIDs()

Ruft gemäß den CMP-Konfigurationen alle auf dem Gerät gespeicherten Anbieter-IDs ab. Diese Informationen sind erst dann aktuell, wenn die Zustimmung ordnungsgemäß in den SharedPreferences gespeichert wurde. Gesamtfläche unserer Sitzes, wenn Sie also direkt nach der Verwendung von Methoden prüfen, die Änderungen in der Zustimmung auslösen, wie openConsentLayer, acceptAll or rejectAll, dann zum Beispiel Warten Sie, bis der Rückruf dieser Methoden ausgelöst wird, bevor Sie auf die Methode zugreifen. hasUserChoice, um sicherzustellen, dass die Informationen aktuell sind.

Rücksendung: Liste - Eine Liste aller Lieferanten-IDs

Ejemplo:

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

getDisabledPurposesIDs()

Ruft die IDs aller deaktivierten Zwecke ab, die auf dem Gerät gespeichert sind, entsprechend den CMP-Konfigurationen und den Benutzereinstellungen. Wenn der Benutzer alle Zustimmungen akzeptiert, ist dieses Feld leer.  Diese Informationen sind erst dann aktuell, wenn die Zustimmung im Bereich „SharedPreferences“ ordnungsgemäß gespeichert wurde., wenn Sie also direkt nach der Verwendung von Methoden prüfen, die Änderungen in der Zustimmung auslösen, wie openConsentLayer, acceptAll or rejectAll, dann zum Beispiel Warten Sie, bis der Rückruf dieser Methoden ausgelöst wird, bevor Sie auf die Methode zugreifen. hasUserChoice, um sicherzustellen, dass die Informationen aktuell sind.

Rücksendung: Liste - Eine Liste deaktivierter Zweck-IDs

Ejemplo:

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

getDisabledVendorsIDs()

Ruft die IDs aller deaktivierten Anbieter ab, die auf dem Gerät gespeichert sind, gemäß den CMP-Konfigurationen. Wenn der Benutzer alle Zustimmungen akzeptiert, ist dieses Feld leer. Diese Informationen sind erst dann aktuell, wenn die Zustimmung im Bereich „SharedPreferences“ ordnungsgemäß gespeichert wurde., wenn Sie also direkt nach der Verwendung von Methoden prüfen, die Änderungen in der Zustimmung auslösen, wie openConsentLayer, acceptAll or rejectAll, dann zum Beispiel Warten Sie, bis der Rückruf dieser Methoden ausgelöst wird, bevor Sie auf die Methode zugreifen. hasUserChoice, um sicherzustellen, dass die Informationen aktuell sind.

Rücksendung: Liste - Eine Liste deaktivierter Lieferanten-IDs

Ejemplo:

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

getEnabledPurposesIDs()

Ruft die IDs aller aktivierten Zwecke ab, die auf dem Gerät gespeichert sind, gemäß den CMP-Konfigurationen. Wenn der Benutzer alle Zustimmungen ablehnt, ist dieses Feld leer. Diese Informationen sind erst dann aktuell, wenn die Zustimmung im Bereich „SharedPreferences“ ordnungsgemäß gespeichert wurde., wenn Sie also direkt nach der Verwendung von Methoden prüfen, die Änderungen in der Zustimmung auslösen, wie openConsentLayer, acceptAll or rejectAll, dann zum Beispiel Warten Sie, bis der Rückruf dieser Methoden ausgelöst wird, bevor Sie auf die Methode zugreifen. hasUserChoice, um sicherzustellen, dass die Informationen aktuell sind.

Rücksendung: Liste - Eine Liste der aktivierten Zweck-IDs

Ejemplo:

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

getEnabledVendorsIDs()

Ruft die IDs aller aktivierten Anbieter ab, die auf dem Gerät gespeichert sind. Wenn der Benutzer alle Zustimmungen ablehnt, ist dieses Feld leer. Diese Informationen sind erst dann aktuell, wenn die Zustimmung im Bereich „SharedPreferences“ ordnungsgemäß gespeichert wurde., wenn Sie also direkt nach der Verwendung von Methoden prüfen, die Änderungen in der Zustimmung auslösen, wie openConsentLayer, acceptAll or rejectAll, dann zum Beispiel Warten Sie, bis der Rückruf dieser Methoden ausgelöst wird, bevor Sie auf die Methode zugreifen. hasUserChoice, um sicherzustellen, dass die Informationen aktuell sind.

Rücksendung: Liste - Eine Liste der aktivierten Lieferanten-IDs

Ejemplo:

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

hatPurposeConsent()

Parameter:

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

Rücksendung: Boolean - True wenn eine Einwilligung vorliegt, false Andernfalls

Ejemplo:

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

hatBenutzerauswahl()

Überprüft, ob der Benutzer eine Auswahl bezüglich der Einwilligungen getroffen hat und diese Einwilligung auf dem Gerät gespeichert ist. Das bedeutet, dass der Benutzer entweder alle Einwilligungen akzeptiert, alle abgelehnt oder eine gemischte Auswahl aus abgelehnten und akzeptierten Einwilligungen getroffen hat, je nach CMP-Design, was es den Benutzern ermöglichen könnte, einige der Einwilligungen zuzulassen und andere abzulehnen. Diese Informationen sind erst dann aktuell, wenn die Zustimmung im Bereich „SharedPreferences“ ordnungsgemäß gespeichert wurde., wenn Sie also direkt nach der Verwendung von Methoden prüfen, die Änderungen in der Zustimmung auslösen, wie openConsentLayer, acceptAll or rejectAll, dann zum Beispiel Warten Sie, bis der Rückruf dieser Methoden ausgelöst wird, bevor Sie auf die Methode zugreifen. hasUserChoice, um sicherzustellen, dass die Informationen aktuell sind.

Rücksendung: Boolean - true wenn der Benutzer eine Auswahl getroffen hat, false Andernfalls

Ejemplo:

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

hatVendorConsent()

Parameter:

  • id: String - Die ID des zu prüfenden Lieferanten

Rücksendung: Boolean - True wenn eine Einwilligung vorliegt, false Andernfalls

Ejemplo:

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

 

 

Nach oben