Половина инструкций по Яндекс Тег Менеджеру начинается с поиска кода контейнера, который нужно вставить на сайт. Этого кода не существует. В официальной документации сказано прямо: для работы инструмента нужен установленный счётчик Метрики, и больше никаких вмешательств в код сайта не требуется.
Отсюда и главная путаница. Люди приходят в Яндекс Тег Менеджер после Google Tag Manager, ищут привычный сниппет для <head> и не находят его. А потом решают, что инструмент не включился.
Дальше по порядку разберём, как настроить Яндекс Тег Менеджер с нуля: как включить его в Метрике, из чего состоит контейнер, как выдать доступ подрядчику, как перенести в контейнер сторонние скрипты, как поймать отправку формы и как проверить настройку до публикации.
Если счётчика Метрики у вас ещё нет, начните с него: без него Тег Менеджер просто не включится. У нас есть отдельный гайд по установке и настройке Яндекс Метрики, он закрывает этот шаг целиком.
Тем, кто уже работал с менеджером тегов от Google, будет проще: логика контейнера, тегов и триггеров совпадает почти дословно. Разницу разберём отдельным разделом, а базу по GTM мы собрали в материале «Настройка Google Tag Manager с нуля».
И последнее перед стартом. Тег-менеджеры относятся к базовому набору веб-аналитика наравне со счётчиками и отчётами. Если хочется освоить всё ремесло целиком, а не один инструмент, загляните в нашу подборку курсов по веб-аналитике.
Что такое Яндекс Тег Менеджер и зачем он нужен

Яндекс Тег Менеджер (в статьях и чатах его часто сокращают до ЯТМ) — это бесплатный инструмент для управления тегами на сайте. Тег в этой терминологии означает небольшой фрагмент кода, который срабатывает на странице и отправляет данные во внешний сервис: в Метрику, в рекламный кабинет, в коллтрекинг, в чат поддержки.
Раньше такой фрагмент добавляли в шаблон сайта руками. Каждый новый скрипт означал задачу разработчику, ожидание релиза и риск что-нибудь задеть. Тег Менеджер убирает этот цикл: скрипты живут в веб-интерфейсе Метрики, и маркетолог добавляет, останавливает или удаляет их сам.
Все настройки собираются в контейнер. По определению из документации это единица, которая объединяет все теги, триггеры и переменные проекта. Контейнер заменяет ручное добавление отдельных скриптов на сайт.
Практический список того, что закрывает ЯТМ:
- подключение сторонних сервисов: коллтрекинг, чаты, пиксели рекламных систем, антифрод;
- настройка целей Метрики без правки вёрстки: клик по кнопке, отправка формы, прокрутка до блока;
- передача параметров в теги, например суммы заказа в тег конверсии;
- быстрое отключение чужого скрипта, который начал тормозить сайт.
Инструмент бесплатный, отдельного тарифа у него нет. Платить придётся только за те сервисы, чьи теги вы в него положите.
Главное отличие от Google Tag Manager: кода контейнера нет
В Google Tag Manager последовательность привычная: заводите аккаунт, создаёте контейнер, получаете идентификатор вида GTM-XXXXXXX и два фрагмента кода, один ставите в <head>, второй сразу после открывающего <body>. Пока код не стоит на сайте, контейнер мёртвый.
У Яндекса эта ступень выброшена. Контейнер доставляется на сайт тем же кодом счётчика Метрики, который у вас уже стоит. Поэтому искать сниппет ЯТМ бессмысленно: его нет ни в интерфейсе, ни в справке.
Из этого следуют три вещи, которые лучше принять сразу.
Счётчик обязателен. Нет счётчика на сайте, нет и Тег Менеджера. Если счётчик стоит через CMS-плагин или через сторонний менеджер тегов, ЯТМ поедет вместе с ним. Как поставить счётчик, мы описали в руководстве по установке счётчика Метрики.
Контейнер привязан к конкретному счётчику. Один счётчик означает один основной контейнер. Если у вас три сайта с тремя счётчиками, контейнеров тоже будет три, и настройки между ними не переносятся автоматически.
Правами рулит владелец счётчика. Тот аккаунт, на который счётчик заведён. Ни администратор сайта, ни агентство прав включения не получают. Доступы разберём отдельным разделом, потому что именно на них ломается больше всего сценариев.
Канал основателя Checkroi Вани Буявца3 700 человек читают мой Телеграм-канал про нейросетиСобрал промпты для Claude Code и ChatGPT, разборы ИИ-инструментов и лайфхаки по продвижению бизнеса в одном местеПрисоединитьсяПроверка на берегу. Если вы не владелец счётчика, включить Тег Менеджер не получится никакими правами. Сначала решается вопрос владения счётчиком, потом всё остальное.
Как включить Яндекс Тег Менеджер
Включение занимает меньше минуты, если счётчик ваш.
- Откройте Яндекс Метрику и выберите нужный счётчик из списка.
- Перейдите в раздел Настройки, вкладка Счётчик.
- Включите опцию Яндекс Тег Менеджер.
- Отдельно посмотрите на переключатель Пользовательский HTML. Он разрешает добавлять в контейнер произвольный код, а не только готовые шаблоны сервисов. Без него вы не сможете положить в контейнер, например, скрипт стороннего виджета.
- Сохраните настройки.
После сохранения Тег Менеджер появляется в левом меню Метрики, и открывается пустой контейнер со своим номером и меткой «Основной». В обзоре будет написано «Нет опубликованных версий»: это нормальное состояние до первой публикации. Никаких дополнительных установок на стороне сайта делать не нужно.
Частая жалоба звучит так: «в Метрике нет такого пункта». Причин обычно две. Либо аккаунт не владелец счётчика, а только гость с доступом на просмотр или редактирование. Либо вы смотрите настройки не того счётчика: у агентств в списке легко висит пара десятков.
Владельца видно в списке счётчиков Метрики. Если это чужой аккаунт, есть два пути: попросить владельца включить инструмент и выдать доступ либо передать счётчик себе.
Из чего состоит контейнер: теги, триггеры и переменные
Внутри контейнера три рабочие сущности. Дальше всё собирается из них, как из конструктора, поэтому разберитесь с ними один раз и спокойно.
Тег отвечает на вопрос «что сделать». Это фрагмент кода, который собирает данные или выполняет другую задачу: отправляет цель в Метрику, дёргает пиксель рекламной системы, подгружает виджет.
Триггер отвечает на вопрос «когда». Это событие, которое запускает тег: загрузка страницы, клик, отправка формы, прокрутка до определённой глубины. Без триггера тег не сработает никогда.
Переменная отвечает на вопрос «с какими данными». Переменные бывают встроенные и пользовательские. Встроенные доступны сразу: адрес страницы, элемент, по которому кликнули, идентификатор формы. Их используют и в условиях триггера, и внутри тега.
Отдельно стоят шаблоны тегов. Это готовые заготовки, куда достаточно подставить свой идентификатор в сервисе, вместо того чтобы писать код самому. Шаблоны бывают личные, которые вы делаете под себя, и публичные, они лежат в Каталоге шаблонов и доступны всем.
Все типы триггеров Яндекс Тег Менеджера
С триггеров начинается почти любая настройка, поэтому держите сводную таблицу под рукой.
| Триггер | Когда срабатывает | Что настраивается |
|---|---|---|
| Просмотр страницы | На одном из этапов загрузки страницы | Момент: инициализация, просмотр страницы, модель DOM готова, окно загружено |
| Клик | При клике пользователя | Все элементы или только ссылки, условия по переменным Click ID, Click Classes, Click Text, Click URL |
| Отправка формы | При стандартной отправке HTML-формы и событии submit | Условия по Form ID, Form Classes, адресу страницы |
| Таймер | Через заданные интервалы времени | Интервал в секундах и количество срабатываний |
| Глубина прокрутки | При достижении процента прокрутки | Конкретные проценты или равномерный шаг |
| Видимость элемента | Когда элемент попал в зону видимости | Способ выбора элемента, минимальный процент и время видимости |
| Специальное событие | При получении своего события из dataLayer | Имя события, которое отправляет сайт |
| Изменение в истории | При смене адреса без перезагрузки страницы | Условия по новому адресу |
В интерфейсе этот список выглядит подробнее: типы разложены по четырём группам, а просмотр страницы и клик развёрнуты в отдельные пункты. «Просмотр страницы» распадается на «Инициализация», «Просмотр страницы», «Модель DOM готова» и «Окно загружено», клик — на «Клики — все элементы» и «Клики — только ссылки». Выбирать момент придётся сразу при создании триггера, поменять тип потом нельзя.
Последние два пункта нужны чаще, чем кажется. Специальное событие выручает, когда стандартные триггеры не видят нужное действие, а изменение в истории закрывает сайты, где страницы подменяются без полной перезагрузки: одностраничники, интернет-магазины с динамическим каталогом, личные кабинеты.
Как выдать доступы к Тег Менеджеру
Доступы устроены не так, как в GTM, и спотыкаются об них чаще, чем о саму настройку. Особенно если работу над сайтом делят несколько человек или подрядчиков.
Базовое правило: получить доступ к Тег Менеджеру может только тот, у кого уже есть доступ к счётчику Метрики на просмотр или редактирование. Сначала пускаем человека в счётчик, потом выдаём права внутри контейнера. Управляет всем этим владелец счётчика.
Права нарезаны на шесть отдельных ролей, и их можно комбинировать.
| Роль | Что позволяет | Кому выдавать |
|---|---|---|
| Просмотр | Смотреть теги, триггеры, переменные, бандлы и шаблоны без права что-то менять | Клиенту, аудитору, новому сотруднику на испытательном |
| Редактирование | Создавать, менять и удалять теги, триггеры, переменные, бандлы и шаблоны. Публиковать нельзя | Подрядчику, который собирает настройку |
| Публикация контейнера | Выкатывать версию контейнера и бандлы в бой. Редактировать содержимое нельзя | Тому, кто отвечает за релизы |
| Публикация шаблонов в каталог | Публиковать свои шаблоны в публичный каталог | Разработчику своих шаблонов |
| Управление доступами | Редактировать права доступа к контейнеру, включает просмотр | Руководителю команды аналитики |
| Управление бандлами | Редактировать и публиковать бандлы | Тому, кто ведёт подключённые наборы тегов |
Разделение редактирования и публикации снимает главную проблему агентской работы: подрядчик собирает настройку в черновике, а выкатывает её в бой уже человек на стороне клиента, после просмотра изменений.
Практика для команд. Не выдавайте роль «управление доступом» подрядчику. Иначе после окончания договора он сможет раздавать права дальше, а вы узнаете об этом из списка пользователей.
Как установить код Метрики и сторонние скрипты через контейнер
Тут есть логическая ловушка. Установить сам счётчик Метрики через ЯТМ нельзя: контейнер приезжает вместе со счётчиком, и без счётчика ему просто не на чем работать. За формулировкой «установить код Метрики через Тег Менеджер» на практике стоят две другие задачи.
Задача первая: передать в Метрику цели и события. Это штатный сценарий. Тег отправляет в счётчик JavaScript-событие, в Метрике на это событие заведена цель. Как раз этим мы займёмся в следующем разделе на примере формы.
Задача вторая: подключить второй счётчик или чужой скрипт. Например, счётчик подрядчика, пиксель рекламной системы, коллтрекинг. Здесь порядок такой:
- Убедитесь, что в настройках счётчика включён Пользовательский HTML, иначе поля для своего кода не будет.
- В контейнере откройте раздел Теги и добавьте новый тег.
- Посмотрите Каталог шаблонов. Если у сервиса есть готовый шаблон, берите его: там достаточно подставить идентификатор из личного кабинета сервиса, и ошибиться почти негде.
- Шаблона нет? Тогда выбирайте тип тега «пользовательский HTML» и кладите в поле код сервиса целиком, вместе с тегами
<script>. - Назначьте тегу триггер. Для счётчиков и пикселей это обычно просмотр страницы на этапе инициализации, чтобы код отрабатывал как можно раньше.
- Сохраните тег и опубликуйте версию контейнера.
Про двойной счётчик. Если один и тот же номер счётчика окажется и в коде сайта, и в теге контейнера, вы получите задвоенные визиты и сломанный процент отказов в отчётах. Правило простое: один счётчик живёт в одном месте. Ставите его тегом, убирайте из шаблона сайта.
Как отследить отправку формы

Разберём сквозной сценарий целиком: от цели в Метрике до проверки. На нём же становится понятна вся механика контейнера.
Шаг 1: цель в Метрике
В настройках счётчика создайте цель типа JavaScript-событие и задайте ей идентификатор, например form_submit. Этот идентификатор дальше должен совпасть с тем, что вы укажете в теге, символ в символ.
Шаг 2: триггер отправки формы
В контейнере создайте триггер типа Отправка формы. Он срабатывает на стандартной отправке HTML-формы и событии submit, а вместе с собой отдаёт переменные формы: Form ID, Form Classes, Form Element, Form Target и Form URL.
Если форма на сайте одна, условий можно не добавлять. Если форм несколько и считать их нужно врозь, добавьте условие: по Form ID для конкретной формы или по адресу страницы, когда формы стоят на разных страницах.
Шаг 3: тег, который отправит цель
Создайте тег на шаблоне Яндекс Метрики, укажите в нём номер счётчика и идентификатор цели из первого шага, а в условиях запуска выберите триггер из второго. Связка готова: пользователь отправляет форму, триггер ловит событие, тег передаёт цель в счётчик.
Шаг 4: что делать, если триггер не видит форму
Самая частая поломка. Штатный триггер понимает только настоящую разметку: тег <form> и кнопку отправки внутри него. Формы, собранные на <div> с кнопкой <button type="button">, он не увидит, потому что события submit там не возникает. Так устроено большинство конструкторов сайтов и квизов.
Обходных пути два.
- Специальное событие. Сайт отправляет своё событие в dataLayer (это объект, через который страница передаёт данные в контейнер), а триггер ловит его по имени. Вариант надёжный, но требует одной строки кода от разработчика.
- Триггер клика. Ловим клик по кнопке отправки, ограничив его условием по Click ID или Click Classes. Кода не нужно, но цель засчитается и тогда, когда форма не прошла валидацию, а значит цифры будут чуть выше реальных.
Как выбрать между ними. Если форма ведёт к деньгам и по ней считают стоимость заявки, идите через специальное событие. Для второстепенных форм вроде подписки на рассылку клика достаточно.
Как отследить клик по кнопке или ссылке
Вторая по частоте задача после форм. Собирается тем же способом, только триггер другой.
Создайте триггер типа Клик и выберите режим: все элементы или только ссылки. Второй вариант берут, когда нужно посчитать переходы по конкретной ссылке. Первый выручает с кнопками без ссылки: обычный элемент вёрстки, который что-то делает по клику.
Без условий такой триггер сработает вообще на любой клик по странице, поэтому его сужают переменными:
- Click ID: идентификатор элемента, самый надёжный вариант, если у кнопки он есть;
- Click Classes: CSS-классы элемента, подходит, когда одинаковых кнопок много и считать их нужно вместе;
- Click Text: надпись на кнопке, удобно, но ломается при первой же правке текста;
- Click URL: адрес ссылки, годится для кликов по телефону, почте или мессенджеру.
Идентификатор и классы кнопки смотрят в браузере: правый клик по элементу, «Посмотреть код», и в открывшейся панели видно атрибуты id и class. Значения переменных, которые дошли до контейнера, потом сверяются в режиме предварительного просмотра.
Дальше всё как с формой: цель типа JavaScript-событие в Метрике, тег на шаблоне Метрики с номером счётчика и идентификатором цели, триггер клика в условиях запуска.
Про клик по телефону. Ссылки вида tel: и mailto: ловятся через режим «только ссылки» с условием по Click URL. Отдельного скрипта для этого не нужно.
Как проверить настройку и опубликовать контейнер
Настроенный тег не работает, пока версия контейнера не опубликована. Это фиксирует и документация: теги, триггеры и переменные начинают работать только после публикации новой версии. Половина вопросов «почему не срабатывает» решается именно здесь.
Порядок правильный такой: сначала проверка, потом публикация.
Режим предварительного просмотра
Нажмите кнопку Предварительный просмотр в правом верхнем углу контейнера и укажите адрес сайта. Сайт откроется с панелью отладчика внизу страницы. В панели три вкладки:
- Теги: какие теги активировались на событии, какие нет и какие стоят на паузе, вместе с условиями запуска;
- Переменные: названия, типы и значения переменных в момент события;
- Дополнительно: фильтры по событиям, сводная статистика и автообновление.
Проверка выглядит так: выполняете действие на сайте (отправляете тестовую форму), находите нужное событие в списке, открываете вкладку с тегами и убеждаетесь, что тег активировался. Если нет, смотрите условия триггера и значения переменных: чаще всего расходится идентификатор формы или адрес страницы в условии.
Ловушка интерфейса. В окне «Ссылка для предварительного просмотра» кнопка подписана «Опубликовать», хотя она открывает предпросмотр, а не выкатывает контейнер на сайт. Настоящая публикация живёт в другом окне, с заголовком «Опубликовать версию» и таблицей изменений.
Публикация версии
Когда проверка прошла, нажмите Опубликовать в правом верхнем углу. Дальше:
- Задайте название версии, короткое и понятное, например «Цель на форму обратного звонка».
- Заполните описание: что именно поменялось. Через полгода это спасает.
- Проверьте блок Изменения при публикации. В нём видно каждый объект, его тип, действие (добавлен, изменён, удалён), автора и дату правки.
- Подтвердите публикацию.
Все опубликованные версии остаются в истории версий. Если после релиза что-то сломалось, старую версию можно выбрать как последнюю и опубликовать заново, откатив изменения.
Ограничения, о которые спотыкаются чаще всего

Собрали список вещей, которые обычно всплывают уже в процессе.
- Без счётчика Метрики инструмент не существует. Уйдёте с Метрики, потеряете и контейнер.
- Включает только владелец счётчика. Права на редактирование счётчика тут не помогают.
- Пользовательский HTML включается отдельно. Пока переключатель выключен, доступны только готовые шаблоны.
- Каталог шаблонов конечен. Для российских сервисов заготовки есть почти всегда, для нишевых зарубежных чаще приходится писать код руками.
- Сабконтейнеры ограничены числом. Это изолированные рабочие пространства для параллельной работы команды: не больше 10 сабконтейнеров на контейнер и не больше 10 тегов, триггеров и переменных в каждом. Публикуются они отдельно, и публикация основного контейнера их изменения не подхватывает.
- Формы на
<div>штатным триггером не ловятся. Нужен dataLayer или триггер клика.
И короткий чек-лист на случай, когда тег настроен, а данных нет:
- Версия контейнера опубликована после правок?
- Тег включён, а не стоит на паузе?
- Триггер назначен тегу и срабатывает в предварительном просмотре?
- Идентификатор цели в теге совпадает с идентификатором цели в Метрике?
- Номер счётчика в теге тот же, что и на сайте?
- Условие триггера не отсекает нужную страницу или форму?
Яндекс Тег Менеджер или Google Tag Manager
Инструменты решают одну задачу, но выбирают между ними обычно по тому, вокруг каких сервисов уже построена аналитика проекта.
| Параметр | Яндекс Тег Менеджер | Google Tag Manager |
|---|---|---|
| Код на сайте | Не нужен, работает через счётчик Метрики | Два фрагмента кода контейнера в шаблон сайта |
| Что требуется для старта | Счётчик Метрики и права владельца | Аккаунт Google и доступ к коду сайта |
| Где интерфейс | Внутри Яндекс Метрики | Отдельный сервис |
| Каталог шаблонов | Меньше, но хорошо покрывает российские сервисы | Большой, с сильным перекосом в зарубежные сервисы |
| Разделение прав | Шесть ролей, редактирование и публикация разведены | Права на уровне аккаунта и контейнера |
| Цена | Бесплатно | Бесплатно в базовой версии |
Практическая логика выбора простая. Если весь стек уже яндексовый (Метрика, Директ, коллтрекинг с российской интеграцией), ЯТМ ставится за минуту и не требует ни строчки в шаблоне сайта. Если аналитика построена вокруг зарубежных сервисов или с доступом к коду сайта у вас нет сложностей, привычный GTM никуда не делся.
Держать оба тоже нормально: конфликта между ними нет, каждый работает со своими тегами. Главное не дублировать один и тот же скрипт в двух контейнерах, иначе он отработает дважды.
Подробный разбор второго инструмента с установкой кода и настройкой переменных мы собрали в статье «Настройка Google Tag Manager с нуля», а программы, где GTM разбирают на практике, лежат в подборке курсов по Google Tag Manager.
Где научиться веб-аналитике
Сам по себе тег-менеджер даёт немного. Он работает в связке с остальным ремеслом: разметкой целей, UTM-метками, чтением отчётов, сведением данных по источникам. Собирать это по статьям можно, но дольше, чем один раз пройти системный курс.
| Курс | Школа | Стоимость со скидкой | В рассрочку | Длительность | Обзор курса от Checkroi |
|---|---|---|---|---|---|
| Сквозная аналитика Перейти на сайт курса | 33 881 ₽ | 2823 ₽/мес. | 1 месяц | Обзор курса | |
| Веб-аналитик с нуля до Junior Перейти на сайт курса | 74 415 ₽ | 2400 ₽/мес. | 7 месяцев | Обзор курса | |
| Веб-аналитика Перейти на сайт курса | 23 436 ₽ | 1953 ₽/мес. | 2 месяца | Обзор курса | |
| Веб-аналитика с Яндекс.Метрикой Перейти на сайт курса | 14 990 ₽ | 1499 ₽/мес. | 2 месяца | Обзор курса | |
| Онлайн-курс веб-аналитики Перейти на сайт курса | 15 300 ₽ | 867 ₽/мес. | 1 месяц | Обзор курса | |
| Микрокурс по веб-аналитике Перейти на сайт курса | 14 000 ₽ | 5834 ₽/мес. | 1 месяц | Обзор курса | |
| Интернет-маркетолог Перейти на сайт курса | 122 400 ₽ | 5000 ₽/мес. | 10 месяцев | Обзор курса | |
| Таргетолог с нуля Перейти на сайт курса | 122 400 ₽ | 5000 ₽/мес. | 10 месяцев | Обзор курса | |
| Таргетолог Перейти на сайт курса | 72 156 ₽ | 3007 ₽/мес. | 6 месяцев | Обзор курса | |
| Директор по маркетингу Перейти на сайт курса | 230 400 ₽ | 19 200 ₽/мес. | 8 месяцев | Обзор курса |
Больше программ — в полном каталоге курсов по веб-аналитике
Если пока присматриваетесь к направлению целиком, посмотрите наш обзор профессии «Веб-аналитик: кто это и чем занимается» и пошаговый план «Как стать веб-аналитиком» с инструментами и первым портфолио.



