Получение и настройка данных поля

Для получения и настройки данных счетчика иногда необходима ссылка на сам объект счетчика. Так как команды, добавляемые в очередь команд ga(), выполняются асинхронно и не возвращают значения, а счетчики чаще всего создаются с помощью команды create, чтобы можно было сослаться на объект счетчика, необходимо дождаться выполнения команды create. Для этого можно использовать функцию ready callback.

Функция обратного вызова при готовности

Функцию ready callback (обратный вызов при готовности) можно добавить в очередь команд ga(). Она будет вызвана сразу после окончания загрузки библиотеки analytics.js и выполнения всех предыдущих операций в очереди.

Так как все они выполняются по порядку, добавьте обратный вызов при готовности в очередь после команды create, и он будет выполняться после создания объекта счетчика. Если в момент обратного вызова счетчик по умолчанию уже создан, он будет передан как первый и единственный аргумент функции обратного вызова.

Получить объект счетчика по умолчанию и зарегистрировать его в консоли можно с помощью следующего кода:

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

ga(function(tracker) {
  // Logs the tracker created above to the console.
  console.log(tracker);
});

Получение счетчиков с помощью методов объекта ga

Если вы не используете счетчик по умолчанию или на странице их несколько, получить к ним доступ можно с помощью методов объекта ga.

После того как библиотека analytics.js полностью загружается, она добавляет дополнительные методы в сам объект ga. Два из них – getByName и getAll – используются для доступа к объектам счетчика.

getByName

Если вы знаете название счетчика, получить к нему доступ можно с помощью метода getByName:

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

ga(function() {
  // Logs the "myTracker" tracker object to the console.
  console.log(ga.getByName('myTracker'));
});

getAll

Чтобы получить массив всех созданных счетчиков, используйте метод getAll:

ga('create', 'UA-XXXXX-Y', 'auto', 'tracker1');
ga('create', 'UA-XXXXX-Z', 'auto', 'tracker2');

ga(function() {
  // Logs an array of all tracker objects.
  console.log(ga.getAll());
});

Получение данных счетчика

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

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

ga(function(tracker) {
  // Logs the trackers name.
  // (Note: default trackers are given the name "t0")
  console.log(tracker.get('name'));

  // Logs the client ID for the current user.
  console.log(tracker.get('clientId'));

  // Logs the URL of the referring site (if available).
  console.log(tracker.get('referrer'));
});

Обновление данных

Объекты счетчика можно обновлять с помощью метода set. Метод set счетчика можно вызвать напрямую через объект счетчика или добавив команду set в очередь команд ga().

Так как для получения ссылки на объект счетчика необходимо использовать функцию обратного вызова при готовности, обновлять данные в счетчике рекомендуется с помощью очереди команд ga().

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

Команду set можно вызвать двумя способами: путем передачи двух параметров (поля и его значения) или передачи объекта, содержащего пары "поле-значение".

В следующем примере полю page счетчика по умолчанию присваивается значение '/about':

ga('set', 'page', '/about');

В этом примере одновременно задаются значения полей page и title:

ga('set', {
  page: '/about',
  title: 'About Us'
});

Использование счетчика с названием

Если вы создали счетчик с названием и используете его вместо счетчика по умолчанию, это название можно передать в строке команды.

Ниже показано, как задать значение поля page для счетчика с названием myTracker:

ga('myTracker.set', 'page', '/about');

Использование самого объекта счетчика

Если у вас есть возможность указать объект отслеживания, то вы можете вызвать его метод set напрямую:

ga(function(tracker) {
  tracker.set('page', '/about');
});

Амперсанд-синтаксис

Чтобы получать и настраивать значения полей счетчика, обычно используются названия этих полей. Полный список полей analytics.js и их названий доступен здесь.

Другой способ задавать и получать значения полей заключается в том, чтобы ссылаться на эти поля по соответствующим названиям параметров Measurement Protocol.

Например, два приведенных ниже выражения console.log сохраняют заголовок документа в консоли:

ga(function(tracker) {
  // Gets the title using the analytics.js field name.
  console.log(tracker.get('title'));

  // Gets the title using the measurement protocol
  // parameter name, prefixed with an ampersand.
  console.log(tracker.get('&dt'));
});

Как правило, амперсанд-синтаксис рекомендуется использовать только в тех случаях, когда в analytics.js нет названия поля, соответствующего параметру Measurement Protocol (например, если в Measurement Protocol добавлена новая функция, которая ещё не реализована в analytics.js).

Дальнейшие действия

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