7 лет практики в SEO 30+ сайтов в работе Беларусь · Россия · Казахстан Google + Яндекс Обсудить проект

GA4 через GTM: настройка + 6 обязательных событий для бизнес-сайта

Аналитика
19 сентября 2026 12 минут на чтение Аналитика
Коротко

Ставить GA4 прямо на сайт куском кода — устаревший подход. Правильно — через Google Tag Manager (GTM): контейнер один, теги внутри управляются мышкой без правок кода, есть версионирование, есть предпросмотр, есть откат. Дальше — базовая связка «GTM → GA4 config → page_view» плюс 6 событий, без которых аналитика — просто счётчик визитов: отправка формы, клик по email, клик по телефону, скролл до 75% страницы, клик по исходящей ссылке, скачивание файла. Пятиминутная проверка через DebugView, отсечение своего IP и трафика из офиса — и Metrics/Reports начинают показывать деньги, а не «сессии».

«Мы поставили GA4, но там ничего не понятно». Слышу эту фразу от каждого второго клиента, у которого GA4 стоит «просто чтобы был». Проблема не в GA4 — проблема в том, что его настраивают за 5 минут и забывают: событие page_view отправляется, всё остальное — тишина. В отчётах «Отправка форм» — 0, «Клики по кнопке звонка» — 0, конверсии — 0. Не потому что их нет, а потому что никто не сказал GA4 их считать.

Дальше — пошагово, как поставить GA4 через GTM с нуля, какие 6 событий обязательно настроить в первый день, как это проверить и что делать с внутренним трафиком, чтобы не портил статистику.

Зачем GA4 ставить через GTM, а не напрямую

Прямой код GA4 (тот, что даёт Google в интерфейсе — <script src="https://www.googletagmanager.com/gtag/js?id=G-XXX">) — работает, но плох тем, что любое новое событие требует правок в вёрстке. Захотел трекать клик по кнопке — зови разработчика, деплой, ждать пока раскатается. С GTM всё делается в веб-интерфейсе за 3-5 минут: создал триггер, привязал тег, опубликовал версию — работает.

Что даёт GTM конкретно:

Единственное разумное исключение — сайт на закрытой SaaS-платформе, куда нельзя вставить контейнер GTM. В остальных случаях GTM на сайте — стандарт с 2018 года.

Шаг 1. Создать ресурс GA4 и получить Measurement ID

Заходишь в analytics.google.com, «Администратор» → «Создать» → «Аккаунт» (или используешь существующий) → «Ресурс». Указываешь название («mostly.by» или «Основной сайт»), часовой пояс — обязательно Europe/Minsk (для белорусских клиентов) или Europe/Moscow, валюту BYN/RUB/USD в зависимости от рынка. Часовой пояс потом поменять можно, но данные до смены останутся в старом — лучше сразу правильно.

Дальше «Поток данных» → «Веб» → указываешь URL (с https://) и название потока. Google выдаёт Measurement ID формата G-XXXXXXXXXX — запиши, он нужен на шаге 3.

В настройках потока сразу включи:

Шаг 2. Установить контейнер GTM на сайт

Идёшь на tagmanager.google.com, «Создать аккаунт» → название компании → контейнер → тип «Веб» → домен. Google выдаёт две вставки:

  1. Первая — в <head>, максимально высоко (сразу после <meta charset>).
  2. Вторая — в <body>, сразу после открывающего тега.

Обе вставки — обязательны. Первая ставит сам GTM, вторая нужна для noscript-фолбэка (когда у пользователя выключен JavaScript — редко, но встречается). Ставишь их в шаблон сайта — так, чтобы код был на КАЖДОЙ странице. Проверяешь через расширение Google Tag Assistant: заходишь на сайт, кликаешь по расширению, видишь «GTM-XXX ✓».

WordPress / Битрикс / Tilda / другие CMS Для WordPress бери плагин Site Kit by Google или Insert Headers and Footers. Для Битрикса — прямая вставка в шаблон header.php. Для Tilda — «Настройки сайта» → «Ещё» → «HTML-код для вставки внутри HEAD» + «HTML-код для вставки после тега BODY». Готовые плагины типа «MonsterInsights» на WordPress использовать НЕ рекомендую — они ставят GA4 напрямую, минуя GTM, и потом не масштабируются под события.

Шаг 3. Отправить page_view из GTM в GA4

В GTM создаёшь: «Теги» → «Создать» → тип тега «Google Аналитика: конфигурация GA4» → вставляешь тот самый Measurement ID (G-XXXXXXXXXX). Триггер — «All Pages» (уже готовый, срабатывает на каждой странице). Название тега — «GA4 - Config». Сохраняешь.

Это ВСЁ, что нужно для базового трекинга. Дальше GA4 будет сам собирать page_view (визиты по URL). Осталось опубликовать контейнер («Отправить» → «Опубликовать» в правом верхнем углу GTM) и убедиться, что данные пошли — но об этом ниже, в шаге проверки.

Шаг 4. Настроить 6 обязательных событий

По одиночке они простые, вместе — превращают счётчик визитов в реальную бизнес-аналитику. Каждое событие в GTM = триггер (когда срабатывает) + тег (что отправляем в GA4).

1. form_submit — отправка формы

Зачем. Главное конверсионное событие для бизнес-сайта услуг. Без него нельзя узнать, сколько заявок принёс канал, работает ли новая landing, растут ли конверсии после правки CTA.

Как настроить. Триггер «Отправка формы» с фильтром по CSS-селектору или ID формы (например, #mstl-form form). Если сайт использует AJAX (форма не перезагружает страницу — как на большинстве современных сайтов), стандартный триггер НЕ сработает. В этом случае — Custom Event: в коде формы после успешной отправки вызываешь dataLayer.push({event: 'form_submit', form_name: 'Popup'}), а в GTM создаёшь триггер «Custom Event» с именем form_submit. Тег — GA4 Event, event_name = form_submit, параметры: form_name (из dataLayer), page_location.

2. click_email — клик по mailto-ссылке

Зачем. Половина пользователей не отправляют форму, а копируют email и пишут вручную. Без этого события такие «конверсии» невидимы.

Как настроить. Триггер «Клик — только ссылки» с фильтром «Click URL содержит mailto:». Тег — GA4 Event, event_name = click_email, параметр link_url (из встроенной переменной {{Click URL}}).

3. click_tel — клик по номеру телефона

Зачем. Аналогично email — на мобильных клик по номеру = звонок. Прямая конверсия.

Как настроить. Копия триггера выше, только «Click URL содержит tel:». Event_name — click_tel. Параметр link_url.

4. scroll_75 — доскролл до 75% страницы

Зачем. Метрика вовлечённости. Пользователь, доскроллевший до 75%, читает контент — это «прогретый» лид, а не bounce. Позволяет отделить трафик, который реально смотрит сайт, от того, кто ушёл через 3 секунды.

Как настроить. Триггер «Глубина прокрутки» → «Процент по вертикали» → 25, 50, 75, 90. Тег — GA4 Event, event_name = scroll, параметр percent_scrolled (встроенная переменная {{Scroll Depth Threshold}}). Одно событие покроет 4 порога — потом в GA4 можно строить сегменты «пользователи, доскроллевшие до 75%».

5. outbound_click — клик по внешней ссылке

Зачем. Понимать, куда уходит трафик с сайта. Если 40% пользователей уходят на страницу партнёра, а не заказывают у тебя — надо задавать вопросы к воронке.

Как настроить. Триггер «Клик — только ссылки» → включи галочку «Проверять валидацию» и в условии «Click URL не содержит mostly.by» (свой домен). Тег — GA4 Event, event_name = click_outbound, параметр link_url.

6. file_download — скачивание PDF / DOC / XLS

Зачем. Если у тебя на сайте есть коммерческое предложение / прайс / кейс-стади в PDF — понимать, сколько раз его скачали. Часто сильнее коррелирует с заявками, чем формы.

Как настроить. Триггер «Клик — только ссылки» → «Click URL соответствует регулярному выражению» → \.(pdf|docx?|xlsx?|pptx?|zip)$. Тег — GA4 Event, event_name = file_download, параметр file_name (можно вытащить через регэксп из URL, но обычно достаточно {{Click URL}}).

Шаг 5. Проверить через DebugView + Real-time

Прежде чем публиковать — обязательный этап. Открываешь GA4 в одной вкладке, GTM Preview-режим — в другой:

  1. В GTM жмёшь «Просмотр» (кнопка Preview в правом верхнем углу).
  2. Открывается интерфейс Tag Assistant — вводишь URL своего сайта, жмёшь Connect.
  3. Открывается сайт с зелёной плашкой «Debugger connected». Начинаешь кликать: заполнить форму, ткнуть email, скроллить вниз, скачать PDF.
  4. В Tag Assistant видишь список сработавших событий — каждое должно быть с зелёной галочкой «Tags Fired».
  5. Параллельно в GA4 идёшь «Администратор» → «DebugView» — видишь эти же события в реальном времени с параметрами.

Если тег не сработал — жмёшь на него в Tag Assistant, смотришь причину (обычно триггер не подошёл или переменная пустая). Правишь, публикуешь — проверяешь снова. На 6 событий уходит 30-45 минут вместе с отладкой.

Шаг 6. Фильтр внутреннего трафика

Твои визиты, визиты разработчика, визиты того, кто пишет статьи в блог — всё это идёт в статистику и портит цифры конверсий. На сайте с 200 визитами в день 20 внутренних = 10% шума. GA4 умеет их фильтровать:

  1. «Администратор» → «Потоки данных» → выбираешь поток → «Настроить параметры тегов» → «Показать все» → «Задать внутренний трафик».
  2. Правило: «IP-адрес — равен» → указываешь свой публичный IP (узнаёшь через 2ip.ru). Название правила — «Office».
  3. «Администратор» → «Настройки данных» → «Фильтры данных» → активируешь фильтр «Internal Traffic» (по умолчанию он в состоянии «Testing»).

Если у команды динамические IP — заведи по правилу на каждого + добавляй по мере необходимости. Для 100% чистоты можно ещё добавить UserAgent-фильтр через GTM (не отправлять события с внутренним cookie).

Что дальше — конверсии, аудитории, интеграции

Настроил 6 событий = аналитика уже работает. Дальше — тюнинг:

Частые ошибки при настройке

Ошибка Симптом Фикс
GTM установлен только в <head>, без noscript-фолбэка в <body> ~2% пользователей без JS не считаются Добавить вторую вставку в <body>
GA4-конфиг создан, но не опубликован (Preview-мод) В реалтайме тишина, счётчик 0 «Отправить» → «Опубликовать» в GTM
Форма отправляется через AJAX без dataLayer.push form_submit не срабатывает В код успешной отправки формы добавить dataLayer.push({event:'form_submit'})
Измерение до вставки GTM на живом сайте Внутренний трафик всё ещё идёт в GA4 Настроить фильтр «Internal Traffic» до релиза
Улучшенное измерение выключено Часть событий (page_view с параметрами, video_engagement) не собирается «Поток данных» → включить «Улучшенное измерение»
Часовой пояс UTC вместо Europe/Minsk Отчёты «по дням» смещены на 3 часа «Администратор» → «Настройки ресурса» → сменить часовой пояс
Ремаркетинг-аудитории собираются 0 пользователей Google Signals выключен «Поток данных» → включить Google Signals

Частые вопросы

Нужно ли GA4, если стоит Яндекс.Метрика?

Да. Метрика собирает данные о поведении, GA4 — о конверсиях в связке с Google Ads/Search Console. Плюс BigQuery-экспорт из GA4 — единственный способ хранить сырые данные бесплатно и вечно. Метрика такого не даёт. Ставить обе — стандарт для сайтов, работающих на Google + Яндекс. Подробно про Метрику — в отдельной статье.

Универсальная Analytics (UA) до сих пор актуальна?

Нет. Universal Analytics выключен Google 1 июля 2023 (стандартные ресурсы) и 1 июля 2024 (360-ресурсы). Данные до этих дат хранятся до момента, пока Google их не удалит (обещали 6-12 месяцев после отключения — многие уже удалены). Если на сайте всё ещё стоит UA-код (gtag.js с ID вида UA-XXXXXX) — снимай, ставь GA4.

Что делать, если сайт на закрытой SaaS-платформе (например, конструкторе), где GTM не поставить?

Смотри штатные интеграции. Большинство конструкторов позволяют вставить только Measurement ID GA4 (без GTM) — этого хватит для page_view и «Улучшенного измерения». Кастомные события через GTM — придётся жить без них. Аргумент за смену платформы, если конверсионная аналитика критична для бизнеса.

Сколько времени ждать первые данные?

Real-time и DebugView — секунды. Стандартные отчёты («Обзор», «Приобретение», «Ключевые события») — задержка 24-48 часов. Отчёт «Аудитории» и связка с Google Ads — до 72 часов, пока Google накопит критическую массу событий.

Сколько всё это стоит внедрить, если делать под ключ?

GA4 + GTM + 6 обязательных событий + фильтры + BigQuery-экспорт + Looker Studio-дашборд — обычно от 400-600 BYN одноразово (5-8 часов работы). Больше — только если сайт большой, много кастомных событий (add_to_cart для e-commerce, custom conversions, revenue-события), интеграция с Google Ads + Метрика в общий отчёт.

Как узнать, что аналитика реально работает через месяц после запуска?

Простой чек: в GA4 «Ключевые события» → форма должна показывать не 0. Если 0 — либо заявок реально нет (тогда проблема с сайтом, не с аналитикой), либо триггер отваливается (проверяй через DebugView). Второй чек — в «Приобретении» видны разные каналы (Organic Search / Direct / Referral / Paid). Если 100% Direct — не работает атрибуция, у пользователей режется referrer, разбирайся.

Аналитика без событий — это спидометр без стрелки. Знаешь, что машина едет, но не знаешь с какой скоростью. Ставишь GA4 просто «чтобы был» — потом в отчётах смотришь на графики визитов, не понимаешь что с этим делать, платишь SEO-специалисту и не можешь проверить, работает ли он. Настроил 6 событий за час — получил инструмент, по которому видно: работает канал или нет, конвертит landing или нет, растут заявки или падают.

Нужна настройка GA4 + GTM с событиями и фильтрами под твой бизнес — пиши на mostlycorp@gmail.com или через форму ниже. Настраиваем за 5-8 часов, подключаем BigQuery-экспорт, собираем дашборд в Looker Studio. От 400 BYN.

Настроим GA4 + GTM под твой бизнес

6 обязательных событий, фильтры внутреннего трафика, экспорт в BigQuery, дашборд в Looker Studio. Метрика уже стоит — сведём в один отчёт. От 400 BYN.