Краткий обзор. Совместно с мобильным разработчиком или разработчиком приложений для CTV выполните интеграцию и установку SDK в приложения для Android или iOS. Когда вы выполните задачи базовой интеграции, приложение будет готово к атрибуции установок и измерению внутренних событий. Когда вы выполните задачи базовой интеграции, приложение будет готово к атрибуции установок и измерению внутренних событий.
Материалы по теме
Чтобы получить полное представление о том, как планировать интеграцию SDK в приложение, ознакомьтесь со следующими статьями:
- Обзор интеграции SDK
- Руководство по базовой интеграции SDK (эта статья)
- Интеграция дополнительных средств SDK
- Телевизор с подключением к интернету (CTV) и технология OTT — обзор
Получение ключа разработчика
Чтобы разработчик мог установить и интегрировать SDK, вы должны получить ключ разработчика. AppsFlyer использует ключ разработчика в качестве уникального идентификатора аккаунта. Ключ разработчика является обязательным, поскольку он позволяет SDK безопасно отправлять и получать данные, которые относятся к вашему аккаунту.
Чтобы получить ваш ключ разработчика:
- В AppsFlyer перейдите в раздел Configuration (Настройки) > App Settings (Настройки приложения).
- Скопируйте ключ разработчика и отправьте его мобильному разработчику.
- Предоставьте мобильному разработчику инструкции по установке и интеграции SDK.
Атрибуция
SDK собирает идентификаторы в целях атрибуции. Чтобы обеспечить корректную регистрацию и атрибуцию установок, ознакомьтесь с этими рекомендациями и следуйте им.
Все платформы
Уникальный идентификатор для установок
Идентификатор AppsFlyer ID автоматически создается для каждой новой установки приложения. От маркетолога никаких действий не требуется.
С помощью этого идентификатора можно:
- Отправляйте внутренние события приложения от сервера к серверу.
- Сопоставить AppsFlyer ID с записями пользователей, сохраненными в ваших внутренних системах.
- Скачивать отчет с сырыми данными по внутренним событиям и использовать appsflyer_id для анализа поведения и пути пользователей.
Интеграция уникальных идентификаторов из системы бизнес-аналитики с AppsFlyer
Укажите свой идентификатор клиента (CUID) в SDK AppsFlyer, чтобы установить связь между уникальным ID из вашей системы бизнес-аналитики, ID AppsFlyer и другими идентификаторами. CUID можно посмотреть в отчетах AppsFlyer с сырыми данным. Он также может использоваться в API постбэков для связывания с вашими внутренними ID.
Только для Android
В следующих разделах приведены примечания по атрибуции для Google Play Store и сторонних магазинов приложений.
Атрибуция приложений, опубликованных в Google Play
Google Play Install Referrer
API Google Play Install Referrer повышает точность атрибуции, защищает от мошенничества с установками и позволяет безопасно извлекать данные о рефералах из Google Play (например, версию приложения на момент первой установки приложения).
Рекомендуем предоставить разработчику эти инструкции по добавлению API Google Play Install Referrer.
GAID
Начиная с SDK 4.8.0, AppsFlyer автоматически собирает этот идентификатор устройства.
Атрибуция приложений в сторонних магазинах приложений
AppsFlyer позволяет атрибутировать установки, источником которых являются сторонние магазины приложений, такие как Amazon, Opera, GetJar, Baidu и Huawei. Благодаря этому у вас есть возможность продвигать свои приложения на рынках, где Google Play недоступен, и расширять аудиторию.
AppsFlyer поддерживает атрибуцию в контексте сторонних магазинов приложений следующим образом:
-
IMEI или Android ID: SDK не собирает IMEI или Android ID автоматически. Однако, если есть необходимость в сборе этих идентификаторов (например, в случае приложений для китайского рынка) ваш разработчик может реализовать один из следующих методов сбора таких данных:
- Сбор вручную: приложение передает IMEI или Android ID в SDK (через API
setImeiData
илиsetAndroidIdData
). SDK отправляет данные на серверы AppsFlyer. - Разрешение на сбор идентификаторов устройств: заставляет SDK собирать IMEI или Android ID.
- Сбор вручную: приложение передает IMEI или Android ID в SDK (через API
- OAID: атрибутирует установки из сторонних магазинов приложений для Android. Подробную информацию см. в руководстве по внедрению OAID.
- Рефереры установок: SDK поддерживает получение данных о рефералах из Samsung Gallery и Huawei AppGallery.
Только для iOS
В следующих разделах содержится важная информация о поддержке устройств iOS 14+.
Настройка поддержки фреймворка App Tracking Transparency (ATT)
Фон
Начиная с iOS 14.5, для сбора IDFA нужно согласие пользователя. Фактически это означает, что доступом к IDFA управляет фреймворк App Tracking Transparency (ATT). На устройствах с iOS 14 и выше для получения доступа к IDFA устройства SDK использует фреймворк ATT.
Базовую информацию об ATT см. в разделе Принципы ATT.
Если атрибуция выполняется с использованием IDFA, важно, чтобы IDFA отправлялся при первом запуске. Для этого в SDK предусмотрена утилита waitForATTUserAuthorization.
Обзор waitForATTUserAuthorization
Важно!
Не вызывайте waitForATTUserAuthorization
, если не собираете показывать запрос ATT.
waitForATTUserAuthorization
позволяет задать, на сколько SDK будет задерживать отправку данных на серверы AppsFlyer, ожидая получения статуса ATT.
Когда пользователь запускает приложение, ATT имеет статус notDetermined (Не определен). В течение времени ожидания waitForATTUserAuthorization
SDK помещает в очередь в памяти событие запуска и последующие внутренние события приложения, аналогично тому, как регистрируются офлайн-события:
- Если пользователь принимает запрос на ATT (сбор IDFA):
- SDK добавляет IDFA к кэшированным событиям.
- SDK запускается и отправляет кэшированные события с IDFA (не дожидаясь окончания времени ожидания).
- Если пользователь отклоняет запрос ATT: SDK запускается и отправляет кэшированные события без IDFA (не дожидаясь окончания времени ожидания).
- Если время ожидания истекло, а статус ATT остался notDetermined (Не определен): SDK запускается и отправляет кешированные события без IDFA.
Факторы, которые необходимо учитывать
- Вызов
requestTrackingAuthorization
без настройкиwaitForATTUserAuthorization
приведет к тому, что данные о запусках и событиях на устройствах iOS 14+ будут отправляться без IDFA. - Если в течение времени ожидания пользователь переводит приложение в фоновый режим:
- Таймер приостанавливается, пока пользователь не вернется к окну приложения.
- События кэшируются в памяти.
- Если пользователь закрывает приложение, его работа прекращается в течение времени ожидания:
- Таймер перезапускается при следующем запуске приложения.
- Кэшированные события будут потеряны.
Настройка окна с запросом согласия ATT
Запрос ATT можно настроить. Сообщение, в котором четко указана цель запроса, может увеличить процент согласий.
При создании сообщения обратите внимание на следующее:
- Используйте формулировку, из которой пользователям будет понятно, зачем приложение запрашивает их согласие.
- Сообщите пользователям, как будут применяться их данные. Подробнее о защите конфиденциальности и использовании данных пользователей.
Закончив работу над сообщением, предоставьте разработчику текст и инструкции по реализации.
Поддержка атрибуции SKAN
Примечание
Чтобы стала доступна полная поддержка атрибуции SKAN, обновите SDK iOS до версии 6.2.3+.
SKAN — это класс, используемый iOS для проверки установок приложений, стимулируемых рекламодателем. Для проверки установки нужны исходное и рекламируемое приложения.
Исходное приложение — это приложение, которое участвует в рекламной кампании, показывая объявления из рекламной сети. Настройка вашего приложения для отображения рекламы не входит в задачи SDK AppsFlyer. Для настройки следуйте инструкциям Apple.
Для рекламируемого приложения (приложение с SDK AppsFlyer) решение AppsFlyer SKAN использует SKAN, чтобы отправлять постбэки об атрибуции. При этом AppsFlyer собирает, расшифровывает и агрегирует данные, обеспечивая конфиденциальность пользователей. При первом запуске приложения платформа AppsFlyer сообщает SDK, как задать значение конверсии SKAN, используя настройки, определенные маркетологом.
Чтобы использовать решение SKAN:
- Маркетолог настраивает измерение SKAN в AppsFlyer. От разработчика действий не требуется.
- SDK AppsFlyer автоматически вызывает необходимые API SKAN.
- Если для атрибуции SKAN вы используете AppsFlyer, обязательно отключите вызовы SKAN в других SDK.
- В магазине приложений не требуется каких-либо действий или регистраций со стороны разработчика или маркетолога.
Чтобы отключить атрибуцию SKAN, попросите разработчика отключить ее в SDK.
Регистрация внутренних событий приложения
Отслеживая внутренние события, можно понять, что происходит в приложении. Регистрация этих событий позволяет измерять такие показатели, как окупаемость инвестиций (ROI) и суммарная прибыть от пользователя (LTV). Рекомендуется заранее определить, какие события нужно регистрировать.
Определив, какие внутренние события требуется измерять, отправьте имена и параметры этих событий, а также ссылку на инструкции по реализации разработчику.
Подробнее о внутренних событиях приложения читайте в Руководстве по насыщенным внутренним событиям.
Все платформы
Регистрация дохода
Данные о доходе можно отправлять с любым внутренним событием приложения. Убедитесь, что для включения данных о доходе используется параметр af_revenue. Это единственный параметр события, который AppsFlyer учитывает как реальный доход на дэшборде и в отчетах с сырыми данными. Подробнее.
Инструкции для разработчиков см. в разделе Регистрация доходов.
Проверка покупок в приложении
При покупках в приложении SDK AppsFlyer выполняет проверку на сервере. Валидация покупки в приложении автоматически отправляет в AppsFlyer данные о событии покупки. При самостоятельной отправке этого события происходит дублирование данных о событии.
Отраслевые категории
См. список рекомендуемых внутренних событий по категориям приложений, таким как «Путешествия», «Игры», «Электронная коммерция».
Диплинкинг при помощи OneLink
OneLink — это решение AppsFlyer для многоплатформенной атрибуции, перенаправления и диплинкинга.
Все платформы
Идентификация устройств и перенаправление пользователей
Если у пользователей не установлено ваше приложение, OneLink определяет тип устройства и перенаправляет их в нужное место назначения: в Google Play, Apple App Store, сторонний магазин приложений или на веб-страницу. Это зависит от ваших настроек шаблона OneLink. Узнать больше
Диплинкинг
Если у пользователей установлено ваше приложение, OneLink открывает приложение. Помимо открытия приложения, вы также можете перенаправлять пользователей по диплинкам на определенное действие или страницу в приложении. Для этого вашему разработчику нужно реализовать унифицированный диплинкинг (UDL).
Внимание:
- Для UDL нужен SDK версии 6.1+.
- Вместо UDL клиенты, уже применяющие OneLink для диплинкинга, могут использовать устаревшие методы.
См. наше руководство по настройке диплинкинга при помощи OneLink.
Отложенная глубинная ссылка (диплинкинг)
Если у пользователей не установлено ваше приложение, OneLink определяет тип устройства и перенаправляет их в нужную точку: в Google Play, Apple App Store, сторонний магазин приложений или на веб-страницу. Когда пользователь загрузит приложение, вы можете направить его на определенную активность или страницу приложения с помощью отложенного диплинкинга.
Для этого вашему разработчику нужно реализовать унифицированный диплинкинг (UDL).
Внимание:
- Для UDL нужен SDK версии 6.1+.
- Вместо UDL клиенты, уже применяющие OneLink для отложенного диплинкинга, могут использовать устаревшие методы.
См. руководство по настройке отложенного диплинкинга при помощи OneLink.
Доступ к данным атрибуции и диплинкинга
В следующей таблице описаны доступные методы получения данных атрибуции и диплинкинга:
Метод | Кто задействован? | Возвращение результата | Метод получения данных | Данные атрибуции | Данные глубинных ссылок | Доступность |
---|---|---|---|---|---|---|
Push API |
|
Обычно несколько минут. | Обработка на стороне сервера | Y | N | Премиум |
Pull API |
|
|
Обработка на стороне сервера | Y | Y | Отчеты с сырыми данными — премиум-опция |
Data Locker |
|
Ежечасные отчеты доступны через 1–3 часа |
Облачное хранилище в рамках одного из следующих вариантов:
|
Y | Y | Премиум |
Получение данных о конверсиях (GCD) |
|
До 5 сек. | SDK | Y | Y | Все аккаунты |
Unified Deep Linking (UDL) |
|
До 1 сек. | SDK | N | Y | Все аккаунты |
В отношении пользователей iOS 14.5+, не давших согласие, необходимо учитывать следующее:
- При использовании UDL для платных и собственных медиа доступны данные диплинкинга.
- При использовании GCD для платных медиа сведения ограничены и не включают данные атрибуции и диплинкинга.
Совет
Наши рекомендации:
- Используйте Push API, чтобы получать данные атрибуции и отправлять их на свои серверы для дальнейшей обработки. Этот метод ожидает, когда данные станут доступны, и поэтому является высокоточным и работает почти в реальном времени. GCD возвращает данные в реальном времени, но если окончательные решения об атрибуции принимаются более 5 секунд, возможны неточности.
- Используйте Pull API, чтобы периодически (например, раз в день) дополнять данные атрибуции, поступающие в реальном времени, и компенсировать возможные ошибки связи.
протестировать его интеграцию
Когда интеграция SDK выполнена, можно открыть дэшборд AppsFlyer и со страницы SDK Integration Tests (Тесты интеграции SDK) протестировать органические и неорганические установки, внутренние события приложения и диплинкинг (ретаргетинг). Это позволяет проверить корректность регистрации и атрибуции установок и внутренних событий.
Если вам нужно, чтобы интеграцию SDK протестировал разработчик, добавьте его как пользователя в свой аккаунт, чтобы у него был доступ к дэшборду.
Сценарии тестирования и инструкции см. в разделе Тестирование интеграции SDK.