在 iOS 14.5 中,Apple 要求開發者透過 App Tracking Transparency 框架獲得使用者的許可,以追蹤他們或存取其裝置的廣告識別碼 (IDFA)。有關更多詳細信息,請參閱Apple 的用戶隱私和數據使用以及Apple 的應用程式追蹤透明度文件。
受影響的 Firebase 產品
Firebase SDK 不存取 IDFA,儘管有些 SDK 與 Google Analytics 整合可能涉及 IDFA 存取。
下表列出了 Apple 平台上提供的 Firebase 產品,並描述如果無法存取 IDFA,每個產品的功能會受到怎樣的影響。
產品 | IDFA 不可存取時的影響 |
---|---|
A/B 測試 | 與 Google Analytics 整合的 A/B 測試中的一些定位資料(例如人口統計)源自 IDFA。在無法存取 IDFA 的應用程式中,此定位不可用。 |
應用程式檢查 | 沒有影響 |
應用程式分發 | 沒有影響 |
驗證 | 對身份驗證和第一方身份驗證提供者(例如 Google 登入和電話身份驗證)沒有影響。 |
崩潰解決方案 | 沒有影響。 Crashlytics 與 Google Analytics 的整合提供即時崩潰資料和麵包屑,不依賴 IDFA。 |
動態連結 | 對連結開啟功能沒有影響。與 Google Analytics 一起使用時,連結轉換事件的歸因不可用。 |
雲端Firestore | 沒有影響 |
雲端功能 | 沒有影響 |
應用程式內訊息傳遞 | 沒有影響 |
Firebase 安裝 | 沒有影響 |
實例ID | 沒有影響 |
雲端訊息傳遞 | 與 Google Analytics 一起使用時,Google Analytics 會自動記錄一些與 FCM 相關的轉換事件。這些事件的歸屬需要 IDFA 存取權限。 |
Firebase 機器學習 | 沒有影響 |
效能監控 | 沒有影響 |
遠端配置 | 與 Google Analytics 一起使用時,遠端設定不允許在沒有 IDFA 存取權限的情況下自動建立使用者屬性進行定位。 |
即時資料庫 | 沒有影響 |
雲端儲存 | 沒有影響 |
受影響的 Firebase 集成
下表列出了在 IDFA 無法存取時受影響的 Firebase 整合產品。
產品 | IDFA 不可存取時的影響 |
---|---|
Google分析 | 分析事件日誌記錄、事件報告和轉換衡量不受影響,但如果無法存取 IDFA,則歸因會受到影響。要了解有關 Google 對 iOS 14 的回應的更多信息,請參閱我們的部落格文章。 |
在 iOS 14 上請求應用程式追蹤權限
如果您希望您的 Apple 應用程式能夠存取 IDFA,您可以將 Apple 的應用程式追蹤透明度框架新增至您的應用程序,並要求追蹤或存取使用者的 IDFA 的權限。
許多應用程式選擇在請求許可之前呈現一個預熱或解釋畫面。透過解釋器螢幕,您可以在請求訪問之前向用戶提供有關您的應用程式如何使用 IDFA 的更多背景資訊。
如果您是 AdMob 或 Ad Manager 應用程式發布商,請考慮使用Funding Choices ,它可以自動取得投放個人化廣告的同意以及根據 Apple 指南自動追蹤使用者的同意。有關更多詳細信息,請參閱AdMob 用戶訊息傳遞同意頁面。
以下指南提供了一種使用Firebase 應用程式內訊息傳遞的解決方案,用於在透過應用程式追蹤透明度請求追蹤存取權之前建立和顯示解釋畫面。
將應用程式內訊息傳遞新增至您的應用程式
按照說明將應用程式內訊息新增至您的 Apple 應用程式。
處理應用程式內訊息消除
首先,避免在無法顯示同意對話方塊的裝置上顯示解釋器螢幕,例如執行 iOS 13 的裝置。確保此程式碼在FirebaseApp.configure()
之後立即執行。
迅速
if NSClassFromString("ATTrackingManager") == nil {
// Avoid showing the App Tracking Transparency explainer if the
// framework is not linked.
InAppMessaging.inAppMessaging().messageDisplaySuppressed = true
}
實作InAppMessagingDisplayDelegate
協定來處理使用者關閉解譯器畫面時的事件。如果使用者點擊“確定”,則透過應用程式追蹤透明度框架顯示系統提示。
迅速
// 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 控制台中建立應用程式內訊息。
- 在Firebase 控制台中,建立一個新的應用程式內訊息行銷活動。
- 使用您所需的內容填充應用程式內訊息,並將訊息設定為在
app_launch
事件上觸發。 - 在「定位」部分中,確保廣告活動僅定位您的應用程式的最新版本及更高版本。
您可以依照應用程式內訊息傳遞文件中的說明自訂解釋器畫面的外觀。
可選:A/B 測試不同的解釋器螢幕
應用程式內訊息與Firebase A/B 測試內建集成,您可以使用它來試驗不同的解釋器螢幕。
Firebase A/B 測試會自動建立實驗組,並協助您直觀地了解使用者如何與應用程式的不同變體進行互動。
記錄應用程式追蹤權限
如果您在處理應用程式追蹤權限回應時沒有記錄 Google Analytics 事件,則需要在執行 A/B 實驗時測量回應率的變化。
迅速
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 測試文檔,以了解有關如何監控實驗並推出成功變體的資訊。