понедельник, 6 декабря 2010 г.

Простейший скрипт ротациии баннеров на PHP для GameLeads

Делая небольшой обзор партнерки Gameleads, я обещался дать простейший скрипт ротации баннеров. Чтож, приходится выполнить свое обещание.

Скрипт ротации баннеров на PHP

Вам понадобится место, где вы будете размещать свои скрипты. Любой платный хостинг дает возможность выполнять php-скрипты. Так как нам не понадобятся базы, то подойдет и большинство бесплатных хостингов.
Для начала, возьмем линки оферов, баннеры которых мы будем крутить, с gameleads. Желательно подобрать размеры банеров примерно одинаковыми.
Стандартный линк, полученный с Gameleads выглядит так:
<script language="JavaScript" type="text/javascript">
var size="250x250"; // размер баннера
var cid="df543a8feacdaf8782e0673fcbff740b";
var sa=""; // субаккаунт
</script>
<script language="JavaScript" src="http://t93.gameleads.ru/" type="text/javascript">
</script>

Убираем из него коменты: // размер баннера и // субаккаунт и удаляем концы строк. Т.е. размещаем весь скрипт в одну строку.

Создаем текстовый файл. Назовем его, к примеру, games.txt
В первой строчке запишем имя офера.
Во-второй строчке наш код.

Дальше таким же образом добавляем в наш файл все остальные скрипты вызова баннеров для всех нужных оферов. Соблюдая те же правила: "Название офера" на одной строке, код баннера на другой.

У нас должен получиться файл с четным количеством строк. Пустых строк быть не должно! Это будет нашей базой. Теперь сделаем замену сразу во всем файле строки var sa="" на строку var sa="Субаккаунт". Где, "Субаккаунт" имя субакканта на GameLeads. Впрочем, этого можно и не делать. Но, если вы хотите получать более подробную статистику, то стоит.

Теперь займемся движком.
Создаем еще один файл. dvig.php
Заполним его следующим образом:
<?php
$fo1 = fopen("games.txt", "r");
$data = fread($fo1, filesize("games.txt"));
fclose($fo1);
$data = explode("\r\n", $data);
$cnt = count($data)/2;
$bnum= rand(0,$cnt-1);
if($bnum>$cnt-1) $bnum=$cnt-1;
$bnum=$bnum*2+1;
print("document.write('" . $data[$bnum] . "')");
?>
Немного поясню, что скрипт делает:
Считываем строки данных из нашего файла games.txt в архив $data. Выясняем сколько строк в архиве $cnt и делим на 2. Почем на два? У нас в файле games.txt данные составляют пару: имя офера и код банера. Функцией rand получаем "случайное" число $bnum в промежутке от нуля до числа оферов в базе минус один. Вычисляем индекс, где содержится нужный баннер $bnum=$bnum*2+1; и показываем его.
Все! С одним с движком покончено. Размещаете оба файла там, где вам удобнее. К примеру, здесь. Теперь осталось организовать вывод работы скрипта в том месте, где нам нужно. Сделать это просто. Добавляем в шаблон следующий код
<center>
<script language=javascript src='http://ВашДомен/dvig.php'></script>;
</center>
Меняем значение "ВашДомен" на то, где вы разместили свой скрипт с учетом вложенных папок и прочего.

Вот и все. В файл с базой можно добавить скрипты вызова не только для Gameleads, но и любой другой код. Я добавил баннеры от Фотокэш

Учтите, скрипт наипростейший. Здесь нет никакой статистики, обработки ошибок и прочего. Хотите, добавляйте сами.

Чтобы не делать пост слишком длинным, я не стал здесь описывать того, как сделать скрипт ротации баннеров на JavaScript. Оставлю эту тему для следующего поста.


Иногда пишу что-то умное. Хочешь быть в курсе? Подпишись!

3 комментария:

  1. Создаться лишняя нагрузка на хостинг, я же их коды запихнул в БД и оттуда парсю.

    К тому же в коде меньше строк получается)

    ОтветитьУдалить
  2. По моему, если использовать базы, то нагрузка на хостинг будет выше.
    А по количеству строк, можно сказать что тоже самое будет. Ты убираешь подключение файла, но добавляешь подключение базы.
    Плюс кодов в текстовом файле - легко изменить скрипты на другие.

    ОтветитьУдалить
  3. про нагрузку, мой дурной хостинг считает количество обращений к файлам (любым) и начинает бомбит письмами, и не как не перейти с него - времени нет.

    ОтветитьУдалить