Facebook SDK《通用数据保护条例》合规最佳实践

您集成 Facebook SDK 之后,如果未禁用应用事件自动记录功能,系统将为事件管理工具自动记录和收集特定的应用事件。如要关闭自动记录或收集功能,可在应用代码中作出相应更改或在应用面板(或事件管理工具)中的“应用事件”下切换相应开关。请注意,如果 AutoLogAppEventsEnabled 标记的值与开关值发生冲突,我们将以“为 Facebook SDK 自动记录事件”开关的值为准。如要详细了解系统会收集哪些信息以及如何禁用应用事件自动记录功能,请参阅应用事件自动记录

当您使用应用事件 Facebook SDK 时,我们的业务条款要求您依据适当的法律规定来收集和处理用户信息。根据《通用数据保护条例》和其他欧盟数据保护法规的要求,您需要先取得最终用户的同意,方可通过我们的 SDK 发送数据。因此,您需要确保 SDK 实现满足这些同意要求。

默认情况下,SDK 会自动记录应用中的常见移动事件,例如应用安装和应用启动。当应用开启时,这些事件会传输到 Facebook,以便您深入了解应用的用户行为和广告系列表现。

我们会提供以下资源来帮助您实现同意机制,以履行欧盟数据保护法和我们的业务工具条款规定的法律义务。

同意指南

您可以查看我们的同意指南,了解在您的网站和应用上征求同意时可遵循的实用指南和最佳实践。如果您选择在安装应用之前,通过单独的用户注册流程取得用户的知情同意(如上述同意指南所述),则无需进行任何变更,即可继续使用 Facebook SDK 及其自动记录功能。

延迟自动事件搜集

如果您没有安装前取得用户同意的机制,则需要采取额外的步骤来履行使用 Facebook SDK 的法律义务。我们提供工具来延迟 SDK 中的数据传输,直到用户有机会完成应用内同意流程。

要求

  • Facebook SDK v.5.0 或更高版本。请浏览我们的升级指南,了解如何将您的应用升级到最新的 SDK 版本。

对于 Android 设备

AndroidManifest.xml 文件中,将 AutoLogAppEventsEnabled 标记设为 false

<application>
  ...
  <meta-data android:name='com.facebook.sdk.AutoLogAppEventsEnabled'
           android:value='false'/>
  ...
</application>

然后,在最终用户同意后,调用 FacebookSdk 类的 setAutoLogAppEventsEnabled() 方法并设为 true,以重新启用自动记录功能。

FacebookSdk.setAutoLogAppEventsEnabled(true);

对于 iOS 设备

在 Xcode 中以代码形式开启应用程序的 .plist 并将下列 XML 添加到属性目录。

<key>FacebookAutoLogAppEventsEnabled</key><false/>
  • 在终端用户同意后,调用 FBSDKSettings 类的 setAutoLogAppEventsEnabled 方法并设为 true(如果使用的是 Swift)或 YES(如果使用的是 Objective-C),以重新启用自动记录功能。

Swift 语言:

Settings.isAutoLogAppEventsEnabled = true

Objective-C 语言:

[FBSDKSettings setAutoLogAppEventsEnabled:YES];

禁用自动事件搜集

您还可以完全禁用自动事件记录功能,以便在应用开启时停止向 Facebook 传输任何数据。注意:禁用自动事件记录功能后,您将无法再追踪应用安装和应用启动事件。手动添加其他代码来记录这些事件。

对于 Android 设备

将以下代码行添加到您的 AndroidManifest.xml 文件。

<application>
  ...
  <meta-data android:name='com.facebook.sdk.AutoLogAppEventsEnabled'
           android:value='false'/>
  ...
</application>

对于 iOS 设备

在 Xcode 中以代码形式开启应用程序的 .plist 并将下列 XML 添加到属性目录。

<key>FacebookAutoLogAppEventsEnabled</key>
<false/>

禁用 SDK 自动初始化功能

开启应用时,Android 版 Facebook SDK 会自动初始化。当 SDK 开始初始化时,它会从 Facebook 获取应用设置。如果您想阻止向 Facebook 发送的所有网络请求,可以禁用自动初始化功能。

对于 Android 设备

AndroidManifest.xml 文件中将 AutoInitEnabled 标记设为 false

<application>
  ...
  <meta-data android:name="com.facebook.sdk.AutoInitEnabled"
           android:value="false"/>
  ...
</application>

然后,在最终用户同意后,调用 FacebookSdk 类的 setAutoInitEnabled() 方法并设为 true,以重新启用自动初始化功能。

FacebookSdk.setAutoInitEnabled(true);
FacebookSdk.fullyInitialize();