Loading...
Page tree
Skip to end of metadata
Go to start of metadata

Описание проблемы

Если на сайте используется переадресация или переход на другой домен, это может приводить к ошибочной статистике. Примеры таких случаев:

  • Переадресация на мобильную версию сайта

    Пример

    При заходе на site.ru происходит переадресация на m.site.ru

  • Использование человекочитаемого URL (возможная опция в некоторых CMS)

    Пример

    При заходе на страницу site.ru/?cat=23&item_id=4242 происходит переадресация на страницу site.ru/divany/super-divan

  • Переадресация на другую версию страницы, если применяется АБ-тестирование

    Пример

    При заходе на сайт site.ru происходит переадресация на site.ru/lp1

  • Переход на домен для другого города, если сайт рассчитан на несколько регионов

    Пример

     При заходе на сайт site.ru происходит переадресация на msk.site.ru

  • Ссылки на другой домен для регистрации (характерно для SaaS-сервисов, где сайт и сам сервис расположены на разных доменах)

    Пример

    Например, переадресация с site.ru на register.site.ru

    В этом случае визит на сайт site.ru будет определен верно, но для регистрации на домене register.site.ru источником будет site.ru

Все эти случаи объединяет одно: при визите на изначальный сайт site.ru происходит переадресация, которая ведет к потере меток в ссылке. Это легко заметить в адресной строке браузера: если зайти по ссылке с метками (например, по объявлению из Директа), то в итоге вы окажетесь на странице, где этих меток нет.

Решение

Обратите внимание, что на всех сайтах, которые участвуют в переадресации, должен быть установлен счетчик Roistat.

Решений может быть несколько, и в разных ситуациях они могут быть разные  выберите наиболее вам подходящее.

Отключение переадресации

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

Например, это может быть актуально для функции человекочитаемого URL в различных CMS, если эта функция используется без какой-либо пользы.

Указать в объявлениях конечный сайт

Данное решение актуально для тех случаев, когда есть возможность вести трафик сразу на конечную страницу.

Например, вы знаете, что в Директе рекламная кампания запущена только на Москву. В этом случае нет особого смысла указывать ссылку в объявлениях на site.ru, если сработает переадресация на msk.site.ru. Укажите в рекламных объявлениях ссылку сразу на msk.site.ru.

Настройка единого домена для всех сайтов

Если переход на другой сайт является переходом посетителя в рамках одного проекта, то есть возможность сохранять все cookie файлы на одном основном сайте.

Например, в SaaS сервисах очень частая ситуация, когда основной сайт расположен на домене site.ru, а регистрация и сам сервис расположены на другом домене, например, cloud.site.ru (так сделано и в самом Roistat).

В этом случае вы можете указать один домен главным, тогда переходы на домены уровнем ниже не будут считаться отдельными визитами.

1) Проследите, чтобы на всех доменах был поставлен счетчик от одного проекта Roistat;

2) Установите на всех страницах сайтов, выше счетчика, строчку, где указывается главный домен:

ВНИМАНИЕ Замените site.ru на ваш главный домен

<script>window.roistatCookieDomain = 'site.ru';</script> 

Данную строчку необходимо разместить на всех доменах. В случае с примером выше  и на домене site.ru, и на домене cloud.site.ru.

Должно получиться так:

ВНИМАНИЕ Это пример. Не копируйте этот код!

<script>window.roistatCookieDomain = 'site.ru';</script> 
<script>
(function(w, d, s, h, id) {
    w.roistatProjectId = id; w.roistatHost = h;
    var p = d.location.protocol == "https:" ? "https://" : "http://";
    var u = /^.*roistat_visit=[^;]+(.*)?$/.test(d.cookie) ? "/dist/module.js" : "/api/site/1.0/"+id+"/init";
    var js = d.createElement(s); js.async = 1; js.src = p+h+u; var js2 = d.getElementsByTagName(s)[0]; js2.parentNode.insertBefore(js, js2);
})(window, document, 'script', 'cloud.roistat.com', '0');
</script> 

Если у вас разные домены первого уровня в рамках одного проекта (site.ru, site.com), то данное решение вам не подойдет. Вам нужно будет установить счетчики roistat на каждую страницу.

Если же у вас основной домен один, используются различные поддомены и между этими ресурсами происходят переходы и переадресации в рамках одного проекта (site.ru, up.site.ru, down.site.ru), то приведенное решение вам подходит.

Сохранение меток при переадресации

Этот способ применяется в случаях, когда нужно сделать переадресацию с сохранением источника на другой домен. Он отличается от способа Сохранение номера визита при ссылке на другой домен тем, что при переадресации еще не отработал счетчик Roistat, поэтому значение номера визита еще не известно.

Задача состоит из двух пунктов:

1) Необходимо при переадресации сохранять все метки, которые есть у ссылки. Например, если ссылка ведет по адресу:

http://site.ru/?utm_source=yandex&utm_medium=cpc&utm_campaign={campaign_id}&utm_content={ad_id}&utm_term={keyword}

А переадресация идет по ссылке:

http://msk.site.ru

В этом случае нужно реализовать переадресацию так, чтобы она шла на адрес:

http://msk.site.ru/?utm_source=yandex&utm_medium=cpc&utm_campaign={campaign_id}&utm_content={ad_id}&utm_term={keyword}

2) Необходимо сохранять оригинальный реферер перехода в cookie с названием «roistat_referrer».

Пример

Пример для случая, когда происходит переадресация с site.ru на msk.site.ru.

ВНИМАНИЕ! Этот пример не является рабочим кодом, он служит для понимания программистом алгоритма работы.

// ..
// Выше расположен код вашего сайта до того места, где происходит переадресация
// ..
 
// Здесь сохраняются все метки, которые были в ссылке
$param = !empty($_SERVER['QUERY_STRING']) ? "?" . $_SERVER['QUERY_STRING'] : ""; 
 
// В cookie roistat_referrer сохраняется изначальный реферер визита
setcookie("roistat_referrer", isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ""); 

// В этой строчке происходит переадресация на другой домен с сохранением всех меток
header("Location: http://msk.site.ru/{$param}"); 

Сохранение номера визита при ссылке на другой домен

Данный способ используется, когда необходимо предоставить ссылку пользователю с одного домена на другой с сохранением первоначального источника.
Он отличается от способа Сохранение меток при переадресации тем, что номер визита уже известен, так как отработал счетчик Roistat.

Есть возможность сохранять номер визита (cookie «roistat_visit») при переходе с одного домена на другой. Для этого необходимо сделать ссылку с передачей GET-параметра «roistat_visit». На всех доменах должен быть установлен счетчик Roistat от одного проекта.

Пример

Посетитель зашел на сайт test.ru/?utm_source=direct, где установлен счетчик Roistat. Этому посетителю был установлен номер визита 12300. Теперь должен происходить переход на сайт site.ru по ссылке site.ru/?roistat_visit=12300.

На втором сайте site.ru обязательно должен быть установлен счетчик Roistat.

Код:

ВНИМАНИЕ! Этот пример не является рабочим кодом, он служит для понимания программистом алгоритма работы.

// ..
// Выше расположен код вашего сайта до того места, где происходит переадресация
// ..
 
// Получаем значение cookie roistat_visit
$roistatVisitId = array_key_exists('roistat_visit', $_COOKIE) ? $_COOKIE['roistat_visit'] : ""
 
// Записываем значение roistat_visit в GET-параметр
$queryString = "?roistat_visit=" . $roistatVisitId;
 
// Ссылка на другой домен
<a href="http://site.ru/<?php echo $queryString; ?>">Ссылка на другой домен с сохранением источника</a>

Использование источника визита страницы, с которой был осуществлен переход на сайт

Вы можете настроить использование источника страницы, с которой была осуществлена переадресация. Для этого необходимо на конечную страницу установить cookie: roistat_marker_from_referrer = 1

Пример

Пользователь переходит на сайт test.ru/?utm_source=direct с него происходит переадресация на страницу A/B теста: test.ru/new. Если на этой странице установлен счетчик Roistat и установлено cookie roistat_marker_from_referrer = 1 системой будет зафиксирован визит с источника Яндекс.Директ.

Получение информации о визитах при использовании АБ-экспериментов Google Analyatics

При использовании АБ-экспериментов Google Analytics возникает ситуация, когда визиты клиентов считаются прямыми. Для корректного отображения источника нужно настроить скрипт, который установит cookie "roistat_marker_from_referrer" со значением "1" перед загрузкой счетчика. Настроить скрипт можно с помощью JavaScript и PHP

Итог

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


  • No labels