在FBSDKAppEvents.activateApp()
未设置为applicationDidBecomeActive
的情况下是否需要向FacebookAutoLogAppEventsEnabled
添加false
?
根据FBSDKAppEvents.h
,没有必要:
通知事件系统该应用已启动,以及何时启动 适当,记录一个“已激活的应用”事件。 此功能称为 自动从FBSDKApplicationDelegate applicationDidBecomeActive,除非在项目信息中将'FacebookAutoLogAppEventsEnabled'键覆盖为false plist文件。如果“ FacebookAutoLogAppEventsEnabled”设置为 false,则通常应将其放置在应用程序委托的
applicationDidBecomeActive:
方法。
这已由FB docs确认,其中在“手动事件记录”下添加了activateApp
:
此处介绍的使用SDK手动记录事件的过程是 提供,以便您可以选择控制应用程序事件的时间 被记录。我们建议您不要禁用自动日志记录 因为它可能会影响为您的应用收集数据的方式。
但是,在Swift Reference中表示:
将应用程序激活记录为应用程序事件可启用大多数其他功能 功能,应该是您添加到应用中的第一件事。
那么应该添加它还是为Swift应用程序自动调用它?
答案 0 :(得分:1)
FacebookAutoLogAppEventsEnabled
-自动收集应用程序事件。
FBSDKAppEvents.activateApp()
-手动发送应用程序事件。如果SDK使用正确的AppId初始化,则可以保证无论外部因素如何都将强制收集事件。
基于FBSDKAppEvents.activateApp()
的{{3}}:
activateApp
不会在每次启动应用程序时记录事件,因为启动是在应用程序先后台运行后发生的。 当应用程序超过60秒钟未激活时,将记录“已激活的应用程序”事件。
哪个暗示他的内部逻辑很聪明,并不取决于他被叫的方式,地点和频率。
我的观点(对于您而言很重要)是收集应用程序事件以进行分析。
我建议在FBSDKAppEvents.activateApp()
中手动,并行且独立于自动applicationDidBecomeActive
调用FacebookAutoLogAppEventsEnabled
方法。
这不是警告,错误或违反准则。
如果我提出的论点太少,无法确认我的建议。然后,如有必要,我将以扩展的形式描述我所受的指导以及如何分析以采纳这种观点。