ネイティブ広告(エクスプレス)

このガイドでは、Google Mobile Ads SDK を使用して AdMob ネイティブ エクスプレス広告を Android アプリに表示する方法を説明します。NativeExpressAdView をレイアウトに追加する方法、広告をリクエストする方法などを取り上げます。

前提条件

このガイドでは、Google Mobile Ads SDK の実践的知識があることを前提としています。予備知識がない場合は、Android Studio スタートガイドを通読されることをおすすめします。

ネイティブ エクスプレス広告の概要

ネイティブ エクスプレス広告は、レイアウトにドロップして配置し、サイズを自由に調整できるバナー広告のような長方形の広告フォーマットです。 バナー広告との主な違いは、広告ユニット用の CSS テンプレートをアップロードすることで、広告表示の詳細(画像サイズ、フォント、色など)を制御できるという点です。 AdMob が、そのテンプレートと広告主のアセット(アイコン、画像、テキストなど)を組み合わせて、結果を NativeExpressAdView に表示します。 この方法では、自然な形でアプリに広告を表示しながら、ネイティブ エクスプレス広告に必要な Java コードの量を最小限に抑えることができます。

ネイティブ エクスプレス広告の広告ユニットを作成する

ネイティブ エクスプレス広告の広告ユニットは、apps.admob.com で作成します。 広告フォーマットの概要と、広告ユニットに合わせたテンプレート サイズの選択の詳細については、ヘルプセンターのガイドをご覧ください。 自然でコンテンツの邪魔にならないネイティブ エクスプレス広告の CSS コードを記述する方法については、ネイティブ エクスプレス広告用のカスタム CSS ガイドをご覧ください。

NativeExpressAdView

NativeExpressAdView クラスは、ネイティブ エクスプレス広告のリクエストと表示に使用します。 XML レイアウト ファイルに表示される NativeExpressAdView 要素の例を次に示します。

<com.google.android.gms.ads.NativeExpressAdView
    android:id="@+id/adView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    ads:adUnitId="ca-app-123123123123/123123123"
    ads:adSize="320x150">
</com.google.android.gms.ads.NativeExpressAdView>

要素の属性は、次のように設定します。

  • android:layout_heightandroid:layout_width は、どちらも wrap_content に設定します。
  • ads:adUnitId は、有効なネイティブ エクスプレス広告の広告ユニット ID に設定します。ユニット ID を挿入することも、文字列リソースへの参照(@string/my_ad_unit など)を使用することもできます。
  • ads:AdSize は、ネイティブ エクスプレス広告の目的のサイズにします。 WIDTHxHEIGHT 形式のサイズが一般的ですが、他のオプションもあります。次のセクションで説明します。

サイズを選択する

ネイティブ エクスプレス広告にはテンプレート サイズが複数あり、アプリのレイアウトにうまく適合するように、それぞれ端末に依存しないピクセル(dp)単位で高さと幅の値の範囲が用意されているので、固定のサイズから選択する必要はありません。

テンプレート サイズ 最小幅 最大幅 最小高さ 最大高さ
280 1200 80 612
280 1200 132 1200
280 1200 250 1200

「中」サイズのテンプレートを表示するには、幅 280~1200 dp、高さ 132~1200 dp の範囲で指定します。 つまり、サイズ 300x200、450x150、613x572 はいずれも「中」テンプレート サイズとして有効です。 ただし、すべてのサイズが適切な表示になるとは限りません。 1200x80 の「小」テンプレートをリクエストすることは技術的には可能ですが、おすすめしません。広告を表示する端末の画面寸法も必ず考慮してください。 大サイズは一般的にタブレットで使用します。

アプリは、すべてのリクエストに対して同じサイズを使用する必要はありません。 1 つのサイズの同じ広告ユニットが縦向きや横向きでリクエストされることも、表示される特定の端末に応じて異なるサイズでリクエストされることもあります。 アプリが、広告ユニット テンプレートの範囲を超える広告サイズをリクエストした場合は、エラーが返されます。

NativeExpressAdViewAdSize をプログラムで作成するときに FULL_WIDTH 定数を使用することもできます。 その場合は、広告が端末画面の幅いっぱいに表示されます。

現在、AUTO_HEIGHT 定数と FLUID 広告サイズは、ネイティブ エクスプレス広告では使用できません。

広告を読み込む

広告の読み込みは、NativeExpressAdViewloadAd メソッドを呼び出して行います。 このメソッドは、パブリッシャーがリクエストに情報を追加するために使用できる AdRequest オブジェクトを受け取ります。

MainActivity.java(抜粋)

NativeExpressAdView adView = (NativeExpressAdView)findViewById(R.id.adView);

AdRequest request = new AdRequest.Builder()
    .addTestDevice("YOUR_DEVICE_ID")
    .build();
adView.loadAd(request);

関連情報

ネイティブ エクスプレス広告を効果的に使用するための情報について、以下のリソースをご覧ください。

GitHub からサンプル プロジェクトをダウンロードして、ネイティブ エクスプレス広告の動作を確認することもできます。

フィードバックを送信...