Questa pagina è rivolta agli sviluppatori che utilizzano l'SDK Google Analytics for Firebase nella propria app e vogliono integrare la modalità di consenso. Per un'introduzione alla modalità di consenso, leggi Panoramica della modalità di consenso.
Google Analytics offre la modalità di consenso per modificare il comportamento dell'SDK in base allo stato del consenso degli utenti. Puoi implementare la modalità di consenso in modo di base o avanzato. Se non sai se implementare la modalità di consenso di base o avanzata, scopri di più sulle differenze tra modalità di consenso di base e avanzata e consulta le linee guida della tua azienda.
Prima di iniziare
Prima di poter gestire il consenso degli utenti, devi implementare:
- SDK Google Analytics per Firebase
Un banner delle impostazioni relative al consenso per acquisire il consenso degli utenti
Configurare la modalità di consenso
Per configurare la modalità di consenso, devi:
Impostare lo stato del consenso predefinito
Per impostazione predefinita, non è impostato nessun valore per la modalità di consenso. Per impostare lo stato del consenso predefinito per la tua app:
- Apri il file AndroidManifest.xml dell'app.
Aggiungi le coppie chiave-valore per la modalità di consenso. La chiave descrive il tipo di consenso e il valore indica lo stato del consenso. I valori possono essere
true
, che indica che il consenso è stato concesso, ofalse
, che indica che il consenso è stato negato.In conformità con gli aggiornamenti alla modalità di consenso per il traffico nello Spazio economico europeo (SEE), è possibile impostare un valore
eu_consent_policy
perad_user_data
ead_personalization
, il che significa che il consenso viene negato solo per gli utenti nelle regioni soggette alle Norme relative al consenso degli utenti dell'UE.Imposta quanto segue:
google_analytics_default_allow_analytics_storage
google_analytics_default_allow_ad_storage
google_analytics_default_allow_ad_user_data
google_analytics_default_allow_ad_personalization_signals
Salva le modifiche. Successivamente, implementa il meccanismo di aggiornamento dei valori del consenso.
Ad esempio, per impostare tutte le concessioni del consenso per tutti i parametri per impostazione predefinita:
<meta-data android:name="google_analytics_default_allow_analytics_storage" android:value="true" />
<meta-data android:name="google_analytics_default_allow_ad_storage" android:value="true" />
<meta-data android:name="google_analytics_default_allow_ad_user_data" android:value="true" />
<meta-data android:name="google_analytics_default_allow_ad_personalization_signals" android:value="true" />
Aggiorna consenso
Per aggiornare i valori del consenso dopo l'avvio di un'app, chiama il metodo setConsent
.
Il valore impostato dal metodo setConsent
sostituisce l'impostazione predefinita e rimane in tutte le esecuzioni dell'app. Il valore rimane in questo stato fino a quando setConsent
non viene richiamato, anche se un utente chiude e riapre l'app. setConsent
aggiorna solo i parametri specificati da te.
Se un utente ritira il consenso precedentemente fornito per Analytics o l'archiviazione degli annunci, Google Analytics elimina tutte le proprietà utente, incluso il consenso per
ad_personalization
. Per mantenere la scelta dell'utente relativa al consenso per la personalizzazione degli annunci, ripristina il valore precedente per la personalizzazione degli annunci utilizzandosetConsent
(Kotlin+KTX | Java) .
L'esempio seguente mostra il metodo setConsent
che aggiorna i diversi
valori del consenso a granted
:
Java
// Set consent types.
Map<ConsentType, ConsentStatus> consentMap = new EnumMap<>(ConsentType.class);
consentMap.put(ConsentType.ANALYTICS_STORAGE, ConsentStatus.GRANTED);
consentMap.put(ConsentType.AD_STORAGE, ConsentStatus.GRANTED);
consentMap.put(ConsentType.AD_USER_DATA, ConsentStatus.GRANTED);
consentMap.put(ConsentType.AD_PERSONALIZATION, ConsentStatus.GRANTED);
mFirebaseAnalytics.setConsent(consentMap);
Kotlin
Firebase.analytics.setConsent {
analyticsStorage(ConsentStatus.GRANTED)
adStorage(ConsentStatus.GRANTED)
adUserData(ConsentStatus.GRANTED)
adPersonalization(ConsentStatus.GRANTED)
}