メインコンテンツへスキップ

概要

はじめに

A/Bテストは、広告主がX上でリーチしているユーザーをセグメント化し、キャンペーンのパフォーマンス最適化の最適解を見極め、マーケティング戦略の意思決定に役立つ示唆を得るための手法です。 これらのセグメント(ユーザーグループ分割)はランダムに割り当てられ、相互に排他的です。ランダム化により、結果に影響する要因は各グループに均等に分散されます。言い換えると、グループ間や想定される行動に本質的な差はありません。したがって、あるユーザーグループにのみ単一のバリエーションを適用し、他のグループには適用しない場合、キャンペーンパフォーマンスの差はそのバリエーションに起因すると見なせます。 同時に多数のバリエーションをテストすることも可能ですが、1回につき単一のバリエーションのみをテストすることを強く推奨します。これにより、観測されたキャンペーンパフォーマンスの差の原因となる要因を特定できます。 バリエーションはキャンペーン単位で設定します。例えば、新しいクリエイティブの有効性を検証したい場合は、クリエイティブ以外は同一のキャンペーンを2つ作成してください。将来的には、ラインアイテム単位でのバリエーション設定にも対応する予定です。

ユースケース

A/Bテストは主に、(1) Xで何が最も効果的かを把握して投資対効果を最適化したいパフォーマンス重視の顧客向けの最適化ユースケース、(2) 得られた知見をマーケティング戦略の策定に活用したいブランド広告主向けの学習ユースケースを支援するために利用されます。  APIは、以下を含む任意のキャンペーン変数に対するA/Bテストをサポートします:
  • クリエイティブ 
  • ターゲティング 
  • 入札タイプ
  • 入札単位

A/B Testing

A/B Testing は、広告主が X 上でリーチしているユーザーをセグメント化し、キャンペーンのパフォーマンスを最適化する最善策を把握するとともに、マーケティング戦略の策定に役立つ知見を得るための機能です。 これらのセグメント(ユーザーグループ分割)はランダムに割り当てられ、相互に排他的です。無作為化によって、成果に影響する要因が均等に分布します。つまり、グループ間や想定される行動に本質的な差はありません。したがって、単一のバリエーションを一方のユーザーグループのみに適用した場合、キャンペーンのパフォーマンスの差はそのバリエーションに起因すると判断できます。 同時に複数のバリエーションをテストすることは可能ですが、強く推奨するのは一度に1つのバリエーションのみをテストすることです。これにより、観測されたパフォーマンス差の因果要因を特定できます。 バリエーションはキャンペーンレベルまたは広告グループレベルで設定します。広告グループは X Ads API の line item を通じて設定します。広告グループレベルのバリエーションの例として、新しいクリエイティブの有効性を検証したい場合は、クリエイティブ以外が同一の広告グループを2つ含む単一のキャンペーンを作成してください。

ユースケース

A/Bテストは主に、(1) パフォーマンス重視の顧客がXで最も効果的な手法を把握し投資を最適化するための最適化ユースケース、(2) ブランド広告主が得られた知見をマーケティング戦略の策定に活用するための学習ユースケースを支援する目的で利用されます。  APIは、以下を含むあらゆるキャンペーン変数に対するA/Bテストをサポートします:
  • クリエイティブ
  • ターゲティング
  • 入札タイプ
  • 入札単位

属性

A/Bテストはネストした構造で表されます。A/Bテスト自体を示すトップレベルのfieldsと、各ユーザーグループを表すオブジェクトの配列があり、それぞれに内容を記述するfieldsのセットがあります。 概略として、すべてのA/Bテストには次の情報を含める必要があります。
  • テスト期間(start_time と end_time のfieldsで表現)
  • 分割を行うレベル(entity_type のfieldで表現)
  • 少なくとも2つ(最大30)のユーザーグループ(user_groups 配列内のオブジェクトで表現)
各ユーザーグループは、次の情報を必ず含める必要があります。
  • 当該ユーザーグループに割り当てるユーザーの割合(size のfieldで表現)
  • 当該ユーザーグループのユーザープールを構成するキャンペーンID/ラインアイテムID(entity_ids 配列で表現)
任意で、A/Bテストおよびユーザーグループに name と description の値を設定できます。検証ルールやその他の制約に関する情報は以下を参照してください。 その他のmetadata(ID や作成日時など)も含まれますが、これらはXによって自動的に設定されます。 キャンペーンレベルのA/Bテストエンティティの例を以下に示します。
{
  "created_at": "2020-12-01T00:00:00Z",
  "created_by": {
    "user_id": "756201191646691328",
    "username": "apimctestface"
  },
  "deleted": false,
  "description": "ドキュメントの例",
  "end_time": "2020-12-05T01:00:00Z",
  "entity_type": "CAMPAIGN",
  "id": "hr7l0",
  "name": "最初のABテスト",
  "start_time": "2020-12-01T01:00:00Z",
  "status": "SCHEDULED",
  "user_groups": [
    {
      "id": "p1bcx",
      "name": "第1グループ",
      "description": null,
      "size": "50.0",
      "entity_ids": [
        "f2qcw",
        "f2tht"
      ]
    },
    {
      "id": "p1bcy",
      "name": "第2グループ",
      "description": "第2ABテストグループ",
      "size": 50,
      "entity_ids": [
        "f2rqi",
        "f2tws"
      ]
    }
  ],
  "updated_at": "2020-12-01T00:00:00Z",
  "updated_by": {
    "user_id": "756201191646691328",
    "username": "apimctestface"
  }
}
ラインアイテムレベルのA/Bテストエンティティの例を以下に示します。
{
   "created_by":{
      "user_id":"756201191646691328",
      "username":"apimctestface"
   },
   "name":"Test2e",
   "start_time":"2022-08-15T00:00:00Z",
   "updated_by":{
      "user_id":"756201191646691328",
      "username":"apimctestface"
   },
   "description":"私の2番目のABテスト",
   "entity_type":"LINE_ITEM",
   "end_time":"2022-08-30T00:00:00Z",
   "id":"1ul",
   "user_groups":[
      {
         "name":"第1グループ",
         "size":"50.0",
         "description":"第1グループの説明",
         "entity_ids":[
            "ij9dh"
         ],
         "id":"4xe"
      },
      {
         "name":"第2グループ",
         "size":"50.0",
         "description":"第2グループの説明",
         "entity_ids":[
            "ihng8"
         ],
         "id":"4xf"
      }
   ],
   "status":"SCHEDULED",
   "created_at":"2022-08-11T00:10:50Z",
   "updated_at":"2022-08-11T00:10:50Z",
   "deleted":false
}

使用方法

以下の小節では、A/Bテストの作成と更新について説明します。読み取りと削除は、他のすべてのX Ads APIのendpointと同様に動作します。

作成

POST accounts/:account_id/ab_tests endpoint を使用して A/B Test を作成します。この endpoint は JSON の POST ボディのみを受け付けます。Content-Type は application/json に設定する必要があります。 広告主が 2 つ以上のキャンペーンを設定した後に、A/B Test を作成できます。前述のとおり、A/B Test には必ず、テスト期間、分割レベル、そして少なくとも 2 つのユーザーグループを含める必要があります。各ユーザーグループでは、そのグループに割り当てるユーザーの割合と、そのユーザー群を構成するキャンペーン ID を指定する必要があります。これらの各要素については、以下で詳しく説明します。 テスト期間:
  • start_time と end_time の値は以下を満たす必要があります
    • (A/B Test の作成時点から見て)将来であること
    • キャンペーン/ラインアイテムのフライト期間と重複していること
  • テストは、App ベースでないキャンペーンでは少なくとも 1 日、App ベースのキャンペーンでは少なくとも 5 日間継続する必要があります
分割レベル:
  • entity_type は CAMPAIGN または LINE_ITEM に設定できます
ユーザーグループ:
  • 各ユーザーグループは user_groups 配列内のオブジェクトとして表されます
    • 少なくとも 2 つのユーザーグループが必要です
    • 最大 30 のユーザーグループまで許可されます
  • 各ユーザーグループのサイズは、1.00 から 99.00 の数値を文字列で表した値で設定します
    • 注意: オブジェクト間の size の合計値は必ず 100.00 になる必要があります
  • 各ユーザーグループの entity_ids 配列でキャンペーン ID を指定する必要があります
任意で、A/B Test 全体または 1 つ以上のユーザーグループに対して name と description を設定できます。 次のリクエストは、キャンペーンレベルで 4 日間継続し、各グループにユーザーの 50% を割り当てた 2 つのユーザーグループを持つ A/B Test を作成します。最初のユーザーグループはキャンペーン f2qcw と f2tht に基づき、2 番目のユーザーグループはキャンペーン f2rqi と f2tws に基づきます。このリクエストでは、エンティティの一部に name と description も追加します。 twurl -X POST -H ads-api.x.com “/8/accounts/18ce54d4x5t/ab_tests” -d ’{“end_time”: “2020-12-05T01:00:00Z”, “entity_type” : “CAMPAIGN”, “start_time”: “2020-12-01T01:00:00Z”, “user_groups”: [{“entity_ids”: [“f2qcw”, “f2tht”], “size”: “50.00”, “name”: “first group”},{“entity_ids”: [“f2rqi”, “f2tws”], “size”: “50.00”, “name”: “second group”, “description”: “second AB test group”}], “name”: “first AB test”, “description”: “documentation example”}’
twurl -X POST -H ads-api.x.com "/8/accounts/18ce54d4x5t/ab_tests" -d '{"end_time": "2020-12-05T01:00:00Z", "entity_type" : "CAMPAIGN", "start_time": "2020-12-01T01:00:00Z", "user_groups": [{"entity_ids": ["f2qcw", "f2tht"], "size": "50.00", "name": "第1グループ"},{"entity_ids": ["f2rqi", "f2tws"], "size": "50.00", "name": "第2グループ", "description": "第2のA/Bテストグループ"}], "name": "第1のA/Bテスト", "description": "ドキュメントの例"}'

{
  "request": {
    "params": {
      "account_id": "18ce54d4x5t",
      "end_time": "2020-12-05T01:00:00Z",
      "entity_type": "CAMPAIGN",
      "start_time": "2020-12-01T01:00:00Z",
      "user_groups": [
        {
          "entity_ids": [
            "f2qcw",
            "f2tht"
          ],
          "size": "50.0",
          "name": "第1グループ"
        },
        {
          "entity_ids": [
            "f2rqi",
            "f2tws"
          ],
          "size": "50.0",
          "name": "第2グループ",
          "description": "第2のA/Bテストグループ"
        }
      ],
      "name": "第1のA/Bテスト",
      "description": "ドキュメントの例"
    }
  },
  "data": {
    "created_at": "2020-12-01T00:00:00Z",
    "created_by": {
      "user_id": "756201191646691328",
      "username": "apimctestface"
    },
    "deleted": false,
    "description": "ドキュメントの例",
    "end_time": "2020-12-05T01:00:00Z",
    "entity_type": "CAMPAIGN",
    "id": "hr7l0",
    "name": "第1のA/Bテスト",
    "start_time": "2020-12-01T01:00:00Z",
    "status": "SCHEDULED",
    "user_groups": [
      {
        "id": "p1bcx",
        "name": "第1グループ",
        "description": null,
        "size": "50.0",
        "entity_ids": [
          "f2qcw",
          "f2tht"
        ]
      },
      {
        "id": "p1bcy",
        "name": "第2グループ",
        "description": "第2のA/Bテストグループ",
        "size": "50.0",
        "entity_ids": [
          "f2rqi",
          "f2tws"
        ]
      }
    ],
    "updated_at": "2020-12-01T00:00:00Z",
    "updated_by": {
      "user_id": "756201191646691328",
      "username": "apimctestface"
    }
  }
}
ラインアイテムレベルでのA/Bテスト キャンペーンレベルとラインアイテムレベルにおけるA/Bテストの主な違いは、entity_type です。ラインアイテムレベルのA/Bテストでは、‘entity_type’ = ‘LINE_ITEM’ に設定する必要があります。これは、以下に示す既存のA/Bテストに対するすべての操作に適用されます。 要件:
  1. A/Bテスト対象キャンペーン内のすべてのラインアイテムをスプリットテストに含める必要があります。
  2. ラインアイテムレベルでは均等割りのみが許可されます。
  3. 1つのスプリットテストで許可されるユーザーグループのラインアイテム数は5以下でなければなりません。
  4. ユーザーグループあたりラインアイテムは1つのみ。

更新

A/B Test を更新するには、PUT accounts/:account_id/ab_tests/:ab_test_id endpoint を使用します。リクエストには JSON ブロブを送信する必要があります。Content-Type は application/json に設定してください。 他の更新系 endpoint と同様に、PUT accounts/:account_id/ab_tests/:ab_test_id endpoint では、URL 内で A/B Test の ID を指定する必要があります。一般に、A/B Test はステータスが SCHEDULED の間のみ更新できます。例外が一つあり、LIVE の間でも A/B Test の end_time を更新できます。 この endpoint は、オブジェクト ID を用いた部分的な JSON をサポートします。以下の原則が適用されます。
  • オブジェクトや要素を追加または削除する場合は、配列(およびその下位構造)全体を渡してください。これは置換操作です
  • それ以外の場合は、キー名または ID を参照して既存のfieldsを変更(追加・削除・更新)します
    • フィールドを削除するには、その値を null に設定します
    • 渡されていないフィールドは変更されません
たとえば、先に作成した A/B Test に 3 つ目のユーザーグループを追加するには、既存の 2 つのユーザーグループオブジェクトに加えて、新たに追加したいものも含めた user_groups 配列を送信する必要があります。これは user_groups 配列を再作成するイメージです。最初からそのように作成するつもりで data を渡してください(ユーザーグループのオブジェクト ID は渡さないでください)。更新リクエスト内の user_groups 配列は、次のように表せます。
[
  {
    "entity_ids": [
      "f2qcw",
      "f2tht"
    ],
    "size": "30.0",
    "name": "第1グループ"
  },
  {
    "entity_ids": [
      "f2rqi",
      "f2tws"
    ],
    "size": "30.0",
    "name": "第2グループ",
    "description": "第2のABテストグループ"
  },
  {
    "entity_ids": [
      "i1vwr",
      "i1xre"
    ],
    "size": "40.0"
  }
]
オブジェクト間の size の値は依然として合計で 100.00 になっている点に注意してください。最初の2つのオブジェクト(以前はそれぞれ 50.00 に設定)を更新しなかった場合、リクエストは失敗していたはずです。 一方、最初のユーザーグループに説明を追加するだけでよい場合、更新リクエストの user_groups 配列は次のように表されます。
[
  {
    "id": "p1bcx",
    "description": "PUTリクエストを使用して更新されました"
  }
]
ユーザーグループオブジェクトは id で参照し、変更したいフィールドのみを含めます。

リクエスト例

このセクションでは、更新リクエストの追加例を示します。これらは連続して呼び出されることを想定してください。JSON ブロブは可読性のために整形しています。レスポンスは省略します。 以下の変更を行う場合、リクエストは次のとおりです(上記の例と同一です)。
  1. 名前と説明のない 3 番目のユーザーグループを追加
  2. 各ユーザーグループに属するユーザーの割合を変更
twurl -X PUT -H ads-api.x.com “/8/accounts/18ce54d4x5t/ab_tests/hr7l0” -d ’
twurl -X PUT -H ads-api.x.com "/8/accounts/18ce54d4x5t/ab_tests/hr7l0" -d '
{
  "user_groups": [
    {
      "entity_ids": [
        "f2qcw",
        "f2tht"
      ],
      "size": "30.00",
      "name": "最初のグループ"
    },
    {
      "entity_ids": [
        "f2rqi",
        "f2tws"
      ],
      "size": "30.00",
      "name": "2番目のグループ",
      "description": "2番目のABテストグループ"
    },
    {
      "entity_ids": [
        "i1vwr",
        "i1xre"
      ],
      "size": "40.00"
    }
  ]
}'
以下の変更を行うため、リクエストは次のようになります。
  1. A/Bテストの説明を削除
  2. 最初のユーザーグループに説明を追加
  3. 2番目のユーザーグループにエンティティID(f2syz)を追加
twurl -X PUT -H ads-api.x.com “/8/accounts/18ce54d4x5t/ab_tests/hr7l0” -d ’
twurl -X PUT -H ads-api.x.com "/8/accounts/18ce54d4x5t/ab_tests/hr7l0" -d '
{
  "description": null,
  "user_groups": [
    {
      "id": "p1bcx",
      "description": "最初のABテスト用グループ"
    },
    {
      "id": "p1bcy",
      "entity_ids": [
        "f2rqi",
        "f2tws",
        "f2syz"
      ]
    }
  ]
}'
3つ目の変更では、新しいエンティティIDに加えて、既存の2つのエンティティIDも渡す必要があります。3番目のユーザーグループには変更がないことに留意してください。 次の変更を行う場合、リクエストは以下のようになります。
  1. 2番目のユーザーグループを削除する
  2. 各ユーザーグループのユーザー割合を変更する
twurl -X PUT -H ads-api.x.com "/8/accounts/18ce54d4x5t/ab_tests/hr7l0" -d '
{
  "user_groups": [
    {
      "entity_ids": [
        "f2qcw",
        "f2tht"
      ],
      "size": "55.00",
      "name": "第1グループ"
    },
    {
      "entity_ids": [
        "i1vwr",
        "i1xre"
      ],
      "size": "45.00"
    }
  ]
}'

API リファレンス

A/B テスト

GET accounts/:account_id/ab_tests

一部またはすべてのA/Bテストの詳細を取得します。
リソース URL
https://ads-api.x.com/12/accounts/:account_id/ab_tests
パラメータ
NameDescription
account_id
必須
利用対象のアカウントを識別する ID。リソースのパス内に含まれ、GET accounts を除くすべての Advertiser API リクエストで一般的に必須です。指定したアカウントは認証済みユーザーに関連付けられている必要があります。

Type: string

Example: 18ce54d4x5t
ab_test_ids
任意
識別子のカンマ区切りリストを指定して、対象の A/B テストのみにレスポンスを絞り込みます。最大 200 個の ID を指定できます。

Type: string

Example: hr7l0
count
任意
個々のリクエストで取得を試みるレコード数を指定します。

Type: int

Default: 200
Min, Max: 1, 1000
cursor
任意
次の結果ページを取得するためのカーソルを指定します。詳細は Pagination を参照してください。

Type: string

Example: 8x7v00oow
live_during
任意
指定した日付範囲の期間中に実施中、または実施予定の A/B テストにレスポンスを絞り込みます。開始時刻と終了時刻が指定した日付範囲と部分的または完全に重なる A/B テストを返します。

値はカンマ区切りの日時として、ISO 8601 形式で指定してください。早い日時を先に記載します。

Type: string

Example: 2020-11-01T08:00:00Z,2020-12-01T08:00:00Z
q
任意
name によるリソースの絞り込みに用いる任意の query。すべて取得する場合はこのパラメータを省略します。

Type: string

Min, Max length: 1, 80
sort_by
任意
サポートされている属性で昇順または降順に並べ替えます。詳細は Sorting を参照してください。

Type: string

Example: created_at-asc
status
任意
指定したステータスの A/B テストにレスポンスを絞り込みます。

Type: enum

Possible values: COMPLETED, LIVE, SCHEDULED
user_id
任意
指定したユーザー ID が作成した A/B テストにレスポンスを絞り込みます。

Note: username と同時には指定できません。

Type: long

Example: 756201191646691328
username
任意
指定したユーザー名が作成した A/B テストにレスポンスを絞り込みます。先頭の「@」記号は含めないでください。

Note: user_id と同時には指定できません。

Type: string

Example: apimctestface
with_deleted
任意
削除済みの結果をレスポンスに含めます。

Type: boolean

Default: false
Possible values: true, false
リクエスト例
GET https://ads-api.x.com/12/accounts/18ce54d4x5t/ab_tests
応答例
    {
      "request": {
        "params": {
          "account_id": "18ce54d4x5t"
        }
      },
      "data": [
        {
          "created_at": "2022-05-25T00:00:00Z",
          "created_by": {
            "user_id": "756201191646691328",
            "username": "apimctestface"
          },
          "deleted": false,
          "description": "ドキュメントの例",
          "end_time": "2022-05-30T01:00:00Z",
          "entities": [
            {
              "id": "p1bcx",
              "account_id": "18ce54d4x5t"
            },
            {
              "id": "p1bcy",
              "account_id": "18ce54d4x5t"
            }
          ],
          "entity_type": "CAMPAIGN",
          "id": "hr7l0",
          "name": "最初の A/B テスト",
          "start_time": "2022-05-25T01:00:00Z",
          "status": "SCHEDULED",
          "user_groups": [
            {
              "id": "p1bcx",
              "name": "第1グループ",
              "description": null,
              "size": "50.0",
              "entity_ids": [
                "f2qcw",
                "f2tht"
              ]
            },
            {
              "id": "p1bcy",
              "name": "第2グループ"
              "description": "第2の A/B テストグループ",
              "size": "50.0",
              "entity_ids": [
                "f2rqi",
                "f2tws"
              ]
            }
          ],
          "updated_at": "2022-05-25T00:00:00Z",
          "updated_by": {
            "user_id": "756201191646691328",
            "username": "apimctestface"
          }
        }
      ],
      "next_cursor": null
    }

POST accounts/:account_id/ab_tests

新規のA/Bテストを作成します。 すべてのパラメータはリクエストボディで送信し、Content-Type には application/json を指定する必要があります。
リソース URL
https://ads-api.x.com/12/accounts/:account_id/ab_tests
パラメータ
NameDescription
account_id
required
利用するアカウントの識別子。リソースのパス内に含まれ、GET accounts を除くすべての Advertiser API リクエストで原則として必須のパラメータです。指定したアカウントは、認証済みユーザーに関連付けられている必要があります。

Type: string

Example: 18ce54d4x5t
end_time
required
A/B テストが終了する時刻(ISO 8601 形式)。

Type: string

Example: 2020-10-02T00:00:00Z
entity_type
required
ユーザーグループの分割に用いるエンティティの種類。

Type: enum

Possible values: CAMPAIGN, LINE_ITEM
start_time
required
A/B テストが開始する時刻(ISO 8601 形式)。

Type: string

Example: 2022-05-30T00:00:00Z
user_groups
required
ユーザーグループを定義します。詳細は下表を参照してください。2~30 のユーザーグループを指定できます。

Type: array of objects
description
optional
A/B テストの説明。最大長: 1,024 文字。

Type: string

Example: documentation example
name
optional
A/B テストの名称。最大長: 255 文字。

Type: string

Example: first AB test

ユーザーグループ

NameDescription
entity_ids
required
エンティティIDの配列。

: エンティティは1つのA/Bテストにのみ関連付け可能です。

Type: array

Example: ["dxi0l", "e66bl"]
size
required
このユーザーグループに割り当てるユーザーの割合。小数点以下2桁までの数値を文字列で表します。例: 40% は 40、40.0、または 40.00。

: objects 全体の size の合計は必ず 100.00 でなければなりません。

Type: array

Min, Max: 1.00, 99.00
description
optional
ユーザーグループの説明。最大長: 1,024文字。

Type: string

Example: second AB test group
name
optional
ユーザーグループの名前。最大長: 255文字。

Type: string

Example: first group

リクエスト例

POST https://ads-api.x.com/12/accounts/18ce54d4x5t/ab_tests -d '{"end_time": "2022-05-30T01:00:00Z", "entity_type" : "CAMPAIGN", "start_time": "2022-05-25T01:00:00Z", "user_groups": [{"entity_ids": ["f2qcw", "f2tht"], "size": "50.00", "name": "first group"},{"entity_ids": ["f2rqi", "f2tws"], "size": "50.00", "name": "second group", "description": "second AB test group"}], "name": "first AB test", "description": "documentation example"}'

レスポンスの例

    {
      "request": {
        "params": {
          "account_id": "18ce54d4x5t",
          "end_time": "2022-05-30T01:00:00Z",
          "entity_type": "CAMPAIGN",
          "start_time": "2022-05-25T01:00:00Z",
          "user_groups": [
            {
              "entity_ids": [
                "f2qcw",
                "f2tht"
              ],
              "size": "50.0",
              "name": "第1グループ"
            },
            {
              "entity_ids": [
                "f2rqi",
                "f2tws"
              ],
              "size": "50.0",
              "name": "second group",
              "description": "第2のABテストグループ"
            }
          ],
          "name": "第1のABテスト",
          "description": "ドキュメント用の例"
        }
      },
      "data": {
        "created_at": "2022-05-25T00:00:00Z",
        "created_by": {
          "user_id": "756201191646691328",
          "username": "apimctestface"
        },
        "deleted": false,
        "description": "ドキュメント用の例",
        "end_time": "2022-05-30T01:00:00Z",
        "entities": [
          {
            "id": "p1bcx",
            "account_id": "18ce54d4x5t"
          },
          {
            "id": "p1bcy",
            "account_id": "18ce54d4x5t"
          }
        ],
        "entity_type": "CAMPAIGN",
        "id": "hr7l0",
        "name": "第1のABテスト",
        "start_time": "2022-05-25T01:00:00Z",
        "status": "SCHEDULED",
        "user_groups": [
          {
            "id": "p1bcx",
            "name": "第1グループ",
            "description": null,
            "size": "50.0",
            "entity_ids": [
              "f2qcw",
              "f2tht"
            ]
          },
          {
            "id": "p1bcy",
            "name": "第2グループ"
            "description": "第2のABテストグループ",
            "size": "50.0",
            "entity_ids": [
              "f2rqi",
              "f2tws"
            ]
          }
        ],
        "updated_at": "2022-05-25T00:00:00Z",
        "updated_by": {
          "user_id": "756201191646691328",
          "username": "apimctestface"
        }
      }
    }

PUT accounts/:account_id/ab_tests/:ab_test_id

指定した A/B テストを更新します。 すべてのパラメータはリクエストボディで送信され、Content-Typeapplication/json を指定する必要があります。 この endpoint は、オブジェクト ID を含む部分的な JSON をサポートします。以下の原則が適用されます。
  • オブジェクトや要素を追加または削除する場合は、配列全体(およびそのサブ構造)を渡します。これは置換操作です
    • 配列を再作成するイメージです
  • それ以外の場合は、キー名または ID を参照して既存の fields を変更(変更・追加・削除)します
    • フィールドを削除するには、その値を null に設定します
    • 渡されなかったフィールドは変更されません
一般に、A/B テストは statusSCHEDULED の間のみ更新できます。例外が 1 つあります。LIVE の間でも、A/B テストの end_time は更新可能です。
リソースURL
https://ads-api.x.com/12/accounts/18ce54d4x5t/:ab_test_id
パラメータ
名前説明
account_id
必須
連携先アカウントの識別子。リソースのパスに含まれ、GET accounts を除くすべての Advertiser API リクエストで一般的に必須のパラメータです。指定したアカウントは認証済みユーザーに紐づいている必要があります。

Type: string

Example: 18ce54d4x5t
ab_test_id
必須
リクエストで操作対象となる A/B Test への参照。

Type: string

Example: hr7l0
description
任意
A/B Test の説明。最大 1,024 文字。

: A/B Test の statusSCHEDULED の場合にのみ更新できます。

Type: string

Example: documentation example
end_time
任意
A/B Test の終了時刻(ISO 8601)。

: A/B Test の statusSCHEDULED または LIVE の場合にのみ更新できます。

Type: string

Example: 2020-10-02T00:00:00Z
name
任意
A/B Test の名前。最大 255 文字。

: A/B Test の statusSCHEDULED の場合にのみ更新できます。

Type: string

Example: first AB test
start_time
任意
A/B Test の開始時刻(ISO 8601)。

: A/B Test の statusSCHEDULED の場合にのみ更新できます。

Type: string

Example: 2022-05-30T00:00:00Z
user_groups
必須
ユーザーグループの定義。詳細は下表を参照してください。

: A/B Test の statusSCHEDULED の場合にのみ更新できます。

Type: array of objects

ユーザーグループ

NameDescription
id
場合によっては必須
リクエストで操作対象となるユーザーグループオブジェクトへの参照。

: ユーザーグループオブジェクトの fields を変更(変更・追加・削除)する場合は必須です。

: ユーザーグループオブジェクト全体を追加または削除する場合は、ID を指定しないでください。

Type: string

Example: p1bcx
description
任意
ユーザーグループの説明。最大長: 1,024 文字。

: フィールドに null を指定すると未設定(削除)になります。

Type: string

Example: second AB test group
entity_ids
任意
エンティティ ID の配列。

: これは置換操作です。以前の設定を上書きします。

: エンティティは 1 つの A/B テストにのみ関連付けられます。

Type: array

Example: ["dxi0l", "e66bl"]
name
任意
ユーザーグループの名前。最大長: 255 文字。

: フィールドに null を指定すると未設定(削除)になります。

Type: string

Example: first group
size
任意
このユーザーグループに割り当てるユーザーの割合。数値を文字列で表し、小数点以下は最大 2 桁まで。例: 40% は 40、40.0、または 40.00。

: objects 全体の size の合計は必ず 100.00 でなければなりません。

Type: string

Min, Max: 1.00, 99.00
リクエスト例
このリクエストは次の変更を行います。
  1. A/Bテストの説明を削除する
  2. end_time を変更する
  3. 最初のユーザーグループに説明を追加する
  4. 各ユーザーグループのユーザー割合を変更する
  5. 2番目のユーザーグループにエンティティID(f2syz)を追加する
PUT https://ads-api.x.com/12/accounts/18ce54d4x5t/ab_tests/hr7l0 -d '{"description": null, "end_time": "2022-06-01T01:00:00Z", "user_groups": [{"id": "p1bcx", "description": "first AB test group", "size": "60.00"},{"id": "p1bcy", "size": "40.00", "entity_ids": ["f2rqi", "f2tws", "f2syz"]}]}'
応答例
    {
      "request": {
        "params": {
          "account_id": "18ce54d4x5t",
          "ab_test_id": "hr7l0",
          "description": null,
          "end_time": "2022-06-01T01:00:00Z",
          "user_groups": [
            {
              "id": "p1bcx",
              "description": "第1のABテストグループ",
              "size": "60.0"
            },
            {
              "id": "p1bcy",
              "size": "40.0",
              "entity_ids": [
                "f2rqi",
                "f2tws",
                "f2syz"
              ]
            }
          ]
        }
      },
      "data": {
        "created_at": "2020-05-25T00:00:00Z",
        "created_by": {
          "user_id": "756201191646691328",
          "username": "apimctestface"
        },
        "deleted": false,
        "description": null,
        "end_time": "2022-06-01T01:00:00Z",
        "entities": [
          {
            "id": "p1bcx",
            "account_id": "18ce54d4x5t"
          },
          {
            "id": "p1bcy",
            "account_id": "18ce54d4x5t"
          }
        ],
        "entity_type": "CAMPAIGN",
        "id": "hr7l0",
        "name": "第1のABテスト",
        "start_time": "2022-05-25T01:00:00Z",
        "status": "SCHEDULED",
        "user_groups": [
          {
            "id": "p1bcx",
            "name": "第1グループ",
            "description": "第1のABテストグループ",
            "size": "60.0",
            "entity_ids": [
              "f2qcw",
              "f2tht"
            ]
          },
          {
            "id": "p1bcy",
            "name": "第2グループ",
            "description": "第2のABテストグループ"
            "size": "40.0",
            "entity_ids": [
              "f2rqi",
              "f2tws",
              "f2syz"
            ]
          }
        ],
        "updated_at": "2022-05-25T00:17:23Z",
        "updated_by": {
          "user_id": "756201191646691328",
          "username": "apimctestface"
        }
      }
    }

DELETE accounts/:account_id/ab_tests/:ab_test_id

指定した A/B テストを削除します。 : A/B テストの削除は元に戻せません。以後このリソースを delete しようとすると、HTTP 404 が返されます。
リソース URL
https://ads-api.x.com/12/accounts/:account_id/ab_tests/:ab_test_id
パラメータ
Name説明
ab_test_id
必須
このリクエストで対象とする A/B テストを参照する ID。

Type: string

Example: hr7l0
リクエスト例
DELETE https://ads-api.x.com/12/accounts/18ce54d4x5t/ab_tests/hr7l0

例: レスポンス

    {
      "request": {
        "params": {
          "account_id": "18ce54d4x5t",
          "ab_test_id": "hr7l0"
        }
      },
      "data": {
        "created_at": "2022-05-25T00:00:00Z",
        "created_by": {
          "user_id": "756201191646691328",
          "username": "apimctestface"
        },
        "deleted": true,
        "description": null,
        "end_time": "2022-06-01T01:00:00Z",
        "entities": [
          {
            "id": "p1bcx",
            "account_id": "18ce54d4x5t"
          },
          {
            "id": "p1bcy",
            "account_id": "18ce54d4x5t"
          }
        ],
        "entity_type": "CAMPAIGN",
        "id": "hr7l0",
        "name": "初回のABテスト",
        "start_time": "2022-05-25T01:00:00Z",
        "status": "SCHEDULED",
        "user_groups": [
          {
            "id": "p1bcx",
            "name": "第1グループ",
            "description": "初回のABテストグループ",
            "size": "60.0",
            "entity_ids": [
              "f2qcw",
              "f2tht"
            ]
          },
          {
            "id": "p1bcy",
            "name": "第2グループ",
            "description": "第2のABテストグループ"
            "size": "40.0",
            "entity_ids": [
              "f2rqi",
              "f2tws",
              "f2syz"
            ]
          }
        ],
        "updated_at": "2022-06-02T00:18:31Z",
        "updated_by": {
          "user_id": "756201191646691328",
          "username": "apimctestface"
        }
      }
    }
I