Защита от парсинга и ботов / модуль для 1С-Битрикс

Передача исходного реферера в Яндекс Метрику при использовании 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> будет добавлен необходимый код для её получения.

Автоматически подключать получение pa_original_referrer


Настройка Яндекс Метрики

По умолчанию Яндекс Метрика автоматически отправляет просмотр страницы сразу после инициализации счетчика. В этом случае в качестве реферера используется значение 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

Использование этой переменной в коде аналитики выполняется владельцем сайта самостоятельно.