支援 iOS 14

使用 iOS 14.5 時,Apple 要求開發人員必須取得使用者許可 透過應用程式追蹤透明度架構來追蹤或存取 裝置的廣告 ID (IDFA)。詳情請見 Apple 的使用者隱私和資料使用方式Apple 的 App 追蹤透明度 說明文件。

受影響的 Firebase 產品

Firebase SDK 無法存取廣告識別碼,但部分 Firebase SDK 已與 Google Analytics,可能涉及廣告識別碼存取權。

下表列出可在 Apple 平台上使用的 Firebase 產品 ,並說明若沒有廣告識別碼,每項產品的功能受到的影響 方便存取

產品 無法存取廣告識別碼時的影響
A/B Testing A/B Testing 整合中的部分指定目標資料 (例如客層) Google Analytics 的衍生來源是 IDFA。未使用 存取廣告識別碼,因此無法使用這個指定目標。
App Check 沒有影響
App Distribution 沒有影響
Authentication 不會影響 Authentication 和第一方 Authentication 供應商。 例如 Google 登入和電話驗證
Crashlytics 沒有影響。CrashlyticsGoogle Analytics 整合 提供即時當機資料和導航標記 廣告識別碼。
Dynamic Links 不會影響連結開啟功能。搭配 Google Analytics,連結轉換事件的歸因為 無法使用。
Cloud Firestore 沒有影響
Cloud Functions 沒有影響
In-App Messaging 沒有影響
安裝次數:Firebase 沒有影響
執行個體 ID 沒有影響
Cloud Messaging Google Analytics 搭配使用時,Google Analytics 會 自動記錄部分與 FCM 相關的轉換事件。出處 需要廣告識別碼存取權,才能使用這些事件的資料。
Firebase ML 沒有影響
Performance Monitoring 沒有影響
Remote Config Google Analytics 搭配使用時,Remote Config 不允許 自動建立的使用者屬性,用來在沒有廣告識別碼存取權的情況下進行指定。
Realtime Database 沒有影響
Cloud Storage 沒有影響
Vertex AI in Firebase 沒有影響

受影響的 Firebase 整合項目

下表列出受廣告識別碼 (IDFA) 影響的 Firebase 整合產品 也沒辦法存取。

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

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

如果想讓 Apple 應用程式存取廣告識別碼,請 為您的應用程式取得 Apple 的 App 追蹤透明度 (App Tracking Transparency) 架構並要求權限 追蹤或存取廣告識別碼。

許多應用程式會選擇在 要求權限解釋畫面可讓您為使用者提供 在請求存取權前,瞭解應用程式如何使用廣告識別碼。

如果您是 AdMob 或 Ad Manager 應用程式發布商,建議使用 營利成長選項、 代碼可順利放送個人化廣告 取得同意聲明,同意根據 Apple 自動規範追蹤使用者。 詳情請參閱 AdMob 透過「使用者訊息」頁面取得同意聲明 ,掌握更多詳細資訊。

請參閱以下指南中的解決方案: Firebase In-App Messaging:用於製作和 顯示說明畫面,再透過 應用程式追蹤透明度。

在應用程式中新增 In-App Messaging

請按照操作說明執行下列操作: In-App Messaging 新增至 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
  }
}

建立In-App Messaging廣告活動

將程式碼插入應用程式後,請在 Firebase 控制台。

  1. Firebase 控制台中, 建立新的In-App Messaging廣告活動。
  2. 使用想看的內容填入應用程式內訊息,並設定訊息 在 app_launch 事件中觸發。
  3. 在「指定目標」部分中,確認廣告活動僅指定最高目標 最新版本的應用程式

您可以按照 請參閱 In-App Messaging 說明文件

選用:A/B 測試不同的說明畫面

In-App Messaging 內建與 Firebase A/B Testing,可用來進行實驗 使用不同的說明畫面

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

記錄應用程式追蹤權限

您在處理應用程式追蹤時沒有記錄 Google Analytics 事件 因此,您必須能夠評估 回應率

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.
  }
}

建立新的轉換事件

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

建立新的實驗

在控制台的 In-App Messaging 選單, 按一下「新增實驗」,然後按照產生結果的指示進行 螢幕。

  • 在「指定目標」部分中,確認廣告活動僅指定最高目標 最新版本的應用程式
  • 在「目標」部分中,選取您使用 以及您想追蹤的任何其他指標。

發布實驗後,您需要為某些實驗收集資料 才會產生確切結果

閱讀 Firebase A/B Testing 說明文件 瞭解如何監控實驗及推出成功版本 變數。