Як налаштувати подію в GTM: тег і тригер
Покрокова інструкція: налаштувати кастомний тег і тригер у GTM для відстеження кліку по кнопці — dataLayer.push, Custom Event trigger, GA4 event. Перевірка через Preview.
Зміст
Налаштувати подію в GTM — значить зв’язати тег, тригер і (за потребою) змінні так, щоб потрібна дія користувача автоматично відправляла дані в GA4 або інший інструмент. Конкретний приклад, який розберемо в цій статті: клік по CTA-кнопці → dataLayer.push → Custom Event Trigger → GA4 Event Tag.
Якщо ви ще не встановлювали GTM — спочатку прочитайте основи Google Tag Manager.
Три кити GTM: тег, тригер, змінна
Перш ніж налаштовувати конкретну подію, треба розуміти структуру GTM. Вся логіка будується на трьох сутностях:
| Сутність | Питання | Приклад |
|---|---|---|
| Тег | Що зробити? | Відправити GA4 Event з назвою button_click |
| Тригер | Коли зробити? | Коли спрацьовує Custom Event cta_clicked |
| Змінна | З якими даними? | {{DLV - button_id}} = значення з dataLayer |
Тег без тригера мовчить. Тригер без тега — умова в порожнечі. Вони завжди йдуть у парі.
Типи тегів
У GTM є вбудовані шаблони для найпопулярніших інструментів:
- GA4 Event — відправляє подію в Google Analytics 4
- GA4 Configuration — ініціалізує GA4 (базовий тег на всі сторінки)
- Google Ads Conversion Tracking — фіксує конверсії Google Ads
- Google Ads Remarketing — піксел ремаркетингу
- Custom HTML — довільний JavaScript-код
Крім вбудованих — Community Template Gallery з сотнями готових шаблонів: Meta Pixel, TikTok Pixel, LinkedIn Insight, Hotjar, Microsoft Clarity. Шукати через Tags → New → шукати за назвою.
Типи тригерів
Кожен тригер слухає певний тип події на сторінці:
| Тригер | Коли спрацьовує |
|---|---|
| Page View | При завантаженні сторінки |
| DOM Ready | Коли DOM побудовано (пізніше Page View) |
| Window Loaded | Після повного завантаження (всі ресурси) |
| All Clicks | Будь-який клік по будь-якому елементу |
| Just Links | Тільки кліки по <a> посиланнях |
| Form Submission | Відправка форми |
| Scroll Depth | Прокрутка на N% або N пікселів |
| Element Visibility | Елемент з’явився у viewport |
| YouTube Video | Start/progress/complete для embedded відео |
| Timer | Через N мілісекунд після завантаження |
| History Change | Зміна URL без reload (SPA: React/Vue/Angular) |
| Custom Event | Кастомна подія з dataLayer.push({event: '...'}) |
Вбудовані змінні: увімкнути перед початком роботи
GTM має вбудовані змінні (Built-in Variables), але за замовчуванням більшість вимкнена. Перший крок після створення контейнера:
Variables → Built-in Variables → Configure
Увімкніть групи:
- Pages: Page URL, Page Hostname, Page Path
- Clicks: Click Element, Click Classes, Click ID, Click Target, Click URL, Click Text
- Forms: Form Element, Form Classes, Form ID, Form Target, Form Text, Form URL
- Scrolling: Scroll Depth Threshold, Scroll Depth Units, Scroll Direction
- Videos: Video Provider, Video Status, Video URL, Video Title, Video Duration, Video Current Time, Video Percent, Video Visible
Після цього вони доступні в тегах і тригерах як {{Page URL}}, {{Click Text}} тощо.
dataLayer: правильний підхід до передачі даних
DOM-скрапінг (зчитувати текст кнопки через {{Click Text}}) — зручний старт, але крихкий у продакшні: змінили клас або текст кнопки при редизайні — трекінг мовчки зламався і ніхто не помітив.
Надійний підхід — dataLayer.push: розробник додає один рядок у обробник події, а GTM ловить його через Custom Event Trigger.
Схема роботи:
Користувач натискає кнопку
↓
JavaScript-обробник виконує dataLayer.push({
event: 'cta_clicked',
button_id: 'hero-signup',
section: 'homepage'
})
↓
GTM Custom Event Trigger слухає event = 'cta_clicked'
↓
Тег GA4 Event спрацьовує → відправляє подію в GA4
Переваги:
- Розробник явно визначає, що трекувати — немає «магії з DOM»
- При редизайні верстки push не ламається
- Можна передавати будь-які дані: ID товару, суму, назву категорії
- Відлагодження зрозуміле: видно push у консолі і в Tag Assistant
Практичний приклад: відстеження кліку по кнопці
Розберемо повну послідовність від коду до GA4 події.
Крок 1: Розробник додає dataLayer.push
На кнопці «Зареєструватись» (або будь-якій CTA) розробник додає обробник:
// Варіант 1: HTML атрибут onclick
<button
onclick="window.dataLayer.push({
event: 'cta_clicked',
button_id: 'hero-signup',
section: 'homepage'
})">
Зареєструватись
</button>
// Варіант 2: JavaScript EventListener (кращий стиль)
document.getElementById('hero-signup-btn').addEventListener('click', function() {
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'cta_clicked',
button_id: 'hero-signup',
section: 'homepage',
button_text: this.innerText
});
});
// Варіант 3: jQuery (якщо є на сайті)
$('#hero-signup-btn').on('click', function() {
dataLayer.push({
event: 'cta_clicked',
button_id: 'hero-signup',
section: 'homepage'
});
});
Рядок window.dataLayer = window.dataLayer || []; — захист на випадок, якщо GTM ще не завантажився.
Назва події (event) — довільний рядок у snake_case. Рекомендую схему <об'єкт>_<дія>: cta_clicked, form_submitted, video_started, product_added.
Крок 2: Створити Custom Event Trigger у GTM
- У GTM → Triggers → New
- Назва тригера:
Custom Event - cta_clicked - Trigger Configuration → клік на тип → Custom Event
- Event Name:
cta_clicked(рівно те, що вeventпри push) - Fire on: All Custom Events (або виберіть «Some Custom Events» і додайте умову — наприклад, тільки якщо
{{DLV - section}}=homepage) - Зберегти
Крок 3: Створити Data Layer Variables (для передачі параметрів)
Щоб передати button_id і section у GA4, створіть дві Data Layer Variables:
Variables → New → Variable Configuration → Data Layer Variable
Змінна 1:
- Назва:
DLV - button_id - Data Layer Variable Name:
button_id - Data Layer Version: Version 2
Змінна 2:
- Назва:
DLV - section - Data Layer Variable Name:
section - Data Layer Version: Version 2
Тепер {{DLV - button_id}} і {{DLV - section}} доступні в тегах.
Крок 4: Створити GA4 Event Tag
- Tags → New
- Назва тега:
GA4 Event - cta_clicked - Tag Configuration → Google Analytics: GA4 Event
- Configuration Tag: виберіть ваш GA4 Configuration Tag (або введіть Measurement ID
G-XXXXXXXXXXвручну) - Event Name:
cta_clicked(абоbutton_click— як назвали в GA4) - Event Parameters → Add Parameter:
- Parameter Name:
button_id| Value:{{DLV - button_id}} - Parameter Name:
section| Value:{{DLV - section}}
- Parameter Name:
- Triggering → виберіть тригер
Custom Event - cta_clicked - Зберегти
Крок 5: Перевірити в Preview Mode
GTM Preview — обов’язковий крок перед публікацією.
- Натисніть Preview (кнопка у правому верхньому куті GTM)
- У вікні Tag Assistant введіть URL вашого сайту → Connect
- На сторінці відкриється debug-банер внизу; Tag Assistant — у новій вкладці
- Натисніть кнопку (клікніть по CTA)
- У Tag Assistant → Summary → з’явиться подія
cta_clicked - Клікніть на подію → вкладка Tags: ваш тег
GA4 Event - cta_clickedмає бути у Fired (зелений) - Вкладка Variables: перевірте, що
{{DLV - button_id}}=hero-signup,{{DLV - section}}=homepage - Вкладка Data Layer: видно повний push-об’єкт
Якщо тег у Not Fired (сірий) — перевірте назву події в тригері (вона має збігатися з event у push символ в символ, регістр має значення).
Крок 6: Опублікувати
- Закрийте Preview
- Submit → Create Version
- Додайте опис: «GA4 Event tracking для CTA кнопок»
- Publish
Після публікації конфігурація активна для всіх відвідувачів.
Перевірка в GA4 DebugView
Після публікації подію можна перевірити в GA4 → Admin → DebugView:
- Відкрийте сайт у Chrome з розширенням Google Analytics Debugger (або
?_debug=1у URL якщо налаштовано GA4 Debug Mode) - GA4 → Admin → DebugView → знайдіть свій пристрій
- Клікніть по кнопці на сайті
- У DebugView з’явиться подія
cta_clickedз параметрамиbutton_idіsection
Якщо подія не з’являється в DebugView протягом 30 секунд — скоріш за все тег не спрацьовує. Повертайтесь до Preview Mode і шукайте помилку в тригері або тезі.
У звичайних звітах GA4 → Events нова подія з’явиться через 24-48 годин після першого зафіксованого хіту.
Типові помилки при налаштуванні подій у GTM
Назва події в тригері не збігається з push.
cta_Clicked≠cta_clicked— GTM чутливий до регістру. Перевіряйте символ в символ.Забули ввімкнути вбудовані змінні. Зробили тригер «All Clicks», а
{{Click Text}}— порожній. Variables → Configure → увімкніть Clicks.Тег спрацьовує двічі. Часто причина — і Click Trigger, і Custom Event Trigger прив’язані до одного тегу. Або Custom Event Trigger зі «All Custom Events» ловить події інших push’ів (наприклад,
gtm.domабоpageview).dataLayer.push до завантаження GTM. Якщо push відбувається у
<head>до коду GTM — ініціалізуйте масив першим рядком:window.dataLayer = window.dataLayer || [];. GTM підхопить push ретроактивно при завантаженні.Data Layer Variable Version 1 замість Version 2. В старих контейнерах GTM Version 1 — якщо значення порожнє, спробуйте змінити на Version 2 (або Auto-detect).
Перевірка тільки в Preview, без Submit. Після Preview зміни не публікуються автоматично — треба Submit. Класична ситуація: «у мене все працювало, але після релізу не трекується» — тому що зміни залишились у Preview-режимі.
Тег без GA4 Configuration Tag. GA4 Event Tag вимагає або прив’язаного Configuration Tag, або Measurement ID у полі. Якщо Configuration Tag не завантажився раніше — event не відправиться.
Забули позначити подію як Key Event у GA4. Якщо ціль трекінгу — конверсія, після того як подія з’явилась у GA4 → Events, відзначте її як Key Event (раніше «Conversion»): Events → знайдіть подію → тумблер «Mark as key event».
Альтернативний підхід: Click Trigger без dataLayer
Якщо розробника немає, а потрібно швидко відстежити клік — можна обійтися вбудованим Click Trigger:
- Triggers → New → All Clicks (або Just Links для посилань)
- Fire on: Some Clicks
- Умова:
Click IDequalshero-signup-btn(абоClick Classescontainscta-button) - Прив’язати до GA4 Event Tag з Event Name
button_click
Параметри передавати через вбудовані змінні: {{Click Text}}, {{Click ID}}, {{Click Classes}}, {{Page Path}}.
Коли це підходить:
- Прототип або A/B-тест, де точність не критична
- Статичні сайти без JS-обробників
- Нема доступу до коду для додавання push’ів
Коли обов’язково треба dataLayer:
- E-commerce: передавати item_id, ціну, кількість
- Авторизація: передавати user_type, plan
- Будь-де, де дані є тільки в JS, не у верстці
Що налаштовувати далі
Після того як базовий Custom Event Trigger працює, типові наступні кроки:
- Enhanced Ecommerce: відстеження
view_item,add_to_cart,purchaseз масивомitems[]— окремий великий розділ - Form tracking: Custom Event на
form_submitз передачею ID форми і результату валідації - Scroll depth: вбудований Scroll Depth Trigger → GA4 Event
scrollз параметромpercent_scrolled - Video tracking: YouTube Video Trigger для відстеження
video_start,video_complete - Consent Mode v2: ланцюжок Default Consent → Banner → Update Consent (вимога для Google Ads у ЄС з березня 2024)
Всі ці налаштування живуть у тому ж GTM-контейнері і використовують ту ж логіку: тег + тригер + змінні.
Пов’язані матеріали
Розділ:
Глосарій:
Інструменти:
- GA4 Event Builder — перевірити схему події перед відправкою
Схожі статті
Google Tag Manager: що це та як налаштувати теги
Повний посібник по Google Tag Manager для початківців: що таке GTM, як встановити, як працюють теги/тригери/змінні, dataLayer, Preview Mode, server-side GTM і Consent Mode v2.
GlossaryТригер (Trigger) у GTM: повний посібник — типи, фільтри, Trigger Groups, Exceptions
Що таке тригер у Google Tag Manager, всі 13 типів тригерів (Page View, Click, Form, Custom Event, Scroll), Trigger Groups, Exceptions, як налаштувати умови та винятки.
GtmdataLayer: як працює і як використовувати
dataLayer — глобальний масив між сайтом і GTM. Як влаштований, як правильно пушити події, читати значення через змінні і уникати типових помилок.