Как устроена баннерная сеть

  • Автор темы webdeveloper
  • Дата начала

webdeveloper

Guest
Как устроена баннерная сеть

Коллеги,

Речь идет о том как сопоставить показываемый баннер и сылку, которая указывает на сайт, на который должен показывать баннер. Проблема сотоит в том, что нужно увязать случайно показываемый баннер с той ссылкой в которую он должен встраиватся. При этом клиенту, просто выдается HTML код который просто встраивается в HТML код страницы.

Начал с изучения существующих ситем и столкнулся с двумя подходами.

Первый состоит в размещении на странице IFRAME у которого в атрибуте SRC прописан адресс саого сервера баннерной сети. Тогда можно легко сгенерировать строку типа
PHP:
<a href="getRedirect.php?id=[userId]"><img src="getImage.php?id=[userId]></a>
А клиенту выдаем такой код:
PHP:
<!-- Banner Network -->
<script language="JavaScript" type="text/javascript">
<!--
var nocashe = Date.parse(new Date());
var html = "<iframe src=\"http://bannernetwork.com/?nocashe="+nocashe+"\" width=\"468\" height=\"60\" marginwidth=\"0\" marginheight=\"0\" hspace=\"0\" vspace=\"0\" scrolling=\"no\" frameborder=\"0\" noresize=\"\"></iframe>";
document.write(html);
//-->
</script>
<!-- Banner Network -->
Так работает RLE.

Недосток данного подхода сотоит в том, что автоматически отваливается Netscape < 6.0

Второй вариат сотоит в испольлзовании вот такого кода

PHP:
<!-- BannerBank advertising begin: ИнтерРеклама. -->
<script>
// <!--
var userid = 12598492;
var page = 1;
var rndnum = Math.round(Math.random() * 10000);
document.write('<center><A HREF="http://ad.ir.ru/bb.cgi?cmd=go&pubid=' + userid + '&pg=' + page + '&vbn=10001&num=1&w=468&h=60&nocache=' + rndnum + '" target="_top">');
document.write('<IMG SRC="http://ad.ir.ru/bb.cgi?cmd=ad&pubid=' + userid + '&pg=' + page + '&vbn=10001&num=1&w=468&h=60&nocache=' + rndnum + '" width=468 height=60 Alt="InterReklama" border=0></A><BR></center>');
document.write(' <center><FONT SIZE=1><A HREF="http://go.ir.ru/enter.phtml" target = "_blank" >InterReklama</A></FONT></center>');
// -->
</script>
<!-- BannerBank advertising end: ИнтерРеклама. -->
Когда пользователь кликает по баннеру он попадает на сайт BannerBank и по идее от туда он и должен перенаправлятся на сайт баннера. Вот здесь то и появляется вопрос.

А как они узнают с какого именно банера он туда попал?

Кто нибудь с этим сталкивался? Если какие соображения?
 

Barlone

Guest
Можно попробовать при показе банера (а он показувается cкриптом) установить cookie, а при клике этот cookie анализировать. (Я не знаю, как работает ИнтерРеклама)
 

Vladimirovich

Guest
Re: Как устроена баннерная сеть

Автор оригинала: webdeveloper

А как они узнают с какого именно банера он туда попал?
параметр nocache одинаковый и при показе и при клике - по нему можно определить...
также остальные - пага, номер баннера на паге, vbn какой-то - все одинаковое. т.е. даже если будет передаваться только ид вебмастера и номер баннера (ид паги или что напридумано) то при клике можно с высокой точностью послать на урл от последнего показа. ошибка будет только когда и открою второе окно с той же пагой и кликну по баннеру в первом окне - этим можно пренебречь.
 

Barlone

Guest
Re: Re: Как устроена баннерная сеть

Автор оригинала: Vladimirovich

также остальные - пага, номер баннера на паге, vbn какой-то - все одинаковое. т.е. даже если будет передаваться только ид вебмастера и номер баннера (ид паги или что напридумано) то при клике можно с высокой точностью послать на урл от последнего показа. ошибка будет только когда и открою второе окно с той же пагой и кликну по баннеру в первом окне - этим можно пренебречь.
А если несколько человек зашли через одни прокси ?
 

Vladimirovich

Guest
Re: Re: Re: Как устроена баннерная сеть

Автор оригинала: Barlone


А если несколько человек зашли через одни прокси ?
1. у них будет разный nocache
2. то что они с анонимного прокси вместе зашли на одну страничку и кликнули по баннерам - достаточно редкая ситуация не считаешь? Опять же можно им отдавать одинаковый баннер при показе
 

Eddy

Guest
Есть еще один вариант:
<script language="JavaScript" src="http://www.mybannersystem.ru/banner/ads.php?size=120"></script>

А скрипт в результате выводит что-то вроде:
document.write('<a href="http://www.mybannersystem.ru/banner/click.php?banid=123"><img src="http://www.mybannersystem.ru/banner/image.php?banid=123"></a>')
 

webdeveloper

Guest
Автор оригинала: Eddy
Есть еще один вариант:
&lt;script language=&quot;JavaScript&quot; src=&quot;http://www.mybannersystem.ru/banner/ads.php?size=120&quot;&gt;&lt;/script&gt;

А скрипт в результате выводит что-то вроде:
document.write('&lt;a href=&quot;http://www.mybannersystem.ru/banner/click.php?banid=123&quot;&gt;&lt;img src=&quot;http://www.mybannersystem.ru/banner/image.php?banid=123&quot;&gt;&lt;/a&gt;')
А вот это идея! Так пожалуй сработает.

Спасибо за подсказку!
 

Barlone

Guest
Автор оригинала: Eddy
Есть еще один вариант:
&lt;script language=&quot;JavaScript&quot; src=&quot;http://www.mybannersystem.ru/banner/ads.php?size=120&quot;&gt;&lt;/script&gt;

А скрипт в результате выводит что-то вроде:
document.write('&lt;a href=&quot;http://www.mybannersystem.ru/banner/click.php?banid=123&quot;&gt;&lt;img src=&quot;http://www.mybannersystem.ru/banner/image.php?banid=123&quot;&gt;&lt;/a&gt;')
При таком варианте, если конечно банеры ставятся не на свой собственный сайт, есть один нехороший момент - стоит вашему сайту один раз дольше чем на 5 минут уйти в даун - и ваши банеры повыкидывают. Кому же понравится, что из-за вас их страницы не показываются ?
 

Scarab

Guest
Re: Как устроена баннерная сеть

Автор оригинала: webdeveloper
Коллеги,

Речь идет о том как сопоставить показываемый баннер и сылку, которая указывает на сайт, на который должен показывать баннер. Проблема сотоит в том, что нужно увязать случайно показываемый баннер с той ссылкой в которую он должен встраиватся. При этом клиенту, просто выдается HTML код который просто встраивается в HТML код страницы.

Начал с изучения существующих ситем и столкнулся с двумя подходами.

Первый состоит в размещении на странице IFRAME у которого в атрибуте SRC прописан адресс саого сервера баннерной сети. Тогда можно легко сгенерировать строку типа
PHP:
&lt;a href=&quot;getRedirect.php?id=[userId]&quot;&gt;&lt;img src=&quot;getImage.php?id=[userId]&gt;&lt;/a&gt;
А клиенту выдаем такой код:
PHP:
&lt;!-- Banner Network --&gt;
&lt;script language=&quot;JavaScript&quot; type=&quot;text/javascript&quot;&gt;
&lt;!--
var nocashe = Date.parse(new Date());
var html = &quot;&lt;iframe src=\&quot;http://bannernetwork.com/?nocashe=&quot;+nocashe+&quot;\&quot; width=\&quot;468\&quot; height=\&quot;60\&quot; marginwidth=\&quot;0\&quot; marginheight=\&quot;0\&quot; hspace=\&quot;0\&quot; vspace=\&quot;0\&quot; scrolling=\&quot;no\&quot; frameborder=\&quot;0\&quot; noresize=\&quot;\&quot;&gt;&lt;/iframe&gt;&quot;;
document.write(html);
//--&gt;
&lt;/script&gt;
&lt;!-- Banner Network --&gt;
Так работает RLE.

Недосток данного подхода сотоит в том, что автоматически отваливается Netscape &lt; 6.0

Второй вариат сотоит в испольлзовании вот такого кода

PHP:
&lt;!-- BannerBank advertising begin: ИнтерРеклама. --&gt;
&lt;script&gt;
// &lt;!--
var userid = 12598492;
var page = 1;
var rndnum = Math.round(Math.random() * 10000);
document.write('&lt;center&gt;&lt;A HREF=&quot;http://ad.ir.ru/bb.cgi?cmd=go&amp;pubid=' + userid + '&amp;pg=' + page + '&amp;vbn=10001&amp;num=1&amp;w=468&amp;h=60&amp;nocache=' + rndnum + '&quot; target=&quot;_top&quot;&gt;');
document.write('&lt;IMG SRC=&quot;http://ad.ir.ru/bb.cgi?cmd=ad&amp;pubid=' + userid + '&amp;pg=' + page + '&amp;vbn=10001&amp;num=1&amp;w=468&amp;h=60&amp;nocache=' + rndnum + '&quot; width=468 height=60 Alt=&quot;InterReklama&quot; border=0&gt;&lt;/A&gt;&lt;BR&gt;&lt;/center&gt;');
document.write(' &lt;center&gt;&lt;FONT SIZE=1&gt;&lt;A HREF=&quot;http://go.ir.ru/enter.phtml&quot; target = &quot;_blank&quot; &gt;InterReklama&lt;/A&gt;&lt;/FONT&gt;&lt;/center&gt;');
// --&gt;
&lt;/script&gt;
&lt;!-- BannerBank advertising end: ИнтерРеклама. --&gt;
Когда пользователь кликает по баннеру он попадает на сайт BannerBank и по идее от туда он и должен перенаправлятся на сайт баннера. Вот здесь то и появляется вопрос.

А как они узнают с какого именно банера он туда попал?

Кто нибудь с этим сталкивался? Если какие соображения?
Просто, как 5 центов.

В javascript-коде, который дается клиенту для вставки на страницу, ставится генератор рандомных чисел с достаточно большим диапазоном.
Допустим, ставится что-нибудь вроде:
PHP:
<a href="www.mybannersystem.com/getlink.php?id="+randomnumber><img src="www.mybannersystem.com/getimage.php?id="+randomnumber></a>
Понятно, что randomnumber одинаковый в обоих случаях.
Когда делается обращение к getimage - а оно всегда будет первым, потому что баннер сначала надо показать, а потом уже нажимать - то мы запоминаем где-нибудь - в shared memory, в mysql, в dbm информацию, что рандомнумберу 12345 мы отдали баннер Васи Пупкина. И в дальнейшем, если нашелся чайник, который на этот баннер нажал, то мы проверяем: а-а, нажали на ссылку с рандомнумбером 12345? То есть - вызов geturl.php?id=12345? А что у нас там за баннер? Смотрим в базу - а, баннер Васи Пупкина? И куда посылать в этом разе? На www.vasiliypupkin.com? Великолепно - 304!

И все. И никаких заморочек не надо.
 

Garant

Guest
Re: Как устроена баннерная сеть

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

Если проблема у вас еще стоит - напишите, я пришлю исходник идеи движка.

Там где-то 2 экрана .. не больше
 
Сверху