iOS:如果没有可用的互联网,谷歌分析 SDK 是不是会缓存所有数据以便稍后发送?

Posted

技术标签:

【中文标题】iOS:如果没有可用的互联网,谷歌分析 SDK 是不是会缓存所有数据以便稍后发送?【英文标题】:iOS: does google analytics SDK caches all data for sending them later if no internet is available?iOS:如果没有可用的互联网,谷歌分析 SDK 是否会缓存所有数据以便稍后发送? 【发布时间】:2011-10-25 08:27:03 【问题描述】:

如果没有可用的 Wifi,谷歌分析 SDK 是否会缓存所有数据以供以后发送?我想当 iPhone/iPad 在线(有互联网可用)时一切正常,然后它会发送所有事件数据。但是当设备没有互联网连接时它的功能呢?我是否必须手动检查互联网连接(例如使用苹果可达性类)并维护数据缓存以供自己以后使用?

【问题讨论】:

【参考方案1】:

简短回答:

更多细节:

    如果您使用的调度周期大于零(比如说 15):

    每 15 秒 GA 跟踪器将尝试分派事件,并且 如果没有可用的网络连接,跟踪器将在 15 秒后尝试调度直到成功,并且 如果失败并且您退出了应用程序(它没有在后台暂停),在下一个应用程序会话中,跟踪器将尝试根据调度周期再次调度您的事件。

    如果您使用调度周期等于-1,这意味着您通过调用[[GANTracker sharedTracker] dispatch]手动调度您的事件:

    如果你调用dispatch但连接不可用,事件将被缓存,所以下一次dispatch调用将尝试批量发送缓存事件, 同样,事件在应用程序会话之间缓存。

上述情况也适用于上述两种情况的混合:您使用调度周期 > 0,但您决定手动调度一些事件。

注意:我不知道 GA 跟踪器在其缓冲区被覆盖或失控之前可以缓存多少事件/数据。

使用 GA 的其他一些技巧:

如果您不确定某事,请将选项 dryRun 设置为 YES 并测试 你的场景。您也可以使用其他帐户 ID 进行测试 无需试运行。 使用GANTrackerDelegate 方法查看是否已分派命中。

【讨论】:

令我惊讶的是,GA 未能报告离线活动。为了验证,我们尝试让 iPad 脱机 15 分钟,记下半小时后将其重新联机后应该出现的点击,似乎所有数据都丢失了。而 FLURRY 则准确地发送了所有数据。有什么想法吗? @rohan-patel 抱歉不知道,自从我停止在 ios 上使用 GA 已经***年了,我相信它的 API 在这段时间里发生了很大变化。【参考方案2】:

This是一个相关的问题,基本上你需要使用批处理。我认为Flurry 分析使这方面更加透明(您只需记录事件,它会处理所有事情)。

【讨论】:

批处理?我认为 SDK 会在连接互联网后自动发送命中。该答案中给出的链接已失效。 ://

以上是关于iOS:如果没有可用的互联网,谷歌分析 SDK 是不是会缓存所有数据以便稍后发送?的主要内容,如果未能解决你的问题,请参考以下文章

谷歌为iOS开发者推出地图服务SDK

谷歌分析 SDK iOS10

数据埋点技巧

flutter 新版 Google Maps SDK for iOS 可用:4.1.0.0

如果 webview 中没有互联网连接,iOS 会显示警报

使用 iOS SDK 检查 Internet 连接 [重复]