Рекламный баннер

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

В этом руководстве показано, как интегрировать рекламные баннеры из AdMob в приложение Unity. Помимо фрагментов кода и инструкций, он также содержит информацию о правильном выборе размеров баннеров и ссылки на дополнительные ресурсы.

Предпосылки

Полное Начало работы . В ваше приложение Unity уже должен быть импортирован подключаемый модуль Google Mobile Ads Unity.

Создать баннер

Первым шагом к отображению баннера является создание объекта BannerView в скрипте C#, присоединенном к GameObject .

Чтобы упростить интеграцию рекламы с помощью редактора Unity, попробуйте новую бета-версию рекламных мест .

using System;
using UnityEngine;
using GoogleMobileAds.Api;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    private BannerView bannerView;
    ...
    public void Start()
    {
        // Initialize the Google Mobile Ads SDK.
        MobileAds.Initialize(initStatus => { });

        this.RequestBanner();
    }

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

        // Create a 320x50 banner at the top of the screen.
        this.bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top);
    }
}

Конструктор для BannerView имеет следующие параметры:

  • adUnitId — идентификатор рекламного блока AdMob, из которого BannerView должен загружать рекламу.
  • AdSize – размер объявления AdMob, который вы хотели бы использовать (подробности см. в разделе " Размеры баннеров ").
  • AdPosition — позиция, на которой должен быть размещен рекламный баннер. В перечислении AdPosition перечислены допустимые значения позиции объявления.

Важно отметить, как используются разные рекламные блоки в зависимости от платформы. Вам нужно будет использовать рекламный блок iOS для отправки запросов объявлений на iOS и рекламный блок Android для отправки запросов на Android.

(Необязательно) Пользовательская позиция объявления

Для большего контроля над тем, где BannerView размещается на экране, чем то, что предлагается значениями AdPosition , используйте конструктор BannerView , который имеет координаты x и y в качестве параметров:

// Create a 320x50 banner ad at coordinate (0,50) on screen.
BannerView bannerView = new BannerView(adUnitId, AdSize.Banner, 0, 50);

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

(Необязательно) Пользовательские размеры объявлений

Помимо использования константы AdSize, вы также можете указать собственный размер для своего объявления:

AdSize adSize = new AdSize(250, 250);
BannerView bannerView = new BannerView(adUnitId, adSize, AdPosition.Bottom);

Всегда тестируйте тестовые объявления

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

Однако, как только вы зарегистрируете приложение в пользовательском интерфейсе AdMob и создадите собственные идентификаторы рекламных блоков для использования в своем приложении, вам потребуется явным образом настроить свое устройство в качестве тестового во время разработки. Это чрезвычайно важно. Тестирование с реальными объявлениями (даже если вы никогда не нажимаете на них) противоречит политике AdMob и может привести к блокировке вашего аккаунта. Прочтите Тестовые объявления , чтобы узнать, как убедиться, что вы всегда получаете тестовые объявления при разработке.

Загрузить объявление

После создания экземпляра BannerView следующим шагом будет загрузка рекламы. Это делается с помощью loadAd() в классе BannerView . Он принимает аргумент AdRequest , который содержит информацию о времени выполнения (например, информацию о таргетинге) для одного запроса объявления.

Вот пример, который показывает, как загрузить рекламу:

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

        // Create a 320x50 banner at the top of the screen.
        this.bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top);

        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();

        // Load the banner with the request.
        this.bannerView.LoadAd(request);
    }
...

Вот и все! Теперь ваше приложение готово к показу рекламных баннеров из AdMob.

Рекламные события

Чтобы дополнительно настроить поведение вашего объявления, вы можете подключиться к ряду событий в жизненном цикле объявления: загрузка, открытие, закрытие и т. д. Прослушайте эти события, зарегистрировав делегат для соответствующего EventHandler , как показано ниже.

...
using System;
using UnityEngine;
using GoogleMobileAds.Api;
...
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    private BannerView bannerView;

    public void Start()
    {
        this.RequestBanner();
    }

    private void RequestBanner()
    {

        #if UNITY_ANDROID
            string adUnitId = "ca-app-pub-3940256099942544/6300978111";
        #elif UNITY_IPHONE
            string adUnitId = "ca-app-pub-3940256099942544/2934735716";
        #else
            string adUnitId = "unexpected_platform";
        #endif

        this.bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Top);

        // Called when an ad request has successfully loaded.
        this.bannerView.OnAdLoaded += this.HandleOnAdLoaded;
        // Called when an ad request failed to load.
        this.bannerView.OnAdFailedToLoad += this.HandleOnAdFailedToLoad;
        // Called when an ad is clicked.
        this.bannerView.OnAdOpening += this.HandleOnAdOpened;
        // Called when the user returned from the app after an ad click.
        this.bannerView.OnAdClosed += this.HandleOnAdClosed;
        // Called when the ad click caused the user to leave the application.
        this.bannerView.OnAdLeavingApplication += this.HandleOnAdLeavingApplication;

        // Create an empty ad request.
        AdRequest request = new AdRequest.Builder().Build();

        // Load the banner with the request.
        this.bannerView.LoadAd(request);
    }

    public void HandleOnAdLoaded(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleAdLoaded event received");
    }

    public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
    {
        MonoBehaviour.print("HandleFailedToReceiveAd event received with message: "
                            + args.Message);
    }

    public void HandleOnAdOpened(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleAdOpened event received");
    }

    public void HandleOnAdClosed(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleAdClosed event received");
    }

    public void HandleOnAdLeavingApplication(object sender, EventArgs args)
    {
        MonoBehaviour.print("HandleAdLeavingApplication event received");
    }
}

Событие OnAdFailedToLoad содержит специальные аргументы события. Он передает экземпляр HandleAdFailedToLoadEventArgs с Message , описывающим ошибку:

public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
  MonoBehaviour.print("Banner failed to load: " + args.Message);
  // Handle the ad failed to load event.
};
Рекламное событие Описание
OnAdLoaded Событие OnAdLoaded выполняется после завершения загрузки объявления.
OnAdFailedToLoad Событие OnAdFailedToLoad вызывается, когда объявление не загружается. Параметр Message описывает тип произошедшей ошибки.
OnAdOpening Этот метод вызывается, когда пользователь нажимает на объявление. Если вы используете аналитический пакет для отслеживания кликов, это хорошее место для его записи.
OnAdClosed Когда пользователь возвращается в приложение после просмотра целевого URL-адреса объявления, вызывается этот метод. Ваше приложение может использовать его для возобновления приостановленных действий или выполнения любой другой работы, необходимой для подготовки к взаимодействию.
OnAdLeavingApplication Этот метод вызывается после onAdOpened , когда пользовательский клик открывает другое приложение (например, магазин Google Play) в фоновом режиме для текущего приложения.

В таблице ниже перечислены стандартные размеры баннеров.

Размер в дп (ШхВ) Описание Доступность Константа AdSize
320x50 Стандартный баннер Телефоны и планшеты BANNER
320x100 Большое знамя Телефоны и планшеты LARGE_BANNER
300 x 250 IAB Средний прямоугольник Телефоны и планшеты MEDIUM_RECTANGLE
468x60 Полноразмерный баннер IAB Таблетки FULL_BANNER
728x90 Таблица лидеров IAB Таблетки LEADERBOARD
Предоставленная ширина x адаптивная высота Адаптивный баннер Телефоны и планшеты Н/Д
Ширина экрана x 32|50|90 Умный баннер Телефоны и планшеты SMART_BANNER
Узнайте больше об адаптивных баннерах , предназначенных для замены смарт-баннеров .

Очистить рекламные баннеры

Когда вы закончите работу с BannerView , обязательно вызовите метод Destroy() , прежде чем добавлять ссылку на него:

bannerView.Destroy();

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

Дополнительные ресурсы

Образцы

Истории успеха