Reklam yüklemeyi denetleme ve yenileme

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.

  1. 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.

  2. clear() numaralı telefonu gereksiz yere aramayın

    Bir reklam alanını yenilerken şunu çağırmayın: Önce PubAdsService.clear(). Bu gerekli değildir refresh(), ş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 Hemen clear() aranıyor refresh() çağrısından önce, yalnızca boş bir zaman aralığı süresi uzatılır kullanıcı tarafından görülebilir.

  3. 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();
    });