設定

このガイドは、Google モバイル広告メディエーションに関心をお持ちのパブリッシャー様を対象としています。お手持ちの Android アプリでメディエーション アダプタを設定し、追加のリクエスト パラメータを設定する手順について説明します。

前提条件

メディエーション アダプタをプロジェクトに追加する

ネットワーク アダプタと SDK を含める

広告の配信元として希望するネットワークを決定したら、メディエーション ネットワークのページからそのネットワークの SDK とアダプタをダウンロードできます。一部の SDK には、Google モバイル広告アダプタが最初から含まれています。

Android Studio をお使いの場合は、プロジェクトの libs フォルダにある JAR ファイルを追加します。build.gradle file に次の内容が含まれるようにします。

compile fileTree(dir: 'libs', include: ['*.jar'])

AndroidManifest.XML を設定する

使用予定の各広告ネットワークの要件に応じて AndroidManifest.xml にエントリを追加します。各ネットワークの設定手順は、メディエーション ネットワークのページで確認できます。AndroidManifest.xml ファイルの変更に関連する手順に従ってください。

アプリで広告ネットワークを呼び出す必要はありません。Google Mobile Ads SDK がサードパーティ広告ネットワークのアダプタを呼び出し、サードパーティ広告を取得します。リクエスト パラメータを追加する必要がない場合は、これで完了です。追加する場合は、メディエーション広告ネットワークに追加情報を提供する方法を続けて確認します。

Activity インスタンスを使用して広告オブジェクトを初期化する

新しい広告オブジェクト(AdView など)のコンストラクタで、Context 型のオブジェクトを渡す必要があります。この Context は、メディエーションを使用する際に他の広告ネットワークに渡されます。広告ネットワークによっては、制限がさらに厳しい ActivityContext が要求され、Activity インスタンスがなければ広告を配信できない場合もあります。そのため、メディエーション広告ネットワークでのエクスペリエンスが一貫したものになるよう、広告オブジェクトの初期化時に Activity インスタンスを渡すことをおすすめします。

メディエーションでの子供向け取り扱い

DFP メディエーションによって、児童オンライン プライバシー保護法(COPPA)への準拠が容易になります。

Google Mobile Ads SDK で tagForChildDirectedTreatment(true) を設定して、COPPA に基づきコンテンツを子供向けとして取り扱う必要があるかどうかを指定します。Google がこの設定をメディエーションのサードパーティ広告ネットワークに提供することで、COPPA への準拠が容易になります。詳しくは、広告リクエストに子供向け取り扱いのタグ(TFCD)を設定する方法をご覧ください。

DFP はプラットフォームとして機能するだけであり、広告の取引はモバイルアプリのデベロッパー様とサードパーティ広告ネットワークとの間で行うものです。そのため、サードパーティ広告ネットワークから配信される広告により、デベロッパー様のコンテンツが COPPA に基づき子供向けとして取り扱われるよう、デベロッパー様の責任で管理していただく必要があります。

追加のリクエスト パラメータを指定する(省略可)

ユーザーの性別や生年月日などのターゲット設定情報を、必要に応じて PublisherAdRequest に追加できます。ネットワークはこの情報に基づき、ターゲットに合う広告を配信します。

AdMob では、性別や生年月日を設定するためのメソッドを提供しています。これらの情報は、対応しているすべてのネットワークに渡されます。以下がその例です。

PublisherAdRequest adRequest = new PublisherAdRequest.Builder()
    .setGender(PublisherAdRequest.GENDER_FEMALE)
    .setBirthday(new GregorianCalendar(1985, 1, 1).getTime())  // January 1, 1985
    .build();

ネットワークによっては、他の独自のリクエスト パラメータをサポートしているところもあります。こうしたパラメータをネットワークに提供する方法については、以下の「v1」や「v2」の手順をご参照ください。アダプタが v1 と v2 のどちらなのかご不明な場合は、アダプタのクラスを指定して addNetworkExtrasBundle を呼び出します(詳細は以下の v2 を参照)。アダプタをコンパイルできたら v2 アダプタで、できない場合は v1 アダプタです。なお、1 つのアプリで v1 アダプタと v2 アダプタの両方を使用することができます。

v1

特定のメディエーション ネットワークに追加のパラメータを渡すには、PublisherAdRequestaddNetworkExtras() メソッドを使用します。addNetworkExtras() メソッドは、NetworkExtras を実装しているクラスのインスタンスを受け取ります。

各ネットワークは独自の追加クラスを定義しています。次の表に、一部のネットワークの該当するクラス名を示します。

広告ネットワーク 追加のパラメータ クラス
Millennial Media com.google.ads.mediation.millennial.MillennialAdapterExtras
InMobi com.google.ads.mediation.inmobi.InMobiAdapterExtras

たとえば、Millennial Media と InMobi では、ユーザーの収入を指定して関連性の高い広告を配信できます。これらのネットワークの広告をリクエストする際にメディエーション フレームワークで収入を渡すには、次のコードを使用します。

import com.google.android.gms.ads.doubleclick.PublisherAdRequest;
import com.google.android.gms.ads.doubleclick.PublisherAdView;
import com.google.ads.mediation.inmobi.InMobiAdapterExtras;
import com.google.ads.mediation.millennial.MillennialAdapterExtras;

/* … */

    /* Set parameters common to all networks in ad request. */

    // Millennial Media extra parameters.
    MillennialAdapterExtras millennialExtras = new MillennialAdapterExtras();
    millennialExtras.setIncomeInUsDollars(65000);

    // InMobi extra parameters.
    InMobiAdapterExtras inMobiExtras = new InMobiAdapterExtras();
    inMobiExtras.setIncome(65000);

    // Create the ad request with these extra parameters.
    PublisherAdRequest adRequest = new PublisherAdRequest.Builder()
        .addNetworkExtras(millennialExtras)
        .addNetworkExtras(inMobiExtras)
        .build();

    // Finally, request the ad.
    adView.loadAd(adRequest);
V2

特定のメディエーション ネットワークに追加のパラメータを渡すには、PublisherAdRequest.BuilderaddNetworkExtrasBundle() メソッドを使用します。パラメータの送信先となるアダプタのクラスと、アダプタで使用する値のバンドルを渡します。

多くの場合、追加のパラメータをサポートしているアダプタには、バンドルに適したキーを表す定数か、ネットワークに渡す有効なバンドルの生成を促すメソッドが含まれます。

よくある質問

広告リスナーはメディエーションでも使用できますか?
はい。すべてのメディエーション ネットワークで使用できます。
v1 メディエーション アダプタは Google Play 開発者サービスで使用できますか?
はい。Google Play 開発者サービスに含まれる Mobile Ads SDK は、v1 メディエーション アダプタとの後方互換を維持した設計になっています。
アプリの次のバージョンで使用するため、新しいネットワークをメディエーション設定に追加しようと思っています。このネットワークを含んでいない現在のバージョンのアプリには、どのような影響がありますか?
SDK はアダプタがないことを検出すると、正常に終了します。リクエストは、メディエーション ウォーターフォール内の次のネットワークに渡されます。
「Could not instantiate mediation adapter: x.y.z.SomeAdapter(メディエーション アダプタ x.y.z.SomeAdapter をインスタンス化できませんでした)」というエラー メッセージはどのような意味ですか?
このクラスを含むアダプタ ライブラリが、プロジェクトに欠けていると考えられます。メディエーションの対象となるすべての広告ネットワークに、ネットワーク アダプタと SDK を含めることが必要です。

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

SDK for DFP Users on Android
ご不明な点がありましたら、Google のサポートページをご覧ください。