Google Consent Mode v2-Unterstützung für InApp-SDKs
Seit Version 2.1.0 in Android und Version 1.99.3 in iOS
Diese Anleitung enthält Anweisungen zur Integration des Google Consent Mode in den benutzerdefinierten Modus ConsentManager in Ihrer Android- oder iOS-Anwendung. Es wird davon ausgegangen, dass Sie Firebase Analytics bereits in Ihrem Projekt eingerichtet haben.
Voraussetzungen:
- Stellen Sie sicher, dass der Einwilligungsmodus aktiviert ist (Menü > CMPs > Integrationen > Google Consent Mode)
- Stellen Sie sicher, dass Google Analytics, Google Ads oder die anderen Google-Dienste in Ihrer Anbieterliste enthalten sind
iOS
Voraussetzungen:
- Ein Firebase-Projekt mit aktiviertem Google Analytics.
- Firebase SDK in Ihr iOS-Projekt integriert.
-
CMPConsentTool
in Ihrem Projekt einrichten.
Schritt 1: CMPConsentTool konfigurieren
Einrichten CMPConsentTool
mit Ihrer spezifischen Konfiguration. Dieses Tool verwaltet Benutzereinwilligungsinteraktionen:
import CmpSdk
var cmpManager: CMPConsentTool?
func configureCMPConsentTool() {
let cmpConfig = CMPConfig(...) // Configure as per your requirements
cmpManager = CMPConsentTool(cmpConfig: cmpConfig)
.withUpdateGoogleConsent(onCmpUpdateGoogleConsent)
}
Schritt 2: Behandeln Sie Einwilligungsaktualisierungen
Implementieren Sie die Rückruffunktion, um Aktualisierungen des Einwilligungsstatus zu verarbeiten. Diese Funktion wird ausgelöst, wenn sich die Einwilligung des Nutzers ändert.
func onCmpUpdateGoogleConsent(consentMap: [String: String]?) -> Void {
guard let consentMap = consentMap else { return }
var firebaseConsentMap: [ConsentType: ConsentStatus] = [:]
consentMap.forEach { key, value in
if let consentType = convertToFirebaseConsentType(from: key),
let consentStatus = convertToFirebaseConsentStatus(from: value) {
firebaseConsentMap[consentType] = consentStatus
}
}
Analytics.setConsent(firebaseConsentMap)
}
func convertToFirebaseConsentType(from key: String) -> ConsentType? {
switch key {
case "analyticsStorage":
return .analyticsStorage
case "adStorage":
return .adStorage
case "adUserData":
return .adUserData
case "adPersonalization":
return .adPersonalization
default:
return nil
}
}
func convertToFirebaseConsentStatus(from value: String) -> ConsentStatus? {
switch value {
case "granted":
return .granted
case "denied":
return .denied
default:
return nil
}
}
Das onCmpUpdateGoogleConsent
Die Funktion aktualisiert die Einwilligung in Google Analytics mithilfe des Firebase SDK.
- Die Funktion übersetzt die Einwilligung des Benutzers aus dem
CMPConsentTool
in ein Format, das Firebase Analytics verstehen kann. - Anschließend aktualisiert es Google Analytics mit dem aktuellen Einwilligungsstatus des Nutzers.
Android
Voraussetzungen:
- Android-Anwendung mit integrierter Firebase Analytics.
-
CmpManager
Klasse, die in Ihrer Anwendung implementiert ist.
Schritt 1: Richten Sie Firebase Analytics ein
Falls noch nicht geschehen, fügen Sie Firebase Analytics zu Ihrem Android-Projekt hinzu. Folgen Sie dem Beamten Firebase-Dokumentation um es einzurichten.
Schritt 2: Implementieren Sie den Google Firebase Analytics Callback
// add the AnalyticsInterface
class ConsentActivity() : FragmentActivity(), CmpGoogleAnalyticsInterface {
// Set the Callback
cmpManager.setGoogleAnalyticsCallback(this)
// Define Callback
override fun updateGoogleConsent(consentMap: Map<ConsentType, ConsentStatus>) {
val firebaseConsentMap = consentMap.entries.associate { entry ->
val firebaseConsentType = when (entry.key) {
ConsentType.ANALYTICS_STORAGE -> FirebaseAnalytics.ConsentType.ANALYTICS_STORAGE
ConsentType.AD_STORAGE -> FirebaseAnalytics.ConsentType.AD_STORAGE
ConsentType.AD_USER_DATA -> FirebaseAnalytics.ConsentType.AD_USER_DATA
ConsentType.AD_PERSONALIZATION -> FirebaseAnalytics.ConsentType.AD_PERSONALIZATION
}
val firebaseConsentStatus = when (entry.value) {
ConsentStatus.GRANTED -> FirebaseAnalytics.ConsentStatus.GRANTED
ConsentStatus.DENIED -> FirebaseAnalytics.ConsentStatus.DENIED
}
firebaseConsentType to firebaseConsentStatus
}
FirebaseAnalytics.getInstance(applicationContext).setConsent(firebaseConsentMap)
}