p4u*_*144 11 android analytics
我已经阅读了GoogleAnalytics v2网站上的文档(我基本上已经阅读了https://developers.google.com/analytics/devguides/中的所有页面),但无法找到足够准确的回答我的问题.它缺少或与版本1文档混合.
我知道使用EasyTracker,您可以设置timeout_session参数.但我不想使用EasyTracker,我想在我的代码中的某个时刻显式停止会话.(没有设置超时)
当我打开我的应用程序时,我开始一个会话:
mTracker.setStartSession(true);
Run Code Online (Sandbox Code Playgroud)
并且想知道是否打电话
mTracker.setStartSession(false);
Run Code Online (Sandbox Code Playgroud)
明确地停止了它.
任何帮助或指向更好的教程/文档将不胜感激.
概观
因此,我花了一些时间浏览Measurement Protocol以及查看LogCat中的调试日志.当手机上的GA'发送'一堆点击时,每个点击似乎在日志中都有一个相应的HTTP请求,开头是:
GET /collect?...
Run Code Online (Sandbox Code Playgroud)
然后是一系列定义命中类型的参数(例如事件,社交,电子商务)和一些关于应用程序的基本信息(例如app id,tracking id,timestamp).
这是我学到的东西:
setStartSession(false)
并没有结束会话.
我是如何发现它的
正如我之前所说,每次击中都代表某种类型的动作.但是,会话开始或会话结束不被视为命中.它们只是添加到最新命中的附加数据,告诉GA将新会话中的未来命中分组.
因此,如果您sendEvent(...)
和然后setStartSession(true)
,dispatch()
您将在日志中看到描述该事件的ONE命中,并附加&sc=start
一个描述新会话开始的参数.
然后我尝试使用上面的内容setStartSession(false)
,我没有注意到附加&sc
参数.它应该是&sc=end
,作为描述在这里.
潜在的黑客
跟踪器有一个send(...)
方法似乎允许您通过指定必要的参数发送自定义命中.经过一些试验和错误后,以下成功创建了一个事件并附加了如上所述的会话结束参数.
Map<String, String> data;
data = EasyTracker.getTracker().constructEvent("Test", "Test", "Test", 0L);
data.put("sessionControl", "end");
EasyTracker.getTracker().send("event", data);
Run Code Online (Sandbox Code Playgroud)
所以从理论上讲,每次你想要结束一个会话时,你都可以进行虚拟事件(如上所述),添加sessionControl
参数和调度.从日志中看起来效果很好,但我还没有在我的GA仪表板上验证这一点.
并确保通过在文件中设置ga_sessionTimeout
为禁用自动会话控制.-1
analytics.xml
我还在这里上传了我的项目,如果你想尝试查看日志并比较命中.确保您更新了GA跟踪ID.希望这可以帮助!
我的日志
启动Session + Test Event,Dispatch
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
Run Code Online (Sandbox Code Playgroud)
结束会话+测试事件,调度
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
Run Code Online (Sandbox Code Playgroud)
结束会话Hack +测试事件,调度
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
Run Code Online (Sandbox Code Playgroud)
在 GA v3 中,要手动启动或结束会话,请使用跟踪器的会话控制参数,如下所示:
开始新的会话。该跟踪器的下一次点击将是新会话中的第一个点击。
[tracker set:kGAISessionControl value:@"start"];
Run Code Online (Sandbox Code Playgroud)
结束会话。该跟踪器的下一次点击将是当前会话中的最后一次。
[tracker set:kGAISessionControl value:@"end"];
Run Code Online (Sandbox Code Playgroud)
此信息可通过以下链接获取: https://developers.google.com/analytics/devguides/collection/ios/v3/sessions