2012-11-28 15 views
11

Ho letto la documentazione sul sito web di GoogleAnalytics v2 (ho praticamente letto tutte le pagine da https://developers.google.com/analytics/devguides/) ma non sono riuscito a trovare una descrizione sufficientemente accurata per rispondi alla mia domanda. È mancante o misto con la documentazione della versione 1.Come interrompere una sessione in Google mobile analytics v2 per Android senza EasyTracker

So che con EasyTracker è possibile impostare un parametro timeout_session. Ma non voglio usare EasyTracker e voglio interrompere esplicitamente una sessione ad un certo punto del mio codice. (Non impostare un timeout)

ho avvio di una sessione quando apro la mia domanda con:

mTracker.setStartSession(true); 

e chiedevo se chiamando

mTracker.setStartSession(false); 

esplicitamente lo ferma.

Qualsiasi aiuto o suggerimento per un tutorial/documentazione migliore sarebbe molto apprezzato.

risposta

1

Nel v3 GA, per avviare manualmente o terminare una sessione, utilizzare il parametro di controllo della sessione del tracker come segue:

Inizia una nuova sessione. Il prossimo hit di questo tracker sarà il primo di una nuova sessione.

[tracker set:kGAISessionControl value:@"start"]; 

Terminare una sessione. Il prossimo hit di questo tracker sarà l'ultimo della sessione corrente.

[tracker set:kGAISessionControl value:@"end"]; 

Queste informazioni sono disponibili dal link: https://developers.google.com/analytics/devguides/collection/ios/v3/sessions

+1

Ciao, grazie per quello! Stavo chiedendo per Android (ho messo il tag "Android" alla mia domanda) quindi ecco un link più appropriato alla mia domanda: https://developers.google.com/analytics/devguides/collection/android/v3/ sessioni È uguale al tuo ma per Android ... Inoltre stavo chiedendo analytics v2 ma suppongo che dovrò migrare alla v3 allora. Accetto la tua risposta in quanto ritengo sia la più accurata. Grazie ancora. – p4u144

0

In GoogleAnalytics v2 hanno nuovi modi per avviare/interrompere la sessione.

Non ho visto il tuo codice di mTracker.setStartSession(true) e mTracker.setStartSession(false) usato prima.

Ora, se non si desidera utilizzare i metodi EasyTracker è possibile avviare una nuova sessione dal seguente:
mTracker.startNewSession("UA-xxxxxxx-x", 20, this);

di essere il primo ingresso
(String uniqueGoogleAnalyticsKey, int autoDispatchTimer, Context this)

Per fermarlo: tracker.stopSession();

+1

Hi.Se vai a questa pagina: https://developers.google.com/analytics/devguides/collection/android/v2/sessions che chiaramente suggeriscono che è il documento v2, vedrai nella sezione "Gestione sessione manuale" che usano "myTracker.setStartSession (true);" La mia domanda era: possiamo usare "myTracker.setStartSession (false)" poiché ciò che suggerisci "myTracker.stopSession()" non sembra esistere. – p4u144

+0

@ p4u144, penso che Grant si riferisse a GA V1 (legacy) e non all'attuale beta V2. Sebbene, sono anche interessato a trovare una soluzione alla tua domanda. I documenti di V1 sono qui: https://developers.google.com/analytics/devguides/collection/android/devguide – Gautam

+0

@Grant Credo che EasyTracker sia il modo consigliato di lavorare con Google Analytics –

6

Panoramica

Quindi ho passato un po 'di tempo a esaminare il Measurement Protocol e a esaminare i log di debug in LogCat. Quando GA il vostro telefono 'dispacci' un po 'di colpi, ogni colpo sembra avere una corrispondente richiesta HTTP nel registro che inizia con:

GET /collect?... 

ed è seguito da un gruppo di parameters che definiscono il tipo di colpo (ad es. eventi, social, e-commerce) e alcune informazioni di base sull'app (ad esempio ID app, ID di tracciamento, timestamp).

Ecco cosa ho imparato:

setStartSession(false) fa non terminare una sessione.


Come l'ho scoperto

Come ho detto prima, ogni colpo rappresenta un certo tipo di azione. Tuttavia, le sessioni iniziate o le sessioni non sono considerate hit. Si tratta semplicemente di dati aggiuntivi che vengono aggiunti alla hit più recente che indica a GA di raggruppare gli hit futuri in una nuova sessione.

Quindi, se si sendEvent(...) e poi setStartSession(true), e poi dispatch(), vedrete uno colpito nei log che descrive l'evento con un parametro aggiuntivo &sc=start che descrive l'inizio di una nuova sessione.

Ho quindi provato a fare quanto sopra utilizzando setStartSession(false) e non ho notato il parametro aggiuntivo &sc. Dovrebbe essere &sc=end, come descritto here.


Potenziale Hack

L'inseguitore aveva un metodo send(...) che sembra che permetterebbe di inviare una consuetudine colpito specificando i parametri necessari. Dopo alcune prove ed errori, il seguente evento ha creato con successo un evento e associato al parametro di fine sessione come descritto sopra.

Map<String, String> data; 
data = EasyTracker.getTracker().constructEvent("Test", "Test", "Test", 0L); 
data.put("sessionControl", "end"); 
EasyTracker.getTracker().send("event", data); 

Quindi, in teoria, ogni volta che si desidera terminare una sessione, è possibile un evento fittizio (come sopra), aggiungere il sessionControl parametri, e la spedizione. Dai log sembra funzionare perfettamente, ma non l'ho verificato sulla mia bacheca GA.

E assicurarsi di disabilitare il controllo automatico della sessione impostando ga_sessionTimeout su -1 nel file analytics.xml.

Ho anche caricato my project here, se si desidera provare a guardare attraverso i registri e confrontare i risultati. Assicurati di aggiornare l'ID di monitoraggio GA. Spero che questo ti aiuti!


miei registri

Inizia la sessione + Test Event, spedizione

GET /collect?ul=en-us&ev=0&ht=1362779137510&sr=720x1184&a=0&sc=start&aid=com.example.com.example.sessiontest&ea=Test&cid=ae57a272-89b2-46ab-8c82-7acdb49c3669&ec=Test&av=1.0&v=1&t=event&el=Test&an=com.example.sessiontest&tid=UA-XXXXXXXX-X&_u=.sMC&_v=ma1b4&cd=com.example.com.example.sessiontest.MainActivity&qt=2788&z=48 HTTP/1.1 

Termina sessione + Test Event, spedizione

GET /collect?ul=en-us&ev=0&ht=1362779233499&sr=720x1184&a=0&aid=com.example.com.example.sessiontest&ea=Test&cid=ae57a272-89b2-46ab-8c82-7acdb49c3669&ec=Test&av=1.0&v=1&t=event&el=Test&an=com.example.sessiontest&tid=UA-XXXXXXXX-X&_u=.ssMMC&_v=ma1b4&cd=com.example.com.example.sessiontest.MainActivity&qt=3726&z=50 HTTP/1.1 

Termina sessione Hack + Test Event, spedizione

GET /collect?ul=en-us&ev=0&ht=1362779194381&sr=720x1184&a=0&sc=end&aid=com.example.com.example.sessiontest&ea=Test&cid=ae57a272-89b2-46ab-8c82-7acdb49c3669&ec=Test&av=1.0&v=1&t=event&el=Test&an=com.example.sessiontest&tid=UA-XXXXXXXX-X&_u=.ssyL&_v=ma1b4&cd=com.example.com.example.sessiontest.MainActivity&qt=3581&z=49 HTTP/1.1 
+0

Grazie! Questo è utile Non l'ho ancora provato, ma questo è sicuramente un passo avanti. Ti farò sapere quali sono i risultati quando ci proverò. Peccato che abbiamo bisogno di usare un piccolo hack e che non esiste un modo ufficiale per terminare una sessione ... – p4u144

Problemi correlati