0

我的应用程序通常作为婴儿监视器在夜间运行,或者作为前台应用程序,或者在运行背景音频的情况下运行。

目标:

  1. 跟踪应用程序启动总数,即。活跃用户数。
  2. 跟踪前台与后台的总使用时间和总会话时间。
  3. 如果浏览设置屏幕,则跟踪各种页面视图。

按照建议,我在 中启动跟踪器didFinishLaunchingWithOptions,并将我的第一个跟踪器ViewController作为我的第一个“页面查看”。我的应用程序可能会在接下来的 8 小时内停留在此页面上......

然后出现几个问题:

  1. 我什么时候打电话stopTracker,它有什么作用?我希望它终止跟踪会话。但是由于 google 好心地将他们的代码隐藏在一个静态库中,我不知道幕后发生了什么,而且 .h 并没有说太多。但是,如果用户决定启用背景音频,我的第一反应是我stopTracker的应用程序仍在运行...applicationWillResignActive

  2. 接下来,我读到会话可能会在 30 分钟后超时而没有新的综合浏览量,或者在午夜时分。我可以设置一个重复计时器,每 20 分钟发送一次相同的页面浏览量,这应该让我的会话保持活跃,至少到午夜,但是我的页面浏览量会更大吗?除非它足够聪明,知道我每次通话都在同一页面上。 谷歌分析博客

[更新:每次调用似乎都算作一个新的综合浏览量,因此数字是倾斜的,所以如何处理仍然是一个问题]

  1. 如果我上面的计时器运行超过午夜并且会话已过期,我将结束一个新会话并将实际活跃用户数加倍?

  2. 如果我确实打电话stopTrackerapplicationWillResignActive下一次跟踪页面视图的电话会重新启动跟踪器吗?还是我需要再打电话startTrackerWithAccountID

  3. 相反,如果我在 中启动跟踪器applicationDidBecomeActive,则会丢失可能在后台运行的会话。

[更新:这似乎是迄今为止最好的方法,但由于分析报告的时间滞后,测试非常缓慢,我会尽快报告]

PS EasyTracker 似乎并没有更好地处理这个问题。

4

1 回答 1

0

我通过使用名为“Backgrounded”的网页浏览来完成这项工作,当用户没有选择背景功能时,应用程序正在调用 stopTracker。我看到多次点击,平均会话时间为 20 分钟,但我可以按时间进行多次网页浏览,以查看目标 2 的总时间。我为目标 1 找到了两种解决方案,事件(未在简易跟踪器中公开),以及在我的applicationDidBecomeActive(如果它不是后台应用程序的恢复)然后我跟踪 AppStarted 的网页浏览量。我最终将整个东西包装在一个实用程序类中,并将其整合到我的几个应用程序中,所以看到结果也会很有趣。如果其他人尝试这样做,您可能也想考虑使用自定义变量。我在其中添加了我的应用程序版本,因此我还可以监控有多少用户正在迁移到最新的应用程序版本。

于 2012-05-18T16:50:18.587 回答