Invio - SDK per Android v2 (legacy)

Questo documento descrive come gestire l'invio dei dati a Google Analytics utilizzando l'SDK di Google Analytics per Android v2.

Panoramica

Nell'SDK Google Analytics per Android, i dati raccolti, come le visualizzazioni di schermata o gli eventi, vengono archiviati localmente in una coda prima di essere inviati ai server di Google Analytics. Il processo con cui questi dati (in questo caso "hit") vengono inviati dall'SDK a Google Analytics è chiamato invio.

L'invio è specifico delle librerie di raccolte di dispositivi mobili ed è progettato per mitigare i problemi legati a un accesso alla rete inaffidabile e alla durata limitata della batteria.

Esistono due tipi di spedizione:

  • Invio periodico : invia automaticamente gli hit a un intervallo ricorrente da te specificato in modo programmatico o nel file analytics.xml.
  • Invio manuale : invia manualmente gli hit per inviare i dati quando preferisci, ad esempio in presenza di una connessione HTTP esistente.

Entrambi i tipi di invio si verificano dal thread dell'interfaccia utente principale nella versione 2 dell'SDK

La parte restante di questo documento fornirà un'analisi più approfondita di ogni tipo di invio e di come implementarlo nella tua app.

Invio periodico

Man mano che l'app raccoglie dati GA, questi vengono aggiunti a una coda e inviati periodicamente a Google Analytics. L'invio periodico può verificarsi quando l'app è in esecuzione in primo piano o in background.

Il periodo di invio predefinito è 30 minuti. Puoi fornire il tuo intervallo in secondi utilizzando il parametro ga_dispatchPeriod nel file analytics.xml o chiamando setDispatchPeriod(int dispatchPeriodInSeconds), come in questo esempio:

Nel tuo file analytics.xml:

<integer name="ga_dispatchPeriod">60</integer>

In modo programmatico:

GAServiceManager.getInstance().setDispatchPeriod(60);

L'impostazione di un valore negativo comporta la disattivazione dell'invio periodico, che richiede l'invio manuale se vuoi inviare dati a Google Analytics. Se invece imposti il valore 0, ogni hit verrà inviato immediatamente se è disponibile una connessione di rete.

Una volta inviati tutti gli hit, l'invio periodico entra in modalità di risparmio energetico e viene disabilitato fino a quando non viene effettuata un'altra chiamata di invio.

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.

Invio manuale

Oltre all'invio periodico, in alcuni casi potrebbe essere necessario inviare manualmente gli hit. Ad esempio, puoi raggruppare i invii con altre richieste HTTP effettuate dalla tua applicazione per ridurre l'overhead.

Gli hit possono essere inviati manualmente utilizzando l'istanza GAServiceManager:

GAServiceManager.getInstance().dispatch();