Başlangıç ve temel kavram örneklerimizde, Google Yayıncı Etiketi
(GPT) kitaplığının display()
yöntemi kullanılır
bir reklam alanını kaydetmek ve görüntülemek için. Ancak bazı durumlarda
daha iyi sonuçlar elde etmek için bu işlemleri ayırmak için
reklam içeriğinin yükleneceği zamanı kesin olarak kontrol eder. Örneğin, bir kurumda
Kullanıcı rızası yönetim platformundan veya kullanıcının kendi kararıyla
eyleme dökülebilir.
Bu kılavuzda, GPT'nin Veriye Dayalı İlişkilendirme'nin kullanılabilmesi için Reklam içeriğinin yüklenmesini kontrol etme ve istek üzerine yeni reklam içeriği getirme. Tam kod bu örnek için etkinliğe dayalı isteklerde bulunabilir. örnek sayfadır.
Reklam yüklemeyi kontrol etme
Varsayılan olarak display()
yönteminin davranışı
reklam içeriğini bir reklam alanına kaydetme, isteme ve oluşturma. Otomatik
reklam içeriğinin istenmesi ve oluşturulması
PubAdsService.disableInitialLoad()
yöntemini kullanabilirsiniz.
İlk yükleme devre dışı bırakıldığında, display()
çağrıları yalnızca reklam alanını kaydeder.
İkinci bir işlem yapılmadan reklam içeriği yüklenmez. Bu şekilde şunları yapabilirsiniz:
reklam isteklerinin ne zaman yapılacağını kesin olarak kontrol edebilir.
Yanlışlıkla reklam isteğinde bulunmamak için disableInitialLoad()
çağrılmalıdır
ve display()
çağrılır.
<!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>
Bu örnekte, hiçbir reklam isteğinde bulunulmadığından emin olmak için ilk yükleme devre dışı bırakılmıştır
ve display()
çağrıldığında reklam içeriği oluşturulmaz. Zaman aralığı hazır
bir reklamı kabul edip görüntüleyeceğini ancak zaman aralığı belirlenene kadar
yenilendi.
Yenile
PubAdsService.refresh()
yöntemi,
yeni reklam içeriği barındıran alanlar veya alanlar bulunuyor. Bu yöntem,
henüz yüklememiş (disableInitialLoad()
nedeniyle) veya
içeriğini kontrol edebilirsiniz. Ancak, yalnızca
display()
numaralı telefondan kaydedilenler yenilenmeye uygun.
<!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>
Bu değiştirilmiş örnekte, bir kullanıcı "Reklamı Göster/Yenile"yi tıkladığında düğmesi,
refresh()
yöntemi çağrılır. Bu işlem, yeni reklam içeriği getirme isteğini tetikler
mevcut içeriğin üzerine yazarak bunu kayıtlı alana yükleyin.
Yukarıdaki örnekte refresh()
yönteminin
parametrelerini içerir. Bu, tüm kayıtlı reklam alanlarını yenileme etkisine sahiptir.
Bununla birlikte,
slotlarını refresh()
yöntemine uygular. Bkz. Reklam alanlarını yenileme
örneğini inceleyelim.
En iyi uygulamalar
refresh()
ile çalışırken, uygulanması gereken bazı en iyi uygulamalar vardır.
bağlıyız.
Sayfayı çok hızlı yenilemeyin.
Reklam alanlarının çok hızlı yenilenmesi, reklam isteklerinizin kısıtlanmasına neden olabilir. Bunu önlemek için alanları 30'da bir defadan daha sık yenilemekten kaçının saniye.
clear()
numaralı telefonu gereksiz yere aramayınBir reklam alanını yenilerken şunu çağırmayın: Önce
PubAdsService.clear()
. Bu gerekli değildirrefresh()
, şundan bağımsız olarak belirtilen alanın içeriğini değiştirir: herhangi bir reklam içeriğinin yüklenip yüklenmediği Hemenclear()
aranıyorrefresh()
çağrısından önce, yalnızca boş bir zaman aralığı süresi uzatılır kullanıcı tarafından görülebilir.Yalnızca görüntülenebilir reklam alanlarını yenile
Hiçbir zaman görüntülenemeyen reklam alanlarının içeriğini değiştirmek için
refresh()
kullanma Aktif Görüntüleme oranınızı önemli ölçüde düşürebilir. İlgili içeriği oluşturmak için kullanılan ImpressionViewableEvent, aşağıdaki örnekte olduğu gibi bir reklam alanının ne zaman görüntülenebilir hale geldiğini belirler.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(); });