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

Выберите платформу: Android (бета-версия)Новый Android iOS Unity Flutter

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

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

Предварительные требования

Всегда проводите тестирование с помощью тестовых объявлений.

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

Однако после регистрации приложения в веб-интерфейсе Ad Manager и создания собственных идентификаторов рекламных блоков для использования в приложении, во время разработки явно настройте свое устройство как тестовое .

/21775744923/example/fixed-size-banner

Инициализируйте SDK для мобильной рекламы.

Перед загрузкой рекламы ваше приложение должно инициализировать плагин Google Mobile Ads Unity, вызвав метод MobileAds.Initialize() . Это нужно сделать только один раз, в идеале при запуске приложения.

using GoogleMobileAds;
using GoogleMobileAds.Api;

public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    public void Start()
    {
        // Initialize Google Mobile Ads Unity Plugin.
        MobileAds.Initialize((InitializationStatus initStatus) =>
        {
            // This callback is called once the MobileAds SDK is initialized.
        });
    }
}

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

Пример использования BannerView

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

Создать баннерное представление

Первым шагом при использовании баннерного представления является создание экземпляра баннерного представления.

// Create a 320x50 banner at top of the screen.
adManagerBannerView = new AdManagerBannerView("AD_UNIT_ID", AdSize.Banner, AdPosition.Top);

Замените AD_UNIT_ID на идентификатор вашего рекламного блока.

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

  • adUnitId : Идентификатор рекламного блока баннерной рекламы для загрузки.
  • AdSize : Размер баннера , который вы хотите использовать.
  • AdPosition : Позиция, в которой должны размещаться баннерные объявления.

(Необязательно) Создайте баннер с заданным положением.

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

// Create a 320x50 banner views at coordinate (0,50) on screen.
adManagerBannerView = new AdManagerBannerView("AD_UNIT_ID", AdSize.Banner, 0, 50);

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

(Необязательно) Создайте баннер с пользовательским размером.

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

// Create a 250x250 banner at the bottom of the screen.
AdSize adSize = new AdSize(250, 250);
adManagerBannerView = new AdManagerBannerView("AD_UNIT_ID", adSize, AdPosition.Bottom);

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

Ad Manager позволяет указать несколько размеров объявлений, которые могут быть показаны в AdManagerBannerView . Перед внедрением этой функции в SDK создайте позицию, ориентированную на одни и те же рекламные блоки, связанные с креативами разных размеров.

В вашем приложении передайте несколько параметров AdSize в ValidAdSizes :

// Create a 250x250 banner at the bottom of the screen.
adManagerBannerView = new AdManagerBannerView("AD_UNIT_ID", AdSize.Banner, AdPosition.Top);

// Add multiple ad sizes.
adManagerBannerView.ValidAdSizes = new List<AdSize>
{
    AdSize.Banner,
    new AdSize(120, 20),
    new AdSize(250, 250),
};

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

Загрузить баннерную рекламу

После размещения AdManagerBannerView перейдите к загрузке объявления с помощью метода LoadAd() в классе AdManagerBannerView . Для этого требуется Параметр, содержащий информацию, получаемую во время выполнения, такую ​​как данные о целевой аудитории, метки исключений и предоставленный издателем идентификатор.

Для загрузки рекламы создайте объект AdManagerAdRequest и передайте его методу LoadAd() .

// Send a request to load an ad into the banner view.
adManagerBannerView.LoadAd(new AdManagerAdRequest());

Прослушать события просмотра баннера

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

adManagerBannerView.OnBannerAdLoaded += () =>
{
    // Raised when an ad is loaded into the banner view.
};
adManagerBannerView.OnBannerAdLoadFailed += (LoadAdError error) =>
{
    // Raised when an ad fails to load into the banner view.
};
adManagerBannerView.OnAdPaid += (AdValue adValue) =>
{
    // Raised when the ad is estimated to have earned money.
};
adManagerBannerView.OnAdImpressionRecorded += () =>
{
    // Raised when an impression is recorded for an ad.
};
adManagerBannerView.OnAdClicked += () =>
{
    // Raised when a click is recorded for an ad.
};
adManagerBannerView.OnAdFullScreenContentOpened += () =>
{
    // Raised when an ad opened full screen content.
};
adManagerBannerView.OnAdFullScreenContentClosed += () =>
{
    // Raised when the ad closed full screen content.
};

Удалить баннерное отображение

Чтобы удалить баннер, вызовите метод Destroy() для освобождения ресурсов:

if (adManagerBannerView != null)
{
    // Always destroy the banner view when no longer needed.
    adManagerBannerView.Destroy();
    adManagerBannerView = null;
}

Если баннер не загружается, мы рекомендуем обновить баннер, а не удалять и создавать новый. Подробнее см. раздел «Обновить объявление» .

Обновить рекламу

Если вы настроили обновление рекламного блока, вам не нужно запрашивать новый рекламный блок, если предыдущий не загружается. Плагин Google Mobile Ads Unity учитывает любую частоту обновления, указанную вами в пользовательском интерфейсе Ad Manager. Если вы не включили обновление, отправьте новый запрос. Для получения более подробной информации об обновлении рекламного блока, например, о настройке частоты обновления, см. раздел « Частота обновления для рекламы в мобильных приложениях» .

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

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

События приложений

События приложения позволяют создавать рекламные объявления, которые могут отправлять сообщения в код приложения. Затем приложение может выполнять действия на основе этих сообщений.

С помощью AppEvent можно отслеживать события приложения, специфичные для Ad Manager. Эти события могут происходить в любое время в течение жизненного цикла объявления, даже до вызова функции загрузки.

Событие OnAppEventReceived возникает при появлении события приложения в рекламе. Вот пример того, как обработать это событие в вашем коде:

adManagerBannerView.OnAppEventReceived += (AppEvent args) =>
{
    Debug.Log($"Received app event from the ad: {args.Name}, {args.Data}.");
};

Вот пример, демонстрирующий, как изменить цвет фона вашего приложения в зависимости от события приложения с именем color:

adManagerBannerView.OnAppEventReceived += (AppEvent args) =>
{
    if (args.Name == "color")
    {
        Color color;
        if (ColorUtility.TryParseHtmlString(args.Data, out color))
        {
            renderer.material.color = color;
        }
    }
};

А вот соответствующий креатив, который отправляет событие цветового приложения:

<html>
<head>
  <script src="//www.gstatic.com/afma/api/v1/google_mobile_app_ads.js"></script>
  <script>
    document.addEventListener("DOMContentLoaded", function() {
      // Send a color=green event when ad loads.
      admob.events.dispatchAppEvent("color", "green");

      document.getElementById("ad").addEventListener("click", function() {
        // Send a color=blue event when ad is clicked.
        admob.events.dispatchAppEvent("color", "blue");
      });
    });
  </script>
  <style>
    #ad {
      width: 320px;
      height: 50px;
      top: 0;
      left: 0;
      font-size: 24pt;
      font-weight: bold;
      position: absolute;
      background: black;
      color: white;
      text-align: center;
    }
  </style>
</head>
<body>
  <div id="ad">Carpe diem!</div>
</body>
</html>

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