我的应用程序通常作为婴儿监视器在夜间运行,或者作为前台应用程序,或者在运行背景音频的情况下运行。
目标:
- 跟踪应用程序启动总数,即。活跃用户数。
- 跟踪前台与后台的总使用时间和总会话时间。
- 如果浏览设置屏幕,则跟踪各种页面视图。
按照建议,我在 中启动跟踪器didFinishLaunchingWithOptions
,并将我的第一个跟踪器ViewController
作为我的第一个“页面查看”。我的应用程序可能会在接下来的 8 小时内停留在此页面上......
然后出现几个问题:
我什么时候打电话
stopTracker
,它有什么作用?我希望它终止跟踪会话。但是由于 google 好心地将他们的代码隐藏在一个静态库中,我不知道幕后发生了什么,而且 .h 并没有说太多。但是,如果用户决定启用背景音频,我的第一反应是我stopTracker
的应用程序仍在运行...applicationWillResignActive
接下来,我读到会话可能会在 30 分钟后超时而没有新的综合浏览量,或者在午夜时分。我可以设置一个重复计时器,每 20 分钟发送一次相同的页面浏览量,这应该让我的会话保持活跃,至少到午夜,但是我的页面浏览量会更大吗?除非它足够聪明,知道我每次通话都在同一页面上。 谷歌分析博客
[更新:每次调用似乎都算作一个新的综合浏览量,因此数字是倾斜的,所以如何处理仍然是一个问题]
如果我上面的计时器运行超过午夜并且会话已过期,我将结束一个新会话并将实际活跃用户数加倍?
如果我确实打电话
stopTracker
,applicationWillResignActive
下一次跟踪页面视图的电话会重新启动跟踪器吗?还是我需要再打电话startTrackerWithAccountID
?相反,如果我在 中启动跟踪器
applicationDidBecomeActive
,则会丢失可能在后台运行的会话。
[更新:这似乎是迄今为止最好的方法,但由于分析报告的时间滞后,测试非常缓慢,我会尽快报告]
PS EasyTracker 似乎并没有更好地处理这个问题。