Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Допилить Google analytics
цитата
21/01/13 в 19:15
 San_Tehnik
В связи с тем, что гугл аналитикс довольно странно подсчитывает источник трафика, возникла необходимость подправить ситуацию.
Примеры:
Пользователь заходит на сайт из закладок. В куке utmz источником трафика будет указан direct.
Затем этот же пользователь заходит на сайт по ссылке с другого сайта. Логично было бы, если бы в источнике трафика был реферер, но в источнике трафа все равно останется директ.

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

Далее этот же пользователь заходит на этот же сайт с реферером, но в куке источником трафика все равно остается поисковик.


Меня совсем не устраивает такой подход к определению источника трафика.
Может кто-то занимался этим вопросом? Нужно, что бы каждый раз в куку заносились корректные данные об источнике трафа.
Нешел один вариант решения тут
Но как-то этот скрипт глючно работает. Вот код:
<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>
Реферер корректно не перезаписывается. В чем может быть ошибка?
цитата
22/01/13 в 09:29
 Yacc
San_Tehnik писал:
Пользователь заходит на сайт из закладок. В куке utmz источником трафика будет указан direct.
Затем этот же пользователь заходит на сайт по ссылке с другого сайта. Логично было бы, если бы в источнике трафика был реферер, но в источнике трафа все равно останется директ.

Куки ГА обновляются один раз за сессию. Длительность сессии по умолчанию 30 минут. Можно сделать поменьше (если тебе это действительно нужно):
https://developers.google.com/analytics/devguides/collection/gajs/me…kieTimeout
цитата
22/01/13 в 12:45
 San_Tehnik
Разобрался, в данном случае обновляются каждый раз, но utmz не обновляется, когда органик или директ изменяется на реферальный источник. В этом случае обновляется только по истечению сессии. Что меня, в принципе, устраивает.


Эта страница в полной версии