Модификация кода Google Analytics

carlos82
На сайте с 18.01.2013
Offline
23
1169

Здравствуйте.

Хотим "научить" Google Analytics правильно распознавать источники перехода.

Описание данного метода нашли в статье:

http://www.onlab.su/pub/view/pravilniy-istochnik-v-google-analytics

В статье был выложен код, по методу предложенному уважаемым участником форумаActionTime.

Вкратце, GA определяет источник первого посещения и записывает его как:


«Органический поиск», запись вида – поисковик / organic;
«Закладки», запись вида – direct / none;
«Переход по ссылке с другого сайта», запись вида – url / referral.

И при первом определении источника в GA действительно все идет как надо, т.е. он четко определяет источник перехода, записывая пользователя как «Новый посетитель».

Google Analytics относит посетителя к разряду "новых", когда веб-браузер пользователя впервые получает доступ к какой-либо странице на вашем сайте. Это достигается за счет создания в данном браузере файла cookie первой стороны. Таким образом, новые посетители идентифицируются не по личной информации, предоставленной на вашем сайте, а уникальным образом идентифицируются по веб-браузеру, которым они пользовались.

А вот дальше, при последующих возвратах посетителя на сайт начинаются странные вещи. Дело в том, что в реферере посетителя заходящего по закладке в поле «ссылка» обычно пусто, т.е. это значит, что посетитель зашел без ссылки. Так вот GA уже имея запись о переходе пользователя по ссылке или из поиска, почему то не заменяет ее на пустую. Таким образом получается, что в первый день посетитель пришел на ваш сайт из поиска, а на следующий день уже по закладке, то GA так и будет писать ему источник «поисковик / organic», т.е. поиск.

В предложенном в статье коде (размещен ниже) проверяется содержимое куки utmz и модифицирует источник трафика по необходимости.

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

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

Вот пример кода (вместо XX-XXXXXXX-X и OUR_DOMAIN естественно были подставлены наши данные), который вставляли в <head>:

<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'XX-XXXXXXX-X']);
_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?:\/\/(www\.|)OUR_DOMAIN\.com/)) {}
else
{
if (document.referrer=='')
{
if (document.cookie.indexOf('__utmz=')) {
var utmz = readcookie('__utmz');
var utmz2 = utmz.replace (/\utmcsr.*/, 'utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)');
document.cookie = '__utmz=' + utmz2+'; path=/; domain=.OUR_DOMAIN.com';
}
}
else
{
var re2= new RegExp("^http?:\/\/(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=.OUR_DOMAIN.com';
}
}
}
}

_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>

Просьба ко всем кто "в теме", посмотреть на код на предмет каких-то ошибок и подсказать правильный вариант решения.

carlos82
На сайте с 18.01.2013
Offline
23
#1

разобрались заработало

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий