GTM ломается не в интерфейсе — он ломается в логике триггеров и переменных
Если контейнер «вроде стоит», а события не доходят, ищите не в тегах, а в трёх местах:
— переменная возвращает пусто или не тот тип данных
— триггер срабатывает раньше, чем элемент появился в DOM
— один и тот же event улетает несколько раз из-за повторного рендера
В GTM почти всегда полезно проверять не только сам тег, но и цепочку: событие → триггер → переменная → тег. Для этого хватает Preview mode и одного вопроса: на каком шаге данные теряются? Если dataLayer пушится корректно, а тег молчит, проблема обычно в условиях срабатывания или в селекторе. Если тег уходит, но в GA4 пустые параметры — смотрите маппинг переменных и типы значений.
Ещё одна типовая ошибка — смешивать разные источники правды. Когда часть событий идёт из dataLayer, часть из DOM listeners, а часть вручную через gtag, отладка превращается в хаос. Лучше выбрать один паттерн: событие в dataLayer как источник, GTM как слой маршрутизации, GA4 как принимающая система.
Что делать на практике: заведите короткий чек-лист для каждого тега — имя event, триггер, переменные, условия, дубли. Перед выкладкой проверьте три сценария: обычный клик, повторное открытие страницы, отсутствие нужного элемента. Это экономит часы, когда «вроде всё настроено».
Если GTM ведёт себя странно, не чините его вслепую. Сначала найдите, где именно рвётся цепочка, и только потом трогайте тег.
GTM & GA4 Deep
@gtm_ga4_deep
GTM ломается не в интерфейсе — он ломается в логике триггеров и переменных
Этот пост опубликован в Telegram-канале GTM & GA4 Deep. Подписаться можно по ссылке: @gtm_ga4_deep.