Google Analytics for Firebase offre una modalità di consenso che permette di adattare il comportamento dell’SDK a seconda della scelta degli utenti. Questa guida ti illustrerà passo passo come integrare Google Consent Mode v2 per Firebase Analytics utilizzando l’SDK di iubenda.
Integrazione di Google Consent Mode v2 nella tua app
Prima di iniziare, assicurati che l’SDK di Firebase sia integrato correttamente nella tua app. Trovi maggiori informazioni qui per Android e qui per iOS. Invece, per integrare l’SDK di iubenda nella tua app, segui questa guida.
Configurazione di Consent Mode
Per configurare Consent Mode v2 nella tua app, devi:
- Impostare lo stato di consenso predefinito: di default, non sono impostati valori per la modalità di consenso, ma devi definirli nel file manifest (Android) o Info.plist (iOS) della tua app.
- Aggiornare i valori del consenso: aggiorna i valori del consenso in Firebase Analytics in base alle preferenze utente acquisite tramite l’SDK di iubenda.
I tipi di consenso indicano come vengono archiviati i dati. Nella tabelle seguente sono elencati e descritti quelli principali:
Tipo di consenso | Descrizione |
---|---|
ad_storage | Permette di conservare i dati, come cookie (siti web) o identificatori del dispositivo (app), a fini pubblicitari. |
ad_user_data | Imposta il consenso per l’invio dei dati dell’utente a Google per scopi pubblicitari online. |
ad_personalization | Imposta il consenso per la pubblicità personalizzata. |
analytics_storage | Permette di conservare i dati, come cookie (siti web) o identificatori del dispositivo (app), a fini statistici, ad esempio per valutare la durata della visita. |
functionality_storage | Permette di conservare i dati che contribuiscono al funzionamento del sito web o dell’app, come le impostazioni della lingua. |
personalization_storage | Permette di conservare i dati legati alla personalizzazione, come i video consigliati. |
security_storage | Permette di conservare i dati legati ad attività di sicurezza, quali l’autenticazione, la prevenzione delle frodi e altri meccanismi di protezione utente. |
La documentazione ufficiale per utilizzare Consent Mode con l’SDK di Firebase è disponibile qui.
Vediamo la procedura più da vicino: ⬇️
Per le app Android
1. Imposta lo stato di consenso predefinito
Per prima cosa, devi impostare lo stato di consenso predefinito per la tua app perché di default non sono impostati valori.
Per farlo, apri il file manifest (AndroidManifest.xml) e aggiungi le coppie di chiave-valore della modalità di consenso.
Le chiavi fornite sono:
- 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
Le chiavi sono impostate con un valore che indica lo stato di consenso:
– true
significa che il consenso è stato concesso;
– false
significa che il consenso è stato negato.
Nell’esempio seguente, abbiamo aggiunto tutti i valori predefiniti impostati su false
:
<meta-data android:name="google_analytics_default_allow_analytics_storage" android:value="false" />
<meta-data android:name="google_analytics_default_allow_ad_storage" android:value="false" />
<meta-data android:name="google_analytics_default_allow_ad_user_data" android:value="false" />
<meta-data android:name="google_analytics_default_allow_ad_personalization_signals" android:value="false" />
Poi, devi implementare il metodo di aggiornamento dei valori del consenso.
2. Aggiorna i valori del consenso
- Apri l’attività o il frammento in cui richiami la cookie policy con l’SDK di iubenda.
- Implementa l’interfaccia “
IubendaCMPChangeListener
” con questo codice:
public class MainActivity extends AppCompatActivity implements IubendaCMPChangeListener
- Aggiungi il metodo di override “
onConsentChanged()
” per vedere come cambia il consenso:
@Override
public void onConsentChanged() {
}
In questo modo, l’SDK di iubenda attiverà onConsentChanged()
ogni volta che un utente imposta le preferenze di consenso (ad esempio con il metodo IubendaCMP.askConsent()
).
Dopo aver acquisito le impostazioni del consenso, devi inviarle all’SDK di Firebase Analytics.
Per aggiornare i valori del consenso dopo che l’utente ha espresso le sue preferenze, chiama il metodo setConsent
.
Usa questo codice per aggiornare i diversi valori di consenso su granted
:
@Override
public void onConsentChanged() {
Map<FirebaseAnalytics.ConsentType, FirebaseAnalytics.ConsentStatus> consentMap = new EnumMap<>(FirebaseAnalytics.ConsentType.class);
if(IubendaCMP.isPurposeEnabled(4)){
consentMap.put(FirebaseAnalytics.ConsentType.ANALYTICS_STORAGE, FirebaseAnalytics.ConsentStatus.GRANTED);
}
if(IubendaCMP.isPurposeEnabled(5)){
consentMap.put(FirebaseAnalytics.ConsentType.AD_STORAGE, FirebaseAnalytics.ConsentStatus.GRANTED);
consentMap.put(FirebaseAnalytics.ConsentType.AD_USER_DATA, FirebaseAnalytics.ConsentStatus.GRANTED);
consentMap.put(FirebaseAnalytics.ConsentType.AD_PERSONALIZATION, FirebaseAnalytics.ConsentStatus.GRANTED);
}
mFirebaseAnalytics.setConsent(consentMap);
}
Come puoi vedere, il tipo di consenso ANALYTICS_STORAGE è associato allo scopo 4 di Privacy Controls and Cookie Solution (Misurazione), mentre gli altri (AD_STORAGE, AD_USER_DATA e AD_PERSONALIZATION) sono associati allo scopo 5 (Marketing).
Verifica le impostazioni del consenso
Per verificare che le impostazioni del consenso funzionino come previsto, attiva il logging dettagliato sul tuo dispositivo e con il comando logcat di Android Studio trova il messaggio di registro che inizia con Setting consent
.
Per le app iOS
1. Imposta lo stato di consenso predefinito
Per prima cosa, devi impostare lo stato di consenso predefinito per la tua app perché di default non sono impostati valori.
Per farlo, apri il file Info.plist e aggiungi le coppie di chiave-valore della modalità di consenso.
Le chiavi fornite sono:
- 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
Le chiavi sono impostate con un valore che indica lo stato di consenso:
– true
significa che il consenso è stato concesso;
– false
significa che il consenso è stato negato.
Nell’esempio seguente, abbiamo aggiunto tutti i valori predefiniti impostati su false
:
<key>GOOGLE_ANALYTICS_DEFAULT_ALLOW_ANALYTICS_STORAGE</key> <false/>
<key>GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_STORAGE</key> <false/>
<key>GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_USER_DATA</key> <false/>
<key>GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_PERSONALIZATION_SIGNALS</key> <false/>
Poi, devi implementare il metodo di aggiornamento dei valori del consenso.
2. Aggiorna i valori del consenso
- Apri ViewController in cui richiami la cookie policy con l’SDK di iubenda.
- Implementa il selettore “
NSNotification.Name.ConsentChanged
” con questo codice:
NotificationCenter.default.addObserver(self, selector: #selector(consentDidChange), name: NSNotification.Name.ConsentChanged, object: nil)
- Aggiungi il metodo “
consentDidChange()
” per vedere come cambia il consenso:
@objcfunc consentDidChange() {
}
In questo modo, l’SDK di iubenda attiverà consentDidChange()
ogni volta che un utente imposta le preferenze di consenso (ad esempio con il metodo IubendaCMP.askConsent(from: self)
).
Dopo aver acquisito le impostazioni del consenso, devi inviarle all’SDK di Firebase Analytics.
Per aggiornare i valori del consenso dopo che l’utente ha espresso le sue preferenze, chiama il metodo setConsent
.
Usa questo codice per aggiornare i diversi valori di consenso su granted
:
@objc func consentDidChange() {
var analyticsStorageGranted = false
var adStorageGranted = false
var adUserDataGranted = false
var adPersonalizationGranted = false
if(IubendaCMP.isPurposeEnabled(id: 4)){
analyticsStorageGranted = true
}else{
analyticsStorageGranted = false
}
if(IubendaCMP.isPurposeEnabled(id: 5)){
adStorageGranted = true
adUserDataGranted = true
adPersonalizationGranted = true
}else{
adStorageGranted = false
adUserDataGranted = false
adPersonalizationGranted = false
}
Analytics.setConsent([
.analyticsStorage: analyticsStorageGranted ? .granted : .denied,
.adStorage: adStorageGranted ? .granted : .denied,
.adUserData: adUserDataGranted ? .granted : .denied,
.adPersonalization: adPersonalizationGranted ? .granted : .denied,
])
}
Come puoi vedere, il tipo di consenso analyticsStorage
è associato allo scopo 4 di Privacy Controls and Cookie Solution (Misurazione), mentre gli altri (adStorage
, adUserData
e adPersonalization
) sono associati allo scopo 5 (Marketing).
Verifica le impostazioni del consenso
Per verificare che le impostazioni del consenso funzionino come previsto, attiva il logging dettagliato sul tuo dispositivo e con il comando Xcode trova il messaggio di registro correlato ai parametri. Ad esempio:
ad_storage is granted.
analytics_storage is granted.
ad_user_data is granted.
ad_personalization is granted.
Queste impostazioni sono utili per personalizzare la funzionalità della tua app rispettando le preferenze utente e i requisiti di legge. Per i passaggi dettagliati e i frammenti di codice, fai riferimento alla documentazione ufficiale e verifica che la tua app sia configurata correttamente.