Как стать автором
Обновить

Добавление рекламы AdMob в Android-приложение, созданное на Unity3D + решение проблемы некликабельности

Доброго времени суток, уважаемые Хабровчане, я понимаю, что данный пост уже был, но написан он ужасно, не понятно, к тому же указанный в нём метод ещё и не работает.
Поэтому сегодня я предлагаю к рассмотрению детальный туториал по созданию рекламы в Android-приложении, созданном на движке Unity3D, рассчитанный для новичков.

Начнём.
Что нам понадобится:
1) Плагин для Unity3D, ссылка на GitHub, скачиваем под нашу версию Unity;
2) Аккаунт в сервисе AdMob;
3) Сам движок Unity3D;

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

Монетизируем новое приложение, потом его можно будет привязать к игре на Google Play после процедуры модерации.

Настройка аналитики так же на вкус и цвет, в зависимости от надобности. Admob выдаёт результаты не в реальном времени а по прошествии некоторого времени (по моим наблюдениям двое суток), когда аналитика позволяет видеть всё в реальном времени, если Вам нужны результаты сразу.

Следующим шагом будет создание рекламный блоков. Вы можете создать один для всей игры, а можете штук 20 для всех сцен в игре, тут исключительно Ваш выбор, я делаю несколько игровых блоков на весь игровой процесс, так как в каждом случае вводить ID блока на каждую сцену — достаточно муторное занятие и отличий по эффекивности не имеет, разве что каждый блок прогружается в отдельности от других и это увеличивает количество показов рекламы.

Создаём баннер с частотой обновления 60 секунд, на самом деле можно указать любое значение, но важно, чтобы это значение так же было указано в плагине, скоро дойдём до этой части.
После создания баннера мы получаем идентификатор рекламного блока в формате: ca-app-pub-ххххххххххххххх/хххххххххх, этот идентификатор и является привязкой нашего рекламного блока в приложении с сервисом Admob. На этом манипуляции с Admob закончены.

Теперь переходим в Unity и переносим в него наш плагин, который скачали с GitHub (Assets -> Import Package -> Custom Package) и получаем все необходимые файлы. Плагин уже готов к работе по средствам префаба, который нужно просто перенести на сцену, в которой будет отображаться реклама.


В префабе находится 3 скрипта, каждый отвечает за свою роль:
1) Ad Mob Plugin — главный скрипт, который и выдаёт нашу рекламу.
2) Ad Mob Plugin Debug — дополнительный скрипт, который показывает кнопки, с помощью которых можно менять положение / вид / размер баннера в приложении.
3) Ad Mob Plugin Mockup — макет баннера. Используется для теста рекламного блока на сцене.
Последние два скрипта используются для тестирования, их нужно обязательно отключить перед билдом игры, иначе Вы получите игру с кнопками и макетом. Я не буду останавливаться на этих скриптах, так как самый главный для нас — это первый скрипт.

Отмечу несколько главных полей с этом скрипте:
Publisher ID — это и есть тот самый идентификатор рекламного блока, который мы получили в Admob (ca-app-pub-ххххххххххххххх/хххххххххх). Соответственно вводим его в это поле.
Is Testing — режим тестирования. Обязательно убираем галочку перед билдом.
Size — размер баннера. Выбираем нужный (можно посмотреть в тестовом режиме каждый размер).
Orientation — ориентация по вертикали или по горизонтали.
Horizontal position — позиция по горизонтали.
Vertical position — позиция по вертикали.
Refresh Interval — частота обновления рекламного блока, ставим то же значения, что указали в Admob (60 сек.).
Load on Start — включение загрузки рекламы сразу при старте приложения.
Дальше идут настройки Target — включение режима направленной (таргетированной) рекламы на определённую аудиторию.

Напомню основные моменты: Перед билдом отключаем Is Testing в Ad Mob Plugin, отключаем в префабе Ad Mob Plugin Debug и Ad Mob Plugin Mockup, вписываем наш Идентификатор рекламного блока в Publisher ID. В сцене с рекламой один префаб Admob Plugin.
Билдим наше приложение и обяательно проверяем на кликабельность. Если Ваша реклама показывается, кликается и переносит Вас по ссылкам, значит всё хорошо и в дальнейшем чтении этого поста вы не нуждаетесь. Но будьте осторожны! Если Вы будете кликать очень много раз, это означает, что на 1000 показов рекламы у вас 1000 кликов, т.е. эффективность рекламы = 100%, чего, конечно же, никогда не бывает и Ваш аккаунт Admob могут забанить за накрутку кликов.

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

Вся суть проблемы заключается в файле Android Manifest плагина.

Находим в Unity манифест (идёт с плагином при установке), открываем в редакторе и переставляем в нём одну строчку:

<meta-data android:name="unityplayer.ForwardNativeEventsToDalvik" android:value="true" />




Сохраняем манифест, билдим приложение и проверяем на кликабельность.

В следующем посте опишу реализацию leaderboard для Android приложения на Unity3D.

Спасибо за внимание!
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.