Статьи - Внедрение рекламы в Android игру | Godot Admob

Статьи - Внедрение рекламы в Android игру | Godot Admob

Подразумевается, что вы уже научились экспортировать проект под Android.
Для того, чтобы научиться, смотрите эту статью: Экспорт игры для Android в Godot Engine
После того, как у вас получается экспортировать проект под Android, переходим к усложнению экспорта и добавлению рекламы.

Всё, написанное далее, актуально только для Godot Engine 3.2.x.


Шаг 1. Скачать модуль рекламы AdMob (ОДИН РАЗ)

Находится он тут: Shin-NiL/Godot-Android-Admob-Plugin
Тут в разделе релиза необходимо выкачать актуальную версию модуля.
Затем найти там две папки: - admob-plugin - admob-lib Они пригодятся позже. Рекомендую сохранить их на компьютер куда-нибудь, так как для других проектов их потребуется скачать заново.

Шаг 2. Скачать и установить OpenJDK (ОДИН РАЗ)

Идём сюда: AdoptOpenJDK
Тут просто скачиваем для свой OS и устанавливаем 8 HOTSPOT версию JDK.
Установить можно в любую папку, главное, чтобы вы потом могли найти каталог.

Шаг 3. Прописать переменные среды. (ОДИН РАЗ)

Из урока про обычный экспорт под Android вы должны уже знать папку установки Android SDK.
Для корректной работы компилятора (это же компилятор?) Gradle требуется ТРИ переменные окружения:
- ANDROID_SDK_ROOT должна вести в папку установки Android SDK.
у меня она ведет в C:\Apps\A_SDK
- JAVA_HOME должна вести в в папке JRE внутри папки с OpenJDK.
у меня это выглядит так: C:\Program Files\AdoptOpenJDK\jdk-8.0.242.08-hotspot\jre
- JDK_HOME должна вести в папку, куда установлен OpenJDK.
опять же, мой пример: C:\Program Files\AdoptOpenJDK\jdk-8.0.242.08-hotspot

Шаг 4. Скачать дополнение для Android SDK (ОДИН РАЗ)

Этот шаг довольно простой, скачиваем по ссылке Command-Tools нужный набор, распаковываем, в нем находим папку tools и помещаем её в папку Android SDK.
У меня получилось так: C:\Apps\A_SDK\tools

Шаг 5. Установка нужных API для компилятора. (ОДИН РАЗ)

Запускаем Android Studio, в нем находим SDK Manager и в SDK Manager в разделе Android SDK установить и отметить (галочками) API 28 и выше. У меня таковых получилось два.

Шаг 6. Настройки Godot Engine. (ОДИН РАЗ)

Они очень простые. Нужно перейти в параметры редактора, затем в Export -> Android и заполнить параметр Custom Build Sdk Path.
Туда нужно поместить путь до Android SDK, у меня это C:\Apps\A_SDK

Шаг 7. Настройка проекта. (ДЛЯ КАЖДОГО ПРОЕКТА)

В Godot Engine переходим в Project->Install Android Build Template, после дополнительного вопроса (и положительного ответа) в папке проекта будет создана папка "android". По-сути это и есть шаблон текущего проекта для генерации на его основе итогового приложения.


Теперь берем папки admob-plugin и admob-lib из первого шага и помещаем их таким образом:
- папку admob-lib в корневую папку вашего проекта
- папку admob-plugin в папку android
Должно получиться вот так:


Далее открываем настройки проекта и во вкладке Android в параметр Modules указываем
org/godotengine/godot/GodotAdMob


Ну и осталось отметить в параметрах экспорта галочку Use Custom Build, чтобы проект создавался на основе вашего шаблона экспорта, а не базового.


После этого при первом экспорте вашего приложения будет сгенерирован и закеширован ваш собственный шаблон экспорта для текущего проекта. Больше что-то настраивать и конфигурировать не потребуется.
Первый экспорт может происходить несколько минут, не стоит пугаться. Godot как бы на это время "подвиснет", это абсолютно нормально.
Последующий экспорт уже будет происходить быстро, как обычно.

Шаг 8. Добавление узла на сцену. (ДЛЯ КАЖДОГО ПРОЕКТА)

Когда предыдущие шаги будут выполнены, у вас в списке новых узлов появится AdMob.

Важно! На сцене может содержаться только ОДИН узел Admob. И его, в общем-то, достаточно.

После добавления узел можно настраивать.

Для работы с AdMob и получением дохода от игры требуется зарегистрироваться на официальном сайте AdMob.com.

Там потребуется заполнить некоторые ДОСТОВЕРНЫЕ сведения о себе.
В противном случае ваша реклама в приложении просто не будет работать. А если вы заполните недостоверные данные, то ваш аккаунт могут попросту заблокировать. Без каких-либо поблажек.

После заполнения данных потребуется подождать их проверки. На это уходит порядка 10-ти часов. Во всяком случае у меня.


Когда всё будет готово, можно добавлять новое приложение, которое не обязательно должно быть опубликовано в Google Play.
После его создания на вкладке "Рекламные блоки" можно создавать свои типы рекламы.

Баннер - это маленькая фигулина, которая обычно раздражает пользователей приложения, так как маячит перед глазами бОльшую часть времени.
Между-страничное объявление - это большое рекламное объявление при переходе между сценами.
С вознаграждением - это тоже большое объявление, после просмотра которого игроку добавят циферок к какому-либо значению, а вам - денежек.
Там есть ещё один тип рекламы, но он плагином пока не поддерживается, поэтому и толку от него для нас нет.

После создания нужного блока рекламы (например с вознаграждением), можно воспользоваться инструкцией со страницы плагина (ссылка в Шаге 1).


Узел AdMob содержит в себе набор методов и сигналов, которыми вы можете пользоваться.

Логика такая: есть три основных метода ($ad - узел AdMob): - $ad.load_rewarded_video() - $ad.load_banner() - $ad.load_interstitial()
они подгружают в фоне нужный тип рекламы, который вы хотите (можно хоть все три разом подгрузить).

Для каждого типа рекламы есть в настройках соответствующее поле с указанием ID. Оно соответствует ID вашего рекламного блока.


Чтобы отобразить рекламу есть ещё три основных метода ($ad - узел AdMob): - $ad.show_rewarded_video() - $ad.show_interstitial() - $ad.show_banner()

Они отвечают уже за, непосредственно, отображение самой рекламы.

Соответственно, подгрузив методом load_rewarded_video() его можно отобразить методом show_rewarded_video().
С остальными так же.

При взаимодействии с рекламой вызываются разные сигналы.
Для рекламы с вознаграждением вызовется сигнал rewarded.
Это как раз тот тип рекламы, при котором вы можете показывать пользователю рекламу за вознаграждение в виде патронов, жизней, дополнительных попыток пройти уровень и т.д. Думаю, фантазия вас не подведет.

Обработать такой сигнал можно так:
func _on_ad_rewarded(currency, ammount): print(currency, '->', ammount) # currency - тип вознаграждения, ammount - количество единиц

Количество единиц вознаграждения настраивается в параметрах рекламного блока в панели управления AdMob.

Возможные проблемы

Если при компиляции будет ругаться на отсутствие файла repositories.cgf, его нужно создать в папке конфигурации ".android" в папке пользователя ОС.
У меня файл требовался тут: C:\Users\SkanerSoft\.android\repositories.cgf
Заполнять файл ничем не нужно.
При возникновении какой-либо ошибки, которую вы не смогли решить самостоятельно, пишите в чате ВКонтакте или Discrod.



Материал основан на официальной инструкции от разработчиков Godot Engine: https://docs.godotengine.org/en/latest/getting_started/workflow/export/android_custom_build.html
Не забудьте подписаться на мой YouTube канал SkanerSoft, где вы сможете научиться создавать игры на Godot Engine в любом жанре, стиле и с любой сложностью!
Добро пожаловать, Гость! Вход / Регистрация