Триггер (Trigger) в Google Tag Manager — набор условий, по которым GTM активирует привязанный к нему тег. Триггер определяет момент и контекст срабатывания: просмотр страницы, клик, отправка формы, скролл, пользовательское событие в dataLayer.
Триггер (Trigger) в Google Tag Manager (GTM) — это сущность, которая решает, когда именно должен сработать тег. Без триггера тег в GTM просто не запускается: маркетолог или аналитик создаёт условие («когда пользователь кликает по кнопке с классом .btn-buy», «когда загрузилась страница checkout», «когда в dataLayer появилось событие purchase»), а GTM постоянно мониторит события браузера и dataLayer. Как только условие выполняется — GTM активирует все теги, к которым этот триггер привязан, передав им контекст события. Вместе с тегами и переменными триггер формирует ядро GTM-модели: тег определяет что делать, триггер — когда, переменная — с какими данными.
Как устроен триггер
Технически триггер — это пара «тип события + набор фильтров». Пример:
Тип: Click - All Elements
Фильтр: Click Classes matches RegEx ^btn-cta$
AND Page Path equals /pricing
Триггер срабатывает, когда наступает событие (клик по любому элементу) и оба фильтра истинны. Если хотя бы один фильтр false — тег не активируется. Кроме основных условий, у каждого тега есть отдельный раздел Exceptions (исключения) — триггеры-блокировщики, запрещающие запуск тега даже при активном основном триггере.
В Preview-режиме GTM показывает каждый триггер: сработал он или нет, какие условия выполнились, какие — нет. Это основной инструмент диагностики при настройке.
Основные типы триггеров
GTM делит триггеры на девять категорий. Чаще всего используются:
| Тип | Когда срабатывает | Примеры применения |
|---|---|---|
| Page View | Базовый просмотр страницы | Инициализация GA4 Configuration Tag |
| DOM Ready | После парсинга DOM | Скрипты, которым нужен доступ к элементам |
| Window Loaded | После полной загрузки (изображения, скрипты) | Тяжёлые пиксели, чтобы не замедлять LCP |
| Click - All Elements | Клик по любому элементу | Клики по кнопкам, CTA, ссылкам |
| Click - Just Links | Клик только по <a> | Outbound-ссылки, tel: и mailto: |
| Form Submission | Отправка HTML-формы | Лиды, регистрации |
| Element Visibility | Элемент появился в видимой зоне | Видимость CTA, лид-магнитов |
| Scroll Depth | Пользователь скроллит до %/px | Глубина чтения, scroll_depth_25/50/75/90 |
| Video | Событие YouTube-плеера | video_start, video_progress, video_complete |
| Timer | Интервальный таймер | «Active user after 30s» |
| Custom Event | Произвольное событие из dataLayer | Основной тип для SPA, e-commerce, CRM |
| History Change | Изменение URL без перезагрузки | SPA-маршрутизация (React, Vue, Next.js) |
| JavaScript Error | Unhandled error в window.onerror | Мониторинг JS-ошибок |
Помните: триггеры Form Submission и Click по умолчанию ловят все формы и клики, поэтому без фильтров тег сработает буквально везде. Всегда добавляйте условие (селектор, URL, класс).
Custom Event — главный триггер для сложных сайтов
Все триггеры, кроме Custom Event, работают с DOM-событиями браузера: click, submit, load, scroll. В SPA и e-commerce DOM может вообще не обновляться (React ре-рендерит элементы без перезагрузки), поэтому DOM-триггеры часто пропускают важные моменты. Решение — разработчик пушит в dataLayer кастомное событие:
dataLayer.push({
event: 'add_to_cart',
ecommerce: {
currency: 'UAH',
value: 999,
items: [{ item_id: 'SKU-001', item_name: 'Курс GA4', quantity: 1 }]
}
});
Триггер Custom Event с условием Event Name = add_to_cart ловит этот push и запускает GA4 Event Tag, который читает значения из dataLayer и отправляет в Google Analytics. Этот паттерн — фактический стандарт для любого современного проекта: DOM-триггеры остаются для простых случаев, Custom Event покрывает все более сложные.
Trigger Groups: когда нужно несколько условий подряд
Trigger Group — отдельный тип триггера, срабатывающий, когда все указанные триггеры уже сработали в течение одной сессии. Пример: «Пользователь посмотрел ≥3 страниц и проскроллил ≥75%» → тег «Engaged User» активируется один раз, когда оба условия выполнились. Это удобно для:
- Пометки вовлечённых пользователей для Google Ads ремаркетинга.
- Трекинга сложных воронок, где важен порядок действий.
- Запуска дорогих пикселей только для «качественного» трафика.
Исключения (Trigger Exceptions)
Важный, но недооценённый механизм. Типичный пример: у вас GA4 Pageview на всех страницах, но не надо фиксировать просмотры в админ-панели. Вместо того чтобы усложнять основной триггер, в разделе Exceptions тега добавляете:
Trigger: Page View - Admin Pages
Condition: Page Path matches RegEx ^/admin
Этот триггер блокирует тег, когда URL содержит /admin. Исключения также полезны для:
- Отключения трекинга для команды (по User Agent или cookie).
- Блокировки тега для пользователей без согласия на аналитику (Consent Mode).
- Исключения тестовых транзакций в development-среде.
Триггер vs тег vs событие
Три понятия, которые часто путают:
| Сущность | Роль | Пример |
|---|---|---|
| Event (в GA4) | Единица данных, попадающая в аналитику | purchase, sign_up |
| Trigger (в GTM) | Условие, по которому GTM запускает тег | Custom Event purchase, Click на .buy-btn |
| Tag (в GTM) | Код, отправляющий данные в систему | GA4 Event Tag, отправляющий purchase в GA4 |
Простая ментальная цепочка: event в dataLayer → trigger в GTM ловит его → tag в GTM отправляет во внешнюю систему.
Типовые ошибки при настройке триггеров
- Триггер без фильтров. Click - All Elements без условия срабатывает на каждый клик — GA4 забивается шумом.
- RegEx без якорей. Условие
Page Path matches RegEx checkoutсрабатывает на/pre-checkoutи/checkout-faq. Правильно —^/checkout. - Путаница между Built-in и Custom variables. Built-in Click Classes нужно включить в Variables → Configure, иначе фильтр никогда не выполнится.
- Дубль между Page View и Window Loaded. Тот же тег с обоими триггерами — GA4 получает page_view дважды.
- Form Submission без проверки валидации. Триггер срабатывает до валидации формы — регистрируются «лиды», которых на самом деле нет.
Стандартная проверка: после создания нового триггера открыть Preview в GTM, выполнить целевое действие на сайте и посмотреть, появился ли триггер в списке сработавших и активировались ли правильные теги. Если триггер показан как «Not Fired» — расширить список до «All triggers» и увидеть, какое именно условие не выполнилось.
Чтобы закрыть тему GTM полностью, стоит также разобраться с dataLayer — основным источником данных для триггеров, и с конверсиями и сессиями в GA4, куда обычно отправляются результаты работы тегов.