журналопыт и цифрыавтор

директор и машина · маркетинг · запись № 002 · · Давид Герштейн

Почему реклама не окупается: разбор до денег, а не до кликов

заметный бюджет на инфлюенсеров · 0 договоров · конверсия 33%→6%
Коротко · суть разбора

Реклама не окупается не потому, что канал плохой, а потому что отчёт о лидах и отчёт о деньгах — два разных документа с разными числами: значительная сумма ушла на инфлюенсеров, а договоров за месяц — ноль. Считать окупаемость нужно от даты оплаты договора, а не от клика или заявки, иначе слив бюджета маскируется ростом «качественных лидов».

Содержание · 8 разделов
  1. Почему реклама не окупается: цифры в отчёте врут
  2. Лиды есть, продаж нет
  3. Когда «оптимизация» рекламы убивает окупаемость
  4. Деньги, которые утекают без обратной связи
  5. ИИ-связка: проверка лида до того, как он попал в отчёт по ROI
  6. Как считать окупаемость, чтобы не обманывать себя
  7. Экономика: что стоит фильтр лидов и что он даёт
  8. Чек-лист: с чего начать в понедельник

Месяц, крупная сумма на инфлюенсеров. Ноль договоров. Параллельно директ третий месяц подряд в минусе по ROI, плюс был только один месяц из четырёх. Это не гипотеза — это цифры одной компании за один отчётный период. И вопрос «почему реклама не окупается» в этот момент звучит уже не как теория, а как разговор с финансовым директором, который считает деньги, а не охваты.

Проблема в том, что реклама почти всегда «работает» — если мерить кликами, лидами, охватами. Она перестаёт работать, если мерить деньгами. Между этими двумя точками измерения обычно и прячется слив бюджета: отчёт по лидам растёт, касса — нет. Дальше — разбор мест, где именно ломается эта связка, и что с этим можно сделать руками, без веры в «просто лучше настроить таргетинг».

Почему реклама не окупается: цифры в отчёте врут

Руководитель одной компании случайно, просматривая утренние отчёты, обнаружил: одна входящая точка создавала два-три дубликата лида. Конверсия падала день ото дня — а реальная ситуация была другой. Никто не искал проблему специально, потому что дашборд выглядел правдоподобно: цифры росли, потом снижались, всё как обычно бывает в рекламе.

Если точка входа плодит два-три дубля на один реальный лид, отчётная конверсия считается не от реального числа обращений, а от в два-три раза большего количества «лидов» — то есть искусственно занижается в 2–3 раза без единого изменения в реальном спросе (оценка на основе того же кейса: реальный поток не менялся, менялся только знаменатель формулы).

Другой день, другой пример — расхождение в отчётах по продажам. У одного менеджера в отчёте сумма, у другого — заметно меньше. При проверке через CRM оказалось: потеряна сделка (она шла как рекомендация, а не как лид, и выпала из расчёта) — на сумму, ощутимую для месячного отчёта. А при фильтрации по месяцу оплаты вместо месяца создания договора разница выросла ещё сильнее. Это не ошибка одного человека — это способ, которым разные фильтры дают разную «правду» из одних и тех же данных.

Третья беда — атрибуция. При планировании кампании выяснилось, что 10–15% лидов невозможно привязать к источнику: люди блокируют куки, чистят историю, ставят блокировщики рекламы. В декабре доля неатрибутируемых лидов подскочила до 30%. Если эту треть просто раскидать по каналам «на глаз», отчёт по ROI рекламы превращается в художественную литературу — с тем же успехом можно гадать на кофейной гуще.

Правило Пока не выделена отдельная строка «неатрибутируемые лиды» с причиной, любой отчёт по каналам — это оценка, а не факт. Не принимайте решение «отключить канал» на основе цифры, в которую спрятана треть непонятного трафика.

Подробнее о том, как CRM искажает даты и цифры без злого умысла, — в разборе CRM врёт. Как я поймал Битрикс24 на сдвиге дат.

Лиды есть, продаж нет

Компания получила несколько десятков качественных лидов из соцсети за месяц. Закрыла 1–2 продажи. На бумаге — провал канала. При разборе выяснилось: эти лиды — первое касание. В отличие от других источников, где человек уже прогрет и готов к разговору, здесь нужен многоэтапный цикл — и «слив» на самом деле означал не плохой канал, а неправильную скорость продажи, применённую к чужому типу трафика.

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

Третий случай — про маркетолога, который годами продавал «процедуру оформления документов», то есть то, что клиенту неинтересно. За неделю с аналитиком собрали три аватара покупателя: часто это люди старшего возраста, одинокие или с выросшими детьми, ищущие общие интересы. После того как начали говорить не про процедуру, а про боль, конверсия пошла вверх. Дело было не в рекламном бюджете вообще, а в том, что реклама везла трафик к офферу, который не отвечал на вопрос клиента.

Разрыв между «лиды есть» и «продаж нет» — тема отдельного разбора: Лиды есть, а продаж нет: где теряются деньги между маркетингом и продажами.

Когда «оптимизация» рекламы убивает окупаемость

Самый наглядный случай — смена текста объявления по совету экономиста. Конверсия упала в 5,5 раза: было 33%, стало 6%. При этом количество лидов выросло на 25%. По количеству лидов кампания выглядела лучше. По составу — хуже: пришли в основном возрастные, иногородние и зарубежные заявки, то есть люди с меньшим бюджетом и худшей конвертацией в сделку. На диаграмме ниже — конверсия до и после смены текста объявления.

33% было
6% стало

Рост числа лидов на 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) маркетолог и РОП видят уже очищенные цифры в еженедельном отчёте.

Еженедельный отчёт по лидам
~50валовых лидов/день
~1/3качественных лидов/день
10–15%неатрибутируемых, типично
план май / план июньрост от месяца к месяцу
ЛидДубльАтрибуция
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% объёма трафика канала, происхождение которого никто не подтвердил.

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

Отдельно — про инфлюенсеров: заметная сумма и ноль договоров за месяц — это цифра одного канала, не результат фильтра лидов и не заслуга или вина автоматизации. Её нельзя чинить дедупликацией — здесь нужен другой разговор: о критериях выбора площадки и контрольной точке отсечения бюджета до третьего месяца, а не после. Подробнее о том, как считать реальную стоимость ИИ-инструментов в подобных конвейерах, — в разборе сколько на самом деле стоит ИИ в месяц.

Чек-лист: с чего начать в понедельник

  1. Выгрузить лиды за последний месяц и посчитать долю без utm-меток или с пустым источником — если больше 15%, завести отдельную строку «неатрибутируемые» в отчёте.
  2. Проверить отчёт по продажам по двум фильтрам — «дата создания заявки» и «дата оплаты договора» — и сравнить итоговые суммы. Расхождение больше 5% значит, что текущий отчёт врёт.
  3. Найти хотя бы один канал, где ROI отрицательный два месяца подряд, и явно решить: третий месяц наблюдения или остановка — без «ещё чуть-чуть посмотрим».
  4. Разбить месячный план по лидам на недели с контрольными точками — не ждать конца месяца, чтобы узнать об отставании.
  5. Проверить процент отбраковки лидов за контроль качества отдельно от процента конверсии в продажу — если отбрак выше плана в 2–3 раза, проблема в качестве трафика, а не в отделе продаж.
  6. Если поток лидов заметный (десятки в день) — оценить, сколько часов в неделю уходит на ручную сверку дублей (например, 3 часа в неделю ≈ 12 часов в месяц), и сравнить с разовой стоимостью внедрения фильтра (по нашей оценке — порядка 12–16 часов работы специалиста); если ручной труд стоит дороже за 1–2 месяца — фильтр окупается быстро.
```

Частые вопросы

Что такое слив рекламного бюджета?

Это ситуация, когда деньги на рекламу тратятся, лиды или охваты растут, но не превращаются в оплаченные договоры — как с инфлюенсерами, где потратили заметную для месячного бюджета сумму и не получили ни одной сделки за месяц.

Как посчитать ROI рекламы, если часть лидов не атрибутируется?

Выделить неатрибутируемые лиды отдельной строкой с причиной (блокировщики, очистка cookie), а не размазывать их по каналам — иначе доля до 30% искажает картину по каждому каналу.

Почему рост конверсии в лиды не означает рост продаж?

Потому что лид и оплаченный договор — разные события в разные даты; нужно смотреть воронку до кассы и фильтровать по дате оплаты, а не по дате создания заявки.

#деньги #аналитика и отчётность #ии и нейросети

Дальше читать подобрано по направлению и темам
027
Сколько на самом деле стоит ИИ в месяц: мои счета, минус $40 за ночь и шлюз учёта
−$40 за ночь · ~$300/мес за 100% звонков · 11 сервисов на шлюзе
004
Зависшие сделки в воронке: как их вычислить, оживить и не плодить заново
1,5 года без движения · встреча 55% → договор 22% · факт продажи заметно ниже плана (неделя)
006
Как оценивать звонки: пять критериев вместо полусотни пунктов
66 звонков ручной сверки · цена одной ошибки — заметная доля годового бюджета клиента · 25% охват контролем вручную