Сворачиваемые баннеры

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

Требования

Реализация

Убедитесь, что в представлении баннера задан размер, который пользователи должны видеть в обычном (свернутом) состоянии. Включите в запрос объявления параметр extras, в котором в качестве ключа будет указано collapsible, а в качестве значения – место размещения объявления.

Место размещения сворачиваемого баннера определяет, как развернутая область прикрепляется к баннеру.

На сумму Placement Поведение Предполагаемый вариант использования
top Верхний край раскрытого объявления выравнивается по верхнему краю свернутого объявления. Объявление размещено в верхней части экрана.
bottom Нижний край раскрытого объявления выравнивается по нижнему краю свернутого. Объявление размещено в нижней части экрана.

Если загруженное объявление – сворачиваемый баннер, то сразу после размещения в иерархии View он будет показан в виде сворачиваемого оверлея.

Kotlin

private fun loadCollapsibleBannerAd(adView: AdView, activity: Activity) {
  val adSize = AdSize.getLargeAnchoredAdaptiveBannerAdSize(activity, 360)

  // Create an extra parameter that aligns the bottom of the expanded ad to
  // the bottom of the adView.
  val extras = Bundle()
  extras.putString("collapsible", "bottom")

  val adRequest =
    BannerAdRequest.Builder(AD_UNIT_ID, adSize).setGoogleExtrasBundle(extras).build()

  adView.loadAd(
    adRequest,
    object : AdLoadCallback<BannerAd> {
      override fun onAdLoaded(ad: BannerAd) {
        Log.i(
          TAG,
          "The last loaded banner is ${if (ad.isCollapsible()) "" else "not "}collapsible.",
        )
      }


      override fun onAdFailedToLoad(adError: LoadAdError) {
        Log.d(TAG, "Banner ad failed to load: $adError")
      }
    },
  )
}

Java

private void loadCollapsibleBannerAd(@NonNull AdView adView, @NonNull Activity activity) {
  AdSize adSize = AdSize.getLargeAnchoredAdaptiveBannerAdSize(activity, 360);

  // Create an extra parameter that aligns the bottom of the expanded ad to
  // the bottom of the adView.
  Bundle extras = new Bundle();
  extras.putString("collapsible", "bottom");

  BannerAdRequest adRequest =
      new BannerAdRequest.Builder(AD_UNIT_ID, adSize).setGoogleExtrasBundle(extras).build();

  adView.loadAd(
      adRequest,
      new AdLoadCallback<BannerAd>() {
        @Override
        public void onAdLoaded(@NonNull BannerAd ad) {
          Log.i(
              TAG,
              String.format(
                  "The last loaded banner is %scollapsible.", ad.isCollapsible() ? "" : "not "));
        }


        @Override
        public void onAdFailedToLoad(@NonNull LoadAdError adError) {
          Log.d(TAG, "Banner ad failed to load: " + adError);
        }
      });
}

Замените AD_UNIT_ID идентификатором своего рекламного блока.

Обновление объявлений

Если в веб-интерфейсе Менеджера рекламы для баннеров в приложении настроено автоматическое обновление, то сворачиваемый баннер будет запрашиваться только первый раз, а после обновления будет показываться объявление обычного размера. Это связано с тем, что показ сворачиваемого баннера при каждом обновлении может негативно повлиять на удобство использования.

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

Как проверить, является ли загруженное объявление сворачиваемым

Чтобы повысить эффективность, в ответ на запросы сворачиваемых баннеров могут возвращаться обычные баннеры. Если запрос не загружается, а предыдущий баннер является сворачиваемым, API возвращает значение true. Чтобы проверить, является ли последний загруженный баннер сворачиваемым, вызовите метод isCollapsible:

Kotlin

override fun onAdLoaded(ad: BannerAd) {
  Log.i(
    TAG,
    "The last loaded banner is ${if (ad.isCollapsible()) "" else "not "}collapsible.",
  )
}

Java

@Override
public void onAdLoaded(@NonNull BannerAd ad) {
  Log.i(
      TAG,
      String.format(
          "The last loaded banner is %scollapsible.", ad.isCollapsible() ? "" : "not "));
}

Медиация

Сворачиваемые баннеры доступны только для источников спроса Google. Объявления, которые показываются с помощью медиации, выглядят как обычные не сворачиваемые баннеры.