TUTORIAL 18.07.202622 мин

Как настроить Google Tag Manager, Google Analytics 4 и конверсии Google Ads: пошаговое
руководство

Практическое руководство: настройка Google Tag Manager, GA4, событий, подтвержденных заявок, звонков, Google Ads конверсий, Consent Mode v2 и проверки через Tag Assistant. 24 скриншота из реального проекта.

2026

TUTORIAL

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 получает конверсию, если пользователь дал требуемое согласие и событие соответствует бизнес-условиям.

Для заявки правильная последовательность выглядит так:

  1. Посетитель начинает заполнять форму.
  2. Сайт отправляет form_start в dataLayer.
  3. Посетитель нажимает кнопку отправки.
  4. Сервер проверяет поля, принимает заявку и возвращает успешный JSON-ответ.
  5. Только после этого сайт отправляет generate_lead.
  6. 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-.

Сведения о веб-потоке GA4 и идентификатор измерения
Рис. 1. В карточке веб-потока отображаются URL, числовой Stream ID и нужный для тега Measurement ID формата `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.

Идентификатор контейнера Google Tag Manager
Рис. 2. Контейнер GTM имеет собственный идентификатор формата `GTM-...`

Нажмите на идентификатор контейнера в верхней части интерфейса. 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.

Google Tag GA4 в контейнере GTM
Рис. 3. Google Tag получает идентификатор `G-...` и запускается на всех страницах

Сохраните тег, но контейнер пока не публикуйте.

Шаг 4. Добавьте Conversion Linker

Conversion Linker сохраняет информацию о рекламном клике в first-party cookies сайта. Без него Google Ads может хуже связывать конверсию с рекламным переходом, особенно в браузерах с ограничениями сторонних cookies.

Создайте тег:

НазваниеConversion Linker - All PagesТипСвязывание конверсий / Conversion LinkerТриггерAll Pages
Настройка Conversion Linker
Рис. 4. Conversion Linker запускается на всех страницах, на которые может попасть посетитель после рекламного клика

Для одного домена и его поддоменов отдельное 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 и рекламных параметров, которые действительно нужны тегам.

Переменные уровня данных для событий
Рис. 5. Названия переменных GTM могут быть удобными для команды, а поле Data Layer Variable Name должно точно совпадать с ключом в `dataLayer`

Создавать десятки переменных «на будущее» не стоит. Каждая переменная усложняет аудит. Добавляйте параметр, если его использует тег, условие триггера или отчет.

Шаг 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.

Событие phone_click для GA4
Рис. 6. Один Custom Event запускает GA4-тег с параметрами телефонного клика

Шаг 10. Передайте generate_lead в GA4

Создайте отдельный GA4 Event tag:

НазваниеGA4 Event - generate_leadИмя событияgenerate_leadТриггерCE - generate_lead

Добавьте event_id, form_id, page_language и безопасные атрибуционные параметры. Не добавляйте значения полей формы с персональными данными.

Событие generate_lead для GA4
Рис. 7. Тег заявки запускается только от серверно подтвержденного события `generate_lead`

Шаг 11. Настройте базовый Google Tag для Ads

В Google Ads найдите Google tag ID аккаунта вида:

AW-12345678901

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

Базовый Google Tag для Google Ads
Рис. 8. Базовый Ads Google Tag загружается на всех страницах, а Consent Mode управляет рекламным хранилищем

Не добавляйте второй Google Tag в HTML, если тот же Ads destination уже подключен через GTM или связан с существующим Google Tag. Google рекомендует не устанавливать один и тот же tag повторно: Tag your website using Google Ads.

Шаг 12. Создайте конверсию формы в Google Ads

Интерфейс Google Ads меняется, но логика остается прежней. Откройте Цели → Конверсии → Сводка, нажмите создание новой конверсии и выберите сайт.

Выбор конверсии на сайте в Google Ads
Рис. 9. Для заявки с сайта выбирается источник Website

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

Категория отправки формы для потенциальных клиентов
Рис. 10. Категория должна описывать бизнес-действие, а не техническое имя события

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

Ручная настройка конверсии Google Ads
Рис. 11. Ручная настройка нужна, когда успех формы определяется ответом сервера, а адрес страницы не меняется

Рекомендуемые начальные параметры для лида:

  • название: понятное бизнесу, например Website Form Lead;
  • ценность: не задавать вымышленную сумму, если у вас нет модели ценности;
  • учет: Одна, чтобы несколько повторов после одного рекламного клика не раздували число уникальных лидов;
  • окно конверсии: по длительности цикла принятия решения;
  • модель атрибуции: Data-driven, если она доступна;
  • оптимизация: сначала второстепенное действие на этапе проверки.

Для продаж интернет-магазина учет часто ставят Каждая, потому что один покупатель может сделать несколько заказов. Для лидов Google отдельно объясняет выбор One и Every в conversion counting options.

Не назначайте фиктивную ценность 1 или 100 только ради заполнения поля. Если все лиды пока равноценны, можно не передавать value. Позже добавьте реальную оценку, основанную на доле квалифицированных лидов, продажах и среднем доходе.

На этапе настройки оставьте новую конверсию второстепенной. Она появится в All conversions, но не начнет менять автоматические ставки до проверки.

Конверсия как второстепенное действие
Рис. 12. Второстепенный статус снижает риск влияния новой, еще не проверенной конверсии на стратегии назначения ставок

После создания 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_lead

Transaction ID защищает от повторной отправки одного события с тем же event_id. Он не заменяет серверную защиту формы, но снижает риск дублей в Google Ads.

Для телефонного клика создайте отдельную conversion action и отдельный GTM-тег. Не используйте один ярлык для формы и телефона. Эти действия имеют разную ценность и качество.

Google Ads conversion-тег телефонного клика
Рис. 13. Conversion ID, Label, Transaction ID и триггер должны относиться к одной conversion action

Проверьте регистр символов в 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.

Выберите один основной путь конверсии

Есть два рабочих варианта:

  1. Прямой Google Ads conversion-тег в GTM.
  2. Событие 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 сервер должен проверять длину, формат и допустимые символы. Скрытые поля формы нельзя считать доверенным источником.

Атрибуционные переменные в GTM
Рис. 14. GTM может читать UTM и click ID из общего dataLayer-события, но долгосрочное хранение нужно согласовать с логикой consent

Шаг 16. Настройте остальные события без десятков одинаковых тегов

Для небольшого контейнера можно создать отдельный GA4-тег для каждого события. Для большого набора однотипных engagement-событий удобен один динамический тег.

Сначала добавьте безопасные переменные, например social_network, file_name, email_domain, destination_language и property_name.

Переменные дополнительных взаимодействий
Рис. 15. В Analytics передаются характеристики действия, а не персональные данные посетителя

Создайте Custom Event trigger с регулярным выражением:

^(email_click|social_click|pdf_download|chat_open|chat_message_sent|form_start|property_view|gallery_open|language_change)$

Обязательно включите режим регулярного выражения. Иначе GTM будет ждать событие с буквальным именем ^(...)$.

Regex-триггер для группы engagement-событий
Рис. 16. Якоря `^` и ` Как настроить Google Tag Manager, Google Analytics 4 и конверсии Google Ads: пошаговое руководство не дают случайному похожему событию запустить тег

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

Параметры динамического GA4 Event tag
Рис. 17. Один тег передает общий набор параметров для группы событий
Динамическое имя события в GA4-теге
Рис. 18. Встроенная переменная `{{Event}}` берет имя текущего dataLayer-события

Не включайте phone_click и generate_lead в общий тег, если для них уже созданы отдельные GA4-теги. Иначе GA4 получит два одинаковых события.

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.

Общий список тегов перед проверкой согласия
Рис. 19. Перед Preview удобно проверить список тегов, типы и триггеры в одном месте
Consent Overview в Google Tag Manager
Рис. 20. Consent Overview показывает, какие типы согласия учитывает каждый тег

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

Шаг 18. Проверьте контейнер без ложных Ads-конверсий

Preview полезен, но тестовый generate_lead может отправиться в Google Ads как настоящая конверсия. Есть два безопасных подхода:

  • блокировать Ads conversion-теги в Debug Mode;
  • тестировать с отказом от advertising consent и отдельно проверять GA4.

Для дополнительной защиты включите встроенную переменную Debug Mode. Создайте trigger exception:

НазваниеEX - Debug Mode - Ads conversionsТипCustom EventEvent name.*Use regex matchingвключеноУсловиеDebug Mode equals true
Триггер-исключение для Debug Mode
Рис. 21. Регулярное выражение `.*` с Debug Mode блокирует Ads-теги на любом тестовом событии

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

Телефонный Ads-тег с основным триггером и исключением
Рис. 22. У тега остается рабочий trigger, а Debug Mode добавляется как exception
Ads-тег формы с исключением Debug Mode
Рис. 23. Тот же exception защищает conversion-тег формы во время Preview

Запустите Preview

Нажмите Предварительный просмотр, введите адрес сайта и подключитесь через Tag Assistant. Откройте сайт в появившемся окне и выполните тестовые действия.

На сводке должны загрузиться базовые теги:

  • Google Tag GA4;
  • Conversion Linker;
  • Google Tag Ads.

Событийные теги не должны запускаться без соответствующего действия.

Сводка Tag Assistant после подключения
Рис. 24. На базовой загрузке видны активированные site-wide теги и неактивные conversion-теги

Проверьте последовательность consent-событий. Сначала должен появиться default state, затем update после выбора пользователя. Убедитесь, что до согласия рекламные хранилища остаются denied.

Далее выполните тесты:

  1. Нажмите на телефон и выберите событие phone_click слева.
  2. Проверьте вкладку Variables: номер компании, язык, страница и event_id должны быть заполнены.
  3. Убедитесь, что GA4 Event tag сработал один раз.
  4. Ads conversion tag в Debug Mode должен быть заблокирован exception-триггером.
  5. Начните заполнять форму и проверьте однократный form_start.
  6. Для generate_lead используйте безопасный тестовый endpoint или отдельную тестовую форму, если настоящая отправка создает письмо и CRM-лид.
  7. Проверьте отсутствие ошибок в 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

arrow_back Вернуться в журнал
МЕНЮ
Статус: Live
Страница: Как настроить Google Tag Manager, Google Analytics 4 и конверсии Google Ads: пошаговое руководство