Плагин для связывания упрощает реализацию междоменного отслеживания, как описано в соответствующем руководстве для analytics.js.
Обзор
Междоменное отслеживание выполняется путем передачи уникального идентификатора клиента между исходным и целевым доменами. Эта процедура выполняется в два этапа:
- В исходном домене проверяется наличие идентификатора клиента во всех URL, указывающих на целевой домен.
- В целевом домене проверяется наличие идентификатора клиента в URL, по которому перешел пользователь.
Плагин для связывания реализует этот механизм путем добавления параметра связывания в URL-адреса, указывающие на целевой домен. Этот параметр содержит идентификатор клиента, а также закодированные текущую временную метку и метаданные браузера, которые позволяют избежать проблем с передачей URL между пользователями.
Вот пример параметра связывания:
_ga=1.199239214.1624002396.1440697407
В целевом домене создается поле allowLinker
. Если оно имеет значение true
, то analytics.js проверяет, содержатся ли параметры связывания в URL. Если имеется корректный параметр связывания, из него извлекается идентификатор клиента и сохраняется.
Плагин для связывания позволяет добавлять параметр связывания в URL ссылок и форм на странице (вручную или автоматически). В большинстве случаев рекомендуется использовать автоматическое добавление.
Автоматическое добавление параметров связывания
Чтобы настроить в исходном домене автоматическое междоменное связывание URL, указывающих на целевой домен, необходимо запросить плагин для связывания с помощью команды require и вызвать метод autoLink
этого плагина.
autoLink
Метод autoLink
можно вызвать с помощью очереди команд.
Код analytics.js будет прослушивать клики по ссылкам, указывающим на целевой домен (или домены), и добавлять в них параметр связывания непосредственно перед переходом. Ожидание клика по ссылке необходимо, поскольку срок действия параметров связывания ограничен двумя минутами.
Если на вашем сайте есть формы, указывающие на целевой домен, то нужно задать необязательный параметр decorateForms
со значением true
.
Использование
ga('[trackerName.]linker:autoLink', domains, [useAnchor], [decorateForms]);
Параметры
Имя | Тип | Обязательно | Описание |
---|---|---|---|
domains |
Array[RexExp|string] |
Да | Массив строк или регулярных выражений для поиска соответствующих имен хостов в URL (hostname ), определяющий, с какими доменами следует выполнить автоматическое связывание. Если передана строка, код analytics.js сравнивает подстроки: например, домен example.com будет соответствовать ссылкам, указывающим на blog.example.com . |
useAnchor |
boolean |
Нет | Если этот параметр имеет значение true, параметр связывания добавляется в якорь URL, а не в строку запроса. |
decorateForms |
boolean |
Нет | Если это поле имеет значение true, плагин для связывания добавляет параметр связывания в отправляемые формы, указывающие на целевые домены, соответствующие параметру domain . |
Пример
// Loads the Linker plugin
ga('require', 'linker');
// Instructs the Linker plugin to automatically add linker parameters
// to all links and forms pointing to the domain "destination.com".
ga('linker:autoLink', ['destination.com'], false, true);
Добавление параметров связывания вручную
Вы можете вручную добавить параметр связывания в определенный элемент <a>
или <form>
при помощи метода decorate
. Это требуется только в том случае, если вы не используете метод autoLink
, описанный выше.
decorate
Метод decorate
можно вызвать с помощью очереди команд.
Обязательно убедитесь, что метод decorate вызывается непосредственно перед переходом, поскольку срок действия параметров связывания ограничен двумя минутами. В большинстве случаев этот метод должен вызываться в обработчике событий.
Использование
ga('[trackerName.]linker:decorate', element, [useAnchor]);
Параметры
Имя | Тип | Обязательно | Описание |
---|---|---|---|
element |
HTMLElement |
Да | Элемент <a> или <form> , в который нужно добавить параметр связывания. |
useAnchor |
boolean |
Нет | Если этот параметр имеет значение true, параметр связывания добавляется в якорь URL, а не в строку запроса. |
Пример
// Loads the Linker plugin
ga('require', 'linker');
// Gets a reference to a link pointing to an external domain.
var destinationLink = document.getElementById('destination-link');
// Adds click handler that decorates `destinationLink`.
destinationLink.addEventListener('click', function() {
ga('linker:decorate', destinationLink);
});
linkerParam
Помимо использования метода decorate
вы можете вручную получить параметр связывания, который будет использоваться объектом отслеживания, с помощью поля linkerParam
.
ga(function(tracker) {
var linkerParam = tracker.get('linkerParam');
});
Как настроить сайт, чтобы он принимал параметры связывания
После того как пользователь перейдет на страницу целевого домена по URL с параметром связывания, analytics.js должен обнаружить этот параметр.
Чтобы на целевой странице проверялось наличие параметров связывания, можно задать полю allowLinker
значение true
при создании объекта отслеживания:
ga('create', 'UA-XXXXXX-X', 'auto', {
allowLinker: true
});
Двустороннее междоменное отслеживание
Одностороннее междоменное отслеживание используется, если пользователи всегда переходят из исходного домена в целевой. Инструкции для такой последовательности приведены выше.
Если же вы не знаете, какой из доменов будет посещен первым, вам следует настроить двустороннее междоменное отслеживание, при котором любой домен может быть как исходным, так и целевым.
Чтобы реализовать двустороннее междоменное отслеживание, необходимо в обоих доменах включить автоматическое связывание и настроить проверку параметров связывания.
source.com
:
ga('create', 'UA-XXXXX-Y', 'auto', {allowLinker: true});
ga('require', 'linker');
ga('linker:autoLink', ['destination.com']);
destination.com
:
ga('create', 'UA-XXXXX-Y', 'auto', {allowLinker: true});
ga('require', 'linker');
ga('linker:autoLink', ['source.com']);
Использование одного фрагмента кода во всех доменах
Чтобы дополнительно упростить настройку, перечислите все отслеживаемые домены в методе autoLink
. Так вы сможете использовать один и тот же фрагмент кода для всех доменов.
ga('create', 'UA-XXXXX-Y', 'auto', {allowLinker: true});
ga('require', 'linker');
ga('linker:autoLink', ['source.com', 'destination.com']);