2012-11-28 3 views
11

Ich habe die Dokumentation auf der Website von GoogleAnalytics v2 gelesen (ich habe grundsätzlich alle Seiten von https://developers.google.com/analytics/devguides/ gelesen), konnte aber nicht genau genug finden beantworte meine Frage. Es fehlt entweder oder ist mit der Dokumentation der Version 1 vermischt.Wie man eine Sitzung in Google Mobile Analytics v2 für Android ohne EasyTracker stoppt

Ich weiß, dass Sie mit EasyTracker einen timeout_session-Parameter festlegen können. Aber ich möchte nicht EasyTracker verwenden und ich möchte eine Sitzung zu einem bestimmten Zeitpunkt in meinem Code explizit beenden. (Nicht die Einrichtung eines Timeout)

beginne ich eine Sitzung, wenn ich meine Anwendung zu öffnen mit:

mTracker.setStartSession(true); 

und frage mich, ob

Aufruf
mTracker.setStartSession(false); 

explizit stoppt.

Jede Hilfe oder Punkt zu einem besseren Tutorial/Dokumentation würde sehr geschätzt werden.

Antwort

1

Im GA v3, manuell starten oder eine Sitzung beenden, verwenden Sie die Sitzungssteuerungsparameter des Trackers wie folgt:

Starten Sie eine neue Sitzung. Der nächste Treffer von diesem Tracker wird der erste in einer neuen Sitzung sein.

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

Eine Sitzung beenden. Der nächste Treffer von diesem Tracker wird der letzte in der aktuellen Sitzung sein.

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

Diese Informationen sind über den Link zur Verfügung: https://developers.google.com/analytics/devguides/collection/ios/v3/sessions

+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

0

In GoogleAnalytics v2 haben sie neue Möglichkeiten zum Starten/Stoppen der Sitzung.

Ich habe nicht Ihren Code von mTracker.setStartSession(true) und mTracker.setStartSession(false) zuvor verwendet gesehen.

Nun, wenn Sie nicht über die EasyTracker Methoden verwenden möchten, können Sie eine neue Sitzung mit der folgenden starten:
mTracker.startNewSession("UA-xxxxxxx-x", 20, this);

Mit dem ersten Eingang
(String uniqueGoogleAnalyticsKey, int autoDispatchTimer, Context this)

zu sein, ihn zu stoppen: tracker.stopSession();

+1

Hallo.Wenn Sie auf dieser Seite gehen: https://developers.google.com/analytics/devguides/collection/android/v2/sessions, die eindeutig darauf hinweist, dass es die v2-doc ist, werden Sie im Abschnitt "Manuelle Sitzungsverwaltung" sehen Sie verwenden 'myTracker.setStartSession (true);' Meine Frage war: Können wir 'myTracker.setStartSession (false)' als das verwenden, was Sie vorschlagen 'myTracker.stopSession()' scheint nicht zu existieren. – p4u144

+0

@ p4u144, Ich denke Grant bezog sich auf die GA V1 (Legacy) und nicht die aktuelle V2 Beta. Ich bin aber auch daran interessiert, eine Lösung für Ihre Frage zu finden. Die Dokumente von V1 sind hier: https://developers.google.com/analytics/devguides/collection/android/devguide – Gautam

+0

@Grant Ich glaube, EasyTracker ist die empfohlene Art der Zusammenarbeit mit Google Analytics –

6

Ü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 
+0

Danke! Das ist nützlich. Ich habe es noch nicht versucht, aber das ist definitiv ein Schritt vorwärts. Ich werde Sie wissen lassen, was die Ergebnisse sind, wenn ich es versuchen werde. Schade, dass wir einen kleinen Hack verwenden müssen und dass es keinen offiziellen Weg gibt, eine Sitzung zu beenden ... – p4u144

Verwandte Themen