Пример настройки SDK
Ниже приведены примеры настройки SDK Яндекс Игр при синхронном и асинхронном подключении.
Особенности примера:
- Для первого вызова рекламы callback-функции не заданы.
- Для второго и всех последующих вызовов заданы все возможные callback-функции.
- Кнопке Показать рекламу присвоен обработчик события
'click'
(вызов рекламы при каждом нажатии кнопки).
<!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>Пример страницы с синхронным подключением SDK</title>
<script src="https://yandex.ru/games/sdk/v2"></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'),
onOffline: getCallback('onOffline')
}
});
});
});
</script>
</head>
<body>
<button id="button">Показать рекламу</button>
</body>
</html>
Особенности примера:
-
Для первого вызова рекламы задана callback-функция onClose.
-
Для второго и последующих вызовов заданы все возможные callback-функции.
-
В callback-функцию
onClose
добавлен код, который будет выполняться после закрытия рекламного блока. -
Все ошибки, возникающие при работе SDK или при выполнении callback-функций, передаются функции onError.
-
Кнопке Показать рекламу присвоен обработчик события
'click'
(вызов рекламы при каждом нажатии кнопки).
<!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>Пример страницы с асинхронным подключением SDK</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);
},
onOffline: getCallback('onOffline')
}
});
} else {
makeSomethingImportant();
}
});
});
</script>
</head>
<body>
<!-- Yandex Games SDK -->
<script>
(function(d) {
var t = d.getElementsByTagName('script')[0];
var s = d.createElement('script');
s.src = 'https://yandex.ru/games/sdk/v2';
s.async = true;
t.parentNode.insertBefore(s, t);
s.onload = initSDK;
})(document);
</script>
<button id="button">Показать рекламу</button>
</body>
</html>
onClose
— вызывается при закрытии рекламы, после ошибки, а также, если реклама не открылась по причине слишком частого вызова. Используется с аргументомwasShown
(типboolean
), по значению которого можно узнать была ли показана реклама.onOpen
— вызывается при успешном открытии рекламы.onError
— вызывается при возникновении ошибки. Объект ошибки передается в callback-функцию.onOffline
— вызывается при потере сетевого соединения (переходе в офлайн-режим).
onClose
— вызывается при закрытии рекламы, после ошибки, а также, если реклама не открылась по причине слишком частого вызова. Используется с аргументом wasShown
(тип boolean
), по значению которого можно узнать была ли показана реклама.
onError
— вызывается при возникновении ошибки. Объект ошибки передается в callback-функцию.
onOpen
— вызывается при успешном открытии рекламы.
onOffline
— вызывается при потере сетевого соединения (переходе в офлайн-режим).