> ## Documentation Index
> Fetch the complete documentation index at: https://docs.x.com/llms.txt
> Use this file to discover all available pages before exploring further.

# AB テスト

> X Ads キャンペーンで A/B テストを実施し、無作為に分割したユーザーグループでクリエイティブ、ターゲティング、bid type、bid unit の各バリエーションを比較して、その差分を測定します。

export const Button = ({href, children}) => {
  return <div className="not-prose">
    <a href={href}>
      <button className="x-btn">
        <span>{children}</span>
        <svg width="3" height="24" viewBox="0 -9 3 24" class="h-6 rotate-0 overflow-visible"><path d="M0 0L3 3L0 6" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></path></svg>
      </button>
    </a>
  </div>;
};

## 概要

### はじめに

A/B テストにより、広告主は X 上でリーチしているユーザーをセグメント化し、キャンペーンパフォーマンスを最適化する最良の方法を理解して、マーケティング戦略に反映させるための学びを得ることができます。

これらのセグメント(ユーザーグループスプリット)はランダム化され、互いに排他的です。ランダム化により、結果に影響する要因は等しく分布します。つまり、グループ間や期待される行動に本質的な違いは存在しません。そのため、あるユーザーグループにのみ 1 つのバリエーションを適用すれば、キャンペーンパフォーマンスの差分をそのバリエーションによるものと帰することができます。

一度に複数のバリエーションをテストすることも可能ですが、一度に 1 つのバリエーションのみをテストすることを強く推奨します。これにより、観察されたキャンペーンパフォーマンスの差分の要因を切り分けられます。

バリエーションはキャンペーンレベルで設定します。たとえば、広告主が新しいクリエイティブの有効性をテストしたい場合、クリエイティブのみが異なる 2 つの同一のキャンペーンを作成する必要があります。将来的には line item レベルでのバリエーションをサポートする予定です。

### ユースケース

A/B テストは、(1) X 上で何が最も効果的かを把握して投資を最適化したいパフォーマンス顧客向けの最適化ユースケース、および (2) 学びをマーケティング戦略に反映したいブランド広告主向けの学習ユースケースを支援するために最も多く使われます。

API は、以下を含むあらゆるキャンペーン変数の A/B テストをサポートします。

* クリエイティブ

* ターゲティング

* Bid type

* Bid unit

## A/B テスト

A/B テストにより、広告主は X 上でリーチしているユーザーをセグメント化し、キャンペーンパフォーマンスを最適化する最良の方法を理解して、マーケティング戦略に反映させるための学びを得ることができます。

これらのセグメント(ユーザーグループスプリット)はランダム化され、互いに排他的です。ランダム化により、結果に影響する要因は等しく分布します。つまり、グループ間や期待される行動に本質的な違いは存在しません。そのため、あるユーザーグループにのみ 1 つのバリエーションを適用すれば、キャンペーンパフォーマンスの差分をそのバリエーションによるものと帰することができます。

一度に複数のバリエーションをテストすることも可能ですが、一度に 1 つのバリエーションのみをテストすることを強く推奨します。これにより、観察されたキャンペーンパフォーマンスの差分の要因を切り分けられます。

バリエーションは、キャンペーンレベルまたは ad group レベルで設定できます。ad group は Ads API では [line item](https://developer.x.com/en/docs/twitter-ads-api/campaign-management/api-reference/line-items) を通じて設定します。たとえば ad group レベルでのバリエーションの例として、広告主が新しいクリエイティブの有効性をテストしたい場合、クリエイティブのみが異なる 2 つの同一の ad group を持つ 1 つのキャンペーンを作成します。

### ユースケース

A/B テストは、(1) X 上で何が最も効果的かを把握して投資を最適化したいパフォーマンス顧客向けの最適化ユースケース、および (2) 学びをマーケティング戦略に反映したいブランド広告主向けの学習ユースケースを支援するために最も多く使われます。

API は、以下を含むあらゆるキャンペーン変数の A/B テストをサポートします。

* クリエイティブ

* ターゲティング

* Bid type

* Bid unit

### 属性

A/B テストはネスト構造として表現されます。A/B テスト自体のトップレベルフィールドと、それぞれが記述用フィールドのセットを持つユーザーグループオブジェクトの配列があります。

概要として、すべての A/B テストには以下の情報を含める必要があります。

* テスト期間(start\_time および end\_time フィールドで表現)

* スプリットが行われるレベル(entity\_type フィールドで表現)

* 少なくとも 2 つ(最大 30 個)のユーザーグループ。それぞれ user\_groups 配列内のオブジェクトとして表現

各ユーザーグループには、*必ず* 以下の情報を含める必要があります。

* 当該ユーザーグループに割り当てるユーザーの割合(size フィールドで表現)

* 当該ユーザーグループのユーザープールを構成するキャンペーン ID / line item ID(entity\_ids 配列で表現)

任意で、A/B テストおよびユーザーグループに name および description の値を設定できます。バリデーションルールやその他の制約に関する情報は下記を参照してください。

ID や作成日時などのその他メタデータも含まれますが、これらは X によって自動設定されます。

キャンペーンレベル向けの A/B テストエンティティ例を以下に示します。

```json title="Example response" expandable lines wrap icon="https://mintcdn.com/x-preview/Vn2KEkZaPF9LiPi3/icons/xds/icon-brackets.svg?fit=max&auto=format&n=Vn2KEkZaPF9LiPi3&q=85&s=ed2428e77bab43e57800e1a590e982fa" theme={null}
{
  "created_at": "2020-12-01T00:00:00Z",
  "created_by": {
    "user_id": "756201191646691328",
    "username": "apimctestface"
  },
  "deleted": false,
  "description": "documentation example",
  "end_time": "2020-12-05T01:00:00Z",
  "entity_type": "CAMPAIGN",
  "id": "hr7l0",
  "name": "first AB test",
  "start_time": "2020-12-01T01:00:00Z",
  "status": "SCHEDULED",
  "user_groups": [
    {
      "id": "p1bcx",
      "name": "first group",
      "description": null,
      "size": "50.0",
      "entity_ids": [
        "f2qcw",
        "f2tht"
      ]
    },
    {
      "id": "p1bcy",
      "name": "second group",
      "description": "second AB test group",
      "size": 50,
      "entity_ids": [
        "f2rqi",
        "f2tws"
      ]
    }
  ],
  "updated_at": "2020-12-01T00:00:00Z",
  "updated_by": {
    "user_id": "756201191646691328",
    "username": "apimctestface"
  }
}
```

line item レベル向けの A/B テストエンティティ例を以下に示します。

```json title="Example response" expandable lines wrap icon="https://mintcdn.com/x-preview/Vn2KEkZaPF9LiPi3/icons/xds/icon-brackets.svg?fit=max&auto=format&n=Vn2KEkZaPF9LiPi3&q=85&s=ed2428e77bab43e57800e1a590e982fa" theme={null}
{
   "created_by":{
      "user_id":"756201191646691328",
      "username":"apimctestface"
   },
   "name":"Test2e",
   "start_time":"2022-08-15T00:00:00Z",
   "updated_by":{
      "user_id":"756201191646691328",
      "username":"apimctestface"
   },
   "description":"My Second AB test",
   "entity_type":"LINE_ITEM",
   "end_time":"2022-08-30T00:00:00Z",
   "id":"1ul",
   "user_groups":[
      {
         "name":"first group",
         "size":"50.0",
         "description":"first group description",
         "entity_ids":[
            "ij9dh"
         ],
         "id":"4xe"
      },
      {
         "name":"second group",
         "size":"50.0",
         "description":"second group description",
         "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 テストの作成と更新を説明します。読み取りと削除は、他の Ads API エンドポイントと同じように動作します。

#### 作成

A/B テストは [POST accounts/:account\_id/ab\_tests](https://developer.x.com/en/docs/x-ads-api/measurement/api-reference/ab-tests) エンドポイントを使って作成します。このエンドポイントは JSON POST ボディのみを受け付けます。Content-Type は application/json に設定する必要があります。

広告主が 2 つ以上のキャンペーンを設定した後、A/B テストを作成できます。上述のとおり、A/B テストには、テスト期間、スプリットレベル、少なくとも 2 つのユーザーグループを *必ず* 含める必要があります。各ユーザーグループは、割り当てるユーザーの割合と、そのユーザープールを構成するキャンペーン ID を宣言する必要があります。それぞれの詳細については以下を参照してください。

テスト期間:

* start\_time と end\_time の値は

  * (A/B テストが作成される時点から見て)未来である必要がある

  * キャンペーン/line item のフライト日程と重複する必要がある

* テストは、アプリベース以外のキャンペーンでは少なくとも 1 日、アプリベースのキャンペーンでは少なくとも 5 日続く必要がある

スプリットレベル:

* entity\_type は CAMPAIGN または LINE\_ITEM に設定できる

ユーザーグループ:

* 各ユーザーグループは user\_groups 配列内のオブジェクトとして表される

  * 最低 2 つのユーザーグループが必要

  * 最大 30 個のユーザーグループが許可される

* 各ユーザーグループの size は、1.00 から 99.00 の数値の文字列表現で設定する

  * **注意**: *オブジェクト全体* の size 値の合計は 100.00 になる**必要があります**

* キャンペーン ID は、各ユーザーグループの entity\_ids 配列で指定する

任意で、A/B テストや 1 つ以上のユーザーグループに name および description を設定できます。

以下のリクエストは、4 日間続くキャンペーンレベルの A/B テストを、各グループに 50% のユーザーを含む 2 つのユーザーグループとともに作成します。最初のユーザーグループはキャンペーン f2qcw と f2tht に基づいており、2 つめのユーザーグループはキャンペーン f2rqi と f2tws に基づいています。このリクエストではエンティティの一部の箇所に名前と説明も追加しています。

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"}'

```json title="Example response" expandable lines wrap icon="https://mintcdn.com/x-preview/Vn2KEkZaPF9LiPi3/icons/xds/icon-brackets.svg?fit=max&auto=format&n=Vn2KEkZaPF9LiPi3&q=85&s=ed2428e77bab43e57800e1a590e982fa" theme={null}
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"}'

{
  "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": "first group"
        },
        {
          "entity_ids": [
            "f2rqi",
            "f2tws"
          ],
          "size": "50.0",
          "name": "second group",
          "description": "second AB test group"
        }
      ],
      "name": "first AB test",
      "description": "documentation example"
    }
  },
  "data": {
    "created_at": "2020-12-01T00:00:00Z",
    "created_by": {
      "user_id": "756201191646691328",
      "username": "apimctestface"
    },
    "deleted": false,
    "description": "documentation example",
    "end_time": "2020-12-05T01:00:00Z",
    "entity_type": "CAMPAIGN",
    "id": "hr7l0",
    "name": "first AB test",
    "start_time": "2020-12-01T01:00:00Z",
    "status": "SCHEDULED",
    "user_groups": [
      {
        "id": "p1bcx",
        "name": "first group",
        "description": null,
        "size": "50.0",
        "entity_ids": [
          "f2qcw",
          "f2tht"
        ]
      },
      {
        "id": "p1bcy",
        "name": "second group",
        "description": "second AB test group",
        "size": "50.0",
        "entity_ids": [
          "f2rqi",
          "f2tws"
        ]
      }
    ],
    "updated_at": "2020-12-01T00:00:00Z",
    "updated_by": {
      "user_id": "756201191646691328",
      "username": "apimctestface"
    }
  }
}
```

**line item レベルの A/B テストについて**

キャンペーンレベルと line item レベルでの A/B テストの主な違いは entity\_type です。line item レベルの A/B テストでは 'entity\_type' = 'LINE\_ITEM' に設定する必要があります。これは、以下に示すすでに作成された A/B テストに対するすべてのアクションにも適用されます。

要件:

1. A/B テスト対象キャンペーンのすべての line item が、スプリットテストに含まれている必要があります。
2. line item レベルでは等分割のみが許可されます。
3. 1 つのスプリットテストで許可されるユーザーグループ数(line item 数)は 5 以下である必要があります。
4. ユーザーグループあたり 1 つの line item のみです。

### 更新

A/B テストは [PUT accounts/:account\_id/ab\_tests/:ab\_test\_id](https://developer.x.com/en/docs/x-ads-api/measurement/api-reference/ab-tests) エンドポイントを使って更新します。このエンドポイントはリクエストで JSON blob を送信する必要があります。Content-Type
