Skip to content

Instantly share code, notes, and snippets.

@andxbes
Last active March 16, 2026 10:59
Show Gist options
  • Select an option

  • Save andxbes/aa5ace1b8063074b7cc86be2a2b9b48c to your computer and use it in GitHub Desktop.

Select an option

Save andxbes/aa5ace1b8063074b7cc86be2a2b9b48c to your computer and use it in GitHub Desktop.
GTAG User Interacted triger
Откладывание загрузки «тяжелых» скриптов (реклама, чаты, аналитика) до первого клика или движения мыши — отличный способ поднять показатели 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.
Сохраните изменения.
<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