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 を表示する

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