Шаг 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 выполняется определенная нормализация. Чтобы нормализовать данные, выполните следующие действия:
Преобразуйте весь адрес электронной почты в нижний регистр.
Если адрес электронной почты заканчивается на домен @googlemail.com, замените домен @googlemail.com на @gmail.com.
Для адресов, заканчивающихся на домен @gmail.com (в том числе измененных на предыдущем шаге):
Удалите все точки из имени пользователя.
В части имени пользователя замените:
- Буквы I и i, а также цифру 1 замените на букву l.
- Цифру 0 можно заменить буквой "о".
- Для цифры 2 используйте букву "з".
- Для цифры 5 используйте букву S.
Пример нормализованных данных:
an.email.user0125@googlemail.comстановитсяanemalluserolzs@gmail.comCAPSUSER0125@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. Устраните неполадки и решите распространенные проблемы