Покликовый ротатор баннеров с группами
Спонсор статьи и скрипта Игровой портал
Постановка задачи: имеем сайт, на котором хотим менять рекламный баннер при каждом клике (переходе по страницам).
Причем при первом входе на сайт* выборка производится случайно, а потом идет по кольцу.
* - при первом входе на сайт - имеется ввиду первый за текущую сессию браузера.
Итак мы имеем Баннер1 - Баннер2 - Баннер3 - Баннер4 - Баннер5 , при первом приходе пользователя скрипт случайно выбрал показать Баннер3, значит при переходе на следующую страницу пользователю показывается Б4, потом Б5, Б1, Б2, Б3,...
Момент второй. Баннеры так или иначе приедаются и перестают привлекать внимание.
Разобьем Баннер1 - Баннер2 - Баннер3 - Баннер4 - Баннер5 на группы, т.е. группа Баннер1 будет содержать в себе несколько баннеров (Б11, Б12, Б13), то же и остальные Б2 (Б21, Б22...), Б3, Б4, Б5. Таким образом при проходе по кольцу будем еще раз случайно выбирать баннер, но уже внутри группы.
Собственно скрипт:
PHP - Код | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| <?php session_start();
echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"><html><head><title>ротатор2</title></head><body>"; $i = 0; $j = 0;
//Первая группа $i++; $m[$i][] = "банер номер".$j++; $m[$i][] = "банер номер".$j++;
//Следующая группа и .д. $i++; $m[$i][] = "банер номер ".$j++; $m[$i][] = "банер номер ".$j++;
//Используется при отладке, если нужно посмотреть массив /* echo "<pre>"; print_r($m); echo "</pre>"; */
//Подсчет групп и выбор случайного элемента, если сессии нет, //если сессия есть, то идём по кольцу $km = count($m); if (!isset($_SESSION['mojbaner1'])) { $tmp = 1; mt_srand(time()+(double)microtime()*1000000); $_SESSION['mojbaner1'] = mt_rand(1,$km); } elseif (($_SESSION['mojbaner1']+1) > $km) { $tmp = $_SESSION['mojbaner1']; $_SESSION['mojbaner1'] = 1; } else { $tmp = $_SESSION['mojbaner1']; $_SESSION['mojbaner1']++; }
//Выбор случайного банера в группе $kmi = count($m[$tmp]) - 1; mt_srand(time()+(double)microtime()*1000000); $x = mt_rand(0,$kmi);
//Вывод банера echo $m[$tmp][$x];
echo "</body></html>"; ?> |
Настройка:
1. Каждая группа начинается со строки $i++; - это обязательно
2. Адрес к баннеру прописываем в переменную $m[$i][]
Скрипт может иметь разумное неограниченное количество групп в кольце и баннеров в группе.
Удачи и высокого CTR!
Дата публикации: 14.10.2008 Прочитано: 16358 раз |