步驟 3:使用 Google Analytics 啟動裝置端轉換評估
| 簡介: 評估 iOS 廣告轉換 |
|
步驟 1: 實作登入體驗 |
| 步驟 2:整合 Google Analytics |
|
步驟 3:使用 Google Analytics 啟動裝置端轉換評估 |
| 步驟 4: 排解及處理常見問題 |
您現在可以收集使用者的電子郵件地址和電話號碼,且應用程式已具備 Firebase SDK 的 Google Analytics,因此可以使用這兩項資訊開始評估轉換。
呼叫 API
使用步驟 1 中取得同意的電子郵件地址或電話號碼呼叫轉換評估 API,用於評估廣告轉換,且不得允許任何個人識別資訊離開使用者裝置。
您可以透過兩種方式啟動評估:
使用電子郵件地址或電話號碼
Swift
匯入 FirebaseAnalytics 模組,並將電子郵件地址或電話號碼傳遞至 initiateOnDeviceConversionMeasurement() API。
import FirebaseAnalytics // ... // If you're using an email address.... Analytics.initiateOnDeviceConversionMeasurement(emailAddress: "example@gmail.com") // If you're using a phone number.... Analytics.initiateOnDeviceConversionMeasurement(phoneNumber: "+15555555555")
Objective-C
匯入 FirebaseAnalytics 模組,並將電子郵件地址傳遞至 initiateOnDeviceConversionMeasurementWithEmailAddress: API,或將電話號碼傳遞至 initiateOnDeviceConversionMeasurementWithPhoneNumber: API。
@import FirebaseAnalytics; // ... // If you're using an email address.... [FIRAnalytics initiateOnDeviceConversionMeasurementWithEmailAddress:@"example@gmail.com"]; // If you're using a phone number.... [FIRAnalytics initiateOnDeviceConversionMeasurementWithPhoneNumber:@"+15555555555"];
Unity
匯入 Firebase.Analytics 命名空間,並將電子郵件地址傳遞至 InitiateOnDeviceConversionMeasurementWithEmailAddress() API,或將電話號碼傳遞至 InitiateOnDeviceConversionMeasurementWithPhoneNumber() API:
using Firebase.Analytics; // ... // If you're using an email address.... FirebaseAnalytics.InitiateOnDeviceConversionMeasurementWithEmailAddress("example@gmail.com"); // If you're using a phone number.... FirebaseAnalytics.InitiateOnDeviceConversionMeasurementWithPhoneNumber("+15555555555");
呼叫 API 的最佳做法
為確保裝置端轉換評估的準確度和連續性,請執行下列任一操作:
每次應用程式更新時都呼叫 (建議)
Google Analytics (適用於 Firebase SDK 12.1.0 以上版本) 包含裝置端轉換評估的改良功能。為確保所有使用者 (包括在應用程式更新前已登入的使用者) 都能享有這些改良功能,請務必在應用程式更新後再次呼叫 initiateOnDeviceConversionMeasurement API。
具體來說,如果使用者在應用程式更新至 SDK 12.1.0 版之前登入,系統必須再次為他們呼叫 initiateOnDeviceConversionMeasurement API,才會將他們納入加強型評估範圍。如果沒有應用程式更新檢查,使用者必須登出再登入,才會發生這種情況。
最佳做法是針對每個應用程式版本,至少呼叫一次已登入使用者的 API。您可以在應用程式啟動時實作檢查,確保只有在應用程式版本自上次呼叫後有所變更時,才呼叫 API。
Swift
// On app launch if the app version has changed, call the API with the first-party data // (for example: email address, phone number, hashed email address, hashed phone number). let cachedAppVersion = UserDefaults.standard.string(forKey: "cachedAppVersion") let currentAppVersion = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String if cachedAppVersion != currentAppVersion { let hashedEmailAddress = ... Analytics.initiateOnDeviceConversionMeasurement(hashedEmailAddress: hashedEmailAddress) UserDefaults.standard.set(currentAppVersion, forKey: "cachedAppVersion") }
Objective-C
// On app launch if the app version has changed, call the API with the first-party data // (for example: email address, phone number, hashed email address, hashed phone number). NSString *cachedAppVersion = [[NSUserDefaults standardUserDefaults] stringForKey:@"cachedAppVersion"]; NSString *currentAppVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"]; if (![cachedAppVersion isEqualToString:currentAppVersion]) { NSString *hashedEmailAddress = ... [FIRAnalytics initiateOnDeviceConversionMeasurementWithHashedEmailAddress:hashedEmailAddress]; [[NSUserDefaults standardUserDefaults] setObject:currentAppVersion forKey:@"cachedAppVersion"]; }
Unity
// On app launch if the app version has changed, call the API with the first-party data // (for example: email address, phone number, hashed email address, hashed phone number). string cachedAppVersion = PlayerPrefs.GetString("cached_app_version", ""); string currentAppVersion = Application.version; if (cachedAppVersion != currentAppVersion) { byte[] hashedEmailAddress = ... FirebaseAnalytics.InitiateOnDeviceConversionMeasurementWithHashedEmailAddress( hashedEmailAddress); PlayerPrefs.SetString("cached_app_version", currentAppVersion); PlayerPrefs.Save(); }
登入後立即撥打電話
使用者成功登入或註冊電子郵件地址/電話號碼後,請務必立即呼叫 initiateOnDeviceConversionMeasurement API。
新註冊的時機考量
如果使用者註冊後立即發生重要轉換事件 (且您呼叫了 API),請考慮在 API 呼叫和記錄重要事件之間,加入一小段延遲時間 (例如五秒)。這有助於確保在記錄事件前,裝置端評估功能已完全初始化。
使用經過雜湊處理的電子郵件地址或電話號碼
API 會接受以 SHA256 雜湊處理的電子郵件地址和電話號碼。您可以在呼叫 SDK 前,在程式碼中執行雜湊作業,控管使用者資料。
如要使用雜湊處理後的憑證,請先將地址和號碼正規化,再以 SHA256 雜湊處理,然後呼叫 API。
將電子郵件地址和電話號碼正規化
如果是電子郵件地址,Google Analytics API 會假設您已先執行特定正規化作業,再套用 SHA256,因此請按照下列步驟正規化資料:
將整個電子郵件地址轉換為小寫。
如果電子郵件地址結尾是網域 @googlemail.com,請將 @googlemail.com 網域替換為 @gmail.com。
如果地址結尾為網域 @gmail.com (包括上一步驟中修改的地址):
移除使用者名稱部分的所有半形句號。
在使用者名稱部分進行下列替換:
- 如果設定碼包含字母 I 或 i,或是數字 1,請改用字母 l
- 將數字 0 換成字母 o
- 將第 2 位數替換為字母 z
- 將數字 5 換成字母 s
舉例來說,正規化後:
- 「
an.email.user0125@googlemail.com」變成「anemalluserolzs@gmail.com」 - 「
CAPSUSER0125@provider.net」變成「capsuser0125@provider.net」
如果是電話號碼,必須先將號碼轉換為 E.164 格式 (也就是加上「+」前置字元、1 到 3 位數的國家/地區代碼,以及最多 12 位數的訂閱者號碼),再使用 SHA256 進行雜湊處理。
請注意,雜湊 SHA256 電子郵件地址或電話號碼的長度必須為 32 個位元組,且不得為十六進位字串。
使用雜湊憑證呼叫 API
Swift
匯入 FirebaseAnalytics 模組,並將電子郵件地址或電話號碼傳遞至 initiateOnDeviceConversionMeasurement() API。
import FirebaseAnalytics // ... // If you're using an email address.... Analytics.initiateOnDeviceConversionMeasurement(hashedEmailAddress: hashedEmailAddress) // If you're using a phone number.... Analytics.initiateOnDeviceConversionMeasurement(hashedPhoneNumber: hashedPhoneNumber)
Objective-C
匯入 FirebaseAnalytics 模組,並將電子郵件地址傳遞至 initiateOnDeviceConversionMeasurementWithHashedEmailAddress: API,或將電話號碼傳遞至 initiateOnDeviceConversionMeasurementWithHashedPhoneNumber: API。
@import FirebaseAnalytics; // ... // If you're using an email address.... [FIRAnalytics initiateOnDeviceConversionMeasurementWithHashedEmailAddress:hashedEmailAddress]; // If you're using a phone number.... [FIRAnalytics initiateOnDeviceConversionMeasurementWithHashedPhoneNumber:hashedPhoneNumber];
Unity
匯入 Firebase.Analytics 命名空間,並將電子郵件地址傳遞至 InitiateOnDeviceConversionMeasurementWithHashedEmailAddress() API,或將電話號碼傳遞至 InitiateOnDeviceConversionMeasurementWithHashedPhoneNumber() API:
using Firebase.Analytics; // ... // If you're using an email address.... FirebaseAnalytics.InitiateOnDeviceConversionMeasurementWithHashedEmailAddress(hashedEmailAddress); // If you're using a phone number.... FirebaseAnalytics.InitiateOnDeviceConversionMeasurementWithHashedPhoneNumber(hashedPhoneNumber);
驗證整合
啟用偵錯模式。呼叫啟動 measurement API 後,請確認 Xcode 偵錯控制台中是否顯示類似下列記錄訊息的訊息:
[FirebaseAnalytics][I-ACS023225] Initiated on-device conversion measurement
如果您已啟用偵錯模式並加入 -DebugOnDeviceConversionMeasurement 啟動引數,呼叫 initiateOnDeviceConversionMeasurement() API 時就會模擬對戰。
[FirebaseAnalytics][I-ACS023229] On-device conversion measurement found a match
步驟 2:整合 Google Analytics 步驟 4:排解及處理常見問題