Действуй как marketing analytics lead. Спроектируй модель атрибуции для: {{business_model}}. Sales cycle: {{sales_cycle}}. Каналы: {{channels}}.
Шаг 1. Зачем атрибуция
Цель — отвечать на вопрос "если я уберу/добавлю канал X, что изменится?". Атрибуция — приближение incrementality, не истина. Сразу зафиксируй: атрибуция — это аллокация кредита, не причинно-следственная связь.
Шаг 2. Выбор модели
| Модель | Когда выбирать | Ограничения |
|---|---|---|
| First-touch | Brand awareness, top-of-funnel KPI | Игнорирует роль каналов в середине воронки |
| Last-touch | Performance ads, короткий cycle (< 7 дней) | Переоценивает retargeting, обесценивает discovery |
| Linear | Длинный cycle (B2B), все касания "равны" | Не отражает реальный вес касаний |
| Time-decay | Длинный cycle, недавние касания важнее | Параметр полураспада подбирается интуитивно |
| Position-based (40/20/40) | Хочется первый/последний акцент + середина | Магические числа 40/20/40 — без обоснования |
| Data-driven (Markov / Shapley) | Объёмные данные (≥10k конверсий/месяц), много каналов | Чёрный ящик, требует ML-команды, неинтерпретируемый |
Стартовый выбор:
- B2C короткий cycle → last-touch + параллельно first-touch для сравнения
- B2B длинный cycle → time-decay (halflife = 7 дней)
- Зрелая программа с большими объёмами → Markov chain или Shapley
Шаг 3. Multi-touch vs single-touch
Single-touch (first или last) — отдаёт 100% одному каналу. Просто, но искажает. Multi-touch — распределяет вес. Точнее, но требует tracking всех касаний.
Решение: если у тебя есть user-level event log с каналом-источником на каждом visit — иди в multi-touch. Если только last-click на конверсии — single-touch неизбежен.
Шаг 4. Online vs offline conversions
Online (форма, покупка) — атрибуция тривиальна. Offline (звонок, demo, sale в CRM) — нужна сшивка:
- Form fill → CRM contact ID
- CRM contact ID → опportunity → closed-won
- Каналы касаний из MAP (Marketo, HubSpot) джойнятся по contact_id
- Окно атрибуции: 30-90 дней (≤ sales_cycle × 1.5)
Шаг 5. Окно атрибуции
- B2C перформанс: 1-7 дней
- B2C consideration: 7-30 дней
- B2B: 30-180 дней (зависит от sales cycle)
- View-through (показ без клика): обычно 1 день; не более 7
Шаг 6. Как мерить эффект изменений
Атрибуция не равно incrementality. Чтобы проверить, что модель не врёт:
- Geo-split тест: выключи канал в нескольких регионах, сравни конверсию vs контрольные регионы
- Holdout group: 5-10% аудитории не показываем рекламу, сравниваем конверсию
- MMM (Marketing Mix Modeling) в дополнение: регрессия конверсий на spend по каналам, учитывает offline + brand
- Регулярная сверка: квартальный incrementality test, корректируем веса в attribution
Шаг 7. Что выдавать
## Attribution model spec
- Тип: time-decay, halflife=7d
- Окно: 60 дней
- События: ad_click, organic_visit, email_click, demo_request, signup, paid_conversion
- Сегментация: канал × кампания × креатив
- Sources of truth: GA4 (online), HubSpot (CRM), spend из ads platforms
## Daily report
| Канал | Spend | Кредитные конверсии | CAC | Δ vs LW |
## Quarterly review
- MMM update
- Geo-test results
- Веса модели pересчитать?
Анти-паттерны
- ❌ Data-driven с 200 конверсий/месяц — sample size слишком мал, шум
- ❌ Last-touch для B2B с 90-дневным cycle — обесценишь весь top-of-funnel
- ❌ Окно атрибуции 365 дней — все купят через 3 месяца "благодаря" одному impression полугодовой давности
- ❌ Сравнивать CAC между моделями без incrementality теста — каждая модель даст свою цифру, обе могут врать
- ❌ Атрибуция без offline-сшивки в B2B — теряешь 60% воронки
- ❌ "Канал X даёт 30% конверсий по нашей атрибуции" без holdout — может это organic был бы и так
Аудит воронки конверсии
Где сливаются пользователи: каждый шаг воронки, причины отвала, гипотезы для тестов.
Таксономия событий
Названия событий и параметров так, чтобы аналитик через год не плакал.
Измерение воронок: настройка
Какие воронки строить, как считать, на каких сегментах смотреть.