Трансформация, начавшаяся с 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.10 | 5 |
| Завершение уровня 3 | $0.30 | 10 |
| Первая IAP ($0.99) | $0.99 | 20 |
| Первая 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(информация браузера)fbpcookie (first-party Meta pixel cookie)fbccookie (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 больше нет единого источника истины, реальность даёт агрегирование всех систем.