如何退出 Facebook SDK 事件记录?
Posted
技术标签:
【中文标题】如何退出 Facebook SDK 事件记录?【英文标题】:How to opt out from Facebook SDK event logging? 【发布时间】:2016-10-12 08:47:50 【问题描述】:我正在使用 android 版 Facebook 应用事件跟踪,但我不知道如何在用户想要退出时禁用跟踪!有人知道怎么做吗?
The documentation 说:
我们建议您使用我们的 SDK 工具提供选择退出。
但他们实际上并没有在任何地方描述它。经典的 Facebook 举措。
编辑: 现在 GDPR 生效了这么久,在用户同意之前,他们仍然无法禁用所有跟踪,不是吗?
【问题讨论】:
【参考方案1】:不知道每个用户,但您可以选择使用 Facebook SDK 事件日志记录:
将此添加到您的 Android.Manifest.xml:
<meta-data android:name="com.facebook.sdk.AutoLogAppEventsEnabled"
android:value="false"/>
【讨论】:
在用户同意后,如果需要,可以使用FacebookSdk.setAutoLogAppEventsEnabled(true);
再次启用日志记录。【参考方案2】:
文档更新后,似乎新的方法是禁用
<meta-data android:name="com.facebook.sdk.AutoLogAppEventsEnabled"
android:value="false"/>
<meta-data android:name="com.facebook.sdk.AdvertiserIDCollectionEnabled"
android:value="false"/>
<meta-data android:name="com.facebook.sdk.AutoInitEnabled"
android:value="false"/> <!--OPTIONAL-->
并在运行时选择加入通话:
FacebookSDK.setAutoLogAppEventsEnabled(true)
FacebookSDK.setAdvertiserIDCollectionEnabled(true)
// OPTIONALLY the following two lines if AutoInitEnabled is set to false in manifest:
FacebookSDK.setAutoInitEnabled(true)
FacebookSDK.fullyInitialize()
现在我不知道什么时候禁用(然后启用)自动初始化会更好,也许其他人可能对此有想法。
【讨论】:
在征得用户同意之前【参考方案3】:他们正在谈论的选择退出在下面的标题中描述:https://developers.facebook.com/docs/app-events/android#setlimiteventusage
您可以致电AppEventsLogger.setLimitEventUsage(this, true);
“选择退出”(至少限制)记录的事件的使用方式。
【讨论】:
我想,但这是否意味着无法禁用任何跟踪?例如,Firebase 提供了方法setAnalyticsCollectionEnabled
。在许多国家/地区,在没有任何退出选项的情况下强制执行跟踪是非法的。
Facebook 似乎没有提供该功能。 :( 您最好的办法可能是通过您自己的一些日志包装器或在每次调用他们的 SDK 时检查一些条件来处理激活和手动日志记录。如果您在 Application.onCreate() 中激活日志记录,则用户可以选择-in 或 -out 将在下一次完整的应用程序启动时激活。
“Facebook 可能会继续将这些信息用于其他目的,包括频率上限、转化事件、估计唯一用户数量、安全和欺诈检测以及调试。”以上是关于如何退出 Facebook SDK 事件记录?的主要内容,如果未能解决你的问题,请参考以下文章
Facebook SDK 4.7.0 记录 AppEventsLogger 的 ClassNotFoundException
Facebook SDK iOS 应用在应用退出时保持登录状态