Iubenda logo
Inizia la generazione

Documentazione

Indice dei contenuti

SDK mobile di iubenda – Integrazione con Google Consent Mode v2 per Firebase Analytics

 

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.

Per configurare Consent Mode v2 nella tua app, devi:

  1. 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.
  2. 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:

<tbody</tbody
Tipo di consensoDescrizione
ad_storagePermette di conservare i dati, come cookie (siti web) o identificatori del dispositivo (app), a fini pubblicitari.
ad_user_dataImposta il consenso per l’invio dei dati dell’utente a Google per scopi pubblicitari online.
ad_personalizationImposta il consenso per la pubblicità personalizzata.
analytics_storagePermette 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_storagePermette di conservare i dati che contribuiscono al funzionamento del sito web o dell’app, come le impostazioni della lingua.
personalization_storagePermette di conservare i dati legati alla personalizzazione, come i video consigliati.
security_storagePermette 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.