合并自定义呈现的原生广告请求和横幅广告请求

只需对代码进行一些更改,您就可以在广告请求中组合使用原生广告和横幅广告。

前提条件

  • Google 移动广告 SDK 11.0.0 或更高版本。
  • 完成入门指南

加载广告

自定义呈现的原生广告是使用 AdLoader 类加载的,该类有自己的 AdLoader.Builder 类,可在广告制作过程中对广告进行自定义。应用在构建 AdLoader 的过程中会向其添加监听器,以指定它准备接收哪些类型的广告格式。这样,AdLoader 就会只请求这些类型的广告。

您还可以将 AdLoader 对象配置为发出可导致横幅广告或原生广告的广告请求。在构建 AdLoader 时向其添加 OnAdManagerAdViewLoadedListener 会指定横幅广告应与原生广告竞争以填充请求。

以下代码演示了如何构建可在单个请求中加载原生广告或横幅广告的 AdLoader

Java

AdLoader adLoader = new AdLoader.Builder(context, "/21775744923/example/native-and-banner")
    .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
      @Override
      public void onNativeAdLoaded(NativeAd nativeAd) {
        // Show the ad.
      }
    })
    .forAdManagerAdView(new OnAdManagerAdViewLoadedListener() {
      @Override
      public void onAdManagerAdViewLoaded(AdManagerAdView adView) {
        // Show the banner ad.
      }
    }, AdSize.BANNER, AdSize.MEDIUM_RECTANGLE)
    .withAdListener(new AdListener() {
      @Override
      public void onAdFailedToLoad(LoadAdError error) {
        // Handle the failure by logging, altering the UI, and so on.
      }
    })
    .withAdManagerAdViewOptions(new AdManagerAdViewOptions.Builder()
      // Methods in the AdManagerAdViewOptions.Builder class can be
      // used here to specify individual options settings.
      .build())
    .build();

Kotlin

val adLoader = AdLoader.Builder(this, "/21775744923/example/native-and-banner")
    .forNativeAd { nativeAd ->
      // Show the ad.
    }
    .forAdManagerAdView({ adView ->
      // Show the banner ad.
    }, AdSize.BANNER, AdSize.MEDIUM_RECTANGLE)
    .withAdListener(object: AdListener() {
      override fun onAdFailedToLoad(adError: LoadAdError) {
        // Handle the failure by logging, altering the UI, and so on.
      }
    })
    .withAdManagerAdViewOptions(AdManagerAdViewOptions.Builder()
      // Methods in the AdManagerAdViewOptions.Builder class can be
      // used here to specify individual options settings.
      .build())
    .build()

上述 forAdManagerAdView() 方法会准备 AdLoader 以接收横幅广告。调用 forAdManagerAdView() 时,必须将有效广告尺寸的可变长度列表与 OnAdManagerAdViewLoadedListener 一起指定。

若要发出有效的广告请求,必须指定至少一种有效的广告尺寸。当横幅广告成功加载后,系统会调用指定监听器对象的 onAdManagerAdViewLoaded() 方法。

设置 AdViewOptions

在上述 AdLoader 的创建过程中,所包含的最后一个函数是另一个可选方法 withAdManagerAdViewOptions()

Java

.withAdManagerAdViewOptions(new AdManagerAdViewOptions.Builder()
    // Methods in the AdManagerAdViewOptions.Builder class can be
    // used here to specify individual banner options settings.
    .build()

Kotlin

.withAdManagerAdViewOptions(AdManagerAdViewOptions.Builder()
    // Methods in the AdManagerAdViewOptions.Builder class can be
    // used here to specify individual banner options settings.
    .build()

借助 AdManagerAdViewOptions 对象,发布商可以为 AdLoader 加载的横幅设置特定选项,例如:

setManualImpressionsEnabled()
为 Google Ad Manager 预订启用人工展示次数报告。使用人工展示的应用可以自行确定何时应记录展示次数,方法是调用 AdManagerAdView.recordManualImpression()