Определение уникальности посетителя средствами Cookie и JavaScript

08.02.2010

Определение уникальности посетителя средствами Cookie и JavaScript

Продолжая свои эксперименты с трафом и поведенческими факторами, решил я сделать следующую вещь:

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

Итак, решение вопроса:

1) Сперва устанавливаем функции, которые будут использоваться. Это установка куки, чтение куки, проверка уникальности

script language=JavaScript type=text/javascript

// Установка куки (Имя, значение, Возраст, дальше хуйня)

function setCookie(name, value, expires, path, domain, secure)

// Получение куки по её имени

function getCookie(name) {

var pattern = (?:; )? + name + =([^;]*);?;

var regexp  = new RegExp(pattern);

if (regexp.test(document.cookie))

return decodeURIComponent(RegExp[$1]);

return false;

}

// Функция закрытия баннера

function closebanner(){document.getElementById(‘ID блока‘).style.display = ‘none’;}

// Провяем, есть ли кука. Если нет — показываем блок и ставим куку

var vodka = getCookie(‘имя куки‘);

if (!vodka) {

var d = new Date();

d.setMonth(d.getMonth() + 1); // 1 месяц ставим

setCookie(‘имя куки‘, ‘from+russia+with+love’, d); // Привет Амерам

document.getElementById(‘ID блока‘).style.display = ‘block’;

}

/script

Все вроде понятно. Данные не забываем менять на свои. Едем дальше.

2) Сам код в HTML

style type=text/css

/* Фиксируем блок в верхнему краю 100%-100% */

#ID блока{text-align:center;position:fixed;top:0px;left:0px;width:100%;height:100;}

/* для удобства подвинул вниз баннер */

#ID блока img {margin-top:100px;border:0px;}

/style

div id=ID блока style=display:none;a href=javascript:close();img src=http://banner-url.com/a/div

Изначально ставим display:none. Объясню для чего это. К примеру если юзер будет повторно заходить на сайт, либо просто будет кликать по ссылкам и бегать по ним, окно будет появляться и сразу же исчезать. Ну такое лучше не допускать.

Далее, самое главное, на чём я сегодня потерял 2 с лишним часа. Не забывайте, что браузер обрабатывает код по мере его считывания. По этому порядок должен быть такой, сначала вывод блока (то есть пункта номер 2), а затем обработка и проверка кук на JS (это первый пункт). Я про это забыл и долго думал, почему же не получается, как надо. А так как изначально блок с рекламой будет невидимым, то боятся его появления не нужно. Оно вылезет, если куки не будет. Вот так.

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