【问题标题】:Manually Dispatching Google Analytics for Android手动分派 Google Analytics for Android
【发布时间】:2012-04-11 11:54:26
【问题描述】:

我正在使用带有调度间隔的 google 分析(即tracker.startNewSession("xxxx", 10, this);)。但是,在开发过程中,我注意到 SDK 不断打印有关数据库已满和最后一个事件未存储在 LogCat 中的信息。所以我决定在每次 API 调用后手动调用 .dispatch() 方法,认为它会用一块石头杀死两只鸟:

  1. 更频繁地发送事件,理论上这会阻止它们备份和丢失一些事件(根据我在开发中看到的 logcat 条目)。
  2. 通过在移动无线电处于活动状态时发送任何 GA 事件来节省电池电量。

发布后,我注意到我的 GA 统计数据(浏览量等)高出约 35%;这只能意味着两件事之一,或者以前丢失了很多 GA 事件,或者现在错误地发送了一些事件而加倍。

有人对解决此问题的好方法有任何想法吗?如果它现在在报告移动浏览量和访问量方面做得更好,那就太好了。但是,如果因为我手动调用.dispatch() 而不能准确地跟踪数据,那么这很糟糕,我应该恢复此更改。

【问题讨论】:

    标签: android google-analytics


    【解决方案1】:

    当我提高手动调用调度的速率时,我也看到了这种情况。另外它确实有意义:因为他们在本地存储数据并批量发送到服务器,所以如果某些数据卡住了几天,我不会感到惊讶。由于数据与发送的日期相关联,而不是生成的日期,因此您会得到不准确的统计数据。

    PS:您是否看过新的示例应用程序然后为 Android SDK 提供?他们在 AsyncTask 中运行所有内容,以改进调度并且不通过网络访问访问主线程。我通过将所有事件存储在一个队列中并仅运行一个 AsyncTask 进一步改进了这一点……需要将其放在 Github 上但尚未清理它。

    【讨论】:

    • 如果这是您要查找的内容,请注明正确的答案。
    • 我会......如果我能证明这是正确的答案 ;-) 所有这些答案都证实了我的假设,但它并不能证明它没有错误地报告事情。我还在调查中,别担心,我总会回来接受答案的。
    【解决方案2】:

    EasyTracker 示例应用使用 AsyntTask 和网络队列来提高性能。 正如 bitbox 所提到的,这可以延长电池寿命并减少丢失的曲目,而无需手动调度。

    您可以从https://code.google.com/p/analytics-api-samples/downloads/list下载EasyTracker的jar和源码

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-21
      • 1970-01-01
      • 1970-01-01
      • 2012-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多