支援 iOS 14

在 iOS 14.5 中,Apple 規定開發人員必須透過「應用程式追蹤透明度」架構取得使用者授權,才能追蹤或存取裝置的廣告 ID (IDFA)。詳情請參閱 Apple 的使用者隱私和資料使用方式Apple 應用程式追蹤透明度說明文件。

受影響的 Firebase 產品

Firebase SDK 無法存取 IDFA,但有些 SDK 已與 Google Analytics (分析) 整合,而可能需要存取廣告識別碼。

下表列出可在 Apple 平台上使用的 Firebase 產品,並說明無法存取廣告識別碼時,各項產品的功能會受到什麼影響。

產品 無法存取廣告識別碼的影響
A/B 測試 在 A/B 測試與 Google Analytics (分析) 的整合中,部分指定目標資料 (例如客層) 是衍生自廣告識別碼。在無法存取廣告識別碼的應用程式中,這類指定目標將無法使用。
App Check 沒有任何影響
發行應用程式 沒有任何影響
驗證 這項異動不會影響驗證服務供應商和第一方驗證服務供應商,例如 Google 登入和電話驗證。
Crashlytics 沒有任何影響。Google Analytics (分析) 與 Google Analytics (分析) 整合的 Crashlytics 可提供即時當機資料和導覽標記,因此不會仰賴廣告識別碼。
Dynamic Links 不影響開啟連結開啟功能。如果與 Google Analytics (分析) 搭配使用,則無法歸因連結轉換事件。
Cloud Firestore 沒有任何影響
Cloud Functions 沒有任何影響
應用程式內通訊 沒有任何影響
Firebase 安裝項目 沒有任何影響
InstanceID 沒有任何影響
雲端通訊 與 Google Analytics (分析) 搭配使用時,Google Analytics (分析) 會自動記錄一些 FCM 相關轉換事件。這些事件的歸因需要廣告識別碼存取權。
Firebase ML 沒有任何影響
監控效能 沒有任何影響
遠端設定 與 Google Analytics (分析) 搭配使用時,遠端設定不會允許自動建立的使用者屬性在沒有廣告識別碼存取權的情況下指定目標。
即時資料庫 沒有任何影響
Cloud Storage 沒有任何影響
Vertex AI for Firebase 沒有任何影響

受影響的 Firebase 整合項目

下表列出了無法存取廣告識別碼時,會受到影響的 Firebase 整合產品。

產品 無法存取廣告識別碼的影響
Google Analytics (分析) Analytics (分析) 事件記錄、事件報表和轉換評估功能不會受到影響,但如果無法存取廣告識別碼,歸因作業就會受到影響。如要進一步瞭解 Google 對 iOS 14 的回應,請參閱我們的網誌文章

在 iOS 14 上要求應用程式追蹤權限

如果您希望 Apple 應用程式存取廣告識別碼,可在應用程式中加入 Apple 的應用程式追蹤透明度架構,並要求權限以追蹤或存取使用者的廣告識別碼。

許多應用程式會在要求取得權限之前,選擇顯示暖機 (也就是說明) 畫面。透過說明畫面,您可以在要求存取權之前,為使用者提供應用程式廣告識別碼的詳細使用資訊。

如果您是 AdMob 或 Ad Manager 應用程式發布商,請考慮使用營利成長選項。這個選項會處理取得個人化廣告的同意聲明,並自動根據 Apple 規範追蹤使用者的同意聲明。詳情請參閱提供使用者訊息的 AdMob 同意聲明頁面

以下指南說明如何使用 Firebase 應用程式內通訊解決方案,在要求透過應用程式追蹤透明度要求追蹤存取權之前,建立並顯示說明畫面。

在應用程式中新增應用程式內通訊

按照操作說明將應用程式內通訊新增至 Apple 應用程式

處理應用程式內訊息關閉情形

首先,請避免在無法顯示同意聲明對話方塊的裝置 (例如搭載 iOS 13 的裝置) 上顯示說明畫面。請確保此程式碼會在 FirebaseApp.configure() 之後立即執行。

Swift

if NSClassFromString("ATTrackingManager") == nil {
  // Avoid showing the App Tracking Transparency explainer if the
  // framework is not linked.
  InAppMessaging.inAppMessaging().messageDisplaySuppressed = true
}

執行 InAppMessagingDisplayDelegate 通訊協定,在使用者關閉說明畫面時處理事件。如果使用者輕觸「確定」,請透過應用程式追蹤透明度架構顯示系統提示。

Swift

// The InAppMessaging delegate must be assigned before events can be handled.
InAppMessaging.inAppMessaging().delegate = self

func messageClicked(_ inAppMessage: InAppMessagingDisplayMessage,
                    with action: InAppMessagingAction) {
  switch action.actionText {
  case "OK":
    ATTrackingManager.requestTrackingAuthorization { status in
      switch status {
      case .authorized:
        // Optionally, log an event when the user accepts.
        Analytics.logEvent("tracking_authorized", parameters: nil)
      case _:
        // Optionally, log an event here with the rejected value.
      }
    }
  case _:
    // do nothing
  }
}

建立應用程式內通訊廣告活動

將程式碼加到應用程式後,請在 Firebase 控制台中建立應用程式內通訊訊息。

  1. Firebase 主控台中,建立新的應用程式內通訊廣告活動。
  2. 使用您想要的內容填入應用程式內訊息,並設定在 app_launch 事件上觸發的訊息。
  3. 在「指定目標」部分中,確保廣告活動僅指定最新的應用程式版本以上。

您可以依照應用程式內通訊說明文件中的指示自訂說明畫面的外觀。

選用:針對不同解說畫面進行 A/B 版本測試

應用程式內通訊內建 Firebase A/B 測試整合功能,可讓您測試不同說明畫面。

Firebase A/B 測試會自動建立實驗群組,協助您透過視覺化方式瞭解使用者與應用程式不同變化版本的互動方式。

記錄應用程式追蹤權限

如果您在處理應用程式追蹤權限回應時,未記錄 Google Analytics (分析) 事件,則需要在執行 A/B 實驗時評估回應率的變化。

Swift

ATTrackingManager.requestTrackingAuthorization { status in
  switch status {
  case .authorized:
    // Optionally, log an event when the user accepts.
    Analytics.logEvent("tracking_authorized", parameters: nil)
  case _:
    // Optionally, log an event here with the rejected value.
  }
}

建立新的轉換事件

在 Firebase 控制台的「Analytics (分析)」部分中,前往「轉換」選單,然後新增名稱與上方程式碼範例記錄的事件相同的新轉換事件。

建立新的實驗

在主控台的應用程式內通訊選單中,按一下「新增實驗」,然後按照顯示畫面中的指示操作。

  • 在「指定目標」部分中,確保廣告活動僅指定最新的應用程式版本以上。
  • 在「目標」部分中,選取使用上述程式碼範例建立的轉換事件,以及其他您想追蹤的指標。

發布實驗後,您需要先收集資料一段時間,才能產生明確的結果。

如要瞭解如何監控實驗並推出成功的變化版本,請參閱 Firebase A/B 測試說明文件