Перейти к содержимому

Атрибуция лидов

Аналитический дашборд для маркетингового аналитика, руководителя маркетинга и отдела продаж. Он связывает лиды и сделки из CRM с касаниями, которые к ним привели: рекламой, поиском, рассылками, партнёрами. Главный вопрос — какой вклад внёс каждый канал в лиды и выручку от сделок по одной согласованной модели.

Без такого сервиса каждая система считает по-своему: рекламный кабинет приписывает сделку себе, веб-аналитика — поиску, CRM показывает источник, который менеджер выбрал вручную. Цифры не сходятся, бюджет делят по тому, чей отчёт убедительнее, а команды роста и контента дублируют работу, не видя общей картины.

Такой дашборд оправдан, когда лиды приходят сразу из нескольких платных и бесплатных каналов, а решения о бюджете требуют объяснимых цифр. Он не спорит с рекламными кабинетами, а даёт одну согласованную версию, на которую ссылаются все участники.

  • Связывает лид с касаниями. Каждый лид из CRM сопоставляется с визитами и кликами по общему идентификатору или UTM-меткам, история касаний видна в карточке.
  • Применяет одну модель атрибуции. Первое касание, последнее касание или линейное распределение выбирают один раз и применяют при загрузке, а не в каждом отчёте.
  • Показывает вклад каналов. Лиды, квалифицированные лиды, сделки и сумма сделок по каналам и кампаниям, со стоимостью лида, где есть данные о расходах.
  • Выносит проблемы разметки. Лиды без меток или с некорректными метками попадают в отдельное представление для разбора.
  • Даёт каналам общую таблицу. Владельцы видят, кто отвечает за кампанию и какой у неё результат, без пересылки выгрузок.
  • Модель выбирают до разработки. Спор о модели атрибуции решают с руководителем маркетинга и продажами заранее. Смена модели пересчитывает историю и отмечается датой, иначе сравнение периодов теряет смысл.
  • Без общего ключа атрибуции нет. Лид из формы должен нести идентификатор визита или UTM-метки до CRM. Если форма их теряет, первым делом чинят передачу данных, а не дашборд.
  • Неразмеченные лиды видны отдельно. Их не распределяют по каналам «по догадке». Доля таких лидов — сама по себе показатель качества разметки.
  • Хранилище данных не обязательно. Первую версию собирают на базе приложения и выгрузках CRM и рекламных кабинетов; если у компании есть хранилище вроде BigQuery, к нему подключаются только для чтения.
  • Персональные данные — минимально. Для атрибуции достаточно идентификаторов лида и визита; контакты и переписку из CRM сюда не копируют.
  • Доступ ограничивают на сервере. Владелец канала видит свои кампании, руководитель — всю таблицу с итогами по каналам. Правило одинаково действует в таблицах, виджетах и выгрузках.
  • Когда хватит готового продукта. Если все лиды приходят через одну рекламную систему и CRM с встроенной сквозной аналитикой, её отчётов может быть достаточно.

Промпты рассчитаны на AI-агента (Claude Code, Cursor и аналоги) в Laravel-проекте с установленным Filament 4.x. Отправляйте их по одному: каждый шаг даёт результат, который можно проверить до перехода к следующему.

Создай модели и миграции для атрибуции лидов: Lead (внешний id из CRM,
дата, статус квалификации, сумма сделки, дата сделки), Touchpoint (лид,
дата, канал, source, medium, campaign, тип касания), AttributionResult
(лид, канал, кампания, доля вклада, модель, время расчёта), Campaign
(код, канал, владелец). Контакты лида не храни. Добавь фабрики
с демо-данными.
Сделай фоновые задачи по расписанию: загрузка лидов и сделок из CRM
и касаний из веб-аналитики через API или CSV, сопоставление по общему
идентификатору визита или UTM-меткам. Лиды без касаний помечай
«Не размечен». Повторная загрузка не должна создавать дубли.
Добавь сервис расчёта атрибуции с моделями «первое касание», «последнее
касание» и «линейная». Активная модель задаётся в конфиге, результат
пишется в AttributionResult с названием модели. Смена модели запускает
пересчёт истории в фоне.

Проверьте на нескольких лидах вручную, что доли вклада в сумме дают единицу.

Сгенерируй Filament-ресурсы для Campaign и Lead. В таблице кампаний
покажи лиды, квалифицированные лиды, сделки и сумму сделок по активной
модели, фильтры по каналу, владельцу и периоду. В карточке лида выведи
историю касаний. Добавь вкладку «Не размечены».

Проверьте, что лиды без касаний видны во вкладке «Не размечены» и не распределены по каналам.

Настрой доступ: владелец канала видит свои кампании, руководитель — всё
и может выгружать данные. Примени ограничение к таблицам, виджетам
и экспорту. Добавь виджеты вклада каналов и доли неразмеченных лидов
по неделям.