Как отслеживать одностраничные приложения

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

Одностраничные приложения (SPA) – это сайты, которые загружают HTML-документ один раз и получают дополнительный контент с помощью API JavaScript.

Предположим, у вас есть форма для сбора потенциальных клиентов. Форма состоит из трех экранов: > * Первый экран для сбора информации о клиенте. * Второй экран, на котором клиенты могут указать, какие услуги им интересны. * Третий экран – страница регистрации на вебинары, связанные с интересами клиента.

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

Подготовка

В этой статье подразумевается, что у вас уже есть:

Как реализовать отслеживание одностраничных приложений

Чтобы реализовать точное отслеживание одностраничных приложений, используйте один из следующих способов для запуска нового виртуального просмотра страницы:

  • Изменения в истории браузера (рекомендуется). Если ваше одностраничное приложение использует History API, в частности методы pushState() и replaceState() для обновления экранов, выберите этот вариант.

  • Специальные события. Если на вашем сайте для отрисовки разных экранов используется объект DocumentFragment, выберите этот вариант.

Как реализовать изменение истории браузера

Если в вашем одностраничном приложении используется History API, вы можете включить улучшенную статистику в Google Аналитике, чтобы автоматически отслеживать просмотры страниц на основе событий истории браузера.

Как включить улучшенную статистику в Google Аналитике

Чтобы отслеживать page_views автоматически на основе истории браузера:

  1. Откройте Google Аналитику.

  2. Откройте страницу Администратор и в разделе Сбор и редактирование данных выберите Потоки данных > Сайт.

  3. В разделе Улучшенная статистика установите переключатель в положение Вкл, чтобы активировать все функции.

  4. Нажмите, чтобы изменить отдельные параметры. В разделе Просмотры страниц нажмите Показать расширенные настройки. Включите Загрузки страниц и Изменения состояния страницы в истории браузера.

    Изображение, на котором показаны настройки просмотров страниц

  5. Сохраните изменения.

Как проверить настройки отслеживания

Чтобы убедиться, что одностраничное приложение правильно регистрирует просмотры страниц:

  1. Включите режим отладки для каждого тега в настройках отслеживания одностраничного приложения. Узнайте, как отслеживать события в DebugView.

  2. Перейдите на одностраничное приложение. Когда вы переходите на новый виртуальный экран, в DebugView должно появиться новое событие page_view. Сравните параметры события page_view с параметрами предыдущего события page_view, чтобы проверить, правильно ли обновлены реферер страницы и ее местоположение.

Дополнительные рекомендации для одностраничных приложений

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

Как управлять положением прокрутки

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

Рекомендация. После каждого перехода на виртуальную страницу программно сбрасывайте положение прокрутки на верхнюю часть страницы или контейнера основного контента.

// Example: Reset window scroll position on a route change in your SPA
window.scrollTo(0, 0);

// Or, if your content is within a specific element:
// document.getElementById('main-content').scrollTo(0, 0);

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

Как обеспечить доступность контента для функций браузера

Если пользователи сообщают о проблемах с функциями браузера, например с поиском по странице (Ctrl+F), после загрузки страницы, это может указывать на то, как ваше одностраничное приложение обновляет DOM.

Рекомендация. Убедитесь, что фреймворк SPA и логика маршрутизации полностью и синхронно обновляют соответствующие части DOM контентом новой страницы. Контент, который отображается с задержкой или скрыт от основного дерева DOM, может быть недоступен для индексирования поисковой функцией браузера. Проверьте поиск по странице после виртуальных переходов, чтобы убедиться в доступности контента.

Влияние на автоматические события

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

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

Если отслеживание просмотров страниц настроено правильно:

  • Событие user_engagement отправляется, когда пользователь переходит с одной виртуальной страницы на другую.
  • Время взаимодействия для предыдущей виртуальной страницы рассчитывается и отправляется вместе с событием user_engagement, как правило, непосредственно перед обработкой события page_view для новой виртуальной страницы.
  • Другие события, например клики или прокрутка, связаны с page_location виртуальной страницы, которую просматривает пользователь.

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