Базовое руководство по интеграции SDK (пакет средств разработки ПО)

Краткий обзор: Работайте вместе с разработчиком вашего мобильного или CTV-приложения, чтобы интегрировать и установить SDK (пакет средств разработки ПО) в приложения для Android или iOS. После завершения основных задач интеграции ваше приложение будет готово к атрибуции установок и измерению внутренних событий приложения.

Внедрение ключа разработчика в ваше приложение

AppsFlyer использует ключ разработчика для уникальной идентификации вашей учётной записи. Ключ разработчика обязателен, так как позволяет SDK (пакет средств разработки ПО) безопасно отправлять и получать данные, относящиеся к вашей учётной записи. Ваш разработчик должен установить и интегрировать SDK (пакет средств разработки ПО), а также внедрить ключ разработчика. 

Получение ключа разработчика

Перед тем как разработчик сможет установить и интегрировать SDK (пакет средств разработки ПО), вам необходимо получить ключ разработчика.

  1. В AppsFlyer в боковом меню выберите Настройки > Настройки приложения.
  2. Скопируйте ваш ключ разработчика и отправьте его вашему мобильному разработчику.

Внедрение ключа разработчика

Предоставьте вашему мобильному разработчику инструкции по установке и интеграции SDK (пакет средств разработки ПО).

С чего начать использование SDK?

При планировании интеграции SDK (пакета средств разработки ПО) AppsFlyer первое, что нужно решить, это где инициализировать и запустить SDK (пакет средств разработки ПО) в процессе запуска вашего приложения.

Главное правило — запускать SDK (пакет средств разработки ПО) как можно раньше после старта приложения, чтобы начать отправку данных. Это гарантирует, что SDK (пакет средств разработки ПО) фиксирует событие установки и все другие внутренние события, происходящие в сессии.

Однако для соблюдения правил защиты данных, таких как GDPR и CCPA, часто требуется отсрочить отправку данных в AppsFlyer до получения согласия пользователя на передачу своей информации.

Нативный Android Нативный iOS Unity React Native

Запуск SDK (пакета средств разработки ПО) в нативной среде Android

ВЫБЕРИТЕ КЛАСС, В КОТОРОМ БУДЕТ ЗАПУЩЕН SDK (пакет средств разработки ПО)

Выберите, запускать ли SDK (пакет средств разработки ПО) в глобальном классе Application или в классе Activity:

  • Запустите SDK (пакет средств разработки ПО) в глобальном классе : Обычно инициализация SDK (пакет средств разработки ПО) в глобальном классе или подклассе Application считается хорошей практикой, так как класс Application загружается и инициализируется до отображения UI Приложения. Это гарантирует, что SDK (пакет средств разработки ПО) может быть запущен в любых условиях, включая диплинкинг.
  • Запустите SDK (пакет средств разработки ПО) в классе (отложенный запуск) , чтобы пользователи могли дать согласие на обмен данными. Это связано с тем, что для получения согласия пользователя требуется UI, который отображается в классе Activity.

ИНСТРУКЦИИ ДЛЯ РАЗРАБОТЧИКОВ ANDROID

  • Сообщите разработчику о вашем решении по следующим моментам:
    • В каком классе, Application или Activity, запускать SDK (пакет средств разработки ПО)?
    • Какой сценарий согласия/отказа использовать?

Запуск SDK (пакет средств разработки ПО) в Unity

Отправьте вашему разработчику эту статью на Dev Hub о запуске SDK (пакет средств разработки ПО).

Запуск SDK (пакет средств разработки ПО) в React Native

Отправьте вашему разработчику эту статью на Dev Hub о запуске SDK (пакет средств разработки ПО).

Выберите стратегию сохранения конфиденциальности

Выберите способ защиты конфиденциальности пользователя. Например, выберите между остановкой SDK (пакет средств разработки ПО) при установке, предотвращением передачи данных третьим лицам, анонимизацией пользовательских данных или отключением определённых идентификаторов.

Для получения дополнительной информации о различных методах защиты конфиденциальности смотрите Методы защиты конфиденциальности в SDK (пакет средств разработки ПО).

Атрибуция

SDK (пакет средств разработки ПО) собирает идентификаторы для целей атрибуции. Чтобы установки были зарегистрированы и корректно атрибутированы, изучите и следуйте этим рекомендациям.

Все платформы

Уникальный идентификатор для установок

Идентификатор AppsFlyer создается автоматически при каждой новой установке приложения. Маркетологу не требуется выполнять никаких действий.

Вы можете использовать этот идентификатор для выполнения следующих действий:

Интегрируйте уникальные идентификаторы из системы бизнес-аналитики с 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.
      Android nativeUnity

      См. справочник по Android SDK для:

      •  
      •   
    • Дайте согласие на сбор идентификатора устройства: Принудительно осуществляет сбор IMEI или идентификатора Android с использованием setCollectIMEI и setCollectAndroidID (см. раздел о функции на вкладках ниже).
      Android nativeUnityReact Native

      См. справочник по Android SDK для:

  • 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.

iOS nativeUnity

См. инструкции для разработчиков по внедрению 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.

Факторы для учета

  • Если пользователь закрывает Приложение и оно завершает работу в течение тайм-аута:
    • Таймер перезапустится при следующем запуске Приложения.
    • Закэшированные события теряются.

Настройка окна согласия 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.

iOS nativeUnityReact Native

Чтобы отключить атрибуцию SKAN, используйте

Запись событий в приложении

События в приложении (IAE) дают понимание о том, что происходит в вашем приложении. Запись событий в приложении помогает измерять такие KPI, как ROI (окупаемость инвестиций) и LTV. Мы рекомендуем выделить время для определения событий, которые необходимо записывать.

Определив, какие внутренние события вы хотите отслеживать, передайте названия событий и параметры своему разработчику, включая ссылку на инструкции по реализации.

Чтобы узнать больше о событиях в приложении, ознакомьтесь с нашим руководством по насыщенным внутренним событиям приложения.

Все платформы

Запись выручки

Вы можете отправлять доход с любым внутренним событием. Обязательно используйте параметр af_revenue для включения выручки. Это единственный параметр события, который AppsFlyer считает реальной выручкой на дэшборде и в отчетах о необработанных данных. Узнать больше.

Android nativeiOS nativeUnity

Инструкции для разработчиков по определению событий дохода см. здесь.

Подтверждение покупок в приложении

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), чтобы каждая установка регистрировалась как новая установка. Зарегистрированное тестовое устройство предотвращает регистрацию установок как переустановок.