2011-11-28 8 views
12

Sto utilizzando alcune delle nuove funzionalità di Google DFP e non riesco a ottenere un singolo aggiornamento da aggiornare. Posso aggiornare tutti gli annunci sulla pagina ma non posso averne uno solo da aggiornare da solo.google dfp pubads(). Refresh() non funziona come previsto

Ho provato il seguente codice per ottenere un add per aggiornare senza fortuna:

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

Qualsiasi aiuto sarebbe apprezzato!

sorgente completo:

<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" /> 

risposta

14

Sto anche avendo lo stesso problema. Non ho ancora ricevuto i miei annunci per l'aggiornamento, ma dovrei suggerire che non è necessario ridichiarare lo spazio pubblicitario in changeAd().

Invece di:

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(); 
}); 

Prova:

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(); 
}); 

dichiarandoli senza 'var' li precede rende le fessure di portata globale. Nella funzione changeAd(), è sufficiente chiamare

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

Io non sono nemmeno sicuro se è necessario posizionare che dentro googletag.cmd.push()

Quando eseguire in questo modo, i miei annunci Ancora non aggiornare, ma in esecuzione console.log (slot1) mostra che lo spazio pubblicitario è vivo e vegeto ...

Qualcun altro può aiutare ulteriormente?

+0

grazie che ha funzionato a meraviglia! Un add è ora rinfrescante utilizzando il codice sopra utilizzando l'ambito globale per slot1 – sooty

+0

Funziona. Assicurati di includere googletag.pubads(). EnableAsyncRendering(); sopra defineSlot() come non l'ho fatto e mi ci è voluto un po 'per capire perché il codice non funzionava –

+0

googletag.pubads(). refresh(); funziona bene senza discussioni all'interno :) – Kostadin

Problemi correlati