Как добавить рекламную сеть Admob в Unity 4.6 и нарезать капусту

 

Секунда СЕО онанизма: В данной статье раccмотрим один из способов, как установить admob в Unity3d.

Итак, начнем,

Создание проекта в Unity3d 4.6

Скачаем последнюю стабильную версию с официального сайта unity3d.com и установим. Создадим новый проект и назовем его unity3d

Unity - Project Wizard (4.6.2f1) 2015-02-24 16.19.47

В вресии Unity3d 4.6 появлись богатые возможности по созданию интерфейса пользователя через окно редактора проекта. Раньше гейммастеру приходилось  многие элементы расписывать через скрипты.

Для начала создадим UI поле canvas с будущим создержимым ползовательского интефейса. Данный канвас будет содержать кнопку “Выход” и рекламный блок.

01

Как может заметить внимательный читатель объект convas спровоцировал добавление еще одного важного объекта EventSystem. Данный объект служит для прослушки событий, происходящих в Пользовательском Интерфейсе (UI) и передачи перехваченных событий листенеру в  каком-нибудь коде. Короче, он нужен, чтобы!!!!!

 

 

создадим объект UIManager и скрипт к нему UiManagerScript, который будет разруливать события нажатия мыши на разные элементы интерфейса. В нашем случае прослушивать мы будет только кнопку “Выход”

03

 

Настроим кнопочку, поправив шрифт, текст этикетки на “Выход” и название самого объекта на ButtonExit и свяжем событие “Нажатие” с нашим объектом UIManager. Так как скрипт для UIManager еще не написан мы не можем выбрать метод для выполнения действий при нажатии

04

 

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

using UnityEngine;
using System.Collections;

public class UIManagerScript : MonoBehaviour {

	public void OnClickExit(){
		Application.Quit();
	}
}

Теперь можно смело связать метод OnClickExit с Прослушивателем кликов у кнопки ButtonExit

05

 

Установка Admob plugin for unity3d 4.6

На официальном сайте документации по внедрению admob появился целый раздел, посвященный настройки рекламы в играх. В том числе настройки рекламы в Unity3d 4.6

Game Developers_ Ads Best Practices - Google Mobile Ads SDK — Google Developers - Google Chrome 2015-02-24 18.10.59

 

Пользуясь подробной инструкцией описанной в документации скачаем плагин  Google Mobile Ads Unity Plugin 2.1

Releases · googleads_googleads-mobile-plugins - Google Chrome 2015-02-24 18.16.53

Импортируем плагин в Unity3d 4.6

06

Теперь нам необходимо создать менеджера, который будет заниматься запуском рекламы admob. Создадим пустой gameobject и назовем его ADManager.

07

Напишем простой скрипт к AdManager

using UnityEngine;
using System.Collections;
using GoogleMobileAds.Api;

public class ADManagerScript : MonoBehaviour {

	// Метод Start() запускается один раз, до первого вызова метода "Обновить кадр"
	void Start(){
		RequestBanner ();
	}

	private void RequestBanner()
	{
		#if UNITY_ANDROID
		string adUnitId = "ca-app-pub-3940256099942544/6300978111";
		#elif UNITY_IPHONE
		string adUnitId = "ca-app-pub-3940256099942544/6300978111";
		#else
		string adUnitId = "ca-app-pub-3940256099942544/6300978111";
		#endif

		// Создаем баннер 320x50 в верхней части экрана
		BannerView bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top);
		// Подготовлеваем запрос к рекламной сети
		AdRequest request = new AdRequest.Builder().Build();
		// Загружаем баннер
		bannerView.LoadAd(request);
	}
}

Вставляем идентефикатор баннера вида ca-app-pub-ххххххxxxxxxxxxxxx/xxxxxxxxxxx в в нужные места для Android платформы и IOS платформы. Данные идентефикаторы можно получить в настроке баннеров личного кабинета Admob.

Используемый автором идентефикатор баннера является фэйковым и предоставляется google для тестирования. Можете смоло  им пользоваться!

После сохранения скрипта,  запускаем наше приложение и смотрим, какая информация появиться в логах

Unity - scene1.unity - unity3d - PC, Mac & Linux Standalone_ _DX11 on DX10 GPU_ 2015-02-24 19.28.15

Dummy LoadAd
UnityEngine.Debug:Log(Object)

Это означает что фейковая рекалама была успешно запущенна в нашем приложении! Однако, UnityPlayer Не поддерживает вывод графических элементов рекламы, поэтому попытаемся запустить приложение на устройстве с ОС Android для тестирования.

Подготовка к компиляции под Android

Заходим в настройку проекта для Android и меняем название пакета. Android ОС не допускает в названии пакета заглавные буквы.

08

Запускаем сборку проекта!

но.. но, кажется, что-то идет не так, что-то не так

Error building Player: CommandInvokationFailure: Failed to re-package resources. See the Console for details.
AndroidManifest.xml:9: error: Error: No resource found that matches the given name (at 'value' with value '@integer/google_play_services_version').

Оказывается, для работы admob Необходимо к android проекту прикрепить библиотеку admob.

С 2014 года admob Входит в основной пакет GooglePlayServices. Поэтому, чтобы получить библиотеку admob необходимо при помощи SDK Manager загрузить с репозитория нужную зависимость

Android SDK Manager 2015-05-20 00.36.46

Менеджер пакетов находится в корне папки adnroid-sdk.

После загрузки пакета Play Services, необходимо скопировать папку с библиотекой в unity проект.  То есть, копируем библиотеку
android-sdk\extras\google\google_play_services\libproject\google-play-services_lib
в Unity проект
Assets/Plugins/Android

И наконец, пробуем заного собрать apk файл.

Напоминаю, при ошибке

Error: Debug Certificate expired on 03.05.15 18:20

Необходимо удалить файл debug.keystore из папки %username%/.adnroid

Leave a Reply

Your email address will not be published. Required fields are marked *