Модель атрибуции — это правило, по которому одна сделка делится между несколькими рекламными касаниями. Правило всегда есть, даже если его никто не выбирал: почти во всех системах по умолчанию стоит атрибуция по последнему клику, и именно она обычно и решает споры о бюджете на планёрке. Проблема в том, что последний клик — не нейтральный вариант, а вполне определённая позиция: он записывает всю сделку каналу, который стоял в конце пути, и потому структурно хвалит контекстную рекламу и обесценивает всё, что работает в начале.
Ниже — один набор данных, посчитанный четырьмя моделями. Числа подобраны так, чтобы читатель мог пересчитать всё на калькуляторе: 100 сделок, семь типов пути, валовая прибыль 12 000 ₽ со сделки. Результат — три канала из четырёх меняют знак, а сумма по каждой модели остаётся одной и той же.
Дальше — каналы, которых в модели нет вообще, что нужно склеить технически, как проверить модель экспериментом и почему при небольшом объёме заявок любая модель даёт шум вместо сигнала.
Четыре правила деления одной сделки
Все модели отвечают на один вопрос — какую долю сделки записать каждому касанию — и различаются только весами.
| Модель | Как делит | Что показывает честно | Где систематически врёт |
|---|---|---|---|
| Первый клик | 100 % первому касанию | Какой канал приводит новых людей | Обесценивает всё, что доводит до покупки; хвалит охватные каналы |
| Последний клик | 100 % последнему касанию | Какой канал ловит уже готового покупателя | Хвалит самый дорогой канал в конце пути; каналы знакомства в ней всегда убыточны |
| Линейная | Поровну между всеми касаниями | Что вообще участвовало в пути | Уравнивает случайный переход и решающее касание |
| С учётом позиции, 40/20/40 | По 40 % краям, 20 % делится между серединой | Компромисс: и знакомство, и закрытие | Веса взяты из соглашения, а не из данных; середина пути занижена |
Срок, в течение которого касание считается участвовавшим в сделке. Если окно 30 дней, а ваш цикл сделки 50, половина первых касаний просто не попадёт в расчёт — и любая модель покажет, что новых клиентов приводит контекст. Окно ставится по своему циклу сделки, а не по значению по умолчанию.
Схема: вверху горизонтальный путь из трёх кружков — «Соцсети», «Поиск», «Контекст» — со стрелкой к иконке сделки и подписью «12 000 ₽ валовой прибыли». Ниже четыре строки, каждая повторяет тот же путь и подписывает доли под кружками: «Первый клик» 100 % ⁄ 0 ⁄ 0; «Последний клик» 0 ⁄ 0 ⁄ 100 %; «Линейная» 33 % ⁄ 33 % ⁄ 33 %; «С учётом позиции» 40 % ⁄ 20 % ⁄ 40 %. Справа от каждой строки сумма в рублях: 12 000 ⁄ 0 ⁄ 0; 0 ⁄ 0 ⁄ 12 000; 4 000 ⁄ 4 000 ⁄ 4 000; 4 800 ⁄ 2 400 ⁄ 4 800. Чертёжный стиль, подписи по-русски.
Один набор данных, четыре ответа
Вводные: квартал, 100 сделок, валовая прибыль 12 000 ₽ со сделки — всего 1 200 000 ₽. Четыре канала с расходом 960 000 ₽ за квартал. То есть компания в целом в плюсе на 240 000 ₽, и вопрос стоит только о том, какой канал резать, а какой наращивать. Пути клиентов распределились так:
| Путь клиента | Сделок |
|---|---|
| Соцсети → Поиск → Контекст | 25 |
| Поиск → Контекст | 20 |
| Контекст | 15 |
| Соцсети → Почтовая рассылка → Контекст | 15 |
| Поиск | 10 |
| Почтовая рассылка → Поиск → Контекст | 10 |
| Соцсети | 5 |
Расход за квартал: соцсети — 240 000 ₽, поиск — 100 000 ₽, контекст — 560 000 ₽, рассылка — 60 000 ₽. Теперь применяем к одним и тем же путям четыре правила деления и вычитаем расход. В ячейках — приписанные сделки и итог по каналу.
| Канал | Расход | Первый клик | Последний клик | Линейная | 40/20/40 |
|---|---|---|---|---|---|
| Соцсети | 240 000 ₽ | 45 сделок, +300 000 ₽ | 5 сделок, −180 000 ₽ | 18,3 сделки, −20 000 ₽ | 21 сделка, +12 000 ₽ |
| Поиск | 100 000 ₽ | 30 сделок, +260 000 ₽ | 10 сделок, +20 000 ₽ | 31,7 сделки, +280 000 ₽ | 27 сделок, +224 000 ₽ |
| Контекст | 560 000 ₽ | 15 сделок, −380 000 ₽ | 85 сделок, +460 000 ₽ | 41,7 сделки, −60 000 ₽ | 45 сделок, −20 000 ₽ |
| Рассылка | 60 000 ₽ | 10 сделок, +60 000 ₽ | 0 сделок, −60 000 ₽ | 8,3 сделки, +40 000 ₽ | 7 сделок, +24 000 ₽ |
| Итого | 960 000 ₽ | +240 000 ₽ | +240 000 ₽ | +240 000 ₽ | +240 000 ₽ |
Сумма по всем четырём моделям одинакова: +240 000 ₽. Модель не создаёт и не уничтожает прибыль — она перекладывает её между каналами. Поэтому спор «какая модель правильная» неразрешим в принципе: правильного деления не существует, существует деление, полезное для конкретного решения.
Три канала из четырёх меняют знак. Соцсети: +300 000 ₽ по первому клику и −180 000 ₽ по последнему — при том, что это буквально одни и те же сделки и один и тот же расход. Контекст: −380 000 ₽ и +460 000 ₽. Рассылка выглядит убыточной ровно в одной модели — последнего клика, — и это не свойство рассылки, а свойство модели: письмо почти никогда не бывает последним касанием, потому что человек после письма ещё раз ищет вас в поиске.
Обратите внимание, какой канал выигрывает в модели по умолчанию. Контекст — самая дорогая строка расхода, 560 000 ₽ из 960 000 ₽, — прибылен только в атрибуции по последнему клику и убыточен в трёх остальных. Если решение о бюджете принимается по отчёту, который никто не настраивал, деньги пойдут именно туда.
Сгруппированная столбчатая диаграмма с выраженной нулевой линией. По оси X — четыре канала: Соцсети, Поиск, Контекст, Рассылка. В каждой группе четыре столбца по моделям. Значения в тысячах рублей: Соцсети +300, −180, −20, +12; Поиск +260, +20, +280, +224; Контекст −380, +460, −60, −20; Рассылка +60, −60, +40, +24. Столбцы ниже нуля заштрихованы. Внизу подпись: «сумма по каждой модели одна и та же — +240 000 ₽». Легенда: первый клик, последний клик, линейная, 40/20/40. Чертёжный стиль, подписи по-русски.
Каналы, которых в модели нет вообще
Всё посчитанное выше относится только к тем касаниям, которые вообще попали в систему. За её пределами остаются рекомендации знакомых, переходы из мессенджеров без меток, вывеска, выставка, упоминание в чужом чате и звонок по визитке. Ни одна модель их не увидит, и результат предсказуем: их вклад молча распределяется между теми каналами, которые размечены. Чаще всего — в пользу контекста, потому что человек, услышавший о вас от друга, всё равно приходит через поиск по названию.
Отсюда единственное лекарство — прямой вопрос клиенту. Поле «как вы о нас узнали» неточно и раздражает аналитиков, но заменить его нечем.
- Закрытый список из 6–8 вариантов плюс «другое». Свободный текст не сводится в статистику: тридцать формулировок про одно и то же придётся разбирать руками каждый месяц.
- Заполняет менеджер со слов клиента на первом разговоре, а не клиент в форме на сайте. В форме поле снижает конверсию и заполняется случайно; в разговоре ответ звучит естественно и записывается точнее.
- Обязательное поле в карточке сделки. Не в анкете, не в опросе после покупки — иначе заполняемость падает до 20 %. Реалистичный ориентир при обязательном поле — 60–80 % сделок с ответом.
- Сверка с моделью раз в квартал. Если 30 % клиентов говорят «посоветовали», а в вашей атрибуции рекомендаций нет вообще, значит, модель ошибается примерно на треть — и эту треть она сейчас записывает платным каналам.
Модель машинного обучения, которая «сама определяет вклад канала», обучается на тех же неполных данных. Каналы с хорошей разметкой — платная реклама — она видит целиком, а рекомендации и офлайн не видит вовсе, поэтому уверенно приписывает их вклад платному трафику. Внешне это выглядит как объективный расчёт без человеческих допущений, и в этом главная опасность: у линейной модели допущение хотя бы написано на упаковке.
Что нужно склеить технически
Модель считается по цепочке идентификаторов, и надёжность у них разная. Полная сборка цепочки разобрана отдельно — в статьях про сквозную аналитику и CRM и про то, как собрать сквозную аналитику продаж; здесь — только то, что влияет на выбор модели.
| Идентификатор | Что связывает | Надёжность | Где рвётся |
|---|---|---|---|
| Метки кампании в первом визите | Визит и канал | Высокая, если метка сохраняется в карточку сразу | Переходы через сокращатели ссылок и часть переходов из мессенджеров метку теряют |
| Идентификатор посетителя в браузере | Визиты одного человека между собой | Средняя: живёт до смены браузера или устройства | Смотрел с телефона, купил с рабочего компьютера — это два разных человека для системы |
| Телефон или почта из формы | Визит и сделку в CRM | Высокая при нормализации номера | Клиент оставляет другой номер; дубли в CRM разрывают связь |
| Подменный номер | Звонок и визит | Высокая по сессии при достаточном пуле номеров | Пул кончился — звонки склеиваются с чужими сессиями |
| Промокод или отдельная ссылка | Офлайн-носитель и сделку | Грубая, но не требует техники | Часть клиентов промокод не называет; вклад занижается |
| Ответ «как вы о нас узнали» | Всё, что не размечается | Низкая по точности, незаменимая по охвату | Не спросили, спросили не так, клиент не помнит |
Карта связей: слева три источника — «Реклама с метками», «Звонок», «Офлайн-носитель». В центре узлы «Идентификатор посетителя», «Подменный номер», «Промокод», сходящиеся в узел «Карточка сделки в CRM». Справа — «Отчёт по моделям». На каждой связи подпись надёжности: высокая, средняя, грубая. Отдельной пунктирной стрелкой снизу в карточку сделки входит «Ответ клиента: как узнали» с пометкой «60–80 % сделок». Чертёжный стиль, подписи по-русски.
Проверка экспериментом: отключить канал
Спор между моделями решается не третьей моделью, а экспериментом: канал выключается целиком, и смотрится, что происходит с потоком сделок. Способ честный, но у него есть арифметическое требование, о котором обычно забывают.
Число сделок за период колеблется само по себе, и размах случайных колебаний примерно равен 2√N, где N — среднее число сделок за этот период. Эксперимент даёт сигнал только тогда, когда ожидаемое падение больше этого размаха.
К длительности добавляются два условия. Лаг цикла сделки: если у вас между первым касанием и оплатой проходит 30–45 дней, окно наблюдения сдвигается на эту же величину — эффект отключения увидят не в те недели, когда канал был выключен. Контроль сезона: падение может совпасть с общим спадом рынка. Дешёвый способ отделить одно от другого — отключать канал не по всей стране, а в половине регионов и сравнивать с другой половиной за тот же период. Та же арифметика стоит за контрольными группами в рассылках — мы разбирали её в статье про персонализацию сайта и рассылок.
Правило порогов вместо точных цифр
Из всего сказанного следует практический вывод: решение о бюджете принимается не по числу, а по устойчивости знака между моделями. Точный CPA канала — величина, которой не существует; устойчивость знака — то, что можно проверить. Отдельно от этого стоит вопрос качества заявок: канал может давать много дешёвых обращений и мало сделок, и ловится это скорингом лидов, а не выбором модели атрибуции.
- 1Плюс во всех четырёх моделях — наращивать
В нашем наборе это поиск: от +20 000 ₽ до +280 000 ₽, ни разу не в минусе. Такой канал наращивают шагом не больше 20–30 % за раз, иначе следующий отчёт не позволит отличить эффект решения от эффекта сезона.
- 2Минус в трёх моделях из четырёх — бюджет заморозить
Контекст: −380 000, −60 000 и −20 000 против единственного плюса в модели по умолчанию. Не резать сразу — за ним стоят реальные 85 закрытых сделок, — но и не увеличивать до эксперимента.
- 3Знак меняется — назначить эксперимент
Соцсети: от +300 000 ₽ до −180 000 ₽. Никакое решение по такому каналу не обосновано данными, любой спор о нём будет спором о модели. Единственный корректный ход — отключение на срок, рассчитанный по правилу 2√N.
- 4Минус только в последнем клике — не резать
Рассылка. Канал, который по своей природе не бывает последним касанием, в этой модели всегда убыточен. Резать его по такому отчёту — это резать по свойству отчёта, а не по свойству канала.
Сравнение в четыре строки, две колонки. Слева «Что видно в отчёте», справа «Решение». Строки: «Плюс во всех четырёх моделях (поиск: от +20 000 до +280 000 ₽)» — «наращивать шагом не больше 20–30 %»; «Минус в трёх из четырёх (контекст: −380 000, −60 000, −20 000)» — «бюджет заморозить, назначить эксперимент»; «Знак меняется (соцсети: +300 000 и −180 000)» — «не трогать бюджет до эксперимента»; «Минус только в последнем клике (рассылка)» — «не резать, это свойство модели». Чертёжный стиль, подписи по-русски.
Когда любая модель даёт шум
Есть объёмы, при которых вся эта работа не имеет смысла, и это надо признавать до, а не после сборки отчётов.
- Меньше 100 заявок в месяц. При четырёх каналах на канал приходится около 25 заявок, а случайный разброс составляет 2√25 = 10, то есть ±40 %. Отличить канал с вкладом 20 % от канала с вкладом 28 % в таких условиях нельзя ни одной моделью — и никакой BI-дашборд этого не изменит.
- Цикл сделки длиннее квартала. Первое касание и оплата попадают в разные отчётные периоды, окно атрибуции приходится ставить в 4–6 месяцев, и к моменту, когда данные накопились, кампании уже другие. Здесь честнее считать не атрибуцию, а стоимость квалифицированного контакта.
- Один канал даёт больше 80 % заявок. Делить нечего: модель покажет то, что и так известно. Полезнее не отчёт, а второй канал, чтобы было с чем сравнивать.
- Меньше половины сделок склеиваются с визитами. Если телефонов нет в CRM, коллтрекинга нет, метки не сохраняются, то отчёт строится по меньшинству сделок и переносит его свойства на всех. Сначала чинится склейка, потом обсуждаются модели.
И главное, что стоит сказать прямо. Атрибуция не отвечает на вопрос «какой канал приносит продажи» — она отвечает на вопрос «как мы договорились делить продажи между каналами». Полезной она становится в одном режиме: когда отчёт показывает итог сразу в нескольких моделях, а решения принимаются только там, где знак не меняется. Всё остальное проверяется экспериментом или не проверяется вообще — и во втором случае честнее сказать «мы не знаем», чем показать руководителю одну цифру с точностью до рубля.
