Полноэкранная реклама — это полноэкранная реклама, которая закрывает интерфейс приложения до тех пор, пока пользователь её не закроет. Обычно она отображается в естественных переходных точках в процессе работы приложения, например, между действиями или во время паузы между уровнями в игре. Когда приложение показывает полноэкранную рекламу, у пользователя есть выбор: нажать на неё и продолжить просмотр или закрыть её и вернуться в приложение. Пример .
В этом руководстве показано, как интегрировать полноэкранную рекламу в приложения Android и iOS с помощью Google Mobile Ads C++ SDK.
Предпосылки
- Завершить Приступить к работе .
- (Только для Android) Умение работать со ссылками
jobject
JNI (см. советы по Android JNI ).
Всегда проверяйте с помощью тестовых объявлений
При создании и тестировании приложений обязательно используйте тестовые объявления, а не реальные, производственные. В противном случае ваш аккаунт может быть заблокирован.
Самый простой способ загрузить тестовую рекламу — использовать наш специальный идентификатор тестового рекламного блока для полноэкранных объявлений, который зависит от платформы устройства:
- 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
на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
можно использовать для определения момента отображения полноэкранного контента рекламы, Future-событие, возвращаемое методом Show()
также будет сигнализировать об успешном показе рекламы.
firebase::Future<void> result = interstitial_ad->Show();
Лучшие практики
- Подумайте, является ли полноэкранная реклама подходящим типом рекламы для вашего приложения.
- Полосатая реклама лучше всего работает в приложениях с естественными точками перехода. Завершение задачи в приложении, например, публикация изображения или прохождение уровня в игре, создаёт такую точку. Поскольку пользователь ожидает перерыва в действии, легко показать полноэкранную рекламу, не прерывая его взаимодействие с пользователем. Обязательно продумайте, на каких этапах рабочего процесса приложения вы будете показывать полноэкранную рекламу и как, скорее всего, отреагирует пользователь.
- Не забудьте приостановить действие при отображении рекламного объявления.
- Существует ряд различных типов полноэкранной рекламы: текстовая, графическая, видео и другие. Важно убедиться, что при отображении полноэкранной рекламы приложение также приостанавливает использование некоторых ресурсов, чтобы реклама могла ими воспользоваться. Например, при вызове полноэкранной рекламы обязательно приостановите воспроизведение звука приложением. Вы можете возобновить воспроизведение звука в методе
OnAdDismissedFullScreenContent
установленного слушателяFullScreenContentListener
, который будет вызван после завершения взаимодействия пользователя с рекламой. Кроме того, рассмотрите возможность временной остановки любых ресурсоёмких вычислительных задач (например, игрового цикла) на время отображения рекламы. Это гарантирует, что пользователь не столкнётся с медленной или зависшей графикой, а также с подтормаживанием видео. - Уделите достаточно времени загрузке.
- Важно не только показывать полноэкранную рекламу в подходящее время, но и не допускать необходимости ожидания её загрузки. Загрузка рекламы заранее, до её показа, гарантирует, что ваше приложение будет иметь полностью загруженную полноэкранную рекламу, готовую к показу.
- Не перегружайте пользователя рекламой.
- Хотя увеличение частоты показа полноэкранной рекламы в вашем приложении может показаться отличным способом увеличить доход, это также может ухудшить пользовательский опыт и снизить CTR. Убедитесь, что пользователи не будут отвлекаться так часто, чтобы не потерять возможность пользоваться вашим приложением.
- Не используйте будущее завершение загрузки для показа промежуточного объявления.
- Это может негативно сказаться на пользовательском опыте. Вместо этого загружайте рекламу заранее, до того, как она появится.
Дополнительные ресурсы
Пример в GitHub
- Просмотрите исходный код нашего примера приложения быстрого старта на GitHub.
Видеоуроки по Mobile Ads Garage
Истории успеха
Следующие шаги
- Если вы еще этого не сделали, создайте собственный рекламный блок в пользовательском интерфейсе AdMob .
- Узнайте о правилах таргетинга рекламы и межстраничной рекламы .