Задать вопрос
v_decadence
@v_decadence

Как указать Google Tag Manager, откуда брать Referrer?

При входе на сайт при определенных условиях происходит редирект, из-за чего слетает исходный document.referrer на конечной странице с аналитикой, это приводит к потере данных о том, откуда пользователь пришёл на сайт.

Есть необходимость, чтобы GTM брал для аналитики не document.referrer, а то, что ему будет подсунуто. Исходный заголовок Referer запоминается сервером и подставляется в $_SERVER["HTTP_REFERER"] на конечной странице, но document.referrer свойство только для чтения и туда его подставить нельзя, чтобы это работало во всех браузерах.

В случае с Яндекс.Метрикой всё решается и хорошо работает через параметр в URL utm_referrer. В ней правильно указаны переходы с других сайтов и с поисковиков, несмотря на редирект.

Из документации:

Чтобы Яндекс.Метрика правильно определила источник перехода на сайт при JavaScript-редиректе или при переходе на ваш сайт с протоколом HTTP с сайта, доступного по протоколу HTTPS, используйте параметр utm_referrer.

В качестве значения укажите адрес сайта, с которого совершен переход. Пример:
https://example.com/?utm_referrer=example-source.com


Вопрос: есть ли что-то подобное для GTM?

Здесь указано решение:

gtag('set', {
    referrer: "https://your-referrer-url.com"
})


Полный код:
var referrer = "<?=$_SERVER["HTTP_REFERER"]?>";

gtag('set', {
    referrer: referrer,
});

gtag('config', 'G-XXXXXX');

// так же указывал gtag('set') после gtag('config'), всё равно не работает


Итак: есть ли способ указать GTM, какой referrer брать и можно ли как-то проверить, что он его реально взял, потому что в самой Google Аналитике эти данные отображаются с задержкой чуть ли не в сутки.

Возможно это решение и работает, но непонятно, в каком именно месте нужно указывать эту строку и в какой момент GTM отправляет данные (в консоли нет никаких AJAX-запросов, в отличие от Яндекс.Метрики).

Для ga.js в документации этот момент обозначен, для gtag.js нет. Но я так понимаю, что ga.js уже обозначен, как устаревший API.

ga('set', 'referrer', 'http://example.com');

В исходном коде gtag.js трудно что-то понять, так как он обфусцирован.
  • Вопрос задан
  • 473 просмотра
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы