Рекламные баннеры занимают место в макете приложения, либо в верхней, либо в нижней части экрана устройства. Они остаются на экране, пока пользователи взаимодействуют с приложением, и могут автоматически обновляться через определённый промежуток времени. Если вы новичок в мобильной рекламе, они станут отличным стартом. Пример из практики .
Предпосылки
- Завершить Приступить к работе .
-  (Только для Android) Умение работать со ссылками jobjectJNI (см. советы по Android JNI ).
Всегда проверяйте с помощью тестовых объявлений
При создании и тестировании приложений обязательно используйте тестовые объявления, а не реальные, производственные. В противном случае ваш аккаунт может быть заблокирован.
Самый простой способ загрузить тестовую рекламу — использовать наш специальный идентификатор тестового рекламного блока для баннеров, который различается в зависимости от платформы устройства:
-  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. Родительское представление представляет собой ссылку на JNI- jobject- 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();
Рекламные события
 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);
Размеры баннеров
В таблице ниже перечислены стандартные размеры баннеров.
| Размер в точках (Ш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.