2012-04-11 77 views
1

我正在使用谷歌分析的Android与调度间隔(即tracker.startNewSession("xxxx", 10, this);)。但是,在开发过程中我注意到SDK一直在打印关于数据库已满并且最后一个事件没有存储在LogCat中的东西。所以我决定每个API调用认定它后手动调用.dispatch()方法将一举两得:手动调度谷歌分析的Android

  1. 发送事件更加频繁,这在理论上从备份和失去一些事件阻止他们(按我在开发中看到的logcat条目)。
  2. 在移动无线电活动时发送任何GA事件以节省电池电量。

一旦我发布了,我发现我的GA统计数据(综合浏览量等)高出35%左右;这只能意味着两件事之一,无论是很多事件还是很多事件都在之前丢失了,或者现在它错误地发送了一些事件。

任何人有任何想法解决这个问题的好方法?如果现在报告移动版网页浏览和访问的效果更好,那么这非常棒。但是,如果由于手动调用.dispatch()而无法准确跟踪数据,那么这很糟糕,我应该恢复此更改。

回答

1

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

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

+0

下载的EasyTracker的罐子和源请属性的正确回应,如果这就是你要找的人。 – 2012-04-17 08:31:38

+0

我会...如果当我能证明这是正确的答案;-)所有这些答案确实证实了我的假设,但并不能证明它没有错误地报告事情。我仍在调查它,不用担心,我总是回来接受答案。 – 2012-04-17 13:54:00