跳转到主要内容

概述

简介

A/B 测试使广告主能够将其在 X 上触达的用户进行分组,从而了解如何更好地优化广告系列表现,并积累见解以指导其营销策略。 这些分组(称为用户组拆分)是随机且互斥的。通过随机化,影响结果的因素会被均匀分布。换句话说,各组之间或其预期行为不存在内在差异。因此,当仅对某一用户组应用单一变体而其他组未应用时,广告系列表现的差异可归因于该变体。 虽然可以同时测试多个变体,但我们强烈建议一次只测试一个变体。这样可以将观察到的广告系列表现差异的因果因素单独隔离。 变体在广告系列层级进行设置。例如,如果广告主想测试新素材的效果,应创建两个相同的广告系列,且唯一差异在于该素材。未来,我们计划支持在投放单元(line item)层级设置变体。

使用场景

A/B 测试通常用于两类场景:(1)面向效果广告客户的优化场景,这些客户希望了解在 X 上哪些做法效果最佳,以便优化其投放;(2)面向品牌广告主的学习场景,这些广告主希望将所得洞察用于制定营销策略。 该 API 将支持针对任何广告系列变量进行 A/B 测试,包括:
  • 创意
  • 定向
  • 出价类型
  • 出价单位

A/B Testing

A/B Testing 使广告主能够对他们在 X 上触达的用户进行分组,从而了解如何最有效地优化广告系列表现,并获取洞见以指导其营销策略。 这些分组(称为用户组拆分)是随机且互斥的。通过随机化,影响结果的因素会被均匀分配。换言之,各组之间或其预期行为不存在内在差异。正因如此,当某个单一变体仅应用于一个用户组而未应用于其他组时,广告系列表现的差异即可归因于该变体。 尽管可以同时测试多个变体,我们强烈建议一次只测试一个变体。这样可以将观察到的广告系列表现差异的因果因素单独隔离出来。 变体可设置在广告系列级别或广告组级别。广告组通过 X Ads API 中的 line item 进行设置。以广告组级别的变体为例,如果广告主想测试新创意的效果,应创建一个包含 2 个相同广告组的广告系列,且唯一的差异是所使用的创意。

用例

A/B 测试最常用于支持以下两类场景:(1)面向绩效客户的优化用例,这些客户希望了解在 X 上哪些方式效果最佳,以优化其投入;(2)面向品牌广告主的学习用例,这些广告主希望将所得洞察用于制定营销策略。  该 API 将支持对任何广告系列变量进行 A/B 测试,包括:
  • 创意
  • 定向
  • 出价类型
  • 出价单位

属性

A/B 测试采用嵌套结构表示。顶层包含 A/B 测试本身的字段,以及一个用户分组对象数组,每个对象都有一组用于描述该分组的字段。 在概览层面,每个 A/B 测试必须包含以下信息:
  • 测试持续时间,由 start_time 和 end_time 字段表示
  • 进行拆分的层级,由 entity_type 字段表示
  • 至少两个(最多 30 个)用户分组,每个分组在 user_groups 数组中以对象形式表示
每个用户分组必须包含以下信息:
  • 应分配到该用户分组的用户百分比,由 size 字段表示
  • 应构成该用户分组用户池的广告系列 ID/投放单元(line item)ID,由 entity_ids 数组表示
可选地,可以为 A/B 测试和用户分组设置名称和描述。有关验证规则和其他约束的信息见下文。 其他元数据(例如 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": "第一组",
      "description": null,
      "size": "50.0",
      "entity_ids": [
        "f2qcw",
        "f2tht"
      ]
    },
    {
      "id": "p1bcy",
      "name": "第二组",
      "description": "第二个 AB 测试组",
      "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":"测试2e",
   "start_time":"2022-08-15T00:00:00Z",
   "updated_by":{
      "user_id":"756201191646691328",
      "username":"apimctestface"
   },
   "description":"我的第二个AB测试",
   "entity_type":"LINE_ITEM",
   "end_time":"2022-08-30T00:00:00Z",
   "id":"1ul",
   "user_groups":[
      {
         "name":"第一组",
         "size":"50.0",
         "description":"第一组描述",
         "entity_ids":[
            "ij9dh"
         ],
         "id":"4xe"
      },
      {
         "name":"第二组",
         "size":"50.0",
         "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 测试。读取和删除的操作与其他所有 X Ads API endpoint 的用法相同。

创建

使用 POST accounts/:account_id/ab_tests endpoint 创建 A/B 测试。该 endpoint 仅接受 JSON 格式的 POST 请求体。Content-Type 必须设置为 application/json。 在广告主已设置两个或以上广告系列后,即可创建 A/B 测试。如上所述,A/B 测试必须包含:测试时长、分割级别,以及至少两个用户组。每个用户组必须声明应分配给该组的用户百分比,以及构成其用户池的广告系列 ID。以下对各项作进一步说明。 测试时长:
  • start_time 和 end_time 的取值必须
    • 相对于创建 A/B 测试的时间而言为将来时间
    • 与广告系列/广告投放项的投放日期重叠
  • 非 App 类广告系列的测试必须至少持续一天;App 类广告系列的测试必须至少持续五天
分割级别:
  • entity_type 可设置为 CAMPAIGN 或 LINE_ITEM
用户组:
  • 每个用户组在 user_groups 数组中表示为一个对象
    • 至少需要两个用户组
    • 最多允许 30 个用户组
  • 每个用户组的大小使用字符串形式的数值设置,范围为 1.00 至 99.00
    • 注意:各对象的 size 值相加之和必须为 100.00
  • 应在每个用户组的 entity_ids 数组中指定广告系列 ID
可选地,可为 A/B 测试或一个或多个用户组设置 name 和 description。 以下请求将在广告系列级别创建一个为期四天的 A/B 测试,并包含两个用户组,每个组分配 50% 的用户。第一个用户组基于广告系列 f2qcw 和 f2tht;第二个用户组基于广告系列 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": "第一组"},{"entity_ids": ["f2rqi", "f2tws"], "size": "50.00", "name": "第二组", "description": "第二个 A/B 测试组"}], "name": "首次 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": "第一组"
        },
        {
          "entity_ids": [
            "f2rqi",
            "f2tws"
          ],
          "size": "50.0",
          "name": "第二组",
          "description": "第二个 A/B 测试组"
        }
      ],
      "name": "首次 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": "首次 A/B 测试",
    "start_time": "2020-12-01T01:00:00Z",
    "status": "SCHEDULED",
    "user_groups": [
      {
        "id": "p1bcx",
        "name": "第一组",
        "description": null,
        "size": "50.0",
        "entity_ids": [
          "f2qcw",
          "f2tht"
        ]
      },
      {
        "id": "p1bcy",
        "name": "第二组",
        "description": "第二个 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. 单个分流测试中允许的用户组行项目数量须小于或等于 5。
  4. 每个用户组仅允许 1 个行项目。

更新

使用 PUT accounts/:account_id/ab_tests/:ab_test_id endpoint 更新 A/B Test。该 endpoint 要求在请求中发送一个 JSON blob。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 中添加第三个用户组,需要在请求中传入 user_groups 数组,其中既包含两个现有的用户组对象,也包含要新增的对象。可以将其视为对 user_groups 数组的重新创建;像最初创建时那样传入 data(不要传入用户组对象 ID)。更新请求中的 user_groups 数组可表示如下。
[
  {
    "entity_ids": [
      "f2qcw",
      "f2tht"
    ],
    "size": "30.0",
    "name": "第一组"
  },
  {
    "entity_ids": [
      "f2rqi",
      "f2tws"
    ],
    "size": "30.0",
    "name": "第二组",
    "description": "第二个 AB 测试组"
  },
  {
    "entity_ids": [
      "i1vwr",
      "i1xre"
    ],
    "size": "40.0"
  }
]
请注意,各对象的 size 值之和仍为 100.00。若我们未对前两个对象进行更新(此前各为 50.00),该请求将会失败。 如果我们只是想为第一个用户组添加描述,更新请求中的 user_groups 数组应表示如下。
[
  {
    "id": "p1bcx",
    "description": "通过 PUT 请求更新"
  }
]
我们通过 id 引用用户组对象,并且只包含需要修改的字段。

请求示例

本节提供更多更新请求示例。可将其视为按顺序依次调用。为便于阅读,JSON 数据已格式化。响应已省略。 要进行以下修改,请按如下方式构造请求。(与上文示例相同。)
  1. 添加第三个用户组(无名称和描述)
  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": "第二组",
      "description": "第二个 A/B 测试组"
    },
    {
      "entity_ids": [
        "i1vwr",
        "i1xre"
      ],
      "size": "40.00"
    }
  ]
}'
要进行以下修改,请将请求表示如下:
  1. 删除 A/B 测试的描述
  2. 为第一个用户组添加描述
  3. 为第二个用户组添加实体 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": "第一个 A/B 测试组"
    },
    {
      "id": "p1bcy",
      "entity_ids": [
        "f2rqi",
        "f2tws",
        "f2syz"
      ]
    }
  ]
}'
第三项修改要求在传入新的实体id的同时,一并传入两个现有的实体id。请注意,第三个用户组未作任何更改。 要进行以下修改,请按如下方式构造请求。
  1. 移除第二个用户组
  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": "第一组"
    },
    {
      "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
参数
名称描述
account_id
必填
所使用广告账户的标识符。出现在资源路径中,通常是除 GET accounts 之外所有 Advertiser API 请求所必需的参数。指定的账户必须与已认证用户关联。

Type: string

Example: 18ce54d4x5t
ab_test_ids
可选
通过指定以逗号分隔的标识符列表,将响应限定为所需的 A/B Tests。最多可提供 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 Tests。返回开始和结束时间与给定日期范围部分或全部重叠的 A/B Tests。

将值指定为以逗号分隔的日期,使用 ISO 8601 表示。应先给出较早的日期。

Type: string

Example: 2020-11-01T08:00:00Z,2020-12-01T08:00:00Z
q
可选
一个可选的 query(查询),按 name 限定资源。省略此参数以检索全部。

Type: string

Min, Max length: 1, 80
sort_by
可选
按受支持的属性进行升序或降序排序。有关更多信息,请参阅 Sorting

Type: string

Example: created_at-asc
status
可选
将响应限定为具有指定状态的 A/B Tests。

Type: enum

Possible values: COMPLETED, LIVE, SCHEDULED
user_id
可选
将响应限定为由指定用户 ID 创建的 A/B Tests。

注意:不能与 username 同时指定。

Type: long

Example: 756201191646691328
username
可选
将响应限定为由指定用户名创建的 A/B Tests。不要包含开头的“@”符号。

注意:不能与 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": "首次 AB 测试",
          "start_time": "2022-05-25T01:00:00Z",
          "status": "SCHEDULED",
          "user_groups": [
            {
              "id": "p1bcx",
              "name": "第一组",
              "description": null,
              "size": "50.0",
              "entity_ids": [
                "f2qcw",
                "f2tht"
              ]
            },
            {
              "id": "p1bcy",
              "name": "第二组"
              "description": "第二个 AB 测试分组",
              "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
参数
名称说明
account_id
必填
被使用的账户标识符。该值出现在资源路径中,且通常是除 GET accounts 外所有 Advertiser API 请求所必需的参数。所指定的账户必须与已通过身份验证的用户关联。

Type: string

Example: 18ce54d4x5t
end_time
必填
A/B 测试结束的时间,采用 ISO 8601 表示。

Type: string

Example: 2020-10-02T00:00:00Z
entity_type
必填
用于划分用户组的实体类型。

Type: enum

Possible values: CAMPAIGN, LINE_ITEM
start_time
必填
A/B 测试开始的时间,采用 ISO 8601 表示。

Type: string

Example: 2022-05-30T00:00:00Z
user_groups
必填
用户组的定义。更多信息见下表。可指定 2 到 30 个用户组。

Type: array of objects
description
可选
A/B 测试的描述。最大长度:1,024 个字符。

Type: string

Example: documentation example
name
可选
A/B 测试的名称。最大长度:255 个字符。

Type: string

Example: first AB test

用户分组

名称说明
entity_ids
必填
实体 ID 的数组。

注意:每个实体只能关联到一个 A/B 测试。

Type: array

Example: ["dxi0l", "e66bl"]
size
必填
分配给此用户分组的用户占比。该数值为数值,但以字符串形式表示,小数点后最多两位。例如,将 40% 表示为:40、40.0 或 40.00。

注意:所有_对象_的 size 值之和必须等于 100.00。

Type: array

Min, Max: 1.00, 99.00
description
可选
用户分组的描述。最大长度:1,024 个字符。

Type: string

Example: second AB test group
name
可选
用户分组的名称。最大长度: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": "第一组"
            },
            {
              "entity_ids": [
                "f2rqi",
                "f2tws"
              ],
              "size": "50.0",
              "name": "second group",
              "description": "AB 测试第二组"
            }
          ],
          "name": "首次 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": "首次 AB 测试",
        "start_time": "2022-05-25T01:00:00Z",
        "status": "SCHEDULED",
        "user_groups": [
          {
            "id": "p1bcx",
            "name": "第一组",
            "description": null,
            "size": "50.0",
            "entity_ids": [
              "f2qcw",
              "f2tht"
            ]
          },
          {
            "id": "p1bcy",
            "name": "第二组"
            "description": "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-Type 设为 application/json 此 endpoint 支持包含对象 ID 的部分 JSON。遵循以下原则:
  • 如需添加或移除对象或元素,请传入整个数组(及其子结构);这是一次替换操作
    • 可将其视为重新创建该数组
  • 其他情况下,通过引用键名或 ID 来修改(更改、添加、移除)现有 fields
    • 如需移除某个字段,将其值设为 null
    • 未传入的字段不会被修改
通常仅当 statusSCHEDULED 时,才可更新 A/B 测试。例外情况:当其为 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 测试的引用。

Type: string

Example: hr7l0
description
可选
A/B 测试的描述。最大长度:1,024 个字符。

注意:仅当 A/B 测试的 statusSCHEDULED 时可更新。

Type: string

Example: documentation example
end_time
可选
A/B 测试结束时间,采用 ISO 8601 表示。

注意:仅当 A/B 测试的 statusSCHEDULEDLIVE 时可更新。

Type: string

Example: 2020-10-02T00:00:00Z
name
可选
A/B 测试的名称。最大长度:255 个字符。

注意:仅当 A/B 测试的 statusSCHEDULED 时可更新。

Type: string

Example: first AB test
start_time
可选
A/B 测试开始时间,采用 ISO 8601 表示。

注意:仅当 A/B 测试的 statusSCHEDULED 时可更新。

Type: string

Example: 2022-05-30T00:00:00Z
user_groups
必填
用户分组的说明。更多信息见下表。

注意:仅当 A/B 测试的 statusSCHEDULED 时可更新。

Type: array of objects

用户组

名称描述
id
有时必填
请求中所操作的用户组对象的引用。

注意:当修改(更改、添加或移除)用户组对象的_fields_时必填。

注意:在添加或移除整个用户组对象时不要指定 ID。

Type: string

Example: p1bcx
description
可选
用户组的描述。最大长度:1,024 个字符。

注意:将该字段设为 null 可清除(移除)其值。

Type: string

Example: second AB test group
entity_ids
可选
实体 ID 的数组。

注意:这是替换操作,会覆盖先前设置的值。

注意:实体只能关联到一个 A/B Test。

Type: array

Example: ["dxi0l", "e66bl"]
name
可选
用户组的名称。最大长度:255 个字符。

注意:将该字段设为 null 可清除(移除)其值。

Type: string

Example: first group
size
可选
分配给此用户组的用户百分比。该数值以字符串形式表示,且小数点后最多两位。例如,将 40% 表示为:40、40.0 或 40.00。

注意:所有_对象_的 size 值相加必须为 100.00。

Type: string

Min, Max: 1.00, 99.00
示例请求
此请求将进行以下修改:
  1. 移除 A/B 测试的描述
  2. 更改 end_time
  3. 为第一个用户组添加描述
  4. 调整各用户组的用户占比
  5. 向第二个用户组添加实体 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": "第一个 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": "首次 AB 测试",
        "start_time": "2022-05-25T01:00:00Z",
        "status": "SCHEDULED",
        "user_groups": [
          {
            "id": "p1bcx",
            "name": "第一组",
            "description": "第一个 AB 测试组",
            "size": "60.0",
            "entity_ids": [
              "f2qcw",
              "f2tht"
            ]
          },
          {
            "id": "p1bcy",
            "name": "第二组",
            "description": "第二个 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 测试不可恢复,随后再次尝试删除该资源将返回 HTTP 404。
资源 URL
https://ads-api.x.com/12/accounts/:account_id/ab_tests/:ab_test_id
参数
名称说明
ab_test_id
必填
请求中所使用的 A/B 测试的引用。

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": "首个 A/B 测试",
        "start_time": "2022-05-25T01:00:00Z",
        "status": "SCHEDULED",
        "user_groups": [
          {
            "id": "p1bcx",
            "name": "第一组",
            "description": "首个 A/B 测试分组",
            "size": "60.0",
            "entity_ids": [
              "f2qcw",
              "f2tht"
            ]
          },
          {
            "id": "p1bcy",
            "name": "第二组",
            "description": "第二个 A/B 测试分组"
            "size": "40.0",
            "entity_ids": [
              "f2rqi",
              "f2tws",
              "f2syz"
            ]
          }
        ],
        "updated_at": "2022-06-02T00:18:31Z",
        "updated_by": {
          "user_id": "756201191646691328",
          "username": "apimctestface"
        }
      }
    }
I