Принцип работы analytics.js

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

Очередь команд ga

Глобальную функцию очереди команд ga определяет код отслеживания JavaScript. При ее использовании получаемые команды не выполняются незамедлительно, а добавляются в очередь. Их выполнение откладывается до полной загрузки библиотеки analyltics.js.

В JavaScript функции тоже являются объектами и могут содержать ресурсы. Код отслеживания определяет ресурс q в объекте функции ga как пустой массив. Перед загрузкой библиотеки analytics.js вызов функции ga() добавляет переданные с ней аргументы в конец массива q.

Например, если выполнить код отслеживания, а затем сразу зарегистрировать содержимое ga.q в консоли, вы увидите массив, содержащий два набора аргументов, уже переданных в функцию ga():

console.log(ga.q);

// Outputs the following:
// [
//   ['create', 'UA-XXXXX-Y', 'auto'],
//   ['send', 'pageview']
// ]

После окончания загрузки библиотеки analytics.js выполняется проверка массива ga.q и команды выполняются по порядку. Затем функция ga() переопределяется так, что все последующие вызовы выполняются сразу же.

Таким образом разработчики могут использовать очередь команд ga(), не беспокоясь о статусе загрузки библиотеки analytics.js. Простой и схожий с синхронным интерфейс позволяет абстрагироваться от сложностей асинхронного кода.

Добавление команд в очередь

Все вызовы команды ga() имеют одинаковую сигнатуру. Первый параметр, "команда", – это строка, содержащая определенный метод analytcis.js. Дополнительные параметры являются аргументами этого метода.

Различают глобальные методы, которые применяются к объекту ga (например, create), и методы экземпляра, применяющиеся к счетчику (например, send). Метод ga() игнорирует неопознанные команды, получаемые через очередь. Благодаря этому вызовы функции ga() безопасны и почти никогда не вызывают ошибок.

Полный список команд, которые можно выполнить при помощи очереди команд ga(), приведен в этой статье.

Параметры команд

Большинство команд analytics.js (и соответствующие методы) принимают параметры в нескольких форматах. Это сделано для удобства, чтобы было проще добавлять в методы часто используемые поля.

В качестве примера ниже приводятся две команды в коде отслеживания JavaScript:

ga('create', 'UA-XXXXX-Y', 'auto');
ga('send', 'pageview');

В первой команде метод create принимает поля trackingId, cookieDomain и name, которые при необходимости можно указать в качестве второго, третьего и четвертого параметра соответственно. Команда send принимает необязательный второй параметр hitType.

Все команды принимают последний параметр fieldsObject, в котором можно указать любые поля. Например, приведенные выше команды из фрагмента отслеживания можно записать следующим образом:

ga('create', {
  trackingId: 'UA-XXXXX-Y',
  cookieDomain: 'auto'
});
ga('send', {
  hitType: 'pageview'
});

Ознакомьтесь с полным списком параметров, которые можно передавать с помощью очереди команд ga().

Дополнительная информация

Теперь вы знаете, как выполнять команды в analytics.js и как работает очередь команд. Следующая статья посвящена созданию счетчиков.