Связывание

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

Обзор

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

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

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

Параметр связывания выглядит примерно так:

_ga=1.199239214.1624002396.1440697407

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

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

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

Чтобы настроить в исходном домене междоменное автоматическое связывание для URL, указывающих на целевой домен, необходимо запросить плагин для связывания с помощью команды require и вызвать метод autoLink.

Метод autoLink можно вызвать при помощи очереди команд.

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

Если на вашем сайте есть формы, указывающие на целевой домен, задайте необязательный параметр decorateForms, присвоив ему значение true.

Использование

ga('[trackerName.]linker:autoLink', domains, [useAnchor], [decorateForms]);

Параметры

Название Тип Обязательно? Описание
domains Array[RexExp|string] Да Массив строк или регулярных выражений для поиска совпадающих имен хостов URL, определяющий, с какими доменами следует выполнить автоматическое связывание. Если передана строка, код 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. Вам не понадобятся другие методы, если вы решили не использовать автоматическое добавление, описанное выше.

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 должен этот параметр обнаружить.

Настроить проверку можно, указав значение true в поле allowLinker при создании счетчика:

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']);