本指南介绍如何集成 Facebook SDK,然后记录应用事件,从而为新建应用和现有应用添加这些事件。
我们对 Facebook iOS SDK 进行了一些更改。推荐升级至新版 Facebook iOS SDK。请参阅“设备同意”部分,了解此次更改的更多信息。
如果尚未拥有应用,请前往应用面板,点击我的应用以创建新应用。前往设置 > 基本,查看应用详情面板,这里包含应用编号、应用密钥以及应用的其他详细信息。
滚动到页面底部,然后点击添加平台。选择 iOS,添加您的应用详情,然后保存更改。
如要针对广告投放设置应用,请添加下列详细信息:
如需详细了解如何为应用添加详情(例如图标或类别),请访问应用开发文档。
以下过程为在 Xcode 中使用 Swift 软件包管理工具设置开发环境。
添加捆绑包标识符,并为应用启用单点登录。
单点登录 将从 iOS 通知中启动 |
Info.plist
文件。 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
等)。
为了让您能更轻松地了解如何使用应用事件,我们针对不同类型的应用创建了一些示例。每个应用示例提供了可收集的各类事件和参数的逐屏细分数据。每部分结尾都有一个表格,我们在其中列出了针对各个应用的推荐事件和参数。此外,如有必要,您也可以创建自己的事件和参数。