Реклама и Статистика


SEO sprint - Всё для максимальной раскрутки!





Ах, баннеры, баннеры...

Не секрет, что в наше время Интернет-странички просто переполнены графикой. Без этого уже трудно представить себе какой-нибудь популярный проект. Часть этой графики является дизайном сайта, и с этим мы предпочитаем мириться. Другая часть – это баннеры, рекламная информация других сайтов в виде графической (часто даже анимированной) картинки. Это иногда раздражает, иногда выводит из себя, а иногда может оказаться полезным, так как хорошо сделанный баннер привлекает внимание и к себе и к рекламируемому ресурсу. Но в этой статье разговор пойдет не о самих баннерах, а о системах управления ими.

Если Вам удалось сделать хороший, полезный и посещаемый Интернет-проект, значит, Вы неизбежно сталкивались с баннерами. Часто другие Web-мастера сами предлагают обмен, иногда самому хочется поставить свой баннер на каком-либо ресурсе. Но в любом случае очень полезно иметь информацию о том, сколько раз Ваш баннер был показан и показывается ли он вообще. Это избавит от необходимости раз в неделю (день, месяц, год…) проверять, работает ли Ваш баннер на чужом сайте или давно удален. Конечно, обойтись средствами HTML тут просто невозможно, поэтому приготовьтесь программировать. Хорошо бы для программирования выбрать один из языков, работающих на стороне сервера. Это избавит посетителя от постоянного перекачивания к браузеру массы информации, причем при каждом посещении. Предлагаю Вам попробовать несложный скриптовый язык программирования РНР.
Самое главное, что Вам обязательно понадобится – это поддержка РНР Вашим сервером, где расположен Ваш сайт. Без этого, к сожалению, ничего не получится. Но PHP – язык распространенный, и поддерживается он большинством серверов в сети, за
исключением очень многих бесплатных.

Первое, что надо сделать – это определиться с кодом Вашего баннера и с самим баннером. Код выглядит, как правило так:

<a href="http://myhost.com">
<IMG SRC="http://myhost.com/baner.gif"
alt="Мой баннер" border="0"></a>

Конечно, это только шаблон, но с него мы сможем построить то, что нам будет нужно. А нужно нам будет знать, сколько раз показывается тот или иной баннер на определенном сайте. И желательно – время последнего показа. Для этого надо выделить один файл, который будет работать базой данных. Структура сайта выглядит следующим образом – каждая строчка соответствует одному из сайтов, на котором показывают Ваши баннеры. Разделителем между строками является, как и обычно, перевод строки. Разделителем в самой строке между информационными данными можно выбрать символ ^ (это на клавиатуре Shift+6). Этот символ не встречается в
адресной строке браузера, и нам очень даже подходит.

Структуру строки файла базы данный выберем вот так:

Адрес ^ время последнего посещения ^ количество посещений

Таким образом получается три поля, которые нужно в дальнейшем будет менять в зависимости от того, откуда вызывается баннер. Для того, что бы это знать, надо ввести в код баннера один параметр – идентификатор сайта. Для каждого из сайтов, участвующих в баннерообмене, идентификатор должен быть различным. И кроме того, для того, что бы обработать этот идентификатор, Вам потребуется вызывать не сам баннер, а специальный скрипт PHP, который сначала обработает все данные, а затем выведет на экран нужный баннер. Вот что у нас получилось из кода баннера:

<a href="http://myhost.com">
<IMG SRC="http://myhost.com/baner.phtml?id=1"
alt="Мой баннер" border="0"></a>

Как видите, поменялось имя файла и добавился параметр id. Теперь вызывается не непосредственно сам баннер, а скрипт baner.phtml, который и ведет статистику показов и времени посещения. В конце скрипта должен обязательно быть переход на баннер вот в таком виде:

header ("Location: baner.gif");

Теперь давайте перейдем к вопросу о ведении статистики. Несложно сделать просто подсчет показов, так как задача эта тривиальна – достаточно считать в массив базу данных посещений, и затем увеличить на 1 ячейку массива с индексом, соответствующим переменной id. Это наш идентификатор. Но у нас более сложная задача – организовать возможность просмотра всей статистики в дальнейшем и запоминать время последнего показа баннера. Значит, надо записывать в базу и время, и адрес сайта, с которого вызывается баннер. Адрес мы будем запоминать только для того, что бы в дальнейшем можно было узнать статистику показов, а в самой процедуре подсчета он не участвует.

Итак, начали. Наш скрипт, прежде всего, должен проверить на правильность полученную переменную id. Если она не больше установленного значения и не меньше ноля, то все нормально, иначе присваиваем переменной id ноль, или выводим сообщение об ошибке. Кому как нравится. Значение переменной id с индексом ноль нужно специально зарезервировать для таких вот ошибок, и всегда будет ясно – кто-то разместил не правильный код или допустил в нем ошибку при наборе. Но, если же все нормально, а так чаще всего и будет, скрипт должен считать в память файл с базой данных:

$adds = "url.txt";
$txt = file($adds);

Вся информация оказывается в массиве с именем $txt. Идентификатор указывает на тот индекс, где в массиве расположены данные сайта, с которого вызван баннер. Обратиться к этим данным очень просто:

$str = trim(str_replace (" ","", $txt[$id]));

Хорошо бы проверить, есть ли такая учетная запись, но это по желанию. Дальше надо разложить информацию на три составляющих – адрес, время последнего доступа и количество показов. Вот как это проще всего сделать:

list ($add, $time, $counter) = split ("^", $str);

Вот тут нам и пригодился наш разделитель. Все, вся информация извлечена, теперь ее надо обновить и записать обратно. Собственно, нужно просто увеличить переменню $counter на единицу, считать текущее время и присвоить переменной $time его значение. Если со счетчиком все ясно, то время требует пояснения. Лучше и проще всего считывать его в Unix-овском формате. Полученное значение будет равно количеству секунд, прошедшему после 1 января 1970 года. Ну, так уж принято, хоть и немного странно для простого пользователя. Но, нам важно, что это число секунд очень легко преобразуется в дальнейшем в конкретные даты, а хранить его очень просто, так как это, по сути, просто большое число. Его получить можно так:

$time = time(void);
$counter++;

Заодно увеличили показания счетчика. Все – теперь осталось только записать всю информацию обратно. Суммируем строку, и заносим полученное значение в нужную ячейку массива:

$txt[$id] = $add."^".$time."^".$counter." ";

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

$str=implode("", $txt);
$fp = fopen($adds, "w");
if ($fp) { $fw = fwrite($fp, $str); fclose($fp); }

Вот и все, так как все поставленные нами задачи мы выполнили. Я намеренно не приводил всего кода скрипта целиком, а только по пунктам объяснял все шаги как можно подробнее. Я хотел бы, что бы Вы не занимались бездумным копированием, а постарались самостоятельно развить предложенные тут идеи. Но, что бы хоть как то компенсировать отсутствие в статье готового скрипта, я предлагаю Вам готовый скрипт вывода статистики на экран. Для этого достаточно вызвать в браузере файл stat.phtml. Вот его код:

<?
$adds = "url.txt";
$txt = file($adds);

$i = 0;
while ($i <= count($txt)):
$temp = trim(str_replace (" ","", $txt[$i]));

list ($add, $time, $counter) = split ("^", $str);
echo $add." – ".$counter." : ".$time."<br>";

$i++;
endwhile;
?>

Как видите, еще проще. Единственная трудность – перевести формат времени в разумный вид, но для этого существует масса хороших и не очень алгоритмов.
Просмотров: 21106

  Коментарии (9)
 1 Написал(а) Вася, в 15:56 08.09.2011
:zzz Я поехал
 2 Написал(а) Ollie, в 05:27 17.05.2017
This post has helped me think things thugorh
 3 Написал(а) Betti, в 07:46 17.05.2017
sitting here with tears in eyes your toby was spitting image of our louie that we lost over 3 years ago but I still remember how we all felt so sending big hugs and you will always have the memories to choiesh.liurse xxx
 4 Написал(а) Johnelle, в 16:23 17.05.2017
It's spooky how clever some ppl are. Thnask!
 5 Написал(а) Donte, в 16:28 17.05.2017
I was drawn by the hoentsy of what you write
 6 Написал(а) Nelda, в 16:28 19.05.2017
I went to tons of links before this, what was I thnkiing? http://hfqivcnolx.com [url=http://siygxkwfvo.com]siygxkwfvo[/url] [link=http://eqyroiryr.com]eqyroiryr[/link]
 7 Написал(а) Vinnie, в 07:10 21.05.2017
I like to party, not look arcleits up online. You made it happen.
 8 Написал(а) Kacy, в 06:43 23.05.2017
It's a plaeusre to find someone who can identify the issues so clearly http://pkptfzc.com [url=http://fxcgjv.com]fxcgjv[/url] [link=http://ilwdlfxlrhr.com]ilwdlfxlrhr[/link]
 9 Написал(а) Raynoch, в 06:47 23.05.2017
Haha. I woke up down today. You've chreeed me up! http://ojmepo.com [url=http://vazufvna.com]vazufvna[/url] [link=http://fauvybt.com]fauvybt[/link]

Добавить коментарий
Имя:
Коментарий:



Код:* Code

Реклама