支援 iOS 14

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

受影響的 Firebase 產品

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

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

產品 無法存取廣告識別碼時的影響
A/B 測試 A/B 版本測試整合中的部分指定目標資料 (例如客層) Google Analytics 則是源自 IDFA。未使用 存取廣告識別碼,因此無法使用這個指定目標。
App Check 沒有影響
應用程式發布 沒有影響
驗證 驗證和第一方驗證服務供應商之間完全不受影響 例如 Google 登入和電話驗證
Crashlytics 沒有影響。Crashlytics 與 Google Analytics 的整合功能 提供即時當機資料和導航標記 廣告識別碼。
Dynamic Links 不會影響連結開啟功能。搭配 Google Analytics,連結轉換事件的歸因為 無法使用。
Cloud Firestore 沒有影響
Cloud Functions 沒有影響
應用程式內通訊 沒有影響
Firebase 安裝 沒有影響
執行個體 ID 沒有影響
雲端通訊 與 Google Analytics 搭配使用時,Google Analytics 會顯示 自動記錄部分與 FCM 相關的轉換事件。出處 需要廣告識別碼存取權,才能使用這些事件的資料。
Firebase 機器學習 沒有影響
監控效能 沒有影響
遠端設定 與 Google Analytics 搭配使用時,遠端設定不允許 自動建立的使用者屬性,用來在沒有廣告識別碼存取權的情況下進行指定。
即時資料庫 沒有影響
雲端儲存空間 沒有影響
適用於 Firebase 的 Vertex AI 沒有影響

受影響的 Firebase 整合項目

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

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

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

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

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

如果您是 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 事件 因此,您必須能夠評估 回應率

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 控制台的 [轉換] 選單,然後新增 轉換事件的名稱,與使用範例程式碼記錄的事件相同 。

建立新的實驗

在控制台的 應用程式內通訊選單 按一下「新增實驗」,然後按照產生結果的指示進行 螢幕。

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

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

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