Аналитика

GTM и Яндекс Тег Менеджер

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Яндекс Тег Менеджер
Год запуска20122024
Каталог шаблоновСотни готовых шаблонов сообществаПреднастроенные интеграции с Метрикой, Директом, Top.Mail
Интеграция с МетрикойЧерез пользовательский HTML-тегНативно, в один клик
Интеграция с GA4НативноЧерез HTML-тег
Версионирование и откатыЕстьЕсть
Режим предпросмотраTag AssistantВстроенный preview
Доступность в РФРаботает, но риск блокировкиБез ограничений
Командный доступГранулярные праваБазовые роли
Краткий ориентир: если основной трафик идёт из Яндекса и важна стабильность доступа из РФ — ЯТМ; если работаете с GA4, рекламой Google Ads и зарубежной экосистемой — GTM. Часто на одном сайте стоят оба.

Когда выбрать GTM, а когда ЯТМ

  • GTM — если используете GA4 как основу аналитики, Google Ads, ремаркетинг Google и нужно богатое сообщество готовых шаблонов.
  • ЯТМ — если важна стабильность работы в РФ, основная аналитика — Метрика, и реклама идёт в Директе.
  • Оба сразу — для крупных сайтов с двойной аналитикой это норма. Каждый менеджер живёт в своём контейнере и не конфликтует.

Установка Google Tag Manager: пошаговая инструкция

Базовая последовательность одинакова для всех сайтов: завести аккаунт, создать контейнер, вставить код на сайт, подключить GA4, проверить через предпросмотр. Ниже — шаги по порядку.

Шаг 1Создание аккаунта и контейнера

Перейти на tagmanager.google.com, создать аккаунт (юрлицо или личный), внутри аккаунта — контейнер для сайта. Выбрать тип «Веб».

Шаг 2Установка кода на сайт

Контейнер выдаёт два сниппета: первый — в <head> сразу после открывающего тега, второй — в <body> сразу после открывающего тега. Без обоих часть данных будет теряться.

Шаг 3Подключение GA4

В контейнере создать тег типа «Google Tag», указать Measurement ID из GA4 (формата G-XXXXXXXXXX), триггер — All Pages. Опубликовать версию.

Шаг 4Проверка через Preview

Кнопка Preview открывает сайт с дебаг-панелью. На каждой странице должна сработать активация Container Loaded и тег GA4. Если тегов не видно — код установлен не там или не на всех шаблонах.

Базовый сниппет в <head> выглядит так — этот код выдаёт сам GTM при создании контейнера, его задача — асинхронно загрузить gtm.js и инициализировать dataLayer.

HTML
<!-- 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> всех страниц сайта.

Шаг 1Создание контейнера ЯТМ

Авторизоваться в Яндексе, создать контейнер, указать домен сайта. ID контейнера формата GTM-XXXXXXX или YTM-XXXXXXX (зависит от версии).

Шаг 2Подключение Метрики

Внутри контейнера выбрать тип тега «Яндекс Метрика», ввести номер счётчика, включить нужные опции — Вебвизор, карту скроллинга, точный показатель отказов. Триггер — All Pages.

Шаг 3Проверка в режиме предпросмотра

Кнопка Preview открывает сайт с подключённой панелью. Тег Метрики должен срабатывать на каждой странице, в самой Метрике в отчёте «Источники» появятся свежие визиты.

Шаг 4Публикация

Кнопка «Опубликовать» переводит изменения из черновика в боевую версию контейнера. До публикации все правки видит только тот, кто их сделал — это страховка от случайных ошибок.

Не ставьте счётчик Метрики и тегом ЯТМ, и напрямую в шаблоне сайта одновременно. Получите двойной счёт визитов и развалившиеся показатели отказов. Если код уже на сайте — уберите его и оставьте только версию из тег-менеджера.

Настройка целей через тег-менеджер

Цель — это действие пользователя, которое важно отслеживать: клик по кнопке, отправка формы, переход в чат, скачивание файла. В Метрике цели заводятся в интерфейсе счётчика, в GA4 — как события. Тег-менеджер ловит действие на сайте и отправляет сигнал в систему аналитики.

Отслеживание клика по кнопке

Чтобы триггер срабатывал на конкретную кнопку, у неё должен быть стабильный идентификатор — id или уникальный data-* атрибут. Если разработчик каждый релиз меняет классы — попросите его поставить атрибут, который не зависит от стилей.

  1. Получить от верстальщика стабильный селектор — например, data-action="order" на кнопке.
  2. В тег-менеджере создать триггер типа «Клик — все элементы» с условием Click Element matches CSS selector и значением [data-action="order"].
  3. В Метрике/GA4 завести цель типа «JavaScript-событие» с именем (например, order_click).
  4. В тег-менеджере создать тег: для Метрики — пользовательский JS ym(XXXXXXX, 'reachGoal', 'order_click'), для GA4 — событие order_click.
  5. Привязать тег к триггеру, проверить в Preview, опубликовать контейнер.

Отслеживание отправки формы

Корректный путь — событие на странице «Спасибо» после успешной отправки. Это исключает ложные срабатывания на форму, которая не прошла валидацию или вернула ошибку. Если страницы «Спасибо» нет — нужно подключиться к коду формы через dataLayer.push после успешного ответа сервера.

JS
// На стороне сайта — после успешной отправки формы:
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
Игнорируют customHTML-теги

В GTM часто крутятся самописные HTML-теги — пиксели CRM, чаты, виджеты. ЯТМ их не подхватит автоматически, каждый придётся перенести вручную и проверить, что синтаксис не зависит от переменных GTM ({{Page URL}} и т.п.).

Ошибка 3

Типичные ошибки и диагностика

Большинство проблем тег-менеджера сводятся к трём симптомам: тег не сработал, цель не дошла до Метрики/GA4, события дублируются. Кейс из практики: цель «клик по заказу» не фиксировалась на проде. В Preview на тестовом стенде всё работало. Причина обнаружилась через 30 минут — на проде верстальщик переименовал кнопку, id="buy" превратился в id="buy-now". Триггер ловил старое имя и не срабатывал. Урок: после релиза сайта запускайте Preview по всем триггерам с кликами.

Тег не срабатывает: как найти причину

  1. Открыть Preview в тег-менеджере — он покажет, какие теги отработали на странице.
  2. Проверить, что нужный триггер вообще активировался. Если нет — проблема в условии триггера или селекторе.
  3. Открыть консоль браузера и проверить наличие dataLayer (для GTM) или _ym (для ЯТМ).
  4. Проверить, опубликована ли версия контейнера. Черновики работают только у автора, для всех остальных — старая версия.
  5. Для Метрики — заглянуть в реальное время счётчика и ym_debug=1 в URL для подробного лога.

Дублирующиеся события

Симптом: одна и та же цель в Метрике или GA4 учитывается 2–3 раза за визит. Причины обычно две: счётчик стоит и в коде сайта, и в теге, либо dataLayer.push вызывается несколько раз — например, при ремонтировании компонента в SPA. Лечится через ym_debug (Метрика) или DebugView (GA4) — там видно каждое срабатывание с временной меткой.

Цель не фиксируется: чек-лист проверки

  • Цель создана в самой Метрике/GA4 — без этого тег ничего не передаст.
  • Имя цели в теге совпадает с именем в системе аналитики (регистр важен).
  • Триггер срабатывает — проверяется через Preview.
  • Контейнер опубликован, не оставлен в черновиках.
  • На странице нет блокировщиков скриптов в момент проверки — uBlock или антитрекеры могут глушить и тег-менеджер, и счётчик.

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

На очень маленьких сайтах с одним счётчиком Метрики или GA4, без событий и пикселей, прямая вставка кода проще и быстрее. Тег-менеджер окупается, когда счётчиков и событий становится больше пяти, или когда правки нужны без участия разработчика.
Да, это типовая схема. Каждый менеджер живёт в своём контейнере и не конфликтует с другим. Но избегайте дублирования одного и того же тега в обоих — например, Метрика должна быть только в одном из них, иначе получите двойной счёт.
Сам по себе GTM/ЯТМ грузится асинхронно и почти не влияет на Core Web Vitals. Но тяжёлые теги внутри (пиксели рекламы, виджеты чатов) суммарно могут добавить 200–500 мс к загрузке. Аудит контейнера раз в полгода — норма.
В разделе «Версии» (и в GTM, и в ЯТМ) видна история публикаций. Откат — один клик на любую предыдущую версию. Поэтому называйте версии осмысленно («add order_click goal»), а не оставляйте по умолчанию.
Нет. Тег-менеджер только доставляет код на сайт. Аналитика и отчёты остаются в Метрике, GA4, Top.Mail или другой системе — туда теги отправляют события и цели.