Кейс: дашборды по рекламе — расход, заявки и сверка с CRM
Недельный разбор рекламы начинается с готовой витрины, а не с часов ручной сборки таблиц. Данные из рекламных систем и веб-аналитики собираются по расписанию, расход сводится с заявками из CRM, срезы строятся по регионам и кампаниям, а заметные отклонения система подписывает сама. Решения по ставкам и бюджетам принимает человек.
Задача: собрать картину рекламы в одном месте
Данные о рекламе живут в трёх разных мирах. В кабинетах — показы, клики и расход. В веб-аналитике — поведение на сайте и достижение целей. В CRM — заявки, их качество и сделки. Каждый мир считает по своим правилам, и пока их сводят руками, разбор недели превращается в несколько часов копирования между таблицами.
Хуже, что при ручной сборке ошибку почти невозможно заметить. Один срез скопировали за другой период, в другом потеряли регион, третий взяли до корректировки расхода. Решение принимается по цифре, происхождение которой уже никто не восстановит.
Мы собрали витрину как внутренний продукт: регулярная выгрузка, единое хранилище, сверка слоёв между собой и автоматические заметки о том, что заметно отклонилось. Интеграция со стороны заявок чаще всего делается через Битрикс24 или учётную систему.
Что построили
Порядок шагов важнее набора инструментов. Витрина строится последней, а не первой — до неё чинится измеримость, иначе красивый график покажет неправильную картину.
- Регулярный сбор по API. Рекламные системы и системы веб-аналитики опрашиваются по расписанию, сырые ответы сохраняются как есть — чтобы можно было пересчитать витрину, не дёргая кабинеты заново.
- Единая витрина. Все источники приводятся к общей структуре: дата, кампания, регион, расход, клики, цели, заявки. Ключом служит идентификатор объекта, а не его название.
- Сверка расхода с заявками. Расход из кабинета сопоставляется с заявками и сделками из CRM за тот же период, чтобы цена заявки считалась по одному правилу для всех каналов.
- Срезы по регионам и кампаниям. Один и тот же показатель разворачивается по географии и по кампаниям, иначе средняя цифра по стране прячет и провалы, и точки роста.
- Заметки об отклонениях. Система пишет факты с числами: расход вырос относительно сопоставимого периода, цена заявки вышла за привычный коридор, источник перестал отдавать данные.
- Отметки свежести. У каждого источника видно, когда он обновлялся в последний раз. Отсутствие данных показывается как отсутствие, а не как ноль.
Грабли, на которые наступили
Эта часть полезнее описания архитектуры. Все шесть проблем встречаются на любом проекте со сбором рекламных данных, и лечатся они не кодом, а договорённостями.
| Проблема | Как проявляется | Что делаем |
|---|---|---|
| Суммы не сходятся между срезами | Итог по кампаниям не равен итогу по дням: округления, НДС, корректировки задним числом | Фиксируем эталонный срез, остальные сверяем с ним, расхождение показываем числом |
| Квоты API | Выгрузка обрывается на середине периода или возвращает пустой отчёт | Разбиваем запросы на окна, кэшируем сырые ответы, повторяем с паузой |
| Асинхронные отчёты | Кабинет отвечает «отчёт в очереди», а не данными | Опрашиваем статус и переносим кусок на следующий цикл, не роняя весь прогон |
| Измеримость в CRM | Заявки без источника, дубли карточек, сделки без даты | Сначала чиним поля и правила заведения, выводы о конверсии делаем после |
| Переименование кампаний | Название поменяли — история распалась на две | Ключом делаем идентификатор, название храним как изменяемый атрибут |
| Часовые пояса | Кабинет и веб-аналитика режут сутки по-разному | Приводим к одному поясу на входе, дату фиксируем при записи в витрину |
Что изменилось в разборе рекламы
Главный эффект не в графиках, а в том, с чего начинается встреча. Раньше первые часы уходили на сборку и на спор о том, чьи цифры правильные. Теперь разбор начинается с готовой витрины и вопроса «почему», а не «сколько».
Второе изменение — видимость мелочей. Кампания, которая тихо перестала отдавать данные, раньше всплывала через две недели. Сейчас пропуск источника подсвечивается на следующем цикле, потому что витрина отличает ноль от отсутствия данных.
Третье — дисциплина в CRM. Как только цена заявки считается автоматически и видна всем, доля заявок без источника перестаёт быть чьей-то частной проблемой. Это, пожалуй, самый недооценённый эффект: витрина заставляет чинить учёт, а не только рекламу.
Ограничения
Витрина — инструмент подготовки решения, а не замена решению. Границы очерчиваем сразу, чтобы от неё не ждали лишнего.
- Ставки и бюджеты меняет человек. Система показывает отклонение и сопоставимый период, но сама в кабинет с правками не ходит.
- Витрина не лучше источника. Если половина заявок приходит без источника, дашборд честно покажет «источник не определён», а не додумает недостающее.
- Атрибуция остаётся моделью. Сведение расхода и заявок даёт сопоставимость между каналами, а не истину о вкладе каждого касания.
- Свежесть ограничена расписанием и квотами. Для решений внутри дня по-прежнему смотрят в сам кабинет.
- Часть срезов недоступна по API. Если показатель существует только в интерфейсе кабинета, мы говорим об этом на старте, а не строим витрину с дырой.
- Соседний внутренний продукт, генератор посадочных страниц, поставляет в эту же витрину данные по страницам.
Частые вопросы про дашборды по рекламе
Почему суммы в разных срезах не сходятся?
Потому что срезы считаются по разным правилам, и это нормальное поведение рекламных систем, а не ошибка сборки. Расход по дням и по кампаниям расходится из-за округлений, НДС и корректировок задним числом. Данные по конверсиям расходятся ещё сильнее: у кабинета и у веб-аналитики разные окна атрибуции и разные определения визита. Мы не пытаемся заставить цифры совпасть. Выбирается эталонный срез, остальные сверяются с ним, а расхождение показывается явным числом. Пока величина в пределах ожидаемой, тревоги нет; выход за границу подсвечивается.
Зачем чинить CRM до того, как строить дашборд?
Потому что иначе дашборд аккуратно нарисует неправильную картину, и по ней начнут принимать решения. Типовые поломки: заявка заведена без источника, один клиент существует тремя карточками, сделка закрыта без даты, стадию поменяли задним числом. Ни одну из них витрина исправить не может — она их только унаследует. Поэтому первый шаг всегда одинаковый: разбираем, как заявка попадает в CRM и какие поля заполняются обязательно. Иногда на этом этапе выясняется, что проблема не в рекламе, а в том, что половина обращений вообще не доходит до системы.
Что система пишет сама, а что пишет человек?
Система пишет заметки о фактах: расход по кампании вырос относительно предыдущего периода, цена заявки в регионе вышла за привычный коридор, кампания перестала отдавать данные, доля заявок без источника подскочила. Это констатация с числами и ссылкой на срез, а не рекомендация. Интерпретацию пишет человек, потому что причина почти никогда не видна в самих цифрах: сезон, изменение цены, конкурент, отвалившийся телефон, сломанная форма на сайте. Разделение сознательное — как только машина начинает объяснять причины, ей перестают проверять выводы.
Что делать с квотами API рекламных систем?
Квоты — главное ограничение регулярного сбора, и обходить их не нужно, нужно под них проектировать. Запросы разбиваются на окна по датам и по объектам, сырые ответы кэшируются, повторный запуск берёт из кэша, а не дёргает кабинет заново. Часть систем формирует отчёт асинхронно: в ответ приходит «отчёт в очереди», и это не ошибка, а статус — сборка опрашивает его и переносит недостающий кусок на следующий цикл. Из-за этого витрина не гарантирует данные день в день по всем источникам, и в интерфейсе показано, когда каждый источник обновлялся.
Можно ли отдать системе управление ставками?
Технически да, практически мы этого не делаем. Ставки и бюджеты — необратимое действие с прямыми деньгами, и на такие действия у нас всегда стоит подтверждение человеком. Витрина доводит подготовку до конца: показывает срез, отклонение, сопоставимый период и вероятную причину, чтобы решение занимало минуты, а не полдня раскопок. Дальше человек идёт в кабинет. Отдельная причина осторожности — качество исходных данных: пока часть заявок теряет источник, автоматическое перераспределение бюджета усилит ошибку измерения, а не исправит её.
Какие системы подключаются к витрине?
Рекламные кабинеты и системы веб-аналитики, которые отдают данные по API, плюс CRM как источник заявок и сделок. Конкретный список зависит от того, чем пользуется компания, и от того, что в её кабинетах вообще доступно по API — часть срезов существует только в интерфейсе. Поэтому перед сборкой мы проверяем доступность каждого нужного среза, а не обещаем его заранее. Если срез недоступен, честнее сказать это на старте, чем строить витрину с дырой. Со стороны CRM чаще всего это Битрикс24 или 1С.
Бесплатный аудит: посчитаем эффект внедрения ИИ на ваших цифрах
30–40 минут разбора: смотрим ваши процессы, отмечаем, что можно передать ИИ, считаем ROI-модель на ваших объёмах и сроках. Вы уходите с расчётом и картой внедрения — даже если работать дальше не будете.