Руководство по отслеживанию конверсий в рекламе для iOS

Шаг 3. Начните отслеживание конверсий на устройстве с помощью Google Analytics


Введение: Отслеживание конверсий в рекламе для iOS
Шаг 1. Реализуйте вход в аккаунт
Шаг 2. Интегрируйте Google Analytics

Шаг 3. Начните отслеживать конверсии на устройстве с помощью Google Analytics

Шаг 4. Устраните распространенные неполадки


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

Вызов API

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

Отслеживание можно запустить двумя способами:

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

Swift

Импортируйте модуль 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"];

Unity

Импортируйте пространство имен 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, не будут включены в область улучшенного сбора данных, пока для них не будет снова вызван 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();
}

Звонок сразу после входа

Всегда вызывайте 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 можно заменить буквой "о".
      • Для цифры 2 используйте букву "з".
      • Для цифры 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 и передайте адрес электронной почты или номер телефона в 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];

Unity

Импортируйте пространство имен 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. Устраните неполадки и решите распространенные проблемы