Örnek

Aşağıda Yandex Games SDK'nın senkron ve asenkron bağlantı ile yapılandırılmasına ilişkin örnekler yer almaktadır.

Örnek özellikleri:

  1. İlk reklam çağrısı için callback-işlevleri belirtilmemiştir.
  2. İkinci ve sonraki tüm çağrılar için olası tüm callback-işlevleri tanımlanmıştır.
  3. Reklamları göster butonuna 'click' olay işleyicisi atanmıştır (butonlara her tıklandığında bir reklam çağrılır).
 <!DOCTYPE html>
 <html>
 <head>
     <meta charset="UTF-8">
     <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
     <meta name="mobile-web-app-capable" content="yes">
     <meta name="apple-mobile-web-app-capable" content="yes">
     <title>Senkron SDK bağlantısı ile örnek sayfa</title>
     <script src="/sdk.js"></script>
     <script>
         YaGames.init().then(ysdk => {
             ysdk.adv.showFullscreenAdv();

             const buttonElem = document.querySelector('#button');

             let commonCounter = 0;
             buttonElem.addEventListener('click', () => {
                 let counter = 0;

                 function getCallback(callbackName) {
                     return () => {
                         counter += 1;
                         commonCounter += 1;

                         console.log(`showFullscreenAdv; callback ${callbackName}; ${counter} call`);
                     }
                 }

                 ysdk.adv.showFullscreenAdv({
                     callbacks: {
                         onClose: getCallback('onClose'),
                         onOpen: getCallback('onOpen'),
                         onError: getCallback('onError')
                     }
                 });
             });
         });
     </script>
 </head>
 <body>
     <button id="button">Reklam göster</button>
 </body>
 </html>

Örnek özellikleri:

  1. Callback-işlevi onClose reklama yapılan ilk çağrı için tanımlanmıştır.

  2. İkinci ve sonraki çağrılar için, tüm olası callback işlevleri belirtilir.

  3. onClose callback işlevine reklam bloğu kapatıldıktan sonra yürütülecek olan kod eklenmiştir.

  4. SDK çalıştırılırken veya callback işlevleri yürütülürken ortaya çıkan tüm hatalar onError işlevine aktarılır.

  5. Reklamları göster butonuna 'click' olay işleyicisi atanmıştır (butonlara her tıklandığında bir reklam çağrılır).

 <!DOCTYPE html>
 <html>
 <head>
     <meta charset="UTF-8">
     <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
     <meta name="mobile-web-app-capable" content="yes">
     <meta name="apple-mobile-web-app-capable" content="yes">
     <title>Asenkron SDK bağlantısı ile örnek sayfa</title>
     <script>
         let ysdk;

         function initSDK() {
             YaGames
                 .init()
                 .then(ysdk_ => {
                     ysdk = ysdk_;
                     ysdk.adv.showFullscreenAdv({
                         callbacks: {
                             onClose: wasShown => {
                                 console.info('First close')
                             }
                         }
                     });
                 })
         }

         document.addEventListener('DOMContentLoaded', () => {
             const buttonElem = document.querySelector('#button');

             let commonCounter = 0;
             buttonElem.addEventListener('click', () => {
                 let counter = 0;

                 function getCallback(callbackName) {
                     return () => {
                         counter += 1;
                         commonCounter += 1;

                         if (commonCounter % 3 === 0) {
                             throw new Error(`Test error in ${callbackName}, everything okey, it should not abort other code execution`);
                         }

                         console.info(`showFullscreenAdv; callback ${callbackName}; ${counter} call`);
                     }
                 }

                 function makeSomethingImportant() {
                     console.info('It\'s very important \'console.info\'');
                 }

                 if (ysdk) {
                     ysdk.adv.showFullscreenAdv({
                         callbacks: {
                             onClose: makeSomethingImportant,
                             onOpen: getCallback('onOpen'),
                             onError: function(error) {
                                 console.error(error);
                             }
                         }
                     });
                 } else {
                     makeSomethingImportant();
                 }
             });
         });
     </script>
 </head>
 <body>
 <!-- Yandex Games SDK -->
 <script>
     (function(d) {
         var t = d.getElementsByTagName('script')[0];
         var s = d.createElement('script');
         s.src = '/sdk.js';
         s.async = true;
         t.parentNode.insertBefore(s, t);
         s.onload = initSDK;
     })(document);
 </script>
 <button id="button">Reklam göster</button>
 </body>
 </html>

onClose: Reklam kapatıldığında, bir hatadan sonra ve ayrıca çok sık çağrıldığı için reklam açılmadığında çağrılır. Reklamın gösterilip gösterilmediğini öğrenebileceğiniz wasShown bağımsız değişkeni (tip boolean) ile birlikte kullanılır.

  • onOpen: Reklam başarıyla açıldığında çağrılır.
  • onError: Bir hata oluştuğunda çağrılır. Hata nesnesi callback işlevine aktarılır.

onClose reklam kapatıldığında, bir hatadan sonra ve ayrıca çok sık çağrıldığı için reklam açılmadığında çağrılır. Reklamın gösterilip gösterilmediğini öğrenebileceğiniz wasShown bağımsız değişkeni (tip boolean) ile birlikte kullanılır.

onError: Bir hata oluştuğunda çağrılır. Hata nesnesi callback işlevine aktarılır.

onOpen: Reklam başarıyla açıldığında çağrılır.