Для получения и настройки данных счетчика иногда необходима ссылка на сам объект счетчика. Так как команды, добавляемые в очередь команд ga()
, выполняются асинхронно и не возвращают значения, а счетчики чаще всего создаются с помощью команды create
, для получения такой ссылки необходимо дождаться выполнения команды create
. Для этого можно использовать функцию ready callback.
Функция ready callback
Функцию ready callback можно добавить в очередь команд ga()
. Она будет вызвана сразу после окончания загрузки библиотеки analytics.js и выполнения всех предыдущих операций в очереди.
Так как все они выполняются по порядку, добавьте ready callback в очередь после команды create
, и эта функция будет обрабатываться после создания счетчика. Если в момент вызова ready callback счетчик по умолчанию уже создан, он будет передан как ее первый и единственный аргумент.
Получить объект счетчика по умолчанию и записать его в консоли можно с помощью следующего кода:
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
в очередь команд ga()
.
Так как для получения ссылки на объект счетчика необходимо использовать функцию ready callback, рекомендуется обновлять его с помощью очереди команд 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 и их названий.
Другой способ настроить поля – использовать для ссылки на них соответствующие названия параметров кода отслеживания.
Например, два приведенных ниже выражения 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 для параметра кода отслеживания не существует (например, при добавлении в код отслеживания новых функций, которые ещё не реализованы в analytics.js).
Дополнительная информация
Теперь вы знаете, как создавать счетчики и обновлять данные в них. Прочитайте о том, как отправлять эту информацию в Google Аналитику.