Übersicht
Also habe ich einige Zeit damit verbracht, die Measurement Protocol durchzugehen und die Debug-Logs in LogCat durchzusehen. Wenn GA auf dem Handy ‚entsendet‘ ein Bündel von Hits, scheint jeder Treffer eine entsprechende HTTP-Anforderung im Protokoll zu haben, die mit beginnt:
GET /collect?...
und wird gefolgt von einem Bündel von parameters, die die Art des Treffers definieren (zB Event, Social, E-Commerce) und einige grundlegende Informationen über die App (zB App-ID, Tracking-ID, Zeitstempel).
Hier ist, was ich gelernt habe:
setStartSession(false)
tut nicht eine Sitzung beenden.
Wie ich entdeckte es
Wie ich bereits sagte, jeder Treffer eine Art einer Handlung darstellt. Sitzungsstarts oder Sitzungsende werden jedoch nicht als Treffer betrachtet. Sie sind lediglich zusätzliche Daten, die zum letzten Treffer hinzugefügt werden, die GA anweist, die zukünftigen Treffer in einer neuen Sitzung zu gruppieren.
Also, wenn Sie sendEvent(...)
und dann setStartSession(true)
und dann dispatch()
, werden Sie Eins-Hit in den Protokollen sehen, die das Ereignis mit ein zusätzlicher Parameter &sc=start
beschreibt, die den Beginn einer neuen Sitzung beschreibt.
Ich versuchte dann oben mit setStartSession(false)
und ich bemerkte nicht die zusätzlichen &sc
Parameter. Es sollte &sc=end
sein, wie beschrieben here.
Potential Hack
Der Verfolger hatte eine send(...)
Methode, wie sie Sie eine benutzerdefinierte durch Angabe der erforderlichen Parameter getroffen senden würde es ermöglichen scheint. Nach einigen Versuch und Irrtum, die folgenden erfolgreich erstellt ein Ereignis und den Sitzungsende-Parameter wie oben beschrieben angehängt.
Map<String, String> data;
data = EasyTracker.getTracker().constructEvent("Test", "Test", "Test", 0L);
data.put("sessionControl", "end");
EasyTracker.getTracker().send("event", data);
So theoretisch, wollen, dass jedes Mal, wenn Sie eine Sitzung beenden, könnten Sie ein Dummy-Ereignis (wie oben), fügen Sie den sessionControl
Parameter und Versand. Von den Protokollen scheint es perfekt zu funktionieren, aber ich habe dies nicht auf meinem GA-Dashboard verifiziert.
Und stellen Sie sicher, dass Sie die automatische Sitzungssteuerung deaktivieren, indem Sie in Ihrer analytics.xml
Datei ga_sessionTimeout
auf -1
setzen.
Ich habe auch my project here hochgeladen, wenn Sie versuchen, durch die Protokolle zu suchen und die Treffer zu vergleichen. Stellen Sie sicher, dass Sie Ihre GA-Tracking-ID aktualisieren. Hoffe das hilft!
Meine Logs
Start Session + Test Event, Versand
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
End Session + Test Event, Versand
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
End Session Hack + Test Event, Versand
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
Hallo, danke dafür! Ich habe nach Android gefragt (ich habe den Tag "Android" auf meine Frage gesetzt), also hier ist ein Link, der meiner Frage besser entspricht: https://developers.google.com/analytics/devguides/collection/android/v3/ Sitzungen Es ist das gleiche wie Ihres, aber für Android ... Auch ich fragte nach Analytics v2, aber ich denke, ich muss dann zu v3 migrieren. Ich akzeptiere deine Antwort, da ich denke, dass es genauer ist. Danke nochmal. – p4u144