首页 > 解决方案 > 将 Facebook SDK `activateApp` 添加到 `applicationDidBecomeActive`?

问题描述

是否需要FBSDKAppEvents.activateApp()在未设置applicationDidBecomeActive为时添加?FacebookAutoLogAppEventsEnabledfalse

根据FBSDKAppEvents.h它是没有必要的:

通知事件系统应用程序已启动,并在适当时记录“激活的应用程序”事件。此函数会从 FBSDKApplicationDelegate applicationDidBecomeActive 自动调用,除非在项目信息 plist 文件中将“FacebookAutoLogAppEventsEnabled”键覆盖为 false。如果“FacebookAutoLogAppEventsEnabled”设置为 false,则通常应将其放置在应用程序委托的 applicationDidBecomeActive:方法中。

FB docs确认了这一点,其中添加activateApp位于“手动事件记录”下:

提供了此处描述的使用 SDK 进行手动事件记录的过程,以便您可以选择控制何时记录应用程序事件。我们建议您不要禁用自动日志记录,因为它可能会影响为您的应用收集数据的方式。

但是,Swift Reference中它说:

将应用程序激活记录为应用程序事件可启用大多数其他功能,并且应该是您添加到应用程序的第一件事。

那么应该添加它还是为 Swift 应用程序自动调用它?

标签: iosswiftfacebook-ios-sdkfbsdk

解决方案


  • FacebookAutoLogAppEventsEnabled- 自动收集应用程序事件。

  • FBSDKAppEvents.activateApp()- 手动发送应用程序事件。它保证事件将被强制收集,无论外部因素如何,当然如果SDK使用正确的AppId初始化。

基于FB 文档的讨论FBSDKAppEvents.activateApp()

activateApp不会在每次应用程序启动时记录事件,因为每次应用程序在后台运行然后再前台运行时都会启动。当应用程序未激活超过 60 秒时,将记录“激活的应用程序”事件。

这表明他的内在逻辑很聪明,并不取决于他被叫到的方式、地点和频率。

如果这对您很重要,我的意见是收集应用程序事件以进行分析。我建议手动、并行且独立于自动调用FBSDKAppEvents.activateApp()方法。这不会是警告、错误或违反指南。applicationDidBecomeActiveFacebookAutoLogAppEventsEnabled

如果我给出的论据太少,无法确认我的建议。然后,如有必要,我将以扩展的形式描述我所接受的指导以及我如何分析以采纳这种观点。


推荐阅读