本指南說明如何將應用程式事件加入全新或既有的應用程式,方法是先整合 Facebook SDK,然後記錄這些事件。
我們已對 Facebook iOS SDK 進行變更。建議升級為新的 Facebook iOS SDK 版本。有關此變更的更多資訊,請參閱裝置同意部分。
請前往應用程式主控板,然後點擊我的應用程式,如果您沒有任何應用程式,請建立新的應用程式。依序導覽至設定 > 基本,即可查看應用程式詳細資料面板,其中會顯示應用程式編號、應用程式密鑰及其他應用程式詳細資料。
向下捲動至頁面底部,然後點擊新增平台。選擇 iOS,新增您應用程式的詳細資訊,然後儲存變更。
若要設定應用程式以進行廣告刊登,請新增下列詳細資料:

如需深入瞭解如何新增應用程式詳細資料(如圖示或類別),請參閱應用程式開發文件。
下列程序使用 Swift 套件管理工具來設定 Xcode 開發環境。
使用包含您應用程式資料的 XML 程式碼片段來設定 Info.plist 檔案。
整合 Facebook 登入後,除非停用自動應用程式事件記錄功能,否則系統會自動記錄並蒐集某些應用程式事件,以供事件管理工具使用。如需深入瞭解系統會蒐集哪些資訊,以及如何停用自動應用程式事件記錄功能,請參閱自動應用程式事件記錄功能。
Info.plist 上點擊右鍵,然後選擇以原始碼形式開啟。
<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]
)
}
有三種方法可以追蹤應用程式中的事件:
應用程式蒐集和傳送到 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 確保 SDK 的品質和穩定性。若要退出記錄此事件,請停用自動記錄的事件。 |
Apple 提供四種不同的應用程式內購買類型:消費性、非消費性、自動續訂和不續訂。如果您使用 StoreKit 1 實作應用程式內購買,我們會自動記錄每一種應用程式內購買類型。如果您使用 StoreKit 2 實作應用程式內購買,我們將自動記錄非消費性、自動續訂和不續訂類型。如果您也想自動記錄消費性類型,則需要在 Info.plist 中新增 SKIncludeConsumableInAppPurchaseHistory 密鑰:
<key>SKIncludeConsumableInAppPurchaseHistory</key><true/>在 StoreKit 1 中,當用戶成功購買商品、歸還商品或嘗試購買商品但購買失敗時,我們會自動記錄事件。在 Store Kit 2 中,當用戶成功購買商品或歸還商品時,我們會自動記錄事件。如果您也想在 Store Kit 2 中記錄購買失敗時的事件,我們提供了一個您必須呼叫的手動 API。您可以在 StoreKit 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 或數字(Int、Double 等等)。
我們已為不同應用程式類型製作一些範例,以讓您更容易瞭解如何使用應用程式事件。每個應用程式範例都會針對可蒐集的不同事件和參數,利用逐一畫面提供資料解析。各節結尾都會提供一個表格,列出建議用於各應用程式的事件和參數。如有必要,您也可以建立自己的事件和參數。