Informacia
Treść

Obsługa trybu zgody Google w wersji 2 dla pakietów SDK inApp

Od wersji 2.1.0 na Androida i wersji 1.99.3 na iOS

Ten przewodnik zawiera instrukcje dotyczące integracji trybu zgody Google z trybem niestandardowym ConsentManager w aplikacji na Androida lub iOS. Zakłada się, że masz już skonfigurowaną usługę Firebase Analytics w swoim projekcie.

Wymagania wstępne

  1. Upewnij się, że tryb zgody jest włączony (Menu > CMP > Integracje > Tryb zgody Google)
  2. Upewnij się, że Google Analytics, Google Ads lub inne usługi Google znajdują się na Twojej liście dostawców

iOS

Wymagania wstępne
  • Projekt Firebase z włączoną obsługą Google Analytics.
  • Pakiet SDK Firebase zintegrowany z Twoim projektem na iOS.
  • CMPConsentTool skonfigurowane w Twoim projekcie.
Krok 1: Skonfiguruj CMPConsentTool

Ustawiać CMPConsentTool z Twoją konkretną konfiguracją. To narzędzie będzie zarządzać interakcjami w zakresie zgody użytkownika:

import CmpSdk

var cmpManager: CMPConsentTool?

func configureCMPConsentTool() {
let cmpConfig = CMPConfig(...) // Configure as per your requirements

cmpManager = CMPConsentTool(cmpConfig: cmpConfig)
.withUpdateGoogleConsent(onCmpUpdateGoogleConsent)
}
Krok 2: Zajmij się aktualizacjami zgód

Zaimplementuj funkcję wywołania zwrotnego do obsługi aktualizacji statusu zgody. Funkcja ta zostanie uruchomiona w przypadku zmiany zgody użytkownika.

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

Połączenia onCmpUpdateGoogleConsent funkcja aktualizuje zgodę w Google Analytics za pomocą Firebase SDK.

  • Funkcja tłumaczy zgodę użytkownika z CMPConsentTool w formacie zrozumiałym dla Firebase Analytics.
  • Następnie aktualizuje Google Analytics o aktualny stan zgody użytkownika.

Android

Wymagania wstępne
  • Aplikacja na Androida ze zintegrowaną Firebase Analytics.
  • CmpManager klasa zaimplementowana w Twojej aplikacji.
Krok 1: Skonfiguruj Firebase Analytics

Jeśli jeszcze tego nie zrobiłeś, dodaj Firebase Analytics do swojego projektu na Androida. Podążaj za urzędnikiem Dokumentacja Firebase ustawić to.

Krok 2: Zaimplementuj wywołanie zwrotne Google Firebase Analytics
// 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)
}
Powrót do góry