Last active
March 16, 2026 10:59
-
-
Save andxbes/aa5ace1b8063074b7cc86be2a2b9b48c to your computer and use it in GitHub Desktop.
GTAG User Interacted triger
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Откладывание загрузки «тяжелых» скриптов (реклама, чаты, аналитика) до первого клика или движения мыши — отличный способ поднять показатели Google PageSpeed Insights и улучшить UX. | |
| В Google Tag Manager (GTM) это реализуется через создание пользовательского события, которое активируется слушателями событий (Event Listeners). | |
| https://tagmanager.google.com/ | |
| Вот пошаговый алгоритм: | |
| Шаг 1: Создание тега-слушателя | |
| Нам нужно добавить на сайт JavaScript, который будет «ждать» взаимодействия пользователя и сообщать об этом в GTM. | |
| Создайте новый тег: Пользовательский HTML (Custom HTML). | |
| Вставьте код выше | |
| Триггер активации: All Pages (Все страницы). | |
| Шаг 2: Создание триггера ожидания | |
| Теперь нужно научить GTM реагировать на событие user_interacted, которое мы создали выше. | |
| Перейдите в раздел Триггеры -> Создать. | |
| Тип триггера: Пользовательское событие (Custom Event). | |
| Имя события: user_interacted. | |
| Условие активации: Все специальные события. | |
| Назовите его, например, Event - User Interacted. | |
| Шаг 3 | |
| Добавьте его в вашу Trigger Group | |
| Теперь отредактируйте вашу группу триггеров для нужного тега: | |
| Нажмите на блок Triggers. | |
| Добавьте второй триггер — тот самый Event - User Interacted. | |
| Сохраните изменения. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <script> | |
| (function() { | |
| var eventFired = false; | |
| function loadScripts() { | |
| if (!eventFired) { | |
| eventFired = true; | |
| // Убираем слушателей, чтобы не спамить в dataLayer | |
| window.removeEventListener('scroll', loadScripts); | |
| window.removeEventListener('mousemove', loadScripts); | |
| window.removeEventListener('touchstart', loadScripts); | |
| window.removeEventListener('click', loadScripts); | |
| // Передаем событие в GTM | |
| window.dataLayer = window.dataLayer || []; | |
| window.dataLayer.push({ | |
| 'event': 'user_interacted' | |
| }); | |
| } | |
| } | |
| // Слушаем основные действия | |
| window.addEventListener('scroll', loadScripts, {passive: true}); | |
| window.addEventListener('mousemove', loadScripts); | |
| window.addEventListener('touchstart', loadScripts, {passive: true}); | |
| window.addEventListener('click', loadScripts); | |
| })(); | |
| </script> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment