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

Выберите платформу: Android iOS Unity Flutter

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

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

Предпосылки

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

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

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

/21775744923/example/adaptive-banner

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

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

using GoogleMobileAds;
using GoogleMobileAds.Api;

public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    public void Start()
    {
        // Initialize the Google Mobile Ads SDK.
        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);

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

Менеджер рекламы позволяет указать несколько размеров объявлений, которые могут быть показаны в 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 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>

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

,
Выберите платформу: Android iOS Unity Flutter

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

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

Предпосылки

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

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

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

/21775744923/example/adaptive-banner

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

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

using GoogleMobileAds;
using GoogleMobileAds.Api;

public class GoogleMobileAdsDemoScript : MonoBehaviour
{
    public void Start()
    {
        // Initialize the Google Mobile Ads SDK.
        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);

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

Менеджер рекламы позволяет указать несколько размеров объявлений, которые могут быть показаны в 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 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>

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