Тестирование интеграции
Прежде чем начать
Чтобы успешно выполнить тесты, описанные в этом документе, необходимо:
Тестирование интеграции SDK для Android
Тестирование состоит из следующих действий:
- Имитация клика по рекламе и конверсии.
- Проверка данных о конверсии установки.
Simulate a conversion
Смоделируйте клик пользователя по рекламе и установку приложения.
Шаг 1. Имитация клика по рекламе
Смоделируйте клик по рекламе с помощью ссылки атрибуции. Ссылка атрибуции должна иметь следующую структуру:
https://app.appsflyer.com/<app_id>?pid=<media_source>
&advertising_id=<registered_device_gaid>
Где:
app_id
— ваш идентификатор приложения AppsFlyer.pid
— медиа-источник, которому должна атрибутироваться установка.advertising_id
— GAID зарегистрированного устройства.
The advertising_id
параметр требуется для атрибуции через сопоставление идентификаторов. Если он не указан, атрибуция выполняется вероятностно.
Например, если идентификатор вашего приложения com.my.app
, ссылка атрибуции может выглядеть следующим образом:
https://app.appsflyer.com/com.my.app?pid=devtest&c=test1
или с GAID:
https://app.appsflyer.com/com.my.app?pid=devtest&c=test1&advertising_id=********-****-****-****-************
Совет
Часто тестирование с помощью ссылок атрибуции выполняется несколько раз. Поэтому рекомендуется один из параметров атрибуции использовать для указания «версии» теста. Так проще разобраться, какая ссылка вызвала какую конверсию.
В примере выше параметр
c
istest1
. В последующих тестах значениеc
totest2
,test3
и так далее.
Шаг 2. Установка приложения
Включите режим отладки и установите приложение на зарегистрированное тестовое устройство.
Шаг 3. Выполнение теста
Переходите к проверке данных о конверсии.
Inspect conversion data
После имитации конверсии выполните следующие шаги для проверки данных о конверсии соответствующей установки.
Шаг 1. Получение UID установки
После установки приложения найдите в журналах отладки conversions.appsflyer
Шаг 2. Проверка данных о конверсиях
Перейдите к API для получения данных теста по конверсиям и заполните обязательные поля:
app-id
: идентификатор вашего приложения.device_id
: вставьте значениеuid
, полученное на шаге 1.af_request_epoch_ms
- Текущая метка Unix-времени. Вы можете получить ее здесь- The
af_sig
создается путем конкатенации значений следующих полей:
Нужна конкатенация значенийaf_request_epoch_ms
сdevice_id
andapp_id
, разделенные невидимым символом\u2063
.
(Напр., 1661969117203 1591184059153-1591377216180180185 com.zzkko)
HMAC создается с использованием SHA256 и ключа разработчика (DevKey) в качестве секретного ключа подписи.
Чтобы получить DevKey, на дэшборде AppsFlyer перейдите в раздел Настройки > Настройки приложения.
Калькулятор HMAC для помощи в вычислении этого токена вы можете найти здесь.
Затем нажмите Попробовать, чтобы выполнить тест.
Ожидаемый результат
Ответ 200 с данными о конверсиях установки (сокращен для наглядности):
{
...
"campaign": "test1",
...
"media_source": "devtest",
...
"af_status": "Non-organic"
...
}
Примечание
Данные об установке обычно отображаются на дэшборде в течение 30 минут.
Поиск и устранение неполадок в интеграции SDK для Android
Все установки атрибутируются как органические
Пример ситуации
Выполняется тестирование атрибуции с помощью ссылок атрибуции. Используется прослушиватель конверсий из SDK, но в журнале все установки регистрируются как органические. Кроме того, на панели управления не показано ни одной неорганической установки.
Возможные причины
- Неверный ключ разработчика — если ключ разработчика задан неправильно, атрибутировать установку невозможно.
- Используется неправильная ссылка атрибуции. См. руководство по ссылкам атрибуции.
- Убедитесь, что устройство, на котором вы проводите тестирование, зарегистрировано.
- В манифесте неправильно задан канал.
Установка не обнаружена или не атрибутирована
Пример ситуации
Выполняется тестирование атрибуции установки, однако в журнале нет данных об установке, таких как тип, первый запуск и т. д.
Возможные причины
- Проверьте, что методы
start
andinit
вызываются в классеApplication
class. - Убедитесь, что устройство, на котором вы проводите тестирование, зарегистрировано.
При регистрации установки или события получен ответ с кодом 404
Пример ситуации
Выполняется тестирование внутренних событий приложения для проверки того, правильно ли они атрибутируются исходной точке взаимодействия. Однако и при установке, и при отправке событий в приложении в журнале отображается код ответа 404. Ни установка, ни внутренние события приложения на панели управления не отображаются.
Возможные причины
Код ответа 404 свидетельствует о том, что идентификатор приложения указан неверно. Убедитесь, что идентификатор приложения в параметре applicationId
в build.gradle
совпадает с этим идентификатором на панели управления.
Регистрация дохода выполняется неправильно
Пример ситуации
Выполняется тестирование событий дохода в приложении. Эти события отображаются на панели управления, однако доход не регистрируется.
Возможные причины
Неверный формат параметра дохода. Для значений дохода НЕЛЬЗЯ применять какое бы то ни было форматирование. В них не должны использоваться запятые-разделители, знаки валюты или текст. Событие дохода должно иметь, например, такой формат: 1234.56.
При тестировании внутренних событий приложения в журнале отображается сообщение "AppsFlyer's SDK cannot send any event without providing DevKey".
Пример ситуации
Выполняется просмотр внутренних событий приложения в журнале. При инициировании событий в журнале отображается только сообщение "AppsFlyer's SDK cannot send any event without providing DevKey" (SDK AppsFlyer не может отправлять события без предоставления ключа DevKey).
Возможные причины
При вызове метода start
не передается параметр с ключом разработчика. Передайте в метод ключ разработчика.
При тестировании внутренних событий приложения в журнале отображается сообщение "Not sending data yet, waiting for dev key"
Пример ситуации
Выполняется просмотр внутренних событий приложения в журнале. При инициировании событий в журнале отображается только сообщение "Not sending data yet, waiting for dev key" (Данные еще не отправлены, ожидание ключа разработчика).
Возможные причины
При вызове метода init
вместо ключа разработчика передается пустая строка. Передайте в метод ключ разработчика.
При тестировании внутренних событий приложений получен ответ с кодом 400
Пример ситуации
Вы пытаетесь тестировать внутренние события приложения. При инициировании событий в журнале отображается ошибка 400.
Возможные причины
Это может означать проблему с ключом разработчика. Проверьте, правильно ли указан ключ разработчика. Кроме того, убедитесь, что ключ разработчика содержит только буквы и цифры.
В журнале отображается сообщение "WARNING: Google Play Services is missing"
Пример ситуации
В терминале Logcat отображается сообщение "WARNING: Google Play Services is missing" (ПРЕДУПРЕЖДЕНИЕ. Отсутствуют сервисы Google Play).
Возможные причины
В приложении не заданы зависимости для сервисов Google Play. Это может помешать SDK собирать идентификаторы GAID, что вызовет проблемы с атрибуцией.
Добавьте следующие зависимости в файл уровня приложения: build.gradle
file:
implementation 'com.google.android.gms:play-services-base:15.0.1'
implementation 'com.google.android.gms:play-services-ads:15.0.1'
При регистрации установки или события получен ответ с кодом 400.
Пример ситуации
Вы тестируете установки и другие события конверсии в журнале. При инициировании этих событий в журнале отображается ошибка 403 (Forbidden, доступ запрещен).
Возможные причины
This might be because you have the Zero package, which does not include attribution data; only data on clicks and impressions. To start receiving attribution data, learn more about the different AppsFlyer packages, and update as needed. You can also contact our customer engagement team at [email protected] if you have questions about our packages.
Создание отладочного приложения для Android
Необязательно
Вы можете использовать варианты сборок Android Studio, чтобы сконфигурировать удобное отладочное приложение для тестирования.
Все тесты можно проводить как для рабочих, так и для отладочных приложений.
Шаг 1. Настройка типа сборки debug
в Gradle
В файле build.gradle
уровня приложения настройте debug
тип сборки и задайте applicationIdSuffix
для имени тестового приложения (в данном случае, .debug
).
android {
// ...
buildTypes {
// Prevents a signing error when building the production app
release {
signingConfig signingConfigs.debug
}
debug {
applicationIdSuffix ".debug"
}
}
}
Шаг 2. Добавление нового приложения в AppsFlyer
Используя получившееся имя пакета как идентификатор приложения, добавьте приложение на дэшборд AppsFlyer или попросите добавить приложение коллегу, у которого есть доступ к дэшборду.
Например, если имя пакета com.your.app
и вы используете приведенную выше конфигурацию Gradle, именем тестового приложения будет com.your.app.debug
. При добавлении приложения в AppsFlyer передайте это имя в качестве идентификатора приложения.
Изменения сохранены 4 месяца назад