Google Analytics 4 показывает, что посетители делают на сайте. Google Tag Manager управляет кодом аналитики и правилами отправки событий. Google Ads использует часть этих событий как конверсии для отчетов и автоматических стратегий. Для точной работы нужно связать все три сервиса и определить, в какой момент действие пользователя становится подтвержденной конверсией.
Это первая часть комплекта из двух материалов. После ручной настройки переходите к практическому руководству как проверить GA4, GTM и Google Ads с помощью Codex: в нем разобраны безопасная передача управления браузером, автоматизированный аудит, повторное тестирование и публикация только после подтверждения владельца.
В этом руководстве мы настроим рабочую схему для сайта услуг или недвижимости:
- установим Google Tag Manager без дублирования тегов;
- подключим веб-поток Google Analytics 4;
- передадим клики по телефону и подтвержденные заявки;
- создадим конверсии Google Ads;
- добавим параметры страницы, языка, рекламной кампании и уникальный идентификатор события;
- настроим Consent Mode v2;
- проверим контейнер через Preview, Tag Assistant и GA4 DebugView;
- опубликуем контейнер только после безопасного теста.
Скриншоты в статье сделаны во время реальной настройки многоязычного сайта. На них видны рабочие названия тегов и идентификаторы проекта. В своем контейнере используйте собственные значения. Идентификаторы формата G-..., GTM-... и AW-... нельзя копировать из чужого примера.
Как устроена схема измерения
Браузер посетителя сначала загружает сайт и контейнер GTM. Код сайта сообщает о действиях через dataLayer.push(). GTM принимает событие, проверяет триггер и запускает нужные теги. GA4 получает аналитическое событие, а Google Ads получает конверсию, если пользователь дал требуемое согласие и событие соответствует бизнес-условиям.
Для заявки правильная последовательность выглядит так:
- Посетитель начинает заполнять форму.
- Сайт отправляет
form_startвdataLayer. - Посетитель нажимает кнопку отправки.
- Сервер проверяет поля, принимает заявку и возвращает успешный JSON-ответ.
- Только после этого сайт отправляет
generate_lead. - GTM передает
generate_leadв GA4 и Google Ads.
Обычный клик по кнопке Submit нельзя считать заявкой. Сервер может отклонить форму, почтовый сервис может вернуть ошибку, а посетитель может несколько раз нажать кнопку. Если конверсия срабатывает на каждый клик, рекламная система получает завышенные данные и учится на действиях, которые не принесли лид.
Для клика по номеру телефона подтверждение сервера обычно отсутствует. Событие phone_click означает намерение позвонить, а не состоявшийся разговор. Его можно использовать как отдельную конверсию, но в отчетах нужно отличать телефонный клик от полученного звонка.
Что подготовить до настройки
Понадобятся следующие доступы:
- право редактировать код сайта или настройки CMS;
- доступ к Google Tag Manager с правом публикации;
- роль Editor или Administrator в GA4;
- административный доступ к нужному аккаунту Google Ads;
- тестовый телефон, форма и возможность проверить ответ сервера;
- политика конфиденциальности и согласованная логика cookie-баннера.
До изменений выпишите текущие идентификаторы и способы загрузки аналитики. Ищите в HTML, шаблонах CMS и плагинах строки GTM-, G-, AW-, gtag.js, googletagmanager.com и google-analytics.com. Один сайт часто загружает Google Tag через тему, плагин, GTM и отдельный рекламный скрипт одновременно. Такая смесь создает повторные page_view и конверсии.
Выберите один основной способ управления. В этом руководстве основным загрузчиком будет GTM. На странице остается один контейнер GTM, а GA4 и Google Ads настраиваются внутри него. Исключение допустимо во время контролируемого перехода со старой схемы, но старый и новый conversion-тег не должны одновременно отправлять одну конверсию.
Шаг 1. Создайте или проверьте ресурс Google Analytics 4
Откройте Google Analytics и выберите нужный аккаунт. Если ресурса еще нет, откройте раздел администратора, создайте ресурс GA4 и укажите часовой пояс и валюту отчетности. Эти параметры влияют на границы дня и денежные показатели, поэтому выбирайте их по бизнесу, а не по месту нахождения разработчика.
Затем откройте:
Администратор → Сбор и изменение данных → Потоки данных → Веб.
Создайте веб-поток, укажите основной адрес сайта и понятное название. В карточке потока найдите идентификатор измерения вида:
G-XXXXXXXXXX Идентификатор потока, который состоит только из цифр, не заменяет Measurement ID. Для GTM нужен код, начинающийся с G-.

Google пишет, что после установки тега первые данные могут появиться в отчетах не мгновенно. Для первичной проверки используйте Realtime и DebugView, а не обычные отчеты за день. Официальная инструкция по созданию ресурса и потока: Set up Analytics for a website.
Проверьте расширенную статистику
GA4 умеет автоматически измерять прокрутку, исходящие клики, поиск по сайту, загрузку файлов, просмотр видео и взаимодействие с формами. Откройте настройки расширенной статистики и оставьте только те функции, которые не дублируют ваш собственный код.
Если сайт отправляет надежные form_start и generate_lead, автоматические «Взаимодействия с формами» лучше отключить. Автоматический form_submit может сработать до подтверждения сервера или не понять JavaScript-форму. Прокрутку, исходящие клики и загрузки файлов можно оставить, если вы не отправляете аналогичные события через собственный скрипт.
Шаг 2. Создайте контейнер Google Tag Manager
Откройте Google Tag Manager, создайте аккаунт и веб-контейнер. Укажите страну, название сайта и платформу Web. После создания GTM покажет идентификатор вида:
GTM-XXXXXXX Не путайте его с G-... из Analytics и AW-... из Google Ads.

Нажмите на идентификатор контейнера в верхней части интерфейса. GTM покажет два фрагмента кода. Первый вставьте как можно выше внутри <head>, второй сразу после открывающего тега <body>.
Упрощенный пример:
<!doctype html>
<html lang="ru">
<head>
<!-- Google Tag Manager -->
<script>
(function(w,d,s,l,i){
w[l]=w[l]||[];
w[l].push({'gtm.start': new Date().getTime(), event:'gtm.js'});
var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),
dl=l!='dataLayer'?'&l='+l:'';
j.async=true;
j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;
f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXXXXX');
</script>
<!-- End Google Tag Manager -->
</head>
<body>
<!-- Google Tag Manager (noscript) -->
<noscript>
<iframe src="https://www.googletagmanager.com/ns.html?id=GTM-XXXXXXX"
height="0" width="0" style="display:none;visibility:hidden"></iframe>
</noscript>
<!-- End Google Tag Manager (noscript) --> Копируйте код из своего контейнера, а не из статьи. Google обновляет рекомендуемый фрагмент. Актуальная инструкция: Install a web container.
Как проверить установку контейнера
Откройте исходный код страницы и найдите свой GTM-.... На каждой рабочей странице должны находиться один основной script и один noscript с тем же ID. Затем откройте Network в инструментах разработчика и отфильтруйте запросы по gtm.js.
Если вы видите два запроса к одному контейнеру, найдите второй загрузчик. Частые причины:
- код добавлен и в тему, и через плагин;
- GTM вставлен в общий header и в отдельный шаблон лендинга;
- оптимизационный скрипт повторно создает
<script>; - на части страниц остался старый контейнер.
Пока контейнер пуст, он ничего полезного не отправляет. Установка GTM и настройка тегов являются двумя отдельными этапами.
Шаг 3. Добавьте Google Tag для GA4
В GTM откройте Теги → Создать и задайте понятное имя, например:
Google Tag - GA4 Выберите тип Тег Google, вставьте свой Measurement ID G-XXXXXXXXXX и назначьте триггер All Pages.
В реальном проекте на скриншоте использован Initialization - All Pages, потому что сайт задавал состояние Consent Mode до загрузки контейнера и должен был подготовить Google Tag раньше событий. Для обычной установки выбирайте All Pages. Используйте Initialization только тогда, когда понимаете порядок consent-команд и проверили его в Tag Assistant.

Сохраните тег, но контейнер пока не публикуйте.
Шаг 4. Добавьте Conversion Linker
Conversion Linker сохраняет информацию о рекламном клике в first-party cookies сайта. Без него Google Ads может хуже связывать конверсию с рекламным переходом, особенно в браузерах с ограничениями сторонних cookies.
Создайте тег:
НазваниеConversion Linker - All PagesТипСвязывание конверсий / Conversion LinkerТриггерAll Pages
Для одного домена и его поддоменов отдельное cross-domain linking обычно не требуется, если cookies доступны на нужных поддоменах. Связывание между доменами нужно, когда путь пользователя проходит через другой корневой домен, например внешний сервис бронирования или платежную страницу. Не включайте эту функцию без реального междоменного маршрута.
Google описывает назначение Conversion Linker в руководстве How Google Ads tracks website conversions.
Шаг 5. Спроектируйте события до настройки тегов
Сначала составьте список действий и условия их отправки. Для сайта услуг подходит такой набор:
form_start: первое заполнение поля формы;generate_lead: сервер подтвердил прием заявки;phone_click: клик по ссылкеtel:;email_click: клик поmailto:;chat_open: посетитель открыл чат;chat_message_sent: сервер чата подтвердил первое сообщение;social_click: переход в социальную сеть;pdf_download: скачивание PDF;gallery_open: открытие галереи;language_change: переход на другую языковую версию;property_viewилиservice_view: просмотр конкретного объекта или услуги.
GA4 различает регистр: generate_lead и Generate_Lead станут разными событиями. Используйте латинские буквы, цифры и нижнее подчеркивание. Начинайте имя с буквы. Проверяйте список зарезервированных имен в правилах именования событий GA4.
Какие параметры передавать
Событие становится полезнее, если оно содержит контекст. Для большинства действий можно передавать:
page_location
page_path
page_language
form_id
phone_number
property_name
social_network
utm_source
utm_medium
utm_campaign
utm_term
utm_content
event_id Не отправляйте в GA4 имя, email, личный телефон, текст сообщения формы и другие данные, по которым Google может определить человека. Политика Google запрещает передачу PII в Analytics. Это касается параметров событий, URL, заголовков страниц и UTM-меток. Подробности: Best practices to avoid sending PII.
Номер, по которому посетитель кликает на сайте, можно передать как характеристику элемента интерфейса, если это публичный номер компании. Телефон самого посетителя из формы передавать в GA4 нельзя.
Шаг 6. Создайте единый контракт dataLayer
dataLayer служит границей между сайтом и GTM. Код сайта знает, что произошло. GTM решает, куда отправить событие. Такой подход позволяет менять теги без переписывания обработчика каждого клика.
Базовая функция:
window.dataLayer = window.dataLayer || [];
function createEventId() {
if (window.crypto && crypto.randomUUID) {
return crypto.randomUUID();
}
return 'evt_' + Date.now() + '_' + Math.random().toString(16).slice(2);
}
function pushAnalyticsEvent(eventName, parameters = {}) {
const payload = {
event: eventName,
page_location: window.location.href,
page_path: window.location.pathname,
page_language: document.documentElement.lang || 'unknown',
event_id: parameters.event_id || createEventId(),
...parameters
};
window.dataLayer.push(payload);
return payload;
} Уникальный event_id помогает сопоставлять одно действие между браузерной аналитикой, CRM и серверными системами. В Google Ads conversion-теге его можно передать как Transaction ID. Повтор с тем же ID не должен создавать вторую конверсию.
Клик по телефону
Используйте делегированный обработчик, чтобы он работал и для ссылок, добавленных после загрузки страницы:
document.addEventListener('click', function (event) {
const link = event.target.closest('a[href^="tel:"]');
if (!link) return;
const phone = link.getAttribute('href').replace(/^tel:/, '').trim();
pushAnalyticsEvent('phone_click', {
phone_number: phone
});
}); Не вызывайте preventDefault() ради аналитики. Переход к звонку должен работать даже при блокировке Google, ошибке GTM или медленном интернете.
Подтвержденная заявка
Форма должна ждать ответ своего сервера:
form.addEventListener('submit', async function (event) {
event.preventDefault();
const eventId = createEventId();
const formData = new FormData(form);
formData.set('event_id', eventId);
try {
const response = await fetch(form.action, {
method: 'POST',
body: formData,
headers: { 'Accept': 'application/json' }
});
const result = await response.json();
if (!response.ok || result.ok !== true) {
throw new Error(result.error || 'form_rejected');
}
pushAnalyticsEvent('generate_lead', {
event_id: eventId,
form_id: form.id || 'contact_form'
});
form.reset();
showSuccessMessage();
} catch (error) {
showFormError();
}
}); Сервер обязан вернуть успех только после своей валидации и приема заявки. Ответ может выглядеть так:
{
"ok": true,
"event_id": "2c888d1d-24bf-4ce1-a7e3-741a83bca550"
} Если сервер возвращает 422, 429 или 500, событие generate_lead не отправляется. Так рекламная конверсия соответствует принятой заявке.
Шаг 7. Создайте переменные уровня данных в GTM
GTM должен прочитать параметры из dataLayer. Откройте Переменные → Пользовательские переменные → Создать и выберите Переменная уровня данных.
Для каждого параметра создайте отдельную переменную. Пример:
Название GTMDLV - event_idИмя переменной уровня данныхevent_idВерсия уровня данных2Повторите для phone_number, form_id, page_language, property_name и рекламных параметров, которые действительно нужны тегам.

Создавать десятки переменных «на будущее» не стоит. Каждая переменная усложняет аудит. Добавляйте параметр, если его использует тег, условие триггера или отчет.
Шаг 8. Создайте триггеры специальных событий
Для клика по телефону:
НазваниеCE - phone_clickТипСпециальное событие / Custom EventИмя событияphone_clickАктивацияВсе специальные событияДля заявки:
НазваниеCE - generate_leadТипСпециальное событие / Custom EventИмя событияgenerate_leadАктивацияВсе специальные событияПрефикс CE означает Custom Event. Он не обязателен, но помогает быстро отличить триггеры событий от Page View, Click и Initialization.
Шаг 9. Передайте phone_click в GA4
Создайте тег Google Analytics: событие GA4 или актуальный эквивалент Google Tag Event. Укажите ваш Google Tag, имя phone_click и параметры:
phone_number = {{DLV - phone_number}}
page_language = {{DLV - page_language}}
event_id = {{DLV - event_id}} Назначьте триггер CE - phone_click.

Шаг 10. Передайте generate_lead в GA4
Создайте отдельный GA4 Event tag:
НазваниеGA4 Event - generate_leadИмя событияgenerate_leadТриггерCE - generate_leadДобавьте event_id, form_id, page_language и безопасные атрибуционные параметры. Не добавляйте значения полей формы с персональными данными.

Шаг 11. Настройте базовый Google Tag для Ads
В Google Ads найдите Google tag ID аккаунта вида:
AW-12345678901 В GTM создайте Тег Google, вставьте AW-... и назначьте All Pages. Если контейнер просит числовой Conversion ID в шаблоне conversion-тега, указывайте только цифры. В базовом Google Tag обычно используется полный формат AW-....

Не добавляйте второй Google Tag в HTML, если тот же Ads destination уже подключен через GTM или связан с существующим Google Tag. Google рекомендует не устанавливать один и тот же tag повторно: Tag your website using Google Ads.
Шаг 12. Создайте конверсию формы в Google Ads
Интерфейс Google Ads меняется, но логика остается прежней. Откройте Цели → Конверсии → Сводка, нажмите создание новой конверсии и выберите сайт.

Выберите категорию, которая соответствует форме лида.

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

Рекомендуемые начальные параметры для лида:
- название: понятное бизнесу, например
Website Form Lead; - ценность: не задавать вымышленную сумму, если у вас нет модели ценности;
- учет:
Одна, чтобы несколько повторов после одного рекламного клика не раздували число уникальных лидов; - окно конверсии: по длительности цикла принятия решения;
- модель атрибуции: Data-driven, если она доступна;
- оптимизация: сначала второстепенное действие на этапе проверки.
Для продаж интернет-магазина учет часто ставят Каждая, потому что один покупатель может сделать несколько заказов. Для лидов Google отдельно объясняет выбор One и Every в conversion counting options.
Не назначайте фиктивную ценность 1 или 100 только ради заполнения поля. Если все лиды пока равноценны, можно не передавать value. Позже добавьте реальную оценку, основанную на доле квалифицированных лидов, продажах и среднем доходе.
На этапе настройки оставьте новую конверсию второстепенной. Она появится в All conversions, но не начнет менять автоматические ставки до проверки.

После создания Google Ads покажет Conversion ID и Conversion Label. Сохраните оба значения:
Conversion ID12345678901Conversion LabelAbCdEfGhIjKLMnOpQrШаг 13. Создайте Google Ads conversion-тег в GTM
Откройте GTM и создайте тег Отслеживание конверсий в Google Рекламе.
Для заявки заполните:
Conversion IDчисловой ID из Google AdsConversion Labelярлык из Google AdsTransaction ID{{DLV - event_id}}TriggerCE - generate_leadTransaction ID защищает от повторной отправки одного события с тем же event_id. Он не заменяет серверную защиту формы, но снижает риск дублей в Google Ads.
Для телефонного клика создайте отдельную conversion action и отдельный GTM-тег. Не используйте один ярлык для формы и телефона. Эти действия имеют разную ценность и качество.

Проверьте регистр символов в Conversion Label. Ошибка в одной букве отправит запрос не в ту конверсию или оставит статус неактивным.
Шаг 14. Свяжите Google Analytics 4 и Google Ads
В GA4 откройте:
Администратор → Связи с продуктами → Связи с Google Рекламой → Связать.
Выберите нужный Ads-аккаунт. Для связи нужны права Editor или Administrator в Analytics и административный доступ в Google Ads. После связи рекламные данные могут появляться в GA4 с задержкой.
Связь позволяет использовать аудитории GA4 в Ads, видеть рекламные показатели в Analytics и создавать Google Ads conversions на основе key events GA4. Официальные шаги: Connect Google Ads to Google Analytics.
Выберите один основной путь конверсии
Есть два рабочих варианта:
- Прямой Google Ads conversion-тег в GTM.
- Событие GA4, отмеченное как key event, затем созданная на его основе конверсия Google Ads.
Не включайте оба варианта как две главные конверсии для одного generate_lead. В отчетах появятся два действия на одну заявку, а стратегия ставок может оптимизироваться по дублям.
Для критичных рекламных лидов удобен прямой Ads tag: вы сразу контролируете Conversion ID, Label, consent и Transaction ID. GA4 получает параллельное аналитическое событие. Импорт из GA4 подойдет команде, которая хочет управлять бизнес-событиями из одного места. Выберите один путь и задокументируйте решение.
Шаг 15. Передайте рекламную атрибуцию
В Google Ads включите auto-tagging. После клика реклама добавляет к URL gclid, а в некоторых сценариях используются gbraid или wbraid. Conversion Linker сохраняет сведения о клике в first-party cookies.
Google объясняет, что auto-tagging связывает рекламный клик, кампанию и данные конверсии: About auto-tagging.
Дополнительно можно сохранять UTM-параметры:
utm_source
utm_medium
utm_campaign
utm_term
utm_content Для сквозной аналитики полезно различать first touch и last touch. First touch показывает первый известный источник посетителя. Last touch обновляется при новом размеченном переходе. Не перезаписывайте first touch каждым визитом.
Пример чтения параметров:
const TRACKING_KEYS = [
'utm_source',
'utm_medium',
'utm_campaign',
'utm_term',
'utm_content',
'gclid',
'gbraid',
'wbraid'
];
function readTrackingFromUrl() {
const params = new URLSearchParams(window.location.search);
const result = {};
TRACKING_KEYS.forEach(function (key) {
const value = params.get(key);
if (value) result[key] = value.slice(0, 500);
});
return result;
} Записывайте такие данные в cookies или localStorage только в рамках вашей политики согласия. Для передачи в CRM сервер должен проверять длину, формат и допустимые символы. Скрытые поля формы нельзя считать доверенным источником.

Шаг 16. Настройте остальные события без десятков одинаковых тегов
Для небольшого контейнера можно создать отдельный GA4-тег для каждого события. Для большого набора однотипных engagement-событий удобен один динамический тег.
Сначала добавьте безопасные переменные, например social_network, file_name, email_domain, destination_language и property_name.

Создайте Custom Event trigger с регулярным выражением:
^(email_click|social_click|pdf_download|chat_open|chat_message_sent|form_start|property_view|gallery_open|language_change)$ Обязательно включите режим регулярного выражения. Иначе GTM будет ждать событие с буквальным именем ^(...)$.

Создайте GA4 Event tag, укажите {{Event}} как имя события и добавьте общие параметры.


Не включайте phone_click и generate_lead в общий тег, если для них уже созданы отдельные GA4-теги. Иначе GA4 получит два одинаковых события.
Шаг 17. Настройте Consent Mode v2
Consent Mode не заменяет cookie-баннер и юридическое основание. Он передает Google состояние выбора пользователя и меняет поведение Google tags. В базовой реализации Google tags блокируются до согласия. В расширенной реализации они могут загружаться при denied и отправлять cookieless pings. Выберите режим вместе со специалистом по privacy и проверьте его фактическое поведение в Tag Assistant.
Для Consent Mode v2 используются четыре параметра:
analytics_storage
ad_storage
ad_user_data
ad_personalization До выбора пользователя для европейского сценария часто задают denied, затем обновляют состояние после явного действия. Конкретная логика зависит от вашей юрисдикции, CMP и политики компании.
Пример default state до загрузки GTM:
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){ dataLayer.push(arguments); }
gtag('consent', 'default', {
ad_storage: 'denied',
analytics_storage: 'denied',
ad_user_data: 'denied',
ad_personalization: 'denied',
wait_for_update: 500
});
</script> После выбора «Разрешить аналитику, запретить маркетинг»:
gtag('consent', 'update', {
analytics_storage: 'granted',
ad_storage: 'denied',
ad_user_data: 'denied',
ad_personalization: 'denied'
}); После «Принять все»:
gtag('consent', 'update', {
analytics_storage: 'granted',
ad_storage: 'granted',
ad_user_data: 'granted',
ad_personalization: 'granted'
}); Если вы загружаете собственный consent template через GTM, Google рекомендует Tag Manager Consent APIs, а не обычную очередь gtag внутри шаблона. Изучите актуальное руководство Set up consent mode on websites.
В GTM включите Consent Overview и проверьте встроенные consent checks у каждого Google tag.


Cookie-баннер должен позволять отказаться от необязательных категорий так же легко, как согласиться, и давать возможность изменить выбор позже. Не используйте заранее включенные маркетинговые переключатели. Текст баннера, сроки хранения и список поставщиков согласуйте с юристом или специалистом по защите данных.
Шаг 18. Проверьте контейнер без ложных Ads-конверсий
Preview полезен, но тестовый generate_lead может отправиться в Google Ads как настоящая конверсия. Есть два безопасных подхода:
- блокировать Ads conversion-теги в Debug Mode;
- тестировать с отказом от advertising consent и отдельно проверять GA4.
Для дополнительной защиты включите встроенную переменную Debug Mode. Создайте trigger exception:

Добавьте это исключение в conversion-тег телефона и формы, не удаляя их основные триггеры.


Запустите Preview
Нажмите Предварительный просмотр, введите адрес сайта и подключитесь через Tag Assistant. Откройте сайт в появившемся окне и выполните тестовые действия.
На сводке должны загрузиться базовые теги:
- Google Tag GA4;
- Conversion Linker;
- Google Tag Ads.
Событийные теги не должны запускаться без соответствующего действия.

Проверьте последовательность consent-событий. Сначала должен появиться default state, затем update после выбора пользователя. Убедитесь, что до согласия рекламные хранилища остаются denied.
Далее выполните тесты:
- Нажмите на телефон и выберите событие
phone_clickслева. - Проверьте вкладку Variables: номер компании, язык, страница и
event_idдолжны быть заполнены. - Убедитесь, что GA4 Event tag сработал один раз.
- Ads conversion tag в Debug Mode должен быть заблокирован exception-триггером.
- Начните заполнять форму и проверьте однократный
form_start. - Для
generate_leadиспользуйте безопасный тестовый endpoint или отдельную тестовую форму, если настоящая отправка создает письмо и CRM-лид. - Проверьте отсутствие ошибок в Console и Tag Assistant.
Шаг 19. Проверьте события в GA4 DebugView
Preview через Tag Assistant включает debug mode для вашего устройства. В GA4 откройте:
Администратор → Отображение данных → DebugView.
Выберите свое устройство и найдите phone_click, form_start, generate_lead. Откройте событие и проверьте параметры. Google отмечает, что события не появятся в DebugView, если клиентские privacy controls или consent не разрешают Analytics storage. Официальная инструкция: Monitor events in DebugView.
Realtime подтверждает поступление события, а DebugView помогает увидеть последовательность и параметры. Обычные отчеты и пользовательские определения могут заполняться позже.
Шаг 20. Создайте пользовательские параметры в GA4
GA4 принимает пользовательский параметр сразу, но стандартные отчеты не всегда показывают его как измерение. Для анализа page_language, property_name, form_id или social_network создайте event-scoped custom dimensions:
Администратор → Отображение данных → Пользовательские определения → Создать специальный параметр.
Укажите понятное название, область Событие и точное имя параметра. Не создавайте custom dimension для уникального event_id: высокая кардинальность ухудшает отчеты. event_id нужен для диагностики и дедупликации, а не для группировки тысяч строк.
Google рекомендует сначала использовать встроенные dimensions, а пользовательские создавать только для дополнительных данных. Подробнее: About custom dimensions and metrics.
Шаг 21. Отметьте generate_lead как key event
После того как GA4 получил событие, откройте список событий и отметьте generate_lead как key event. Не помечайте каждое engagement-событие. gallery_open или social_click полезны для анализа, но не обязательно отражают конечный результат бизнеса.
Если вы используете прямой Google Ads conversion-тег, GA4 key event остается полезным для аналитики. Не создавайте из него вторую главную Ads-конверсию для того же лида.
Шаг 22. Опубликуйте контейнер
Публикуйте только после Preview и DebugView. Нажмите Отправить, создайте версию и используйте описание, по которому можно восстановить смысл изменений:
GA4, phone_click, generate_lead, Ads conversions and Consent Mode v2 - 2026-07-17 В примечании перечислите новые теги, триггеры, переменные, ограничения consent и результаты теста. После публикации выполните smoke-check в обычном окне без Preview:
- один запрос
gtm.js; - один
page_view; - cookie-баннер показывает ожидаемое состояние;
phone_clickпоявляется в Realtime;- подтвержденная тестовая заявка создает один
generate_lead; - Google Ads conversion action начинает получать диагностический статус;
- старый conversion-скрипт больше не дублирует событие.
Статус Google Ads может обновляться с задержкой. Не отправляйте серию реальных форм ради ускорения проверки.
Многоязычный сайт и поддомены
Для версий www.example.com, en.example.com и de.example.com можно использовать один контейнер, если сайты принадлежат одному бизнесу и используют общий план событий. Передавайте page_language и проверяйте, что контейнер установлен на всех активных шаблонах.
Cross-domain linking не требуется только из-за наличия поддомена. Проверьте область cookies и маршруты пользователя. Если форма или оплата находятся на другом корневом домене, настройте междоменное измерение и исключения нежелательных referrals.
Для каждой языковой версии проверьте:
- одинаковый GTM container ID;
- отсутствие старых
G-иAW-в отдельных шаблонах; - корректный
langв HTML; - одинаковое имя
generate_lead; - перевод сообщений формы не меняет технический JSON-контракт;
- consent default выполняется до Google tags.
Enhanced Conversions для лидов
Обычный GA4 запрещает отправлять email и телефон посетителя. Enhanced Conversions for Leads работает по отдельным правилам Google Ads и использует нормализованные, хешированные пользовательские данные при наличии необходимого согласия и принятых Customer Data Terms.
Не добавляйте email в обычный GA4 Event tag. Для enhanced conversions используйте специальную настройку Google Ads, защищенный источник данных и точное сопоставление с conversion action. Начните после того, как базовые конверсии работают без дублей. Руководство Google: Configure Google Tag Manager for enhanced conversions for leads.
Частые ошибки и способы проверки
В GA4 нет посетителей
Проверьте Network-запрос gtm.js, наличие Google Tag в опубликованной версии, Measurement ID и consent. Если Tag Assistant видит контейнер, но GA4 tag отсутствует, контейнер может быть пустым или тег остался в черновике.
Page view отправляется дважды
Ищите второй gtag.js, плагин Analytics, Site Kit, встроенный код темы или второй GTM. Проверьте все языковые шаблоны, лендинги и страницы контактов.
form_submit срабатывает, а заявки нет
Перенесите conversion trigger на серверно подтвержденный generate_lead. Нажатие кнопки и DOM submit не подтверждают прием данных.
generate_lead отправляется дважды
Проверьте, не включены ли автоматические form interactions GA4, отдельный GA4 tag и динамический engagement tag одновременно. Найдите два обработчика submit. Используйте один event_id на одну попытку, подтвержденную сервером.
Телефонная конверсия дублируется
Старый inline gtag('event','conversion') может работать параллельно с новым GTM tag. Оставьте один путь. Во время миграции можно добавить временное условие, которое блокирует новый тег до удаления старого механизма.
Google Ads tag не запускается в Preview
Это может быть правильным результатом. Проверьте Debug Mode exception и состояние ad_storage, ad_user_data, ad_personalization. Затем проведите отдельный контролируемый тест после публикации.
Событие есть, но параметра нет в отчетах
Откройте DebugView и проверьте, что параметр поступает. Затем создайте event-scoped custom dimension. Подождите обработку данных. Не создавайте dimension для высококардинальных уникальных ID.
Google Ads видит две конверсии на одну форму
Проверьте прямой Ads conversion tag и импорт GA4 key event. Оставьте одну основную conversion action. Вторую исключите из целей кампании или переведите во второстепенную, если она нужна для сравнения.
UTM пропадают после перехода между страницами
URL-параметры существуют только на landing page. Сохраните разрешенную атрибуцию после входа и добавляйте ее в последующие dataLayer-события. Учитывайте consent, срок хранения и поддомены.
Финальный чек-лист
Перед публикацией убедитесь, что:
- на странице загружается один GTM container;
- в контейнере есть один основной GA4 Google Tag;
- Conversion Linker запускается на всех landing pages;
phone_clickвозникает один раз на клик;generate_leadвозникает только после успешного ответа сервера;- форма с ошибкой не создает конверсию;
- каждый лид получает стабильный
event_id; - PII не попадает в GA4, URL и UTM;
- Ads conversion ID и Label взяты из одной conversion action;
- форма и телефон используют разные conversion actions;
- новая Ads-конверсия сначала проверяется как второстепенная;
- прямой Ads tag не дублируется импортом GA4;
- auto-tagging включен;
- GA4 и Ads связаны;
- Consent Mode v2 передает четыре состояния;
- пользователь может изменить consent;
- Preview не отправляет ложные Ads-конверсии;
- DebugView показывает нужные события и параметры;
- версия GTM имеет понятное название и описание;
- после публикации проведен один контролируемый smoke-test.
Итог
Надежная аналитика строится вокруг точного бизнес-события. GTM не должен угадывать успех заявки по тексту кнопки, а Google Ads не должен получать каждую попытку отправки как лид. Сайт подтверждает действие, dataLayer передает единый контракт, GTM направляет событие в GA4 и Ads, Consent Mode учитывает выбор пользователя, а Tag Assistant показывает фактический порядок работы.
Начните с двух конверсий: подтвержденная форма и телефонный клик. Проверьте их до публикации, удалите старые дубли и только затем добавляйте чат, социальные переходы, enhanced conversions и CRM-этапы. Такой порядок сохраняет понятную причинно-следственную связь и дает рекламным стратегиям данные, которым можно доверять.
Нужна помощь с настройкой аналитики и рекламы?
Самостоятельная настройка требует доступа к сайту, Google Analytics, Google Tag Manager и Google Ads. Нужно проверить старые теги, исключить двойной учет, согласовать конверсии и протестировать каждое событие до публикации. Ошибка на одном из этих этапов искажает отчеты и передает рекламным алгоритмам неверные сигналы.
Студия APEX IOINC с удовольствием выполнит настройку под ключ или проведет аудит уже работающей системы. Мы можем:
- установить и настроить Google Analytics 4 и Google Tag Manager;
- настроить заявки, телефонные клики, чат и другие события;
- связать GA4 с Google Ads и настроить рекламные конверсии;
- внедрить Consent Mode v2 и проверить порядок получения согласия;
- найти дубли тегов и ошибочные конверсии;
- проверить работу через Tag Assistant, DebugView и тестовые заявки;
- передать рекламную атрибуцию в CRM и подготовить сквозную аналитику.
Мы сначала изучим сайт и текущие подключения, затем согласуем список бизнес-целей. После настройки вы получите проверенный контейнер, понятную схему событий и данные, которые можно использовать для оценки рекламы.
Хотите заказать настройку Google Analytics, Google Tag Manager или Google Ads? Обсудите проект с APEX IOINC или напишите нам в Telegram.
Официальные материалы Google
- Установка веб-контейнера Google Tag Manager
- Настройка Google Analytics 4 для сайта
- Настройка веб-конверсий Google Ads
- Ручная настройка конверсий Google Ads
- Связывание Google Analytics и Google Ads
- Consent Mode v2
- GA4 DebugView
- Auto-tagging в Google Ads
- Запрет передачи PII в Google Analytics
- Enhanced Conversions for Leads через GTM