Cookies и JS: показываем объявление только для тех, кто не кликает по ним

Здесь расскажу про интересный скрипт, который записывает в cookies — переходил ли посетитель по ссылке в объявлении и если да, то не показывает его ему до истечения срока действия куков.

Скачать исходники для статьи можно ниже

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

Вот как это будет выглядеть:

Как только пользователь нажмет на ссылку в объявлении оно пропадет (на определенное время) и появиться кнопочка «Показать объявление», по нажатию на которую оно вновь появиться.

Демо пример можно посмотреть тут:
http://mnogoblog2.16mb.com/sample-page/

 
Сам скрипт выглядит следующим образом:


<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
// Unique part of the ad link(s)
var adlink="change this text!";

// Time in seconds until the ads come back
// (default 24 hours):
var timeout=60*60*24;

// Do not change anything in the code below:
var showads = 1;
function adMessage(adcode) {
if (document.cookie == "") {
document.write(adcode);
} else {
var the_cookie = document.cookie;
the_cookie = unescape(the_cookie);
the_cookie_split = the_cookie.split(";");
for (loop=0;loop<the_cookie_split.length;loop++) {
var part_of_split = the_cookie_split[loop];
var find_name = part_of_split.indexOf("ad");
if (find_name!=-1) {
break;
   }
}
if (find_name==-1) {
document.write(adcode);
} else {
var ad_split = part_of_split.split("=");
var last = ad_split[1];
if (last!=0) {
document.write(adcode);
} else {
showads=0;
         }
      }
   }
}
function writeCookie(show) {
var today = new Date();
var the_date = new Date();
the_date.setTime(today.getTime() + 1000 * timeout);
var the_cookie_date = the_date.toGMTString();
var the_cookie = "ad="+show;
var the_cookie = the_cookie + ";expires=" + the_cookie_date;
document.cookie = the_cookie;
location.reload(true);
}
function handleClick(evnt) {
var targetstring = new String(evnt.target);
if (targetstring.search(adlink) != -1) {
writeCookie(0);
}
routeEvent(evnt);
return true;
}
if (window.Event) {
window.captureEvents(Event.CLICK);
}
window.onClick = handleClick;
adMessage('');
//  End -->
</script>
<center>
<span onClick="writeCookie(0)">
<script language="javascript">
<!--
adMessage('<a href="http://mnogoblog.ru" target="_blank">Mnogoblog - сайтостроение на wordpress</a>');
// -->
</script>
</span>
<br>
<script language="javascript" TYPE="text/javascript">
if (showads) {
document.write("Кликните по ссылке, чтобы удалить объявление")
}
</script>
<!-- Optional To Show Ads Again -->
<script language="javascript" TYPE="text/javascript">
if (!showads) {
document.write("<form><input type=button value='Показать объявление' onClick=writeCookie(1)><\/form>")
}
</script>
</center>

 
Теперь рассмотрим параметры, которые необходимо настроить под свой сайт.
Строчка:

var timeout=60*60*24;

Данная строчка задает время жизни куков, то есть время, через которое объявление вновь появиться после клика по нему.
Здесь 60 сек * 60 мин * 24 часа, то есть 1 день.

Следующая строчка:

adMessage('<a href="с" target="_blank">Mnogoblog - сайтостроение на wordpress</a>');

В данной строчке прописывается ссылка в объявлении и путь, по которому перейдет пользователь кликнув по ней.
Здесь ссылка «Mnogoblog — сайтостроение на wordpress», а путь http://mnogoblog.ru.

Следующая строчка:

document.write("Кликните по ссылке, чтобы удалить объявление")

Здесь прописана подсказка для посетителя или можно заменить ее на любой другой текст.

Следующая строчка:

document.write("<form><input type=button value='Показать объявление' onClick=writeCookie(1)><\/form>")

Здесь прописывается создание кнопки «Показать объявление», которая появиться на месте объявления после того, как посетитель кликнет по нему, при нажатии на нее объявление принудительно вернется.

Для примера давайте поставим данный скрипт в начале каждой странички.
Для этого заходим в панель управления WordPress, в левом меню выбираем пункт «Внешний вид» и подпункт «Редактор». После справа в списке шаблонов выбираем файл page.php — он отвечает в wordpress за вывод страничек.
Открываем его код и вставляем в нужном месте скрипт нашего объявления, вот как получилось у меня:

<?php get_header(); ?>

<div class="grid_11">
    <div id="content">

<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
// Unique part of the ad link(s)
var adlink="change this text!";

// Time in seconds until the ads come back
// (default 24 hours):
var timeout=60*60*24;

// Do not change anything in the code below:
var showads = 1;
function adMessage(adcode) {
if (document.cookie == "") {
document.write(adcode);
} else {
var the_cookie = document.cookie;
the_cookie = unescape(the_cookie);
the_cookie_split = the_cookie.split(";");
for (loop=0;loop<the_cookie_split.length;loop++) {
var part_of_split = the_cookie_split[loop];
var find_name = part_of_split.indexOf("ad");
if (find_name!=-1) {
break;
   }
}
if (find_name==-1) {
document.write(adcode);
} else {
var ad_split = part_of_split.split("=");
var last = ad_split[1];
if (last!=0) {
document.write(adcode);
} else {
showads=0;
         }
      }
   }
}
function writeCookie(show) {
var today = new Date();
var the_date = new Date();
the_date.setTime(today.getTime() + 1000 * timeout);
var the_cookie_date = the_date.toGMTString();
var the_cookie = "ad="+show;
var the_cookie = the_cookie + ";expires=" + the_cookie_date;
document.cookie = the_cookie;
location.reload(true);
}
function handleClick(evnt) {
var targetstring = new String(evnt.target);
if (targetstring.search(adlink) != -1) {
writeCookie(0);
}
routeEvent(evnt);
return true;
}
if (window.Event) {
window.captureEvents(Event.CLICK);
}
window.onClick = handleClick;
adMessage('');
//  End -->
</script>
<center>
<span onClick="writeCookie(0)">
<script language="javascript">
<!--
adMessage('<a href="http://mnogoblog.ru" target="_blank">Mnogoblog - сайтостроение на wordpress</a>');
// -->
</script>
</span>
<br>
<script language="javascript" TYPE="text/javascript">
if (showads) {
document.write("Кликните по ссылке, чтобы удалить объявление")
}
</script>
<!-- Optional To Show Ads Again -->
<script language="javascript" TYPE="text/javascript">
if (!showads) {
document.write("<form><input type=button value='Показать объявление' onClick=writeCookie(1)><\/form>")
}
</script>
</center>

  
		<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
		<div class="post" id="post-<?php the_ID(); ?>">
		<h1 class="entry-title"><?php the_title(); ?></h1>

...

Думаю кому-нибудь данный скрипт будет полезен!

Введите свой email адрес для того, чтобы подписаться на мой блог:


knopkisoc

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *