Рекламные баннеры

Баннерная реклама размещается в макете приложения, либо в верхней, либо в нижней части экрана устройства. Она остается на экране, пока пользователи взаимодействуют с приложением, и может автоматически обновляться через определенный промежуток времени. Если вы новичок в мобильной рекламе, это отличное место для начала. Пример из практики .

Предварительные требования

Всегда проводите тестирование с помощью тестовых объявлений.

При разработке и тестировании приложений обязательно используйте тестовые объявления, а не реальные, рабочие объявления. Несоблюдение этого правила может привести к блокировке вашего аккаунта.

Самый простой способ загрузить тестовые объявления — использовать наш специальный идентификатор тестового рекламного блока для баннеров, который различается в зависимости от платформы устройства:

  • Android: ca-app-pub-3940256099942544/6300978111
  • iOS: ca-app-pub-3940256099942544/2934735716

Эти идентификаторы рекламных блоков специально настроены для возврата тестовых объявлений при каждом запросе, и вы можете свободно использовать их в своих приложениях во время кодирования, тестирования и отладки. Просто убедитесь, что вы заменили его на свой собственный идентификатор рекламного блока перед публикацией приложения.

Для получения дополнительной информации о том, как работают тестовые объявления в Mobile Ads SDK, см. раздел «Тестовые объявления» .

Выполнение

Настройте AdView

Баннерная реклама отображается в объектах AdView , поэтому первым шагом к интеграции баннерной рекламы является создание и размещение объекта AdView .

  1. Добавьте следующий заголовочный файл в код вашего приложения на C++:

     #include "firebase/gma/ad_view.h"
  2. Объявите и создайте экземпляр объекта AdView :

      firebase::gma::AdView* ad_view;
      ad_view = new firebase::gma::AdView();
  3. Создайте объект AdSize и инициализируйте представление объявления, используя родительское представление AdParent . Родительское представление представляет собой ссылку на объект JNI jobject , указывающую на Android Activity , или указатель на iOS UIView преобразованный в тип 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);
  4. В качестве альтернативы сохранению объекта 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.
      }
    
  5. Для получения дополнительной информации о работе с 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

Истории успеха