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


Interstitial ads are full-screen ads that cover the interface of an app until closed by the user. They're typically displayed at natural transition points in the flow of an app, such as between activities or during the pause between levels in a game. When an app shows an interstitial ad, the user has the choice to either tap on the ad and continue to its destination or close it and return to the app. Case study .

В этом руководстве показано, как интегрировать межстраничную рекламу в приложения для 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);

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

You must extend the FullScreenContentListener class in order to receive notifications of interstitial ad presentation and lifecycle events. Your custom FullScreenContentListener subclass can be registered through the InterstitialAd::SetFullScreenContentListener() method, and it will receive callbacks when the ad presents successfully or unsuccessfully as well as when it's dismissed.

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

  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();

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

Подумайте, подходят ли для вашего приложения межстраничные объявления.
Interstitial ads work best in apps with natural transition points. The conclusion of a task within an app, like sharing an image or completing a game level, creates such a point. Because the user is expecting a break in the action, it's easy to present an interstitial ad without disrupting their experience. Make sure you consider at which points in your app's workflow you'll display interstitial ads and how the user is likely to respond.
Не забудьте приостановить показ межстраничной рекламы.
There are a number of different types of interstitial ads: text, image, video, and more. It's important to make sure that when your app displays an interstitial ad, it also suspends its use of some resources to allow the ad to take advantage of them. For example, when you make the call to display an interstitial ad, be sure to pause any audio output being produced by your app. You can resume playing sounds in the OnAdDismissedFullScreenContent method of your installed FullScreenContentListener which will be invoked when the user has finished interacting with the ad. In addition, consider temporarily halting any intense computation tasks (such as a game loop) while the ad is being displayed. This will ensure that the user doesn't experience slow or unresponsive graphics or stuttered video.
Предусмотрите достаточное время для погрузки.
Так же, как важно показывать межстраничную рекламу в подходящее время, важно также убедиться, что пользователю не приходится ждать ее загрузки. Предварительная загрузка рекламы перед ее показом гарантирует, что в вашем приложении будет полностью загружена межстраничная реклама, готовая к показу в нужный момент.
Не заваливайте пользователя рекламой.
Увеличение частоты показа межстраничной рекламы в вашем приложении может показаться отличным способом увеличить доход, но это также может ухудшить пользовательский опыт и снизить коэффициент кликабельности. Убедитесь, что пользователи не сталкиваются с такими частыми прерываниями, которые мешают им получать удовольствие от использования вашего приложения.
Не используйте опцию завершения загрузки для отображения промежуточного слоя.
Это может привести к ухудшению пользовательского опыта. Вместо этого, предварительно загружайте рекламу до того, как она понадобится.

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

Пример на GitHub

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

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

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