Google Mobile Ads SDK は、Ad Exchange プロパティを使用してアプリを収益化することをサポートしています。このガイドでは、 Ad Exchange でサポートされているすべての広告フォーマットに対応するようにアプリを設定する方法について説明します。
前提条件
Ad Exchange にアクセスするようにアプリを構成する
アプリの AndroidManifest.xml ファイルに、<meta-data> タグを使用してアド マネージャー アプリ ID(アド マネージャーの管理画面で確認できます)を追加します。android:name="com.google.android.gms.ads.APPLICATION_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 ウェブ プロパティ コードを使用できます。例: ca-mb-app-pub-5629679302779023/
たとえば、次のように AdManagerAdView をレイアウト
に配置してバナー広告を読み込むには、次のようにします。Activity
# 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>
または、プログラムでビュー階層を作成することもできます。
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 を配置したら、loadAd()
メソッドを
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)。
これで、Ad Exchange からバナー広告を読み込んで表示する準備ができました。
また、Ad Exchange ウェブ プロパティを使用して、それぞれのガイドに沿って Ad Exchange から他の 広告フォーマットを読み込んで表示することもできます。
(ヨーロッパの承認済みパブリッシャー様のみ)最小価格を追加する
「最小価格」機能の使用リクエストを送信できます 。
承認されると、広告リクエストに公開最小価格または非公開最小価格を含めることができます
。使用するパラメータはpubfとpvtfです。次のコード
例では、「123」を最小価格(マイクロ単位)とネットワークの
デフォルトの通貨に置き換えます。マイクロ単位の適用例としては、デフォルトの通貨が米ドルの場合、「6000000」と入力すると
6 ドルと同等になります。
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();