Баннерные объявления — это прямоугольные изображения или текстовые объявления, которые занимают место на экране. Они остаются на экране, пока пользователи взаимодействуют с приложением, и могут автоматически обновляться через определённый промежуток времени. Если вы новичок в мобильной рекламе, они станут отличным началом.
Это руководство покажет вам, как интегрировать баннеры в приложение Unity. Помимо фрагментов кода и инструкций, оно также содержит информацию о правильном выборе размера баннеров и ссылки на дополнительные ресурсы.
Предпосылки
- Заполните руководство по началу работы .
Всегда проверяйте с помощью тестовых объявлений
Следующий пример кода содержит идентификатор рекламного блока, который можно использовать для запроса тестовых объявлений. Он специально настроен на возврат тестовых, а не рабочих объявлений при каждом запросе, что делает его безопасным для использования.
Однако после того как вы зарегистрировали приложение в веб-интерфейсе Менеджера рекламы и создали собственные идентификаторы рекламных блоков для использования в своем приложении, явно настройте свое устройство как тестовое во время разработки.
 /21775744923/example/fixed-size-banner
Инициализируйте SDK мобильной рекламы
 Перед загрузкой рекламы ваше приложение должно инициализировать Google Mobile Ads SDK, вызвав MobileAds.Initialize() . Это необходимо сделать только один раз, в идеале при запуске приложения.
using GoogleMobileAds;
using GoogleMobileAds.Api;
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    public void Start()
    {
        // Initialize Google Mobile Ads SDK.
        MobileAds.Initialize((InitializationStatus initStatus) =>
        {
            // This callback is called once the MobileAds SDK is initialized.
        });
    }
}
Если вы используете посредничество, дождитесь обратного вызова, прежде чем загружать рекламу, так как это обеспечит инициализацию всех адаптеров посредничества.
Пример BannerView
 В следующем примере кода подробно описано использование представления баннера. В этом примере создайте экземпляр представления баннера, используйте AdManagerAdRequest для загрузки рекламы в представление баннера, а затем расширьте его возможности, обрабатывая события жизненного цикла.
Создать вид баннера
Первым шагом в использовании представления баннера является создание экземпляра представления баннера.
Замените AD_UNIT_ID на идентификатор вашего рекламного блока.
 Конструктор AdManagerBannerView имеет следующие параметры:
-  adUnitId: идентификатор рекламного блока загружаемого баннера.
-  AdSize: размер баннера, который вы хотели бы использовать.
-  AdPosition: Позиция, в которой должен размещаться баннер.
(Необязательно) Создайте вид баннера с пользовательским расположением
 Для большего контроля над размещением баннера на экране по сравнению со значениями AdPosition используйте конструктор, который принимает координаты x и y в качестве параметров: 
Верхний левый угол представления баннера позиционируется в соответствии со значениями x и y, переданными конструктору, где началом координат является верхний левый угол экрана.
(Необязательно) Создайте вид баннера с индивидуальным размером
 Помимо использования константы AdSize , вы также можете указать индивидуальный размер для своего объявления: 
(Необязательно) Несколько размеров объявлений
 Менеджер рекламы позволяет указать несколько размеров объявлений, которые могут быть показаны в AdManagerBannerView . Перед реализацией этой функции в SDK создайте позицию, ориентированную на те же рекламные блоки, связанные с креативами разных размеров.
 В вашем приложении передайте несколько параметров AdSize в ValidAdSizes : 
Если размер 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 SDK учитывает любую частоту обновления, указанную в интерфейсе Менеджера рекламы. Если обновление не включено, отправьте новый запрос. Подробнее об обновлении рекламного блока, например, о настройке частоты обновления, см. в статье Частота обновления рекламы в мобильных приложениях .
Размеры баннеров
В следующей таблице перечислены стандартные размеры баннеров:
| Размер в dp (ШxВ) | Описание | Доступность | Константа 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 . Эти события могут произойти в любой момент жизненного цикла объявления, даже до вызова метода load.
 Событие OnAppEventReceived возникает, когда в рекламном объявлении происходит событие приложения. Вот пример обработки этого события в коде:
adManagerBannerView.OnAppEventReceived += (AppEvent args) =>
{
    Debug.Log($"Received app event from the ad: {args.Name}, {args.Data}.");
};
Вот пример, показывающий, как изменить цвет фона вашего приложения в зависимости от события приложения с именем цвета:
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>
Дополнительные ресурсы
- Пример HelloWorld : минимальная реализация всех форматов рекламы.