Главная » Статьи » Учим Google Analytics правильно распознавать источник





Учим Google Analytics правильно распознавать источник

Зачем это нужно, спросите вы, если Google Analytics (GA) и так показывает нам источник, из которого пришли посетители? И будете частично правы, ибо да, GA показывает вам источник, из которого перешел посетитель, вот только делает он это несколько странным образом, но обо всем по порядку.

Проблема

Итак, GA определяет источник первого посещения и записывает его как:
  1. «Органический поиск», запись вида – поисковик / organic;
  2. «Закладки», запись вида – direct / none;
  3. «Переход по ссылке с другого сайта», запись вида – url / referral.
Вот как выглядит описание источника в самом GA:
В контексте наблюдения за кампаниями источник - это исходный пункт перехода. В число источников входят, в частности, поисковая система Google, название бюллетеня или имя веб-сайта, с которого выполнен переход по ссылке. Переменной UTM для источника является utm_source. Источник - это одна из пяти размерностей наблюдения за кампаниями, а другие четыре - это средство, содержимое, кампания и условие поиска. И при первом определении источника в GA действительно все идет как надо, т.е. он четко определяет источник перехода, записывая пользователя как «Новый посетитель», вот так:
Google Analytics относит посетителя к разряду "новых", когда веб-браузер пользователя впервые получает доступ к какой-либо странице на вашем сайте. Это достигается за счет создания в данном браузере файла cookie первой стороны. Таким образом, новые посетители идентифицируются не по личной информации, предоставленной на вашем сайте, а уникальным образом идентифицируются по веб-браузеру, которым они пользовались. А вот дальше, при последующих возвратах посетителя на сайт начинаются странные вещи. Дело в том, что в реферере посетителя заходящего по закладке в поле «ссылка» обычно пусто, т.е. это значит, что посетитель зашел без ссылки. Так вот GA уже имея запись о переходе пользователя по ссылке или из поиска, почему то не заменяет ее на пустую. Таким образом получается, что в первый день посетитель пришел на ваш сайт из поиска, а на следующий день уже по закладке, то GA так и будет писать ему источник «поисковик / organic», т.е. поиск.

Решение проблемы

Поискав готовое решение проблемы на форумах, в частности на SE, нашли описание метода, которое предложил пользователь ActionTime, взяли его код, немного изменили для более корректной работы, теперь GA определяет и записывает верный источник.
Грубо говоря, мы заставляем GA отправлять на свой сервер правильный реферер, который отражает реальный текущий источник перехода посетителя. А не тот, который сохранился у него в cookies браузера после первого перехода. Вот как выглядит код:
<script type="text/javascript">
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-xxxxxxx']);
  _gaq.push(['_initData']);
 
        function readcookie(name) { // функция чтения куки
                var re = new RegExp("(?:^| )" + name + "=([^;]*)", "i");
                var matches = document.cookie.match(re);
                return matches && matches.length == 2 ? matches[1] : "";
        };  

  if (document.referrer.match(/^http[s]?:\/\/(www\.|)domen\.ru/)) {} // переход со страницы нашего сайта - ничего не делаем
  else
        {
          if (document.referrer=='')  
          { // нет источника посещения
                  if (document.cookie.indexOf('__utmz=')) { // проверка существования куки __utmz
                  var utmz = readcookie('__utmz'); // читаем значение куки
                  var utmz2 = utmz.replace (/\utmcsr.*/, 'utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)'); // переписываем (даже в случае идентичности)
                  document.cookie = '__utmz=' + utmz2+'; path=/; domain=.domen.ru'; // обновляем
                  }
          }
          else
          {
                 var re2= new RegExp("^http[s]?:\/\/(www\.|)([^\/]*)\/([^\?]*)", "i");
                 var domenar = document.referrer.match(re2);
                 var domen=RegExp.$2;  var linkref=RegExp.$3;
                 if (domen.match(/^yandex\./) || domen.match(/^google\./) || domen.match(/^bing\./) || domen.match(/^search\./) || domen.match(/^rambler\./) || domen.match(/^yahoo\./) || domen.match(/^msn\./) || domen.match(/^ask\./) || domen.match(/^aol\./)) {}
                 else
                 {
                          if (document.cookie.indexOf('__utmz=')) {
                          var utmz = readcookie('__utmz');
                          var utmz2 = utmz.replace (/\utmcsr.*/, 'utmcsr='+domen+'|utmccn=(referral)|utmcmd=referral|utmcct=/'+linkref+'') ;
                          document.cookie = '__utmz=' + utmz2+'; path=/; domain=.domen.ru';
                          }
                 }
          }
        }

  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

</script>

Важно

Обратите внимание на важное различие, касающееся места размещения асинхронного и обычного фрагментов кода отслеживания:

  • асинхронный фрагмент кода должен быть размещен внизу раздела <head> вашего файла или шаблона HTML;
  • обычный фрагмент кода необходимо разместить внизу страницы, непосредственно перед закрывающим тегом </body>

Или используется - Разделение фрагмента

Если требуется поместить фрагмент Google Analytics в нижнюю часть страницы, полностью его помещать не обязательно. Можно сохранить большую часть преимуществ асинхронной загрузки, разделив фрагмент пополам. При этом первая половина остается в верхней части страницы, а вторая перемещается в нижнюю. Так как первая часть фрагмента отслеживания практически или полностью не влияет на отрисовку страницы, эту часть можно оставить вверху страницы, а вниз поместить только ту часть фрагмента, которая вставляет ga.js. Вот тут можно забрать пример кода

А здесь показан отчет «Все источники трафика», в котором выбрано, как сегмент поведение одного пользователя на сайте. При тесте мы сначала перешли на сайт из поиска Яндекса, положили сайт в закладки, по которой потом и вернулись.

А тут добавился новый источник - «sanexpo.ru / referral», это переход по ссылке с сайта sanexpo.ru.

Ваше имя
Код
Ваш телефон
с  
до  
Время
Комментарии
отправить заявку
Введите код