对滚动显示的横幅广告使用内嵌自适应功能

采用自适应横幅广告,您可以指定广告宽度,从而为每台设备确定最理想的广告尺寸。与锚定自适应横幅广告不同,内嵌自适应横幅广告的尺寸更大、高度更高,并且采用的并非固定高度。内嵌自适应横幅广告的高度是可变的。这些横幅广告可能会占据整个屏幕,或者占据您指定的高度上限。

本指南介绍了如何创建内嵌自适应横幅广告以及如何设置横幅广告尺寸。

下图展示了内嵌自适应横幅广告在滚动内容中的呈现效果:

此图显示了自适应横幅广告与内嵌自适应横幅广告之间的区别

准备工作

在继续操作之前,请确保您已设置横幅广告。

如需查看完整的内嵌自适应横幅广告示例,请下载以下示例应用:

植入内嵌自适应横幅广告

如需植入内嵌自适应横幅广告,您需要设置广告尺寸、创建广告请求并加载广告。

如需调整内嵌自适应横幅广告的尺寸,请确定广告宽度。常见方法包括:

  • 使用全屏宽度。
  • 使用包含广告的父布局的宽度。
  • 根据设备安全区域调整宽度。

创建广告尺寸对象时,请使用此计算出的宽度。

以下示例展示了如何设置广告尺寸、创建广告请求和加载广告:

Kotlin

private fun loadAd() {
  // Create an inline adaptive ad size. 320 is a placeholder value.
  // Replace 320 with your banner container width.
  val adSize = AdSize.getCurrentOrientationInlineAdaptiveBannerAdSize(this, 320)

  // Step 1 - Create a BannerAdRequest object with ad unit ID and size.
  val adRequest = BannerAdRequest.Builder("AD_UNIT_ID", adSize).build()

  // Step 2 - Load the ad.
  BannerAd.load(
    adRequest,
    object : AdLoadCallback<BannerAd> {
      override fun onAdLoaded(ad: BannerAd) {
        // Assign the loaded ad to the BannerAd object.
        bannerAd = ad
        // Step 3 - Call BannerAd.getView() to get the View and add it
        // to view hierarchy on the UI thread.
        activity?.runOnUiThread {
          binding.bannerViewContainer.addView(ad.getView(requireActivity()))
        }
      }

      override fun onAdFailedToLoad(loadAdError: LoadAdError) {
        bannerAd = null
      }
    }
  )
}

Java

private void loadAd() {
  // Create an inline adaptive ad size. 320 is a placeholder value.
  // Replace 320 with your banner container width.
  AdSize adSize = AdSize.getCurrentOrientationInlineAdaptiveBannerAdSize(this, 320);

  // Step 1 - Create a BannerAdRequest object with ad unit ID and size.
  BannerAdRequest adRequest = new BannerAdRequest.Builder("AD_UNIT_ID",
      adSize).build();

  // Step 2 - Load the ad.
  BannerAd.load(
      adRequest,
      new AdLoadCallback<BannerAd>() {
        @Override
        public void onAdLoaded(@NonNull BannerAd ad) {
          // Assign the loaded ad to the BannerAd object.
          bannerAd = ad;
          // Step 3 - Call BannerAd.getView() to get the View and add it
          // to view hierarchy on the UI thread.
          if (getActivity() != null) {
            getActivity()
                .runOnUiThread(() ->
                    binding.bannerViewContainer.addView(ad.getView(getActivity())));
          }
        }

        @Override
        public void onAdFailedToLoad(@NonNull LoadAdError adError) {
          bannerAd = null;
        }
      });
}

设置的广告尺寸应小于或等于设备屏幕尺寸。 如需确定最大屏幕尺寸,请使用 Resources.getDisplayMetrics 方法。AdSize 对象的尺寸使用密度无关像素 (dp)。进行比较时,请将屏幕尺寸从像素转换为 dp。 如需详细了解尺寸限制,请参阅 排查 Ad Manager 中未填充的展示次数。

如果您需要更新订单项或创建新订单项才能使用自适应横幅广告,请参阅 为自适应横幅广告设置订单项。

根据应用布局设置内嵌自适应横幅广告

若要在特定布局中预加载内嵌自适应横幅广告,请使用以下方法:

如果您的应用同时支持纵向和横向视图,且您希望按照当前布局预加载 自适应横幅广告,请使用 AdSize.getCurrentOrientationInlineAdaptiveBannerAdSize(Context context, int width) 方法。 此方法用于在当前布局中加载广告。

限制内嵌自适应横幅广告的高度

默认情况下,如果内嵌自适应横幅广告在创建时未指定 maxHeight 值,其高度上限会等于设备高度。如需限制内嵌自适应 横幅广告的高度,请使用 AdSize.getInlineAdaptiveBannerAdSize(int width, int maxHeight) 方法。