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


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

В этом руководстве показано, как интегрировать рекламные объявления в приложения 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 см. в разделе Использование Futures для мониторинга статуса завершения вызовов методов .

Загрузить объявление

Загрузка рекламы выполняется с помощью метода 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 может использоваться для определения того, когда реклама показала свой полноэкранный контент, будущее, возвращаемое Show() также будет сигнализировать об успешном показе рекламы.

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

Лучшие практики

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

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

Пример в GitHub

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

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

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