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

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

Обзор

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

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

Реализация

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

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

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

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

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

Примеры

Приведенная ниже команда отправляет обращение типа timing в Google Analytics и указывает, что на загрузку всех внешних зависимостей 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 Analytics создает выборки обращений по времени, чтобы обеспечить равномерное распределение системных ресурсов.

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

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

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

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