Аналитика, отслеживание заявок и CRM

Consent Mode v2 и учёт заявок: как проверить согласие, форму и события GA4

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

Сначала определите, что означает ваша «заявка»

В нашем случае событие generate_lead означает: браузер получил успешный HTTP-ответ от сервиса Formspree на отправку заполненной формы. Аналитика учитывает это действие только при разрешении посетителя. Это конкретный технический критерий, который можно воспроизвести и проверить.

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

Google рекомендует generate_lead для возникновения обращения, например через форму, и выделяет последующую квалификацию и превращение лида в клиента в отдельные события. На Salestudia.com автоматическая передача таких последующих статусов сейчас не реализована. Владельцу бизнеса полезно начать с определения каждого этапа и ответственного за его подтверждение.

Что меняет выбор Basic или Advanced

Consent Mode управляет поведением Google-тегов в зависимости от согласия. Сам баннер получает выбор человека, а код должен связать этот выбор с фактической загрузкой и работой аналитики. Наличие красивого окна не заменяет этой связи.

В Basic Google-теги блокируются до разрешения; при отказе данные Google не отправляются. В Advanced теги загружаются с исходными ограничениями и могут отправлять сигналы без аналитических cookie. Поэтому пустой список cookie и отсутствие сетевых запросов — разные результаты проверки.

На Salestudia.com выбран Basic. Без согласия тег не создаётся; после разрешения он работает в отдельном служебном фрейме. Просмотры и предусмотренные действия передаются ему из приложения. Это особенность нашего кода, а не обязательная архитектура Consent Mode. Подключение рассчитано на основной адрес https://salestudia.com: предварительная версия сайта не подходит для проверки реального сбора. Рекламные технологии на .com отключены.

Четыре сигнала согласия и их значения

Разрешение аналитики не должно автоматически включать рекламные категории. Для нашей реализации исходные значения всех четырёх сигналов — denied. После согласия меняется только analytics_storage. Эти значения описывают техническую настройку; сами по себе они не доказывают соблюдение всех применимых требований к обработке данных.

Сигналы Consent Mode в реализации Salestudia.com
СигналНазначениеБез согласия / после разрешения аналитики
analytics_storageХранение для аналитикиdenied → granted
ad_storageХранение для рекламыdenied → denied
ad_user_dataПередача пользовательских данных Google для рекламыdenied → denied
ad_personalizationПерсонализация рекламыdenied → denied

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

Баннер нужно проверять и после первого нажатия

В баннере доступны принятие, отказ и настройки. Повторно открыть выбор можно через «Настройки cookie» в футере. В коде выбор сохраняется локально на срок до 180 дней вместе с датой и версией; устаревшая или недействительная запись требует нового выбора.

При отзыве разрешения приложение останавливает новые измерения, удаляет служебный фрейм и пытается очистить доступные cookie GA4. Страница не перезагружается, заполненная форма сохраняется. Уже отправленные события от этого не исчезают; начавшийся до отзыва запрос нельзя считать доказательством нового измерения после отказа.

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

Отделите интерес от подтверждённой отправки

События отвечают на разные вопросы. page_view показывает просмотр, service_view — просмотр страницы услуги, quote_request_click — нажатие призыва к обращению. email_click, phone_click и whatsapp_click фиксируют переход по соответствующей ссылке: они не подтверждают отправленное письмо, состоявшийся разговор или сообщение.

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

Есть важная граница: события до разрешения не накапливаются для последующей отправки. Если человек начал заполнять форму без аналитики, а согласился позже, начало не воспроизводится задним числом. Успешная заявка при действующем согласии может поэтому появиться без form_start. Воронка «просмотр → начало → отправка» не является полным журналом всех посетителей.

Почему ошибка и долгое ожидание не должны превращаться в успех

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

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

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

Проверяйте содержимое аналитики, а не только названия событий

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

Риск существует и в адресах страниц: имя или email иногда попадают в параметры ссылки. Здесь page_location и заголовок формируются из реестра страниц; строка запроса и фрагмент исключены. Для источников используются известные домены без их путей и параметров, а для UTM — конечные списки допустимых значений. Неизвестное название кампании не отправляется просто потому, что похоже на безопасный текст.

Это ограничение передаваемого приложением содержимого, а не утверждение, что GA4 вообще не использует технические идентификаторы. Google отдельно предостерегает от передачи PII через поля, URL, заголовки и кампании. При каждой новой форме или схеме меток эту проверку необходимо повторять.

Проверьте согласие в сетевых запросах браузера

Ниже приведено ожидаемое поведение текущей реализации и порядок самостоятельной проверки. Откройте основной сайт в чистом профиле, запустите DevTools → Network до перезагрузки. Проверьте отдельно загрузку gtag/js и запросы collect к доменам Google Analytics. Один фильтр collect не показывает, загружался ли сам тег.

Проверка Basic Consent Mode
ДействиеОжидаемое поведениеЕсли результат отличается
Перезагрузка без сохранённого выбораНет загрузки Google-тега и запросов измерения GoogleИскать второй тег, сохранённое согласие или расширение браузера
Отклонить, перейти на другую страницуАналитика остаётся выключенной; сайт доступенПроверить обработчик отказа и загрузку сторонних скриптов
Разрешить аналитикуЗагружается тег; отправляется page_view текущей страницыПроверить домен, блокировщик, сеть и применение выбора
Перезагрузить после разрешенияВыбор сохраняется; измерение начинается согласно емуПроверить запись, её срок и доступность хранилища
Отозвать разрешение и затем перейти по сайтуНовые измерения прекращаются; доступные cookie GA4 удаляютсяОчистить журнал после отзыва и проверить время старта новых запросов
Перезагрузить после отзываСохранённый отказ не разрешает тегПроверить, не восстановилось ли прежнее согласие

Для разбора сигналов можно использовать Tag Assistant. Оценивать режим по одному закодированному полю запроса ненадёжно: важны последовательность действий и поведение тега. Сохраняйте результаты с временем и сценарием, скрывая пользовательские идентификаторы и содержимое заявок.

Отдельно проверьте форму и аварийные сценарии

Используйте согласованную тестовую заявку, чтобы команда не приняла её за клиента. Сначала разрешите аналитику; затем выполните сценарии ниже. Ошибку сервера и задержку надёжнее воспроизводить вместе с разработчиком через контролируемую подмену ответа. Медленный интернет не гарантирует нужную задержку именно формы.

Что должно происходить при отправке формы
СценарийОжидаемые события и интерфейсЧто проверить при расхождении
Неполные обязательные поляПодсказки; form_error с validation; нет generate_leadНе привязано ли событие успеха к нажатию кнопки
Успешный ответ сервисаПодтверждение; один generate_lead; переход на страницу благодарностиСверить ответ формы, событие и поступление тестовой заявки
Два быстрых нажатияОдна активная отправкаПроверить блокировку до начала асинхронного запроса
Ошибка сети или неуспешный ответПоля сохранены; form_error; нет подтверждённого успехаРазделить запрос формы и запрос аналитики
Ответ не получен за 20 секундПредупреждение о неизвестном результате; form_error с network; без generate_leadПроверить поздний ответ и отсутствие автоматической повторной отправки
Успешная отправка после отказа от аналитикиФорма работает; события Google не отправляютсяПроверить независимость доставки заявки от аналитики

Обновите страницу благодарности отдельно: ожидается просмотр при согласии, но не новая заявка. Повторите ключевые сценарии на мобильном устройстве. Отправку без JavaScript также проверяют отдельно: нативная форма может работать, однако браузерного события GA4 в этом сценарии нет.

Сопоставьте запрос, событие и фактическое обращение

Успешный сетевой ответ на collect показывает, что запрос завершился; этого недостаточно для вывода о корректности всех отчётов. Проверьте событие и его параметры в GA4. Для DebugView нужен включённый режим отладки: простой переход по сайту не обязан там появляться. В нашей архитектуре разработчику следует убедиться, что отладка включена именно для тега в служебном фрейме.

Google предупреждает, что ограничения конфиденциальности и отсутствие согласия могут исключать события из DebugView. Данные об источниках в оперативных представлениях ограничены; окончательную атрибуцию нужно оценивать в отчётах привлечения после обработки. Поэтому пустой экран сам по себе не указывает, какой слой неисправен.

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

Полезные материалы

Официальные и профильные ссылки

Эти материалы дают контекст для данных, правил и рекомендаций на странице.

B2B-запрос

Обсудить проект

Расскажите о компании, целевом рынке и задаче. Состав работ и стоимость определяются индивидуально.

Отправляя запрос, вы передаёте указанные данные Salestudia для ответа на ваш B2B-запрос. Обработка формы выполняется через Formspree и может включать передачу данных в США. Подробнее — в Политике конфиденциальности. Не отправляйте медицинские сведения, документы, платёжные реквизиты и другие чувствительные данные.

Отправка через Formspree
Прямой контакт

Удобнее написать напрямую?

Коротко укажите компанию, рынок и задачу — так разговор будет предметнее.