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


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

Шаг 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/plugins

ВНИМАНИЕ! Я ТУТ ПО-ПУТИ СМЕНИЛ OS И ДЕЙСТВУЮЩИЙ ПРОЕКТ, НО СУТИ ЭТО НЕ МЕНЯЕТ, НЕ СТОИТ ПУГАТЬСЯ.

Должно получиться вот так с папкой admob-lib:

И вот так с файлами плагина:

Версии плагинов могут отличаться, так как движок развивается и плагин - тоже.

Шаг 8. Прописываем ключи AdMob. (ДЛЯ КАЖДОГО ПРОЕКТА)

Если ещё не регистрировались, то идем и регистрируемся на сайте AdMob.com.

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

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

Если всё прошло успешно, можно переходить к созданию нового приложения!

И далее видим вот такое окошко:

Я подчеркнул то, что нам нужно сразу же скопировать. Копируем это и идем в файловую систему. Нужно в папке с кастомным шаблоном экспорта найти файл манифеста, и открыть его для редактирования.

Теперь нужна вот такая конструкция.

<meta-data   android:name="com.google.android.gms.ads.APPLICATION_ID"   android:value="YOUR_CODE"/>

Вместо YOURCODE нужно вставить идентификатор вашего приложения в сервисе AdMob. Чтобы получилось вот так:

<meta-data   android:name="com.google.android.gms.ads.APPLICATION_ID"   android:value="ca-app-pub-1071641137836562~1671788713"/>

В файле манифеста находим строчку <!--CHUNK_APPLICATION_END-->

За ней вставляем один перенос строки и затем наш код:

Теперь на сайте AdMob можно создавать рекламный блок, который вам нужен:

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

Между-страничное объявление - это большое рекламное объявление при переходе между сценами.

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


Узел 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.


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

Осталось отметить в параметрах экспорта галочку Use Custom Build, чтобы проект создавался на основе вашего шаблона экспорта, а не базового, и отметить плагин 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

Become a patron to

6
Unlock 6 exclusive posts
Be part of the community
Connect via private message