這份文件已更新。
中文(香港) 的翻譯尚未完成。
英文更新時間:8月19日

iOS 版應用程式事件新手入門

本指南會講解如何透過整合 Facebook SDK 及記錄應用程式事件,以將這些事件加入新的應用程式或現有應用程式。

我們對 Facebook iOS SDK 作出了一些變更。建議您升級至全新版本的 Facebook iOS SDK。請參閱「裝置同意」區塊,了解更多有關此變更的資訊。

準備工作

您將需要:

第 1 步:配置 Facebook 應用程式

如果您尚未擁有 Facebook 應用程式,請前往應用程式管理中心,點擊我的應用程式,然後建立新的應用程式。前往設定 > 基本,在此查看應用程式詳細資料面板,當中列有您的應用程式編號應用程式密鑰以及有關您應用程式的其他詳細資料。

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

若要將應用程式設為廣告用途,請加入以下詳細資料:

  • 應用程式網域:提供您應用程式的 Apple App Store 網址。
  • 私隱政策網址:提供私隱政策網址。您必須提供此項目,才能公開您的應用程式。
  • 服務條款網址:提供服務條款網址。
  • 平台:捲動至「設定」面板底部,新增 iOS 平台。

如欲進一步了解如何在應用程式新增圖示或類別等詳細資料,請瀏覽應用程式開發文件

第 2 步:連結廣告與商家資產管理組合

若要在廣告管理員中刊登廣告並衡量安裝次數,您必須將最少一個廣告帳戶商家資產管理組合與您的應用程式建立關聯。

  1. 應用程式管理中心內,點擊設定 > 進階
  2. 已驗證的廣告帳戶編號中加入您的廣告帳戶編號。您可以從廣告管理員中取得廣告帳戶編號。
  3. 廣告帳戶面板中,點擊開始使用,然後按照指示連結應用程式與企業。

第 3 步:設定開發環境

以下程序會使用 Swift 套件管理工具,以在 Xcode 中設定開發環境。

  1. 在 Xcode 中,點擊檔案 > 新增套件…
  2. 在畫面出現的搜尋欄位中輸入資料庫網址:https://github.com/facebook/facebook-ios-sdk
  3. 相依項目規則中,選取 Up to Next Major Version 並輸入最新版本。最新發佈版本載於 https://github.com/facebook/facebook-ios-sdk/releases/
  4. 選擇您要使用的資料庫,以及您希望新增這些資料庫的目標位置。
  5. 點擊新增套件以完成設定。

第 4 步:利用 Facebook 註冊與配置應用程式

加入套裝識別資料,並為應用程式啟用單一登入功能。

套件識別碼(套件編號)應該會顯示在下方的方框中。如果方框空白一片,請在 Xcode 專案的 iOS 應用程式 Target 中找出套件識別碼,然後將其貼入以下方框。
套件編號
您以後可以在設定頁面的 iOS 區塊中更改套件編號。
啟用單一登入
在下方將「單一登入」設定為「是」,來為您的應用程式啟用單一登入。
單一登入 會從 iOS 通知啟動

第 5 步:配置您的專案

使用包含您應用程式資料的 XML 程式碼片段,配置 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.

  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.plistFacebookAutoLogAppEventsEnabled 加為鍵,以直接將自動蒐集應用程式事件的功能設為「true」或「false」。

您的專案需要包含「鑰匙圈共享」功能,才能登入並在 Mac Catalyst 應用程式運作。
  1. 配置應用程式目標時,選擇登入和功能分頁中的 + 功能按鈕。
  2. 找出並選擇鑰匙圈共享功能。
  3. 確保目標已列出鑰匙圈共享功能。

第 6 步:連接您的應用程式委派和場景委派

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]
        )
    }  
}

iOS 13 已將開啟網址的功能移至 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]
    )
}

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

在應用程式內追蹤事件的方法有三種:

適用於 iOS 14 的 App Store Connect

您可能需要就應用程式所蒐集並傳送至 Facebook 的事件,在 App Store Connect 問卷中披露有關資料類型。您有責任確保在應用程式的私隱政策中列明這一點。請查閱 Apple App Store 私隱詳情文章,以進一步了解您需要披露的資料類型。

自動記錄的事件

在您使用 Facebook SDK 時,除非您停用了事件自動記錄功能,否則系統會為 Facebook 事件管理工具自動記錄並蒐集特定應用程式事件。這些事件與所有使用案例相關,例如目標指定、成效衡量和優化。

應用程式事件自動記錄功能會蒐集 3 種關鍵事件:應用程式安裝、應用程式啟動和購買事件。啟用自動記錄功能時,廣告客戶將可停用這些事件,以及登入展示事件等 Facebook 內部事件。但是,如果您已停用自動記錄功能,但仍希望記錄指定事件(例如安裝或購買事件),您也可以在應用程式手動執行有關事件的記錄功能。

事件詳細資訊

安裝應用程式

新用戶第一次啟動應用程式,或應用程式第一次於特定裝置啟動時。

啟動應用程式

當用戶啟動應用程式時,Facebook SDK 會初始化,並會記錄事件。但是,如果第二次應用程式啟動事件發生在第一次啟動之後的 60 秒內,系統便不會記錄第二次應用程式啟動事件。

應用程式內購買

Apple App Store 或 Google Play 處理完交易時。如果您使用其他付款平台,就必須手動新增購買事件代碼。

Facebook SDK 當機報告

(僅限 Facebook 使用。)

如果您的應用程式因 Facebook SDK 導致當機,則在您重新啟動應用程式時,將會產生一份當機報告並傳送給 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 或數字(IntDouble 等)。

第 8 步:測試事件

應用程式廣告協助工具可讓您在應用程式中測試應用程式事件,以確保應用程式能傳送事件至 Facebook。

  1. 開啟應用程式廣告協助工具
  2. 選擇應用程式中,選擇您的應用程式並選擇提交
  3. 捲動至頁面底部,然後選擇測試事件
  4. 啟動應用程式並傳送事件。事件會出現在頁面中。

如果您計劃在 SKAdNetwork 宣傳活動中優化/追蹤您的事件,則還需要正確配置事件優先次序(也稱為轉換值),以便 Facebook 正確接收轉換。您可以在此了解詳情。

了解詳情

應用程式範例

為了讓您能更輕鬆地了解如何使用應用程式事件,我們為不同應用程式類型建立了一些範例。每個應用程式範例都為不同的事件及可蒐集的參數,提供獨立的資料細節畫面解說。每個區塊的結尾部分都有一個表格,當中列出各個應用程式適用的建議事件及參數。若有需要,您也可以建立自訂事件及參數。