Триггер (Trigger) в Google Tag Manager — набор условий, по которым GTM активирует привязанный к нему тег. Триггер определяет момент и контекст срабатывания: просмотр страницы, клик, отправка формы, скролл, пользовательское событие в dataLayer.
Триггер (Trigger) в Google Tag Manager (GTM) — это сущность, которая решает, когда именно должен сработать тег. Без триггера тег в GTM просто не запускается: маркетолог или аналитик создаёт условие («когда пользователь кликает по кнопке с классом .btn-buy», «когда загрузилась страница checkout», «когда в dataLayer появилось событие purchase»), а GTM постоянно мониторит события браузера и dataLayer. Как только условие выполняется — GTM активирует все теги, к которым этот триггер привязан, передав им контекст события. Вместе с тегами и переменными триггер формирует ядро GTM-модели: тег определяет что делать, триггер — когда, переменная — с какими данными.
Триггер — сердце GTM-логики. Без понимания триггеров невозможно настроить реальный трекинг: GA4 Event Tag без правильного триггера или не срабатывает, или забивает аналитику шумом. В 2026 типичный контейнер содержит 30-60 триггеров.
Как устроен триггер
Технически триггер — это пара «тип события + набор фильтров». Пример:
Тип: Click - All Elements
Фильтр: Click Classes matches RegEx ^btn-cta$
AND Page Path equals /pricing
Триггер срабатывает, когда наступает событие (клик по любому элементу) и оба фильтра истинны. Если хотя бы один фильтр false — тег не активируется. Кроме основных условий, каждый тег имеет отдельный раздел Exceptions (исключения) — триггеры-блокеры, запрещающие запуск тега даже при активном основном триггере.
В Preview-режиме GTM показывает каждый триггер: сработал он или нет, какие условия выполнились, какие — нет. Это основной инструмент диагностики при настройке.
Операторы фильтров
GTM поддерживает 11 операторов для условий: equals, does not equal, contains, does not contain, starts with, ends with, matches RegEx, does not match RegEx, matches RegEx (ignore case), greater than, less than.
Основные типы триггеров
GTM делит триггеры на 13 типов. Чаще всего используются:
| Тип | Когда срабатывает | Примеры применения |
|---|---|---|
| Page View | Базовый просмотр страницы | Инициализация Google 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 |
| YouTube 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, класс).
Клик по номеру телефона удобно ловить триггером Click с фильтром по href, начинающемуся на tel:. Это первый шаг к тому, чтобы отследить звонки с сайта: само нажатие фиксируется сразу, а состоявшийся разговор доедет позже — отдельным событием от коллтрекинга.
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 покрывает все сложные.
Built-in Click и Form Variables
Большинство Click и Form триггеров требуют встроенных переменных, которые по умолчанию выключены. Активируйте через Variables → Configure:
Click Variables:
{{Click Element}}— DOM-элемент.{{Click Classes}}— CSS-классы элемента.{{Click ID}}— id атрибут.{{Click Target}}— target атрибут.{{Click URL}}— href для links.{{Click Text}}— текстовое содержимое.{{Click Just Links}}—trueдля<a>тегов.
Form Variables:
{{Form Element}},{{Form Classes}},{{Form ID}},{{Form Target}},{{Form URL}},{{Form Text}}.
Без активации эти переменные возвращают undefined и фильтры никогда не выполняются — самая частая причина «триггер не срабатывает».
Типичные паттерны Click-триггеров
- Outbound links: Click - Just Links +
Click URL does not contain example.com+Click URL starts with http. - Email/Phone: Click - Just Links +
Click URL starts with mailto:(илиtel:). - CTA-кнопки: Click - All Elements +
Click Classes contains btn-cta. - File downloads: Click - Just Links +
Click URL matches RegEx \.(pdf|zip|docx?)$. - Specific button: Click - All Elements +
Click ID equals header-signup.
Trigger Groups: когда нужно несколько условий подряд
Trigger Group — отдельный тип триггера, который срабатывает, когда все указанные триггеры уже сработали в течение одной сессии (не одновременно — последовательно в любом порядке). Пример: «Пользователь посмотрел ≥3 страниц и проскроллил ≥75%» → тег «Engaged User» активируется один раз, когда оба условия выполнились. Это удобно для:
- Обозначения вовлечённых пользователей для Google Ads ремаркетинга.
- Трекинга сложных воронок, где важен порядок действий.
- Запуска дорогих пикселей только для «качественного» трафика.
- Conversion-квалификации перед отправкой в CRM.
Настройка: Triggers → New → Trigger Group → выберите набор триггеров-членов. Лимит: Trigger Group срабатывает максимум один раз за сессию.
Исключения (Trigger Exceptions)
Важный, но недооценённый механизм. Типичный пример: у вас GA4 Pageview на всех страницах, но нужно не фиксировать просмотры в админ-панели. Вместо того чтобы усложнять основной триггер, в разделе Exceptions тега добавляете:
Trigger: Page View - Admin Pages
Condition: Page Path matches RegEx ^/admin
Этот триггер блокирует тег, когда URL содержит /admin. Исключения также полезны для:
- Отключения трекинга для команды (по User Agent или cookie).
- Блокировки тега для пользователей без согласия на аналитику (Consent Mode).
- Исключения тестовых транзакций в development-среде (
Hostname contains staging). - Блокировки на страницах с error-состоянием (404/500).
SPA-специфичные триггеры
В SPA (React, Vue, Next.js) браузер не перезагружает страницу — нужны специальные подходы:
Решение 1: History Change — встроенный триггер ловит изменение URL через history.pushState(). Активируйте Built-in Variables: New History Fragment, Old History Fragment, History Source.
Решение 2: Custom Event (рекомендуется) — разработчик пушит в dataLayer:
// React Router
useEffect(() => {
dataLayer.push({event:'page_view', page_path: location.pathname});
}, [location]);
// Vue Router
router.afterEach((to) => {
dataLayer.push({event:'page_view', page_path: to.fullPath});
});
// Next.js
router.events.on('routeChangeComplete', (url) => {
dataLayer.push({event:'page_view', page_path: url});
});
Триггер Custom Event с Event Name = page_view даёт больше контроля — вы передаёте собственные параметры (page_title, content_group).
Триггер 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 отправляет в внешнюю систему.
Как проверить, что триггер срабатывает
Preview Mode в GTM — главный инструмент:
- Нажмите Preview в правом верхнем углу GTM.
- Введите URL сайта → Connect.
- Открываются два окна: ваш сайт с debug-баннером и Tag Assistant в новой вкладке.
- В Tag Assistant слева — хронология всех событий.
- Выберите событие → справа видите Tags Fired (сработали) и Tags Not Fired (нет).
- Клик на тег → Triggers → видите каждый триггер со статусом TRUE/FALSE для каждого условия.
- Если триггер показан как Not Fired — расширьте список до All triggers и увидите, какое именно условие не выполнилось.
Альтернатива: Chrome DevTools → Console → введите dataLayer для просмотра всех push’ей.
Типичные ошибки при настройке триггеров
- Триггер без фильтров. 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 без проверки валидации. Триггер срабатывает до валидации формы — регистрируются «лиды», которых на самом деле нет.
- History Change вместо Custom Event в SPA. Пропускает важные переходы без явного push’а.
- Триггер без exceptions для admin/staging. Шум от внутреннего трафика.
- Click - All Elements вместо Click - Just Links для outbound — ловит клики на span внутри ссылки.
- Нестрогий RegEx.
gclid=.*ловит пустые значения. - Trigger Group с некорректными членами. Срабатывает не когда нужно.
Связанные материалы
- Tag (тег) в GTM — что активирует триггер.
- DataLayer — источник данных для Custom Event триггеров.
- Event (событие) в GA4 — то, что отправляет тег после срабатывания триггера.
- Conversion / Key Event — обозначение важных событий.
- Session — в рамках которой срабатывают триггеры.
- GTM — полное руководство.
- GA4 — полное руководство.
Частые вопросы
Что такое триггер в GTM простыми словами?
.btn-buy», «когда загрузилась страница checkout», «когда в dataLayer появилось событие purchase»), а GTM мониторит события браузера и dataLayer. Как только условие выполняется — GTM активирует все теги, к которым этот триггер привязан, передав им контекст события. Вместе с тегами и переменными триггер формирует ядро GTM: тег определяет что делать, триггер — когда, переменная — с какими данными. В GTM 13 типов триггеров — от простого Page View до сложных Trigger Groups для многоступенчатых воронок.Какие 13 типов триггеров существуют в GTM?
<a> теги; (6) Form Submission — отправка формы; (7) Element Visibility — элемент появился в viewport; (8) Scroll Depth — прокрутка на N% или N пикселей. Other: (9) YouTube Video — start/progress/complete для embedded; (10) Timer — интервальный таймер; (11) Custom Event — кастомное событие в dataLayer (самый гибкий); (12) History Change — изменение URL без перезагрузки (для SPA); (13) JavaScript Error — uncaught ошибка JS. Trigger Group — мета-триггер, срабатывающий когда все вложенные уже сработали.Как работает триггер: тип события + фильтры
Тип: Click - All Elements, Фильтр: Click Classes matches RegEx ^btn-cta$ AND Page Path equals /pricing. Триггер срабатывает, когда наступает событие (клик) и оба фильтра истинны. Если хотя бы один фильтр false — тег не активируется. Опции условий: (1) Fire on All — срабатывает без дополнительных фильтров; (2) Fire on Some — только при выполнении фильтров. Операторы фильтров: equals, does not equal, contains, does not contain, starts with, ends with, matches RegEx, does not match RegEx, matches RegEx (ignore case), greater than, less than. В Preview-режиме GTM показывает каждый триггер: сработал или нет, какие условия выполнились, какие — нет. Это основной инструмент диагностики при настройке. Exceptions — отдельный раздел тега с триггерами-блокерами, запрещающими запуск даже при активном основном триггере.Что такое Custom Event триггер и почему он критичен?
dataLayer.push({event: 'add_to_cart', ecommerce: {currency:'UAH', value:999, items:[...]}}). Триггер Custom Event с условием Event Name = add_to_cart ловит этот push и запускает GA4 Event Tag, читающий значения из dataLayer. Этот паттерн — фактический стандарт для любого современного проекта с 2+ системами аналитики или SPA-стеком: DOM-триггеры остаются для простых случаев, Custom Event покрывает все сложные. Без Custom Event GTM не может реализовать Enhanced Ecommerce в SPA.Что такое Trigger Groups?
Что такое Trigger Exceptions и зачем они?
Trigger: Page View - Admin Pages, Condition: Page Path matches RegEx ^/admin. Триггер блокирует тег когда URL содержит /admin. Другие use case’ы: (1) Отключение трекинга для команды по User Agent или cookie; (2) Блокировка тега для пользователей без согласия на аналитику (Consent Mode v2); (3) Исключение тестовых транзакций в development-среде (Hostname contains staging); (4) Блокировка на страницах с error-состоянием (404/500). Преимущество Exceptions — отдельная логика блокировки не путает основной триггер.Какие типы Click триггеров выбирать?
<button>, <div>, <a>, <span> и т.д.). Самый гибкий, но требует строгих фильтров. Без условий GA4 забивается шумом. Click - Just Links — только <a> теги. Built-in Click Variables: {{Click Element}} (DOM-элемент), {{Click Classes}} (CSS-классы), {{Click ID}} (id атрибут), {{Click Target}} (target атрибут), {{Click URL}} (href для links), {{Click Text}} (текст), {{Click Just Links}} — true для <a>. Активируются через Variables → Configure → отметьте чек-боксами. Типичные паттерны: (1) Outbound links: Click - Just Links + условие Click URL does not contain example.com + Click URL starts with http; (2) Email/Phone: Click - Just Links + Click URL starts with mailto: (или tel:); (3) CTA-кнопки: Click - All Elements + Click Classes contains btn-cta. Без активации Click Variables все эти фильтры не сработают.Как настроить триггер для SPA (React/Vue/Next.js)?
history.pushState(). Активируйте Built-in Variables: New History Fragment, Old History Fragment, History Source. Решение 2: Custom Event (рекомендуется) — разработчик пушит в dataLayer на route change: dataLayer.push({event:'page_view', page_path:'/products/1'}). Триггер Custom Event с условием Event Name = page_view. Даёт больше контроля — вы передаёте собственные параметры (page_title, content_group). Patterns по фреймворкам: React Router с useLocation + useEffect, Vue Router с router.afterEach, Next.js с router.events.on('routeChangeComplete'). Критично: перед page_view новой страницы очищайте предыдущие items[] через dataLayer.push({ ecommerce: null }), иначе старые items попадут в следующий purchase.Как проверить что триггер срабатывает?
dataLayer для просмотра всех push’ей. Самая частая причина ‘триггер не срабатывает’: Built-in Click/Form Variables не активированы — отметьте их в Variables → Configure.Какие типичные ошибки при настройке триггеров?
Page Path matches RegEx checkout срабатывает на /pre-checkout и /checkout-faq. Правильно — ^/checkout; (3) Путаница между Built-in и Custom variables — Built-in Click Classes нужно включить в Variables → Configure, иначе фильтр никогда не выполнится; (4) Дубль между Page View и Window Loaded — тот же тег с обоими триггерами, GA4 получает page_view дважды; (5) Form Submission без проверки валидации — триггер срабатывает до валидации, регистрируются ‘лиды’, которых на самом деле нет; (6) History Change вместо Custom Event в SPA — пропускает важные переходы; (7) Триггер без exceptions для admin/staging — шум от внутреннего трафика; (8) Click - All Elements вместо Click - Just Links для outbound — ловит клики на span внутри ссылки; (9) Нестрогий RegEx — gclid=.* ловит пустые значения; (10) Trigger Group с некорректными членами — срабатывает не когда нужно.Связанные термины
Связанный контент
Смотрите также
Раздел: GTMНаткнулся на ещё один незнакомый термин? В глоссарии — объяснения с формулами, примерами и бенчмарками из реальной практики.
Все термины глоссария