AppsFlyer
AppsFlyer — ведущая платформа для мобильной атрибуции и маркетинговой аналитики. Это сторонний сервис, который собирает и структурирует данные из маркетинговых кампаний, позволяя компаниям видеть результаты своих кампаний в одном месте. Adapty предоставляет полный набор данных, позволяющий отслеживать события подписок из сторов в одном месте. С Adapty вы легко увидите, как ведут себя ваши подписчики, поймёте их предпочтения и сможете выстраивать таргетированную и эффективную коммуникацию. Данная интеграция позволяет отслеживать события подписок в AppsFlyer и точно анализировать, какой доход приносят ваши кампании.
Интеграция между Adapty и AppsFlyer работает двумя основными способами.
- Получение данных атрибуции из AppsFlyer После того как вы настроите отправку атрибуции AppsFlyer в Adapty в коде приложения, Adapty начнёт получать данные атрибуции от AppsFlyer. Вы сможете просматривать эти данные на странице профиля пользователя.
- Отправка событий подписки в AppsFlyer Adapty может отправлять в AppsFlyer все события подписки, настроенные в вашей интеграции. Благодаря этому вы сможете отслеживать эти события в дашборде AppsFlyer. Интеграция помогает оценить эффективность рекламных кампаний.
Настройка конфигурации
Подключение Adapty к AppsFlyer
Чтобы настроить интеграцию с AppsFlyer:
-
Откройте Integrations -> AppsFlyer в дашборде Adapty.
-
Включите переключатель, чтобы активировать интеграцию.
-
Следующий шаг — указать учётные данные. Для iOS найдите App ID: скопируйте Apple ID из App Store Connect (для этого откройте страницу вашего приложения в App Store Connect, перейдите на страницу App Information в разделе General и найдите Apple ID в левом нижнем углу экрана).
3.2. Вставьте скопированный Apple ID в поле iOS App ID в дашборде Adapty.
Если вы используете AppsFlyer API 2, необходимо перейти на API 3, так как предыдущая версия скоро будет выведена из эксплуатации AppsFlyer. Для этого в списке AppsFlyer S2S API выберите API 3.
- Для iOS и Android откройте сайт AppsFlyer и войдите в аккаунт.
- Нажмите Your account name -> Security Center в правом верхнем углу дашборда.
- В окне Manage your account security нажмите кнопку Manage your AppsFlyer API and S2S tokens.
- Если у вас уже есть S2S-токен, перейдите к шагу 12. Если нет — нажмите кнопку New token.
-
В окне New token введите название токена. Оно нужно только для вашего удобства.
-
В списке Choose type выберите S2S.
-
Нажмите кнопку Create new token, чтобы сохранить новый токен.
-
В окне Tokens скопируйте S2S-токен.
-
В дашборде Adapty вставьте скопированный S2S-ключ в поля Dev key for iOS и Dev key for Android.
-
Нажмите кнопку Save, чтобы сохранить изменения.
AppsFlyer не поддерживает режим Sandbox для интеграции server2server. Поэтому для Sandbox Dev Key вам понадобится отдельное приложение/аккаунт в AppsFlyer. Если вы хотите отправлять sandbox-события в то же приложение, просто используйте один и тот же ключ для продакшена и песочницы. :::
По умолчанию Adapty сопоставляет некоторые события со стандартными событиями AppsFlyer. При такой конфигурации AppsFlyer может автоматически пересылать события в каждую рекламную сеть, которую вы используете, без дополнительной настройки. Ещё один важный момент: AppsFlyer не поддерживает события старше 26 часов. Поэтому если событие произошло более 26 часов назад, Adapty всё равно отправит его в AppsFlyer, но дата и время события будут заменены на текущую метку времени.
Настройте события и теги
Ниже учётных данных находятся три группы событий, которые можно отправлять в AppsFlyer из Adapty. Просто включите те, которые вам нужны. Полный список событий, предоставляемых Adapty, можно найти здесь.
Мы рекомендуем использовать названия событий по умолчанию, предоставляемые Adapty. Но вы можете изменить их под свои нужды.
Adapty будет отправлять события подписки в AppsFlyer через интеграцию server-to-server, что позволит вам просматривать все события подписки в дашборде AppsFlyer и связывать их с вашими рекламными кампаниями.
Подключите приложение к AppsFlyer
После выполнения описанных выше шагов вызовите метод updateAttribution, чтобы сохранить данные атрибуции, и используйте Adapty.setIntegrationIdentifier() для установки идентификатора интеграции.
Инициализируйте SDK AppsFlyer и дождитесь обратного вызова с UID, прежде чем идентифицировать пользователей в Adapty. В противном случае appsflyer_id попадёт в краткий анонимный профиль Adapty, созданный во время активации, и не всегда будет перенесён в идентифицированный профиль. Если это произойдёт, передача дохода из AppsFlyer будет молча завершаться ошибкой.
Структура события
Adapty отправляет выбранные события в AppsFlyer через POST-запрос с JSON-телом по адресу:
- API v2:
https://api2.appsflyer.com/inappevent/{app_id} - API v3:
https://api3.appsflyer.com/inappevent/{app_id}(рекомендуется)
Каждое событие имеет следующую структуру:
{
"appsflyer_id": "1699887556000-6192770",
"eventName": "subscription_renewed",
"eventTime": "2024-03-01 12:00:00",
"eventValue": "{\"af_content_id\":\"yearly.premium.6999\",\"af_order_id\":\"GPA.3383-4699-1373-07113\",\"store_country\":\"US\",\"profile_country\":\"US\",\"af_content_type\":\"in_app\",\"af_revenue\":\"9.9900\",\"af_currency\":\"USD\",\"af_quantity\":\"1\"}",
"os": "17.0.1",
"bundleIdentifier": "com.example.app",
"customer_user_id": "user_12345",
"eventCurrency": "USD",
"ip": "192.168.100.1",
"advertising_id": "00000000-0000-0000-0000-000000000000",
"idfa": "00000000-0000-0000-0000-000000000000",
"idfv": "00000000-0000-0000-0000-000000000000",
"att": "3"
}
It looks like your message got cut off — the MDX documentation content didn’t come through. Could you please paste the text you’d like me to translate?
| Параметр | Тип | Описание |
|---|---|---|
appsflyer_id | String | AppsFlyer ID (собирается через SDK). |
eventName | String | Название события AppsFlyer (сопоставлено с событием Adapty). |
eventTime | String | Дата и время события (UTC, формат YYYY-MM-DD HH:MM:SS). |
eventValue | String | JSON-строка с деталями события (см. ниже). |
os | String | Версия ОС. |
bundleIdentifier | String | Bundle ID / название пакета приложения. |
customer_user_id | String | Customer User ID пользователя. |
eventCurrency | String | Код валюты (например, “USD”). |
ip | String | IP-адрес пользователя. |
advertising_id | String | Только Android. Google Advertising ID. |
idfa | String | Только iOS. ID для рекламодателей (ID for Advertisers). |
idfv | String | Только iOS. ID для вендоров (ID for Vendors). |
att | String | Только iOS. Статус App Tracking Transparency (например, “3” для авторизованного состояния). |
Параметр eventValue — это JSON-строка со следующими полями: | ||
| Параметр | Тип | Описание |
| :------------------ | :------- | :-------------------------------------------------------- |
af_content_id | String | ID продукта в сторе. |
af_order_id | String | Оригинальный ID транзакции. |
store_country | String | Код страны пользователя в сторе. |
profile_country | String | Код страны по IP-адресу пользователя. |
af_content_type | String | Всегда in_app, если передаётся выручка. |
af_revenue | String | Сумма выручки с точностью до 4 знаков после запятой. |
af_currency | String | Код валюты. |
af_quantity | String | Всегда 1, если передаётся выручка. |
Решение проблем
Расхождение в доходах
Если данные о доходах в Adapty и AppsFlyer расходятся, это может быть связано с тем, что не все пользователи обновились до версии приложения с Adapty SDK. Чтобы обеспечить согласованность данных, можно принудительно обновить приложение для всех пользователей до версии с Adapty SDK.
Отсутствующие данные интеграции
Если отправка событий завершается ошибкой, как правило, это связано с отсутствующими данными интеграции. Для решения проблемы убедитесь в следующем:
- В вашем приложении установлен AppsFlyer SDK.
- Вы вызываете метод
getAppsFlyerUID.
Ошибка аутентификации
Если в консоли появляется ошибка Failed to authenticate, это может быть вызвано несоответствием версии AppsFlyer и версии учётных данных.
Воспользуйтесь руководством по миграции или замените учётные данные на актуальные, взятые отсюда.