Сессионный Poster
1. Карточка баннера
Если во время сессии пользователь перезагружает страницу, то код вызова не запрашивает баннер в AdRiver, а берёт параметры из storage.swf и загружает баннер напрямую с зеркала. После того, как время сессии истекло, в AdRiver отправляется событие 0, по которому считается показ баннера. Если в течение сессии пользователь закрыл страницу или ушёл с неё, то событие 0 не отправляется и показ баннера не засчитывается.
При перезагрузке страницы после завершения сессии, из AdRiver запрашивается новый баннер и его показ засчитывается в новой сессии.
2. Подготовка баннера
Подготовьте Flash-ролик (.swf) и заглушку .gif или .jpeg, чтобы демонстрировать её тем посетителям сайта, у которых нет необходимой версии flash-плагина.
Подготовьте кликовую область Flash-ролика согласно инструкции.
Если вы хотите подгружать в Flash-ролик дополнительные части, загруженные в баннер, то необходимо дописать к имени подгружаемого компонента переменную _root.ar_comppath.
Например, для .swf файлов:
_root.ar_comppath + 'flash_name.swf'
Для упрощения подготовки стандартных баннеров согласно техническим требованиям AdRiver вы можете воспользоваться специальным приложением AdRiver Creative Toolkit.
Размер загружаемых файлов должен соответствовать спецификации.
3. Подготовка скрипта
Распакуйте пример. Откройте текстовым редактором файл script.js. Внесите изменения только в верхнюю часть скрипта, отмеченную как Editable block:
var ar_img_name = 'tinkoff_gif.gif';
var ar_img_location = '';
var ar_swf_name = 'Tinkoff.swf';
var ar_swf_location = '';
var ar_flashver = 5;
var ar_width = 240;
var ar_height = 400;
var ar_wmode = 'opaque';
var ar_flash_pixel = '';
var ar_gif_pixel = '';
var ar_quality = 'best';
var ar_expiration = 60;
Переменные:
Сохраните script.js. Баннер готов к загрузке.
4. Загрузка баннера и размещение кода баннера на сайте
4.1. Загрузка баннера
- Добавьте в сценарий баннер special->> poster->> generic_poster).
- В поле Линк баннера впишите ссылку на клик по баннеру.
- Кликните по ссылке Загрузить баннер. Загрузите файлы для баннера.
- В рекламную кампанию передайте слайс типа poster.
4.2. Размещение кода баннера на сайте
- Расположите файл storage.swf (из архива) на сайте и укажите путь до него в коде вызова баннера.
- Откройте файл code.txt (из архива) в текстовом редакторе. Внесите изменения в часть кода:
<script type="text/javascript" language=javascript>
function sessionBanner(targetParamStr, rleurl, sec) {
if (typeof(ar_cn)=="undefined") ar_cn=1;
document.write('<div id="ad_ph_'+ar_cn+'_" style="visibility:hidden;height:0px;"><iframe id="ar_container_'+ar_cn+'" width=1 height=1 marginwidth=0 marginheight=0 scrolling=no frameborder=0></iframe></div><div style="display:none;margin-bottom:10px" id="ad_ph_'+ar_cn+'"></div>');
function addEvent(e,t,f){
if (e.addEventListener) e.addEventListener(t, f, false);
else if (e.attachEvent) e.attachEvent('on'+t, f)
}
function removeEvent(e,t,f){
if (e.removeEventListener) e.removeEventListener(t, f, false);
else if (e.detachEvent) e.detachEvent('on'+t, f)
}
Storage = {
swfUrl: "путь до файла storage.swf на вашем сайте",
init: function(onready,onerror){
try {
var movie, swfId = "StorageMovie";
while(document.getElementById(swfId)) swfId += '_';
if (window.ActiveXObject) {
var objectHTML = '<object id="'+swfId+'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="0" height="0">'
+ '<param value="'+this.swfUrl+'" name="movie">'
+ '<param value="true" name="play">'
+ '<param value="sameDomain" name="allowScriptAccess"></object>'
}
else {
var objectHTML = '<embed src="' + this.swfUrl + '" id="' + swfId + '"'
+ ' width="0" height="0" swLiveConnect="true" allowScriptAccess="sameDomain" type="application/x-shockwave-flash"></embed>'
}
var div = document.createElement("div");
div.id = swfId + "Container";
div.style.position = 'absolute';
div.style.width = div.style.height = '0px';
div.style.top = div.style.left = '-1000px';
Storage = {
put: function(key, value){movie.put(key, value)},
get: function(key){return movie.get(key)},
remove: function(key){movie.remove(key)},
getKeys: function(){return movie.getkeys()},
clear: function(){movie.clear()},
ready: function(s){
movie = document.getElementById(swfId);
if(onready&&s)onready();
}
}
document.body.appendChild(div);
div.innerHTML = objectHTML;
}
catch(e){}
}
}
var BannerLoader = function(num, onScroll){
var ar_keyword = rleurl;
var seconds = sec; //время сессии
var litl_sess = 10; //короткая сесия
var send_litl_sess = false;
var max_event_time = 1800; //максимальное время отсылки эвента
var RndNum4NoCash = Math.round(Math.random() * 1000000000);
var ar_tail = escape(document.referrer || 'unknown');
var link = "http://ad.adriver.ru/cgi-bin/erle.cgi?" + targetParamStr + '&tail256=' + ar_tail + '&rnd=' + RndNum4NoCash;
var t = 0, top = 0, cm = document.compatMode == "CSS1Compat";
var n = ["CgiHref","ar_bt","ar_siteid","Mirror","bid","sliceid","ar_adid","ar_pz","ar_sz","ar_nid","ar_bn","Path","Comp0","Width",
"Height","date","Uid","Target","Alt","CompPath","RndNum4NoCash","ar_ntype","ar_tns","ar_pix","ar_expiration","ScriptSrc"];
function pix(s){
if (!s) return;
if(document.createElement&&document.body){
var i=document.createElement('img');
i.style.display='none';i.style.width=i.style.height='0px';
i.src=s;
document.body.insertBefore(i,document.body.firstChild);
}
else{(new Image()).src=s}
}
function G(n){return Storage.get(n)}
function S(n,s){Storage.put(n,s)}
function GetFrame(){
var doc = document.getElementById('ar_container_'+num);
if (doc) doc = window.ActiveXObject ? window.frames['ar_container_'+num].window : doc.contentWindow;
return doc
}
function tryGetReply(){
if(t++<100){
var win = GetFrame();
if (win&&(typeof win.ar_pix!="undefined")) {
t = 0;
if (win["ar_expiration"]<litl_sess&&!send_litl_sess) pix(win["ar_pix"]);
S('ar_session'+num,1);
for(var i=0;i<n.length;i++)S(n[i],win[n[i]]);
S("ScriptSrc",win.Mirror + win.Path + win.Comp0 + "?" + win.RndNum4NoCash);
var d=new Date();d.setSeconds(d.getSeconds()+(parseInt(win["ar_expiration"])||0));
S("ar_cookie_exp",''+d);
var d2=new Date();d2.setSeconds(d.getSeconds()+max_event_time);
S('ar_event_exp',''+d2);
}
else setTimeout(arguments.callee, 300);
}
}
function repairFromReply(){
if(t++<100){
var doc = GetFrame().document;
if (!doc) setTimeout(arguments.callee, 100);
else {
t = 0;
var repl = ' ';
for(var i=0;i<n.length;i++) repl += n[i]+'="'+G(n[i])+'"; ';
var s = 'var ar_bnum='+num+'; var ar_keyword="'+ar_keyword+'";'+repl
+'document.write("<sc"+"ript language="JavaScript" type="text/javascript" src="+ScriptSrc+"></sc"+"ript>");';
doc.write('<sc'+'ript language="JavaScript" type="text/javascript">'+s+'</sc'+'ript>');
}
}
}
function getDoc(){
if(t++<100){
var doc = GetFrame().document;
if (!doc) setTimeout(arguments.callee, 100);
else {
doc.write('<sc'+'ript language="JavaScript" type="text/javascript">var ar_bnum='+num+'; var ar_keyword="'+ar_keyword+'";</sc'+'ript>');
doc.write('<sc'+'ript language="JavaScript" type="text/javascript" src="'+link+'"></sc'+'ript>');
t = 0;
tryGetReply();
}
}
}
function scroll(){
var d = document;
var ch = self.innerHeight || cm && d.documentElement.clientHeight || d.body.clientHeight;
var st = self.pageYOffset || cm && d.documentElement.scrollTop || d.body.scrollTop;
if (top >= st && st + ch >= top) {
removeEvent(window, 'scroll', scroll);
send_q();
}
}
function send_q(){
var repl = G('ar_session'+num);
var exp = G('ar_cookie_exp');
var event = G('ar_event_exp');
if (repl) {
if(exp&&((new Date(exp))>(new Date()))) {
repairFromReply();
return;
}
else {
var src='http://ad.adriver.ru/cgi-bin/event.cgi?bid=' + G('bid')
+ '&ntype=' + G('ar_ntype')
+ '&sliceid=' + G('sliceid')
+ '&sid=' + G('ar_siteid')
+ '&nid=' + G('ar_nid')
+ '&ad=' + G('ar_adid')
+ '&type=0&rnd=' + G('RndNum4NoCash');
seconds = parseInt(G('ar_expiration'))||seconds;
if (seconds>=litl_sess||send_litl_sess) {
if (event&&((new Date(event))>(new Date()))) pix(src); // дёргаем эвент
pix(G('ar_pix')); // дёргаем зеропиксель
}
}
}
getDoc();
}
Storage.init(function(){
var obj = document.getElementById('ad_ph_'+num+'_');
if (obj){
if(onScroll){
while(obj.offsetParent){
top += obj.offsetTop;
obj = obj.offsetParent;
}
addEvent(window, 'scroll', scroll);
scroll();
}
else send_q();
}
});
}
addEvent(window, 'load', function(){
new BannerLoader(ar_cn, true);
});
}
sessionBanner("sid=94499&bt=49&pz=0", "", 120);
</script>
Переменные:
Разместите модифицированный код на странице сайта.