Пример

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

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

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

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