Способы размещения кодов сторонних систем через AdRiver

1. Типы кодов

1.1. Простая ссылка

Представляет собой изображение и ссылку для клика. Пример:

<a href="адрес перехода"><img src="адрес изображения" параметры></a>

1.2. IFrame-код

Общий вид iframe-кода:

<iframe src="http://ad.adriver.ru/cgi-bin/erle.cgi?sid=92926&target=blank&bt=41&pz=0&rnd=188265447" frameborder=0 vspace=0 hspace=0 width=970 height=90 marginwidth=0 marginheight=0 scrolling=no></iframe>

Здесь чётко разделяются адрес фрейма, размеры и другие параметры. Код именно такого вида бывает очень редко. Как правило, в код необходимо включать JavaScript, который генерирует случайное число, тем самым защищая запрос от кеширования браузером.

Пример IFrame-кода с защитой от кеширования:

<script language="javascript" type="text/javascript"><!--
var RndNum4NoCash = Math.round(Math.random() * 1000000000);
var ar_Tail='unknown'; if (document.referrer) ar_Tail = escape(document.referrer);
document.write(
'<iframe src="http://ad.adriver.ru/cgi-bin/erle.cgi?'
+ 'sid=92926&target=top&bt=41&pz=0&rnd=' + RndNum4NoCash + '&tail256=' + ar_Tail
+ '" frameborder=0 vspace=0 hspace=0 width=970 height=90 marginwidth=0'
+ ' marginheight=0 scrolling=no></iframe>');
//--></script>

Обратите внимание, это не JavaScript-овый баннерный код, это именно IFrame-овый баннерный код, вставленный с помощью JavaScript.

IFrame-код имеет фиксированный размер и не влияет на загрузку страницы. Занимает определённое место на странице, независимо от того, что в него загружено. Поэтому, невозможно одному посетителю показывать баннер 600х90, а другому 800х40 на одном и том же IFrame-коде. Кроме того, баннер не может выходить за пределы фрейма. Если баннер размещен в левом верхнем углу сайта, он ничего не может показать в правом нижнем углу.

В AdRiver IFrame-коды — это коды, обозначенные в интерфейсе, как flash width x height, html width x height, img width x height.

Используются для показа баннеров фиксированных размеров, выполненных по различным технологиям (flash, html, gif).

1.3. Объектный код

Объектный код всегда вставляется с помощью JavaScript. С помощью JavaScript проверяется, например, наличие необходимой версии Flash-плагина у посетителя. Если версия Flash-плагина больше или равна заданной, в документ вставляется объект. Также, в адрес объекта с помощью JavaScript добавляется защита от кеширования.
Пример объектного кода с защитой от кеширования:

<!-- AdRiver code START Type: Redirect600x90 Site: primer PZ: 0 BN: 0-->
<script language="javascript" type="text/javascript"><!--
var RndNum4NoCash = Math.round(Math.random() * 1000000000);
var ar_flashver = 6;
var ar_html     = '';
var ar_metrics  = ' width=600  height=90';
var ar_redirect = 'link1=' + escape('http://ad.adriver.ru/cgi-bin/click.cgi?sid=92926&bt=46&pz=0&rnd=' + RndNum4NoCash + '&target=top');
var ar_Tail='unknown'; if (document.referrer) ar_Tail = escape(document.referrer);

ar_flashver = parseInt(ar_flashver);if(isNaN(ar_flashver)) ar_flashver = 0;

function ar_flver(d,n,m,f){
    n = navigator;
    f = 'Shockwave Flash';
    if ((m = n.mimeTypes) && (m = m["application/x-shockwave-flash"]) && m.enabledPlugin && (n=n.plugins) && n[f]) {d = n[f].description;}
    else if(window.ActiveXObject) { try { d=(new ActiveXObject((f + '.' + f).replace(/ /g,''))).GetVariable('$version')}catch(e){}}
    return d ? d.replace(/D+/,'').split(/D+/)[0] : 0;
}

if(ar_flashver <= ar_flver()) {
        var ar_src = 'http://ad.adriver.ru/cgi-bin/erle.cgi?sid=92926&target=top&bt=46&pz=0&rnd=' + RndNum4NoCash + '&tail256=' + ar_Tail;
        ar_html = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' + ar_metrics + '>'
        + '<param name=movie value="' + ar_src + '&' + ar_redirect + '">'
        + '<param name=play value=true>'
        + '<param name=loop value=true>'
        + '<param name=quality value=high>'
        + '<param name=menu value=false>'
        + '<param name=flashvars value="' + ar_redirect + '">'
        + '<param name=allowscriptaccess VALUE=always>'
        + '<embed type="application/x-shockwave-flash" src="' + ar_src + '"' + ar_metrics
        + ' play=true loop=true quality=high menu=false  flashvars="' + ar_redirect + '"></embed>'

        + '</object>';
} else {
        ar_html = '<img src="http://mirror.adriver.ru/expelled.gif"' + ar_metrics + ' alt="You do not have a flash plugin" border=0>';
}
document.write(ar_html);
//--></script><script language="JavaScript" type="text/javascript" src="http://mirror.adriver.ru/ieupdate.js"></script>
<!-- AdRiver code END -->

Обратите внимание на параметр <param name=movie value=”…”> (выделено красным). В данном коде переменная ar_redirect передаёт во flash-ролик адрес перехода, который используется при обработке клика. Внутри flash-ролика этот адрес будет находиться в переменной link1.

Объектный код в ответ на запрос возвращает сам flash-ролик. Поэтому на объектном коде можно показать только тот или иной flash-баннер. В AdRiver объектный код обозначается, как redirect_flash width x height.

Варианты использования объектного кода:

1.4. Синхронный JavaScript-код

Общий вид синхронного JavaScript-кода:

<script language="JavaScript" type="text/javascript" src="http://ad.adriver.ru/cgi-bin/erle.cgi?sid=92926&target=top&bt=16&pz=0&rnd=14372653478"></script>

Пример JavaScript-кода с защитой от кеширования:

<!-- AdRiver code START Type: javascript Site: primer PZ: 0 BN: 0-->
<script language="javascript" type="text/javascript"><!--
var RndNum4NoCash = Math.round(Math.random() * 1000000000);
var ar_Tail='unknown';
if (document.referrer) ar_Tail = escape(document.referrer);
document.write('<sc' + 'ript language="JavaScript" type="text/javascript" src="http://ad.adriver.ru/cgi-bin/erle.cgi?sid=92926&target=top&bt=16&pz=0&rnd=' + RndNum4NoCash + '&tail256=' + ar_Tail + '"></sc' + 'ript>');
//--></script>
<!-- AdRiver code END -->

Недостаток синхронного JavaScript-кода заключается в том, что до тех пор, пока код баннера не будет загружен и выполнен, загрузка страницы дальше продолжаться не будет. Поэтому, если система недоступна, то страница не загрузится.

В AdRiver JavaScript-код используется для показа баннеров Pop-Under и Rich-media, а также для некоторых нестандартных баннеров. Рекомендуем ставить этот код в самый низ документа, чтобы он не мешал грузиться странице даже при плохой связи с AdRiver.

1.5. Асинхронный JavaScript-код

Пример асинхронного JavaScript-кода с защитой от кеширования:

<!--  AdRiver code START. Type:extension Site: example PZ: 0 BN: 0 -->
<script type="text/javascript">
(function(L){if(typeof(ar_cn)=="undefined")ar_cn=1;
var S='setTimeout(function(e){if(!self.CgiHref){document.close();e=parent.document.getElementById("ar_container_"+ar_bnum);e.parentNode.removeChild(e);}},3000);',
    j=' type="text/javascript"',t=0,D=document,n=ar_cn;L+=escape(D.referrer||'unknown')+'&rnd='+Math.round(Math.random()*999999999);
function _(){if(t++<100){var F=D.getElementById('ar_container_'+n);
    if(F){try{var d=F.contentDocument||(window.ActiveXObject&&window.frames['ar_container_'+n].document);
    if(d){d.write('<sc'+'ript'+j+'>var ar_bnum='+n+';'+S+'</sc'+'ript><sc'+'ript'+j+' src="'+L+'"></sc'+'ript>');t=0}
    else setTimeout(_,100);}catch(e){try{F.src="javascript:{document.write('<sc'+'ript"+j+">var ar_bnum="+n+"; document.domain=""
    +D.domain+"";"+S+"</sc'+'ript>');document.write('<sc'+'ript"+j+" src=""+L+""></sc'+'ript>');}";return}catch(E){}}}else setTimeout(_,100);}}
D.write('<div style="visibility:hidden;height:0px;left:-1000px;position:absolute;"><iframe id="ar_container_'+ar_cn
    +'" width=1 height=1 marginwidth=0 marginheight=0 scrolling=no frameborder=0></iframe></div><div id="ad_ph_'+ar_cn
    +'" style="display:none;"></div>');_();ar_cn++;
})('http://ad.adriver.ru/cgi-bin/erle.cgi?sid=94499&target=top&bt=43&pz=0&tail256=');
</script><!--  AdRiver code END  -->

Достоинство асинхронного JavaScript-кода по сравнению с синхронным JavaScript-кодом заключается в том, что загрузка страницы происходит независимо от того, загрузился код баннера или нет.

Разновидности асинхронного JavaScript-кода в AdRiver

Poster Extension AjaxJS
Баннеры загружаются только в том случае, когда посетитель сайта «прокрутил» страницу до места расположения баннера. Если баннерное место сразу попадает в видимую часть страницы, то баннер загрузится только после загрузки всей страницы. Используется для баннеров, располагающихся в невидимой части страницы. Загружается браузером быстрее, чем poster, обычно применяется для баннеров TopLine, расположенных в видимой части страницы. Используется для реализации сложных многопанельных баннеров с анимацией и взаимодействием панелей друг с другом. Основной код для баннеров такого типа вынесен в отдельный файл (библиотеку). Таким образом, при подключении библиотек, код на сайте сокращается всего до одной строки. Баннеры на AjaxJS-коде отображаются только тогда, когда загрузка сайта завершена. Баннеры на коде extension и poster могут отобразиться в процессе загрузки сайта, так как они загружаются параллельно (во фрейме).

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

  • Сгенерируйте код extension
  • В коде баннера измените параметр bt=43 на bt=49
  • Пример: часть кода extension без изменений:

http://ad.adriver.ru/cgi-bin/erle.cgi?sid=92926&target=blank&bt=43&pz=0&tail256= + ar_Tail

Часть кода extension (изменения выделены красным):

http://ad.adriver.ru/cgi-bin/erle.cgi?sid=92926&target=blank&bt=49&pz=0&tail256= + ar_Tail

Вы можете получить код extension, который будет загружать баннер только тогда, когда посетитель сайта «прокрутил» страницу до места расположения баннера. Для этого выполните следующие действия.

  • Сгенерируйте код poster
  • В коде баннера измените параметр bt=49 на bt=43
  • Пример: часть кода poster без изменений:

http://ad.adriver.ru/cgi-bin/erle.cgi?sid=92926&target=blank&bt=49&pz=0&tail256= + ar_Tail

Часть кода poster (изменения выделены красным):

http://ad.adriver.ru/cgi-bin/erle.cgi?sid=92926&target=blank&bt=43&pz=0&tail256= + ar_Tail

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

2. Размещение сторонних кодов через AdRiver

2.1. IFrame-код

Код AdRiver: iframe
Код сторонней системы: IFrame-код Способы размещения:
  • загрузка стороннего кода через HTML-баннер (клики при этом считаться не будут);
  • загрузка стороннего кода через ссылки на креативы.
Объектный код
Синхронный JavaScript Не рекомендуется, так как размер баннера ограничен пределами IFrame.
Асинхронный JavaScript

2.2. Объектный код

Код AdRiver: объектный код
Код сторонней системы: IFrame-код Можно разместить только ссылку на flash-баннер.
Способ размещения: загрузка стороннего кода через Location.
Объектный код
Синхронный JavaScript
Асинхронный JavaScript

2.3. Синхронный JavaScript

Код AdRiver: синхронный JavaScript
Код сторонней системы: IFrame-код Разместить можно любой код. Однако, особенность синхронного JavaScript-кода в том,
что загрузка страницы не происходит, пока код баннера не будет загружен и выполнен.
Поэтому рекомендуем ставить этот код в самый низ документа,
чтобы он не мешал грузиться странице даже при плохой связи с AdRiver
и использовать только для размещения баннеров, не имеющих определённого места на странице.
Способы размещения:
  • скрипты для баннеров;
  • загрузка стороннего кода через JavaScript-баннер.
Объектный код
Синхронный JavaScript
Асинхронный JavaScript

2.4. Асинхронный JavaScript

Код AdRiver: асинхронный JavaScript
Код сторонней системы: IFrame-код Способ размещения: средствами вашего собственного скрипта.
Существует также возможность написать письмо с вашим вопросом
в службу технической поддержки по адресу support@adriver.ru.
Объектный код
Синхронный JavaScript
Асинхронный JavaScript