Сегодня 25 марта, вторник ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7280
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
Заметки вебмастера самоучки
Заметки вебмастера самоучки
Голосов: 1
Адрес блога: http://neverlex.com
Добавлен: 2010-11-08 20:17:13 блограйдером lexnevermind
 

Пишем простейший ротатор рекламы для своего сайта

2011-08-12 09:44:55 (читать в оригинале)

Некоторые наверно заметили, что я решил прикрыть свой эксперимент по монетизации блога и страничка рекламы нынче висит просто для проформы.

Сейчас вместо последних постов из блогов рекламодателей висят мои собственные объявления, рефки и ссылки на свои проекты. Место теперь только одно и оно не продаётся.

Для этого пришлось немного переписать скрипт для вывода объявлений. Точнее сделать его намного проще.

Итоги и причины закрытия эксперимента по монетизации

Считаю эксперимент довольно удачным. Было набрано два десятка рекламодателей и получено 100 долларов прибыли, что уже по сути приятно. Немногие конечно заинтересовались необычным видом рекламы, но такие были. Что тоже очень приятно.

А прикрываю я прямую монетизацию по таким причинам:

  • Я пишу только тогда, когда мне этого хочется. Поэтому наблюдаются серьёзные перепады посещаемости. Рекламодателям это не понятно и неприятно.
  • Свои проекты рекламировать выгодней. Один переход залётного сеошника по ссылке на список бирж для покупки ссылок может принести неплохой пассивный доход сразу в нескольких сервисах.
  • Можно давать объявления об обмене электронной валюты или поиске исполнителей. А также другой мелочи.

Далее займёмся технической стороной вопроса.

Пишем ротатор объявлений на PHP

Наш скрипт ультрапрост. Он достаёт из БД рандомную ссылку, втыкает её в шаблон и выводит в нужном месте сайта. И всё.

Для начала создаём таблицу promo в базе данных MySQL. В ней мы будем хранить наши объявления. Полей по минимуму: идентификатор, статус (на всякий случай) и элементы ссылки.

CREATE TABLE IF NOT EXISTS `promo` (   `id_promo` smallint(6) NOT NULL AUTO_INCREMENT,   `url` varchar(255) NOT NULL,   `title` varchar(255) NOT NULL,   `anchor` varchar(255) NOT NULL,   `status` tinyint(1) NOT NULL,   PRIMARY KEY (`id_promo`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Затем загружаем на хост библиотеку MSQL.php. Это драйвер БД – прослойка между голыми SQL запросами и разработчиком. Используйте любой ORM или не используйте вообще. Дело ваше.

Также создаём 3 файла: C_Promo.php, M_Promo.php, Promo.tpl.php. Модель (библиотека), контроллер и представление (шаблон).

В C_Promo.php пишем код:

<?php// Контроллер вывода объявленияinclude_once dirname(__FILE__) . '/M_Promo.php';$mPromo = M_Promo::Instance();$links = $mPromo->GetRandomPromoLinks(1);foreach ($links as $link){   ob_start();   include dirname(__FILE__) . '/Promo.tpl.php';   $ads[] = ob_get_clean();}

В M_Promo.php пишем класс M_Promo и вставляем единственную функцию:

// Выбор рандомных объявленийpublic function GetRandomPromoLinks($quantity){   $t = "SELECT * FROM promo WHERE status = 1 ORDER BY rand() LIMIT %d";   $query = sprintf($t, $quantity);   $result = $this->msql->Select($query);   return $result;}

Знаю, что ORDER BY rand() не оптимальное решение для выбора случайной строки, но таблица у нас будет небольшая. Поэтому разницы в скорости мы не почувствуем. Разве что на реально нагруженном сайте.

Теперь осталось только оформить шаблон вывода объявления Promo.tpl.php. Например так:

<div class="ads"><? if ($link['url']): ?><a href="<?= $link['url'] ?>" title="<?= $link['title'] ?>"><?= $link['anchor'] ?></a><? else: ?><?= $link['anchor'] ?><? endif; ?></div><span class="invite">Объявление. Купить нельзя.</span>

Если у объявления нет урла, то будет выводиться просто текстовая строка. Иначе полноценная ссылка с тайтлом и анкором.

Теперь у нас есть микродвижок для вывода объявлений из БД. Как они туда будут попадать – дело ваше. Либо пользуйтесь ультрасовременной и удобной админкой PhpMyAdmin, либо пишите свою, либо допишите механизм публикации объявлений за деньги (если хочется не только свои объявления крутить).

Публикация оплачиваемой рекламы на сайте конечно усложняет работу. Но и в этом случае можно сделать всё максимально просто.

Например, можно даже не заморачиваться с кликами и показами. Пусть рекламодатель оплачивает размещение за время размещения объявления.

Для этого нужно или добавить в таблицу пару полей (и проверку по дате при выборке объявлений из БД) или просто удалять раз в месяц все объявления (пару строк кода).

Вставка объявления на сайт

Осталось только вставить код (пути к файлам корректируйте исходя из своей структуры). Его не обязательно вставлять непосредственно перед выводом. Можно просто вставить в начале файла.

include_once dirname(__FILE__) . '/../../promo/C_Promo.php';

На место чудесного появления объявлений вставьте переменную $ads[0].

Как вы заметили, объявлений на странице может быть несколько. Для их вывода используйте номера элементов массива $ads[0], $ads[1], $ads[2] и т.д.

Если не заморачиваться с ООП и MVC, то весь движочек можно поместить в один небольшой файл. Получится примерно так:

<?phpinclude_once dirname(__FILE__) . '/MSQL.php';$msql = MSQL::Instance();// Выбор рандомных объявленийfunction GetRandomPromoLinks($quantity){   $t = "SELECT * FROM promo WHERE status = 1 ORDER BY rand() LIMIT %d";   $query = sprintf($t, $quantity);   $result = $msql->Select($query);   return $result;}$links = GetRandomPromoLinks(1);foreach ($links as $link){   ob_start();   include dirname(__FILE__) . '/Promo.tpl.php';   $ads[] = ob_get_clean();}

Ещё упростить скрипт можно, просто убрав MSQL драйвер, и написав обработку запроса в скрипте. Шаблон также можно внести в файл. Нет предела упрощению в общем.

Подключаться уменьшенный вариант будет точно также.

P.S.

Точно также можно крутить не только текстовые ссылки, но и баннера.

P.P.S.

Если общественности будет интересно, то выложу также код скрипта для вывода ссылок на последние посты из RSS лент.

Новости

Скрипт корзины обрёл сегодня механизм псевдорегистрации (запоминания покупателей), систему накопительных скидок и экспорт заказов в 1С. Можете посмотреть прямо сейчас варианты корзины jCart и сразу же оформить заказ.

С уважением, Алексей Опанасенко aka Never Lex.
Автор блога Заметки вебмастера самоучки




 


Самый-самый блог
Блогер Рыбалка
Рыбалка
по среднему баллу (5.00) в категории «Спорт»
Изменения рейтинга
Категория «Истории»
Взлеты Топ 5
Падения Топ 5


Загрузка...Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.