在Android应用中,GA和Flurry分析中的会话计数不匹配

时间:2011-04-27 12:37:18

标签: android google-analytics analytics flurry

我正在开发一个有10个活动的应用程序。我正在我的应用中集成Google和Flurry分析。对于GA,我正在维护一个全局跟踪器对象,该对象在启动器活动中启动,并在应用程序关闭时停止。对于Flurry,我在每个活动的onCreate中开始会话,并在每个活动的onStop中停止会话。

现在,当我多次使用我的应用程序时,当看到GA和Flurry配置文件的统计数据时,我发现GA显示的访问次数太高而Flurry的访问次数非常低。

我猜如果应用程序停止会话,Flurry不会启动新会话,我们会在10秒后重启应用程序。这是计数之间存在差异的原因还是代码可能有问题。

2 个答案:

答案 0 :(得分:0)

首先,您的应用程序的launchmode是什么? http://developer.android.com/guide/topics/manifest/activity-element.html#lmode

如果您允许多个实例,那么用户可能会在同一会话中多次点击相同的启动器活动,Google可能将其视为额外会话。

其次,不保证调用onStop()。 onPause实际上是保证发生的最后一个状态:http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle这可能与此没有任何关系,因为会话计数是在公开调用之外完成的,但无论如何都要注意这一点。

一个有趣的测试是在应用程序刚出现时在Flurry和GA中发起“app launch”事件。那么你将拥有一个比会话更模糊的数据点来比较这两个数据点,看看哪个报告过高或过低。

答案 1 :(得分:0)

将您的Flurry onStartSession电话移至onStart

onCreate只被调用一次,而每次活动到达前台时,它都会通过onStart。 Flurry以与堆栈类似的方式处理活动。 onStartSession将一个活动放在堆栈上,onEndSession将其弹出。如果在某个超时后没有剩余,则SDK会有效地结束会话。

通过onStartSession中的onCreate来电,您可以通过创建每项活动获得有效的会话,但如果您回到该活动,则会话即将结束。将onStartSession移至onStart会修复此问题。