Технологии установки баннеров

Повесить баннер - дело не хитрое, ведь баннер - это обычная картинка. (Или я не прав?) Но когда количество страниц сайта, на которых нужно установить баннеры превышает одну, возникает проблема. Браузер загрузив картинку с сервера, сохраняет ее в кэше и при переходе на другую страницу с такой же картинкой, уже не загружает ее с сервера, а забирает из временной папки на диске пользователя. То есть, если URL у всех баннеров на сайте будут в точности одинаковыми, то посетителю на всех страницах будет демонстрироваться один и тот же баннер. Чтобы избежать такого абсурда, в адрес баннера (а точнее скрипта, отвечающего за выбор баннера) обычно добавляется специальный параметр - случайное число. Например, вот так выглядит код для размещения на странице баннера системы W3D Banner Exchange:

Пример 1. HTML-код для установки баннера W3D
<a href="http://www.exchange.w3d.ru/cgi-bin/click?id= 49&num=292871">
<img src="http://www.exchange.w3d.ru/cgi-bin/ex?id= 49&num=292871"
alt="W3D Banner Exchange" border="0" width="468" height="60"></a>

Все, что находится в URL после знака "?" - это параметры, передаваемые программе баннерообмена через интерфейс CGI. Здесь значение num должно быть уникальным для каждого баннера (в пределах сайта) числом, тогда при каждом переходе на следующую страницу будет загружаться новый баннер.

Однако, если сайт состоит из большого числа страниц, придется тратить уйму времени на ручную "генерацию" случайных чисел. Особенно, если нужно время от времени менять представленные на сайте баннерные системы. Решить проблему можно как на стороне клиента, так и на сервере. Причем, использование клиентского скрипта хотя и менее корректное, но все же более "результативное" решение, т. к. при этом новый баннер будет загружаться даже при повторной загрузке страницы из кэша.

Пример 2. Код для установки баннера W3D с помощью JavaScript
<script language='JavaScript'>
<!--
var tmp = Math.round((Math.random() * (1000000 - 1)));
document.write("<a href='http://www.exchange.w3d.ru/cgi-bin/click?id=
    49&num=" + tmp + "' target='_top'>");
document.write("<img src='http://www.exchange.w3d.ru/cgi-bin/ex?id=
    49&num=" + tmp + "' width='468' height='60' border='0' alt='W3D Banner
    Exchange'></a>");
//-->
</script>

Переменная tmp - это и есть наша случайная величина, которая будет автоматически браться с потолка при каждом открытии страницы. Вспомните к тому же, что скрипт можно поместить в отдельном файле, а в HTML-разметке всех страниц добавить одну и ту же строчку, которую можно не менять при переходе на использование другой баннерной системы, например:

<script language="JavaScript" src="banner.js"></script>

Правда, нужно иметь в виду, что администрации рекламной сети может не понравится такое несанкционированное усовершенствование кода (если, конечно подобный Java-скрипт не предлагается по умолчанию).

Более красивое решение - применение серверной технологии SSI, поддерживаемой самым популярным в мире сервером Apache. Для этого потребуется небольшой Perl-скрипт, который будет создавать код баннера. В баннерных сетях типа Reklama.Ru, RB2 и некоторых других пользователям настоятельно рекомендуется взять соответствующий скрипт и поместить его в CGI-директории своего сервера. Вот так будет выглядеть универсальный скрипт в случае с нашей W3D Exchange:

Пример 3. Perl-скрипт для установки баннера W3D с помощью SSI
#!/usr/bin/perl

$SERVER_HOST='www.exchange.w3d.ru';
$PATH_HREF="http://$SERVER_HOST/cgi-bin/click";
$PATH_BANNER="http://$SERVER_HOST/cgi-bin/ex";

$login=$ENV{"QUERY_STRING"};

($IP=$ENV{"REMOTE_ADDR"})=~tr/.//d;
srand($$+$IP);
$tmp=int rand(10000000);

print "Content-type: text/html\n\n";
print "<a href=$PATH_HREF?id=$login&num=$tmp>";
print "<img src=$PATH_BANNER?id=$login&num=$tmp \n";
print "width=468 height=60 border=0 alt=\"W3D Banner Exchange.\"></a>";

Для размещения баннера на любой из страниц в ее разметку нужно добавить единственную строчку, например, такую:

<!--#include virtual="/cgi-bin/banner?49"-->

Во всех примерах 49 - это идентификатор конкретного пользователя в баннерной системе.
В последнем случае пользователю будет отправлена страница, собранная на сервере, и, заглянув в HTML-код, он увидит примерно то же, что и в примере 1.

А можно применить и серверную вставку Java-скрипта из примера 2:

<script language="JavaScript">
<!--#include virtual="banner.js"-->
</script>

Кроме рассмотренных здесь основных способов установки баннеров, есть, конечно, и другие технологии (к примеру, ASP), ваше дело - выбрать наиболее приемлемую и доступную для вашего сайта.


Все заметки: 1 2 3 4 5 6 7 8 9 11 12 оглавление