Native Ads

ネイティブ広告は、プラットフォームに備わっている UI コンポーネントを通じてユーザーに表示される広告アセットです。作成済みのレイアウトに溶け込むように表示され、ユーザー エクスペリエンスの視覚デザインに合わせてフォーマットすることができます。コーディングの観点で言うと、ネイティブ広告の読み込み時にアプリがその広告のアセットを含む NativeAd オブジェクトを受け取り、(Google Mobile Ads SDK ではなく)アプリがそのアセットの表示処理を実行します。

大まかに言うと、ネイティブ広告の実装は、SDK を使って広告を読み込み、アプリにその広告コンテンツを表示するという 2 つの段階に分かれています。このページでは、SDK を使ったネイティブ広告の読み込みについて説明します。

前提条件

広告を読み込む

ネイティブ広告の読み込みには AdLoader クラスを使用します。このクラスは、独自の Builder クラスを使って作成時にカスタマイズできるようになっています。AdLoader の作成時にリスナーを追加すると、アプリで受け取るネイティブ広告の種類を指定できます。指定すると、AdLoader はその種類の広告だけをリクエストするようになります。

AdLoader の作成

統合型ネイティブ広告の読み込みが可能な AdLoader を作成する方法については、次のコードをご覧ください。

Java

    AdLoader adLoader = new AdLoader.Builder(context, "/6499/example/native")
        .forUnifiedNativeAd(new UnifiedNativeAd.OnUnifiedNativeAdLoadedListener() {
            @Override
            public void onUnifiedNativeAdLoaded(UnifiedNativeAd unifiedNativeAd) {
                // Show the ad.
            }
        })
        .withAdListener(new AdListener() {
            @Override
            public void onAdFailedToLoad(int errorCode) {
                // Handle the failure by logging, altering the UI, and so on.
            }
        })
        .withNativeAdOptions(new NativeAdOptions.Builder()
                // Methods in the NativeAdOptions.Builder class can be
                // used here to specify individual options settings.
                .build())
        .build();
    

Kotlin

    val adLoader = AdLoader.Builder(this, "/6499/example/native")
        .forUnifiedNativeAd { ad : UnifiedNativeAd ->
            // Show the ad.
        }
        .withAdListener(object : AdListener() {
            override fun onAdFailedToLoad(errorCode: Int) {
                // Handle the failure by logging, altering the UI, and so on.
            }
        })
        .withNativeAdOptions(NativeAdOptions.Builder()
                // Methods in the NativeAdOptions.Builder class can be
                // used here to specify individual options settings.
                .build())
        .build()
    

UnifiedNativeAd フォーマットの準備

上記の最初のメソッドを使用すると、次の UnifiedNativeAd フォーマットに対応した AdLoader を準備できます。

forUnifiedNativeAd()
このメソッドを呼び出すと、統合型ネイティブ広告をリクエストするように AdLoader が設定されます。 広告の読み込みに成功すると、リスナー オブジェクトの onUnifiedNativeAdLoaded() メソッドが呼び出されます。

AdLoader が広告リクエストを行うと、パブリッシャー様に最大限の収益をもたらす広告が Google で選定されて表示されます。

AdLoader での AdListener の使用

上記の AdLoader を作成する際、withAdListener 関数で AdListener を設定します。

この手順は省略可能です。このメソッドは AdListener を唯一のパラメータとして受け取ります。広告のライフサイクル イベントが発生すると、このパラメータは AdLoader からコールバックを受け取ります。

Java

    .withAdListener(new AdListener() {
        // AdListener callbacks like OnAdFailedToLoad, OnAdOpened, OnAdClicked and
        // so on, can be overridden here.
    })
    

Kotlin

    .withAdListener(object : AdListener() {
        // AdListener callbacks like OnAdFailedToLoad, OnAdOpened, OnAdClicked and
        // so on, can be overridden here.
    })
    

AdListener オブジェクトのネイティブ広告での動作と、バナーやインタースティシャルでの動作には、1 つの大きな違いがあります。AdLoader には、広告が読み込まれたときに使うリスナーとして、フォーマット固有のリスナー(UnifiedNativeAd.OnUnifiedNativeAdLoadedListener など)があるため、ネイティブ広告の読み込みに成功したときに AdListener から onAdLoaded() メソッドが呼び出されることはありません

ネイティブ広告の読み込み

AdLoader の作成が完了したら、loadAd() メソッドを呼び出して広告をリクエストします。

Java

    adLoader.loadAd(new PublisherAdRequest.Builder().build());
    

Kotlin

    adLoader.loadAd(PublisherAdRequest.Builder().build())
    

なお、AdLoaders では、バナーやインタースティシャルの場合と同じ PublisherAdRequest クラスを使用します。他の種類の広告の場合と同様に、このクラスのメソッドを使ってターゲット設定の情報を追加することもできます。

広告をリクエストするタイミング

ネイティブ広告を表示するアプリでは、実際に表示する広告を前もってリクエストすることもでき、通常はこの方法がおすすめです。 たとえば、ネイティブ広告を含むアイテムリストを表示するアプリでは、ユーザーがビューをスクロールしなければ表示されない広告や、まったく表示されない可能性がある広告が含まれている場合でも、そのリストに含まれるネイティブ広告を事前にすべて読み込むことができます。

UnifiedNativeAd を表示する

広告を読み込んだら、あとは広告をユーザーに表示するだけです。 方法はネイティブ アドバンスに関するガイドでご確認ください。