メディエーションの A/B テスト

AdMob API を使用すると、さまざまな構成をテストして広告のパフォーマンスを最大化するためのメディエーション A/B テストを作成できます。A/B テストでは、2 つのパターンのメディエーション グループを評価し、結果を並べて比較して、推奨される構成を選択できます。

設定できるテストの例を以下に示します。

  • 広告ソースを追加または削除して、メディエーション グループへの影響を確認する
  • 広告ソースの手動 eCPM 値を変更して、別のウォーターフォール順序を使用する
  • ウォーターフォールの広告ソースの最適化を有効または無効にする
  • 広告のソースの呼び出し回数を変更する

例

既存のメディエーション グループから始め、そのバリエーションを作成して、パターン A とパターン B のどちらのパフォーマンスが高いかを確認します。このテストでは、指定した割合(1%、10%、50%)に基づいて、既存のメディエーション グループとそのパターンとでアプリユーザーを分割します。

curl(コマンドライン)

curl を使用したリクエスト

  1. クライアント シークレット ファイルを読み込み、認証情報を生成します。

    この手順を初めて実行するときは、ブラウザで承認プロンプトを受け入れるように求められます。承諾する前に、AdMob API にアクセスできる Google アカウントでログインしていることを確認してください。アプリは、現在ログインしているアカウントに代わってデータにアクセスする権限が付与されます。

    認証と認可には、Google OAuth 2.0 を操作するためのシンプルなコマンドライン ツールである oauth2l を使用することをおすすめします。oauth2l をインストールし、次のコマンドを実行します。path_to_credentials_json は、クラウドアプリの登録時にダウンロードした credentials.json ファイルのパスに置き換えます。初回実行時には、OAuth 2.0 認証フローが案内されます。以降の実行では、トークンが自動的に更新されます。

    oauth2l header --json path_to_credentials_json --scope admob.monetization,admob.readonly
    
  2. メディエーションの A/B テストを作成します。

    pub-XXXXXXXXXXXXXXXX はパブリッシャー ID に、ZZZZZZZZZZ はメディエーション グループ ID に置き換えます。メディエーション グループ ID は、AdMob 管理画面で確認するか、accounts.mediationGroups:list メソッドを使用して確認できます。

    treatmentMediationLines と treatmentTrafficPercentage を指定する必要がありますが、controlMediationLines は親メディエーション グループから継承されるため、指定する必要はありません。

    次のリクエストでは、LIVE モードを使用して AdMob ネットワークの単一のメディエーション行を含む、パターン B とも呼ばれるトリートメント パターンを含むメディエーション A/B テストを作成します。

    curl --http1.0 \
    -X POST https://admob.googleapis.com/v1beta/accounts/pub-XXXXXXXXXXXXXXXX/mediationGroups/ZZZZZZZZZZ/mediationAbExperiments \
    -H "Content-Type:application/json" \
    -H "$(oauth2l header --json path_to_credentials_json --scope admob.monetization)" \
    --data @- << EOF
    {
      "displayName":"Mediation A/B Experiment Test Name",
      "treatmentTrafficPercentage": "50",
      "treatmentMediationLines": [{
        "mediationGroupLine": {
          "displayName": "Test mediation group line",
          "adSourceId": "5450213213286189855",
          "cpm_mode": "LIVE"
        }
      }]
    }
    EOF

    次のレスポンス例をご覧ください。SSSSSSSSSSSSSSSSSSSSSS は作成されたメディエーション A/B テストの ID を表し、YYYYYYYYYY は広告ユニット ID の最後の 10 桁を表します。形式は ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY に準拠しています。

    {
      "name": "accounts/pub-XXXXXXXXXXXXXXXX/mediationGroups/ZZZZZZZZZZ/mediationAbExperiments/SSSSSSSSSSSSSSSSSSSSSS",
      "displayName": "Mediation A/B Experiment Test Name",
      "experimentId": "SSSSSSSSSSSSSSSSSSSSSS",
      "treatmentTrafficPercentage": "50",
      "treatmentMediationLines": [
        {
          "mediationGroupLine": {
            "id": "11111111111111111",
            "displayName": "Test mediation group line",
            "adSourceId": "5450213213286189855",
            "cpmMode": "LIVE",
            "cpmMicros": "10000",
            "adUnitMappings": {
              "ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY": "accounts/pub-XXXXXXXXXXXXXXXX/adUnits/YYYYYYYYYY/adUnitMappings/
              "ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY": "accounts/pub-XXXXXXXXXXXXXXXX/adUnits/YYYYYYYYYY/adUnitMappings/
            },
            "state": "ENABLED"
          }
        }
      ],
      "controlMediationLines": [
        {
          "mediationGroupLine": {
            "id": "22222222222222222",
            "displayName": "AdMob Network (control)",
            "adSourceId": "5450213213286189855",
            "cpmMode": "LIVE",
            "cpmMicros": "10000",
            "adUnitMappings": {
              "ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY": "accounts/pub-XXXXXXXXXXXXXXXX/adUnits/YYYYYYYYYY/adUnitMappings/
              "ca-app-pub-XXXXXXXXXXXXXXXX/YYYYYYYYYY": "accounts/pub-XXXXXXXXXXXXXXXX/adUnits/YYYYYYYYYY/adUnitMappings/
            },
            "state": "ENABLED"
          }
        }
      ],
      "state": "RUNNING"
    }
  3. メディエーションの A/B テストが実行されていることを確認します。

    accounts.mediationGroups:list を呼び出して、そのメディエーション グループのメディエーション A/B テストのステータスを取得します。詳しくは、メディエーション グループのガイドをご覧ください。

    mediationAbExperimentState は、有効なメディエーションの A/B テストの場合は RUNNING に設定され、メディエーション グループでテストが実行されていない場合は NOT_RUNNING に設定されます。

    リクエストの例:

     curl --http1.0 \
    -X GET https://admob.googleapis.com/v1beta/accounts/pub-XXXXXXXXXXXXXXXX/mediationGroups \
    -H "$(oauth2l header --json path_to_credentials_json --scope admob.readonly)"
    
  4. メディエーションの A/B テストを停止し、パターンを選択します。

    pub-XXXXXXXXXXXXXXXX はパブリッシャー ID に、ZZZZZZZZZZ はメディエーション グループ ID に置き換えます。メディエーション グループ ID は、AdMob 管理画面で確認するか、accounts.mediationGroups:list メソッドを使用して確認できます。

    テストを完了するには、リクエストで最良のバリアントを指定します。

    • VARIANT_CHOICE_A: バリエーション A のメディエーション行を使用して、テストを完了します。パターン A には、テスト作成前の元のサービング ラインが含まれています。
    • VARIANT_CHOICE_B: バリエーション B のメディエーション行を使用して、テストを完了します。バリエーション B には、新たに追加されたサービング行が含まれています。

    リクエストの例:

     curl --http1.0 \
    -X POST https://admob.googleapis.com/v1beta/accounts/pub-XXXXXXXXXXXXXXXX/mediationGroups/ZZZZZZZZZZ/mediationAbExperiments:stop \
    -H "Content-Type:application/json" \
    -H "$(oauth2l header --json path_to_credentials_json --scope admob.monetization)" \
    --data @- << EOF
    {
    "variantChoice": "VARIANT_CHOICE_A"
    }
    

    レスポンスの例:

    {
    "experimentId": "SSSSSSSSSSSSSSSSSSSSSS",
    "state": "EXPIRED",
    }