onReady ile oyun yüklemeyi manuel olarak sıralama

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

Oyun mantığınız yüklenir, reklam etiketi yüklenir, Reklam Yerleşimi API'si başlatılır ve reklamlar önceden yüklenebilir. Bu nedenle, sayfa yüklendikten çok kısa süre sonra adBreak() işlevini çağırırsanız API'nin başlatılmamış veya reklamların önceden yüklenmesi tamamlanmamış olabilir. API başlatılmamışsa arama başarısız olur ve adBreakDone() geri çağırma işlevi kaydettiyseniz breakStatus, notReady olarak ayarlanır.

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

onReady(), Reklam Yerleşimi API'si tarafından şu durumlarda çağrılır:

  • Reklamın etiketi yüklendiğinde,
  • Reklam Yerleşimi API'si yüklenmiş ve başlatılmış olmalıdır.
  • reklamlar önceden yüklenmişse (adConfig() kullanarak önceden yükleme isteğinde bulunduysanız)

Bu noktada, Reklam Yerleşimi API'si tamamen başlatılmış olur. adBreak() numaralı telefonu arayabilirsiniz. Bu durumda notReady durumu döndürülmez. Ancak her zaman olduğu gibi adBreak() yine de reklam göstermeyebilir (örneğin, uygun reklam olmayabilir).

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 çok kısa süre sonra adBreak() işlevini çağırmanın en yaygın kullanım alanı, ön rulo uygulamaktır. Burada açıklanan yöntemleri kullanarak kendi yerleşiminizi oluşturmaya çalışmak yerine preroll yerleşim türünü kullanmanızı şiddetle tavsiye ederiz.

preroll, gerekli tüm ön yükleme ve zaman aşımı mantığını otomatik olarak uygular. Oyununuzda bir ön rulo kullanıyorsanız onReady() kullanmanız gerekmez. Ön rulo reklamlar hakkında daha fazla bilgi

Engelleme

Ad Placement API'nin başlatılması gecikirse veya tamamen yüklenemezse onReady() öğesinin çağrılacağı garanti edilmez. Oyununuzun zamanında başlamasını sağlamak için zaman aşımı ayarlayabilirsiniz. onReady() geri araması alırsanız reklamı yerleştirmek için adBreak() işlevini çağırabilirsiniz. Aksi takdirde, reklam çağrısını atlayıp oyununuzu yüklemeye devam edebilirsiniz.

Aşağıdaki örnekte bir zaman aşımı yer alıyor ve bu örnek, bir ön rulo yerleşimi tarafından uygulanan mantığa benziyor:

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