Dans nos premiers exemples et exemples de concepts de base, le tag Google Publisher Tag
la méthode display()
de la bibliothèque GPT est utilisée.
pour enregistrer et afficher un espace publicitaire. Cependant, il peut arriver
préférable, voire nécessaire,
pour séparer ces actions, afin de
pour contrôler avec précision le chargement du contenu des annonces Par exemple, lorsque vous travaillez
plate-forme de gestion du consentement ou demande de contenu d'annonce suite à une demande
action.
Dans ce guide, nous allons explorer les mécanismes fournis par GPT pour contrôler le chargement du contenu des annonces et extraire de nouveaux contenus d'annonces à la demande. Vous trouverez le code complet de cet exemple sur la page d'exemple des requêtes basées sur les événements.
Contrôler le chargement des annonces
Par défaut, le comportement de la méthode display()
consiste à enregistrer, à demander et à afficher le contenu de l'annonce dans un emplacement publicitaire. La demande et l'affichage automatiques du contenu des annonces peuvent être désactivés à l'aide de la méthode PubAdsService.disableInitialLoad()
.
Lorsque le chargement initial est désactivé, les appels à display()
n'enregistrent que l'espace publicitaire.
Aucun contenu d'annonce ne sera chargé tant qu'une deuxième action n'aura pas été effectuée. Cela vous permet
pour contrôler avec précision
les demandes d'annonces.
Pour éviter d'envoyer des demandes d'annonces involontaires, disableInitialLoad()
doit être appelé
avant d'activer le service et avant d'appeler 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"); }); </script> </body> </html>
Dans cet exemple, le chargement initial est désactivé pour s'assurer qu'aucune demande d'annonce n'est effectuée et qu'aucun contenu d'annonce n'est affiché lorsque display()
est appelé. L'emplacement est prêt à accepter et à afficher une annonce, mais une demande d'annonce ne sera pas envoyée tant que l'emplacement n'aura pas été actualisé.
Actualiser
La méthode PubAdsService.refresh()
permet de renseigner un ou plusieurs emplacements avec un nouveau contenu publicitaire. Cette méthode peut être utilisée sur des emplacements qui n'ont pas encore chargé de contenu (en raison de disableInitialLoad()
) ou pour remplacer le contenu d'un emplacement déjà renseigné. Toutefois, seuls les emplacements
enregistrées en appelant display()
peuvent être actualisées.
<!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>
Dans cet exemple modifié, lorsqu'un utilisateur clique sur "Afficher/Actualiser l'annonce" le bouton
La méthode refresh()
est appelée. Cela déclenche une demande d'extraction du nouveau contenu de l'annonce
et le charger dans l'emplacement enregistré, en écrasant tout contenu préexistant.
Notez que dans l'exemple précédent, la méthode refresh()
est appelée sans
qui ont pour effet d'actualiser tous les espaces publicitaires enregistrés.
Toutefois, il est également possible d'actualiser des espaces publicitaires spécifiques en transmettant un tableau d'espaces à la méthode refresh()
. Voir Actualiser les espaces publicitaires
pour obtenir un exemple.
Bonnes pratiques
Voici quelques bonnes pratiques à suivre lorsque vous travaillez avec refresh()
respecté.
N'actualisez pas trop rapidement.
Si vous actualisez les emplacements publicitaires trop rapidement, vos demandes d'annonces risquent d'être limitées. Pour éviter cela, évitez d'actualiser les emplacements plus d'une fois tous les 30 jours. secondes.
N'appelez pas
clear()
inutilement.Lors de l'actualisation d'un espace publicitaire, n'appelez pas
PubAdsService.clear()
. Ceci est inutile, carrefresh()
remplace le contenu de l'espace publicitaire spécifié, quel que soit si le contenu de l'annonce a déjà été chargé. Appelerclear()
immédiatement avant d'appelerrefresh()
ne fait qu'augmenter la durée pendant laquelle un emplacement vide est visible par l'utilisateur.Actualiser uniquement les espaces publicitaires visibles
L'utilisation de
refresh()
pour remplacer le contenu des emplacements d'annonces qui ne sont jamais visibles peut considérablement réduire votre taux ActiveView. L'événement ImpressionViewableEvent permet de déterminer quand un emplacement d'annonce est devenu visible, comme illustré dans l'exemple suivant :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(); });