Коротко:
- Last click - самая распространённая настройка по умолчанию, но она систематически занижает роль верхней части воронки.
- Линейная и time decay дают более честную картину, но требуют понимания цикла сделки.
- Data-driven работает только при достаточном объёме данных - обычно от нескольких тысяч конверсий в месяц.
- Выбор схемы зависит от бизнес-вопроса: оптимизация бюджета, оценка канала или защита инвестиций в брендинг.
- SQL позволяет считать любую схему вручную - это даёт гибкость, которой нет в стандартных инструментах.
Почему это вообще проблема
Пользователь видит баннер в соцсети, через три дня читает обзор в блоге, потом кликает по контекстной рекламе и покупает. Какой канал сработал? Если в системе стоит last click, весь кредит уходит контексту. Баннер и блог получают ноль, хотя именно они сформировали намерение.
Маркетинг смотрит на отчёт и режет бюджет на медийку - «она не конвертит». Через квартал органический трафик падает, потому что исчез верхний слой воронки. Причину никто не связывает с решением о бюджете.
Это классическая ловушка атрибуции маркетинга в аналитике: инструмент даёт цифры, цифры выглядят убедительно, но за ними стоит упрощение, которое искажает реальность. Задача аналитика - понять, где именно это упрощение и насколько оно критично для конкретного решения.
Как устроен путь пользователя и что мы пытаемся измерить
Перед тем как сравнивать схемы распределения ценности, стоит договориться о терминах. Касание (touchpoint) - это любое взаимодействие пользователя с брендом до конверсии: клик по объявлению, визит из органики, переход по email, прямой заход. Конверсия - целевое действие: покупка, регистрация, заявка.
Путь пользователя - это упорядоченная последовательность касаний от первого контакта до конверсии. В базах данных он обычно выглядит как таблица событий с user_id, timestamp и source/medium.
Атрибуция - это правило, по которому ценность конверсии распределяется между касаниями. Разные правила дают разные ответы на вопрос «какой канал работает».
Обзор основных схем: что считает каждая
Рассмотрим пять подходов, которые встречаются чаще всего. Для наглядности возьмём один путь: Organic Search -> Email -> CPC -> Direct -> конверсия на 1000 рублей.
| Схема | Organic | CPC | Direct | Логика | |
|---|---|---|---|---|---|
| Last click | 0 | 0 | 0 | 1000 | Всё - последнему касанию |
| First click | 1000 | 0 | 0 | 0 | Всё - первому касанию |
| Linear | 250 | 250 | 250 | 250 | Поровну между всеми |
| Time decay | ~67 | ~133 | ~267 | ~533 | Больше - ближе к конверсии |
| Position-based | 400 | 100 | 100 | 400 | 40% первому, 40% последнему, остаток - средним |
Уже из этой таблицы видно: один и тот же путь даёт пять разных ответов. Ни один из них не «правильный» в абсолютном смысле - каждый отвечает на свой вопрос.
Last click: когда работает и когда врёт
Last click атрибуция - это настройка по умолчанию в большинстве рекламных кабинетов и аналитических платформ. Она проста в реализации и понятна без объяснений.
Подход оправдан в нескольких сценариях. Если цикл сделки короткий (один-два визита), путь пользователя почти не разветвляется и последнее касание действительно несёт основную нагрузку. Также last click удобен для оценки нижней части воронки: ретаргетинг, брошенные корзины, акционные рассылки - здесь важно именно финальное действие.
Но схема системно врёт в трёх ситуациях:
- Длинный цикл принятия решения (B2B, дорогие товары, подписки). Пользователь изучает продукт неделями, и последний клик - просто удобный момент, а не причина покупки.
- Брендовый контекст. Человек уже решил купить и просто набрал название в поиске. Контекст получает конверсию, хотя не сделал ничего, кроме как «поймал» готового покупателя.
- Ассистирующие каналы. Медийная реклама, SEO, контент - они формируют спрос, но редко бывают последним касанием. При last click их вклад исчезает из отчётов.
First click и position-based: где они полезны
First click - зеркальная крайность. Весь кредит уходит первому касанию. Это полезно, когда нужно понять, какие каналы лучше всего привлекают новых пользователей на верхний уровень воронки. Например, при оценке охватных кампаний или анализе источников первого знакомства с брендом.
Position-based (U-shaped) - компромисс: 40% первому касанию, 40% последнему, оставшиеся 20% делятся поровну между промежуточными. Логика такая: первое касание важно, потому что привело пользователя, последнее - потому что закрыло сделку. Средние шаги помогали, но не были ключевыми.
Эта схема хорошо подходит для компаний, у которых есть чёткий верх воронки (awareness) и чёткий низ (conversion), а середина - это просто «прогрев». Типичный пример: контентный маркетинг плюс ретаргетинг.
Linear и time decay: честность против простоты
Линейная схема распределяет ценность поровну между всеми касаниями. Она не делает предположений о том, какое взаимодействие важнее. Это хороший выбор, когда нет данных для обоснования другого распределения, или когда нужно показать «минимально предвзятую» картину.
Минус - она может занижать реально важные касания и завышать случайные. Если пользователь случайно зашёл на сайт из органики три раза подряд, каждый визит получит долю конверсии, хотя это просто поведенческий шум.
Time decay даёт больший вес касаниям, которые произошли ближе к конверсии. Обычно используется экспоненциальное затухание с периодом полураспада 7 дней: касание за 7 дней до конверсии получает вдвое меньше, чем касание в день конверсии.
Этот подход хорошо работает для продуктов с коротким циклом принятия решения, где последние взаимодействия действительно важнее. Но в B2B с трёхмесячным циклом он снова приведёт к недооценке верхней части воронки.
Data-driven атрибуция: что это и когда она реально работает
Data-driven атрибуция - это машинное обучение, которое оценивает вклад каждого касания на основе реальных данных о путях пользователей. Вместо фиксированных правил алгоритм сравнивает пути, которые привели к конверсии, с путями, которые не привели, и вычисляет инкрементальный вклад каждого канала.
В Google Analytics 4 data-driven доступна как отдельная схема в отчётах по атрибуции. Google использует алгоритм на основе теории игр (Shapley values) - тот же математический аппарат, что и в классической задаче справедливого распределения выигрыша между игроками коалиции.
Звучит мощно, но есть важное ограничение: алгоритму нужны данные. Google рекомендует минимум 400 конверсий и 4000 кликов за 30 дней для надёжной работы модели. У небольших проектов этого объёма нет, и тогда data-driven либо недоступна, либо даёт нестабильные результаты.
Ещё один нюанс: data-driven - это «чёрный ящик». Вы видите результат, но не можете объяснить, почему конкретному каналу присвоен именно такой вес. Для внутренней аналитики это нормально, но при защите бюджета перед маркетингом или финансами нужна интерпретируемость.
Мультиканальная атрибуция в Google Analytics 4
В GA4 отчёты по атрибуции находятся в разделе Advertising -> Attribution. Там можно сравнить несколько схем одновременно и посмотреть, как меняется ценность каналов при переключении между ними.
Несколько практических моментов, которые часто упускают:
- GA4 по умолчанию использует data-driven для конверсий в рекламных отчётах, но last click - для стандартных отчётов по конверсиям. Это создаёт расхождение между разделами.
- Окно атрибуции (attribution window) влияет на результат не меньше, чем сама схема. Окно 30 дней и окно 7 дней дадут разные цифры для одного и того же канала.
- Cross-device атрибуция работает только для залогиненных пользователей. Если ваша аудитория редко авторизуется, значительная часть путей будет обрезана.
Вакансии для аналитиков
Для мультиканальной атрибуции в GA4 стоит смотреть не только на итоговые цифры по каналам, но и на отчёт «Assisted conversions» - он показывает, сколько раз канал участвовал в пути, не будучи последним касанием.
Как считать атрибуцию в SQL: практические примеры
Когда стандартных инструментов недостаточно или нужна кастомная логика, атрибуцию считают напрямую в базе данных. Покажем три варианта.
Предположим, есть таблица touchpoints с полями: user_id, session_id, channel, event_time, is_conversion, revenue.
Last click в SQL
Идея: для каждой конверсии найти последнее касание перед ней и приписать ему всю ценность.
WITH conversions AS (
SELECT user_id, event_time AS conv_time, revenue
FROM touchpoints
WHERE is_conversion = 1
),
last_touch AS (
SELECT
t.user_id,
t.channel,
c.revenue,
ROW_NUMBER() OVER (
PARTITION BY t.user_id, c.conv_time
ORDER BY t.event_time DESC
) AS rn
FROM touchpoints t
JOIN conversions c
ON t.user_id = c.user_id
AND t.event_time <= c.conv_time
AND t.is_conversion = 0
)
SELECT channel, SUM(revenue) AS attributed_revenue
FROM last_touch
WHERE rn = 1
GROUP BY channel
ORDER BY attributed_revenue DESC;
Линейная схема в SQL
Для каждой конверсии считаем количество касаний и делим ценность поровну.
WITH conversions AS (
SELECT user_id, event_time AS conv_time, revenue
FROM touchpoints
WHERE is_conversion = 1
),
path_touches AS (
SELECT
t.user_id,
t.channel,
c.revenue,
c.conv_time,
COUNT(*) OVER (
PARTITION BY t.user_id, c.conv_time
) AS total_touches
FROM touchpoints t
JOIN conversions c
ON t.user_id = c.user_id
AND t.event_time <= c.conv_time
AND t.is_conversion = 0
)
SELECT
channel,
SUM(revenue / total_touches) AS attributed_revenue
FROM path_touches
GROUP BY channel
ORDER BY attributed_revenue DESC;
Time decay в SQL
Вес каждого касания пропорционален экспоненте от разницы во времени до конверсии. Период полураспада - 7 дней.
WITH conversions AS (
SELECT user_id, event_time AS conv_time, revenue
FROM touchpoints
WHERE is_conversion = 1
),
decay_weights AS (
SELECT
t.user_id,
t.channel,
c.revenue,
c.conv_time,
EXP(
-LN(2) * EXTRACT(EPOCH FROM (c.conv_time - t.event_time)) / (7 * 86400)
) AS weight
FROM touchpoints t
JOIN conversions c
ON t.user_id = c.user_id
AND t.event_time <= c.conv_time
AND t.is_conversion = 0
),
normalized AS (
SELECT
user_id,
channel,
revenue,
conv_time,
weight,
SUM(weight) OVER (PARTITION BY user_id, conv_time) AS total_weight
FROM decay_weights
)
SELECT
channel,
SUM(revenue * weight / total_weight) AS attributed_revenue
FROM normalized
GROUP BY channel
ORDER BY attributed_revenue DESC;
Эти сниппеты написаны для PostgreSQL. В BigQuery синтаксис немного отличается: вместо EXTRACT(EPOCH FROM ...) используйте TIMESTAMP_DIFF(conv_time, event_time, SECOND). В ClickHouse - dateDiff('second', event_time, conv_time).
Как выбрать схему под конкретный бизнес-вопрос
Нет универсального ответа. Выбор зависит от того, что именно нужно измерить.
| Бизнес-вопрос | Подходящая схема | Почему |
|---|---|---|
| Какой канал лучше привлекает новых пользователей? | First click | Фокус на точке входа |
| Какой канал закрывает сделки? | Last click | Фокус на финальном шаге |
| Как оптимизировать бюджет между каналами? | Data-driven или position-based | Нужна оценка вклада всех касаний |
| Оправдывает ли себя контентный маркетинг? | Linear или position-based | Контент - ассистирующий канал |
| Насколько важны последние касания в коротком цикле? | Time decay | Вес растёт ближе к конверсии |
Хорошая практика - сравнивать несколько схем одновременно. Если канал выглядит сильным при любом распределении, это надёжный сигнал. Если результат кардинально меняется при смене правила - это повод разобраться глубже, а не просто выбрать «удобную» цифру.
Типичные ошибки при работе с атрибуцией
Несколько ситуаций, которые встречаются регулярно:
- Сравнивать каналы в разных схемах. Один отчёт считает по last click, другой - по data-driven. Цифры не сходятся, начинается спор о «правильных» данных. Нужно зафиксировать единую схему для сравнительных отчётов.
- Игнорировать окно атрибуции. Если окно 7 дней, а цикл сделки 30 дней, верхние касания просто выпадают из расчёта. Окно должно покрывать типичный путь пользователя.
- Считать direct-трафик отдельным каналом. Часть direct - это на самом деле dark social, email без UTM или переходы из мессенджеров. Приписывать им конверсии как «прямым намерениям» - ошибка.
- Применять data-driven при малом объёме. При 50-100 конверсиях в месяц алгоритм не имеет достаточно данных и выдаёт нестабильные веса. Лучше использовать простую детерминированную схему.
- Не учитывать офлайн-касания. Звонок в колл-центр, визит в шоурум, разговор с менеджером - всё это влияет на решение, но не попадает в цифровую аналитику. Итоговая картина всегда неполная.
Чеклист: как аргументировать выбор схемы перед командой
- Определите бизнес-вопрос: что именно нужно измерить - привлечение, прогрев или закрытие.
- Оцените длину цикла сделки: короткий (1-3 дня) или длинный (недели, месяцы).
- Проверьте объём данных: достаточно ли конверсий для data-driven (400+ в месяц).
- Посмотрите на типичный путь: сколько касаний в среднем, какие каналы участвуют чаще всего.
- Сравните две-три схемы на одних данных: где расхождение максимальное и почему.
- Зафиксируйте выбранную схему и окно атрибуции в документации метрик.
- Договоритесь с маркетингом, что смена схемы - это не «улучшение цифр», а смена вопроса.
- Пересматривайте схему при изменении продукта или цикла продаж - не реже раза в год.
FAQ
Чем last click атрибуция отличается от data-driven?
Last click - это детерминированное правило: вся ценность уходит последнему касанию. Data-driven использует алгоритм, который оценивает инкрементальный вклад каждого канала на основе реальных путей пользователей. Первая проста и интерпретируема, вторая точнее, но требует объёма данных и не объясняет своих решений.
Как считать атрибуцию, если нет GA4 или рекламного кабинета?
Напрямую в SQL или Python по таблице событий. Нужны user_id, timestamp события и источник. Примеры запросов для last click, linear и time decay приведены выше в статье.
Что такое assisted conversions и зачем их смотреть?
Assisted conversion - это конверсия, в пути к которой канал участвовал, но не был последним касанием. Отчёт по ассистированным конверсиям показывает реальный охват канала, а не только его «закрывающую» роль. Особенно важен для SEO, контента и медийной рекламы.
Когда стоит использовать мультиканальную атрибуцию вместо одной схемы?
Когда нужно оптимизировать бюджет между каналами, а не просто отчитаться о результатах. Мультиканальный подход - это не отдельная схема, а практика сравнения нескольких схем одновременно, чтобы понять, какие каналы работают на разных этапах пути.
Почему direct-трафик получает так много конверсий при last click?
Потому что часть пользователей, уже готовых к покупке, заходит на сайт напрямую - набирает URL или использует закладку. Это не значит, что прямой заход их убедил. Скорее всего, убедил более ранний канал, а direct просто зафиксировал финальный визит.
Как объяснить маркетингу, почему их канал «потерял» конверсии при смене схемы?
Объяснить, что схема не изменила реальность - она изменила вопрос. При last click мы спрашивали «кто закрыл сделку», при linear - «кто участвовал». Если канал потерял цифры, значит он хорошо работает на середине воронки, но редко бывает последним. Это не плохо - это просто другая роль.
Итог
Выбор схемы распределения ценности - это не технический вопрос, а аналитический. Прежде чем настраивать отчёт, нужно ответить: что именно мы измеряем и какое решение будем принимать на основе этих данных. Last click подходит для оценки нижней воронки, first click - для анализа привлечения, data-driven - для оптимизации бюджета при достаточном объёме.
Самое ценное, что может сделать аналитик, - не выбрать «правильную» схему, а показать команде, как меняется картина при разных подходах. Если канал выглядит сильным в любом варианте - это надёжный вывод. Если результат зависит от выбранного правила - это сигнал, что вопрос поставлен недостаточно точно.