Что такое Google Tag Manager?

Google Tag Manager (GTM) — система управления тегами: один контейнер на сайте (или в приложении) запускает пиксели, счётчики и свои скрипты по правилам, без выкладки кода на каждый новый тег. Короткий запрос gtm зашумлён (GTM-стратегия в играх, посторонние аббревиатуры) — в аналитике речь только о Google Tag Manager.

GTM сам ничего не «считает». Он не заменяет GA4, Яндекс Метрику или трекер. Контейнер решает, когда и куда отправить событие. Отчёты живут в системах, которые теги вызывают.

Контейнер, теги, триггеры, переменные

Контейнер — единица публикации. На сайт ставится один сниппет с ID вида GTM-XXXX. Внутри — рабочие версии: черновик, Preview, опубликованный снимок. Несколько контейнеров имеют смысл для разных доменов или сред (prod / staging), не для каждого пикселя.

Тег — полезная нагрузка: конфигурация GA4, Google Ads conversion, pixel Meta/TikTok, счётчик Метрики, Custom HTML, иногда вызов Conversion API через серверный контур. Тег не знает «сам», когда стрелять.

Триггер — условие запуска: All Pages, просмотр конкретного URL, клик по CSS-селектору, отправка формы, глубина скролла, History Change (SPA), Custom Event из data layer. Один тег может висеть на нескольких триггерах; один триггер — на нескольких тегах.

Переменная — значение, которое подставляется в тег или в условие триггера: URL, Click Text, константа pixel ID, поле из data layer, UTM из query. Без переменных теги глухие: не знают сумму покупки, ID транзакции, какой кнопке кликнули.

Data layer

Data layer — JavaScript-массив (dataLayer), в который страница кладёт события и поля: event, transaction_id, value, тип лида. GTM читает ключи через Data Layer Variable и ловит имя события Custom Event-триггером. Типичный цикл: форма ушла → сайт делает dataLayer.push({ event: 'lead', value: 30 }) → триггер lead → теги GA4 / пиксель / Ads conversion уходят с одной и той же суммой.

Если события нет в data layer, GTM может снять клик с DOM — это хрупче: верстка меняется, селектор умирает, Preview зелёный, в проде тишина. Для арбитражного лендинга устойчивее явный push на thank-you и на кнопку заявки, чем охота за классами.

Зачем это в performance и арбитраже

На своём преленде через один контейнер собирают Метрику, GA4 (если нужен), пиксели источников и иногда вспомогательные UTM-правила. Имена событий лучше согласовать с кабинетом: Lead / Purchase в Meta не должны расходиться с целью в аналитике. Дедупликация pixel + CAPI идёт по event_id: его тоже кладут в data layer и отдают и браузерному тегу, и серверу.

UTM GTM не создаёт — он читает их из URL и может прокинуть в поля тега или в custom dimension. Атрибуция клик → выплата по-прежнему у трекера и postback; GTM не выдаёт click ID партнёрки и не считает ROI.

Preview, версии, согласие

Preview (Tag Assistant) показывает, какие теги сработали на каком событии и какие переменные были в этот момент. Публикация создаёт версию; откат — на предыдущую. Без Preview «тег не стреляет» диагностируют наугад.

Consent Mode и баннер согласия решают, имеет ли тег право на cookies и рекламные сигналы. В ЕС контейнер, который стреляет пиксели до согласия, ломает GDPR, а не «улучшает охват». Блокировщики режут и GTM, и сами пиксели: часть событий всё равно уходит только сервером.

Server-side контейнер — не то же самое, что postback

У GTM есть server-side контейнер (sGTM): браузер бьёт в ваш домен, сервер уже шлёт события в GA4 и рекламные API. Это не S2S-трекинг оффера (postback ПП → трекер) и не замена MMP. sGTM — про доставку тегов и first-party endpoint, отдельная тема от классического affiliate postback.

Ограничения

На чужом домене оффера свой контейнер часто нельзя поставить — остаются трекер и кабинет. Custom HTML с чужим JS — поверхность для ошибок и утечек. Лимиты размера контейнера и гонки в SPA дают двойные хиты, если триггеры пересекаются. GTM не модель атрибуции: он только доставляет сигнал.

См. также: pixel-трекинг, Conversion API, UTM-метки, трекер, атрибуция.