Пользовательское время

Из этого руководства вы узнаете, как измерять время с помощью analytics.js.

Обзор

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

Данные такого типа собираются с помощью библиотеки analytics.js. Это особенно полезно для оценки времени, которое уходит на выполнение запросов AJAX и загрузку веб-ресурсов (времени задержки).

Реализация

Обращения с информацией о пользовательском времени можно отправлять с помощью команды send, указывая для параметра hitType значение timing. Команда send с типом обращения timing имеет следующую сигнатуру:

ga('send', 'timing', [timingCategory], [timingVar], [timingValue], [timingLabel], [fieldsObject]);

Поля обращений с информацией о пользовательском времени

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

Название поля Тип значения Обязательное поле Описание
timingCategory Текст Да Строка, которая используется для разбивки всех переменных пользовательского времени на логические группы. Пример: 'JS Dependencies'.
timingVar Текст Да Строка, которая используется для идентификации записываемой переменной. Пример: 'load'.
timingValue Целое число Да Истекшее время в миллисекундах, которое регистрируется в Google Аналитике. Пример: 20.
timingLabel Текст Нет Строка, которую можно использовать для более подробной визуализации времени в отчетах. Пример: 'Google CDN'.

Примеры

Приведенная ниже команда отправляет обращение типа timing в Google Аналитику и указывает, что на загрузку всех внешних зависимостей JavaScript ушло 3549 миллисекунд.

ga('send', 'timing', 'JS Dependencies', 'load', 3549);

Обратите внимание, что значения вспомогательных параметров также можно передать с помощью объекта fieldsObject, как и для остальных команд send. Указанную выше команду можно записать следующим образом:

ga('send', {
  hitType: 'timing',
  timingCategory: 'JS Dependencies',
  timingVar: 'load',
  timingValue: 3549
});

Измерение времени

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

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

Большинство современных браузеров поддерживают Navigation Timing API, в котором для точного измерения времени загрузки страниц используются методы объекта window.performance.

В примере ниже показано, как использовать метод performance.now(), который возвращает время, прошедшее с момента начала загрузки страницы.

// Feature detects Navigation Timing API support.
if (window.performance) {
  // Gets the number of milliseconds since page load
  // (and rounds the result since the value must be an integer).
  var timeSincePageLoad = Math.round(performance.now());

  // Sends the timing hit to Google Analytics.
  ga('send', 'timing', 'JS Dependencies', 'load', timeSincePageLoad);
}

Замечания о выборках

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

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

Общее количество просмотров страницы (предыдущий день) Максимальное количество обрабатываемых обращений
0–1000 100
1000–100 000 10% от общего количества обращений pageview
100 000–1 000 000 10 000
Более миллиона 1% от общего количества обращений pageview

Ограничение для отправки обращений

Чтобы избежать отправки в Google Аналитику обращений, которые не будут обработаны, analytics.js позволяет контролировать долю отправляемых обращений с помощью параметров sampleRate и siteSpeedSampleRate. По умолчанию используются значения 100 % и 1 % соответственно. Вы можете изменить их, чтобы точнее задать количество отправляемых значений, которые Google Аналитика будет обрабатывать с учетом среднего числа просмотров страниц в день.