En nuestros ejemplos introductorios y de conceptos básicos, la etiqueta Google Publisher Tag
Se usa el método display()
de la biblioteca (GPT)
para registrar y mostrar un espacio publicitario. Sin embargo, en algunas ocasiones puede ser
preferibles o incluso necesarias separar estas acciones, para
controlan con precisión cuándo se carga el contenido del anuncio. Por ejemplo, cuando trabajas con un
de administración de consentimiento o solicitar contenidos de anuncios como resultado de que un usuario
acción.
En esta guía, exploraremos los mecanismos que ofrece GPT para controlar la carga de contenido de anuncios y obtener nuevo contenido de anuncios a pedido. Código completo Para este ejemplo, puedes consultar las solicitudes basadas en eventos, página de muestra.
Controla la carga de anuncios
De forma predeterminada, el comportamiento del método display()
es el siguiente:
registrar, solicitar y renderizar el contenido del anuncio en un espacio publicitario El sistema automático
la solicitud y la renderización del contenido del anuncio pueden inhabilitarse a través del
PubAdsService.disableInitialLoad()
.
Con la carga inicial inhabilitada, las llamadas a display()
solo registrarán el espacio publicitario.
No se cargará contenido del anuncio hasta que se realice una segunda acción. Esto te permite
controlan con precisión cuándo se realizan las solicitudes de anuncios.
Para evitar realizar solicitudes de anuncios no intencionales, se debe llamar a disableInitialLoad()
antes de habilitar el servicio y antes de llamar a 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>
En este ejemplo, la carga inicial está inhabilitada, lo que garantiza que no se realice ninguna solicitud de anuncio.
y no se renderiza contenido del anuncio cuando se llama a display()
. La ranura está lista para
aceptar y mostrar un anuncio, pero no se realizará una solicitud de anuncio hasta que el espacio
actual.
Actualizar
El método PubAdsService.refresh()
se usa para completar un
con contenido del anuncio nuevo. Este método puede usarse en ranuras que tienen
no debes cargar ningún contenido (debido a disableInitialLoad()
), o bien para reemplazar el
el contenido de un espacio ya propagado. Sin embargo, solo las ranuras
registradas llamando a display()
son aptas para actualizarse.
<!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>
En este ejemplo modificado, cuando un usuario hace clic en el botón
refresh()
. Esto activa una solicitud para recuperar nuevo contenido del anuncio.
y cargarlo en el espacio registrado para sobrescribir todo el contenido preexistente.
Ten en cuenta que, en el ejemplo anterior, se llama al método refresh()
sin
parámetros, que actualizan todos los espacios publicitarios registrados.
Sin embargo, también es posible actualizar espacios publicitarios específicos pasando una serie de
ranuras para el método refresh()
. Consulta el artículo Cómo actualizar espacios publicitarios
como muestra de ejemplo.
Prácticas recomendadas
Cuando trabajas con refresh()
, debes tener en cuenta algunas prácticas recomendadas
cumplir.
No actualices demasiado rápido.
Si actualizas los espacios publicitarios demasiado rápido, es posible que se limiten tus solicitudes de anuncios. Para evitar esto, evita actualizar las ranuras con más frecuencia que una vez cada 30 segundos.
No llames a
clear()
innecesariamente.Cuando actualices un espacio publicitario, no llames
PubAdsService.clear()
primero. Esto no es necesario, ya querefresh()
reemplaza el contenido del espacio especificado, independientemente de si se cargó algún contenido del anuncio con anterioridad. Llamando alclear()
de inmediato antes de llamar arefresh()
solo aumentará la cantidad de tiempo que se liberará es visible para el usuario.Actualizar solo espacios publicitarios visibles
Se usa
refresh()
para reemplazar el contenido de espacios publicitarios que nunca son visibles puede reducir significativamente su tasa de Vista activa. El ImpressionViewableEvent se puede usar para lo siguiente: determina cuándo un espacio publicitario se hace visible, como en el siguiente ejemplo.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(); });