Трансформация, начавшаяся с ATT (App Tracking Transparency) в iOS 14, к 2026 году достигла зрелости. SKAdNetwork 4, модели конверсий и расширенные окна постустановочной атрибуции потребовали радикально новой технической архитектуры для iOS маркетинга. По состоянию на Q4 2025, 73% пользователей в США отклоняют отслеживание в ATT-приглашении (Flurry Analytics, 2025). Это знаменует конец детерминированных моделей атрибуции, но открывает новые возможности вероятностных систем. Ниже разберём, как построить производительный стек для iOS 17+ на техническом уровне.

После ATT: конец детерминированных сигналов

После внедрения App Tracking Transparency процент отказов от отслеживания превысил 70%. Это означает, что устройственные идентификаторы, такие как IDFA (Identifier for Advertisers), больше не могут быть в центре маркетинговых решений. Платформы вроде Meta, Google и TikTok потеряли доступ к данным на уровне пользователя и вынуждены переориентировать оптимизацию кампаний на агрегированные сигналы.

Что остаётся в отсутствие детерминированных сигналов:

  • SKAdNetwork postback'и (установки и события конверсии связаны с ID кампании, но без ID пользователя)
  • Серверные сигналы конверсий (из собственного потока событий)
  • Модели конверсий (ML платформы восполняют отсутствующие данные)

Критический момент: старые когортные анализы LTV теперь работают на вероятностном моделировании вместо детерминированных данных. Например, "Estimated Actions" в Meta Ads Manager — эти прогнозы несут 15–25% маржину ошибки (отчёт Meta об атрибуции, Q1 2025). При построении стека нужно учитывать эту неопределённость в расчётах.

Окно lookback после установки

С SKAdNetwork 4 окно lookback расширилось с 24 часов до 35 дней. Однако в течение этого периода ты можешь отправить только 3 обновления значения конверсии. Каждое обновление приходит с гранулярностью "coarse" или "fine" — эта гранулярность зависит от коэффициента конверсии. При высокой конверсии — fine (64 значения конверсии), при низкой — coarse (категории low/medium/high).

Техническое правило: если сигнал конверсии приходит в первые 24 часа — fine гранулярность, если на 3–7 день — coarse, если после 8 дня — таймер-based postback. Это также означает, что расчёт D7 LTV уже не детерминирован — только 40% установок отправляют сигнал до дня 7 (AppsFlyer benchmark, 2025).

Схема значений конверсий SKAdNetwork 4

SKAdNetwork содержит 64 значения конверсии (0–63). Каждое значение кодирует комбинацию событий. Например:

  • 0–9: первый запуск + завершение onboarding
  • 10–19: первое взаимодействие с контентом
  • 20–29: первая покупка (низкой стоимости)
  • 30–39: первая покупка (высокой стоимости)
  • 40–63: повторная покупка, возобновление подписки

При построении этой схемы требуется приоритетное связывание — события с более высокой бизнес-ценностью получают более высокие значения SKAdNetwork. Это критично, потому что SKAdNetwork отправляет только максимальное значение конверсии. Если пользователь завершит onboarding (value 5) и совершит покупку (value 25), в postback придёт только 25.

Пример связывания (игровое приложение):

СобытиеБизнес-ценностьЗначение SKAdNetwork
Завершение tutorial$0.105
Завершение уровня 3$0.3010
Первая IAP ($0.99)$0.9920
Первая IAP ($4.99+)$4.99+30
D7 retention$2.50 (модель)40

Построение этой схемы с revenue-weighted подходом критично — иначе события с высокой частотой и низкой стоимостью забьют высокие значения, и оптимизация платформы пойдёт в неправильном направлении.

Иерархический идентификатор источника

SKAdNetwork 4 внёс "иерархический ID источника" — это кодирует иерархию кампания → группа объявлений → креатив в 4-значный код. Например, 1234 может означать:

  • Первые 2 цифры (12): ID кампании
  • 3-я цифра (3): группа объявлений
  • 4-я цифра (4): вариант креатива

Правильное построение этого ID критично для гранулярности атрибуции. Иначе все кампании придут с одним ID, и видимость производительности на уровне креатива исчезнет. В стратегиях производительного маркетинга эта гранулярность ускоряет конверсионное тестирование — например, A/B тест креатива может дать результат за 3 дня вместо 7.

Модели конверсий: ML на уровне платформы

Meta, Google и TikTok теперь предоставляют "модели конверсий" — это слой, который использует ML для прогнозирования недостающих сигналов. Когда ты отправляешь серверное событие через Conversions API Meta, платформа использует:

  • Параметры события, которые ты отправляешь (event_name, value, currency)
  • IP-адрес, user agent, click ID (fbclid, gclid)
  • Исторические паттерны поведения похожих пользователей

Meta комбинирует эти сигналы и создаёт "модельное" количество конверсий. Например, если есть 100 реальных конверсий, модель может показать 120–130 "расчётных" конверсий. Эти прогнозы попадают в алгоритм ставок — то есть целевой ROAS оптимизируется на основе модельных данных.

Критический вопрос: надёжна ли модельная информация? Собственные A/B тесты Meta показывают, что точность модели составляет 18–22% (Meta Advertiser Help Center, 2025). Это должно быть проверено через incrementality-тесты. Если модельный ROAS 3.5x, но истинная прирастность 2.1x, ты будешь принимать решения по бюджету на основе модельных данных и потратишь деньги впустую.

Качество серверных сигналов

Качество модельной конверсии зависит от richness серверного сигнала. Минимальные требования:

  • event_source_url (URL целевой страницы)
  • client_ip_address (IP пользователя)
  • client_user_agent (информация браузера)
  • fbp cookie (first-party Meta pixel cookie)
  • fbc cookie (click ID cookie из fbclid-параметра)

Без этих 5 параметров качество модельной конверсии падает на 40–50% (документация Meta CAPI). Особенно критично установить fbp и fbc cookie'и из first-party домена — если эти сигналы теряются из-за блокирования third-party cookie'ей, атрибуция полностью переходит в агрегированный режим.

Зрелость кампаний в постлукбеке

В iOS кампаниях фаза "обучения" удлинилась. Google App Campaigns остаётся в режиме "обучения" до 50 конверсий. Но поскольку SKAdNetwork сигналы приходят с 24-часовой задержкой, эти 50 конверсий могут занять 3–5 дней. За это время CPA становится на 30–40% более волатильным.

Операционное правило: не паузируй кампанию в первые 7 дней — позволь алгоритму получать поток сигналов. После дня 7, если CPA стабилизировался, скейлируй; если нет — измени креатив или таргетинг. Но каждое изменение перезагружает фазу обучения — ещё 7 дней.

Структура кампаний: консолидация против сегментации

В эпоху iOS 13 имело смысл разделять кампании по узким аудиториям (lookalike 1%, 2% в отдельных кампаниях). Сейчас этот подход удлиняет фазу обучения. Вместо этого предпочитается консолидированная кампания:

  • Одна кампания, широкий таргетинг (iOS 15+, весь USA)
  • Платформа сама сегментирует через модель
  • Творческие тесты через dynamic creative внутри кампании

По benchmark AppsFlyer 2025 консолидированный подход дал 22% более низкий CPA. Но эта структура снижает ручную управляемость — вся власть переходит к платформе ML.

Валидация через incrementality-тесты

Точность модельных данных и SKAdNetwork сигналов понимается только через incrementality-тесты. С помощью geo-based holdout-теста ты сравниваешь контрольную группу (без реклам) и тестовую группу (с рекламой).

Простой расчёт:

Incremental Lift = (Test Group CVR - Control Group CVR) / Control Group CVR

Например, если CVR тестовой группы 3.2%, контрольной 2.1%, то прирост 52%. Но если весь этот прирост не из рекламы (например, из-за органического скачка), "истинная прирастность" ниже. В этом случае отрегулируй модельный ROAS на коэффициент прироста:

True ROAS = Reported ROAS × (Incremental Lift / 100)

Если reported ROAS 4.0x, но прирост 40%, true ROAS 1.6x — это существенная разница, которая меняет распределение бюджета.

Дизайн стека: слой за слоем

Комплексный стек атрибуции для iOS 17+ состоит из следующих слоёв:

1. SDK + MMP (Mobile Measurement Partner): AppsFlyer, Adjust, Branch собирают SKAdNetwork postback'и и связывают их с ID кампаний. Этот слой обеспечивает детерминированный сигнал, но без детализации на уровне пользователя.

2. Серверный поток событий: из app backend отправляй серверные события в Conversions API Meta, Google Ads API, TikTok Events API. Эти сигналы питают модели конверсий.

3. BI + модель атрибуции: в BigQuery или Snowflake объедини SKAdNetwork + серверные события + модельные данные. Здесь построй "blend атрибуции" — например, 60% веса SKAdNetwork, 40% модельных данных.

4. Слой прирастности: загрузи результаты geo-тестов в BI, отрегулируй блended-атрибуцию на прирастность. Этот слой даёт "ground truth".

Каждый слой — отдельный источник данных, поэтому надёжность стека зависит от uptime pipeline'а. SKAdNetwork postback'и несут 2–5% потерь (сетевые ошибки, ошибки таймера и т.д.), минимизируй эти потери через механизм повторов MMP.

Что делать сейчас

Стек iOS атрибуции теперь работает на вероятностном моделировании вместо детерминированных данных. Построй схему значений конверсий SKAdNetwork с revenue-weighted подходом, обеспечь гранулярность иерархическим ID источника, максимизируй качество серверных сигналов. При работе с модельными конверсиями проводи incrementality-тесты для валидации — в противном случае риск перератрибуции. Фаза зрелости кампании удлинилась, поэтому будь терпелив в первые 7 дней и избегай изменений, которые перезагружают learning phase. Строй стек слой за слоем и отслеживай потери данных в каждом — на iOS больше нет единого источника истины, реальность даёт агрегирование всех систем.