ネイティブ広告とバナー広告のリクエストを組み合わせる

コードを少し変更するだけで、広告リクエストでネイティブ広告とバナー広告を組み合わせることができます。

前提条件

広告を読み込む

ネイティブ広告とバナー広告を組み合わせたリクエストを行うには、次の手順に沿って操作します。

  1. NativeAdRequest のリストとして NativeAdType.NATIVE 型と NativeAdType.BANNER 型の両方を渡します。

  2. バナー広告のサイズを 1 つ以上設定します。

次の例では、ネイティブ広告とバナー広告を組み合わせて読み込んでいます。

Kotlin

val adRequest =
  NativeAdRequest.Builder(AD_UNIT_ID, listOf(NativeAdType.NATIVE, NativeAdType.BANNER))
    // Use setAdSize() or setAdSizes() depending on if you want multiple ad sizes or not.
    .setAdSizes(listOf(AdSize.BANNER, AdSize.LARGE_BANNER))
    .build()

// Load the native and banner ad with the ad request and callback.
NativeAdLoader.load(adRequest, getNativeAdLoaderCallback())

Java

NativeAdRequest adRequest =
    new NativeAdRequest.Builder(AD_UNIT_ID, List.of(NativeAdType.NATIVE, NativeAdType.BANNER))
        // Use setAdSize() or setAdSizes() depending on if you want multiple ad sizes or not.
        .setAdSizes(Arrays.asList(AdSize.BANNER, AdSize.LARGE_BANNER))
        .build();

// Load the native and banner ad with the ad request and callback.
NativeAdLoader.load(adRequest, getNativeAdLoaderCallback());

NativeAdLoaderCallback オブジェクトから広告を取得する

読み込みに成功した広告のタイプに応じて、NativeAdLoaderCallback オブジェクトはネイティブ広告の場合は onNativeAdLoaded() メソッドを、バナー広告の場合は onBannerAdLoaded() メソッドを呼び出します。

次の例では、バナー広告またはネイティブ広告を取得しています。

Kotlin

private fun getNativeAdLoaderCallback(): NativeAdLoaderCallback {
  return object : NativeAdLoaderCallback {
    override fun onNativeAdLoaded(nativeAd: NativeAd) {
      // Called when a native ad has loaded.
    }

    override fun onBannerAdLoaded(bannerAd: BannerAd) {
      // Called when a banner ad has loaded.
    }
  }
}

Java

private NativeAdLoaderCallback getNativeAdLoaderCallback() {
  return new NativeAdLoaderCallback() {
    @Override
    public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {
      // Called when a native ad has loaded.
    }

    @Override
    public void onBannerAdLoaded(@NonNull BannerAd bannerAd) {
      // Called when a banner ad has loaded.
    }
  };
}