Баннеры – это прямоугольные графические или текстовые объявления, которые занимают определенное место на экране. Они остаются на экране, пока пользователь взаимодействует с интерфейсом, и могут автоматически обновляться через определенные промежутки времени. Если вы только начинаете работать с мобильной рекламой, рекомендуем начать именно с них.
В этом руководстве рассказывается, как интегрировать баннеры в приложение Unity. Помимо фрагментов кода и инструкций, оно содержит информацию о правильном выборе размера баннеров и ссылки на дополнительные ресурсы.
Требования
Прежде чем продолжить, настройте Google Mobile Ads Unity Plugin.
Всегда используйте тестовые объявления
В приведенном ниже образце кода содержится идентификатор рекламного блока, который можно использовать для запроса тестовых объявлений. Он специально настроен так, чтобы в ответ на каждый запрос возвращать тестовые объявления, а не рабочие.
Однако после того, как вы зарегистрируете приложение в веб-интерфейсе Менеджера рекламы и создадите собственные идентификаторы рекламных блоков для использования в приложении, вам нужно будет настроить свое устройство как тестовое.
/21775744923/example/interstitial
Инициализация Google Mobile Ads Unity Plugin
Перед загрузкой объявлений инициализируйте Google Mobile Ads Unity Plugin, вызвав 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 для загрузки объявления в представление баннера, а затем расширяются его возможности за счет обработки событий жизненного цикла.
Как создать представление баннера
Чтобы использовать представление баннера, сначала нужно создать его экземпляр.
Замените 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 Unity Plugin учитывает частоту обновления, заданную в интерфейсе Менеджера рекламы. Если вы не включили обновление, отправьте новый запрос. Подробнее о том, как задать частоту обновления рекламных блоков, читайте в статье Частота обновления объявлений в мобильных приложениях.
Размеры баннеров
Большие адаптивные баннеры – это формат, предназначенный для макетов без прокрутки. По сравнению со стандартными фиксированными адаптивными баннерами у этих баннеров больше максимальная высота (до 20% высоты экрана, от 50 до 150 dp). Это пространство оптимизировано для видеоконтента.
В таблице ниже перечислены стандартные размеры баннеров.
| Размер в dp (Ш x В) | Описание | Доступность | Константа AdSize |
|---|---|---|---|
| 320 x 50 | Стандартный баннер | Телефоны и планшеты | BANNER |
| 320 x 100 | Большой баннер | Телефоны и планшеты | LARGE_BANNER |
| 300 x 250 | Средний прямоугольник (IAB) | Телефоны и планшеты | MEDIUM_RECTANGLE |
| 468 x 60 | Полноразмерный баннер IAB | Планшеты | FULL_BANNER |
| 728 x 90 | Полноразмерный баннер 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. Минимальная реализация всех форматов объявлений.