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 à la demande
action.
Dans ce guide, nous allons découvrir les mécanismes fournis par GPT pour de contrôler le chargement du contenu des annonces et d'extraire de nouveaux contenus à la demande. Code complet de cet exemple sont disponibles dans la section dédiée aux requêtes basées sur des événements, page d'exemple.
Contrôler le chargement des annonces
Par défaut, la méthode display()
se comporte comme suit :
d'enregistrer, de demander et d'afficher un contenu publicitaire dans un espace publicitaire. Le bouton
la demande et l'affichage de contenu d'annonce peuvent être désactivées
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 seconde 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"); // Register click event handler. document.getElementById("showAdButton").addEventListener("click", () => { googletag.cmd.push(() => { googletag.pubads().refresh(); }); }); }); </script> </body> </html>
Dans cet exemple, le chargement initial est désactivé, ce qui garantit qu'aucune demande d'annonce n'est effectuée.
De plus, aucun contenu d'annonce n'est affiché lorsque la méthode display()
est appelée. L'emplacement est prêt
accepter et afficher une annonce, mais aucune demande d'annonce n'est envoyée tant que l'espace n'est pas
actualisées.
Actualiser
La méthode PubAdsService.refresh()
permet de renseigner une
des espaces publicitaires avec
un nouveau contenu publicitaire. Cette méthode peut être utilisée sur les emplacements
n'a pas encore chargé de contenu (en raison de disableInitialLoad()
) ni à remplacer le
le contenu d'un espace déjà rempli. 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 ci-dessus, 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
emplacements à 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()
adhèrent.
N'actualisez pas trop rapidement.
Si vous actualisez trop rapidement les espaces publicitaires, 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.
Ne pas appeler
clear()
inutilementLors de l'actualisation d'un espace publicitaire, n'appelez pas
PubAdsService.clear()
. C'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é. Vous appelezclear()
immédiatement avant d'appelerrefresh()
n'augmente que la durée pendant laquelle un emplacement vide est visible par l'utilisateur.Actualiser uniquement les espaces publicitaires visibles
Utiliser
refresh()
pour remplacer le contenu d'espaces publicitaires qui ne sont jamais visibles peut réduire considérablement votre taux Active View. La ImpressionViewableEvent vous permet déterminer à quel moment un espace publicitaire est devenu visible, comme dans l'exemple ci-dessous.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(); });