Установка и использование
SDK Яндекс Игр — это библиотека, позволяющая быстро интегрировать игры, созданные сторонними разработчиками, в платформу Яндекс Игр.
Подключение SDK является обязательным условием для успешного прохождения модерации.
SDK предоставляет следующие возможности:
- интегрировать показ рекламы;
- управлять включением и отключением функциональности без обновления билда;
- настроить автоматический переход в полноэкранный режим;
- задать ориентацию экрана во время игры и добавить подсказку, в какую сторону следует повернуть устройство.
Установка
Внимание
Путь https://yandex.ru/games/sdk/v2 устарел. Чтобы ваша игра успешно прошла модерацию, укажите актуальный путь для подключения SDK Яндекс Игр в зависимости от метода размещения:
- 
Если вы загружаете архив игры в Консоль разработчика, укажите относительный путь. Это рекомендуемый вариант. 
- 
Если вы используете интеграцию через iframe, укажите абсолютный путь.
Подключить SDK Яндекс Игр можно как синхронным, так и асинхронным способом. Оба варианта равноправны. Однако асинхронное подключение позволяет контролировать процесс установки с помощью callback-функций. Выберите способ, который считаете более подходящим.
Сервер Яндекса
Примечание
Для проксирования /sdk.js при разработке используйте локальный сервер.
Добавьте в заголовок head HTML-страницы строку следующего вида:
<!-- Yandex Games SDK -->
<script src="/sdk.js"></script>
В этом способе для скрипта можно использовать атрибуты async, defer и onload. Например:
<script async src="/sdk.js" onload="initSDK()"></script>
Добавьте на HTML-страницу следующий код:
<!-- Yandex Games SDK -->
<script>
    (function(d) {
        var s = d.createElement('script');
        s.src = '/sdk.js';
        s.async = true;
        s.onload = initSDK;
        d.body.append(s);
    })(document);
</script>
Свой домен
Добавьте в заголовок head HTML-страницы строку следующего вида:
<!-- Yandex Games SDK -->
<script src="https://sdk.games.s3.yandex.net/sdk.js"></script>
Добавьте на HTML-страницу следующий код:
<!-- Yandex Games SDK -->
<script>
    (function(d) {
        var s = d.createElement('script');
        s.src = "https://sdk.games.s3.yandex.net/sdk.js";
        s.async = true;
        s.onload = initSDK;
        d.body.append(s);
    })(document);
</script>
Использование
Для начала работы инициализируйте SDK, используя метод init() объекта YaGames.
Внимание
В YaGames.init() и ysdk.getPayments() можно передать опциональный параметр signed: boolean, который предназначен для защиты от накруток. Выбор значения зависит от того, где обрабатываются платежи:
- 
Если на стороне клиента — вызовите методы без параметра или передайте signed: false. Методы покупок будут возвращать данные в открытом виде.
- 
Если на стороне сервера — передайте signed: true. В таком случае в ответах методов payments.getPurchases() и payments.purchase() все данные возвращаются только в зашифрованном виде в параметре signature.
Инициализация с параметром по умолчанию (signed: false).
YaGames
    .init()
    .then(ysdk => {
        console.log('Yandex SDK initialized');
        window.ysdk = ysdk;
    });
Инициализация с параметром signed: true.
YaGames
    .init({ signed: true })
    .then(ysdk => {
        console.log('Yandex SDK initialized');
        window.ysdk = ysdk;
    });
Проверка
Важно
Скрипт /sdk.js должен быть подключен до выполнения YaGames.init().
Проверьте правильность подключения SDK с помощью лоадера:
- 
Откройте игру с debug-панелью: Через Консоль разработчикаЧерез адресную строку- Откройте Консоль Яндекс Игр.
- Выберите нужную игру.
- В левом верхнем углу нажмите Открыть с debug-панелью.
 - Откройте нужную игру.
- Добавьте &debug-mode=16в конец адресной строки браузера.
 
- 
В левом нижнем углу проверьте значение индикатора лоадера: - W— ожидает инициализации.
- IT— загрузчик SDK инициализирован верно.
- IF— используется старый лоадер. Загрузите SDK в соответствии с документацией.
 
Возможные проблемы
Uncaught ReferenceError: YaGames is not defined
Обратите внимание на порядок подключения скрипта sdk: он должен быть подключен до выполнения YaGames.init().
Uncaught ReferenceError: ysdk is not defined
Вы попытались использовать методы SDK (реклама, покупки и т. д.) до момента инициализации SDK (сообщение Yandex SDK initialized в консоли).
Если вы не знаете, как гарантировать порядок вызовов, перепишите места использования SDK. Для этого замените строку:
ysdk.adv.showFullscreenAdv()
на:
YaGames.init().then(ysdk => ysdk.adv.showFullscreenAdv())
Пример подключения SDK
<!-- Yandex Games SDK -->
<script src="/sdk.js"></script>
<script>
    YaGames.init().then(ysdk => {
        // ...
    });
</script>
Примечание
Сотрудники службы поддержки помогают разместить готовую игру на платформе Яндекс Игр. На прикладные вопросы о разработке и тестировании предметно ответят другие разработчики в Сообществе в Телеграме.
Если при использовании SDK Яндекс Игр вы столкнулись с проблемой или у вас появился вопрос, обратитесь в службу поддержки: