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

采用自适应横幅广告时,您可以指定广告宽度,从而为每台设备确定最理想的广告尺寸。与锚定自适应横幅广告不同,内嵌自适应横幅广告的尺寸更大、高度更高,并且采用的并非固定高度。内嵌自适应横幅广告的高度可变。这些横幅广告既可以铺满整个屏幕,也可以限制在您指定的最高高度之内。

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

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

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

准备工作

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

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

植入内嵌自适应横幅广告

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

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

  • 使用全屏宽度。
  • 使用包含广告的父版式的宽度。
  • 调整宽度以考虑设备安全区域。

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

请完成以下步骤:

  1. 获取设备的宽度,或设置宽度:

    Kotlin

    private val adWidth: Int
      get() {
        val displayMetrics = resources.displayMetrics
        val adWidthPixels =
          if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
            val windowMetrics: WindowMetrics = this.windowManager.currentWindowMetrics
            windowMetrics.bounds.width()
          } else {
            displayMetrics.widthPixels
          }
        val density = displayMetrics.density
        return (adWidthPixels / density).toInt()
      }
    

    Java

    public int getAdWidth() {
      DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
      int adWidthPixels = displayMetrics.widthPixels;
    
      if (VERSION.SDK_INT >= VERSION_CODES.R) {
        WindowMetrics windowMetrics = this.getWindowManager().getCurrentWindowMetrics();
        adWidthPixels = windowMetrics.getBounds().width();
      }
    
      float density = displayMetrics.density;
      return (int) (adWidthPixels / density);
    }
    
  2. 如需获取内嵌自适应广告尺寸对象,请使用广告尺寸类中的静态方法:

    Kotlin

    val adView = AdView(this@MainActivity)
    adView.setAdSize(AdSize.getCurrentOrientationInlineAdaptiveBannerAdSize(this, adWidth))

    Java

    final AdView adView = new AdView(MainActivity.this);
    adView.setAdSize(AdSize.getCurrentOrientationInlineAdaptiveBannerAdSize(this, getAdWidth()));

设置内嵌自适应横幅广告版式

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

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

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

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