Ad Exchange への直接アクセスを設定する

Google Mobile Ads SDK は、Ad Exchange プロパティを使ったアプリの収益化に対応しています。このガイドでは、Ad Exchange でサポートされているすべての広告フォーマット向けにアプリを設定する方法について説明します。

前提条件

Ad Exchange にアクセスできるようにアプリを設定する

アド マネージャー アプリ ID(アド マネージャーの管理画面で識別される)を、<meta-data> タグを使用して android:name="com.google.android.gms.ads.APPLICATION_ID" とともにアプリの AndroidManifest.xml ファイルに追加します。android:value には、ご自身のアド マネージャー アプリ ID を引用符で囲んで挿入します。

<manifest>
    <application>
        <!-- Sample Ad Manager app ID: ca-app-pub-3940256099942544~3347511713 -->
        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
    </application>
</manifest>

また、上記のように <meta-data> タグを追加しなかった場合、次のメッセージが表示されてクラッシュします。

Missing application ID.

次に、Google Mobile Ads SDK を初期化して、表示する広告フォーマットを選択します。これ以降は、Ad Exchange から広告を読み込む方法について、バナー フォーマットを実装します。Google Mobile Ads SDK でサポートされているすべての広告フォーマットに同じ手順を適用できます。

Ad Exchange から広告を読み込む

アプリでは、広告ユニット ID の代わりに、末尾にスラッシュが付いた Ad Exchange のウェブ プロパティ コードを使用できます。

たとえば、次のように Activity のレイアウトに AdManagerAdView を配置してバナー広告を読み込むには、次のようにします。

# main_activity.xml
...
  <com.google.android.gms.ads.admanager.AdManagerAdView
      xmlns:ads="http://schemas.android.com/apk/res-auto"
      android:id="@+id/adManagerAdView"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_centerHorizontal="true"
      android:layout_alignParentBottom="true"
      ads:adSize="BANNER"
      ads:adUnitId="ca-mb-app-pub-5629679302779023/">
  </com.google.android.gms.ads.admanager.AdManagerAdView>

上記のように Ad Exchange のウェブ プロパティ コードに末尾のスラッシュを追加しないと、広告リクエスト エラーが発生し、次のメッセージが表示されます。

Invalid Request. Cannot determine request type. Is your ad unit id correct?

Ad Exchange のウェブ プロパティ コードを広告ユニットに変換することもできます。 その後、アド マネージャーの管理画面から Ad Exchange タグを生成してアプリにコピーできます。生成されたタグには、Ad Exchange のウェブ プロパティ コードと、その後にスラッシュを付けずに子孫の広告ユニット ID が続く必要があります(例: ca-mb-app-pub-5629679302779023/banner)。

または、プログラムで AdManagerAdView を作成することもできます。

Java

AdManagerAdView adView = new AdManagerAdView(this);

adView.setAdSizes(AdSize.BANNER);
adView.setAdUnitId("ca-mb-app-pub-5629679302779023/");

// TODO: Add adView to your view hierarchy.

Kotlin

val adView = AdManagerAdView(this)

adView.adSizes = AdSize.BANNER
adView.adUnitId = "ca-mb-app-pub-5629679302779023/"

// TODO: Add adView to your view hierarchy.

AdManagerAdView を配置したら、AdManagerAdView クラスの loadAd() メソッドを呼び出して、広告イベントを使用して広告の動作をカスタマイズできます。

これで完了です。これで、アプリで Ad Exchange からバナー広告を読み込んで表示できるようになりました。

また、Ad Exchange ウェブ プロパティを使用して、Ad Exchange から他の広告フォーマットを読み込んで表示することもできます。手順については、

(ヨーロッパの承認済みパブリッシャー様のみ)最小価格を追加する

「最小価格」機能のリクエストを送信できます。

承認されたら、広告リクエストに pubf パラメータと pvtf パラメータを使用して、公開最小価格または非公開最小価格を含めることができます。次のコード例で、「123」をマイクロ単位での最小価格とネットワークのデフォルト通貨にそれぞれ置き換えます。マイクロ単位の適用例: デフォルトの通貨が USD の場合、「6000000」を入力すると 6.00 ドルに相当します。

Java

Bundle extras = new Bundle();
// Public floor parameter.
extras.putString("pubf", "123");
// Private floor parameter.
extras.putString("pvtf", "123");

AdManagerAdRequest request = new AdManagerAdRequest.Builder()
    .addNetworkExtrasBundle(AdMobAdapter.class, extras)
    .build();

Kotlin

val extras = Bundle();
// Public floor parameter.
extras.putString("pubf", "123");
// Private floor parameter.
extras.putString("pvtf", "123");

val request = AdManagerAdRequest.Builder()
    .addNetworkExtrasBundle(AdMobAdapter::class::java, extras)
    .build();