本指南介绍如何集成 Facebook SDK,然后记录应用事件,从而为新建应用和现有应用添加这些事件。
我们对 Facebook iOS SDK 进行了一些更改。推荐升级至新版 Facebook iOS SDK。请参阅“设备同意”部分,了解此次更改的更多信息。
如果尚未拥有应用,请前往应用面板,点击我的应用以创建新应用。前往设置 > 基本,查看应用详情面板,这里包含应用编号、应用密钥以及应用的其他详细信息。
滚动到页面底部,然后点击添加平台。选择 iOS,添加您的应用详情,然后保存更改。
如要针对广告投放设置应用,请添加下列详细信息:

如需详细了解如何为应用添加详情(例如图标或类别),请访问应用开发文档。
以下过程为在 Xcode 中使用 Swift 软件包管理工具设置开发环境。
使用包含应用数据的 XML 代码片段配置 Info.plist 文件。
Info.plist,然后选择 Open As(打开方式)▸ Source Code(源代码)。
<dict>...</dict>)。
<key>CFBundleURLTypes</key><array><dict><key>CFBundleURLSchemes</key><array><string>fbAPP-ID</string></array></dict></array><key>FacebookAppID</key><string>APP-ID</string><key>FacebookClientToken</key><string>CLIENT-TOKEN</string><key>FacebookDisplayName</key><string>APP-NAME</string>
[CFBundleURLSchemes] 键内的 <array><string> 中,将 APP-ID 替换为您的应用编号。FacebookAppID 键内的 <string> 中,将 APP-ID 替换为您的应用编号。FacebookClientToken 键内的 <string> 中,将 CLIENT-TOKEN 替换为您在应用面板设置 > 高级 > 客户端口令中找到的值。FacebookDisplayName 键内的 <string> 中,将 APP-NAME 替换为您的应用名称。Info.plist 还需包含以下代码:
<key>LSApplicationQueriesSchemes</key><array><string>fbapi</string><string>fb-messenger-share-api</string></array>
您可以在 Info.plist 中添加 FacebookAutoLogAppEventsEnabled 作为一个键,以直接将应用事件自动收集功能设为“true”或“false”。
您需为项目添加 Keychain Sharing 功能,才能使登录功能在 Mac Catalyst 应用程序中正常运作。



将 AppDelegate.swift 方法中的代码替换为以下代码。此代码会在启动应用时初始化 SDK,并在您执行登录或分享操作时,允许 SDK 处理原生 Facebook 应用的登录及分享。否则,用户便须登录 Facebook 才能使用应用内浏览器进行登录。
// AppDelegate.swift
import UIKit
import FBSDKCoreKit
@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]
)
}
}
iOS 13 版本的系统中,将打开网址的功能移到了 SceneDelegate 中。如果您使用的是 iOS 13 版本,请将以下方法添加到 SceneDelegate 中,以便相关操作(如登录或分享等功能)可按照预期运作:
// SceneDelegate.swift
import FBSDKCoreKit
...
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 的质量和稳定性。要禁止记录此事件,请禁用自动记录事件功能。 |
Apple 提供了四种不同的应用内购买类型:消耗品、非消耗品、自动续订和非续订。如果您使用 StoreKit 1 实施应用内购买,我们会自动记录每个应用内购买类型。如果您使用 StoreKit 2 实现应用内购买,我们会自动记录非消耗品、自动续订订阅和非续订订阅。如果您也想自动记录消耗品,您需要向 Info.plist 添加 SKIncludeConsumableInAppPurchaseHistory 键:
<key>SKIncludeConsumableInAppPurchaseHistory</key><true/>在 StoreKit 1 中,当用户成功购买产品、还原产品或尝试购买产品但购买失败时,我们会自动记录事件。在 StoreKit 2 中,当用户成功购买产品或恢复产品时,我们会自动记录事件。如果您也想在 StoreKit 2 中购买失败时记录事件,则必须手动调用我们提供的一个 API。您可以通过以下方式在 Store Kit 2 购买流程中调用此 API:
do {
let result = try await product.purchase()
switch result {
case .success(let verificationResult):
// Handle success case
case .pending:
// Handle pending case
default:
AppEvents.shared.logFailedStoreKit2Purchase(product.id)
}
} catch {
AppEvents.shared.logFailedStoreKit2Purchase(product.id)
}
从 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"))Meta 已创建一组实用事件参数,以便让这些参数随标准事件或您自己的自定义事件一起传递。您也可以提供自己的参数。
如果您想使用应用事件来衡量动态广告的转化量,请将 fb_content_id 参数设为所关联动态广告中使用的商品编号的值。
这些预定义参数旨在指引您了解常见的记录模式,并可能在报告和其他用户界面中具有更易读的形式。记录您在查看细分数据时想了解的一系列参数。这些参数的推荐说明仅用作指南,您可以将这些参数用于对应用有意义的任何事件。
参数将通过字典传递,其中的键会将参数名称记录为 AppEvents.ParameterName,且对应的值必须为 String 或 number(Int、Double 等)。
为了让您能更轻松地了解如何使用应用事件,我们针对不同类型的应用创建了一些示例。每个应用示例提供了可收集的各类事件和参数的逐屏细分数据。每部分结尾都有一个表格,我们在其中列出了针对各个应用的推荐事件和参数。此外,如有必要,您也可以创建自己的事件和参数。