Сколько экранов лендинга проскролил посетитель

С помощью GTM отслеживаем, как глубоко пользователь просмотрел страницу сайта.

Рубрики
Web-аналитика

Работаем над увеличением конверсии лендинга. Коллега задаёт простой вопрос, насколько глубоко пользователи скролят страницу сайта? Вдруг посетители резко начинают уходить после просмотра одного из экранов?

В Яндекс.Метрике есть инструмент «Карта скроллинга» с данными за последние 2 недели ­­­– вроде бы то, что надо. Но что делать, если хочется строить отчёты за более продолжительный период? Или нужно собирать данные в Google Analytics? Настроим отслеживание просмотра каждого экрана с помощью Google Tag Manager (GTM).

Подготовительная работа на сайте

Добавляем в нужные места страницы (например, конец экрана) прозрачный элемент размером в 1px – Google Tag Manager будет следить, появился ли элемент на экране:

<div class="tracking-item" data-screen="1"></div>

В значении атрибута data-screen указываем номер экрана.

CSS для моего элемента

.tracking-item {
    width: 1px;
    height: 1px;
    background-color: transparent;
}

Дисклеймер. Конкретно на нашем сайте такое расположение элемента для отслеживания не портило вёрстку – на вашем, возможно, будет лучше добавить класс tracking-item и атрибут data-screen последнему абзацу текста или картинке на экране.

Порядок действий в GTM

Создаём новую переменную уровня данных (версия 2). Ниже я расскажу, зачем мы её создаём.

Для нашего случая имя переменной будет gtm.element.dataset.screen. Будьте внимательны с именем переменной: оно зависит от того, как вы назвали атрибут data-. Если бы в нашем элементе имя атрибута было data-ekran = "1", то переменную назвали бы gtm.element.dataset.ekran.

переменная gtm.element.dataset.screen в GTM

Теперь создаём триггер. Назовём его, например, «Просмотрен экран».

Кажется, что самое простое – воспользоваться типом триггера «Глубина прокрутки» (делим 100% на количество экранов – вот вам высота одного). Но на нашем лендинге секции с информацией сильно отличались друг от друга по высоте – высчитывать нужный процент муторно, да и получилось бы неточно.

Мы выбрали тип триггера «Видимость элемента».
Метод выбора – «Селектор CSS». В поле ниже указываем наш класс .tracking-item (не забываем точку).
Меняем правило запуска на «Один раз на элемент».
Остальные настройки оставляем по умолчанию и сохраняем.

триггер Видимость элемента в GTM

Теперь создаём теги для передачи событий в Google Analytics и Яндекс.Метрику.

Для Google Analytics выбираем тип тега «Событие GA 4», ниже – основной тег вашей учётки.
В поле с названием события userWatchedScreen{{gtm.element.dataset.screen}}, где в фигурных скобках переменная с номером экрана.
И в самом низу выбираем созданный ранее триггер.

тег для передачи события в Google Analytics

В теге для Яндекс.Метрики вставляем пользовательский HTML и выбираем созданный триггер.

<script type="text/javascript">
ym(NNN,'reachGoal','userWatchedScreen{{gtm.element.dataset.screen}}');
</script>

В коде не забудьте заменить NNN на ваш номер счётчика Метрики.

тег для передачи события в Яндекс.Метрику

Почему удобно использовать переменную

Если бы мы не использовали в тегах переменную, то нам пришлось бы создавать отдельный триггер и тег для отслеживания просмотра каждого экрана. Если экранов 4 – нудно, но ещё терпимо. А представьте, если их 8 и нужно отправлять данные и в Google Analytics, и в Яндекс.Метрику – свихнуться можно от такого дублирования!

Строим отчёты

В Google Analytics проще всего зайти в раздел Вовлечения → События и отфильтровать по общей части в имени наших событий (userWatchedScreen)

отчёт в Google Analytics по событиям

В Яндекс.Метрике создайте пустой отчёт, кликните по кнопке «Группировки», удалите всё лишнее и найдите вариант «Достигнутая цель».

отчёт в Яндекс.Метрика по конверсиям

Другой вариант. Через фильтр выбрать нужную страницу (если необходимо), кликнуть по кнопке «Метрики» и в разделе «Конверсия посетителей» отметить нужные цели.

отчёт в Яндекс.Метрика по конверсиям

Добавить комментарий