
Приветствую! Размещение рекламы с помощью рекламной сети Google AdMob является одной из самых распространённых способов монетизации своих мобильных игр. А интеграция данной рекламной сети в проект Unity занимает не более пяти минут.
В данной статье мы подробно разберём интеграцию рекламной сети AdMob в свою Unity игру. И начнём мы с самого простого, с настройки проекта AdMob.
Настройка проекта AdMob
Первым делом нам необходимо войти в личный кабинет AdMob, перейдя по ссылке https://admob.google.com/home/. Если аккаунта нет, зарегистрируйте его.
После входа в личный кабинет, заходим на страницу "Главная", и жмём кнопку "Импортировать", для создания своего проекта для Android или iOS.

После создания своего первого проекта, нам необходимо создать рекламные блоки. Для этого необходимо перейти во вкладку "Рекламные Блоки", и там создать свой первый рекламный блок.

Google AdMob предоставляет 6 видов рекламных блоков. Мы рассмотрим только два из них, то-есть самые популярные, а именно "Межстраничное объявление" - Interstitial, и "С вознаграждением"- Rewarded. Эти два вида рекламных блоков необходимо создать.

Псоле создания данных блоков, для вас сгенерируют уникальные идентификаторы для вашего приложения(в моём случае для Android), а так же уникальные идентификаторы для ваших рекламных блоков. В дальнейшем мы их будем использовать в скрипте.

Нам ещё понадобятся не только настоящие идентификаторы рекламных блоков, но и тестовые! Google предоставляет тестовые рекламные ID для каждого вида рекламы по этой ссылке: https://developers.google.com/admob/android/test-ads.

Смысл тестовых id в том, чтобы на начальном этапе мы могли спопойно тесторивать работоспособность показа рекламы в Unity. Если вы будете тестирование проводить с настоящими id рекламных блоков, то ваш аккаунт могут заблокировать! Данные идентификаторы мы вставим в скрипт чуть позже, а пока перейдём к скачиванию рекламного Google плагина.
Google Плагин
Конечно же, мы будем исользовать готовые рекламные методы, которые предоставляет сам гугл, поэтому нам необходимо скачать специальный плагин(ассет) по данной ссылке, и загрузить его в проект. На момент написания данной статьи, версия плагина v6.1.2.

После установки плагина, переходим во вкладку Assets - Google Mobile Ads - Settings... И в окне Inspector у нас откроются настройки. Сюда нужно вписать id нашего приложения Android, которое нам выдали в личном кабинете AdMob. Если у вас приложения создано под iOS, то нужно вставить id приложения iOS.

На этом всё! Теперь можно спокойно занятся написанием скриптов.
Написание скриптов
Инициализация
Первым делом нам необходимо инициализировать рекламный модуль. Для этого с помощью окна Project создадим C# скрипт, и назовём его AdInitialize. Впишем в него следующий код:
using UnityEngine;
using GoogleMobileAds.Api;
public class AdInitialize : MonoBehaviour
{
private void Awake()
{
MobileAds.Initialize(InitStatus => { });
}
}
Реклама: Interstitial
Теперь перейдём к написанию скрипта, который будет запускать рекламу типа Interstitial (межстраничная реклама). Для этого создадим C# скрипт и назовём его InterAd. Впишем в него следующий код:
using UnityEngine;
using GoogleMobileAds.Api;
public class InterAd : MonoBehaviour
{
private InterstitialAd interstitialAd;
private string interstitialID = "ca-app-pub-3940256099942544/1033173712";
private void OnEnable()
{
interstitialAd = new InterstitialAd(interstitialID);
AdRequest request = new AdRequest.Builder().Build();
interstitialAd.LoadAd(request);
}
public void Show()
{
if (interstitialAd.IsLoaded())
{
interstitialAd.Show();
}
}
}
Чтобы вызвать нашу рекламу на игровой сцене, нам всего лишь нужно вызвать метод Show().
ВАЖНО: в строке #7 впишите ТЕСТОВЫЙ id рекламного блока типа Interstitial, то-есть межстраничная реклама. Перед билдингом, не забудьте заменить тестовый id на реальный.
Реклама: Rewarded
Теперь создадим рекламу типа Rewarded, то-есть реклама с вознаграждением. Она делается почти так же. Создадим C# скрипт с названием RewardAd, и впишем в него следующий код:
using UnityEngine;
using GoogleMobileAds.Api;
public class RewardAd : MonoBehaviour
{
private RewardedAd rewardedAd;
private string rewardedlID = "ca-app-pub-3940256099942544/5224354917";
private void OnEnable()
{
rewardedAd = new RewardedAd(rewardedlID);
AdRequest request = new AdRequest.Builder().Build();
rewardedAd.LoadAd(request);
rewardedAd.OnUserEarnedReward += HandleUserEarnedReward;
}
private void HandleUserEarnedReward(object sender, Reward e)
{
Debug.Log("Реклама просмотрена. Добавляем боунсы");
}
public void Show()
{
if (rewardedAd.IsLoaded())
{
rewardedAd.Show();
}
}
}
Как видите,скрипт аналогичен. Здесь так же присутствует метод Show(), который нам необходимо вызывать в те моменты, когда мы хотим запустить рекламу. Единственное, на что ещё хотелось бы обратить внимание, это на метод HandleUserEarnedReward() в строке #19. Он автоматически будет выполнятся сразу же после того, как будет просмотрена реклама. В данном методе можете как-нибудь наградить игрока за просмотр рекламы.
ВАЖНО: в строке #7 впишите ТЕСТОВЫЙ id рекламного блока типа Rewarded, то-есть реклама с вознаграждением. Перед билдингом, не забудьте заменить тестовый id на реальный.
Завершение
ВСЕ эти написанные скрипты присвойте какому-нибудь объекту. Обычно в таких случаях создают новый пустой объект, и помещают на него все 3 скрипта. После чего можете запустить свой проект, и успешно протестировать работоспособность рекламы.
Если остались какие-либо вопросы, пишите в комментариях. А так же буду рад вашей поддержке :)

