2011-11-28 31 views
12

Google DFP'deki yeni özelliklerden bazılarını kullanıyorum ve tek başına bir eklenti alamıyorum. Sayfadaki tüm reklamları yenileyebilirim ancak tek başına kendini yenileyemiyorum.google dfp pubads(). Refresh() beklendiği gibi çalışmıyor

Şans olmadan yenilemek için bir eklenti almak için aşağıdaki kodu çalışıyor ettik:

var slot1 = googletag.display('/6900315/myad2', [300, 250], 'div-2'); 
     googletag.pubads().refresh([slot1]); 

Herhangi yardım mutluluk duyacağız!

Tam kaynak:

<script type='text/javascript'> 
var googletag = googletag || {}; 
googletag.cmd = googletag.cmd || []; 
(function() { 
    var gads = document.createElement('script'); 
    gads.async = true; 
    gads.type = 'text/javascript'; 
    var useSSL = 'https:' == document.location.protocol; 
    gads.src = (useSSL ? 'https:' : 'http:') + 
'//www.googletagservices.com/tag/js/gpt.js'; 
    var node = document.getElementsByTagName('script')[0]; 
    node.parentNode.insertBefore(gads, node); 
})(); 
</script> 


script type='text/javascript'> 
googletag.cmd.push(function() { 
    googletag.pubads().enableAsyncRendering(); 
    googletag.defineSlot("/69003153/myad1", [728, 90], "div-1").addService   (googletag.pubads()); 
    googletag.defineSlot("/69003153/myad2", [300, 250], "div-2").addService (googletag.pubads()); 
    googletag.enableServices(); 
}); 
</script> 
<script type='text/javascript'> 
function changeAd() { 
    googletag.cmd.push(function() { 
     var slot1 = googletag.display('/6900315/myad2', [300, 250], 'div-2'); 
     googletag.pubads().refresh([slot1]); 
     //googletag.pubads().refresh(); 


    }); 
} 
</script> 
</head> 
<body> 
    <form id="form1" runat="server"> 


    <div id='div-1' style='width:728px; height:90px;'> 
<script type='text/javascript'> 
    googletag.cmd.push(function() { googletag.display('div-1'); }); 
</script> 
</div> 


<!-- BoxAdd_Details --> 
<div id='div-2' style='width:300px; height:250px;'> 
    <script type='text/javascript'> 
     googletag.cmd.push(function() { googletag.display('div-2); }); 
</script> 
</div> 

<input type="button" name="test" title="test" onclick="javascript:window.changeAd();"  value="Reload Ad" /> 

cevap

14

Ben de aynı sorunu yaşıyorum. Reklamlarımın henüz yenilenmesini istemedim, ancak, reklam alanınızı changeAd() 'da yeniden bildirmeniz gerekmediğini belirtmeliyim.

googletag.cmd.push(function() { 
    googletag.pubads().enableAsyncRendering(); 
    googletag.defineSlot("/69003153/myad1", [728, 90], "div-1").addService   (googletag.pubads()); 
    googletag.defineSlot("/69003153/myad2", [300, 250], "div-2").addService (googletag.pubads()); 
    googletag.enableServices(); 
}); 

Dene: Yerine

kendilerinden önce, 'var' olmadan bunları bildirme

googletag.cmd.push(function() { 
    googletag.pubads().enableAsyncRendering(); 
    slot1 = googletag.defineSlot("/69003153/myad1", [728, 90], "div-1").addService   (googletag.pubads()); 
    slot2 = googletag.defineSlot("/69003153/myad2", [300, 250], "div-2").addService (googletag.pubads()); 
    googletag.enableServices(); 
}); 

kapsamında küresel yuva yapar. senin changeAd() fonksiyonda, sadece Sana bu şekilde çalıştırdığınızda

googletag.cmd.push() içinde reklamlarım hala yenilemek dont yerleştirmeniz gerekir bile emin değilim, ama console.log çalışan

googletag.pubads().refresh([slot1]); 

çağrı (slot1), reklam alanının canlı olduğunu ve tekmelediğini gösterir ...

Başka biri yardımcı olabilir mi?

+0

bu işe yaradı! Bir eklenti, yukarıdaki kod kullanılarak, slot1 – sooty

+0

için global kapsam kullanılarak yenileniyor. Googletag.pubads() öğesini eklediğinizden emin olun enableAsyncRendering(); Yukarıdaki gibi tanımlanmamış ve kodun çalışmadığı bir süreliğine beni aldırış etmemiştir ( –

+0

googletag.pubads(). refresh(); İçinde argüman olmadan gayet güzel çalışıyor :) – Kostadin

İlgili konular