Связывание

Плагин для связывания упрощает реализацию междоменного отслеживания, как описано в соответствующем руководстве для analytics.js.

Обзор

Междоменное отслеживание выполняется путем передачи уникального идентификатора клиента между исходным и целевым доменами. Эта процедура выполняется в два этапа:

  1. В исходном домене проверяется наличие идентификатора клиента во всех URL, указывающих на целевой домен.
  2. В целевом домене проверяется наличие идентификатора клиента в URL, по которому перешел пользователь.

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

Вот пример параметра связывания:

_ga=1.199239214.1624002396.1440697407

В целевом домене создается поле allowLinker. Если оно имеет значение true, то analytics.js проверяет, содержатся ли параметры связывания в URL. Если имеется корректный параметр связывания, из него извлекается идентификатор клиента и сохраняется.

Плагин для связывания позволяет добавлять параметр связывания в URL ссылок и форм на странице (вручную или автоматически). В большинстве случаев рекомендуется использовать автоматическое добавление.

Автоматическое добавление параметров связывания

Чтобы настроить в исходном домене автоматическое междоменное связывание URL, указывающих на целевой домен, необходимо запросить плагин для связывания с помощью команды require и вызвать метод 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']);