Заявка должна попадать в аналитику после подтверждения успешной обработки формы. Для обычной HTML-формы сигналом может быть валидная отправка или загрузка страницы благодарности. Для AJAX и SPA надежнее событие из обработчика успешного ответа сервера. Затем GTM отправляет в GA4 рекомендованное событие generate_lead, GA4 учитывает его как ключевое событие, а Google Ads получает выбранную конверсию. CRM служит контрольным источником по числу и качеству обращений.
Такой порядок отделяет действия посетителя от результата формы. Клик по кнопке, открытие модального окна и начало заполнения нужны для анализа интерфейса. Заявкой становится обращение, которое сайт принял, сохранил и передал менеджеру. Если эти действия смешать в одной цели, рекламный кабинет завысит число лидов и начнет оптимизировать кампании по слабому сигналу.
Что считать успешной заявкой
Сначала определите технический ответ формы. Для обычного HTML-сценария браузер отправляет данные, сервер принимает их и возвращает новую страницу или перенаправляет посетителя на страницу благодарности. В таком случае GTM может использовать Form Submission с проверкой валидации либо просмотр уникального URL после успешной отправки.
AJAX-форма работает без перезагрузки. Нажатие на кнопку запускает запрос, а сообщение об успехе появляется после ответа сервера. Событие нужно отправлять из обработчика этого ответа. Клик и появление сообщения до ответа сервера дают ложные конверсии при ошибке сети, отклонении данных или сбое интеграции.
В SPA переходы и формы обрабатывает JavaScript. Здесь разработчик добавляет вызов dataLayer после статуса успеха от API. Один и тот же контракт применяют ко всем формам: событие lead_submit, стабильные идентификаторы формы и страница отправки без персональных данных в адресе.
Страница благодарности подходит при уникальном URL и редиректе после каждого успешного обращения. Закройте ее от случайного повторного учета: прямой вход, обновление страницы и возврат через историю браузера не должны создавать новую заявку. Для проектов с несколькими доменами дополнительно проверяют переход между доменами и сохранение рекламного идентификатора.
| Сценарий | Надежный сигнал | Настройка в GTM | Что проверить |
|---|---|---|---|
| Обычная HTML-форма | Валидная отправка и успешный ответ | Form Submission с Check Validation и ограничением по форме | Ошибки валидации, дубль события, запись на сервере |
| AJAX-форма | Обработчик успешного ответа сервера | Custom Event после dataLayer.push | Сбой сети, ответ API, повторный клик, сообщение об успехе |
| SPA | Подтверждение API после сохранения обращения | Custom Event с идентификаторами формы и страницы | Смена маршрута, повторный рендер, виртуальные просмотры |
| Страница благодарности | Загрузка уникального URL после отправки | Page View только для URL благодарности | Прямой вход, обновление, возврат назад, несколько доменов |
| Сервер и CRM | Созданная запись с источником и временем | Контрольная сверка, при необходимости серверное событие | Один лид в CRM, UTM, рекламный идентификатор, статус обработки |
Событие dataLayer и тег generate_lead
Разработчик размещает dataLayer.push в обработчике успешной отправки. В событие передают технические признаки, по которым аналитик различает формы и страницы. Имя, телефон, электронная почта, сообщение пользователя и другие персональные данные остаются в защищенной системе обработки заявки. GA4 получает только параметры, нужные для отчета.
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'lead_submit',
form_id: 'consultation_header',
form_name: 'consultation',
form_type: 'contact',
page_location: window.location.href
});
Пример использует window.location.href. Такой вариант допустим, когда адрес страницы не содержит имя, телефон, почту или текст заявки. Если сайт добавляет данные формы в query string, передавайте очищенный адрес: window.location.origin + window.location.pathname. Аналогичное правило действует для page_referrer.
В GTM создают Data Layer Variables для form_id, form_name, form_type и page_location. Затем на Custom Event lead_submit назначают тег GA4 Event с именем generate_lead. Стабильные параметры формы удобнее десятков отдельных событий: отчеты сохраняют одну метрику лида, а разрез по форме строится через параметры.
Для стандартной формы можно использовать Form Submission. Включите Check Validation, ограничьте триггер точным селектором или идентификатором и проверьте успешную серверную обработку. Триггер All Forms без условий подходит только для диагностики на тестовой среде. На рабочем сайте он часто учитывает поисковые формы, подписки, ошибки и технические формы.
Передача в GA4 и Google Ads
В GA4 событие generate_lead регистрируют как ключевое событие. После публикации контейнера выполните реальную тестовую отправку и проверьте событие в DebugView. Название, параметры и число срабатываний должны совпасть с тестом. Один успешный лид создает одно событие.
Google Ads может получать конверсию через отдельный тег либо импорт ключевого события из GA4. Выберите один основной способ для оптимизации кампаний. Параллельная передача одного лида двумя основными конверсиями удвоит результат. Второй источник допустим как наблюдение, если его роль явно указана в настройках целей.
Проверьте окно конверсии, модель атрибуции, категорию цели и учет в столбце Конверсии. Для форм с разным коммерческим результатом можно передавать одинаковое событие generate_lead и различать тип обращения параметром. Денежную сумму передают только при подтвержденной бизнес-модели.
Проверка до публикации контейнера
Tag Assistant показывает последовательность событий и тегов внутри тестовой сессии. Сначала найдите lead_submit, затем убедитесь, что тег GA4 сработал один раз. Ошибка в имени события, условии триггера или переменной становится видна до публикации.
DebugView подтверждает прием generate_lead в GA4. Откройте параметры и сопоставьте form_id, form_name и page_location с отправленной формой. После этого проверьте ключевое событие в интерфейсе GA4 и диагностический статус конверсии в Google Ads. Отчеты могут обновляться с задержкой, поэтому первичную техническую проверку проводят через режимы отладки.
Завершите тест в CRM. В карточке лида должны быть время, форма, страница, UTM и рекламный идентификатор, если он предусмотрен архитектурой. Сверьте один тест во всех системах. Отдельно проверьте ошибочную отправку: форма показывает сообщение об ошибке, lead_submit отсутствует, новая карточка в CRM не создается.
| Точка проверки | Ожидаемый результат | Частая ошибка | Действие |
|---|---|---|---|
| Ответ сервера | Форма получила статус успеха, обращение сохранено | Событие запускается до ответа | Перенести dataLayer.push в обработчик успеха |
| dataLayer | Один lead_submit с верными параметрами | Дубль после повторного рендера или клика | Добавить защиту от повторной отправки |
| Tag Assistant | GA4 Event сработал один раз на нужном событии | Триггер охватывает другие формы | Уточнить событие и условия формы |
| DebugView | generate_lead содержит form_id и очищенный URL | Параметр пустой или содержит персональные данные | Исправить переменную и очистку адреса |
| GA4 и Google Ads | Одна основная конверсия для оптимизации | Один лид импортирован и отправлен тегом | Оставить один основной способ учета |
| CRM | Одна карточка с источником и статусом | Запись потеряна или создана дважды | Проверить интеграцию и дедупликацию |
Как сверять GA4 и CRM
GA4 считает события браузера, а CRM хранит принятые обращения и их статусы. Эти системы отвечают на разные вопросы. Сверка начинается с одного периода, одного часового пояса и перечня форм. Уберите тестовые заявки, спам и дубли по заранее установленному правилу. После этого сравните число успешных отправок, generate_lead и созданных карточек.
Расхождение может появиться из-за блокировщиков, отказа согласия на аналитику, сетевой ошибки, неверного триггера, дубля формы или сбоя передачи в CRM. Универсальный допустимый процент здесь не работает: причина зависит от архитектуры сайта и состава каналов. Важнее динамика и известное объяснение каждой крупной группы расхождений.
Еженедельная проверка включает число лидов по формам, дубли, записи без источника, долю заявок без статуса и время первого ответа. Рекламная оптимизация опирается на технически подтвержденную заявку, а качество оценивается по статусам CRM: целевой запрос, квалификация, предложение, продажа или причина отказа.
Дедупликация и устойчивость события
Один лид может создать несколько браузерных событий. Частые причины: двойной клик, повторный вызов callback, два контейнера GTM, возврат на страницу благодарности и одновременная отправка тега из кода сайта и GTM. Защиту размещают рядом с обработчиком формы. Кнопка блокируется на время запроса, а событие отправляется один раз после подтверждения сервера.
Для сложной формы добавьте технический идентификатор попытки отправки. Он создается без контактных данных и хранится до завершения запроса. Аналитик сопоставляет такой идентификатор с серверным журналом и карточкой CRM, если архитектура проекта поддерживает передачу поля. Это упрощает разбор единичных расхождений, когда число заявок в системах совпадает за месяц, но отдельная запись теряется.
Два контейнера GTM часто появляются после переноса сайта или подключения подрядчика. Проверьте исходный код, расширения браузера и Tag Assistant. На странице должен загружаться установленный контейнер, а тег generate_lead должен иметь один источник запуска. Старый контейнер удаляют только после инвентаризации его тегов, чтобы вместе с дублем не потерять другие события.
Контроль после изменений сайта
Событие заявки требует повторного теста после замены формы, подключения нового конструктора, изменения домена, внедрения CAPTCHA, обновления CRM или переработки страницы благодарности. В журнале релиза укажите дату, URL, form_id, контейнер GTM и результат тестовой заявки. Тогда сбой можно сопоставить с изменением сайта.
Ежемесячный контроль занимает меньше времени, если команда хранит реестр форм. Для каждой формы записывают URL, технический идентификатор, событие, рекламные кабинеты, поля CRM и ответственного. Новая форма попадает в реестр до запуска рекламы. Удаленная форма исключается из отчетов и триггеров после проверки архивных данных.
Отдельный отчет нужен при нескольких языковых версиях и доменах. Сравните формы по hostname, form_id и источнику рекламы. Если русская и казахская версии используют один идентификатор, отчет скрывает различия в конверсии. Добавьте язык как технический параметр, сохранив единое имя события generate_lead. Для филиалов аналогично передают город или код подразделения из настроек формы. Такие параметры описывают место обращения и не содержат контактных сведений.
При массовом спаме браузерное событие может оставаться технически верным, хотя отдел продаж получает нерелевантные обращения. CAPTCHA, серверная фильтрация и статусы CRM решают разные задачи. GA4 показывает отправку, сервер отклоняет автоматический запрос, CRM хранит лид для работы менеджера. В отчете по рекламе используйте подтвержденное событие, а решение по качеству принимайте после статуса CRM.
Кейс: учет заявок на B2B-сайте
В одном B2B-проекте Метриум проверил формы на Tilda с AJAX-отправкой. Часть обращений доходила до CRM, но событие в браузере зависело от сообщения на странице. После переноса lead_submit в обработчик успеха и настройки generate_lead разница между CRM и GA4 за 14 дней снизилась с 22% до 6%.
Тесты выявили три технические ошибки: повторное событие после двойного клика, пустой form_id в одной форме и потерю события при слабой сети. После исправления следующий полный месяц показал на 18% больше зарегистрированных лидов в GA4 при сопоставимом трафике. Рост означал восстановление учета. Спрос оставался прежним.
Показатели использовались для проверки качества трекинга. Результат рекламы оценивали отдельно по квалифицированным обращениям и продажам. Другой пример B2B-проекта с проверенной передачей форм опубликован в кейсе о лендинге и рекламной воронке для поставщика профессиональных СИЗ.
Стоимость настройки
Аудит трекинга от 150 000 ₸ включает карту форм и целей, тестовые отправки, проверку GTM, GA4 и CRM, а также перечень найденных расхождений.
Настройка событий от 290 000 ₸ подходит сайту с несколькими формами, dataLayer, GA4 и одной рекламной системой. В состав входят схема именования, триггеры, параметры, тесты и инструкция по проверке после изменений сайта.
Интеграция аналитики с CRM от 490 000 ₸ добавляет передачу источника, UTM, рекламных идентификаторов, статусов и контроль дублей. Проект от 850 000 ₸ охватывает несколько доменов, SPA, серверные события, кабинеты и отчетность для маркетинга и продаж. Итоговая смета зависит от числа форм, доменов, рекламных кабинетов, CRM и участия разработчика.
FAQ
Что считать успешной отправкой формы?
Успешная отправка подтверждается сервером или API после сохранения обращения. Клик по кнопке и начало заполнения остаются отдельными событиями интерфейса.
Подходит ли триггер Form Submission для любой формы?
Он подходит нативной HTML-форме с валидной отправкой. AJAX и SPA требуют события из обработчика успешного ответа, потому что страница часто остается без перезагрузки.
Как отследить AJAX-форму без страницы благодарности?
Добавьте dataLayer.push в callback успешного ответа сервера. В GTM используйте Custom Event lead_submit и отправьте в GA4 generate_lead.
Почему число заявок в GA4 отличается от CRM?
GA4 зависит от браузера, согласия и загрузки тега. CRM зависит от серверной обработки и интеграции. Сверьте период, формы, тестовые заявки, дубли и записи без источника.
Когда нужен разработчик или специалист по CRM?
Разработчик нужен для AJAX, SPA, серверного ответа и очистки параметров. Специалист по CRM нужен при передаче UTM, рекламных идентификаторов, статусов, дедупликации и импорте квалифицированных лидов.
Проверить учет заявок
Если заявки расходятся между рекламой, GA4 и CRM, Метриум проверит формы, триггеры GTM, параметры событий и записи в CRM. Аудит трекинга начинается от 150 000 ₸. Состав услуги размещен на странице сквозной аналитики и CRM. Причины расхождений раскрыты в разборе отчетов Google Ads, GA4 и CRM.