如何在没有 EasyTracker 的情况下停止 Android 版 Google 移动分析 v2 中的会话

2024-06-11

我已经阅读了 GoogleAnalytics v2 网站上的文档(我基本上阅读了来自https://developers.google.com/analytics/devguides/ https://developers.google.com/analytics/devguides/)但无法找到足够准确的答案来回答我的问题。它要么丢失,要么与版本 1 文档混合。

我知道使用 EasyTracker,您可以设置超时会话参数。但我不想使用 EasyTracker,并且我想在代码中的某个时刻显式停止会话。 (不设置超时)

当我打开我的应用程序时,我开始一个会话:

mTracker.setStartSession(true);

想知道是否打电话

mTracker.setStartSession(false);

明确停止它。

任何帮助或指向更好的教程/文档的指示将不胜感激。


Overview

所以我花了一些时间浏览测量协议 https://developers.google.com/analytics/devguides/collection/protocol/v1/以及查看 LogCat 中的调试日志。当您手机上的 GA“发送”一堆点击时,每个点击似乎在日志中都有一个相应的 HTTP 请求,开头为:

GET /collect?...

接下来是一堆参数 https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters定义点击类型(例如事件、社交、电子商务)和有关应用程序的一些基本信息(例如应用程序 ID、跟踪 ID、时间戳)。

这是我学到的:

setStartSession(false) does not结束会话。


我是如何发现它的

正如我之前所说,每次点击都代表某种类型的动作。但是,会话开始或会话结束不被视为点击。它们只是添加到最近的热门告诉 GA 将未来的点击分组到新的会话中。

所以如果你sendEvent(...)进而setStartSession(true), 进而dispatch(),您将在描述该事件的日志中看到一个命中with一个附加参数&sc=start描述新会话的开始。

然后我尝试使用以上方法进行操作setStartSession(false)我没有注意到额外的&sc范围。本来应该是&sc=end,如上所述here https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#session.


潜在的黑客攻击

追踪器有一个send(...)方法似乎允许您通过指定必要的参数来发送自定义命中。经过一番尝试和错误,以下成功创建了一个事件and如上所述附加会话结束参数。

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

因此从理论上讲,每次您想要结束会话时,您都可以创建一个虚拟事件(如上所示),添加sessionControl参数和调度。从日志来看,它似乎工作得很好,但我还没有在我的 GA 仪表板上验证这一点。

并确保通过设置禁用自动会话控制ga_sessionTimeout to -1在你的analytics.xml file.

我也上传了我的项目在这里 https://github.com/gautamjain/GA-session-test,如果您想尝试查看日志并比较点击次数。请务必更新您的 GA 跟踪 ID。希望这可以帮助!


My Logs

开始会话 + 测试事件、调度

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

结束会话 + 测试活动,调度

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

结束会话黑客 + 测试事件、调度

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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在没有 EasyTracker 的情况下停止 Android 版 Google 移动分析 v2 中的会话 的相关文章

随机推荐