Аналитика
GTM и Яндекс Тег Менеджер

Полный гайд по GTM и ЯТМ: установка, теги, триггеры, переменные, настройка целей Метрики и GA4, сравнение инструментов и чек-лист миграции.
Тег-менеджер — это прослойка между сайтом и системами аналитики, которая позволяет добавлять и менять счётчики, цели и события без правок кода сайта. Маркетолог обновляет настройку в интерфейсе, разработчик в этом не участвует. Ниже — рабочий гайд по двум инструментам: Google Tag Manager и Яндекс Тег Менеджер. Что выбрать, как установить, как настроить цели в Яндекс Метрику и GA4, как мигрировать и где ловить типичные ошибки.
Что такое тег-менеджер и зачем он нужен
На сайте обычно стоят счётчики аналитики, пиксели рекламы, скрипты ремаркетинга и события для целей. Без тег-менеджера каждое такое изменение — задача в бэклог разработчика: «вставьте код в <head>, выкатите на прод». Тег-менеджер ставится один раз, дальше всё управляется в его интерфейсе через три сущности — теги, триггеры и переменные.
Теги — что устанавливается на странице
Тег — это код, который тег-менеджер вставляет в страницу: счётчик GA4, счётчик Метрики, пиксель ВКонтакте, скрипт «отправить событие». Один контейнер тег-менеджера может содержать десятки тегов разных систем.
Триггеры — условия срабатывания
Триггер отвечает на вопрос «когда выстреливает тег». Например: «при загрузке любой страницы», «при клике по элементу с id="buy"», «при отправке формы id="order"», «при просмотре страницы /thanks/». Один тег может иметь несколько триггеров.
Переменные — данные для решений
Переменные — это значения, которые тег-менеджер считывает со страницы и передаёт в теги: URL текущей страницы, текст клика, идентификатор пользователя, значение поля формы. Переменные используются и в самих тегах, и в условиях триггеров.
GTM vs Яндекс Тег Менеджер: сравнение инструментов
Google Tag Manager появился в 2012 году и стал отраслевым стандартом — по данным W3Techs, он установлен примерно на 30% сайтов в интернете. Яндекс выпустил собственный тег-менеджер (ЯТМ) в 2024 году как ответ на риски доступности GTM в РФ и для более тесной интеграции с Метрикой и Директом. Сравнение по ключевым параметрам — в таблице.
| Критерий | Google Tag Manager | Яндекс Тег Менеджер |
|---|---|---|
| Год запуска | 2012 | 2024 |
| Каталог шаблонов | Сотни готовых шаблонов сообщества | Преднастроенные интеграции с Метрикой, Директом, Top.Mail |
| Интеграция с Метрикой | Через пользовательский HTML-тег | Нативно, в один клик |
| Интеграция с GA4 | Нативно | Через HTML-тег |
| Версионирование и откаты | Есть | Есть |
| Режим предпросмотра | Tag Assistant | Встроенный preview |
| Доступность в РФ | Работает, но риск блокировки | Без ограничений |
| Командный доступ | Гранулярные права | Базовые роли |
Когда выбрать GTM, а когда ЯТМ
- GTM — если используете GA4 как основу аналитики, Google Ads, ремаркетинг Google и нужно богатое сообщество готовых шаблонов.
- ЯТМ — если важна стабильность работы в РФ, основная аналитика — Метрика, и реклама идёт в Директе.
- Оба сразу — для крупных сайтов с двойной аналитикой это норма. Каждый менеджер живёт в своём контейнере и не конфликтует.
Установка Google Tag Manager: пошаговая инструкция
Базовая последовательность одинакова для всех сайтов: завести аккаунт, создать контейнер, вставить код на сайт, подключить GA4, проверить через предпросмотр. Ниже — шаги по порядку.
Перейти на tagmanager.google.com, создать аккаунт (юрлицо или личный), внутри аккаунта — контейнер для сайта. Выбрать тип «Веб».
Контейнер выдаёт два сниппета: первый — в <head> сразу после открывающего тега, второй — в <body> сразу после открывающего тега. Без обоих часть данных будет теряться.
В контейнере создать тег типа «Google Tag», указать Measurement ID из GA4 (формата G-XXXXXXXXXX), триггер — All Pages. Опубликовать версию.
Кнопка Preview открывает сайт с дебаг-панелью. На каждой странице должна сработать активация Container Loaded и тег GA4. Если тегов не видно — код установлен не там или не на всех шаблонах.
Базовый сниппет в <head> выглядит так — этот код выдаёт сам GTM при создании контейнера, его задача — асинхронно загрузить gtm.js и инициализировать dataLayer.
<!-- 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 -->Установка Яндекс Тег Менеджера и Метрики
ЯТМ работает по такой же логике: контейнер → код на сайт → теги → триггеры. Главная разница — Метрика подключается за два клика, без ручной вставки HTML-тега. Сначала создаём контейнер на tag-manager.yandex.ru, копируем выданный код и ставим его в <head> всех страниц сайта.
Авторизоваться в Яндексе, создать контейнер, указать домен сайта. ID контейнера формата GTM-XXXXXXX или YTM-XXXXXXX (зависит от версии).
Внутри контейнера выбрать тип тега «Яндекс Метрика», ввести номер счётчика, включить нужные опции — Вебвизор, карту скроллинга, точный показатель отказов. Триггер — All Pages.
Кнопка Preview открывает сайт с подключённой панелью. Тег Метрики должен срабатывать на каждой странице, в самой Метрике в отчёте «Источники» появятся свежие визиты.
Кнопка «Опубликовать» переводит изменения из черновика в боевую версию контейнера. До публикации все правки видит только тот, кто их сделал — это страховка от случайных ошибок.
Настройка целей через тег-менеджер
Цель — это действие пользователя, которое важно отслеживать: клик по кнопке, отправка формы, переход в чат, скачивание файла. В Метрике цели заводятся в интерфейсе счётчика, в GA4 — как события. Тег-менеджер ловит действие на сайте и отправляет сигнал в систему аналитики.
Отслеживание клика по кнопке
Чтобы триггер срабатывал на конкретную кнопку, у неё должен быть стабильный идентификатор — id или уникальный data-* атрибут. Если разработчик каждый релиз меняет классы — попросите его поставить атрибут, который не зависит от стилей.
- Получить от верстальщика стабильный селектор — например,
data-action="order"на кнопке. - В тег-менеджере создать триггер типа «Клик — все элементы» с условием
Click Element matches CSS selectorи значением[data-action="order"]. - В Метрике/GA4 завести цель типа «JavaScript-событие» с именем (например,
order_click). - В тег-менеджере создать тег: для Метрики — пользовательский JS
ym(XXXXXXX, 'reachGoal', 'order_click'), для GA4 — событиеorder_click. - Привязать тег к триггеру, проверить в Preview, опубликовать контейнер.
Отслеживание отправки формы
Корректный путь — событие на странице «Спасибо» после успешной отправки. Это исключает ложные срабатывания на форму, которая не прошла валидацию или вернула ошибку. Если страницы «Спасибо» нет — нужно подключиться к коду формы через dataLayer.push после успешного ответа сервера.
// На стороне сайта — после успешной отправки формы:
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'form_submit',
form_id: 'order',
form_value: orderTotal
});
// В тег-менеджере: триггер на событие form_submit
// → тег Метрики: ym(XXXXXXX, 'reachGoal', 'order_submit', { value: form_value });Form Submission в GTM не всегда срабатывает на современных SPA — фронтенд часто отменяет стандартное событие формы. Поэтому ориентируйтесь на dataLayer.push от разработчика, а не на встроенный триггер.Скачивание файлов и внешние ссылки
- Скачивание PDF/документов — триггер
Click — only links, условиеClick URL ends with .pdf(или.xlsx,.docx). - Клик по внешней ссылке — триггер
Click — only links, условиеClick URL does not containваш домен. Полезно для контроля исходящих ссылок. - Клик по телефону / email — условие
Click URL starts with tel:илиmailto:. Помогает мерить намерения мобильных пользователей.
Миграция с GTM на ЯТМ: чек-лист и подводные камни
Самая частая причина перехода — риск недоступности GTM из России и желание держать всю аналитику в одной экосистеме. Миграция не «копипаст контейнера»: ЯТМ использует свой формат тегов, часть готовых шаблонов GTM не имеет аналогов. План работ — в таблице, типичные ошибки — после неё.
| Этап | Что сделать | Чем измерить успех |
|---|---|---|
| Реестр тегов | Выгрузить все теги, триггеры, переменные из GTM в таблицу | Полный список с приоритетом по бизнес-важности |
| Аудит целей | Сверить цели в Метрике/GA4 с тегами, удалить нерабочие | Каждая цель имеет тег и стабильный триггер |
| Контейнер ЯТМ | Создать контейнер, перенести Метрику и базовые теги | Preview показывает срабатывания на тестовой странице |
| Параллельная работа | Запустить ЯТМ рядом с GTM на 2 недели | Расхождение между системами не более 2–3% |
| Отключение GTM | Убрать код GTM с сайта, оставить только ЯТМ | Метрика и GA4 (если нужен) работают без разрывов |
Подводные камни миграции
В GTM накапливается мусор — теги мёртвых рекламных кампаний, дубли событий, отключённые триггеры. Перенесёте всё — раздуете контейнер и потеряете контроль. Перед миграцией каждый тег должен ответить на вопрос: «он работает, кто-то смотрит этот отчёт?»
Ошибка 1Выключают GTM в день запуска ЯТМ. Если что-то пошло не так — данные за этот день потеряны, сравнить не с чем. Минимум 2 недели обе системы должны работать параллельно — расхождение покажет проблему ещё до отключения GTM.
Ошибка 2В GTM часто крутятся самописные HTML-теги — пиксели CRM, чаты, виджеты. ЯТМ их не подхватит автоматически, каждый придётся перенести вручную и проверить, что синтаксис не зависит от переменных GTM ({{Page URL}} и т.п.).
Типичные ошибки и диагностика
Большинство проблем тег-менеджера сводятся к трём симптомам: тег не сработал, цель не дошла до Метрики/GA4, события дублируются. Кейс из практики: цель «клик по заказу» не фиксировалась на проде. В Preview на тестовом стенде всё работало. Причина обнаружилась через 30 минут — на проде верстальщик переименовал кнопку, id="buy" превратился в id="buy-now". Триггер ловил старое имя и не срабатывал. Урок: после релиза сайта запускайте Preview по всем триггерам с кликами.
Тег не срабатывает: как найти причину
- Открыть Preview в тег-менеджере — он покажет, какие теги отработали на странице.
- Проверить, что нужный триггер вообще активировался. Если нет — проблема в условии триггера или селекторе.
- Открыть консоль браузера и проверить наличие
dataLayer(для GTM) или_ym(для ЯТМ). - Проверить, опубликована ли версия контейнера. Черновики работают только у автора, для всех остальных — старая версия.
- Для Метрики — заглянуть в реальное время счётчика и
ym_debug=1в URL для подробного лога.
Дублирующиеся события
Симптом: одна и та же цель в Метрике или GA4 учитывается 2–3 раза за визит. Причины обычно две: счётчик стоит и в коде сайта, и в теге, либо dataLayer.push вызывается несколько раз — например, при ремонтировании компонента в SPA. Лечится через ym_debug (Метрика) или DebugView (GA4) — там видно каждое срабатывание с временной меткой.
Цель не фиксируется: чек-лист проверки
- Цель создана в самой Метрике/GA4 — без этого тег ничего не передаст.
- Имя цели в теге совпадает с именем в системе аналитики (регистр важен).
- Триггер срабатывает — проверяется через Preview.
- Контейнер опубликован, не оставлен в черновиках.
- На странице нет блокировщиков скриптов в момент проверки — uBlock или антитрекеры могут глушить и тег-менеджер, и счётчик.