Руководство: Измерение конверсий рекламы в iOS

Шаг 3: Запустите измерение конверсий на устройстве с помощью Google Analytics


Введение: Измерение конверсий в iOS-рекламе

Шаг 1: Реализуйте процесс авторизации.

Шаг 2: Интеграция Google Analytics

Шаг 3: Запустите измерение конверсий на устройстве с помощью Google Analytics

Шаг 4: Устранение неполадок и решение распространенных проблем.


Теперь, когда вы можете собирать адреса электронной почты и номера телефонов пользователей, а в вашем приложении установлен SDK Google Analytics для Firebase, вы можете использовать эти данные для измерения конверсий.

Вызовите API

Вызовите API для измерения конверсий, используя адрес электронной почты или номер телефона, предоставленные на шаге 1 (они используются для измерения конверсий в рекламе), при этом не допуская утечки какой-либо личной информации с устройства пользователя.

Существует два способа начать измерение:

Используйте адрес электронной почты или номер телефона.

Быстрый

Импортируйте модуль FirebaseAnalytics и передайте адрес электронной почты или номер телефона в API initiateOnDeviceConversionMeasurement() .

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 и передайте адрес электронной почты в API initiateOnDeviceConversionMeasurementWithEmailAddress: или номер телефона в API initiateOnDeviceConversionMeasurementWithPhoneNumber: :.

@import FirebaseAnalytics;

// ...
// If you're using an email address....
[FIRAnalytics initiateOnDeviceConversionMeasurementWithEmailAddress:@"example@gmail.com"];
// If you're using a phone number....
[FIRAnalytics initiateOnDeviceConversionMeasurementWithPhoneNumber:@"+15555555555"];

Единство

Импортируйте пространство имен Firebase.Analytics и передайте адрес электронной почты в API InitiateOnDeviceConversionMeasurementWithEmailAddress() или номер телефона в API InitiateOnDeviceConversionMeasurementWithPhoneNumber() :

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 и более поздних версиях внесены улучшения в измерение конверсий на устройстве. Чтобы эти улучшения применялись ко всем пользователям, включая тех, кто уже вошел в систему до обновления вашего приложения, крайне важно повторно вызвать API initiateOnDeviceConversionMeasurement после обновления приложения.

В частности, пользователи, вошедшие в систему до обновления вашего приложения до версии SDK 12.1.0, не включаются в расширенную область измерения до тех пор, пока для них не будет повторно вызван API initiateOnDeviceConversionMeasurement . Без проверки обновления приложения это произойдет только в том случае, если они выйдут из системы и снова войдут.

Рекомендуется вызывать API для авторизованных пользователей как минимум один раз для каждой версии приложения. Можно добавить проверку при запуске приложения, чтобы вызов API происходил только в том случае, если версия приложения изменилась с момента последнего вызова.

Быстрый

// 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"];
}

Единство

// 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();
}

Позвоните сразу после регистрации.

Всегда вызывайте API initiateOnDeviceConversionMeasurement сразу после того, как пользователь успешно войдет в систему или зарегистрирует свой адрес электронной почты или номер телефона.

Учет сроков для новых регистраций

Если событие смены клавиши происходит сразу после регистрации пользователя (и вы вызываете API), рассмотрите возможность добавления небольшой задержки (например, пяти секунд) между вызовом API и регистрацией события смены клавиши. Это поможет гарантировать полную инициализацию измерения на устройстве до регистрации события.

Используйте хешированный адрес электронной почты или номер телефона.

API принимает адреса электронной почты и номера телефонов, хешированные с помощью SHA256. Вы можете сохранить контроль над данными пользователей, выполняя хеширование в своем коде перед вызовами SDK.

Для использования хешированных учетных данных нормализуйте адреса и числа, хешируйте их с помощью SHA256, а затем вызовите API.

Стандартизировать адреса электронной почты и номера телефонов.

Для адресов электронной почты API Google Analytics предполагает, что перед применением алгоритма 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, используя хешированные учетные данные.

Быстрый

Импортируйте модуль FirebaseAnalytics и передайте адрес электронной почты или номер телефона в API initiateOnDeviceConversionMeasurement() .

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 и передайте адрес электронной почты в API initiateOnDeviceConversionMeasurementWithHashedEmailAddress: или номер телефона в API initiateOnDeviceConversionMeasurementWithHashedPhoneNumber:

@import FirebaseAnalytics;

// ...
// If you're using an email address....
[FIRAnalytics initiateOnDeviceConversionMeasurementWithHashedEmailAddress:hashedEmailAddress];
// If you're using a phone number....
[FIRAnalytics initiateOnDeviceConversionMeasurementWithHashedPhoneNumber:hashedPhoneNumber];

Единство

Импортируйте пространство имен Firebase.Analytics и передайте адрес электронной почты в API InitiateOnDeviceConversionMeasurementWithHashedEmailAddress() или номер телефона в API InitiateOnDeviceConversionMeasurementWithHashedPhoneNumber() :

using Firebase.Analytics;

// ...
// If you're using an email address....
FirebaseAnalytics.InitiateOnDeviceConversionMeasurementWithHashedEmailAddress(hashedEmailAddress);
// If you're using a phone number....
FirebaseAnalytics.InitiateOnDeviceConversionMeasurementWithHashedPhoneNumber(hashedPhoneNumber);

Проверьте интеграцию

Включите режим отладки. После вызова API инициализации измерения убедитесь, что в консоли отладки Xcode появилось сообщение, подобное следующему:

[FirebaseAnalytics][I-ACS023225] Initiated on-device conversion measurement

Если вы включили режим отладки и указали аргумент запуска -DebugOnDeviceConversionMeasurement , то вызов API initiateOnDeviceConversionMeasurement() будет имитировать совпадение.

[FirebaseAnalytics][I-ACS023229] On-device conversion measurement found a match




Шаг 2 : Интеграция Google Analytics Шаг 4 : Устранение неполадок и решение распространенных проблем