原生广告

请选择平台: Android iOS Flutter Unity

原生广告是通过平台原本就有的界面组件向用户呈现的广告素材资源。这种广告使用您在构建布局时已经采用的同类视图进行展示,而且能以和应用视觉设计相称的形式呈现。

加载原生广告时,您的应用会收到一个包含其素材资源的广告对象,然后由应用(而不是 Google 移动广告 SDK)负责展示它们。

一般而言,要成功植入原生广告,就需要完成两步:通过 SDK 加载广告,然后在您的应用中展示广告内容。

本页介绍了如何使用 SDK 加载原生广告。 提示:如需详细了解原生广告,请参阅我们的原生广告指南

您还可以查看客户成功案例:案例研究 1案例研究 2

前提条件

务必用测试广告进行测试

在构建和测试应用时,请确保使用的是测试广告,而不是实际投放的广告。

对于在 Android 上投放的原生广告,加载测试广告最简便的方法就是使用下面的测试专用广告单元 ID:

ca-app-pub-3940256099942544/2247696110

该测试广告单元 ID 已经过专门配置,可确保每个请求返回的都是测试广告。您可以在自己应用的编码、测试和调试过程中使用该测试广告单元 ID。需要注意的一点是,请务必在发布应用前用您的广告单元 ID 替换该测试广告单元 ID。

如需详细了解 Google 移动广告 SDK 的测试广告如何运作,请参阅测试广告

加载广告

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

构建 AdLoader

以下代码演示了如何构建可加载原生广告的 AdLoader

Java

// It is recommended to call AdLoader.Builder on a background thread.
new Thread(
        () -> {
          AdLoader adLoader =
              new AdLoader.Builder(context, "AD_UNIT_ID")
                  .forNativeAd(
                      new NativeAd.OnNativeAdLoadedListener() {
                        @Override
                        // The native ad loaded successfully. You can show the ad.
                        public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {}
                      })
                  .withAdListener(
                      new AdListener() {
                        @Override
                        // The native ad load failed. Check the adError message for failure
                        // reasons.
                        public void onAdFailedToLoad(@NonNull LoadAdError adError) {}
                      })
                  // Use the NativeAdOptions.Builder class to specify individual options
                  // settings.
                  .withNativeAdOptions(new NativeAdOptions.Builder().build())
                  .build();
        })
    .start();

Kotlin

// It is recommended to call AdLoader.Builder on a background thread.
CoroutineScope(Dispatchers.IO).launch {
  val adLoader =
    AdLoader.Builder(context, "AD_UNIT_ID")
      .forNativeAd { nativeAd ->
        // The native ad loaded successfully. You can show the ad.
      }
      .withAdListener(
        object : AdListener() {
          override fun onAdFailedToLoad(adError: LoadAdError) {
            // The native ad load failed. Check the adError message for failure reasons.
          }
        }
      )
      // Use the NativeAdOptions.Builder class to specify individual options settings.
      .withNativeAdOptions(NativeAdOptions.Builder().build())
      .build()
}

AD_UNIT_ID 替换为您的测试设备 ID。

forNativeAd() 方法负责为 NativeAd 格式准备 AdLoader。当广告成功加载后,会调用监听器对象的 onNativeAdLoaded() 方法。

使用 AdLoader 设置 AdListener(可选)

创建 AdLoader 时,withAdListener 函数会为加载程序设置一个 AdListener。该方法将 AdListener 作为其唯一参数,当广告生命周期事件发生时,此参数会收到来自 AdLoader 的回调:

Java

adLoaderBuilder.withAdListener(
    // Override AdListener callbacks here.
    new AdListener() {});

Kotlin

adLoaderBuilder.withAdListener(
  // Override AdListener callbacks here.
  object : AdListener() {}
)

提出广告请求

构建完 AdLoader 后,就可以使用它来请求广告了。 用于加载广告的方法有两个:loadAd()loadAds()