Баннеры – это прямоугольные объявления с изображениями или текстом, которые занимают определенное место на экране. Они остаются на экране, пока пользователь взаимодействует с интерфейсом, и могут автоматически обновляться через определенные промежутки времени. Если вы только начинаете работать с мобильной рекламой, это отличный вариант.
В этом руководстве рассказывается, как интегрировать баннеры в приложение 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). Это пространство оптимизировано для видеоконтента.
В таблице ниже перечислены стандартные размеры баннеров.
| Размер в единицах, не зависящих от плотности (ширина 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. Эти события могут происходить в любой момент жизненного цикла объявления, даже до вызова функции загрузки.
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;
}
}
};
Ниже приведен код креатива, который отправляет событие приложения 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 – минимальная реализация всех форматов объявлений.