Información
Contenido

Compatibilidad con el modo de consentimiento de Google v2 para SDK inApp

Desde la Versión 2.1.0 en Android y la Versión 1.99.3 en iOS

Esta guía proporciona instrucciones sobre cómo integrar el Modo de consentimiento de Google con el formulario personalizado. ConsentManager en su aplicación de Android o iOS. Se supone que ya tienes Firebase Analytics configurado en tu proyecto.

iOS

Requisitos previos
  • Un proyecto de Firebase con Google Analytics habilitado.
  • Firebase SDK integrado en su proyecto iOS.
  • CMPConsentTool configurar en su proyecto.
Paso 1: Configurar CMPConsentTool

Preparar CMPConsentTool con su configuración específica. Esta herramienta gestionará las interacciones de consentimiento del usuario:

import CmpSdk

var cmpManager: CMPConsentTool?

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

cmpManager = CMPConsentTool(cmpConfig: cmpConfig)
.withUpdateGoogleConsent(onCmpUpdateGoogleConsent)
}
Paso 2: Manejar las actualizaciones de consentimiento

Implemente la función de devolución de llamada para manejar las actualizaciones del estado de consentimiento. Esta función se activará cuando haya un cambio en el consentimiento del usuario.

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

El onCmpUpdateGoogleConsent La función actualiza el consentimiento en Google Analytics utilizando el SDK de Firebase.

  • La función traduce el consentimiento del usuario desde el CMPConsentTool en un formato que Firebase Analytics pueda comprender.
  • Luego actualiza Google Analytics con el estado de consentimiento actual del usuario.

Android

Requisitos previos
  • Aplicación Android con Firebase Analytics integrado.
  • CmpManager clase implementada en su aplicación.
Paso 1: configurar Firebase Analytics

Si aún no lo has hecho, agrega Firebase Analytics a tu proyecto de Android. Sigue al oficial Documentación de Firebase para configurarlo

Paso 2: implementar la devolución de llamada de 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)
}
Volver