在 iOS 14.5 中,Apple 要求開發人員通過 App Tracking Transparency 框架獲得用戶的許可才能跟踪他們或訪問他們設備的廣告標識符 (IDFA)。有關更多詳細信息,請參閱Apple 的用戶隱私和數據使用以及Apple 的 App Tracking Transparency文檔。
受影響的 Firebase 產品
Firebase SDK 不訪問 IDFA,但有些與 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 訪問權限。 |
火力地堡機器學習 | 沒有影響 |
性能監控 | 沒有影響 |
遠程配置 | 與 Google Analytics 一起使用時,Remote Config 不允許在沒有 IDFA 訪問權限的情況下自動創建用於定位的用戶屬性。 |
實時數據庫 | 沒有影響 |
雲儲存 | 沒有影響 |
受影響的 Firebase 集成
下表列出了在無法訪問 IDFA 時受影響的 Firebase 集成產品。
產品 | 無法訪問 IDFA 時的影響 |
---|---|
谷歌分析 | Analytics 事件記錄、事件報告和轉化衡量不受影響,但如果 IDFA 不可訪問,歸因會受到影響。要詳細了解 Google 對 iOS 14 的回應,請參閱我們的博文。 |
在 iOS 14 上請求應用程序跟踪權限
如果您希望您的 Apple 應用程序能夠訪問 IDFA,您可以將 Apple 的 App Tracking Transparency 框架添加到您的應用程序中,並請求允許跟踪或訪問您用戶的 IDFA。
許多應用程序選擇在請求許可之前顯示熱身或解釋器屏幕。解釋器屏幕允許您在請求訪問之前為用戶提供有關您的應用如何使用 IDFA 的更多背景信息。
如果您是 AdMob 或 Ad Manager 應用程序發布商,請考慮使用Funding Choices ,它會根據 Apple 的指南自動處理獲取投放個性化廣告的同意以及跟踪用戶的同意。有關詳細信息,請參閱AdMob 同意用戶消息傳遞頁面。
以下指南提供了一種使用Firebase 應用內消息傳遞的解決方案,用於在通過 App Tracking Transparency 請求跟踪訪問之前創建和顯示解釋器屏幕。
將應用內消息添加到您的應用
按照說明將應用內消息添加到您的 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
協議以在用戶關閉解釋器屏幕時處理事件。如果用戶點擊確定,則通過 App Tracking Transparency 框架顯示系統提示。
迅速
// 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 測試不同的解釋器屏幕
In-App Messaging 與Firebase A/B Testing內置集成,您可以使用它來試驗不同的解釋器屏幕。
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 控制台的Analytics部分,導航到Conversions菜單,然後添加一個新的轉化事件,其名稱與使用上述示例代碼記錄的事件同名。
創建新實驗
在控制台的In-App Messaging 菜單中,點擊New Experiment ,然後按照出現的屏幕上的說明進行操作。
- 在“定位”部分,確保廣告系列僅定位到您應用的最新版本及更高版本。
- 在“目標”部分,選擇您使用上述示例代碼創建的轉化事件以及您想要跟踪的任何其他指標。
發布實驗後,需要收集一段時間的數據才能得出結論性的結果。
閱讀Firebase A/B 測試文檔,了解有關如何監控實驗和推出成功變體的信息。