Pull to refresh

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

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

Сервисы статистики типа 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 запросами.

Таким вот простым способом можно узнать откуда идет более целевой трафик и куда направлять свои усилия при продвижении.
Tags:
Hubs:
Total votes 55: ↑40 and ↓15 +25
Views 17K
Comments Comments 45