Google Analytics 会话计数怎么会大于屏幕计数?

How could the Google Analytics session count be greater than the screen count?

我们使用 v3 Google Analytics iOS SDK。我们目前在生产中使用 google 的自动会话管理。跟踪应用程序上的每个屏幕。我的平均会话时间是 25 分钟。会话时间要么非常低要么非常高。 30% 的会话为 0-10 秒,60% 为 181+ 秒。

Google 的文档说他们计算每个屏幕浏览量,即使用户在应用程序处于后台后返回同一屏幕也是如此。我根据受控环境中的测试验证了这一点。首先,我使用 this 向应用程序添加了手动会话跟踪。我在 12:36pm 的全新 Google Analytics 应用程序 ID 中首次打开该应用程序。然后我把它放在后台。然后再次打开它并再次将其背景化。 15 分钟后,我的正确会话数为 2,屏幕数为 2。然后我删除了手动会话计数并在 12:55pm 进行了两次会话。大约 10 分钟后,我的会话计数为 3,我的屏幕计数准确为 4。自动跟踪的会话计数似乎减少了 1,但偏低。鉴于此测试,我无法理解生产中发生了什么。

从逻辑上讲,每个会话都需要至少一次屏幕浏览。那么会话数怎么会比生产中的屏幕数大呢?我看到的是会话数大约是屏幕数的两倍。怎么会这样?

事实证明,如果您使用的是后台获取或后台定位服务,则会调用 didFinishLaunchingWithOptions AppDelegate 方法 - Google Analytics 库会告诉您放置会话启动代码那里。如果您围绕 UIApplicationState 对该代码进行门控,则可以避免幻象会话。 (查看更多信息:http://mikethinkingoutloud.com/issues-with-google-analytics-and-ios-7-background-fetch/