Перейти к содержимому
Назад в Академию

Атрибуция установок: Install Referrer на Android, ATT и IDFA на iOS

11.02Мобильная аналитика и атрибуция
Содержание статьи

Сервис доставки продуктов в Алматы и Астане получает около 10 000 установок приложения в месяц из Meta, TikTok, Google и Apple Ads. Во вторник вечером его рекламу в Instagram видят двое: Асель с Android-смартфоном и Ерлан с iPhone. Оба ставят приложение, и в среду каждый делает первый заказ на 9 000 ₸ (люди, даты и цифры в уроке условные). Через неделю маркетолог открывает MMP, Google Play Console и App Store Connect, и про этих двоих каждая система рассказывает своё. Настройка тут ни при чём: Android и iOS по-разному позволяют узнать, откуда пришла установка.

Одна установка, три даты

Скачивание, установка и первый запуск - разные моменты, и отчёты берут разные. В модели атрибуции AppsFlyer время установки - это первый запуск, у рекламных сетей - время клика или показа, у магазинов приложений - время скачивания. Adjust тоже засчитывает установку только после первого открытия: скачал и ни разу не открыл - для Adjust установки не было.

Асель скачала приложение во вторник, а открыла в среду утром. Рекламная сеть и Play Console отнесут её установку ко вторнику, MMP к среде. В недельном отчёте этого не видно, а в дневном выглядит как потеря, которой нет. Поэтому сверку начинают с вопроса, какой момент считает каждая система и в каком часовом поясе.

Android: Google Play передаёт ссылку в приложение

На Android приложение может узнать, по какой ссылке человек пришёл в магазин. Google Play сохраняет параметр referrer из ссылки на страницу приложения и после установки отдаёт его через Google Play Install Referrer API, вместе со временем клика по ссылке, временем начала установки и версией приложения. Ссылка для поста в Telegram-канале сервиса выглядит так (формат параметра referrer взят из описания атрибуции приложений в GA4):

https://play.google.com/store/apps/details?id=kz.example.grocery&referrer=utm_source%3Dtelegram%26utm_medium%3Dsocial%26utm_campaign%3Dfirst_order

Внутри referrer лежат обычные UTM-метки, только закодированные: = превращается в %3D, & в %26. Google хранит эти данные 90 дней, и до переустановки они не меняются, так что SDK читает их один раз, при первом запуске.

На том же механизме работают ссылки MMP: человек кликает по ссылке, MMP перенаправляет его в магазин, и исходный адрес клика доезжает до приложения в referrer. Для AppsFlyer это основной способ атрибуции на Android, и кроме Google Play referrer передают Huawei AppGallery, Samsung Galaxy Store и Xiaomi GetApps. У APK, скачанного с сайта, магазина в пути нет, и передать referrer некому.

Meta, Google Ads и TikTok ссылками MMP не пользуются: это самоатрибутирующиеся сети (SRN). При первом запуске MMP сам спрашивает их по рекламному идентификатору устройства, была ли у этого человека их реклама (как AppsFlyer работает с SRN). На Android такой идентификатор - GAID. Пользователь может сбросить или удалить его, и тогда приложение вместо ID получит строку нулей. У Асель GAID на месте, MMP находит у Meta её клик и записывает установку на кампанию.

iOS: App Store ссылку не передаёт

На iOS аналога referrer нет: в таблице методов AppsFlyer он для iOS отмечен как недоступный. Параметры ссылки на App Store до приложения не доходят. У Apple есть ссылки кампаний с токенами pt и ct, но их видно только в отчётах App Store Connect, о них ниже.

Для платной рекламы на iPhone остаётся три способа:

  • по рекламному идентификатору IDFA: сеть или MMP сопоставляет его с кликом, и для этого нужно согласие человека на отслеживание;
  • через SKAdNetwork и AdAttributionKit: Apple сама подтверждает рекламной сети установку, согласие не нужно, но данные приходят с задержкой и без привязки к человеку;
  • для Apple Ads (до 2025 года Apple Search Ads) через фреймворк AdServices: приложение получает на устройстве токен и по нему узнаёт у Apple кампанию (Apple Ads Attribution API).

ATT и IDFA: согласие на отслеживание

С iOS 14.5 приложение должно спросить разрешение через App Tracking Transparency (ATT), прежде чем отслеживать человека или читать IDFA (правила Apple о данных пользователей). Отслеживанием Apple называет связь данных из вашего приложения с данными других компаний для таргетинга рекламы или измерения её результата, а также передачу данных брокерам. Найти по IDFA клик в Instagram, который привёл к установке, - ровно такая связь.

Ерлан открыл приложение сразу, во вторник вечером, и в окне ATT нажал «Попросить приложение не отслеживать». Теперь вместо IDFA приложение получает одни нули, и Meta по ним ничего не найдёт.

Обходить отказ нельзя. Apple запрещает собирать сигналы устройства, чтобы однозначно его опознать (fingerprinting). Хешированный телефон вместо IDFA тоже не выход: если по нему сопоставляют установку с рекламой другой компании, это то же отслеживание, и без согласия его делать нельзя. Закрывать функции для отказавшихся и награждать за согласие тоже запрещено: скидка на первый заказ за «Разрешить» нарушает правило 5.1.2(i) App Review. А вот объяснить перед системным окном, зачем приложению разрешение, можно.

Где показать окно ATT, решает команда приложения. Чтобы SDK не отправил первый запуск раньше ответа, его настраивают ждать.

Вероятностная атрибуция и её пределы

Когда идентификатора нет, MMP может оценить связь статистически, по совпадению времени и других сигналов. AppsFlyer называет это probabilistic modeling и прямо пишет, что на выходе отчёт по кампании, а не опознанное устройство или человек. По окнам атрибуции AppsFlyer у такого метода до 24 часов, а у referrer и идентификатора по умолчанию 7 дней после клика.

У Adjust на iOS 14.5 и новее вероятностная модель работает только для собственных каналов приложения, перекрёстного продвижения и переходов с сайта, где человек дал согласие (методы атрибуции Adjust). AppsFlyer применяет её и к рекламным сетям, которые работают по его ссылкам (платные источники в модели AppsFlyer). Для Meta и Google Ads на iPhone AppsFlyer указывает два пути: идентификатор с согласием ATT и SKAN. У Ерлана согласия нет, так что в отчёте MMP по установкам он, скорее всего, окажется органикой. Оговорка нужна потому, что Meta с включённым Aggregated Event Measurement может прислать по такой установке смоделированную заявку (расхождения AppsFlyer и Meta).

Органика в MMP значит только одно: система не нашла подходящего касания по своим правилам. AppsFlyer в описании своей модели атрибуции сам оговаривается, что органические установки, строго говоря, никому не атрибутированы. Если после запуска рекламы на iOS выросла органика, сначала сравните её с отчётом SKAN, а уже потом хвалите ASO.

SKAN и AdAttributionKit в двух абзацах

У Apple есть своя атрибуция, без отслеживания. Рекламная сеть получает от Apple подписанное сообщение (postback) о том, что её реклама привела к установке. Первое сообщение уходит после окончания первого окна конверсии, то есть через два дня после первого запуска, и ещё со случайной задержкой 24-48 часов (окна конверсии AdAttributionKit). Значение действий пользователя в нём есть, только если таких установок набралось столько, что выделить отдельного человека нельзя (AdAttributionKit). Разрешение ATT для этого не нужно.

Так установка Ерлана и может дойти до Meta, если кампания работает со SKAN. MMP покажет её в отдельном отчёте SKAN, без имени и ID, и не раньше чем через несколько дней: у AppsFlyer данные первого окна появляются в дашборде через 80-128 часов после первого запуска. Как закодировать первый заказ в postback и читать неполные отчёты, показывает урок про SKAN и AdAttributionKit, а как MMP сводит SKAN с остальными данными - статья о том, как работает SKAdNetwork.

Что видно в App Store Connect и Google Play Console

Магазины видят свою часть пути: показ страницы и скачивание. О заказах они не знают ничего, о рекламе - немного.

App Store Connect в разделе аналитики показывает показы в App Store, просмотры страницы продукта, первые загрузки (First-Time Downloads) и повторные (определения метрик). Загрузки делятся по типу источника: поиск в App Store вместе с рекламой в результатах поиска, просмотр App Store, ссылка из другого приложения (App Referrer) и ссылка с сайта (Web Referrer). Загрузка Ерлана пришла из Instagram и попадёт в App Referrer. Для своих каналов создают ссылку кампании с токеном ct, и кампания появится в отчёте, когда принесёт первые загрузки от пяти разных людей. Сессии, активные устройства и сбои Apple показывает только по тем, кто разрешил делиться аналитикой с разработчиками.

В Google Play Console отчёт лежит в разделе «Привлечение пользователей» → «Эффективность страницы приложения» → «Анализ конверсии» (как устроен отчёт по странице приложения). Там посетители страницы приложения, уникальные пользователи, нажавшие «Установить», и CTR по источникам трафика: «Поиск в Google Play», «Интересное в Google Play», «Реклама и рефералы». У рекламы и рефералов видны UTM-источник и кампания из ссылок на страницу. С июля 2026 года этот отчёт считает нажатия «Установить», а не завершённые установки, сами установки остались на обзорной странице раздела и в статистике. Показов и конверсий Google Ads в Play Console нет, их смотрят в кабинете Google Ads.

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

Что увидит каждая система

СистемаАсель, AndroidЕрлан, iPhone
Google Play ConsoleУстановка во вторник-
App Store Connect-Первая загрузка во вторник, источник App Referrer
MMP, отчёт по установкамУстановка в среду, источник MetaСкорее всего, органическая установка во вторник
MMP, отчёт SKAN-Установка в кампании Meta через несколько дней, без ID человека, если кампания работает со SKAN
БэкендПервый заказ на 9 000 ₸Первый заказ на 9 000 ₸

Из 18 000 ₸ первых заказов MMP привяжет к Meta только 9 000 ₸ Асель. Ерлан пришёл из той же рекламы, но его заказ в MMP, скорее всего, органический, а установку кампания получит разве что в сводном отчёте SKAN. Сложите органику MMP и установки из SKAN как разных людей, и Ерлан будет посчитан дважды. Поэтому клиенту пишут прямо: на iPhone часть установок из рекламы MMP видит только в отчёте SKAN, и рекламу на iOS оценивают по обоим отчётам, не складывая их.

Упражнение: карта источников для своего приложения

Возьмите приложение клиента или местного бизнеса, которому хотите предложить аудит. Доступ к кабинетам не нужен, хватит списка каналов, где компания себя рекламирует.

Выполнено 0 из 5

У доставки продуктов карта выйдет такой. Meta и Google Ads на Android связываются с установкой через запрос MMP по GAID, на iPhone с согласием - по IDFA, без согласия - через SKAN, а у Meta ещё через смоделированные заявки AEM. Apple Ads на iPhone узнаются по токену AdServices. Telegram-канал на Android даст referrer, а на iPhone - в лучшем случае вероятностную оценку по собственному каналу и строку кампании в App Store Connect. Главная колонка в такой таблице - «iPhone без согласия». Если в ней пусто, клиент увидит после запуска рекламы на iOS рост органики и не поймёт, откуда он взялся.

Три предложения для клиента могут звучать так: «Магазины считают скачивания, MMP - первые запуски, рекламные сети - клики, поэтому даты в отчётах расходятся на день-два. На iPhone без согласия на отслеживание установку из рекламы видно в сводном отчёте Apple, а в MMP она может оказаться органической. Ошибку настройки мы будем искать там, где разница больше, чем объясняют эти две причины».

Видео: основы мобильной атрибуции

What Is Mobile Attribution - and Why Does It Matter?

Обзор от AppsFlyer на английском.

Нужна помощь с аналитикой вашего проекта?