Cookies удалены на 80%, Multi-Touch Attribution (MTA) больше не надёжна, платформенные дашборды показывают разные цифры. В 2026 году маркетологи измеряют вклад канала двумя методами одновременно: Marketing Mix Modeling (MMM) и incrementality-тестами. Проблема в том, что мало кто знает, когда какой метод применять. Эта статья показывает, как использовать Robyn (открытую MMM-библиотеку Meta), Meta Lift API и geo-holdout эксперименты в едином фреймворке.

Last-touch attribution мёртв — но что ему на смену?

Google Analytics 4 говорит "data-driven attribution", Meta говорит "modeled conversions", TikTok даёт свои цифры. Все три показывают разное. В 2025 году e-commerce бренд, потративший 100 долларов, видит в GA4 восемь конверсий, в Meta двенадцать, в TikTok шесть. Какой канал на самом деле работает? Last-touch модель не отвечает, потому что пользователь проходит несколько touchpoint'ов, и каждая платформа даёт себе кредит.

Marketing Mix Modeling решает эту проблему иначе: берёт каналы как независимые переменные, продажи или revenue как зависимую переменную, регрессией высчитывает маржинальный вклад каждого канала. Incrementality-тесты работают прямже: одну группу показываешь в канале, другую не показываешь, измеряешь разницу. Оба подхода разрушают иллюзию last-touch, но применяются в разных сценариях.

Отличие вот в чём: MMM макро-уровень (долгосрок, все каналы одновременно), incrementality микро-уровень (краткосрок, конкретный канал или кампания). Объединённый setup стал стандартом в 2026.

MMM: недельный регрессионный setup на Robyn

Robyn — это открытая MMM-фреймворк от Facebook Marketing Science. Работает на R, использует Bayesian ridge regression, автоматически подгоняет adstock (отложенный эффект) и saturation (уменьшение отдачи). На недельной гранулярности показывает вклад каждого канала (TV, display, paid social, SEO, email) в продажи в процентах.

4 компонента Robyn setup'а:

  1. Сбор данных: минимум 1,5 года недельных данных. Каждая строка — одна неделя. Колонки: затраты по каналам, impressions или clicks, независимые переменные (цена, стоки, сезонность), зависимая переменная (revenue, orders, conversions). Пропуски — модель не сработает.
  2. Hyperparameter tuning: Robyn ищет для каждого канала adstock decay (α) и saturation shape (γ). Прогоняет 2000+ комбинаций моделей, предлагает лучшие 5-10 с Pareto frontier. Занимает 10-30 минут (на 64 cores).
  3. Выбор модели: берёшь модель с минимальным NRMSE (Normalized Root Mean Squared Error) и максимальной decomp.rssd (стабильность разложения). Output: вклад каждого канала в % от всех продаж, ROI по каналам, оптимальное распределение бюджета.
  4. Распределение бюджета: функция budget allocator перераспределяет весь бюджет так, чтобы маржинальный ROI был одинаков по каналам. Этот output использует планирование на следующий квартал.

Когда Robyn применяется:

  • Решения по распределению бюджета между каналами (например, планирование Q3)
  • Симуляция добавления/удаления канала
  • Анализ долгосрочных трендов (6+ месяцев)

Когда Robyn НЕ применяется:

  • Оптимизация внутри кампании (сроки менее 2 недель)
  • Решение про выбор креатива (MMM не видит различия в креативах)
  • Real-time bidding (недельное отставание данных)

В рамках услуги Цифровой маркетинг Roibase разворачивает Robyn: подключает GA4, server-side GTM, Meta CAPI и BigQuery, создаёт недельный ETL pipeline, визуализирует output в Data Studio.

Incrementality-тесты: Meta Lift и geo-holdout эксперименты

MMM отвечает на "сколько", incrementality отвечает на "это вообще работает?". Две разные вопросы. Если в Meta потратил 100 тыс. рублей и получил 120 конверсий — это хорошо? MMM скажет "Meta занимает 15% бюджета, приносит 12% продаж". Но сколько из этих 120 конверсий всё равно произошли бы (organic)? Для этого нужен incrementality-тест.

Meta Conversion Lift

Meta Lift API измеряет реальный эффект Facebook и Instagram рекламы. Как? Не показывает кампанию маленькой holdout группе, показывает другой группе, через 7-14 дней сравнивает разницу. Разница = incremental conversions.

Setup:

  • До запуска кампании открываешь Lift study (Ads Manager > Measure & Report > Conversion Lift)
  • Доля holdout 5-10% (меньше = шум, больше = потеря impressions)
  • Минимум 7 дней тестирования (меньше = низкая статистическая мощность)
  • Результат: incremental conversions, incremental CPA, доверительный интервал

Пример интерпретации результата: Control group: 1000 человек, 40 конверсий Test group: 9000 человек, 450 конверсий Incremental conversions = (450/9000 - 40/1000) × 9000 = 90 конверсий Lift = 90 / (450 - 90) = 25%

Значит, из 450 конверсий в группе только 90 реально от рекламы. Остальные произошли бы и без неё. Incremental CPA = (затраты) / 90. Этот CPA на 30-60% выше MTA — потому что это правда.

Когда применяется Meta Lift:

  • Тестирование новой кампании или креативов
  • Выбор платформы (Meta vs. Google vs. TikTok — где больше инкрементальность?)
  • Измерение реального вклада ретаргетинга (частая проблема: ретаргетинг всегда дешёвый, но 80% конверсий произошли бы и без него)

Недостаток:

  • Работает только в Meta (в Google Display & Video 360 есть аналог, но ограниченный)
  • Holdout группа = потеря impressions (краткосрочно падает revenue)
  • Минимум 1 неделя — для ежедневных решений не подходит

Geo-based эксперименты (геолокационный holdout)

Для Google, TikTok, TV и других каналов вне Meta применяешь geo-тест: в одних городах запускаешь кампанию, в других нет, сравниваешь продажи. Это самый чистый метод инкрементальности, потому что нет манипуляций на уровне пользователя.

Пример setup'а:

  • Выбираешь 30 городов (похожая численность, экономический уровень)
  • В 15 открываешь Google Ads кампанию, в 15 не открываешь (рандомизируешь)
  • Ждёшь 4 недели
  • В GA4 сравниваешь conversions по городам

Анализ:

  • Treated cities: среднее 120 конверсий/город
  • Control cities: среднее 95 конверсий/город
  • Incremental lift: (120 - 95) / 95 = 26.3%

Этот lift экстраполируешь на всю страну. Если затраты на Google Ads 200 тыс. рублей, высчитываешь инкрементальный revenue и incremental ROAS.

Когда применяется geo-тест:

  • Измерение чистого вклада каждого канала в multi-channel setup
  • Эффект TV, OOH, подкастов и других offline-каналов
  • Когда не доверяешь платформенным дашбордам

Недостаток:

  • При малом количестве городов низкая статистическая мощность (минимум 20 городов)
  • Географическая неоднородность может исказить результат (Москва и Тверь не одно)
  • Долгий процесс (4-8 недель)

Decision tree: когда какой метод использовать?

Три метода организуешь в едином фреймворке:

СценарийМетодЧастотаOutput
Распределение бюджета по кварталамRobyn MMMраз в 3 месяцаROI по каналам, оптимальное распределение
Тестирование новой кампании (Meta/Instagram)Meta Liftкаждая крупная кампанияIncremental CPA
Инкрементальность кросс-канальнаяGeo-holdoutраз в 6 месяцевРеальный lift по каналам
Решение про креативMeta Lift + CRO анализраз в месяцКакой креатив инкрементален
Real-time biddingPlatform API (ROAS feedback)ежедневноОптимизация на уровне тактики

Практический процесс:

  1. Еженедельно: контролируешь платформенные дашборды (MTA-подобное, но не доверяй)
  2. Ежемесячно: запускаешь Meta Lift на крупных кампаниях
  3. По кварталам: Robyn пересчитывает весь долгосрочный вклад, перераспределяешь бюджет
  4. Дважды в год: geo-тест валидирует реальный lift каждого канала

С такой трёхуровневой системой ты принимаешь решения и на краткосрок (какой креатив работает), и на долгосрок (сколько денег в какой канал).

Частые ошибки и трейд-оффы

Ошибка 1: "Если есть MMM, то incrementality не нужна" Неправда. MMM показывает корреляцию, предполагает причинность. Incrementality тест измеряет причинность. Они дополняют друг друга. Пример: MMM говорит "Instagram приносит 15% продаж", а Lift тест показывает "из этого 40% произошли бы и без рекламы". Реальный вклад = 9%.

Ошибка 2: "Incrementality тест делаешь для каждой кампании" Неправда. Holdout группа = потеря impressions. Тест открываешь только для крупных решений (новый канал, новое направление креатива, изменение ретаргетинга). На мелкие оптимизации A/B тест достаточно.

Ошибка 3: "Robyn установить один раз, и всё автоматически работает" Неправда. Модель переучиваешь каждый квартал. Добавил новый канал — обнови. Изменилась цена, сезонность — переучи. Robyn требует постоянного обслуживания.

Трейд-офф 1: скорость vs. точность MMM требует 1,5 года данных, результат на неделю позже. Geo-тест длится 4-8 недель. Для быстрых решений приходится полагаться на платформенные дашборды, принимая ±30-50% ошибку.

Трейд-офф 2: гранулярность vs. sample size Geo-тест на уровне города даёт меньше sample size и уже доверительный интервал. На уровне округа — больше гетерогенности. Недельный MMM не отвечает на ежедневные вопросы. У каждого метода есть разрешающая способность.

Как строится attribution stack в 2026?

Технический setup состоит из:

  1. Server-side GTM + first-party cookies: чистые сигналы в GA4 и Meta CAPI (не iOS ATT обход, а consent-based обогащение данных)
  2. BigQuery data warehouse: все платформенные данные в одном месте (GA4, Meta Ads API, Google Ads API, TikTok Ads API, CRM)
  3. dbt трансформация: недельные агрегированные таблицы (строка = 1 неделя, колонка = затраты канала + 1 outcome)
  4. Robyn pipeline: R скрипт на Cloud Run раз в неделю, output в BigQuery
  5. Looker Studio дашборд: output Robyn + платформенные MTA цифры + результаты incrementality рядом
  6. Slack alerts: если NRMSE модели > 10%, alert об аномалии в данных

Setup разворачивается за 4-6 недель. Потом еженедельное обслуживание 2-3 часа. ROI: распределение бюджета становится на 15-25% эффективнее (