Nei nostri esempi iniziali e concettuali di base, il tag publisher di Google
Viene utilizzato il metodo display()
della libreria (GPT)
registrare e visualizzare un'area annuncio. Tuttavia, a volte può capitare
preferibile o addirittura necessarie per separare queste azioni, in modo da
controllare in modo preciso quando il contenuto dell'annuncio viene caricato. Ad esempio, quando lavori con un
piattaforma di gestione del consenso o richiesta di contenuti pubblicitari in seguito a un utente
un'azione.
In questa guida esamineremo i meccanismi forniti da GPT per: controllare il caricamento dei contenuti degli annunci e recuperare nuovi contenuti degli annunci on demand. Codice completo di questo esempio è disponibile nella scheda Richieste basate su eventi. pagina di esempio.
Controlla il caricamento degli annunci
Per impostazione predefinita, il comportamento del metodo display()
è
registrare, richiedere e visualizzare il contenuto dell'annuncio in un'area annuncio. L'impostazione automatica
la richiesta e la visualizzazione dei contenuti dell'annuncio possono essere disattivate tramite
PubAdsService.disableInitialLoad()
.
Con il caricamento iniziale disattivato, le chiamate a display()
registreranno solo l'area annuncio.
I contenuti degli annunci non verranno caricati finché non viene intrapresa una seconda azione. Questo consente di
controllare con precisione quando vengono effettuate le richieste di annunci.
Per evitare richieste di annunci involontarie, è necessario chiamare disableInitialLoad()
prima di abilitare il servizio e di chiamare il numero display()
.
<!doctype html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="description" content="Request GPT ads based on events." /> <title>Event-based ad requests</title> <script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js" crossorigin="anonymous" ></script> <script> window.googletag = window.googletag || { cmd: [] }; googletag.cmd.push(() => { // Define the ad slot. googletag .defineSlot("/6355419/Travel", [728, 90], "div-for-slot") .setTargeting("test", "event") .addService(googletag.pubads()); // Disable initial load. // This prevents GPT from automatically fetching ads when display is called. googletag.pubads().disableInitialLoad(); googletag.enableServices(); }); </script> <style></style> </head> <body> <div id="div-for-slot" style="width: 300px; height: 250px"></div> <script> googletag.cmd.push(() => { // Register the ad slot. // An ad will not be fetched until refresh is called. googletag.display("div-for-slot"); // Register click event handler. document.getElementById("showAdButton").addEventListener("click", () => { googletag.cmd.push(() => { googletag.pubads().refresh(); }); }); }); </script> </body> </html>
In questo esempio, il caricamento iniziale è disattivato per garantire che non venga effettuata alcuna richiesta di annuncio.
e non viene visualizzato alcun contenuto dell'annuncio quando viene chiamato display()
. Lo slot è pronto
accetta e visualizza un annuncio, ma la richiesta di annuncio non verrà effettuata finché l'area
aggiornato.
Aggiorna
Il metodo PubAdsService.refresh()
viene utilizzato per compilare
ad altre aree con nuovi contenuti dell'annuncio. Questo metodo può essere utilizzato negli slot con
non deve ancora caricare contenuti (a causa dell'errore disableInitialLoad()
) o per sostituire
i contenuti di un'area già compilata. Tuttavia, solo gli slot sono stati
registrati chiamando display()
sono idonei per l'aggiornamento.
<!doctype html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="description" content="Request GPT ads based on events." /> <title>Event-based ad requests</title> <script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js" crossorigin="anonymous" ></script> <script> window.googletag = window.googletag || { cmd: [] }; googletag.cmd.push(() => { // Define the ad slot. googletag .defineSlot("/6355419/Travel", [728, 90], "div-for-slot") .setTargeting("test", "event") .addService(googletag.pubads()); // Disable initial load. // This prevents GPT from automatically fetching ads when display is called. googletag.pubads().disableInitialLoad(); googletag.enableServices(); }); </script> <style></style> </head> <body> <div id="div-for-slot" style="width: 300px; height: 250px"></div> <button id="showAdButton">Show/Refresh Ad</button> <script> googletag.cmd.push(() => { // Register the ad slot. // An ad will not be fetched until refresh is called. googletag.display("div-for-slot"); // Register click event handler. document.getElementById("showAdButton").addEventListener("click", () => { googletag.cmd.push(() => { googletag.pubads().refresh(); }); }); }); </script> </body> </html>
In questo esempio modificato, quando un utente fa clic su "Mostra/Aggiorna annuncio" il pulsante
Viene chiamato il metodo refresh()
. Questo attiva una richiesta di recupero di nuovi contenuti dell'annuncio
e caricarlo nell'area registrata, sovrascrivendo eventuali contenuti preesistenti.
Tieni presente che, nell'esempio precedente, il metodo refresh()
viene chiamato senza
con l'effetto di aggiornare tutte le aree annuncio registrate.
Tuttavia, è anche possibile aggiornare aree annuncio specifiche passando un array di
slot al metodo refresh()
. Consulta la sezione Aggiornare aree annuncio.
.
Best practice
Quando lavori con refresh()
, dovresti seguire alcune best practice
rispettato.
Non aggiornare troppo rapidamente.
L'aggiornamento troppo rapido delle aree annuncio può causare una limitazione delle richieste di annunci. Per evitare che ciò accada, evita di aggiornare gli slot più di una volta ogni 30 secondi.
Non chiamare il numero
clear()
inutilmenteNon chiamare quando aggiorni un'area annuncio
PubAdsService.clear()
. Questo non è necessario perchérefresh()
sostituisce i contenuti dell'area specificata, indipendentemente da se i contenuti degli annunci sono stati caricati in precedenza. Chiamata aclear()
immediatamente prima di chiamarerefresh()
aumenterà solo il tempo in cui uno spazio vuoto è visibile all'utente.Aggiorna solo le aree annuncio visibili
Utilizzo di
refresh()
per sostituire i contenuti delle aree annuncio non visibili può ridurre significativamente la tua percentuale di Visualizzazione attiva. La ImpressionViewableEvent può essere utilizzato per Determina quando un'area annuncio diventa visibile, come nell'esempio riportato di seguito.googletag.cmd.push(function() { var REFRESH_KEY = 'refresh'; var REFRESH_VALUE = 'true'; googletag.defineSlot('/6355419/Travel',[728, 90], 'div-for-slot') .setTargeting(REFRESH_KEY, REFRESH_VALUE) .setTargeting('test', 'event') .addService(googletag.pubads()); // Number of seconds to wait after the slot becomes viewable. var SECONDS_TO_WAIT_AFTER_VIEWABILITY = 60; googletag.pubads().addEventListener('impressionViewable', function(event) { var slot = event.slot; if (slot.getTargeting(REFRESH_KEY).indexOf(REFRESH_VALUE) > -1) { setTimeout(function() { googletag.pubads().refresh([slot]); }, SECONDS_TO_WAIT_AFTER_VIEWABILITY * 1000); } }); googletag.enableServices(); });