Межстраничные объявления — это полноэкранные объявления, которые закрывают интерфейс приложения до тех пор, пока пользователь не закроет его. Обычно они отображаются в естественных точках перехода в потоке приложения, например между действиями или во время паузы между уровнями в игре. Когда приложение показывает межстраничное объявление, у пользователя есть выбор: либо нажать на объявление и перейти к месту назначения, либо закрыть его и вернуться в приложение. Тематическое исследование .
В этом руководстве показано, как интегрировать межстраничные объявления в приложения для Android и iOS с помощью Google Mobile Ads C++ SDK.
Предпосылки
- Полное Начало работы .
- (Только для Android) Знакомство с работой со ссылками на
jobject
JNI (см. советы по JNI для Android ).
Всегда тестируйте тестовые объявления
При создании и тестировании своих приложений убедитесь, что вы используете тестовую рекламу, а не живую производственную рекламу. Невыполнение этого требования может привести к приостановке действия вашей учетной записи.
Самый простой способ загрузить тестовые объявления — использовать наш специальный идентификатор тестового рекламного блока для межстраничных объявлений, который зависит от платформы устройства:
- Android:
ca-app-pub-3940256099942544/1033173712
- iOS:
ca-app-pub-3940256099942544/4411468910
Они были специально настроены для возврата тестовых объявлений для каждого запроса, и вы можете использовать их в своих собственных приложениях при написании кода, тестировании и отладке. Просто убедитесь, что вы заменили его собственным идентификатором рекламного блока, прежде чем публиковать свое приложение.
Дополнительные сведения о том, как работают тестовые объявления Mobile Ads SDK, см. в разделе Тестовые объявления .
Реализация
Основные шаги по интеграции межстраничных объявлений:
- Загрузите объявление.
- Зарегистрируйтесь для обратного звонка.
- Отображение объявления и обработка событий его жизненного цикла.
Настроить InterstitialAd
Межстраничные объявления отображаются в объектах InterstitialAd
, поэтому первым шагом к интеграции межстраничных объявлений в ваше приложение является создание и инициализация объекта InterstitialAd
.
Добавьте следующий заголовок в код C++ вашего приложения:
#include "firebase/gma/interstial_ad.h"
.Объявите и создайте экземпляр объекта
InterstitialAd
:firebase::gma::InterstitialAd* interstitial_ad; interstitial_ad = new firebase::gma::InterstitialAd();
.Инициализируйте экземпляр
InterstitialAd
, используя родительское представление, приведенное к типуAdParent
. Родительское представление — это ссылка JNIjobject
на AndroidActivity
или указатель на iOSUIView
.// 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);
В качестве альтернативы сохранению будущего в качестве переменной вы можете периодически проверять состояние операции инициализации, вызывая
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
. Метод загрузки требует, чтобы вы инициализировали объект 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
Истории успеха
Следующие шаги
- Если вы еще этого не сделали, создайте собственный межстраничный рекламный блок в пользовательском интерфейсе AdMob .
- Узнайте о правилах таргетинга объявлений и межстраничных объявлений .