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

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

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

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

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

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

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

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

Пример

Рассмотрим один сеанс со следующим путем навигации пользователя: /home → /products → /home → Выход.

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

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

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

Правила настройки

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

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

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

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

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

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

Почему общие запросы keep-alive – это плохая практика

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

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

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

  • Длинный видеоконтент. Пользователь, который смотрит встроенное видео продолжительностью 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 Аналитике

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