Info
Inhalt

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.

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

Der 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)
}
Nach oben