教學課程:評估 iOS 廣告轉換

步驟 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,因此請按照下列步驟正規化資料:

  1. 將整個電子郵件地址轉換為小寫。

  2. 如果電子郵件地址結尾是網域 @googlemail.com,請將 @googlemail.com 網域替換為 @gmail.com

  3. 如果地址結尾為網域 @gmail.com (包括上一步驟中修改的地址):

    1. 移除使用者名稱部分的所有半形句號。

    2. 在使用者名稱部分進行下列替換:

      • 如果設定碼包含字母 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:排解及處理常見問題