Межстраничная реклама — это полноэкранная реклама, которая закрывает интерфейс приложения до тех пор, пока его не закроет пользователь. Обычно они отображаются в естественных точках перехода в работе приложения, например, между действиями или во время паузы между уровнями в игре. Когда приложение показывает межстраничную рекламу, у пользователя есть выбор: либо нажать на рекламу и продолжить движение к месту назначения, либо закрыть ее и вернуться в приложение. Тематическое исследование .
В этом руководстве показано, как интегрировать межстраничные объявления в приложения для 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
. Родительское представление — это ссылка наjobject
JNI наActivity
Android или указатель наUIView
iOS.// 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
- Просмотрите исходный код нашего примера приложения быстрого запуска на GitHub.
Видеоуроки по Mobile Ads Garage
Истории успеха
Следующие шаги
- Если вы еще этого не сделали, создайте собственный межстраничный рекламный блок в пользовательском интерфейсе AdMob .
- Узнайте о таргетинге рекламы и правилах использования межстраничных объявлений .