メディエーション テストスイート

AdMob メディエーション テストスイートを使用すると、第三者ネットワークから AdMob メディエーション経由で配信された広告を表示するようアプリや広告ユニットが正しく設定されているか確認できます。

このガイドでは、iOS アプリで AdMob メディエーション テストスイートを使用する方法の概要を説明します。まず、アプリにツールを統合します。

前提条件

  • Xcode 11 以降を使用していること

  • iOS 8.0 以降をターゲットとしていること。

インストール

メディエーション テスト スイートは、CocoaPod を使用してインストールします。これを行うには、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];

Info.plist には、AdMob アプリ ID を正しく入力してください。

また、デリゲートはオプションで、ツールが終了したときに通知を受けたい場合にのみ提供します。デリゲートのコールバックを実装するには、GMTSMediationTestSuiteDelegate プロトコルに適合させ、mediationTestSuiteWasDismissed メソッドを実装します。

テストスイートの起動

ツールを開くと、次の免責条項が表示されます。

チェックボックスをオンにし、[Agree] を押して続行します。

アカウントの広告ユニットのリストが、[Failing Ad Units] と [Working Ad Units] の 2 つのタブに分かれて表示されます。

[Failing Ad Units] のリストは、[Missing Components] と [Configuration Errors] に分かれています。

広告ユニットのネットワークがすべて正常にテストされると、広告ユニットは [Failing] タブから [Working] タブに移動します。ネットワークの呼び出しに失敗した場合や広告ユニットが見つからなかった場合、広告ユニットのリストは表示されません。

広告ユニットのリストを検索する場合は、上部にある検索アイコンを押し、広告ユニット ID の文字列を入力します。ネットワーク名や広告フォーマットで検索することもできます。

このスクリーンには、以下のような場合、広告ユニットごとに警告が表示されます。

  • 広告ソースの SDK がインストールされていない
  • 広告ソースアダプタがインストールされていない

テストが可能な場合は、すべての広告ソースの全体的なテスト結果のステータスも表示されます。

[Ad Unit Details] 画面に移動する広告ユニットを選択します。

Ad Unit Details

この画面には、広告ユニットに設定された広告ユニット ID、広告フォーマット、メディエーション ウォーターフォールなど、広告ユニットの詳細が表示されます。

この画面の詳細は次のとおりです。

広告ソースの概要

各広告ソースには、SDK やアダプタがインストールされているかどうかを示すインジケータがあり、このセッションの最新のテスト結果が表示されます。

カスタム イベントの場合は、「Custom Event: custom event」ラベルが使用されます。カスタム イベント用に指定したクラスが見つかると、カスタム イベントのアダプタ ステータス インジケータはオンになります。カスタム イベントの広告は、他のネットワークと同じ方法で読み込みと表示が行われます。

検索

検索アイコンを押すと検索画面が表示され、広告ソースを名前で検索できます。

一括テスト

一括でテストする広告ソースを選択するには、各広告ソース名の左側にあるチェックボックスをオンにします。すると、新しいオプションがナビゲーション バーに表示されます。

選択した広告ソースの広告を順番に読み込むには、右上にある [Load Ads] ボタンを押します。テスト中は進行状況インジケータが表示されます。左上の戻るアイコンを押すと選択が解除されます。

広告の読み込みと表示

広告ソースのエントリをタップすると、広告ソースの詳細画面が表示されます。

画面には、指定した広告ソースについて次の情報が表示されます。

  • SDK がインストールされているかどうか(入手可能な場合、SDK のバージョン)
  • アダプタがインストールされているかどうか(入手可能な場合、アダプタのバージョン)
  • アダプタの初期化ステータス(入手可能な場合)。
  • 設定のパラメータが AdMob コンソールに入力されたかどうか

必要なコンポーネントをすべてインストールしたら、広告の読み込みテストに進むことができます。[Load Ad] をタップすると、広告ソースの SDK に広告リクエストが送信されます。広告リクエストが完了すると、リクエストの成否を示す最新情報が表示されます。

リクエストが失敗した場合は、テスト対象の SDK からのメッセージをコンソールログで確認します。

リクエストが成功した場合:

  • バナー広告の場合、広告はインラインで表示されます。
  • インタースティシャル広告やリワード広告の場合は、[Show Ad] をタップして広告を表示できます。

    広告は新しい画面で開きます。たとえば、次のようになります。

[Ad Unit Details] 画面に戻ると、広告ユニットのリスト画面で最後に広告をテストした結果が表示されます。正常に読み込まれた広告ソースはリストの一番下に移動され、さらにテストが必要な広告ソースが上部に表示されます。これらの結果は、 セッション間で維持されることはありません。

本番環境でテストを有効にする

デフォルトでは、メディエーション テストスイートは、開発、アドホック、エンタープライズのビルドでのみ起動します。これは、エンドユーザーが誤ってテストスイートを起動しないようにするためです。

本番環境になってからメディエーション テストスイートをデバイスで実行する必要がある場合は、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(<network extras>)'
...
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:<network extras>];'
...
[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
}

よくある質問

免責条項は毎回表示されますか?
はい。メディエーション広告ソースのテストモードをオンにする必要があることのリマインダーとして、意図的に毎回表示しています。
広告ユニットの詳細ページで AdMob が何回も表示されるのはなぜですか?
複数のメディエーション グループが同じ広告ユニットをターゲットにしている場合は、すべてのグループが結合されます。たとえば、複数の AdMob エントリ、場合によっては複数の他の広告ソースが表示されることがあります。同じメディエーショングループ内であっても、メディエーション パートナーは最大 3 回まで定義できます。
どのネットワークまたは広告ソースがメディエーション テストスイートでサポートされていますか?
テストスイートは、オープンソースおよびバージョン対応のすべてのアダプタとカスタム イベント アダプタで機能します。オープンソースの広告ネットワークについては、メディエーションで一覧をご確認いただけます。