Веб-разработка

индекс
236,88

Знай откуда пришел пользователь

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

Сервисы статистики типа Google Analytics дадут вам общую оценку трафика, а именно сколько посетителей пришло с какого ресурса. Можно настроить цели(goals) и отследить регистрации или покупки, но этого часто бывает недостаточно.

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



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

Эти данные можно получить, например, из __utmz кук Google Analytics и записать в какое-то поле в базе.

Значение куки __utmz обычно выглядит примерно так

264345247.1261843448.2.3.utmcsr=habrahabr.ru|utmccn=(referral)|utmcmd=referral|utmcct=/blogs/i_am_advertising/63791/

static function parseGoogleAnalyticsCookies(){
$returnMap = array();
$cookieVal = $_COOKIE["__utmz"];
//now split cookie value by |
$arrPairs = explode('|', $cookieVal);
foreach($arrPairs as $pair){
$pair = explode('=', $pair);
if (sizeof($pair) == 2){
$key = $pair[0];//look for "."
if (strpos($key, ".")){
$key = substr($key, strrpos($key, ".")+1 );
}

$returnMap[$key] = $pair[1];
}
}
return $returnMap;
}


Этот код разобьет значение куки __utmz на пары и запишет в ассоциативный массив.

Теперь при регистрации пользователя можно получить эти данные и записать вместе с новым пользователем.

$newUser = $model->create();
//..... утснанавливаем имя/хэш пароля и тп
$sourceCookiesData = GoogleAnalyticsCookies::parseGoogleAnalyticsCookies();//GoogleAnalyticsCookies назван для примера
if (isset($sourceCookiesData['utmcsr'])){
$newUser->source = $sourceCookiesData['utmcsr'];
}
if (isset($sourceCookiesData['utmcct'])){
$newUser->sourceUrl = $sourceCookiesData['utmcct'];
}
$newUser->save();


Мы взяли utmcsr и utmcct которые хранят хост и урл ссылающейся страницы(страниц может быть больше одной, поэтому записываем раздельно).

Теперь все данные хранятся в базе и любую статистику можно собрать простыми SQL запросами.

Таким вот простым способом можно узнать откуда идет более целевой трафик и куда направлять свои усилия при продвижении.
+25
5 января 2010, 01:16
94
ivv

комментарии (45)

+45
AliveTouhou #
80000 гет!
+6
ivv #
не совсем понял смысл вашего комментария
+10
kibizoidus #
Посмотрите Id своей заметки в адресной строке.
НЛО прилетело и опубликовало эту надпись здесь
+4
ivv #
хороший номер :)
+1
nikolaman #
может вопрос покается странным, но это имеет какой-то смысл? кроме просто красивого написания
НЛО прилетело и опубликовало эту надпись здесь
+1
AndrewTishkin #
Потому что с Новым Годом и Днём рождения связано гораздо больше фактов и событий, нежели с номером топика на хабре? :)
+2
Mad_Fish #
В посте не указан номер, так что технически это не гет. :)
But nobody cares.
+3
Crazybot #
Ну тогда и от меня поздравления примите (ой боюсь по теме коментариев будет меньше чем поздравлений)
–1
sunnybear #
а типа с помощью событий и кастомных отчетов такого добиться нельзя?
+12
remal #
А что мешает просто считывать Referer?
НЛО прилетело и опубликовало эту надпись здесь
+2
ivv #
если человек только пришел, затем ушел с сайта, а затем опять пришел куки все будут на месте а рефера уже не будет.
НЛО прилетело и опубликовало эту надпись здесь
0
AusTiN #
поздравляю с гетом! =)
+2
neochapay #
Что мешает пользоваться piwik?
0
Nashev #
А если это в куках аналитика, почему это в его отчётах не разглядывается? или я просто не в теме?
0
sunnybear #
в том-то и дело, что разглядывается, просто свое колесо интереснее :)
+2
zeka #
Интересная тема.

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

Т.е. например можно будет сравнивать реальную финансовую прибыль от контекстной рекламы и пользователей приходящих с поисковиков, т.к. вполне может быть что с контекстной рекламы зарегистрируется в 5 раз больше чем с поисковиков, но сумма счетов с поисковиков будет в 10 раз больше.
+1
p777 #
Гугл аналитикс это давно умеет. Курите доки.
–1
ivv #
даже после того как юзер сотрет куки, например? доки прокурены.
0
sunnybear #
и? исходная система на тех же куках построена
0
ivv #
исходная система записывает нужные данные при регистрации и использует их потом сколько угодно.

Потом уже куки если и сотрут мы все имеем на руках, а кастомные отчеты и тп уже не прокатят.

Вы можете получить статистику опираясь на данные своего сайта(голосования, покупки, вообще объективные типа нравится/не нравится) и данные полученые при регистрации.

Я не говорю о замене — я говорю о дополнении.

Как проще посчитать количество комментариев сделанных пользователями пришедших с site2.com — с помощью такой схемы или с помощью гуглоаналитики?
0
sunnybear #
Мне проще настроить GA каждый раз под кастомный отчет, чем городить такую схему на своем сайте.
+ я смогу спокойно своим отчетом поделиться с другими людьми
+ у меня под рукой готовый UI
+ все отчеты в одном месте, а не в 10.

Я не говорю, что указанный в статье метод плох, я просто не понимаю, зачем он нужен. Для точных финансовых отчетов все равно используются финансовые документы (первичка). Для оценки трафика и его сегментации лучше GA / Omniture ничего нет. Пусть даже у них погрешность для западных пользователей 3-5%, это совсем не важно при оценке трендов.

А писать каждый раз руками такую схему для каждого сайта? Мне лично лениво.
0
ivv #
вышеприведённый мною пример абстрактный, но был применен для похожей задачи. Такие данные из аналитики не выймешь с помощью кастомных отчетов. Опять повторюсь, это дополнение, скажем даже специфичное.
0
sunnybear #
Какие «такие»? Вы пример приведите конкретный. То, что было озвучено, из GA вынимается.
0
ivv #
«Как проще посчитать количество ....»

habrahabr.ru/blogs/webdev/80000/#comment_2353123
0
sunnybear #
Создание комментария — отдельное событие
Далее кастомный отчет по общему числу событий / действию по событию / источникам.

Только что проверил — заняло минуту посмотреть, откуда приходят пользователи, чтобы загрузить Web Optimizer — 39% с webo.in
0
ivv #
как вы думаете я смог бы привести хоть один пример, пусть даже фантастический, чтобы у вас не нашлось мне достойного ответа? когда начинается спор разговор заходит обычно в тупик. Вы уверены в своем, я в своем.
0
red_pilot #
Видимо тут фишка в том, что пользователь сегодня зашел на сайт с хабра. В куки записался реферрер.
Послезавтра он заходит на сайт, вбив адрес в адресную строку руками и регистрируется.
Если у него стоит кука с реферрером, то можно записать его в юзеринфо.
Через неделю наш юзер делает заказ на $1млн.

А в конце месяца мы можем посмотреть, с какого ресурса приходят самые жирные клиенты.

(если так можно сделать в GA, то напишите пожалуйста, где копать)
0
sunnybear #
ничего не понял. Вешаете событие «делает заказ» через GA и смотрите. Там все будет, и ресурсы, и поисковики (наверное, и фразы, не проверял).
Вот тут небольшая заметка в тему
web2.habrahabr.ru/blog/77314/
0
ivv #
откуда через неделю возьмется информация о реффере конкретного пользователя для pageTracker._trackEvent?
0
sunnybear #
GA же умеет аккумулировать данные. Считать новые и повторные заходы. Для повторных заходов учитывать только исходный referer
0
ivv #
ну так приведите пример его получения. Как оно учитывать только исходный referer
0
sunnybear #
например, используя транзакции
www.google.com/support/googleanalytics/bin/answer.py?hl=ru&answer=55528
0
ivv #
а городить такое для каждого нужного ивента не лениво? две строки при регистрации для записи рефера против «транзаций»

Сегодня вы захотели отслеживать новое событие — нужно его добавить и отправная точка это сегодня, за вчера(и дальше в прошлое) данных нет.

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

P.S. так и не понял как при помощи транзакций учитывать только исходный referer
0
sunnybear #
мне не лениво. Нормальный e-commerce и так обвешан событиями по самые колокольчики, ибо про пользователя нужно знать все. А чем писать свою платформу для отслеживания статистики лучше использовать уже готовую. Тем более, что она постоянно улучшается.

Зачем терять время, если его можно потратить на зарабатывание денег?
0
ivv #
то что я предложил не новая платформа. Это как я уже сказал претендует только на дополнение. И одна функция + 2 строчки при регистрации не думаю что тянет на «городить».
0
sunnybear #
+ база + интерфейс + невозможность поделиться нормальными результатами (нужно выборки делать полувручную)

да, согласен, даже на «городить» не тянет :)
0
ivv #
У Вас твердое мнение :)
0
red_pilot #
Спасибо, интересно!

А можно ли вывести список посещенных страниц по порядку для каждого посетителя по его ip.

Т.е.:
145.24.64.13
Страница 1 -> страница 2 ->…

213.165.16.36
Страница А -> страница Б ->…
0
sunnybear #
число теоретически — да. Только это через механизм целей вроде реализовывается. Но у гугла с цепочками путей всегда было туго, не уверен, что сейчас стало сильно лучше.
Omniture очень мощные данные предоставляет, вплоть до индивидуального отслеживания, но она платная.
0
qmax #
А что, если вам нужна статистика о том, откуда идут пользователи, телепортировавшие большее количество коз?

(кстати, три запятых)
0
ivv #
наврядли. телепортация коз это ноухау команды хрома, и получить такие данные гугл не даст.

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