Кейс: Директ увидел 38 отправок формы — сервер принял только 21 заявку
Учебный составной кейс: все цифры условные, но арифметика и диагностическая логика реалистичны.
На Яндекс Директ потратили условные 84 000 ₽. Кабинет показал 38 отправок формы, а сервер и CRM сохранили только 21 заявку.
Ещё 17 конверсий сработали в момент клика по кнопке — до проверки полей и ответа сервера. Поэтому отчётный CPL выглядел как 2 211 ₽, хотя каждая реально принятая форма стоила 4 000 ₽.
Разберём, где исчезли заявки, почему код цели подтвердил то, чего бизнес не получил, и какой тест ловит разрыв до обучения автостратегии.
Кабинет видел 38, CRM — 21
По отчёту кампания выполнила план: 84 000 ₽ расхода, 38 конверсий и стоимость формы чуть выше 2 200 ₽.
Но в таблице сервера было 21 успешное создание заявки. В CRM — те же 21 карточка. Семнадцати обращений не было ни в очереди, ни в почте, ни в журнале обработчика.
Разница не означала, что менеджеры потеряли карточки. Рекламная система получила событие раньше, чем заявка вообще появилась в инфраструктуре бизнеса.
Такой отчёт опаснее явной ошибки: цель работает, график растёт, а причина недостачи спрятана между кнопкой и сервером.
Цель срабатывала раньше заявки
Счётчик отправлял конверсию по нажатию на кнопку. Он не ждал успешного ответа обработчика и не проверял, создалась ли запись в CRM.
Часть посетителей не прошла серверную валидацию. У части запрос завершился таймаутом или сетевой ошибкой. Но рекламная цель уже была засчитана.
Кнопка и реальная отправка — не одно событие. Клик говорит только о намерении; подтверждение сервера говорит, что данные приняты.
Рабочая цена заявки оказалась выше отчётной на 81%. Это уже другая экономика кампании и другой предел ставки.
Автостратегия покупала сигнал, а не лид
Для алгоритма все 38 событий были одинаковыми успехами. Он не видел, что 17 из них закончились до записи контакта.
Если оптимизация идёт по такой цели, система ищет пользователей, похожих на тех, кто нажимает кнопку. Это слабее задачи бизнеса — получать контакты, которые можно обработать.
Нельзя утверждать, что каждый лишний рубль ставки вызвали именно эти события. Но обучение опиралось на искажённую выборку, поэтому масштабировать красивый CPL было рано.
Разрыв нашли по идентификатору запроса
Проверку начали не с общего числа за месяц, а с одного тестового обращения. Браузеру, серверу и CRM передали общий request ID.
В успешном сценарии один идентификатор появился на всех трёх уровнях: отправка, ответ 2xx и карточка сделки. При ошибке он оставался только в браузерном журнале.
После этого событие рекламной цели привязали к подтверждённому ответу сервера. Отдельно проверили ошибку валидации, таймаут, повторный клик и блокировку скрипта.
Важна не надпись «Спасибо» сама по себе, а доказуемая цепочка: сервер принял данные, CRM создала запись, пользователь получил подтверждение.
Чек-лист: доходит ли форма до бизнеса
- Сравните цели формы с числом успешных ответов сервера и карточек CRM.
- Проверьте, на каком событии срабатывает цель: клик, отправка или ответ 2xx.
- Добавьте единый идентификатор запроса в браузер, обработчик и CRM.
- Протестируйте пустые поля, неверный телефон, таймаут и повторный клик.
- Убедитесь, что экран успеха не показывается после серверной ошибки.
- Не обучайте автостратегию на цели, которую нельзя сверить поштучно.
Если Директ показывает больше форм, чем принимает CRM, не начинайте с новых объявлений. Сначала докажите каждую конверсию на сервере — иначе алгоритм улучшает показатель, которого нет у отдела продаж.
Нужен разбор без красивых отчётов?
Проверьте запросы, цели, качество лидов и путь до расчёта или продажи.