Questo documento descrive come gestire l'invio dei dati a Google Analytics utilizzando l'SDK Google Analytics v4 per Android.
Panoramica
I dati raccolti utilizzando l'SDK di Google Analytics v4 per Android vengono archiviati in locale prima di essere inviati a Google Analytics in un thread separato.
I dati devono essere inviati e ricevuti entro le 04:00 del giorno successivo, nel fuso orario locale di ogni vista. Tutti i dati ricevuti in un secondo momento non verranno visualizzati nei report. Ad esempio, se un hit viene inserito in coda localmente alle 23:59, deve essere inviato entro 4 ore, entro le 03:59, per essere visualizzato nei report. Al contrario, un hit in coda alle 00:00 deve essere inviato entro 28 ore, ovvero alle 03:59 del giorno successivo, per poter essere visualizzato nei report.
Spedizione periodica
Per impostazione predefinita, i dati vengono inviati dall'SDK Google Analytics v4 per Android ogni 30 minuti.
Per impostare il periodo di spedizione in modo programmatico:
// Set the dispatch period to 90 seconds. GoogleAnalytics.getInstance(this).setLocalDispatchPeriod(90);
Per impostare il periodo di invio nel file di configurazione XML:
<integer name="ga_dispatchPeriod">30</integer>
L'impostazione di un valore pari a zero o negativo disabilita l'invio periodico e richiede l'utilizzo dell'invio manuale se vuoi inviare dati a Google Analytics.
// Disable periodic dispatch by setting dispatch period to a value less than 1. GoogleAnalytics.getInstance(this).setLocalDispatchPeriod(0);
Se un utente perde l'accesso alla rete o chiude l'app mentre sono ancora presenti hit in attesa di invio, questi hit vengono mantenuti nello spazio di archiviazione locale. Verranno inviati alla successiva esecuzione dell'app e alla chiamata dell'invio.
Spedizione manuale
Per inviare manualmente gli hit, ad esempio quando sai che la radio del dispositivo viene già utilizzata per inviare altri dati:
GoogleAnalytics.getInstance(this).dispatchLocalHits();
Invio in background
Per attivare l'invio in background su app in esecuzione su dispositivi non Google Play, nel file di configurazione ApplicationManifest.xml
:
- Ottieni l'autorizzazione
WAKE_LOCK
. - Registra
AnalyticsReceiver
. - Registra
AnalyticsService
.
Ad esempio:
<manifest> <!-- ... --> <!-- Get permission for reliable local dispatching on non-Google Play devices. --> <uses-permission android:name="android.permission.WAKE_LOCK" /> <application name="com.example.MyApp"> <!-- Register AnalyticsReceiver and AnalyticsService to support background dispatching on non-Google Play devices. --> <receiver android:name="com.google.android.gms.analytics.AnalyticsReceiver" android:enabled="true"> <intent-filter> <action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH" /> </intent-filter> </receiver> <service android:name="com.google.android.gms.analytics.AnalyticsService" android:enabled="true" android:exported="false"/> <!-- ... --> </application> </manifest>