Google モバイル広告メディエーション テストスイートを使用すると、第三者ネットワークからメディエーション経由で配信された広告を表示するよう、アプリや広告ユニットが正しく設定されているかどうかをテストできます。このガイドでは、アプリにツールを統合して、iOS アプリで Google モバイル広告メディエーション テストスイートを使用する方法の概要を説明します。
前提条件
- Xcode 12 以降を使用していること。
- iOS 8.0 以降をターゲットとしていること。
- AdMob アカウントを作成して、アプリを登録していること。
Info.plist
にアプリ ID が正しく入力されていること。
インストール
メディエーション テストスイートは、CocoaPods を使用してインストールします。これを行うには、Podfile に次の行を追加します。
pod 'GoogleMobileAdsMediationTestSuite'
これにより、テストスイートと必要な Material Components の依存関係が設定されます。pod install
を実行してインストールを完了します。
メディエーション テストスイートの起動
ツールを表示するには、まずフレームワークをインポートします。
Swift
import GoogleMobileAdsMediationTestSuite
Objective-C
@import GoogleMobileAdsMediationTestSuite;
ビューが表示されたら、テストスイートが次のように表示されます。
Swift
GoogleMobileAdsMediationTestSuite.present(on:self, delegate:nil)
Objective-C
[GoogleMobileAdsMediationTestSuite presentOnViewController:self delegate:nil];
メディエーション テストスイートを閉じると、このオプションのデリゲートで通知されます。デリゲートのコールバックを実装するには、GMTSMediationTestSuiteDelegate
プロトコルに適合させ、mediationTestSuiteWasDismissed
メソッドを実装します。
テストスイートの操作
ツールを開くと、次の免責条項が表示されます。
チェックボックスをオンにし、[同意する] を押して続行します。
アカウントの広告ユニットのリストが、[動作していない広告ユニット] と [動作している広告ユニット] の 2 つのタブに分かれて表示されます。
テストデバイスの登録
AdMob 管理画面でデバイスがテストデバイスとして登録されていない場合は、テストデバイスとして登録するかどうか尋ねるメッセージが表示されます。
テストデバイスとして登録すると、メディエーション テストスイートで次の操作が可能になります。
- テストスイートの管理画面で、広告ユニット ID ではなく広告ユニット名が表示されるようになります。
- 広告ユニット詳細情報の画面で、広告ユニット ID に加えて広告ユニット名でも検索が行えるようになります。
- AdMob からテスト広告を受信できるようになります。
[デバイスを登録] をクリックすると、テストデバイスを登録する AdMob 管理画面のページが表示されます。このページには、メディエーション テストスイートから抽出されたデバイスのプラットフォームと ID があらかじめ入力されています。テストデバイスの名前を追加して [保存] をクリックすると、デバイスが登録されます。詳しくは、テストデバイスを設定するをご覧ください。
デバイスの登録は、メディエーション テストスイートで通常 15 分以内に有効になりますが、24 時間ほどかかる場合もあります。登録のステータスを確認するには、メディエーション テストスイートをいったん閉じてから開き直す必要があります。
テストデバイスの登録ページにアクセスするには、AdMob アカウントにログインしている必要があります。アカウントへのアクセス権がない場合、この方法でデバイスを登録するには、リンクをクリックし、表示されるブラウザで URL をアカウント所有者と共有してください。アカウント所有者がリンクにアクセスし、お客様に代わってデバイスを登録します。
現時点でテストデバイスとして登録しない場合は、[閉じる] をクリックします。
動作していない広告ユニット
[動作していない広告ユニット] のリストは、[コンポーネントがありません] と [設定エラー] に分かれています。
広告ユニットのネットワークがすべて正常にテストされると、広告ユニットは [動作していない広告ユニット] タブから [動作している広告ユニット] タブに移動します。ネットワークの呼び出しに失敗した場合や広告ユニットが見つからなかった場合、広告ユニットのリストは表示されません。
広告ユニットのリストを検索する場合は、上部にある検索アイコンを押し、広告ユニット ID の文字列を入力します。ネットワーク名や広告フォーマットで検索することもできます。
以下のような場合、この画面には広告ユニットごとに警告が表示されます。
- 広告ソースの SDK がインストールされていない
広告ソースアダプタがインストールされていない
テストが可能な場合は、すべての広告ソースの総合的なテスト結果のステータスも表示されます。
[広告ユニット詳細情報] 画面に移動する広告ユニットを選択します。
広告ユニット詳細情報
この画面には、ad unit に設定された ad unit ID、広告フォーマット、メディエーション ウォーターフォールなど、ad unit の詳細が表示されます。
この画面の詳細は次のとおりです。
- 広告ソースの概要
各広告ソースには、SDK やアダプタがインストールされているかどうか、さらには、このセッションの最新のテスト結果を示すインジケータがあります。
カスタム イベントの場合は、「カスタム イベント: custom event」ラベルが使用されます。カスタム イベント用に指定したクラスが見つかると、カスタム イベントのアダプタ ステータス インジケータがオンになります。カスタム イベントの広告は、他のネットワークと同様に読み込んで表示することができます。
- 検索
検索アイコンを押すと検索画面が表示され、広告ソースを名前で検索できます。
- 一括テスト
一括でテストする広告ソースを選択するには、各広告ソース名の左側にあるチェックボックスをオンにします。新しいオプションがナビゲーション バーに表示されます。
選択した広告ソースの広告を順番に読み込むには、右上にある [広告を読み込む] ボタンを押します。テスト中は進行状況インジケータが表示されます。左上の戻るアイコンを押すと選択が解除されます。
広告の読み込みと表示
広告ソースのエントリをタップすると、広告ソースの詳細画面が表示されます。
画面には、指定した広告ソースについて次の情報が表示されます。
- SDK がインストールされているかどうか(取得可能な場合、SDK のバージョン)。
- アダプタがインストールされているかどうか(取得可能な場合はアダプタのバージョン)。
- アダプタの初期化ステータス(取得可能な場合)。
- AdMob コンソールに入力された設定のパラメータ。
必要なコンポーネントをすべてインストールしたら、広告の読み込みテストに進むことができます。[広告を読み込む] をタップすると、広告ソースの SDK に広告リクエストが送信されます。広告リクエストが完了すると、リクエストの成否を示す最新情報が表示されます。
リクエストが失敗した場合は、テスト対象の SDK からのメッセージをコンソールログで確認します。
リクエストが成功した場合:
- バナー広告の場合、広告はインラインで表示されます。
- インタースティシャル広告やリワード広告の場合は、[広告を表示する] をタップして広告を表示できます。
ネイティブ広告の場合は、返されるアセットがインラインで表示されます。
広告は次のように新しい画面で開きます。
詳細情報の画面に戻ると、ad unit のリスト画面で最後に行った広告テストの結果が表示されます。正常に読み込まれた広告ソースはリストの一番下に移動し、さらにテストが必要な広告ソースが上部に表示されます。
Open Bidding パートナー
Open Bidding のテストについて詳しくは、 Open Bidding 設定ガイドを確認する をご覧ください。
本番環境でテストを有効にする
デフォルトでは、メディエーション テストスイートは、開発、アドホック、エンタープライズのビルドでのみ起動します。これは、エンドユーザーが誤ってテストスイートを起動しないようにするためです。
アプリが本番環境になってから、デバイスでメディエーション テストスイートを実行する必要がある場合は、SDK でデバイスをテストデバイスとして登録します。
本番環境のアプリにメディエーション テストスイートを含める場合は、テストスイートを起動する方法を隠す必要があります(非公開の操作やデバッグ メニューなど)。その後、ビルドで許可リストに登録したデバイスでテストスイートを起動します。
ネットワークの追加パラメータを使用した広告リクエストの設定(任意)
Vungle など、一部のメディエーション向けネットワークでは、カスタムのネットワーク追加オブジェクトで、ネットワークへのリクエストに追加情報を含めることもできます。
メディエーション リクエストにネットワークの追加オブジェクトを含める場合は、次のように、
[GoogleAdsMediationTestSuite setAdRequest:]
クラスメソッドを使用するようテストスイートの広告リクエストを設定します。
Swift
let request = GADRequest() ... // Set your network extras for your chosen networks here. // I.e., for each network extras object, call // 'request.register(\)' ... GoogleAdsMediationTestSuite.setAdRequest(request);
Objective-C
GADRequest request = [GADRequest request]; ... // Set your network extras for your chosen networks here. // I.e., for each network extras object, call // '[request registerAdNetworkExtras:\];' ... [GoogleAdsMediationTestSuite setAdRequest:request];
この設定は、メディエーション テストスイートを起動する前に行うようにしてください。
これにより、必要な追加パラメータを使用して広告リクエストのインスタンス化と設定を行えます。テストスイートはこれをメディエーション ネットワークへのリクエストに使用できます。
CocoaPods 詳細設定(任意、デバッグのみ)
アプリのデバッグ バージョンにのみポッドを含める場合は、Debug
ビルド設定専用のポッドとして Podfile で指定することができます。また、ツールを呼び出すコードは #ifdef DEBUG
ステートメントなどを使用して管理する必要があります。
デバッグ設定にのみポッドを含めるには、次の行を使用します。
pod 'GoogleMobileAdsMediationTestSuite', :configurations => ['Debug'], :path => '/path/to/GoogleMobileAdsMediationTestSuite/'
#ifdef DEBUG
を使用して、フレームワークとそのクラスへの参照をすべてラップするようにしてください。
Swift
import UIKit #if DEBUG import GoogleMobileAdsMediationTestSuite #endif import GoogleMobileAds let APP_ID = "ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy" class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() } @IBAction func presentMediationController(_ sender: AnyObject) { #if DEBUG GoogleMobileAdsMediationTestSuite.present(withAppId:APP_ID, on:self, delegate:nil) #endif }
Objective-C
#import "ViewController.h" #ifdef DEBUG @import GoogleMobileAdsMediationTestSuite; #endif #import <GoogleMobileAds/GoogleMobileAds.h> static NSString *APP_ID = @"ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"; @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; } - (IBAction)presentMediationController:(id)sender { #ifdef DEBUG [GoogleMobileAdsMediationTestSuite presentWithAppId:APP_ID onViewController:self delegate:nil]; } #endif }
Changelog
v2.0.0
リリース日: 2021-06-04
- play-services-ads v20 との互換性を追加しました。SDK バージョン 20.0.0 以降が必要となります。
- play-services-ads の依存関係を 20.1.0 に更新しました。
- MediationTestSuite.addTestDevice() API と MediationTestSuite.getTestDevices() API を削除しました。テストデバイス ID を設定するには、MobileAds.setRequestConfiguration() を代わりに使用してください。
- AdColony、Vungle、IronSource のバナー設定に対するサポートを追加しました。
- i-mobile と Tapjoy で誤って設定エラーが報告されるバグを修正しました。
v1.5.0
リリース日: 2020-11-23
- アプリ ID の組み合わせを使ってアド マネージャーのサポートを有効にする
MediationTestSuite.launchForAdManager(Context context)
API を追加しました。 - AdMob 用のテストデバイスを登録するためのサポートを追加しました。
- アド マネージャーの広告ユニットのマッピングが設定されていないとクラッシュする問題を修正しました。
- サポートが終了した Vungle SDK のマニフェスト チェックを削除しました。
- play-services-ads の依存関係を 19.5.0 に更新しました。
v1.4.0
リリース日: 2020-07-30
- play-services-ads の依存関係を 19.3.0 に更新しました。
- バナー、インタースティシャルのフォーマットで発生するクラッシュの原因となっていた問題を修正しました。
- Fyber Marketplace のサポートを追加しました。
- Chartboost 向けのバナーのサポートを追加しました。
- MoPub のマニフェスト エントリ検出の問題を修正しました。
v1.3.0
リリース日: 2020-02-27
- Open Bidding 広告を読み込むためのサポートを追加しました。
- AppLovin と InMobi のマニフェスト要件を修正しました。
v1.2.2
リリース日: 2019-12-10
- Unity で発生するビルドエラーの原因となっていた ProGuard ファイルのエラーを修正しました。
v1.2.1
リリース日: 2019-11-11
- 広告の依存関係を 18.3.0 に更新しました。
v1.2.0
リリース日: 2019-09-11
- 初回 Open Bidding サポート向けに更新しました(設定を確認することが可能で、広告の読み込みは不可)。
- i-mobile、Verizon Media 向けのネットワーク サポートを追加しました。
v1.1.1
リリース日: 2019-06-28
- AndroidX のサポート向けに FlexboxLayout の依存関係を更新しました。
v1.1.0
リリース日: 2019-06-27
- AndroidX のサポート向けにアップデートしました。
- アダプタ、ネットワーク、関連する設定(必要なマニフェスト エントリなど)を更新しました。
- AndroidManifest.xml で AdMob ID を使用する
MediationTestSuite.launch(Context)
API を追加しました。
v1.0.0
リリース日: 2019-04-22
- 一般リリース向けにバージョンのバンプを行いました。
v0.9.5
リリース日: 2019-02-22
- 広告ネットワークやカスタム イベントの設定パラメータで JSON を指定する際の問題を修正しました。
v0.9.4
リリース日: 2019-02-11
- Google Mobile Ads SDK のバージョン 17.1.3 への更新など、依存関係を更新しました。
- AdColony SDK 向けのマニフェスト権限の誤りに関するバグを修正しました。
- 広告読み込みのコンテキストが API 28 でアクティビティにならない問題を修正しました。
v0.9.3
リリース日: 2019-02-07
- メディエーション テストスイートでネットワークをテストする際に他のネットワークから広告が読み込まれる問題を修正しました。
- ネイティブ広告の読み込み向けにネイティブ アセット ビューを追加しました。
- 従来の「バナー、インタースティシャル」広告ユニットのサポートを追加しました。
- テストスイートが本番環境でリリースされないようにするための安全措置を追加しました。
MediationTestSuite.addTestDevice(String deviceHash)
を使ってホワイトリストに登録された AdMob デバイス ID を持つデバイスで実行しない限り、テストスイートがリリースビルドでリリースされることはなくなりました。 - JA、KO、VI、ZH-CN 向けにテストスイートのローカライズを追加しました。
v0.9.2
リリース日: 2018-10-03
- Facebook インタースティシャルに余分な「アカウント ID」パラメータが含まれる問題を修正しました。
- Vungle SDK v5.x 向けの権限の誤りに関する問題を修正しました。
- v21 より前の Android バージョンで発生するバグを修正しました。
- メディエーション アダプタでアクティビティ コンテキストが必要な際に広告の読み込みで発生する問題を修正しました。
v0.9.1
リリース日: 2018-09-20
- Vungle SDK バージョン 6.x をサポートするように更新しました。
- ProGuard を使ってビルドした場合にクラッシュが発生する問題を修正しました。
- Java 7 のサポートを追加しました。
v0.9.0
リリース日: 2018-08-07
- 更新された管理画面を含むオープンベータ版をリリースしました。
- 一括テスト機能を追加しました。
v0.2
リリース日: 2018-03-20
- 新しい AdMob 管理画面でメディエーション グループを使用しているパブリッシャーをサポートするよう更新しました。
- 管理画面を更新しました。
- Nend、myTarget、maio、IronSource の広告ネットワークのサポートを追加しました。
v0.1.1
リリース日: 2017-12-11
- アプリの設定を読み込む際に時折発生する NPE の原因となっていたバグを修正しました。
v0.1
リリース日: 2017-11-10
- 初版リリース。メディエーションの設定をリリースおよびダウンロードし、アダプタ、SDK、マニフェストの正しさを確認して、AdMob メディエーション アダプタ経由で第三者ネットワークから広告を読み込んで表示します。