Баннерная реклама размещается в макете приложения, либо в верхней, либо в нижней части экрана устройства. Она остается на экране, пока пользователи взаимодействуют с приложением, и может автоматически обновляться через определенный промежуток времени. Если вы новичок в мобильной рекламе, это отличное место для начала. Пример из практики .
Предварительные требования
- Завершить. Начать .
- (Только для Android) Знание работы со ссылками
jobjectJNI (см. советы по работе с JNI в Android ).
Всегда проводите тестирование с помощью тестовых объявлений.
При разработке и тестировании приложений обязательно используйте тестовые объявления, а не реальные, рабочие объявления. Несоблюдение этого правила может привести к блокировке вашего аккаунта.
Самый простой способ загрузить тестовые объявления — использовать наш специальный идентификатор тестового рекламного блока для баннеров, который различается в зависимости от платформы устройства:
- Android:
ca-app-pub-3940256099942544/6300978111 - iOS:
ca-app-pub-3940256099942544/2934735716
Эти идентификаторы рекламных блоков специально настроены для возврата тестовых объявлений при каждом запросе, и вы можете свободно использовать их в своих приложениях во время кодирования, тестирования и отладки. Просто убедитесь, что вы заменили его на свой собственный идентификатор рекламного блока перед публикацией приложения.
Для получения дополнительной информации о том, как работают тестовые объявления в Mobile Ads SDK, см. раздел «Тестовые объявления» .
Выполнение
Настройте AdView
Баннерная реклама отображается в объектах AdView , поэтому первым шагом к интеграции баннерной рекламы является создание и размещение объекта AdView .
Добавьте следующий заголовочный файл в код вашего приложения на C++:
#include "firebase/gma/ad_view.h"
Объявите и создайте экземпляр объекта
AdView:firebase::gma::AdView* ad_view; ad_view = new firebase::gma::AdView();
Создайте объект
AdSizeи инициализируйте представление объявления, используя родительское представлениеAdParent. Родительское представление представляет собой ссылку на объект JNIjobject, указывающую на AndroidActivity, или указатель на iOSUIViewпреобразованный в типAdParent:// my_ad_parent is a jobject reference // to an Android Activity or a pointer to an iOS UIView. firebase::gma::AdParent ad_parent = static_cast<firebase::gma::AdParent>(my_ad_parent); firebase::Future
result = ad_view->Initialize(ad_parent, kBannerAdUnit, firebase::gma::AdSize::kBanner); В качестве альтернативы сохранению объекта Future в качестве переменной, вы можете периодически проверять статус операции инициализации, вызывая метод
InitializeLastResult()для объектаAdView. Это может быть полезно для отслеживания процесса инициализации в глобальном игровом цикле.// Monitor the status of the future in your game loop: firebase::Future<void> result = ad_view->InitializeLastResult(); if (result.status() == firebase::kFutureStatusComplete) { // Initialization completed. if(future.error() == firebase::gma::kAdErrorCodeNone) { // Initialization successful. } else { // An error has occurred. } } else { // Initialization on-going. }Для получения дополнительной информации о работе с
firebase::Futureсм. раздел «Использование Future для отслеживания статуса завершения вызовов методов» .
Установите позицию объявления
Положение элемента AdView можно изменить в любое время после его инициализации:
firebase::Future<void> result = ad_view->SetPosition(firebase::gma::AdView::kPositionTop);
Загрузить рекламу
Вы можете загрузить объявление после инициализации AdView :
firebase::gma::AdRequest ad_request;
firebase::Future<firebase::gma::AdResult> load_ad_result = ad_view->LoadAd(my_ad_request);
Объекты AdRequest представляют собой отдельный запрос объявления и содержат свойства для получения такой информации, как таргетинг.
Показать объявление
Наконец, отобразите рекламу на экране, вызвав Show() . Этот метод можно вызвать в любое время после инициализации рекламы:
firebase::Future<void> result = ad_view->Show();
Рекламные мероприятия
В Google Mobile Ads C++ SDK есть класс AdListener , который можно расширить и передать в AdView::SetListener() чтобы получать уведомления об изменениях состояния рекламного объявления.
Расширение методов в AdListener необязательно, поэтому вам нужно реализовать только те методы, которые вы хотите. Ниже приведен пример реализации класса, который расширяет все методы класса AdListener :
class ExampleAdListener : public firebase::gma::AdListener { public: ExampleAdListener() {} void OnAdClicked() override { // This method is invoked when the user clicks the ad. } void OnAdClosed() override { // This method is invoked when the user closes the ad. } void OnAdImpression() override { // This method is invoked when an impression is recorded for an ad. } void OnAdOpened() override { // This method is invoked when an ad opens an overlay that covers the screen. } }; ExampleAdListener* ad_listener = new ExampleAdListener(); ad_view->SetAdListener(ad_listener);
Размеры баннеров
В таблице ниже приведены стандартные размеры баннеров.
| Размеры в пунктах (ШхВ) | Описание | Доступность | firebase::gma::AdSize константа |
|---|---|---|---|
| 320x50 | Баннер | Телефоны и планшеты | kBanner |
| 320x100 | Большой баннер | Телефоны и планшеты | kLargeBanner |
| 300x250 | IAB Средний прямоугольник | Телефоны и планшеты | kMediumRectangle |
| 468x60 | Полноразмерный баннер IAB | Таблетки | kFullBanner |
| 728x90 | Таблица лидеров IAB | Таблетки | kLeaderboard |
| Заданная ширина x Адаптивная высота | Адаптивный баннер | Телефоны и планшеты | Н/Д |
Индивидуальные размеры рекламы
Чтобы задать пользовательский размер баннера, укажите желаемые размеры с помощью конструктора firebase::gma::AdSize , передав параметры ширины и высоты, как показано здесь:
firebase::gma::AdSize ad_size(/*width=*/320, /*height=*/50);
Дополнительные ресурсы
Пример на GitHub
- Исходный код нашего примера приложения для быстрого запуска можно посмотреть на GitHub.