Передача исходного реферера в Яндекс Метрику при использовании JS Challenge
Начиная с версии 1.19.3 модуль автоматически передает исходный реферер посетителя во внешние системы аналитики (например, Яндекс Метрику). Эта функция работает во всех современных браузерах и не требует дополнительной настройки.
На наш взгляд, поддержка браузеров у данного решения достаточно высока, поэтому в большинстве случаев никаких дополнительных действий не требуется.
Если же для вас критически важна максимально точная аналитика, стремящаяся к 100% корректности, рекомендуем воспользоваться инструкцией ниже.
Данная инструкция предназначена для вебмастера, который понимает как у него установлен код Яндекс метрики и может его модифицировать.
Проблема
При использовании JS Challenge посетитель сначала попадает на страницу проверки поддержки JavaScript, после чего автоматически возвращается на исходную страницу.
Из-за этого стандартный document.referrer может содержать не первоначальный источник перехода (например, Яндекс, Google или другой сайт), а адрес страницы JS Challenge или самого сайта. В результате Яндекс Метрика может некорректно определить источник первого посещения (количество переходов из поиска снижается, а внутренних переходов увеличивается).
Начиная с версии 1.19.2, модуль protobyte.antiparsing умеет сохранять исходный реферер и предоставлять его странице после успешного прохождения JS Challenge.
Решение
После прохождения JS Challenge модуль создает глобальную переменную window.PA_ORIGINAL_REFERRER.
Она содержит:
- исходный реферер до показа JS Challenge, если проверка выполнялась;
- обычный
document.referrer, если JS Challenge не использовался или сохраненного значения нет.
Чтобы переменная автоматически создавалась, необходимо в настройках модуля версии 1.19.2 включить опцию «Автоматически подключать получение pa_original_referrer» (В последующих версиях этой настройки нет, код подключается всегда при включении проверки через JS-challenge). После этого в блок <head> будет добавлен необходимый код для её получения.
Настройка Яндекс Метрики
По умолчанию Яндекс Метрика автоматически отправляет просмотр страницы сразу после инициализации счетчика. В этом случае в качестве реферера используется значение document.referrer.
Нам необходимо передавать в статистику переходов значение window.PA_ORIGINAL_REFERRER, для этого измените код инициализации счетчика.
Исходный код может выглядеть так:
ym(xxxxxx, 'init', {
webvisor: true,
clickmap: true,
ecommerce: "dataLayer",
referrer: document.referrer,
url: location.href,
accurateTrackBounce: true,
trackLinks: true
});
Замените строку referrer: document.referrer, на:
referrer: window.PA_ORIGINAL_REFERRER || document.referrer,
В результате код будет выглядеть так:
ym(xxxxxx, 'init', {
webvisor: true,
clickmap: true,
ecommerce: "dataLayer",
referrer: window.PA_ORIGINAL_REFERRER || document.referrer,
url: location.href,
accurateTrackBounce: true,
trackLinks: true
});
Теперь, если переменная window.PA_ORIGINAL_REFERRER содержит значение, оно будет передано в Яндекс Метрику в качестве реферера. Если переменная отсутствует или не определена, будет использовано стандартное значение document.referrer.
Проверка работы
После прохождения JS Challenge откройте консоль браузера и выполните:
window.PA_ORIGINAL_REFERRER
Если переход был выполнен, например, из поиска Яндекса, переменная должна содержать адрес страницы поиска.
После настройки Метрики откройте отчет Вебвизор → Последние визиты и убедитесь, что источник посещения определяется корректно, а не как внутренний переход или прямой заход.
Важно
Модуль не изменяет настройки Яндекс Метрики автоматически.
Он только предоставляет исходный реферер через переменную:
window.PA_ORIGINAL_REFERRER
Использование этой переменной в коде аналитики выполняется владельцем сайта самостоятельно.