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,5 года недельных данных. Каждая строка — одна неделя. Колонки: затраты по каналам, impressions или clicks, независимые переменные (цена, стоки, сезонность), зависимая переменная (revenue, orders, conversions). Пропуски — модель не сработает.
- Hyperparameter tuning: Robyn ищет для каждого канала adstock decay (α) и saturation shape (γ). Прогоняет 2000+ комбинаций моделей, предлагает лучшие 5-10 с Pareto frontier. Занимает 10-30 минут (на 64 cores).
- Выбор модели: берёшь модель с минимальным NRMSE (Normalized Root Mean Squared Error) и максимальной decomp.rssd (стабильность разложения). Output: вклад каждого канала в % от всех продаж, ROI по каналам, оптимальное распределение бюджета.
- Распределение бюджета: функция 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 bidding | Platform API (ROAS feedback) | ежедневно | Оптимизация на уровне тактики |
Практический процесс:
- Еженедельно: контролируешь платформенные дашборды (MTA-подобное, но не доверяй)
- Ежемесячно: запускаешь Meta Lift на крупных кампаниях
- По кварталам: Robyn пересчитывает весь долгосрочный вклад, перераспределяешь бюджет
- Дважды в год: 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 состоит из:
- Server-side GTM + first-party cookies: чистые сигналы в GA4 и Meta CAPI (не iOS ATT обход, а consent-based обогащение данных)
- BigQuery data warehouse: все платформенные данные в одном месте (GA4, Meta Ads API, Google Ads API, TikTok Ads API, CRM)
- dbt трансформация: недельные агрегированные таблицы (строка = 1 неделя, колонка = затраты канала + 1 outcome)
- Robyn pipeline: R скрипт на Cloud Run раз в неделю, output в BigQuery
- Looker Studio дашборд: output Robyn + платформенные MTA цифры + результаты incrementality рядом
- Slack alerts: если NRMSE модели > 10%, alert об аномалии в данных
Setup разворачивается за 4-6 недель. Потом еженедельное обслуживание 2-3 часа. ROI: распределение бюджета становится на 15-25% эффективнее (