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