Главная > SEO сервисы > TDS система распределения и управления трафиком

TDS система распределения и управления трафиком

15 апреля 2010

Здравствуйте, мои любители этого интересного СЕО, сервисов и tools.
Сейчас обсудим что такое TDS (Система управления трафиком или система распределения трафика по гео и другим параметрам, или на англ. Traffic Directing System) и как ее сделать своими руками?

Сегодня я расскажу вам, как можно самому, на коленке, организовать себе систему управления трафиком, то есть SEO сервис своими золотыми ручками 😉

Итак, начнем… Прежде всего нам требуется определить, по каким критериям будем фильтровать траф… Я предлагаю сделать по самому распространенному: уникальность и страна пользователя.

Первым делом нам потребуется определять уникальность трафа. По хорошему счету уникальность определяется рядом параметров: IP, броузер, операционная система. Но мы пока не будем вдаваться в такие дебри и будем определять уникальность просто по броузеру, т.е. ставить свои куки пользователю.
Первая функция определяет уникальность трафа:

function is_uniq()
{
if(isset($_COOKIE['is_uniq']))
return 0;
else
{
setcookie('is_uniq', $_SERVER['REMOTE_ADDR'], time()+60*60*24);
return 1;
}
}

Думаю тут ничего объяснять не надо. Все просто. Смотрится наличие куки, если она есть, то траф неуникальный, в противном случае траф уникален и ему ставится кука.

Следующий шаг — это определение страны пришедшего в нашем самописном сео сервисе.

Для этого нам потребуется база соответствия IP адресов и стран. Самый лучший вариант заюзать базу GeoIP от пацанов из MaxMind, за что им отдельный респектос. Базу эту можно либо купить, либо использовать Light версию (фришную). Мы конечно используем бесплатную. По заявлениям разработчиков этой базы, они правильно определяют до 98% всех IP адресов… Что же, довольно не плохо. Вот с этой страницы мы можем скачать саму базу (в бинарном виде). Дальше нам надо получить API для работы с этой базы, используем php, поэтому вот тут можем скачать API для работы с бинарной базой.

Определение страны сводится к следующему коду:

require_once("./inc/geoip/geoip.inc");
$gi = geoip_open("./inc/geoip/geoip.dat",GEOIP_STANDARD);
$ip = $_SERVER['REMOTE_ADDR'];
$code = geoip_country_code_by_addr($gi, $ip);
$code = strtoupper($code);

Теперь в переменой $code хранится двухбуквенный код страны.
Теперь сравнивая это значение с теми, которые нам нужны (US — америка, CA — канада, GB — Великобритания), мы можем сортировать траф.

$default_url = 'http://google.com';//урл по дефолту, если правило не найдено$rules = array();
$rules['US'][1] = 'http://url-for-us-unq.com';//uniq
$rules['US'][0] = 'http://url-for-us-raw.com';//raw

Дальше надо проверить наличие правила для кода страны

$type = is_uniq();
foreach ($rules as $country=>$urls)
{
if($country == $code)
{
header("Location: ".$urls[$type]);
die();
}
}

Если не найдено правило, то редиректим по дефолтному урлу:

header("Location: ".$default_url);
die();

Итак, в итоге, мы получили вот такой скрипт:

require_once("./inc/geoip/geoip.inc");
$gi = geoip_open("./inc/geoip/geoip.dat",GEOIP_STANDARD);
$ip = $_SERVER['REMOTE_ADDR'];
$code = geoip_country_code_by_addr($gi, $ip);
//а код страны мы получаем в переменную $code, и вот с ней и надо сравнивать те значения из //массива, которые мы установили
$code = strtoupper($code);
function is_uniq()
{
if(isset($_COOKIE['is_uniq']))
return 0;
else
{
setcookie('is_uniq', $_SERVER['REMOTE_ADDR'], time()+60*60*24);
return 1;
}
}
$default_url = 'http://google.com';
$rules = array();
$rules['US'][1] = 'http://url-for-us-unq.com';//uniq
$rules['US'][0] = 'http://url-for-us-raw.com';//raw
//массив $rules надо самому задавать, в нем хранятся страны и урлы на
//которые делать переходы
$type = is_uniq();
foreach ($rules as $country=>$urls) { if($country == $code) {
header("Location: ".$urls[$type]);
die();
}
}
header("Location: ".$default_url);
die();

Вот такая вот TDS получилась у нас! Пробуем, тестируем сделанную seo tools вместе с «СЕО дело».

Комментирование отключено.