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

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

前提条件

Ad Exchange にアクセスするようにアプリを構成する

android:name="com.google.android.gms.ads.APPLICATION_ID" を含む <meta-data> タグを介して、アプリの AndroidManifest.xml ファイルにアド マネージャー アプリ ID(アド マネージャーの管理画面で確認)を追加します。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 をプログラムで作成することもできます。

JavaKotlin
AdManagerAdView adView = new AdManagerAdView(this);

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

// TODO: Add adView to your view hierarchy.
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」を最小価格(マイクロ単位)とネットワークのデフォルトの通貨に置き換えます。マイクロが適用される例: デフォルトの通貨が米ドルの場合、「6000000」と入力すると、6.00 米ドルに相当します。

JavaKotlin
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();
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();