директор и машина · маркетинг · запись № 002 · · Давид Герштейн
Почему реклама не окупается: разбор до денег, а не до кликов
Реклама не окупается не потому, что канал плохой, а потому что отчёт о лидах и отчёт о деньгах — два разных документа с разными числами: значительная сумма ушла на инфлюенсеров, а договоров за месяц — ноль. Считать окупаемость нужно от даты оплаты договора, а не от клика или заявки, иначе слив бюджета маскируется ростом «качественных лидов».
Содержание · 8 разделов
- Почему реклама не окупается: цифры в отчёте врут
- Лиды есть, продаж нет
- Когда «оптимизация» рекламы убивает окупаемость
- Деньги, которые утекают без обратной связи
- ИИ-связка: проверка лида до того, как он попал в отчёт по ROI
- Как считать окупаемость, чтобы не обманывать себя
- Экономика: что стоит фильтр лидов и что он даёт
- Чек-лист: с чего начать в понедельник
Месяц, крупная сумма на инфлюенсеров. Ноль договоров. Параллельно директ третий месяц подряд в минусе по ROI, плюс был только один месяц из четырёх. Это не гипотеза — это цифры одной компании за один отчётный период. И вопрос «почему реклама не окупается» в этот момент звучит уже не как теория, а как разговор с финансовым директором, который считает деньги, а не охваты.
Проблема в том, что реклама почти всегда «работает» — если мерить кликами, лидами, охватами. Она перестаёт работать, если мерить деньгами. Между этими двумя точками измерения обычно и прячется слив бюджета: отчёт по лидам растёт, касса — нет. Дальше — разбор мест, где именно ломается эта связка, и что с этим можно сделать руками, без веры в «просто лучше настроить таргетинг».
Почему реклама не окупается: цифры в отчёте врут
Руководитель одной компании случайно, просматривая утренние отчёты, обнаружил: одна входящая точка создавала два-три дубликата лида. Конверсия падала день ото дня — а реальная ситуация была другой. Никто не искал проблему специально, потому что дашборд выглядел правдоподобно: цифры росли, потом снижались, всё как обычно бывает в рекламе.
Если точка входа плодит два-три дубля на один реальный лид, отчётная конверсия считается не от реального числа обращений, а от в два-три раза большего количества «лидов» — то есть искусственно занижается в 2–3 раза без единого изменения в реальном спросе (оценка на основе того же кейса: реальный поток не менялся, менялся только знаменатель формулы).
Другой день, другой пример — расхождение в отчётах по продажам. У одного менеджера в отчёте сумма, у другого — заметно меньше. При проверке через CRM оказалось: потеряна сделка (она шла как рекомендация, а не как лид, и выпала из расчёта) — на сумму, ощутимую для месячного отчёта. А при фильтрации по месяцу оплаты вместо месяца создания договора разница выросла ещё сильнее. Это не ошибка одного человека — это способ, которым разные фильтры дают разную «правду» из одних и тех же данных.
Третья беда — атрибуция. При планировании кампании выяснилось, что 10–15% лидов невозможно привязать к источнику: люди блокируют куки, чистят историю, ставят блокировщики рекламы. В декабре доля неатрибутируемых лидов подскочила до 30%. Если эту треть просто раскидать по каналам «на глаз», отчёт по ROI рекламы превращается в художественную литературу — с тем же успехом можно гадать на кофейной гуще.
Подробнее о том, как CRM искажает даты и цифры без злого умысла, — в разборе CRM врёт. Как я поймал Битрикс24 на сдвиге дат.
Лиды есть, продаж нет
Компания получила несколько десятков качественных лидов из соцсети за месяц. Закрыла 1–2 продажи. На бумаге — провал канала. При разборе выяснилось: эти лиды — первое касание. В отличие от других источников, где человек уже прогрет и готов к разговору, здесь нужен многоэтапный цикл — и «слив» на самом деле означал не плохой канал, а неправильную скорость продажи, применённую к чужому типу трафика.
С французским рынком та же болезнь, только в других цифрах: в Париже сотни тысяч человек целевой аудитории, а за всё время с французской версии сайта — два покупателя, оба говорили по-английски. Причина не в объёме аудитории, а в том, что локальные боли не были поняты, и с французским трафиком просто не умели работать: сайт был, а перевод боли клиента на язык этой боли — нет.
Третий случай — про маркетолога, который годами продавал «процедуру оформления документов», то есть то, что клиенту неинтересно. За неделю с аналитиком собрали три аватара покупателя: часто это люди старшего возраста, одинокие или с выросшими детьми, ищущие общие интересы. После того как начали говорить не про процедуру, а про боль, конверсия пошла вверх. Дело было не в рекламном бюджете вообще, а в том, что реклама везла трафик к офферу, который не отвечал на вопрос клиента.
Разрыв между «лиды есть» и «продаж нет» — тема отдельного разбора: Лиды есть, а продаж нет: где теряются деньги между маркетингом и продажами.
Когда «оптимизация» рекламы убивает окупаемость
Самый наглядный случай — смена текста объявления по совету экономиста. Конверсия упала в 5,5 раза: было 33%, стало 6%. При этом количество лидов выросло на 25%. По количеству лидов кампания выглядела лучше. По составу — хуже: пришли в основном возрастные, иногородние и зарубежные заявки, то есть люди с меньшим бюджетом и худшей конвертацией в сделку. На диаграмме ниже — конверсия до и после смены текста объявления.
Рост числа лидов на 25% совпал с падением конверсии с 33% до 6% — по количеству кампания выглядела лучше, по качеству трафика была хуже.
Команда после этого разделилась: один хотел продолжать тестирование, второй видел проблему и требовал вывода. Решение отложили ради дополнительного анализа региональной структуры лидов. Это нормальная развилка — но именно она и решает, окупится реклама или нет: если мерить только объём лидов, кампания выглядит рабочей ещё месяц-два, пока не долистаешь до продаж.
Такая же история с органическим трафиком: конверсия сайта упала ниже 10% в апреле — в марте было почти 15%, в январе 17%. Устойчивое снижение месяц за месяцем, и вопрос не «работает ли SEO», а «какого качества трафик оно приносит сейчас, а не полгода назад».
| Канал | Что видно по объёму | Что скрывает объём |
|---|---|---|
| Реклама с новым текстом | Лидов +25% | Конверсия упала с 33% до 6%, качество лидов ниже |
| Инфлюенсеры | Охват, узнаваемость | Заметная часть бюджета, 0 договоров за месяц |
| Директ | Клики и лиды идут | Отрицательный ROI 3 месяца из 4 |
| Органика | Трафик растёт или стабилен | Конверсия упала с 17% до 10% за 4 месяца |
| Холодная рассылка (крупная база контактов) | Открываемость 50% | Конверсия в лиды — 0% |
На диаграмме — конверсия в лид по каналам, от полного провала рассылки до лучших месяцев органики.
Деньги, которые утекают без обратной связи
Заметная сумма на инфлюенсеров и ноль договоров — это не случайность конкретного месяца, а симптом отсутствия обратной связи между тратой и результатом. Параллельно в директе три месяца из четырёх — минус по ROI, и только один месяц — в плюс, при этом на инфлюенсеров продолжали тратить сопоставимую сумму ежемесячно вместо специализированных каналов.
Когда канал не даёт обратной связи «деньги → договор» быстрее, чем цикл принятия решения о бюджете, компания просто продолжает тратить по инерции. Решение отключить или сократить канал принимается не потому, что кто-то один раз посчитал, а потому что накопилось три месяца подряд одинаковой картины. Это дорогая инерция: три месяца — это три бюджетных цикла, потраченных на подтверждение того, что уже было понятно после первого.
Деньги утекают и через рассинхрон оплаты. Чтобы получить лиды в начале месяца, счёт нужно оплатить в конце предыдущего — например, 28-го числа для лидов 3-го. При этом половина счетов оплачивается не вовремя. На типовом для этой воронки потоке валовых лидов в день даже три дня простоя из-за просроченного счёта — это заметная доля недополученных валовых лидов, и при конверсии в качественные на уровне 33% — десятки качественных лидов, которых просто не будет в отчёте того месяца (оценка). Дело не в качестве рекламы вообще, а в том, что даже хороший канал не окупится, если платить за него с опозданием и терять первые дни месяца простоя, которые потом никто не компенсирует.
Та же болезнь — в истории с крупной базой контактов с вероятностью целевого признака выше 25%. Прямое предложение консультации или вебинара не сработало вообще — открываемость 50%, конверсия в лиды 0%. Причина в формулировке одной команды: «не понимая сегментацию клиента, бить в лоб бесполезно — это стрельба из пушки по воробьям». Заменили на серию из 3–4 писем с конкретными преимуществами и только потом анонс события. Деньги на рассылку были потрачены один раз — вопрос был не в бюджете, а в последовательности касаний.
ИИ-связка: проверка лида до того, как он попал в отчёт по ROI
Большая часть разобранных выше искажений — дубли, неатрибутируемые лиды, задержка с пометкой «неверный источник» — это работа, которую руками делать долго и лень, поэтому её не делают вообще. Отчёт собирают из сырых данных CRM, и все дубли с мусором едут прямо в расчёт ROI. Это чинится не заменой CRM, а простым конвейером-фильтром перед тем, как лид попадает в отчёт.
Схема конвейера:
1) Лид создаётся в CRM (Bitrix24) через форму сайта или рекламный кабинет → 2) вебхук CRM при создании нового лида дёргает облачную функцию → 3) функция подтягивает через Bitrix24 REST API последние лиды за 48 часов (crm.lead.list) и формирует запрос к модели → 4) модель возвращает JSON с флагом дубля и статусом атрибуции → 5) функция записывает результат обратно в кастомные поля лида (crm.lead.update) → 6) маркетолог и РОП видят уже очищенные цифры в еженедельном отчёте.
| Лид | Дубль | Атрибуция |
|---|---|---|
| 88213 | нет | unattributed |
| 88214 | да, 88190 | instagram_ads |
Модель на этом шаге — дешёвая (класса GPT-4o-mini или аналог): задача чисто классификационная, вызовов много (на каждый новый лид), платить за дорогую модель здесь нет смысла — точность сопоставления по телефону/email и utm-меткам не требует «рассуждений», только сверки шаблонов.
Ты — модуль предобработки лидов перед расчётом ROI рекламы.
На входе:
1. NEW_LEAD — JSON нового лида.
2. RECENT_LEADS — JSON-массив последних лидов за 48 часов.
NEW_LEAD:
{
"id": "88213",
"phone": "+79161234567",
"email": "client88213@mail.ru",
"utm_source": "",
"utm_campaign": "",
"form_id": "site_footer",
"created_at": "2026-06-03T09:14:00"
}
Задача:
1. Определи, является ли NEW_LEAD дублем одного из RECENT_LEADS
(совпадение телефона ИЛИ email, разница по времени менее 48 часов).
2. Если utm_source пустой — определи вероятную причину
(блокировка cookie, прямой заход, реферальная ссылка без меток)
на основе form_id и наличия похожих лидов без меток за тот же день.
3. Не выдумывай источник, если нет оснований — ставь "unattributed".
Верни строго JSON без пояснений вне JSON:
{
"lead_id": "",
"is_duplicate": true/false,
"duplicate_of_id": "" или null,
"attribution_status": "attributed" | "unattributed",
"likely_reason": "",
"confidence": 0.0-1.0
}
Пример ответа модели:
{
"lead_id": "88213",
"is_duplicate": false,
"duplicate_of_id": null,
"attribution_status": "unattributed",
"likely_reason": "no utm params, footer form, likely cookie block or direct visit",
"confidence": 0.71
}
Инженерная обвязка: облачная функция крутится на serverless-платформе (например, Yandex Cloud Functions или аналог), триггерится вебхуком Bitrix24 на событие создания лида. Результат пишется в кастомные поля UF_DUPLICATE и UF_ATTRIBUTION_STATUS через crm.lead.update. Если Bitrix24 API не ответил или модель вернула невалидный JSON — запись падает в отдельный лист Google Sheets «ошибки предобработки», а в рабочий чат маркетолога уходит уведомление. Раз в час отдельное расписание догоняет необработанные лиды (там, где кастомное поле осталось пустым) — это защита от разовых сбоев вебхука.
Этот инструмент не стоит путать с решением проблемы качества трафика. Скоринг и дедупликация чистят отчёт — они не чинят оффер, не переводят рекламу на нужный аватар клиента и не ускоряют оплату счетов. Это отдельная задача, разобранная в предыдущих разделах, и её эффект нельзя приписывать одной автоматизации.
Как считать окупаемость, чтобы не обманывать себя
Рабочая точка отсчёта — не лид и не клик, а оплаченный договор, привязанный к дате оплаты, а не к дате создания заявки. В примере с расхождением сумм по разным менеджерам именно смена фильтра «месяц оплаты» вместо «месяц создания» дала честную картину.
Дальше — план не месяцем, а неделями и днями. У компании план по качественным лидам заметно вырос от мая к июню — но контроль шёл по неделям: несколько десятков валовых лидов в день, около трети из них качественные, накопленным итогом за месяц набиралось нужное число. Такая детализация позволяет увидеть отставание на третьей неделе, а не в последний день месяца, когда исправлять уже поздно.
| Неделя | Плановый темп | Контрольная точка |
|---|---|---|
| Неделя 1 | Около четверти месячного плана качественных лидов | Сверка по факту среды и пятницы |
| Неделя 2 | Ещё столько же, накопленным итогом около половины плана | Если отстаём — корректировка бюджета до конца недели |
| Неделя 3 | Накопленным итогом около трёх четвертей плана | Последняя точка для догона плана без аврала |
| Неделя 4 + остаток | Добор до полного месячного плана | Разбор причин отставания, а не только цифры |
Отдельно — коэффициент сезонности. Для декабря как месяца низкого спроса ввели коэффициент 0,8 — на 20% ниже обычного плана, с перераспределением объёмов на другие месяцы. Без этого декабрьский провал каждый год выглядел бы как авария, а не как предсказуемая сезонность, и решения принимались бы панически, а не по графику.
И наконец — контроль качества самих лидов, а не только их числа. Из общего объёма качественными по факту проверки оказались только около 40%, при том что рассчитывали на отвал не больше 20%. Если не считать процент отбраковки отдельно, реклама может «работать» по количеству и одновременно проваливаться по деньгам.
Экономика: что стоит фильтр лидов и что он даёт
Считаем честно, без смешивания с другими инициативами из этой статьи (сменой оффера, сегментацией базы, ускорением оплаты счетов — это отдельные решения со своим эффектом).
Стоимость внедрения конвейера дедупликации и атрибуции: разработка вебхука и функции — это разовая работа на 1–2 дня специалиста уровня «настроить интеграцию», плюс настройка кастомных полей в CRM. По времени это 12–16 часов работы — то есть разовые вложения, сопоставимые примерно с двумя рабочими днями одного специалиста (оценка).
Эксплуатация: вызовы дешёвой модели на классификацию лида стоят копейки за штуку — при типовом для этой воронки потоке валовых лидов в день это заведомо ниже стоимости одного часа работы аналитика в месяц, даже с запасом на повторные догоны по расписанию (оценка на основе публичных цен на модели класса mini).
Эффект нужно считать не как «сколько денег принёс инструмент», а как «сколько времени и риска он снимает». Пример на условных, но реалистичных числах: если аналитик тратит 3 часа в неделю на ручную сверку дублей и разметку неатрибутируемых лидов при типовом потоке лидов — это около 12 часов в месяц ручного труда, которые автоматизация снимает почти полностью, то есть высвобождается объём времени, сопоставимый примерно с полутора рабочими днями специалиста ежемесячно (оценка).
Формула для своего случая: (часы ручной сверки лидов в месяц) × (ставка специалиста в час) = ежемесячные потери на ручной труд, который заменяет фильтр. Если это число больше стоимости разового внедрения — инструмент окупается быстро. В нашем примере разовые затраты на внедрение (12–16 часов работы) окупаются примерно за 1–1,5 месяца снятого ручного труда — и это без учёта второго, более весомого эффекта, который считается отдельно.
Второй, более весомый эффект — не экономия часов, а снятый риск ошибочного решения. Пример: доля неатрибутируемых лидов — 20–30% в обычный месяц (по декабрю — все 30%) от бюджета канала. Это значит, что решение «отключить канал» или «удвоить бюджет» в такой месяц принимается вслепую по 20–30% объёма трафика канала, происхождение которого никто не подтвердил.
Эти два эффекта — экономия часов и снятый риск ошибочного решения — не складываются механически в одну сумму: часы считаются в трудозатратах текущего месяца, а риск — это вероятность более дорогой ошибки в будущем. Держите их раздельно, если считаете окупаемость для своего случая, иначе легко приписать инструменту чужой эффект.
Отдельно — про инфлюенсеров: заметная сумма и ноль договоров за месяц — это цифра одного канала, не результат фильтра лидов и не заслуга или вина автоматизации. Её нельзя чинить дедупликацией — здесь нужен другой разговор: о критериях выбора площадки и контрольной точке отсечения бюджета до третьего месяца, а не после. Подробнее о том, как считать реальную стоимость ИИ-инструментов в подобных конвейерах, — в разборе сколько на самом деле стоит ИИ в месяц.
Чек-лист: с чего начать в понедельник
- Выгрузить лиды за последний месяц и посчитать долю без utm-меток или с пустым источником — если больше 15%, завести отдельную строку «неатрибутируемые» в отчёте.
- Проверить отчёт по продажам по двум фильтрам — «дата создания заявки» и «дата оплаты договора» — и сравнить итоговые суммы. Расхождение больше 5% значит, что текущий отчёт врёт.
- Найти хотя бы один канал, где ROI отрицательный два месяца подряд, и явно решить: третий месяц наблюдения или остановка — без «ещё чуть-чуть посмотрим».
- Разбить месячный план по лидам на недели с контрольными точками — не ждать конца месяца, чтобы узнать об отставании.
- Проверить процент отбраковки лидов за контроль качества отдельно от процента конверсии в продажу — если отбрак выше плана в 2–3 раза, проблема в качестве трафика, а не в отделе продаж.
- Если поток лидов заметный (десятки в день) — оценить, сколько часов в неделю уходит на ручную сверку дублей (например, 3 часа в неделю ≈ 12 часов в месяц), и сравнить с разовой стоимостью внедрения фильтра (по нашей оценке — порядка 12–16 часов работы специалиста); если ручной труд стоит дороже за 1–2 месяца — фильтр окупается быстро.
Частые вопросы
Что такое слив рекламного бюджета?
Это ситуация, когда деньги на рекламу тратятся, лиды или охваты растут, но не превращаются в оплаченные договоры — как с инфлюенсерами, где потратили заметную для месячного бюджета сумму и не получили ни одной сделки за месяц.
Как посчитать ROI рекламы, если часть лидов не атрибутируется?
Выделить неатрибутируемые лиды отдельной строкой с причиной (блокировщики, очистка cookie), а не размазывать их по каналам — иначе доля до 30% искажает картину по каждому каналу.
Почему рост конверсии в лиды не означает рост продаж?
Потому что лид и оплаченный договор — разные события в разные даты; нужно смотреть воронку до кассы и фильтровать по дате оплаты, а не по дате создания заявки.
#деньги #аналитика и отчётность #ии и нейросети
Новые разборы — письмом, в день выхода. Без дайджестов ради дайджестов: нет статьи — нет письма.