使用 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 | 沒有影響。Crashlytics 與 Google 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
通訊協定,以便在使用者關閉說明畫面時處理事件。如果使用者輕觸「OK」,請透過應用程式追蹤透明度架構顯示系統提示。
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 控制台。
- 在 Firebase 控制台中, 建立新的In-App Messaging廣告活動。
- 使用想看的內容填入應用程式內訊息,並設定訊息
在
app_launch
事件中觸發。 - 在「指定目標」部分中,確認廣告活動僅指定最高目標 最新版本的應用程式
您可以按照 請參閱 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 說明文件 瞭解如何監控實驗及推出成功版本 變數。