Быстрый старт
Добавьте скрипт в index.html и один раз вызовите IzySDK.init(). Он всегда завершается успешно: на izy.gg подключается к сайту, в любом другом месте работает автономно с тестовой рекламой и локальными сохранениями.
<script src="https://izy.gg/sdk/v1.js"></script>
<script>
(async () => {
const izy = await IzySDK.init(); // always resolves, also outside izy.gg
// Language and sound from izy.gg
game.setLanguage(izy.locale); // "en", "ru", …
game.mute(izy.muted);
izy.on("audio", ({ muted }) => game.mute(muted));
// Loading screen
izy.loading(40); // 0..100
await game.load();
izy.ready();
})();
</script>Справочник API
Всё доступно на объекте, который возвращает IzySDK.init():
- izy.locale: язык игрока на izy.gg ("en", "ru", …).
- izy.device: "desktop", "mobile" или "tablet".
- izy.user: { name, avatar } вошедшего игрока или null.
- izy.muted: выключил ли игрок звук на сайте. izy.on("audio", ({ muted }) => …) сообщает об изменениях.
- izy.test: true вне izy.gg и в предпросмотре портала (реклама тестовая, ничего не засчитывается).
- izy.loading(progress) и izy.ready(): управляют экраном загрузки izy.gg.
- izy.gameplayStart() и izy.gameplayStop(): сообщают, когда идёт сам геймплей. Реклама никогда не прерывает игру.
- izy.ads.interstitial() и izy.ads.rewarded(): см. «Реклама».
- izy.save(data) и izy.load(): см. «Сохранения».
- izy.happyTime(): момент радости, например рекорд или пройденный уровень.
- izy.on("pause" | "resume", callback): вокруг каждой рекламы. По "pause" выключайте звук и ставьте игру на паузу.
Реклама
Межстраничная реклама показывается между уровнями или после проигрыша. izy.gg бережёт игроков: никакой межстраничной рекламы в первые 90 секунд и не чаще раза в 2 минуты, как бы часто её ни запрашивала игра. Вызывайте её в естественных паузах и продолжайте, когда промис завершится.
Реклама за вознаграждение всегда должна быть выбором игрока (кнопка с понятной наградой), а награда выдаётся, только если промис вернул true.
// Between levels: izy.gg decides if an ad fits (at most one every 2 minutes)
izy.gameplayStop();
await izy.ads.interstitial(); // → true if an ad was shown
izy.gameplayStart();
// Only when the player taps "Watch an ad for +1 life"
if (await izy.ads.rewarded()) { // → true only if watched to the end
player.lives += 1;
}
// izy.gg pauses your game around every ad
izy.on("pause", () => game.pause());
izy.on("resume", () => game.resume());Облачные сохранения
Вошедшие игроки сохраняют прогресс на всех устройствах, гости в браузере. Всегда дожидайтесь load() перед первым уровнем.
// Any JSON up to 256 KB. Signed-in players get it on every device.
await izy.save({ level: 7, coins: 1200 });
const progress = await izy.load(); // → your object, or null
if (progress) game.restore(progress);Unity, Phaser, Construct, Godot
SDK написан на обычном JavaScript, поэтому подходит любой движок с HTML5-экспортом. Сборки Unity WebGL вызывают его через плагин .jslib:
// Assets/Plugins/WebGL/izy.jslib
mergeInto(LibraryManager.library, {
IzyInterstitial: function () {
IzySDK.init().then(function (izy) {
izy.ads.interstitial().then(function () {
SendMessage("IzyBridge", "OnAdDone", "");
});
});
},
IzyRewarded: function () {
IzySDK.init().then(function (izy) {
izy.ads.rewarded().then(function (ok) {
SendMessage("IzyBridge", "OnRewarded", ok ? "1" : "0");
});
});
},
});
// Add <script src="https://izy.gg/sdk/v1.js"></script> to your WebGL template's index.html.
// Phaser
this.sound.mute = izy.muted;
izy.on("audio", ({ muted }) => (this.sound.mute = muted));
// Construct 3: call the functions above from "Execute JavaScript" actions.
// Godot (HTML5 export): JavaScriptBridge.eval("IzySDK.init().then(i => i.ads.interstitial())")Требования к сборке
- Zip с index.html в корне (или в одной папке). До 100 МБ в архиве, 300 МБ в распакованном виде и 3000 файлов.
- Только относительные пути, всё нужное игре лежит в архиве. Ничего не загружайте по http.
- Без исполняемых файлов и серверных скриптов (.exe, .php, .sh и подобные отклоняются).
- Без своей аналитики, трекеров и рекламы: рекламой занимается izy.gg, а приватность игроков защищают наши правила согласия.
- Подстраивается под любой размер окна и работает с сенсорным управлением, если отмечена как подходящая для телефонов. Игра запускается в изолированной рамке на games.izy.gg.
- Unity WebGL: сжатие Brotli или Gzip подходит, decompression fallback не нужен.
Тестирование
Локально: откройте index.html через любой локальный сервер. SDK работает автономно, показывает 3-секундную тестовую рекламу и возвращает true для рекламы за вознаграждение.
В портале: после загрузки сборки нажмите «Проверить сборку». Она запускается так же, как на izy.gg, с тестовой рекламой, до отправки на проверку.
Проверка
Каждую новую игру и каждую новую версию проверяет человек, обычно в течение 2 рабочих дней. Мы отклоняем игры, которые:
- не загружаются, вылетают или неиграбельны на заявленных устройствах;
- содержат вредоносный код, майнеры, фишинг или скрытые перенаправления;
- показывают контент для взрослых, разжигающий ненависть или незаконный, либо используют чужие материалы без прав;
- показывают свою рекламу, ссылки на другие игровые сайты или просят личные данные;
- злоупотребляют рекламой за вознаграждение или заставляют смотреть рекламу.
Доход и выплаты
Вы получаете свою долю (по умолчанию 70%) дохода от рекламы внутри ваших игр. Доход появляется в портале ежедневно, последние два дня предварительные и фиксируются в течение 48 часов.
Запросите выплату на странице «Доход и выплаты», когда баланс достигнет минимума (по умолчанию 50 USD). Мы платим в течение 10 рабочих дней через PayPal, Payoneer, Wise, USDT (TRC-20) или банковским переводом.
Помощь
Вопросы о SDK, проверке или выплатах: direct@izy.gg.