本指南介绍如何集成 Facebook SDK,然后记录应用事件,从而为新建应用和现有应用添加这些事件。
我们对 Facebook iOS SDK 进行了一些更改。推荐升级至新版 Facebook iOS SDK。请参阅“设备同意”部分,了解此次更改的更多信息。
如果尚未拥有应用,请前往应用面板,点击我的应用以创建新应用。前往设置 > 基本,查看应用详情面板,这里包含应用编号、应用密钥以及应用的其他详细信息。
滚动到页面底部,然后点击添加平台。选择 iOS,添加您的应用详情,然后保存更改。
如要针对广告投放设置应用,请添加下列详细信息:
如需详细了解如何为应用添加详情(例如图标或类别),请访问应用开发文档。
以下过程为在 Xcode 中使用 Swift 软件包管理工具设置开发环境。
添加捆绑包标识符,并为应用启用单点登录。
单点登录 将从 iOS 通知中启动 |
Info.plist
文件。 After you integrate Facebook Login, certain App Events are automatically logged and collected for Events Manager, unless you disable Automatic App Event Logging. In particular, when launching an app in Korea, please note that Automatic App Event Logging can be disabled. For details about what information is collected and how to disable automatic app event logging, see Automatic App Event Logging.
Info.plist
,然后选择 Open As(打开方式)▸ Source Code(源代码)。 <dict>...</dict>
)。 [CFBundleURLSchemes]
键内的 <array><string>
中,将 APP-ID 替换为您的应用编号。FacebookAppID
键内的 <string>
中,将 APP-ID 替换为您的应用编号。FacebookClientToken
键内的 <string>
中,将 CLIENT-TOKEN 替换为您在应用面板设置 > 高级 > 客户端口令中找到的值。FacebookDisplayName
键内的 <string>
中,将 APP-NAME 替换为您的应用名称。Info.plist
还需包含以下代码: 您可以在 Info.plist
中添加 FacebookAutoLogAppEventsEnabled
作为一个键,以直接将应用事件自动收集功能设为“true”或“false”。
AppDelegate.swift
方法中的代码更换为以下代码。此代码会在启动应用时初始化 SDK,并在您执行登录或分享操作时,允许 SDK 处理原生 Facebook 应用的登录及分享。否则,用户便须登录 Facebook 才能使用应用内浏览器进行登录。 // AppDelegate.swift import UIKit import FacebookCore @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { ApplicationDelegate.shared.application( application, didFinishLaunchingWithOptions: launchOptions ) return true } func application( _ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:] ) -> Bool { ApplicationDelegate.shared.application( app, open: url, sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String, annotation: options[UIApplication.OpenURLOptionsKey.annotation] ) } }
SceneDelegate
中。如果您使用的是 iOS 13,请将以下方法添加到 SceneDelegate
中,以便相关操作(如登录或分享等功能)可按照预期运作: // SceneDelegate.swift import FacebookCore ... func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) { guard let url = URLContexts.first?.url else { return } ApplicationDelegate.shared.application( UIApplication.shared, open: url, sourceApplication: nil, annotation: [UIApplication.OpenURLOptionsKey.annotation] ) }
系统会在应用内使用以下 3 种方式追踪事件:
您的应用收集并发送到 Facebook 的事件可能需要您在 App Store Connect 问卷中披露这些数据类型。您应负责确保在应用程序的隐私权政策中反映出这一点。访问 Apple App Store 隐私详情一文,了解您需要披露的数据类型的更多相关信息。
使用 Facebook SDK 时,除非禁用事件自动记录功能,否则系统会为 Facebook 事件管理工具自动记录并收集应用中的某些事件。这些事件与所有用途相关,例如定位、成效衡量和优化。
应用事件自动记录功能收集的事件包括三个主要事件:应用安装、应用启动和购买。启用自动记录功能时,广告主可禁用这些事件,以及登录展示事件等其他 Facebook 内部事件。但是,如果已禁用自动记录功能,但仍想记录特定事件(例如安装或购买事件),则可在应用中手动记录这些事件。
事件 | 详情 |
---|---|
安装应用 | 新用户首次激活应用或首次在特定设备上启动应用时。 |
启动应用 | 用户启动应用后,Facebook SDK 便会初始化,系统也会记录该事件。但是,如果在首次启动后 60 秒内发生第二次应用启动事件,则系统不会记录第二次应用启动事件。 |
应用内购买 | 由 Apple App Store 或 Google Play 商店处理的购买完成时。如果您使用其他支付平台,则需要手动添加购买事件代码。 |
Facebook SDK 崩溃报告 (仅供 Facebook 使用) | 如果应用因 Facebook SDK 而崩溃,系统会在应用重启时生成崩溃报告并将其发送给 Facebook。此报告不包含用户数据,并且有助于 Facebook 确保 Facebook SDK 的质量和稳定性。要禁止记录此事件,请禁用自动记录事件功能。 |
从 iOS 14.5 开始,您需要设置 isAdvertiserTrackingEnabled
,并在每次为设备授予与 Facebook 分享数据的权限时,做好记录。
设备同意后,设为 Settings.shared.isAdvertiserTrackingEnabled = true
。
设备禁止追踪时,设为 Settings.shared.isAdvertiserTrackingEnabled = false
。
要禁用自动记录事件功能,请在 Xcode 中将应用程序的 Info.plist
作为代码打开,然后在属性目录中添加以下 XML:
<key>FacebookAutoLogAppEventsEnabled</key> <false/>
在某些情况下(例如要获得用户同意或履行法定义务),您可能想要延迟收集自动记录的事件,而不是将其禁用。这种情况下,在最终用户同意后,可设置 Settings.shared.isAutoLogAppEventsEnabled = true
以重新启用自动记录功能。
如果出于某些原因需再次暂停收集,请设置 Settings.shared.isAutoLogAppEventsEnabled = false
。
您也可以通过应用面板禁用应用内购买事件自动记录功能。请前往基本>设置中的 iOS 图卡,将开关切换为否。
要禁用 advertiser-id
收集功能,请在 Xcode 中以代码的形式打开应用程序的 .plist
,然后在属性目录中添加以下 XML:
<key>FacebookAdvertiserIDCollectionEnabled</key> <false/>
在某些情况下(例如要获取用户同意或履行法定义务),您可能想要延迟收集 advertiser_id
,而不是将其禁用。这种情况下,在最终用户同意后,可设置 Settings.shared.isAdvertiserIDCollectionEnabled = true
。
如果出于某些原因需暂停收集,请设置 Settings.shared.isAdvertiserIDCollectionEnabled = false
。
要记录自定义事件,只需将事件名称作为 AppEvents.Name
传递即可:
AppEvents.shared.logEvent(AppEvents.Name("battledAnOrc"))
Facebook 已创建一组与标准事件或自定义事件一起使用的实用事件参数。您也可以提供自己的参数。
这些预定义参数旨在指引您了解常见的记录模式,并让报告和其他用户界面中的表单更易阅读。记录您在查看细分数据时想了解的一系列参数。这些参数的推荐说明仅用作指南,您可以将这些参数用于对应用有意义的任何事件。
参数将通过字典传递,其中的键值会将参数名称记录为 AppEvents.ParameterName
,且对应的值必须为 String
或 number(Int
、Double
等)。
为了让您能更轻松地了解如何使用应用事件,我们针对不同类型的应用创建了一些示例。每个应用示例提供了可收集的各类事件和参数的逐屏细分数据。每部分结尾都有一个表格,我们在其中列出了针对各个应用的推荐事件和参数。此外,如有必要,您也可以创建自己的事件和参数。