Плагин для связывания упрощает реализацию междоменного отслеживания, как описано в соответствующем руководстве для analytics.js.
Обзор
Междоменное отслеживание выполняется путем передачи уникального идентификатора клиента между исходным и целевым доменом. Эта процедура выполняется в два этапа:
- В исходном домене проверяется наличие идентификатора клиента во всех URL, указывающих на целевой домен.
- В целевом домене проверяется наличие идентификатора клиента в URL, по которому перешел пользователь.
Плагин для связывания реализует этот механизм путем добавления параметра связывания в URL-адреса, указывающие на целевой домен. Этот параметр содержит идентификатор клиента, а также закодированные текущую временную метку и метаданные браузера, которые позволяют избежать проблем с передачей URL между пользователями.
Параметр linker выглядит примерно так:
_ga=1.199239214.1624002396.1440697407
Задав значение true
для поля allowLinker
в целевом домене, вы дадите коду 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 с параметром связывания, gtag.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']);