Info
Innehåll

Stöd för Google Consent Mode v2 för SDK:er i appar

Letar du efter en CMP som stöder Google Consent Mode? Se vår Googles samtyckesläge v2 produktsida.

Den här guiden ger instruktioner om hur du integrerar Googles samtyckesläge med det anpassade ConsentManager i din Android- eller iOS-applikation.

Förutsättningar

  • Se till att samtyckesläget är aktiverat (Meny > CMPs > Integrationer > Googles samtyckesläge)
  • Se till att Google Analytics, Google Ads eller andra Google-tjänster finns på din leverantörslista
  • Ett Firebase-projekt med Google Analytics aktiverat.
  • Firebase SDK integrerat i ditt iOS-projekt.
  • CMPManager ställa in i ditt projekt.

Översikt

Nedan hittar du hjälpmetoder som gör att du kan hämta och hantera Googles samtyckesstatus med vår CMP SDK. 

iOS

/// Synchronizes the consent status from CMP to Firebase Analytics
func syncConsentToFirebase() {
    let cmpManager = CMPManager.shared
    guard let googleConsentModeStatus = cmpManager.getGoogleConsentModeStatus() else {
        print("Google Consent Mode status not available")
        return
    }

    // Define all expected consent types
    let consentTypes = [
        "analytics_storage",
        "ad_storage",
        "ad_user_data",
        "ad_personalization"
    ]

    // Build Firebase settings with proper defaults
    var firebaseConsentSettings = [String: String]()

    // Set defaults for all expected types (denied)
    for consentType in consentTypes {
      firebaseConsentSettings[consentType] = "denied"
    }

    // Override with actual values from CMP
    for (key, value) in googleConsentModeStatus {
        if consentTypes.contains(key) {
            firebaseConsentSettings[key] = value
        }
    }

    // Set the consent in Firebase
    Analytics.setConsent(firebaseConsentSettings)
    print("Firebase consent settings updated: \(firebaseConsentSettings)")
}

Android

/// Synchronizes the consent status from CMP to Firebase Analytics
fun updateFirebaseConsent(firebaseAnalytics: FirebaseAnalytics, cmpManager: CMPManager) {
    // Get consent settings from CMP SDK
    val cmpConsentSettings = cmpManager.getGoogleConsentModeStatus()
    
    // Convert to Firebase's types
    val firebaseConsentSettings = mutableMapOf<ConsentType, ConsentStatus>()
    
    cmpConsentSettings.forEach { (key, value) ->
        try {
            val consentType = ConsentType.valueOf(key.uppercase())
            val consentStatus = if (value == "granted") 
                ConsentStatus.GRANTED else ConsentStatus.DENIED
            
            firebaseConsentSettings[consentType] = consentStatus
        } catch (e: IllegalArgumentException) {
            Log.w("ConsentManager", "Unknown consent type: $key")
        }
    }
    
    // Update Firebase consent
    firebaseAnalytics.setConsent(firebaseConsentSettings)
    Log.d("ConsentManager", "Updated Firebase consent: $firebaseConsentSettings")
}

 

Tillbaka till toppen