SKAdNetwork и AdAttributionKit: атрибуция на iOS без IDFA
На iOS рекламная сеть может узнать об установке после своей рекламы, не узнав, кто именно установил приложение. Для этого Apple сделала SKAdNetwork (SKAN): устройство само фиксирует показ и установку и через время отправляет сети подписанный постбэк без идентификаторов пользователя. С iOS 17.4 рядом работает AdAttributionKit — более новый фреймворк, совместимый со SKAdNetwork; в документации SKAdNetwork Apple теперь отсылает к нему для кампаний в App Store и альтернативных магазинах.
Как проходит атрибуция
- Рекламная сеть регистрируется в Apple и получает ad network ID. Приложение-площадка перечисляет ID сетей в своем Info.plist.
- Сеть подписывает объявление, площадка его показывает.
- Пользователь устанавливает рекламируемое приложение. По умолчанию на это дается 30 дней после клика и 24 часа после просмотра; в AdAttributionKit рекламируемое приложение может их изменить: для клика от 1 до 30 дней, для просмотра от 1 до 7.
- Приложение при первом запуске и дальше по мере действий пользователя обновляет conversion value.
- Когда окно конверсии закрывается, устройство отправляет постбэк сети-победителю, а по желанию разработчика — и копию ему. До пяти других сетей, чьи показы тоже подходили, получают постбэк с пометкой «не победил».
Клик всегда важнее просмотра, а внутри каждой группы побеждает самое свежее касание.
Conversion value: что можно узнать
Приложение сообщает о ценности пользователя двумя способами:
- точное значение — целое от 0 до 63, то есть 6 бит;
- грубое значение —
low,mediumилиhigh.
Смысл значений придумывает сам рекламодатель вместе с MMP. Например, один бит — «прошел регистрацию», один — «оформил пробный период», четыре — диапазон выручки. Точное значение приходит только в первом постбэке и только при достаточном уровне данных, остальные постбэки несут грубое.
Три окна SKAN 4
С iOS 16.1 (SKAdNetwork 4) у установки до трех окон конверсии, отсчитываемых от первого запуска:
| Окно | Дни | Что в постбэке |
|---|---|---|
| Первое | 0–2 | точное или грубое значение |
| Второе | 3–7 | только грубое |
| Третье | 8–35 | только грубое |
Значение можно зафиксировать раньше срока (lock) — тогда постбэк готовится сразу, а не в конце окна. Подробнее о том, как окна согласуют с трекером, — в статье про окно атрибуции.
Crowd anonymity: почему данных бывает мало
Apple присваивает каждой установке уровень данных от 0 до 3 в зависимости от размера «толпы»: популярности площадки, рекламируемого приложения, страны и выбранного идентификатора источника. Чем толпа меньше, тем беднее постбэк:
- уровень 0 — только двузначный идентификатор источника и только первый постбэк;
- уровень 1 — плюс грубое значение;
- уровень 2 — идентификатор до четырех цифр и точное значение;
- уровень 3 — плюс ID приложения-площадки и, при достаточной толпе, страна.
Четырехзначный иерархический идентификатор источника появился в SKAN 4 вместо прежнего номера кампании.
Что это значит для закупки
Оптимизировать можно только кампании и площадки, но не пользователей, причем с задержкой в дни. Схему conversion value проектируют до запуска, а расшифровку постбэков обычно берет на себя трекер — см. атрибуцию в MMP. Если пользователь дал согласие на трекинг, параллельно работает атрибуция по рекламному ID, а методы вроде вероятностной атрибуции на iOS ограничены правилами Apple.
Частые вопросы
Нужно ли согласие ATT для SKAdNetwork?
Нет. Apple прямо указывает, что для вызова API атрибуции приложению не нужно запрашивать разрешение App Tracking Transparency: в постбэках нет данных о пользователе и устройстве.
Чем AdAttributionKit отличается от SKAdNetwork?
AdAttributionKit появился в iOS 17.4 и работает не только с App Store, но и с альтернативными магазинами; в следующих версиях iOS к нему добавились повторное вовлечение и настраиваемые окна. Фреймворки совместимы: при конверсии система выбирает одного победителя среди показов обоих.
Почему постбэк приходит с задержкой?
Задержка случайная и намеренная: 24–48 часов после первого окна конверсии и 24–144 часа после второго и третьего. Она не дает сопоставить постбэк с конкретным человеком по времени установки.