Баннерная реклама занимает место в макете приложения либо вверху, либо внизу экрана устройства. Они остаются на экране, пока пользователи взаимодействуют с приложением, и могут автоматически обновляться через определенный период времени. Если вы новичок в мобильной рекламе, это отличное место для начала. Тематическое исследование .
Предварительные условия
- Полное начало работы .
- (Только для Android) Знание работы со ссылками
jobject
JNI (см. Советы по 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
. Родительское представление — это ссылка наjobject
JNI наActivity
Android или указатель наUIView
iOS, приведенный к типу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); В качестве альтернативы сохранению будущего в виде переменной вы можете периодически проверять состояние операции инициализации, вызывая
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
см. в разделе Использование Futures для отслеживания статуса завершения вызовов методов .
Установите положение объявления
Вы можете установить положение 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();
Рекламные события
SDK Google Mobile Ads C++ предоставляет класс 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);
Размеры баннеров
В таблице ниже указаны стандартные размеры баннеров.
Размер в точках (ШxВ) | Описание | Доступность | 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.