Пример

Ниже приведены примеры настройки SDK Яндекс Игр при синхронном и асинхронном подключении.

Особенности примера:

  • Для первого вызова рекламы callback-функции не заданы.
  • Для второго и всех последующих вызовов заданы все возможные callback-функции.
  • Кнопке Показать рекламу присвоен обработчик события 'click' (вызов рекламы при каждом нажатии кнопки).
 1<!DOCTYPE html>
 2<html>
 3<head>
 4    <meta charset="UTF-8">
 5    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
 6    <meta name="mobile-web-app-capable" content="yes">
 7    <meta name="apple-mobile-web-app-capable" content="yes">
 8    <title>Пример страницы с синхронным подключением SDK</title>
 9    <script src="/sdk.js"></script>
10    <script>
11        YaGames.init().then(ysdk => {
12            ysdk.adv.showFullscreenAdv();
13
14            const buttonElem = document.querySelector('#button');
15
16            let commonCounter = 0;
17            buttonElem.addEventListener('click', () => {
18                let counter = 0;
19
20                function getCallback(callbackName) {
21                    return () => {
22                        counter += 1;
23                        commonCounter += 1;
24
25                        console.log(`showFullscreenAdv; callback ${callbackName}; ${counter} call`);
26                    }
27                }
28
29                ysdk.adv.showFullscreenAdv({
30                    callbacks: {
31                        onClose: getCallback('onClose'),
32                        onOpen: getCallback('onOpen'),
33                        onError: getCallback('onError')
34                    }
35                });
36            });
37        });
38    </script>
39</head>
40<body>
41    <button id="button">Показать рекламу</button>
42</body>
43</html>

Особенности примера:

  • Для первого вызова рекламы задана callback-функция onClose.

  • Для второго и последующих вызовов заданы все возможные callback-функции.

  • В callback-функцию onClose добавлен код, который будет выполняться после закрытия рекламного блока.

  • Все ошибки, возникающие при работе SDK или при выполнении callback-функций, передаются функции onError.

  • Кнопке Показать рекламу присвоен обработчик события 'click' (вызов рекламы при каждом нажатии кнопки).

 1<!DOCTYPE html>
 2<html>
 3<head>
 4    <meta charset="UTF-8">
 5    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
 6    <meta name="mobile-web-app-capable" content="yes">
 7    <meta name="apple-mobile-web-app-capable" content="yes">
 8    <title>Пример страницы с асинхронным подключением SDK</title>
 9    <script>
10        let ysdk;
11
12        function initSDK() {
13            YaGames
14                .init()
15                .then(ysdk_ => {
16                    ysdk = ysdk_;
17                    ysdk.adv.showFullscreenAdv({
18                        callbacks: {
19                            onClose: wasShown => {
20                                console.info('First close')
21                            }
22                        }
23                    });
24                })
25        }
26
27        document.addEventListener('DOMContentLoaded', () => {
28            const buttonElem = document.querySelector('#button');
29
30            let commonCounter = 0;
31            buttonElem.addEventListener('click', () => {
32                let counter = 0;
33
34                function getCallback(callbackName) {
35                    return () => {
36                        counter += 1;
37                        commonCounter += 1;
38
39                        if (commonCounter % 3 === 0) {
40                            throw new Error(`Test error in ${callbackName}, everything okey, it should not abort other code execution`);
41                        }
42
43                        console.info(`showFullscreenAdv; callback ${callbackName}; ${counter} call`);
44                    }
45                }
46
47                function makeSomethingImportant() {
48                    console.info('It\'s very important \'console.info\'');
49                }
50
51                if (ysdk) {
52                    ysdk.adv.showFullscreenAdv({
53                        callbacks: {
54                            onClose: makeSomethingImportant,
55                            onOpen: getCallback('onOpen'),
56                            onError: function(error) {
57                                console.error(error);
58                            }
59                        }
60                    });
61                } else {
62                    makeSomethingImportant();
63                }
64            });
65        });
66    </script>
67</head>
68<body>
69<!-- Yandex Games SDK -->
70<script>
71    (function(d) {
72        var t = d.getElementsByTagName('script')[0];
73        var s = d.createElement('script');
74        s.src = '/sdk.js';
75        s.async = true;
76        t.parentNode.insertBefore(s, t);
77        s.onload = initSDK;
78    })(document);
79</script>
80<button id="button">Показать рекламу</button>
81</body>
82</html>
  • onClose — вызывается при закрытии рекламы, после ошибки, а также, если реклама не открылась по причине слишком частого вызова. Используется с аргументом wasShown (тип: boolean), по значению которого можно узнать была ли показана реклама.
  • onOpen — вызывается при успешном открытии рекламы.
  • onError — вызывается при возникновении ошибки. Объект ошибки передается в callback-функцию.

onClose — вызывается при закрытии рекламы, после ошибки, а также, если реклама не открылась по причине слишком частого вызова. Используется с аргументом wasShown (тип: boolean), по значению которого можно узнать была ли показана реклама.

onError — вызывается при возникновении ошибки. Объект ошибки передается в callback-функцию.

onOpen — вызывается при успешном открытии рекламы.