Referer: от причины к следствию

19 комментариев

PHPВы когда-нибудь интересовались, по каким словам ваш сайт или блог находят люди, приходящие с поисковиков? Иногда от души ржу, просматривая статистику, собранную плагином WP-ShortStat. Но пока мы смеёмся, умные люди используют этот подарок разработчиков браузеров — переменную HTTP_REFERER, в которой всегда содержится эта информация.

Использовать её можно разными путями. В одном из них уже, кажется, с концами запутался Евгений Сергеев, разрабатывая свой «Умный эпиграф«, переоценивший способности рядового блогера.

Некоторые онлайн-магазины используют эти данные для простейших поведенческих механизмов. Например, пользователю, пришедшему по запросу «купить телевизоры», всё его время пребывания на сайте будет показываться реклама спецпредложений по продаже телевизоров. Это значительно увеличивает конверсию посетителей в покупатели.

Основной поток посетителей (с ПС) любого сайта можно разделить на ветви по нескольким ключевым словам и сделать сайт динамическим в зависимости от того, что искал пользователь. Вот простейший PHP-скрипт для определения ключевых слов, по которым на ваш сайт пришли с Yandex, Google, Altavista,Mail.ru, Rambler и Yahoo.

<?php
if (!is_empty($ref = $_SERVER['HTTP_REFERER']))
{
// $ref="http://go.mail.ru/search?q=%C6%E8%EB%E8%ED%F1%EA%E8%E9"; // проверили, работает.
$uri = parse_url($ref);
$host = isset($uri['host'])?strtolower($uri['host']):'';
parse_str($a = $uri['query'],$query);
if (preg_match('~\.yandex\.ru$~',$host)) {$search_query = $query['text'];}
elseif (preg_match('~\.google~',$host)){$search_query = $query['q'];}
elseif ($host == 'www.altavista.com') {$search_query = $query['q'];}
elseif ($host == 'go.mail.ru') {$search_query = $query['q'];}
elseif ($host == 'www.rambler.ru') {$search_query = $query['words'];}
elseif (preg_match('~\.search.yahoo.com~',$host)) {$search_query = $query['p'];}
else {$search_query = '';}
require("a.charset.php");
$search_query = charset_x_win($search_query);
}
echo $search_query;
?>

Переменную $search_query вместо отображения можно сравнивать с чем-нибудь и на основе результата строить какую-то динамику. Функция charset_x_win из класса a.charset.php просто приводит фразу к правильной русской кодировке. Кстати, если немного поколдовать — можно ещё получить номер страницы выдачи, с которой пришёл пользователь.

А Павел Воронин тем временем написал весьма интересную серию статей о создании стартапа.

Жилинский Владимир.



Wikia Search

4 комментария

Wikia SearchWikia Search в своей первой публичной альфа-версии была запущена утром 7 января, о чем заранее сообщил Джимми Уэльс от лица компании Wikia.

Wikia Search — это новая разработка поисковой системы, opensource-решение для организации релевантного поиска на основе свободных программ — Grub в качестве паука (crawler) и Nutch в качестве индексатора.

В Wikia Search используется современные технологии поисковых систем, новые алгоритмы поиска и сортировки данных, индексаторы, фильтры. Впервые в истории поисковых систем (насколько мне известно) исходные коды открыты и доступны для скачивания. Это сделано для того, чтобы программисты смогли усовершенствовать новый поисковик или настроить его под свои конкретные задачи.

Этот проект призван уменьшить зависимость от таких коммерческих поисковых систем, как Google или Yahoo, хотя по словам всё того же Джимми Уэльса, 2-3% от общего числа поисковых запросов в течение ближайшего одного-двух лет будет успехом для проекта.

В разработке Wikia Search основной упор делается на поддержку сообщества. На данный момент пользователей просят сообщать о найденных ошибках в работе поисковика и составлять «краткие описания» для поисковых запросов, в которых может содержаться полезная и уточняющая «человеческая» информация. В дальнейшем роль людей будет только увеличиваться, судя по мелькающим частям будущих механизмов голосования за результаты выдачи и поиска по проверенным сайтам.

Жилинский Владимир.




© 2007-2010 Блог интернет-разработчика, автор — Zhilinsky.ru.
При использовании информации ссылка на источник обязательна.