Межстраничные объявления


Межстраничная реклама — это полноэкранные объявления, которые закрывают интерфейс приложения до тех пор, пока пользователь их не закроет. Обычно они отображаются в естественных точках перехода в процессе работы приложения, например, между действиями или во время паузы между уровнями в игре. Когда приложение показывает межстраничную рекламу, пользователь может либо нажать на объявление и перейти к следующему шагу, либо закрыть его и вернуться в приложение. Пример из практики .

В этом руководстве показано, как интегрировать межстраничную рекламу в приложения для Android и iOS с помощью Google Mobile Ads C++ SDK.

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

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

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

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

  • Android: ca-app-pub-3940256099942544/1033173712
  • iOS: ca-app-pub-3940256099942544/4411468910

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

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

Выполнение

Основные шаги по интеграции межстраничной рекламы:

  1. Загрузить рекламу.
  2. Зарегистрируйтесь для участия в обратном звонке.
  3. Отобразить объявление и управлять событиями его жизненного цикла.

Настройка InterstitialAd

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

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

     #include "firebase/gma/interstial_ad.h"

  2. Объявите и создайте экземпляр объекта InterstitialAd :

     firebase::gma::InterstitialAd* interstitial_ad;
     interstitial_ad = new firebase::gma::InterstitialAd();

  3. Инициализируйте экземпляр InterstitialAd , используя родительский элемент представления, преобразованный в тип AdParent . Родительский элемент представления представляет собой ссылку на объект JNI jobject , указывающую на Android Activity , или указатель на iOS UIView .

    // 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<void> result = interstitial_ad->Initialize(ad_parent);
    
  4. В качестве альтернативы сохранению будущего значения в качестве переменной, вы можете периодически проверять статус операции инициализации, вызывая метод InitializeLastResult() для объекта InterstitialAd . Это может быть полезно для отслеживания процесса инициализации в глобальном игровом цикле.

    // Monitor the status of the future in your game loop:
    firebase::Future<void> result = interstitial_ad->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 для отслеживания статуса завершения вызовов методов» .

Загрузить рекламу

Загрузка рекламы осуществляется с помощью метода LoadAd() объекта InterstitialAd . Для работы метода load необходимо инициализировать объект InterstitialAd , а также иметь идентификатор рекламного блока и объект AdRequest . Возвращается firebase::Future , который можно использовать для отслеживания состояния и результата операции загрузки.

Следующий код показывает, как загрузить рекламу после успешной инициализации InterstitialAd :

firebase::gma::AdRequest ad_request;
firebase::Future<firebase::gma::AdResult> load_ad_result;
load_ad_result = interstitial_ad->LoadAd(interstitial_ad_unit_id, ad_request);

Зарегистрируйтесь для участия в обратном звонке.

Для получения уведомлений о показе межстраничной рекламы и событиях жизненного цикла необходимо расширить класс FullScreenContentListener . Ваш пользовательский подкласс FullScreenContentListener можно зарегистрировать с помощью метода InterstitialAd::SetFullScreenContentListener() , и он будет получать обратные вызовы при успешном или неудачном показе рекламы, а также при её закрытии.

Следующий код показывает, как расширить класс и присвоить его объявлению:

  class ExampleFullScreenContentListener
      : public firebase::gma::FullScreenContentListener {

   public:
    ExampleFullScreenContentListener() {}

    void OnAdClicked() override {
      // This method is invoked when the user clicks the ad.
    }

    void OnAdDismissedFullScreenContent() override {
     // This method is invoked when the ad dismisses full screen content.
    }

    void OnAdFailedToShowFullScreenContent(const AdError& error) override {
      // This method is invoked when the ad failed to show full screen content.
      // Details about the error are contained within the AdError parameter.
    }

    void OnAdImpression() override {
      // This method is invoked when an impression is recorded for an ad.
    }

    void OnAdShowedFullScreenContent() override {
      // This method is invoked when the ad showed its full screen content.
    }
  };

  ExampleFullScreenContentListener* full_screen_content_listener =
    new ExampleFullScreenContentListener();
  interstitial_ad->SetFullScreenContentListener(full_screen_content_listener);

InterstitialAd — это объект одноразового использования. Это означает, что после показа межстраничной рекламы её нельзя будет показать снова. Рекомендуется загружать следующую межстраничную рекламу в методе OnAdDismissedFullScreenContent() вашего FullScreenContentListener , чтобы следующая межстраничная реклама начала загружаться сразу после закрытия предыдущей.

Показать объявление

Всплывающие рекламные объявления следует показывать во время естественных пауз в работе приложения. Хорошим примером является переход между уровнями игры или после того, как пользователь выполнит задачу. Хотя FullScreenContentListener можно использовать для определения момента, когда реклама отобразила свой контент на весь экран, объект Future, возвращаемый функцией Show() также будет сигнализировать об успешном показе рекламы.

  firebase::Future<void> result = interstitial_ad->Show();

Передовые методы

Подумайте, подходят ли для вашего приложения межстраничные объявления.
Межстраничные объявления лучше всего работают в приложениях с естественными точками перехода. Завершение задачи внутри приложения, например, отправка изображения или прохождение уровня игры, создает такую ​​точку. Поскольку пользователь ожидает перерыва в действии, легко показать межстраничное объявление, не нарушая его пользовательский опыт. Убедитесь, что вы продумали, в каких точках рабочего процесса вашего приложения вы будете показывать межстраничные объявления и как пользователь, скорее всего, отреагирует.
Не забудьте приостановить показ межстраничной рекламы.
Существует несколько различных типов межстраничной рекламы: текстовая, графическая, видео и другие. Важно убедиться, что при показе межстраничной рекламы ваше приложение также приостанавливает использование некоторых ресурсов, чтобы реклама могла ими воспользоваться. Например, при вызове функции отображения межстраничной рекламы обязательно приостановите воспроизведение любого звука, производимого вашим приложением. Вы можете возобновить воспроизведение звуков в методе OnAdDismissedFullScreenContent установленного вами FullScreenContentListener , который будет вызван после того, как пользователь закончит взаимодействие с рекламой. Кроме того, рассмотрите возможность временной остановки любых ресурсоемких вычислительных задач (например, игрового цикла) во время показа рекламы. Это гарантирует, что пользователь не столкнется с медленной или неотзывчивой графикой или зависанием видео.
Предусмотрите достаточное время для погрузки.
Так же, как важно показывать межстраничную рекламу в подходящее время, важно также убедиться, что пользователю не приходится ждать ее загрузки. Предварительная загрузка рекламы перед ее показом гарантирует, что в вашем приложении будет полностью загружена межстраничная реклама, готовая к показу в нужный момент.
Не заваливайте пользователя рекламой.
Увеличение частоты показа межстраничной рекламы в вашем приложении может показаться отличным способом увеличить доход, но это также может ухудшить пользовательский опыт и снизить коэффициент кликабельности. Убедитесь, что пользователи не сталкиваются с настолько частыми прерываниями, что перестают получать удовольствие от использования вашего приложения.
Не используйте опцию завершения загрузки для отображения промежуточного слоя.
Это может привести к ухудшению пользовательского опыта. Вместо этого, предварительно загружайте рекламу до того, как она понадобится.

Дополнительные ресурсы

Пример на GitHub

Видеоуроки по Mobile Ads Garage

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

Следующие шаги