iOS 應用程式事件新手指南

本指南說明如何將應用程式事件加入全新或既有的應用程式,方法是先整合 Facebook SDK,然後記錄這些事件。

我們已對 Facebook iOS SDK 進行變更。建議升級為新的 Facebook iOS SDK 版本。有關此變更的更多資訊,請參閱裝置同意部分。

前置準備

必備項目:

步驟 1:設定 Facebook 應用程式

請前往應用程式主控板,然後點擊我的應用程式,如果您沒有任何應用程式,請建立新的應用程式。依序導覽至設定 > 基本,即可查看應用程式詳細資料面板,其中會顯示應用程式編號應用程式密鑰及其他應用程式詳細資料。

向下捲動至頁面底部,然後點擊新增平台。選擇 iOS,新增您應用程式的詳細資訊,然後儲存變更。

若要設定應用程式以進行廣告刊登,請新增下列詳細資料:

  • 應用程式網域:提供應用程式的 Apple App Store 網址。
  • 隱私政策網址:提供隱私政策網址。若要公開發佈應用程式,就必須提供這項資訊。
  • 服務條款網址:提供服務條款網址。
  • 平台:捲動至設定面板底部,以新增 iOS 平台。

如需深入瞭解如何新增應用程式詳細資料(如圖示或類別),請參閱應用程式開發文件

步驟 2:連結廣告和商家資產管理組合

若要在廣告管理員中刊登廣告並衡量安裝次數,應用程式必須至少連結一個廣告帳號和一個商家資產管理組合

  1. 應用程式主控板中,點擊設定 > 進階
  2. 已驗證的廣告帳號編號中,新增您的廣告帳號編號。您可在廣告管理員取得廣告帳號編號。
  3. 廣告帳號面板中,點擊開始使用,然後按照說明將應用程式連接到商家。

步驟 3:設定開發環境

下列程序使用 Swift 套件管理工具來設定 Xcode 開發環境。

  1. 在 Xcode 中,點擊 File(檔案)> Add Packages...(新增套件…)
  2. 在顯示的搜尋欄位中,輸入儲存庫網址:https://github.com/facebook/facebook-ios-sdk
  3. Dependency Rule(相依性規則)中,選擇 Up to Next Major Version(直到下一個主要版本),然後輸入最新版本。如需最新發行清單,請參閱 https://github.com/facebook/facebook-ios-sdk/releases/
  4. 選擇您要使用的資料庫,以及要新增這些資料庫的目標。
  5. 點擊 Add Package(新增套件)以完成設定。

步驟 4:向 Facebook 註冊並設定應用程式

  1. 在應用程式主控板中,前往 App settings(應用程式設定) > Basic(基本)並向下捲動,然後點擊 + Add platform(+ 新增平台)
  2. 向下捲動至 iOS 卡片,並新增套件識別碼。在 Xcode 專案的 iOS 應用程式目標中找到套件識別碼。您可以隨時更新套件識別碼。

步驟 5:設定專案

使用包含您應用程式資料的 XML 程式碼片段來設定 Info.plist 檔案。

整合 Facebook 登入後,除非停用自動應用程式事件記錄功能,否則系統會自動記錄並蒐集某些應用程式事件,以供事件管理工具使用。如需深入瞭解系統會蒐集哪些資訊,以及如何停用自動應用程式事件記錄功能,請參閱自動應用程式事件記錄功能

  1. Info.plist 上點擊右鍵,然後選擇以原始碼形式開啟
  2. 複製以下 XML 程式碼片段並貼至檔案主體(<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>
  3. [CFBundleURLSchemes] 索引鍵的 <array><string> 中,將 APP-ID 替換為您的應用程式編號。
  4. FacebookAppID 索引鍵的 <string> 中,將 APP-ID 替換為您的應用程式編號。
  5. FacebookClientToken 索引鍵的 <string> 中,將 CLIENT-TOKEN 替換為您應用程式主控板中「設定」>「進階」>「用戶端權杖」下找到的數值。
  6. FacebookDisplayName 索引鍵的 <string> 中,將 APP-NAME 替換為您的應用程式名稱。
  7. 若要使用任何可從某應用程式切換到 Facebook 應用程式的 Facebook 對話方塊(例如:登入、分享、應用程式邀請等等),您應用程式的 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 應用程式中運作。

  1. 設定應用程式目標時,請在「Signing & Capabilities(簽署和功能)」頁籤中選擇「+ Capability(+ 功能)」按鈕。
  2. 找到並選擇 Keychain Sharing 功能。
  3. 確認系統針對目標列出 Keychain Sharing 功能。

步驟 6:連接應用程式委派和場景委派

以下列程式碼取代 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]
    )
}

步驟 7:新增應用程式事件

有三種方法可以追蹤應用程式中的事件:

iOS 14 專用的 App Store Connect

應用程式蒐集和傳送到 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 或數字(IntDouble 等等)。

步驟 8:測試事件

應用程式廣告幫手可用來測試應用程式中的應用程式事件,確保應用程式將事件傳送到 Facebook。

  1. 開啟應用程式廣告幫手
  2. 選擇應用程式中,選擇所需應用程式,然後選擇提交
  3. 捲動至底部,然後選擇測試事件
  4. 啟動應用程式,並傳送事件。事件會出現在網頁上。

如果您規劃最佳化/追蹤 SKAdNetwork 行銷活動中的事件,您還需要正確設定事件優先順序(也稱為轉換值),以利 Facebook 正確接收轉換。更多詳細資訊可以在這裡找到

瞭解詳情

應用程式範例

我們已為不同應用程式類型製作一些範例,以讓您更容易瞭解如何使用應用程式事件。每個應用程式範例都會針對可蒐集的不同事件和參數,利用逐一畫面提供資料解析。各節結尾都會提供一個表格,列出建議用於各應用程式的事件和參數。如有必要,您也可以建立自己的事件和參數。