Отслеживание действий пользователей в разных доменах

Фреймворк gtag.js позволяет поддерживаемым продуктам Google отслеживать действия пользователей в разных доменах, как если бы это был один домен.

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

Процесс состоит из двух этапов:

  1. Исходный домен добавляет в URL, которые указывают на целевой домен, значения собственных файлов cookie.
  2. Целевой домен проверяет наличие связанных файлов cookie.

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

https://www.example.com/?_gl=1~abcde5~

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

Базовая настройка

Чтобы настроить в исходном домене междоменное отслеживание для URL, указывающих на целевой домен, создайте объект linker с помощью команды set. Он будет прослушивать клики по ссылкам на целевые домены и автоматически добавлять в URL параметр связывания.

Объекту linker требуется параметр domains, который представляет собой массив из одного или нескольких доменов. В приведенном ниже примере параметр связывания добавляется ко всем ссылкам на странице, указывающим на целевой домен example.com.

<script async src="https://www.googletagmanager.com/gtag/js?id=GA_MEASUREMENT_ID"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('set', 'linker', {'domains': ['example.com']});
  gtag('js', new Date());

  gtag('config', 'GA_MEASUREMENT_ID');
</script>

Можно перечислить несколько строковых значений в свойстве domains. Когда у свойства domains есть хотя бы одно значение, код gtag.js будет принимать входящие ссылки на домен по умолчанию. Это позволяет использовать один фрагмент кода во всех доменах.

gtag('set', 'linker', {
  'domains': ['example.com', 'example-b.com']
});

decorate_forms

Если на вашем сайте есть формы со ссылками на целевой домен, добавьте свойство decorate_forms со значением true.

gtag('set', 'linker', {
  'domains': ['example.com'],
  'decorate_forms': true
});

url_position

Чтобы параметр связывания шел в URL после фрагмента (#), а не после параметра запроса (?), например https://example.com#_gl=1~abcde5~, задайте для параметра url_position значение fragment.

gtag('set', 'linker', {
  'domains': ['example.com'],
  'decorate_forms': true,
  'url_position': 'fragment'
});

accept_incoming

После того как пользователь перейдет на страницу целевого домена по ссылке с параметром связывания, gtag.js должен проанализировать этот параметр.

Если в целевом домене настроено автоматическое связывание доменов, он будет по умолчанию принимать параметры связывания. Никакого дополнительного кода при этом не потребуется.

Если же нет, вы можете дать указание целевой странице искать параметры связывания. Для этого задайте свойство accept_incoming со значением true.

gtag('set', 'linker', {
  'accept_incoming': true
});

Таблица параметров

Параметр Тип Допустимые значения
'accept_incoming' Логическое значение true (по умолчанию, если domains имеет значение), false
'domains' Массив Массив из одного или нескольких доменов, например ['example1.com', 'example2.com']
decorate_forms' Логическое значение true, false (по умолчанию)
'url_position' Строка 'query' (по умолчанию), 'fragment'