Как отслеживать сеансы и взаимодействие с пользователями

Общие сведения об областях действия пользователя и сеанса, в том числе о том, как Google Аналитика определяет и строго ограничивает сеансы по бездействию, можно найти в статье Параметры и показатели: сеансы в Аналитике и руководстве по областям действия параметров источников трафика.

В этом руководстве рассказывается о проблемах, с которыми сталкиваются разработчики, и о том, как управлять конфигурациями сеансов и пассивным отслеживанием.

Как сочетать параметры на уровне страницы с показателями на уровне сеанса

Одна из самых распространенных проблем с отчетами возникает, когда вы объединяете параметры на уровне страницы (например, путь к странице и класс экрана) с показателем на уровне сеанса "Сеансы".

Определения сеансов и просмотров

  • Сеансы – это уникальные периоды времени, в течение которых определенный путь к странице загружался хотя бы один раз.

  • Просмотры (просмотры страниц) – общее количество загрузок страницы.

Пример

Предположим, что пользователь перешел по следующему пути: /home → /products → /home → Выход.

Если это единственный сеанс, в отчете, настроенном с параметром Путь к странице и класс экрана и показателями Сеансы или Просмотры, будет показано следующее:

Путь к странице Сеансы Просмотры
/home 1 2
/products 1 1
Всего (дедуплицированные данные Google Аналитики) 1 3

Если сложить значения в строках, получится два сеанса, но общее количество сеансов в ресурсе после дедупликации будет равно одному.

Правила персонализации

  • Сеансы с путем к странице – это уникальные сеансы, в которых посещался путь хотя бы один раз.
  • Сеансы с целевой страницей – это уникальные сеансы, начинающиеся на пути. Чтобы посмотреть трафик целевых страниц, всегда используйте параметр Целевая страница + строка запроса, а не Сеансы с путем к странице.
  • Просмотры всегда учитывают общее количество загрузок.

Рекомендации для разработчиков и аналитиков

  • Соблюдайте единообразие уровней. Не смешивайте параметры трафика на уровне пользователя (например, Группа каналов по умолчанию для первого взаимодействия пользователя) с показателями на уровне сеанса (например, Средняя длительность сеанса), если вы хотите понять эффективность сеанса.
  • Проверьте session_start в DebugView. На этапе контроля качества и проверки используйте стандартные инструменты отладки, например DebugView в Google Аналитике, чтобы убедиться, что session_start срабатывает правильно при начале сеанса.

Рекомендации по управлению временем ожидания сеанса

По умолчанию сеанс в Google Аналитике длится 30 минут.

Мы не рекомендуем реализовывать собственный код для периодической отправки запросов в Google Аналитику, чтобы предотвратить тайм-ауты неактивности. Если искусственно завышать показатели сеансов, это исказит данные о поведении пользователей. Вместо этого используйте встроенные функции Google Аналитики или настройте отслеживание значимых событий взаимодействия.

Почему не рекомендуется использовать универсальные сообщения keep-alive

  • Искажение основных показателей. Если пользователь отходит от вкладки, он действительно неактивен. Если принудительно оставить сеанс открытым, будут созданы "зомби-сеансы", которые исказят показатель Средняя длительность сеанса. Это скрывает истинную точку, в которой пользователи теряют интерес или покидают ваш сайт.
  • Влияние на сеансы с взаимодействием. Сеансом с взаимодействием в Google Аналитике считается сеанс, который длится более 10 секунд, включает два или более просмотра страниц или содержит ключевое событие (ранее – событие-конверсия). Если вы искусственно поддерживаете сеанс открытым, он будет считаться сеансом с взаимодействием, что приведет к завышению доли взаимодействий.
  • Раздувание данных и расходы. Если вы постоянно активируете пустые фоновые события ping, это увеличивает шум в количестве событий и повышает расходы на хранилище данных, если вы экспортируете данные Google Аналитики в BigQuery.

Когда нужно отслеживать пассивную вовлеченность (и как это делать)

Бывают ситуации, когда пользователь активно взаимодействует с контентом, но не запускает стандартные события взаимодействия Google Аналитики (например, клики или переходы на другие страницы). В таких случаях вместо обычного сообщения keep-alive регистрируйте значимые события, инициированные пользователем:

  • Длинные видео. Если пользователь смотрит встроенное видео продолжительностью 45 минут, он будет неактивен более 30 минут, и сеанс может завершиться.
  • Подробные статьи. Пользователь может потратить 40 минут на изучение технического руководства, медленно прокручивая страницу, но не выполняя никаких действий по навигации.
  • Интерактивные веб-приложения. Пользователи, которые просматривают ленты новостей, котировки акций или панели управления данными, получают информацию пассивно, без кликов.

Если пользователь свернет окно браузера или переключится на другую вкладку, фоновые запросы должны прекратиться.

Пример кода: запрос ping для события с учетом видимости

В следующем примере кода JavaScript показано, как отслеживать пассивное взаимодействие и учитывать видимость вкладки. Настройте интервал отслеживания и значение параметра (например, 5 минут или 300 000 мс) в зависимости от вашего варианта использования, например от типичной продолжительности ваших видео или длинных статей:

const TRACKING_INTERVAL_MILLIS = 5 * 60 * 1000;

let engagementInterval;

function startEngagementTracking() {
  // Prevent duplicate intervals if tab becomes visible
  if (engagementInterval) return;

  engagementInterval = setInterval(() => {
    gtag('event', 'passive_engagement', {
      'engagement_time_msec': TRACKING_INTERVAL_MILLIS
    });
  }, TRACKING_INTERVAL_MILLIS);
}

function stopEngagementTracking() {
  if (engagementInterval) {
    clearInterval(engagementInterval);
    engagementInterval = null;
  }
}

// Start tracking initially if the page is visible
if (!document.hidden) {
  startEngagementTracking();
}

// Stop tracking when tab is hidden, resume when visible
document.addEventListener('visibilitychange', () => {
  if (document.hidden) {
    stopEngagementTracking();
  } else {
    startEngagementTracking();
  }
});

Улучшенное отслеживание в Google Аналитике и специальное отслеживание

В Google Аналитике есть функция улучшенной статистики, которая автоматически обрабатывает некоторые сценарии пассивного отслеживания, но у нее есть определенные ограничения.

Тип взаимодействия Обрабатывается ли событие улучшенной статистикой? Требования и необходимые действия
Встроенные видео YouTube Да Автоматически активирует вехи video_start, video_complete и video_progress на отметках 10%, 25%, 50 % и 75% (требуется включить поддержку JS API).
Видео не на YouTube (HTML5, Vimeo) Нет Требуется специальная реализация. Программно активируйте события с помощью gtag.js или управляйте триггерами с помощью Google Менеджера тегов.
Стандартная прокрутка страницы Частичный Событие scroll срабатывает только когда пользователь прокручивает страницу до 90%.
Дополнительный прогресс в чтении Нет Отключите отслеживание прокрутки по умолчанию в Google Аналитике и реализуйте собственные пороги прокрутки (например, 25%, 50%, 75%) программным способом или в Менеджере тегов.

Самый простой вариант: изменить время ожидания сеанса в Google Аналитике

Если на вашем сайте много длинного контента, видеокурсов или если пользователи проводят много времени в приложении, вам не нужно добавлять специальные скрипты. В интерфейсе Google Аналитики можно изменить пороговое значение по умолчанию (30 минут) на любое другое вплоть до 7 часов 55 минут. Инструкции приведены в разделе Как изменить время ожидания сеанса.