Краткий обзор: Работайте вместе с разработчиком вашего мобильного или CTV-приложения, чтобы интегрировать и установить SDK (пакет средств разработки ПО) в приложения для Android или iOS. После завершения основных задач интеграции ваше приложение будет готово к атрибуции установок и измерению внутренних событий приложения.
Внедрение ключа разработчика в ваше приложение
AppsFlyer использует ключ разработчика для уникальной идентификации вашей учётной записи. Ключ разработчика обязателен, так как позволяет SDK (пакет средств разработки ПО) безопасно отправлять и получать данные, относящиеся к вашей учётной записи. Ваш разработчик должен установить и интегрировать SDK (пакет средств разработки ПО), а также внедрить ключ разработчика.
Получение ключа разработчика
Перед тем как разработчик сможет установить и интегрировать SDK (пакет средств разработки ПО), вам необходимо получить ключ разработчика.
- В AppsFlyer в боковом меню выберите Настройки > Настройки приложения.
- Скопируйте ваш ключ разработчика и отправьте его вашему мобильному разработчику.
Внедрение ключа разработчика
Предоставьте вашему мобильному разработчику инструкции по установке и интеграции SDK (пакет средств разработки ПО).
С чего начать использование SDK?
При планировании интеграции SDK (пакета средств разработки ПО) AppsFlyer первое, что нужно решить, это где инициализировать и запустить SDK (пакет средств разработки ПО) в процессе запуска вашего приложения.
Главное правило — запускать SDK (пакет средств разработки ПО) как можно раньше после старта приложения, чтобы начать отправку данных. Это гарантирует, что SDK (пакет средств разработки ПО) фиксирует событие установки и все другие внутренние события, происходящие в сессии.
Однако для соблюдения правил защиты данных, таких как GDPR и CCPA, часто требуется отсрочить отправку данных в AppsFlyer до получения согласия пользователя на передачу своей информации.
Запуск SDK (пакета средств разработки ПО) в нативной среде Android
ВЫБЕРИТЕ КЛАСС, В КОТОРОМ БУДЕТ ЗАПУЩЕН SDK (пакет средств разработки ПО)
Выберите, запускать ли SDK (пакет средств разработки ПО) в глобальном классе Application
или в классе Activity
:
-
Запустите SDK (пакет средств разработки ПО) в глобальном классе : Обычно инициализация SDK (пакет средств разработки ПО) в глобальном классе или подклассе
Application
считается хорошей практикой, так как классApplication
загружается и инициализируется до отображения UI Приложения. Это гарантирует, что SDK (пакет средств разработки ПО) может быть запущен в любых условиях, включая диплинкинг. -
Запустите SDK (пакет средств разработки ПО) в классе (отложенный запуск) , чтобы пользователи могли дать согласие на обмен данными. Это связано с тем, что для получения согласия пользователя требуется UI, который отображается в классе
Activity
.
ИНСТРУКЦИИ ДЛЯ РАЗРАБОТЧИКОВ ANDROID
- Сообщите разработчику о вашем решении по следующим моментам:
- В каком классе,
Application
илиActivity
, запускать SDK (пакет средств разработки ПО)? - Какой сценарий согласия/отказа использовать?
- В каком классе,
- Отправьте разработчику следующую ссылку:
Запуск SDK (пакет средств разработки ПО) в нативной среде iOS
ОТЛОЖИТЬ ЗАПУСК SDK (пакет средств разработки ПО) В IOS
При планировании запуска SDK (пакет средств разработки ПО) важно учесть, стоит ли откладывать start
до получения согласия пользователя.
SDK (пакет средств разработки ПО) предоставляет метод waitForATTUserAuthorization
, который позволяет настроить, сколько времени SDK должен ожидать согласия пользователя перед отправкой данных на сервера AppsFlyer.
Для получения дополнительной информации о потоке данных метода и его взаимодействии с фреймворком iOS ATT, см. раздел Настройка поддержки App Tracking Transparency (ATT).
ИНСТРУКЦИИ ДЛЯ РАЗРАБОТЧИКОВ IOS
Сообщите вашему разработчику следующую информацию:
- Сколько секунд должно пройти до отправки данных в AppsFlyer?
- Ссылки для разработчиков:
- Запуск iOS SDK (пакет средств разработки ПО) для руководства разработчика и справочной информации о запуске SDK.
- Настройка поддержки App Tracking Transparency (ATT) для получения информации о том, как поток данных метода взаимодействует с фреймворком iOS ATT
- Включение поддержки App Tracking Transparency (ATT) для руководства разработчика и справочной информации по
Запуск SDK (пакет средств разработки ПО) в Unity
Отправьте вашему разработчику эту статью на Dev Hub о запуске SDK (пакет средств разработки ПО).
Запуск SDK (пакет средств разработки ПО) в React Native
Отправьте вашему разработчику эту статью на Dev Hub о запуске SDK (пакет средств разработки ПО).
Выберите стратегию сохранения конфиденциальности
Выберите способ защиты конфиденциальности пользователя. Например, выберите между остановкой SDK (пакет средств разработки ПО) при установке, предотвращением передачи данных третьим лицам, анонимизацией пользовательских данных или отключением определённых идентификаторов.
Для получения дополнительной информации о различных методах защиты конфиденциальности смотрите Методы защиты конфиденциальности в SDK (пакет средств разработки ПО).
Атрибуция
SDK (пакет средств разработки ПО) собирает идентификаторы для целей атрибуции. Чтобы установки были зарегистрированы и корректно атрибутированы, изучите и следуйте этим рекомендациям.
Все платформы
Уникальный идентификатор для установок
Идентификатор AppsFlyer создается автоматически при каждой новой установке приложения. Маркетологу не требуется выполнять никаких действий.
Вы можете использовать этот идентификатор для выполнения следующих действий:
- Отправлять внутренние события от сервера к серверу.
- Свяжите идентификатор AppsFlyer с пользовательскими записями в ваших бэкенд-системах.
- Загружайте отчет о необработанных данных о событиях в приложении и используйте appsflyer_id для анализа поведения и путей пользователей.
Интегрируйте уникальные идентификаторы из системы бизнес-аналитики с AppsFlyer.
Установите собственный идентификатор пользователя клиента (CUID) в SDK (пакет средств разработки ПО) AppsFlyer, чтобы соотносить уникальный идентификатор из вашей системы бизнес-аналитики с идентификатором AppsFlyer и другими идентификаторами. CUID доступен в отчётах о необработанных данных AppsFlyer. Вы также можете использовать его в постбэк API для связи с вашими внутренними идентификаторами.
Чтобы узнать больше о CUID, смотрите эту статью.
Только для Android
В следующих разделах рассматриваются аспекты атрибуции для Google Play Store или сторонних магазинов приложений.
Атрибуция приложений, опубликованных в Google Play
Реферал установки в GOOGLE PLAY
API Google Play Install Referrer улучшает точность атрибуции, защищает от мошеннических установок и обеспечивает безопасное извлечение данных о переходах из Google Play (например, версию приложения на момент его первой установки).
Рекомендуется предоставить разработчику указания по добавлению API Google Play Install Referrer.
ГАИД
Начиная с версии SDK (пакет средств разработки ПО) 4.8.0, AppsFlyer автоматически собирает этот идентификатор устройства.
Атрибуция приложений в сторонних магазинах
С помощью AppsFlyer вы можете атрибутировать установки, поступающие из сторонних магазинов приложений, таких как Amazon, Opera, GetJar, Baidu и Huawei. Это позволяет вам продвигать приложения и охватывать большие аудитории на рынках, где Google Play недоступен.
AppsFlyer поддерживает атрибуцию в контексте сторонних магазинов приложений следующим образом:
-
IMEI или идентификатор Android: SDK (пакет средств разработки ПО) не осуществляет автоматический сбор IMEI или идентификатора Android. Однако, если необходимо собирать эти идентификаторы (например, для приложений на внутреннем рынке Китая), разработчик может реализовать один из следующих способов сбора:
- Ручной сбор данных: Приложение передает IMEI или идентификатор Android в SDK (пакет средств разработки ПО) с использованием API
setImeiData
илиsetAndroidIdData
(см. раздел о функции на вкладках ниже). SDK (пакет средств разработки ПО) отправляет данные на серверы AppsFlyer.См. справочник по Unity SDK для:
- Дайте согласие на сбор идентификатора устройства: Принудительно осуществляет сбор IMEI или идентификатора Android с использованием setCollectIMEI и setCollectAndroidID (см. раздел о функции на вкладках ниже).
См. справочник по Android SDK для:
См. справочник по Unity SDK для:
См. справочник по React Native для:
- Ручной сбор данных: Приложение передает IMEI или идентификатор Android в 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+ SDK (пакет средств разработки ПО) использует фреймворк ATT для получения доступа к идентификатору устройства IDFA. Для введения в ATT см. принципы ATT.
См. инструкции для разработчиков по внедрению ATT в хабе для разработчиков.
См. инструкции для разработчиков по внедрению ATT в хабе для разработчиков.
Когда Атрибуция осуществляется с использованием IDFA, важно, чтобы IDFA был отправлен при первом запуске. waitForATTUserAuthorization
По этой причине SDK (пакет средств разработки ПО) предоставляет метод waitForATTUserAuthorization
.
Обзор waitForATTUserAuthorization
Важно!
Не вызывайте waitForATTUserAuthorization
, если вы не собираетесь использовать запрос ATT.
waitForATTUserAuthorization
позволяет вам настроить, как долго SDK (пакет средств разработки ПО) должен ожидать статус ATT перед передачей данных на серверы AppsFlyer.
Когда пользователь запускает Приложение, статус ATT — не определен. В течение тайм-аута SDK (пакет средств разработки ПО) временно сохраняет событие запуска и последующие события в Приложении в памяти, аналогично тому, как записываются офлайн-события:
- Если пользователь дает согласие на запрос ATT (сбор IDFA):
- SDK добавляет IDFA к закэшированным событиям.
- SDK запускается и отправляет события с IDFA без ожидания окончания тайм-аута.
- Если пользователь отклоняет запрос ATT: SDK запускается и отправляет события без IDFA без ожидания окончания тайм-аута.
- Если тайм-аут заканчивается, а статус ATT остается не определен: SDK запускается и отправляет закэшированные события без IDFA.
Факторы для учета
- Вызов без предварительной настройки приведет к отправке запусков и событий без IDFA для Устройств на iOS 14 и выше.
- Если пользователь переводит Приложение в фоновый режим в течение тайм-аута:
- Таймер приостанавливается, пока Приложение не вернется на передний план.
- События временно сохраняются в памяти.
- Если пользователь закрывает Приложение и оно завершает работу в течение тайм-аута:
- Таймер перезапустится при следующем запуске Приложения.
- Закэшированные события теряются.
Настройка окна согласия ATT
Вы можете настроить запрос ATT. Сообщение, четко объясняющее цель запроса, может помогать увеличить процент согласий пользователей.
При создании сообщения учтите следующее:
- Использовать такую формулировку, которая наилучшим образом объясняет пользователям, почему Приложение запрашивает их согласие.
- Сообщите пользователям, как будут использоваться их данные. Узнать больше о конфиденциальности пользователей и использовании данных.
После подготовки вашего сообщения предоставьте его разработчику вместе с инструкциями по его внедрению.
См. инструкции для разработчиков по настройке окна согласия на ATT в хабе для разработчиков.
См. инструкции для разработчиков по настройке окна согласия на ATT в хабе для разработчиков.
Поддержка атрибуции в SKAN
Примечание
Для полной поддержки атрибуции SKAN обновите iOS SDK (пакет средств разработки ПО) до версии V6.2.3+.
SKAN — это класс, используемый iOS для проверки установок приложений, инициированных рекламодателями. Процесс проверки установки приложения включает в себя приложение-источник и рекламируемое приложение.
Приложение-источник — это приложение, участвующее в рекламных кампаниях и показывающее рекламу из рекламной сети. Настройка вашего приложения для показа рекламы не входит в задачи SDK AppsFlyer. Для настройки следуйте инструкциям Apple.
Для рекламируемого приложения (приложения с SDK AppsFlyer) решение SKAN от AppsFlyer использует SKAN для предоставления постбэков об атрибуции, при этом AppsFlyer собирает, преобразует и агрегирует данные, сохраняя конфиденциальность пользователя. При первом запуске приложения платформа AppsFlyer, используя конфигурацию, заданную маркетологом, указывает SDK, как установить значение конверсии SKAN.
Чтобы использовать решение SKAN:
- Маркетолог должен настроить измерение SKAN в AppsFlyer. Разработчику не нужно предпринимать никаких действий.
- SDK AppsFlyer автоматически вызывает необходимые API SKAN.
- Обязательно отключите вызовы SKAN в других SDK, если вы полагаетесь на AppsFlyer для атрибуции SKAN.
- Никаких дополнительных действий или процесса регистрации в магазине приложений ни от разработчика, ни от маркетолога не требуется.
Чтобы отключить атрибуцию SKAN, попросите разработчика выключить её в SDK.
Чтобы отключить атрибуцию SKAN, используйте disableSKAdNetwork
Чтобы отключить атрибуцию SKAN, используйте disableSKAd
Запись событий в приложении
События в приложении (IAE) дают понимание о том, что происходит в вашем приложении. Запись событий в приложении помогает измерять такие KPI, как ROI (окупаемость инвестиций) и LTV. Мы рекомендуем выделить время для определения событий, которые необходимо записывать.
Определив, какие внутренние события вы хотите отслеживать, передайте названия событий и параметры своему разработчику, включая ссылку на инструкции по реализации.
Чтобы узнать больше о событиях в приложении, ознакомьтесь с нашим руководством по насыщенным внутренним событиям приложения.
Все платформы
Запись выручки
Вы можете отправлять доход с любым внутренним событием. Обязательно используйте параметр af_revenue для включения выручки. Это единственный параметр события, который AppsFlyer считает реальной выручкой на дэшборде и в отчетах о необработанных данных. Узнать больше.
Подтверждение покупок в приложении
AppsFlyer SDK предоставляет проверку сервера для покупок в приложении. Валидация покупки в приложении автоматически отправляет событие покупки в приложении в AppsFlyer. Самостоятельная отправка этого события создает дублирующую отчетность о событии.
Отраслевые вертикали
Ознакомьтесь с нашим списком рекомендуемых событий в приложении для различных отраслей, например, для путешествий, гейминга или электронной коммерции.
Диплинкинг с помощью OneLink
OneLink — это решение AppsFlyer для многоплатформенной атрибуции, перенаправления и диплинкинга.
Все платформы
Определение устройства и перенаправление
Для пользователей, у которых не установлено ваше приложение, OneLink определяет тип устройства и перенаправляет их на правильный ресурс (например, Google Play, магазин приложений Apple, сторонний магазин приложений или веб-страницу). Это основано на настройках вашего шаблона OneLink. Узнать больше
Диплинкинг
Если у пользователя установлено ваше приложение, OneLink открывает его. Вы также можете направлять пользователей на определенную активность или страницу в приложении, используя диплинкинг. Для этого вашим разработчикам нужно внедрить метод Unified Deep Linking (UDL).
Примечание:
- Для UDL требуется SDK V6.1 или позже.
- Клиенты, уже использующие OneLink для диплинкинга, могут применять устаревший метод вместо UDL.
Смотрите наше руководство по настройке диплинкинга и отложенного диплинкинга.
Отложенный диплинкинг
Для пользователей, у которых не установлено ваше приложение, OneLink определяет тип устройства и перенаправляет их на нужный ресурс: Google Play, магазин приложений Apple, сторонний магазин приложений или веб-страница. После запуска приложения пользователем вы можете использовать отложенный диплинкинг для перехода к конкретной активности или странице в приложении.
Для этого вашим разработчикам нужно внедрить метод расширенного отложенного диплинкинга.
Примечание:
- Для UDL требуется SDK V6.1 или позже.
- Клиенты, уже использующие OneLink для отложенного диплинкинга, могут применять устаревший метод вместо UDL.
Смотрите наше руководство по настройке диплинкинга и отложенного диплинкинга.
Доступ к данным атрибуции и диплинкинга
В следующей таблице описаны доступные методы для извлечения данных атрибуции и диплинкинга:
Метод | Кто участвует? | Возврат результатов | Метод извлечения | Данные атрибуции | Данные диплинкинга | Доступность |
---|---|---|---|---|---|---|
Push API | • Маркетолог • Бэкенд-разработчик | Обычно в течение нескольких минут | Бэкенд | Да | Нет | Категория "Премиум" |
Pull API | • Маркетолог • Бэкенд-разработчик | • Периодически (не в режиме реального времени). • Вы можете запланировать загрузку отчетов с необработанными данными. | Бэкенд | Да | Да | Категория "Премиум" для отчетов по необработанным данным |
Data Locker | • Маркетолог • Бэкенд-разработчик | Почасовые отчеты доступны в течение 1–3 часов. | Облачное хранилище через один из следующих вариантов: • Владельческое хранилище AppsFlyer на AWS • Хранилище, принадлежащее вам (AWS или GCS) | Да | Да | Категория "Премиум" |
Получение данных о конверсиях (GCD) | • Маркетолог • Мобильный разработчик См. документацию разработчика | До 5 секунд | SDK (пакет средств разработки ПО) | Да | Да | Все аккаунты |
Унифицированный диплинкинг (UDL) | • Маркетолог • Мобильный разработчик См. документацию разработчика | До 1 секунды | SDK (пакет средств разработки ПО) | Нет | Да | Все аккаунты |
Обратите внимание на следующее для пользователей iOS 14.5+, не давших согласия:
- При использовании UDL для платных и собственных медиа доступны данные о диплинкинге.
- При использовании GCD для платных медиа данные ограничены и не включают информацию об атрибуции и диплинкинге.
Совет
Мы рекомендуем следующее:
- Использовать push для получения данных атрибуции и отправки их на ваши серверы для дальнейшей обработки. Этот метод ожидает, пока данные не станут доступными, и поэтому обладает высокой точностью и приближен к реальному времени. GCD возвращает данные в реальном времени, но они могут быть неточными, если окончательные решения по атрибуции принимаются более чем через 5 секунд.
- Использовать Pull API для периодического (например, ежедневного) дополнения данных атрибуции в реальном времени и компенсации возможных ошибок связи.
Тестирование интеграции SDK
После завершения интеграции SDK вы можете перейти в дэшборд AppsFlyer и на странице тестирования интеграции SDK провести тестирование органических и неорганических установок, событий в приложении и диплинкинга (ретаргетинг). Это гарантирует, что установки и события в приложении корректно регистрируются и атрибутируются.
См. тестовые сценарии и инструкции в разделе Тестирование интеграции SDK.
Примечание: При выполнении тестов атрибуции зарегистрируйте тестовое устройство (Android или iOS), чтобы каждая установка регистрировалась как новая установка. Зарегистрированное тестовое устройство предотвращает регистрацию установок как переустановок.