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