【发布时间】:2011-03-22 06:44:52
【问题描述】:
在我的 Android 应用程序中实施 GA 时,我遇到了从 GA 获取正确统计数据的问题。这是场景:
我有一个 Android 应用程序,它已经在市场上存在。这个应用程序是由其他程序员开发的。在这个应用程序中有 5 个活动,其中第一个活动是具有 Tabhost 的启动器活动,其他 4 个活动显示在不同的选项卡中。这个应用程序中的 GA 实现是通过在 Globals.java 中定义一个 Private Static Tracker 对象和 tracker.start("UA-profile1", 60, this); 来完成的。用于Launcher活动的onCreate,其中“UA-profile1”是老程序员团队在GA网站上创建的配置文件的UA ID,60秒是调度事件/浏览量的时间间隔。 Tracker.Stop 用于 Launcher 活动的 onDestroy。 Tracker.TrackPageView 用于所有活动的适当位置。这种方法效果很好。
现在,我正在开发这个应用程序的更新版本。现在,大约有12个活动。我没有使用 Tabhost,每个活动都是一个 SingleTask 活动,并且我没有维护活动堆栈。因此,用户可以通过按设备后退按钮随时退出应用程序。我在这个更新版本中实现了 Flurry 和 GA。我用于 GA 的方法是在每个活动中创建 Tracker 对象,在 onCreate 中我使用 tracker.start("UA-profile2", 10, this);其中“UA-profile2”是我在 GA 网站上创建的配置文件的 UA ID,10 秒是调度事件/浏览量的时间间隔。在 onDestroy 中,我使用的是 Tracker.Stop。我已经构建了 apk 并将其上传到 Market。现在,当我的用户更新应用程序并持续使用它时,由于 Flurry 分析在所有图表中都显示出上升趋势,但是当我查看 GA 统计数据时,我发现在旧配置文件中图表正在下降,这很好因为我的用户正在迁移到新版本,但是当我看到新的配置文件时,图表并没有增加。
当我在谷歌上搜索有关通过多个活动实现 GA 时,有人建议我们应该使用静态跟踪器对象,而不是在每个活动中都创建它。 Google Analytics 网站上没有关于此的更多详细信息。
所以,我想知道方法 1(对整个应用程序使用静态跟踪器对象)是否正确而方法 2(为每个活动创建跟踪器对象)是否错误?或者可能还有其他问题。
请帮忙, 谢谢,
詹姆斯
【问题讨论】: