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>