Баннерные объявления — это прямоугольные изображения или текстовые объявления, которые занимают место на экране. Они остаются на экране, пока пользователи взаимодействуют с приложением, и могут автоматически обновляться через определённый промежуток времени. Если вы новичок в мобильной рекламе, они станут отличным началом.
Это руководство покажет вам, как интегрировать баннеры в приложение 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
для загрузки рекламы в представление баннера, а затем расширьте его возможности, обрабатывая события жизненного цикла.
Создать вид баннера
Первым шагом в использовании представления баннера является создание экземпляра представления баннера.
Замените 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 : минимальная реализация всех форматов рекламы.
Баннерные объявления — это прямоугольные изображения или текстовые объявления, которые занимают место на экране. Они остаются на экране, пока пользователи взаимодействуют с приложением, и могут автоматически обновляться через определённый промежуток времени. Если вы новичок в мобильной рекламе, они станут отличным началом.
Это руководство покажет вам, как интегрировать баннеры в приложение 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
для загрузки рекламы в представление баннера, а затем расширьте его возможности, обрабатывая события жизненного цикла.
Создать вид баннера
Первым шагом в использовании представления баннера является создание экземпляра представления баннера.
Замените 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 : минимальная реализация всех форматов рекламы.