Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

orangeport.by

Техническая часть

Для хранения рекламы пользователей необходима таблица banners (название примерное). Каждый баннер должен обладать следующими атрибутами:

1. id - уникальный идентификатор баннера;

2. banner_type - тип баннера; имеется в виду вид показа: "за просмотры", "за клики", "за период". Соответственно, должен принимать один из трех заранее определенных значений;

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

4. uid - идентификатор пользователя разместившего рекламу;

5. banner - ссылка на изображение баннера (будет храниться у нас на сервера; пользователь через форму загружает на сервер изображение, подставляет ссылку на него в это поле);

6. expire_date - дата окончания показа баннера;

7. expire_count - значение критерия окончания показа баннера; например, если пользователь хочет показывать рекламу на 100 просмотров, это поле принимает значение 100; если за клики - это значение показывает максимально возможное количество кликов, после превышения этого значения баннер не показывается;

8. click_number - текущее значение кликов по баннеру (только суммарное значение);

9. view_number - текущее значение просмотров баннера (только суммарное значение);

10. span - количество занимаемого места в позиции сайта (ниже пояснение).

Например, пользователь заказывает рекламу в каком-либо месте сайта. Он платит за показ баннера на 5 дней. Следовательно, тип баннера (banner_type) принимает значение "за дату" (например, в базе это может быть значение "date"), дата окончания показа (expire_date) = дата с момента оплаты показа баннера + 5 дней.

Для статистики кликов по баннеру и просмотров пользователей необходима отдельная таблица. В этой таблице обязательно должно быть поле banner_id - идентификатор баннера. Далее в ней фиксируется информация о пользователе совершившем клик (просмотр) баннера; каждый просмотр (клик) - отдельная запись! Тут мы фиксируем информацию о времени клика (просмотра), регионе пользователя, IP адрес (возможно) и т.д. Это нам понадобится для статистики в дальнейшем! Параллельно увеличивает счетчики (click_number и view_number) в записи из таблицы баннеров, чтобы можно было быстро просмотреть общее значение показа и кликов. Таким образом, будем иметь суммарные значения для баннера + детальную статистику по параметрам.

Кстати, в дальнейшем можем комбинировать условия окончания показа баннера. Например, 1000 кликов + дата окончания. Если 1000 кликов набирается раньше даты окончания, баннер перестает быть активным. Или если нужное количество кликов не набралось, но настала дата окончания - то же самое, баннер становится неактивным (об этом стоит подумать, наверное, на начальном этапе, это можно не использовать; но в дальнейшем мы легко сможем это подключить не нарушая структуру базы!)

Естественно, имеют место быть ограничения на размер изображения, тип изображения (jpg, gif, png). В зависимости от места расположения баннера будет предлагать обрезать картинку до пропорциональных размеров, чтобы выглядело красиво + уведомлять пользователя о предпочтительных размерах для каждого блока.

Далее, что касается места расположения и показа рекламы. Тут мы имеет 3-хуровневую иерархию: категория (category) - место (place) - позиция (position).

- Категория - это раздел сайта (например, "главная", "новости" и т.п.)

- Место - блок страницы, в котором может находится баннер (например, "верхний блок над меню", "блок под vip объявлениями" и т.п.); связывается с категорией, т.е. у одной категории может быть несколько мест показа баннера;

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

Один баннер может показываться в разных местах сайта. Для определения, где именно может быть показан баннер, нужна отдельная таблица, например, banner_places. Обязательные атрибуты:

1. id - уникальный идентификатор места;

2. banner_id - идентификатор баннера, который будет показываться на этом месте;

3. category_id - идентификатор категории;

4. place_id - идентификатор места показа баннера;

5. position - номер позиции в блоке показа (0 - случайная позиция, 1...N - конкретная позиция);

6. page - страница (для новостей и объявлений) на которой показывать баннер (-1 - ни на одной, 0 - на всех, 1 - первая, 2 - вторая и т.д.).

Возьмем, допустим, блок четырех баннеров под главным меню. В нем существуют 4 позиции, где может находится баннер. Так вот, атрибут "span" из таблицы banners говорит о том, сколько мест будет занимать баннер. Если span = 2, баннер будет занимать сразу 2 позиции в блоке, следовательно, должен иметь размеры (в данном случае длину) в 2 раза больше, чем для простого "одноблочного" баннера. Если значение span больше чем количество возможных позиций в блоке, автоматически приравниваем span к максимально возможному количеству позиций в блоке.

Тут еще можно подумать насчет такой системы расположения рекламы... Может исполнитель предложит что-нибудь более простое и гибкое?

Для того, чтобы пользователь мог выбирать где размещать рекламу, нужны две заранее заполненных таблицы - banner_categories и banner_places (для категорий, и мест с позициями размещения баннеров). Мы их заполним заранее... Например, заполним banner_categories: "главная", "новости", "объявления". Далее в banner_places:

1. id - уникальный идентификатор места;

2. category_id - идентификатор категории ! (чтобы знать, в какой категории существует это место);

3. positions - количество позиций в месте (0 - не определено, 1..N - заранее определенное количество);

...

Заполняем: "место в разделе читайте на портале", "боковая реклама" и т.д. Для раздела "читайте на портале" указываем positions = 0, т.к. количество позиций не определено точно (новости добавляются, позиции для рекламы увеличиваются). И так далее.

Все это внутренняя логика представления рекламы. Для пользователей портала будет отдельная страница, на которой они могут выбрать категорию сайта, где хотят показывать рекламу (или несколько категорий, тогда просто добавляем по записи на каждую из выбранных), далее в зависимости от категории они смогут выбрать блок рекламы (нужен предпросмотр пользователю) и, при необходимости, позицию в блоке (или выбрать "показывать в случайной позиции"); для разделов новостей или объявлений пользователь помимо позиции указывает страницу (страницы) где будет показываться реклама. Далее он заливает изображение рекламы на сайт, выбирает тип рекламы (показ за период, за клики, за просмотры), все рекламы всех позиций и всех типов пользователя обрабатываются и клиенту выдается цена. Он оплачивает размещение рекламы и баннера становятся активными.

У баннеров показываемых за период (3 дня, 5 дней) выше приоритет показа, чем у баннеров за просмотр и за клик. Либо можно сделать так, чтобы такие баннеры всегда показывались на определенных позициях (т.е. места под них всегда заняты до периода истечения). После истечения срока показа такого баннера, за ним показывается другой баннер до следующего срока. Т.е. пользователю будет дано уведомление "место занято до такой-то даты, если хотите - размещайте баннер, но он начнет показываться только с момента прекращения показа текущего". Тут много режимов. Наверное, пока такой.

Остальные типы баннеров показываются случайным образом на место. Т.е. если существуют 2 и более баннера, которые должны быть показаны в одном и том же блоке (и в одной и той же позиции!), выбор между двумя баннерами будет производится случайно. Наверное, целесообразно добавить поле "rating" в таблицу баннеров (banners), которое будет влиять на вероятность показа данной рекламы. Например, чем выше показатель "количество просмотров (кликов) / диапазон времени с начала показа по текущий момент времени", тем чаще эта реклама будет показываться. В дальнейшем сможем корректировать формулу. Для начала, можно делать значение rating одинаковым для всех.

Естественно, все параметры всех баннеров можно будет изменять в админке.

Основные параметры размеров баннеров по категориям:

1. Главная страница:

- 4 баннера под блоком меню - 330x170 px (каждый)

- верхний баннер (над блоком меню) - 1360х220px

- баннер в мировых новостях - 760х120px

- баннер в популярных новостях - 530x120px

- боковой длинный баннер - 410x80px

- боковой короткий баннер - 200x80px (высота плавающая)

- размер баннера-новости в блоке читайте на портале - 400x180px

- размер длинного баннера над блоком читайте на портале - 940x80px

- размер длинного баннера-новости в блоке читайте на портале - 860x180px

2. Новости / Объявления

- длинный баннер в списке новостей / объявлений - 900x200px (900x160px)

- боковой баннер длинный - 330x100px

Практически любой баннер может иметь различную высоту. Главное, чтобы все баннеры внутри одного блока имели одинаковую высоту, а так она может быть любой.

Доп. информация

Таблица user_balance служит для фиксирования транзакций пользователя касательно его расхода и прихода. Поля таблицы:

- user_id - идентификатор пользователя

- description - описание транзакции (например, в нашем случае, "оплата рекламного блока YYY"

- amount_diff - значение транзакции; если приход (для пользователя! , т.е. прибыль пользователя) - значение положительное; если расход (пользователь потратил средства) - значение отрицательное

- datetime - дата и время транзакции

- type - тип значения транзакции; может быть либо "money" - валюта, либо "respects" - респекты.

В эту таблицу заносятся данные о затратах пользователя по оплате рекламы. Если нужна более детальная статистика для счет фактур и акта выполненных работ, заказчик может создать отдельную таблицу рекламных транзакций, дублирующую вышеописанную таблицу с дополнительным числом полей (чтобы разделить денежные операции с рекламой и остальные операции на сайте).

Таким образом, используя данные пользователей (УНП, ФИО, адрес банка юр. лица и прочие - у нас все это есть в базе) + описанные в предыдущем письме таблицы + таблицу расхода/прихода пользователя (баланс физ. / юр. лица) можно составить все необходимые документы, которые затем отдельно поместить в базу.

Входные данные - параметры пользователя (все реквизиты + идентификатор), атрибуты баннеров / рекламы и их предопределенные параметры (размеры, типы баннеров).

Выходные - записи о транзакциях, стоимость размещения рекламы, записи в таблицах о создании баннера, акты.

Пополнение баланса: электронные деньги, visa, mastercard, через сотовые операторы, счет фактура для юр.лиц (только пополнение обработка уже есть)

10 лет назад
orionby
40 летБеларусь
10 лет в сервисе
Был
10 лет назад
  • Похожие заказы
  • $100

    Необходимо нарисовать 2 баннера косметической тематики для праздничного периода. Оформлено все должно быть соответствующе, очень красиво нужно, чтобы как для глянцевого журнала. Один баннер: 600 х 210, второй 900х 450. Подробности после изучения Вашего портфолио.

    Баннеры25 заявок
    Закрыт
    10 лет назад
  • Необходимо сделать баннер с авто Mazda 3. Нужно, чтобы мазда как-то двигалась (вращалась, ездила вперед-назад, приближалась или еще что-то). Рядом пару слов еще добавить, тоже с анимацией. Оплата WM, ЯД.

    Баннеры1 исполнитель
    Завершен
    10 лет назад
  • Нужно сделать флеш-баннер размером 550х300 пикселей. Баннер для спец. предложение на восстановление лакокрасочного покрытия автомобиля. Все предложения указывать здесь, в личку и аську не писать. Обязательно указывать цену и срок. Оплата Яндекс.деньги, WMR. Постоплата.

    Баннеры1 исполнитель
    Завершен
    10 лет назад
  • Требуется разработать и создать графические баннера для рекламных объявлений AdWords, форматы стандартные, тематики я дам, оплата по договоренности в зависимости от количества которое будет Вами создано, прошу показывать примеры Ваших работ и объяснять уровень вашей ...

    Баннеры11 заявок
    Закрыт
    10 лет назад
  • Нужен баннер на флеше 728*90 Рекламирующий компанию http://pdim.com.ua/ предоставлю проспект в пдф в котором тоже есть красивые иллюстрации так же как и на сайте.

    Баннеры1 исполнитель
    Завершен
    10 лет назад
  • $50

    Здравствуйте, необходимо нарисовать баннера. Исходники дисконта и визитки есть Размер 824X240 сайт http://expressushi.ru/ баннеров 5 штук 1. дисконтная карта,сама карта,текст. Дисконтная накопительная карта, Копите с аппетитом. Больше заказов, больше скидка! 2. суши рубли, Забирать заказ самому стало выгодно! За ...

    Баннеры1 исполнитель
    Завершен
    10 лет назад
  • Приветствую. Постоянно требуется делать статичные баннеры различной тематики для мобильных устройств. Не высокой сложности. Основной критерий, чтобы пользователь чётко понимал что его ждёт после клика. Примерный вид - тематичная картинка, большая надпись и кнопка. Работу вижу ...

    Баннеры4 исполнителя
    Завершен
    10 лет назад
  • $50

    В шапку раздела на сайте нужен flash-баннер или Action Script баннер (размер 480*220). На баннере поочередно появляются изображения товара (по 2 шт, размер каждой картинки 200*200) из заданной папки. Клик на картинку товара ведет на страницу ...

    Баннеры1 исполнитель
    Завершен
    10 лет назад