onReady ile oyun yükleme işlemini manuel olarak yapın

Oyununuzu içeren sayfa ilk olarak yüklendiğinde, bir dizi eşzamansız etkinlik gerçekleşir.

Oyun mantığınız, reklam etiketiniz yüklenir, Ad Placement API başlangıçta başlatılır ve reklamlar önceden yüklenebilir. Sonuç olarak, adBreak() öğesini sayfa yüklendikten hemen sonra çağırırsanız API ilk başlatılmamış veya reklamların önceden yüklenmemiş olabilir. API başlatılmadıysa çağrı başarısız olur ve bir adBreakDone() geri çağırması kaydettiyseniz breakStatus, notReady olarak ayarlanır.

Oyun mantığınızı Ad Placement API'nin başlatılmasıyla senkronize etmeniz gerekiyorsa adConfig() için onReady() geri çağırmasını kullanabilirsiniz.

onReady(), Ad Placement API tarafından aşağıdaki durumlarda çağrılır:

  • ad&s39;lar etiketi yüklendikten sonra
  • Reklam Yerleşimi API'si yüklenip başlatıldı ve
  • reklamları önceden yüklemeyi bitirmiş olabilirsiniz. adConfig()

Bu noktada, Ad Placement API tamamen başlatılır. adBreak() numarasını arayabilirsiniz. Bu durumda notReady durumu döndürülmez. Ancak her zaman olduğu gibi, adBreak() reklam göstermese de (örneğin, kullanılabilir reklam yoktu)

onReady() kullanımını gösteren bir örneği aşağıda bulabilirsiniz:

...
<script>
    window.adsbygoogle = window.adsbygoogle || [];
    var adBreak = adConfig = function(o) {adsbygoogle.push(o);}
    ...
    function init() {
      // Game start logic, show loading screen
      adConfig({
        preloadAdBreaks: 'on',
        onReady: showAd
      });
      // Don't start the gameplay just yet, keep loading.
    }

    function showAd() {
      // Show an ad
      adBreak({
        type: 'start',
        adBreakDone: startGame,  // always called, unblocks the game logic
        ...
      });
    }
    ...
</script>

Not: Sayfa yüklendikten hemen sonra adBreak() çağırmak için en yaygın kullanım alanı, videodan önce gösterilen bir reklam uygulamaktır. Kendi yerleşiminizi burada açıklanan yöntemleri kullanarak oluşturmaya çalışmak yerine bir preroll yerleşim türü kullanmanızı kesinlikle öneririz.

preroll, gerekli tüm önceden yükleme ve zaman aşımı mantığını otomatik olarak uygular. Oyununuzda videodan önce gösterilen reklam kullanıyorsanız onReady() kullanmanıza gerek yoktur. Videodan önce gösterilen reklamlar hakkında daha fazla bilgi

Zaman Aşımları

onReady() reklam yerleşim API'sinin başlatılması gecikir veya tamamen yüklenmezse çağrılması garanti edilmez. Oyununuzun zamanında başlamasını sağlamak için zaman aşımı ayarlamak isteyebilirsiniz. onReady() geri çağırmasını alırsanız reklamı yerleştirmek için adBreak() yöntemini çağırabilirsiniz. Aksi takdirde, reklam çağrısını atlayıp oyununuzu yüklemeye devam edebilirsiniz.

Aşağıdaki örnek bir zaman aşımı içermektedir. Bu örnek, videodan önce gösterilen reklam yerleşimi tarafından uygulanan mantığa benzer:

...
<script>
    window.adsbygoogle = window.adsbygoogle || [];
    var adBreak = adConfig = function(o) {adsbygoogle.push(o);}
    ...
    function init() {
        // Game start logic
        let adConfigPromise =
            new Promise((resolve, reject) => adConfig({
                preloadAdBreaks: 'on',
                onReady: () => resolve(true)
            }));
        let timeoutPromise =
            new Promise((resolve, reject) => {
                setTimeout(() => {
                    resolve(false);
                }, 2000);
            });
        // Whatever happens first resolves this promise.
        Promise.race([
            adConfigPromise,
            timeoutPromise
        ]).then((shouldShowPreRoll) => {
            if (shouldShowPreRoll) {
                showPreRoll();
            } else {
                startGame();
            }
        });
    }

    function showPreRoll() {
      // Show ad
      adBreak({
          type: 'start',
          adBreakDone: startGame, // always called, unblocks the game logic
          ...
      });
    }
    ...
</script>