Рекламные баннеры

Баннерная реклама — это прямоугольная реклама, занимающая часть макета приложения. Закрепленные адаптивные баннеры — это рекламные объявления с фиксированным соотношением сторон, которые остаются на экране, пока пользователи взаимодействуют с приложением, и закрепляются либо в верхней, либо в нижней части экрана.

В этом руководстве описывается загрузка закрепленного адаптивного баннера в приложение для Android.

Предварительные условия

Всегда тестируйте с помощью тестовых объявлений

При создании и тестировании приложений убедитесь, что вы используете тестовые объявления, а не действующие, рабочие. Несоблюдение этого требования может привести к блокировке вашего аккаунта.

Самый простой способ загрузить тестовые объявления — использовать наш специальный идентификатор тестового рекламного блока для баннеров Android:

ca-app-pub-3940256099942544/9214589741

Он был специально настроен для возврата тестовых объявлений по каждому запросу, и вы можете использовать его в своих приложениях при написании кода, тестировании и отладке. Просто убедитесь, что вы заменили его собственным идентификатором рекламного блока перед публикацией приложения.

Дополнительную информацию о том, как работают тестовые объявления Google Mobile Ads SDK, см. в разделе Включение тестовых объявлений .

Определите контейнер просмотра рекламы

Добавьте представление в XML-файл макета, которое будет служить контейнером для закрепленного адаптивного баннера:

<!-- Ad view container that fills the width of the screen and adjusts its
     height to the content of the ad. -->
<FrameLayout
        android:id="@+id/ad_view_container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_alignParentBottom="true" />

Установите размер объявления

Установите AdSize для закрепленного типа адаптивного баннера с указанной шириной:

Ява

// Request an anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, 360));

Котлин

// Request an anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, 360))

Добавьте AdView в макет

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

Ява

// Create a new ad view.
adView = new AdView(this);
adView.setAdUnitId(AD_UNIT_ID);
// Request an anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, 360));

// Replace ad container with new ad view.
adContainerView.removeAllViews();
adContainerView.addView(adView);

Котлин

// Create a new ad view.
val adView = AdView(this)
adView.adUnitId = AD_UNIT_ID
// Request an anchored adaptive banner with a width of 360.
adView.setAdSize(AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(this, 360))
this.adView = adView

// Replace ad container with new ad view.
binding.adViewContainer.removeAllViews()
binding.adViewContainer.addView(adView)

Загрузить объявление

После установки AdView следующим шагом будет загрузка объявления. Это делается с помощью метода loadAd() в классе AdView . Он принимает параметр AdRequest , который содержит информацию времени выполнения, например информацию о таргетинге, об одном запросе объявления.

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

Ява

AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);

Котлин

val adRequest = AdRequest.Builder().build()
adView.loadAd(adRequest)

В случае успеха ваше приложение готово к показу рекламных баннеров.

Обновить объявление

Если вы настроили обновление рекламного блока, вам не нужно запрашивать другое объявление, если оно не загружается. Google Mobile Ads SDK учитывает любую частоту обновления, указанную вами в пользовательском интерфейсе AdMob. Если вы не включили обновление, отправьте новый запрос. Дополнительные сведения об обновлении рекламных блоков, например настройке частоты обновления, см. в разделе Использование автоматического обновления для баннерной рекламы .

Рекламные события

Вы можете отслеживать ряд событий в жизненном цикле объявления, включая загрузку, показ объявления и клик, а также события открытия и закрытия объявления. Рекомендуется устанавливать обратный звонок до загрузки баннера.

Ява

adView.setAdListener(new AdListener() {
    @Override
    public void onAdClicked() {
      // Code to be executed when the user clicks on an ad.
    }

    @Override
    public void onAdClosed() {
      // Code to be executed when the user is about to return
      // to the app after tapping on an ad.
    }

    @Override
    public void onAdFailedToLoad(LoadAdError adError) {
      // Code to be executed when an ad request fails.
    }

    @Override
    public void onAdImpression() {
      // Code to be executed when an impression is recorded
      // for an ad.
    }

    @Override
    public void onAdLoaded() {
      // Code to be executed when an ad finishes loading.
    }

    @Override
    public void onAdOpened() {
      // Code to be executed when an ad opens an overlay that
      // covers the screen.
    }
});

Котлин

adView.adListener = object: AdListener() {
    override fun onAdClicked() {
      // Code to be executed when the user clicks on an ad.
    }

    override fun onAdClosed() {
      // Code to be executed when the user is about to return
      // to the app after tapping on an ad.
    }

    override fun onAdFailedToLoad(adError : LoadAdError) {
      // Code to be executed when an ad request fails.
    }

    override fun onAdImpression() {
      // Code to be executed when an impression is recorded
      // for an ad.
    }

    override fun onAdLoaded() {
      // Code to be executed when an ad finishes loading.
    }

    override fun onAdOpened() {
      // Code to be executed when an ad opens an overlay that
      // covers the screen.
    }
}

Каждый из переопределяемых методов AdListener соответствует событию в жизненном цикле объявления.

Переопределяемые методы
onAdClicked() Метод onAdClicked() вызывается, когда регистрируется клик по объявлению.
onAdClosed() Метод onAdClosed() вызывается, когда пользователь возвращается в приложение после просмотра целевого URL-адреса объявления. Ваше приложение может использовать его для возобновления приостановленных действий или выполнения любой другой работы, необходимой для подготовки к взаимодействию. Обратитесь к примеру AdMob AdListener, чтобы узнать о реализации методов прослушивания рекламы в демонстрационном приложении Android API.
onAdFailedToLoad() Метод onAdFailedToLoad() — единственный, который включает параметр. Параметр error типа LoadAdError описывает, какая ошибка произошла. Дополнительную информацию можно найти в документации по отладке ошибок загрузки рекламы .
onAdImpression() Метод onAdImpression() вызывается при регистрации показа объявления.
onAdLoaded() Метод onAdLoaded() выполняется после завершения загрузки объявления. Если вы хотите, например, отложить добавление AdView в свое действие или фрагмент до тех пор, пока не будете уверены, что объявление будет загружено, вы можете сделать это здесь.
onAdOpened() Метод onAdOpened() вызывается, когда реклама открывает наложение, закрывающее экран.

Аппаратное ускорение видеорекламы

Чтобы видеореклама успешно отображалась при просмотре баннерной рекламы, необходимо включить аппаратное ускорение .

Аппаратное ускорение включено по умолчанию, но некоторые приложения могут отключить его. Если это применимо к вашему приложению, мы рекомендуем включить аппаратное ускорение для классов Activity , использующих рекламу.

Включение аппаратного ускорения

Если ваше приложение не работает должным образом при глобальном включении аппаратного ускорения, вы также можете контролировать его для отдельных действий. Чтобы включить или отключить аппаратное ускорение, вы можете использовать атрибут android:hardwareAccelerated для элементов <application> и <activity> в вашем AndroidManifest.xml . В следующем примере аппаратное ускорение включается для всего приложения, но отключается для одного действия:

<application android:hardwareAccelerated="true">
    <!-- For activities that use ads, hardwareAcceleration should be true. -->
    <activity android:hardwareAccelerated="true" />
    <!-- For activities that don't use ads, hardwareAcceleration can be false. -->
    <activity android:hardwareAccelerated="false" />
</application>

Дополнительную информацию о возможностях управления аппаратным ускорением см. в руководстве по аппаратному ускорению. Обратите внимание, что для отдельных просмотров рекламы невозможно включить аппаратное ускорение, если действие отключено, поэтому для самого действия должно быть включено аппаратное ускорение.

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

Примеры на GitHub

  • Пример закрепленного адаптивного баннера: Java | Котлин
  • Демонстрация расширенных функций: Java | Котлин

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

Складные баннеры

Сворачиваемые рекламные баннеры — это рекламные баннеры, которые изначально представляются как наложенное изображение большего размера с кнопкой, позволяющей свернуть объявление до меньшего размера. Рассмотрите возможность его использования для дальнейшей оптимизации вашей производительности. Подробнее см. в разделе складные рекламные баннеры .

Встроенные адаптивные баннеры

Встроенные адаптивные баннеры больше и выше по сравнению с прикрепленными адаптивными баннерами. Они имеют переменную высоту и могут достигать высоты экрана устройства. Встроенные адаптивные баннеры рекомендуются вместо привязанных адаптивных баннеров для приложений, которые размещают рекламные баннеры в прокручиваемом контенте. Более подробную информацию см. в разделе встроенные адаптивные баннеры .

Изучите другие темы