Как игру на Godot выложить в RuStore и подключить монетизацию
В этой статье разберемся с тем, как добавить игру на Godot в RuStore и прикрутить рекламную монетизацию от Яндекса.
Настройка Android-эскпорта
Установка OpenJDK
Первое что нужно сделать, скачать Java JDK - https://adoptium.net/temurin/releases/?variant=openjdk17
Установка Android SDK
Следующим шагом нужно установить Android Studio и включить там все нужные пакеты.
Ссылка на скачивание Android Studio - https://developer.android.com/studio?hl=ru
Перечень пакетов, которые должны быть установлены в Android Studio:
- Android SDK Platform-Tools version 34.0.0 или выше
- Android SDK Build-Tools version 34.0.0 или выше
- Android SDK Command-line Tools
- CMake
- NDK
Актуальные зависимости в документации Godot - https://docs.godotengine.org/en/stable/tutorials/export/exporting_for_android.html
Посмотреть установленные пакеты в Android Studio можно так: settings (иконка шестерёнки) -> SDK Manager -> SDK Tools
Если какие-то пакеты не отмечены галочкой, нужно её поставить и нажать "Apply".
Устанавливаем необходимые зависимости в Godot
После установки OpenJDK и Android SDK нужно указать пути до них в Godot, а также создать debug.keystore.
В Godot открываем Editor -> Editor Settings -> Export -> Android
В поле Android SDK path указываем путь до Android SDK. Он выглядит примерно так C:\Users\{тут имя твоего пользователя}\AppData\Local\Android\Sdk
В поле Java SDK path указываем путь до Java SDK. Он выглядит примерно так
C:\Program Files\Eclipse Adoptium\jdk-17.0.12.7-hotspot
После этого создаём debug.keystore и указываем путь до него. Этот файл необходим для установки приложений, скачанных не из магазина. Так Android понимает, что этому APK-пакету можно доверять, и он находится на стадии разработки.
Чтобы создать этот ключ нужно зайти в консоль (cmd в windows). Выбрать нужную папку где будет храниться ключ и ввести команду:
keytool -keyalg RSA -genkeypair -alias androiddebugkey -keypass android -keystore debug.keystore -storepass android -dname "CN=Android Debug,O=Android,C=US" -validity 9999 -deststoretype pkcs12
И нажать Enter для выполнения. Будет создан debug.keystore путь до которого нужно указать в поле Debug Keystore в том же окне в Godot где указывали пути до SDK.
Финально окно настроек в Godot будет выглядеть примерно так:
Включаем сжатие текстур ETC2
По умолчанию в Godot может быть отключено сжатие текстур ETC2, которое нужно для экспорта на Android. Переходим Project Settings -> Rendering -> Textures и включаем галку напротив поля import ETC2 ASTC. Если поля не видно нужно включить "Advanced Settings" в правом верхнем углу
Установка шаблона для экспорта на андроид и настройки экспорта
Первым делом нужно настроить шаблон для экспорта проекта. Этот шаблон будет использоваться для создания полноценного Android приложения. Это делается через меню Project -> Install Android Build Template
Шаблон нужно будет скачать. Это займет некоторое время. После применения шаблона, в проекте появится папка android со всеми необходимыми файлами для настройки Android проекта.
Переходим на экран экспорта через меню Project
И теперь можем экспортировать проект для Android.
Для публикации необходимо подписать нашу сборку. Для этого генерируем подпись(она же Release Keystore) через CMD как это уже делали для debug.keystore. Надо выбрать папку где будут храниться ключи и открыть CMD в этой папке(вводим cmd в строке поиска в проводнике). Код для генерации Release Keystore
keytool -keyalg RSA -genkeypair -alias supergame -keypass supergame -keystore supergame.keystore -storepass supergame
supergame в этом коде можно заменить на что-то своё
В настройках экспорта в поле Debug указывайте путь до ключа debug.keystore и в поле Release указывайте путь до Release Keystore. А в полях User, Password и Release User, Release Password указывайте данные которые вводили при создании этих ключей. У меня это были: androiddebugkey и android для Debug и supergame и supergame для Release
И нужно добавить кастомную иконку в полях Launcher Icons. Размеры 192х192 и 432х432. Эта иконка будет отображаться в телефоне у пользователя.
Также вводим название вашей игры в поле "Name"
Публикуем игру в RuStore
Переходим в RuStore для разработчиков https://www.rustore.ru/developer и создаём аккаунт.
Чтобы работать с RuStore нужно или юридическое лицо или статус самозанятого. Физические лица не могут получать выплаты.
После регистрации и подтверждения аккаунта переходим в консоль https://console.rustore.ru/apps и нажимаем кнопку "Добавить приложение"
Выбираем тип приложения "Универсальный", тип монетизации "Бесплатное", вводим название приложения и нажимаем кнопку "Добавить"
Потом в разделе "Версии" нажимаем "Загрузить версию". После заполняем карточку игры.
- Загружаем APK
- Вводим название
- Выбираем тип "Игра"
- Выбираем нужную основную категорию
- Дополнительную категорию
- Возрастную категорию
- Краткое описание
- Подробное описание. в подробном описании обязательно оставляем свою почту для связи. То есть пишем например - Контакты для связи: ivanov@yandex.ru. Это нужно для регистрации в РСЯ для подключения рекламной монетизации
- Добавляем иконку приложения 512х512
- Скриншоты для телефона и планшета
- По желанию можно добавить видео
Отправляем на модерацию. Модерация очень быстрая. Обычно в течении 1-2 часов.
Подключаем рекламную монетизацию РСЯ
Подключать будем рекламу от яндекса, поэту нужно быть зарегистрированными в РСЯ.
Если вы уже зарегистрированы в РСЯ переходим туда https://partner.yandex.ru/v2/inapp/app/ и нажимаем "Реклама в приложениях" -> "Добавить приложение"
После выбираем "Приложение опубликовано в другом магазине"
- В поле "Магазин приложений" выбираем RuStore
- В поле "Название приложения" вводите название вашей игры
- В поле "Название пакета" вводим часть ссылки на игру после слова "app/"
- В поле "Ссылка на приложение" вводим ссылку на приложение
- В поле "Разработчик" вводим своё имя и фамилию
После заполнения всех полей нажимаете кнопку "Добавить".
Через некоторое время придёт код подтверждения на почту и новая площадка будет зарегистрирована.
Заводим баннеры в РСЯ
Переходите в новосозданную площадку и нажимайте "Добавить блок"
На выбор будет несколько форматов, выберите "Баннер" и нажмите кнопку "Создать". Это простой баннерный блок который будет висеть на каждой странице игры
Баннер создан нам здесь понадобится только его ID.
Подключаем плагин для яндекс рекламы
Для Godot 3 можно использовать - https://gitflic.ru/project/dimega/godot-yandex-ads-android/release/ad814fc7-5a8a-49f3-9820-e4dc13482244
Для Godot 4 - https://github.com/noctisalamandra/godot-yandex-ads-android
В Godot 3 и Godot 4 есть отличия по подключению плагина
Подключаем в Godot 3
- Скачиваем и распаковываем архив с гитхаба
- Перемещаем файлы GodotAndroidYandexAds.gdap и GodotAndroidYandexAds-release.aar в /android/plugins в Godot
Подключаем в Godot 4
Скачиваем и распаковываем архив https://github.com/noctisalamandra/godot-yandex-ads-android/releases/download/v1.1/addons.zip
Папку addons копируем в корень проекта на Godot
В project settings включаем плагин
При эскпорте включаем "Use Grade Build"
В секции "Permissions" ставим галки "Access Network State" и "Internet".
Подключаем рекламу в игре
Создайте узел для рекламного модуля в сценах, где он вам нужен.
И введите идентификатор вашего объявления.
В build.gradle (android -> build -> build.gradle) добавьте следующий код:
dependencies {
...
implementation 'com.yandex.android:mobileads:6.4.1'
}android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}Затем вы можете использовать сигналы и функции, написанные в скрипте, для показа рекламы. Для баннера это работает так, добавляем в _ready функцию загрузки баннера
func _ready(): $YandexAds.load_banner()
И после присоединяем сигнал, обрабатывающий что делать когда баннер загрузился:
func _on_yandex_ads_banner_loaded(): $YandexAds.show_banner()
Список вызовов и обработчиков:
func _ready(): $YandexAds.load_banner() func _on_rewarded_pressed(): $YandexAds.load_rewarded_video() func _on_interstitial_pressed(): $YandexAds.load_interstitial() func _on_yandex_ads_rewarded_video_loaded(): $YandexAds.show_rewarded_video() func _on_yandex_ads_interstitial_loaded(): $YandexAds.show_interstitial() func _on_yandex_ads_banner_loaded(): $YandexAds.show_banner() func _on_yandex_ads_rewarded(currency, amount): pass
После этого при экспорте в Android версию с 1 на 2 и грузим новую версию в RuStore