跳转到主要内容

概述

简介

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

使用场景

A/B 测试最常用于两类场景:(1)面向追求业绩表现的客户的优化类用例,帮助他们了解在 X 上哪些做法效果最佳,从而优化投放;(2)面向品牌广告主的学习类用例,利用实验洞察来指导其营销策略。  该 API 将支持对任意广告系列变量进行 A/B 测试,包括:
  • 创意
  • 定向
  • 出价类型
  • 出价单位

A/B 测试

A/B 测试使广告主能够对他们在 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 自动设置。 下面展示了一个针对广告系列层级(Campaign level)的 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":"Test2e",
   "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 测试。读取和删除的操作与其他 Ads API 端点的用法相同。

创建

使用 POST accounts/:account_id/ab_tests 端点创建 A/B 测试。该端点仅接受 JSON 格式的 POST 请求体。Content-Type 必须设置为 application/json。 在广告主已设置两个或以上广告系列后,即可创建 A/B 测试。如上所述,A/B 测试必须包含:测试时长、拆分层级,以及至少两个用户组。每个用户组必须声明分配给该组的用户百分比,并指定其用户池对应的广告系列 ID。以下将分别详细说明。 测试时长:
  • start_time 和 end_time 的取值必须
    • 位于未来时间(相对于创建 A/B 测试的时点)
    • 与广告系列/广告组的投放周期有重叠
  • 非 App 类广告系列的测试至少持续 1 天;App 类广告系列的测试至少持续 5 天
拆分层级:
  • entity_type 可设置为 CAMPAIGN 或 LINE_ITEM
用户组:
  • 每个用户组在 user_groups 数组中表示为一个对象
    • 至少需要两个用户组
    • 最多允许 30 个用户组
  • 每个用户组的 size 使用字符串表示,数值范围为 1.00 至 99.00
    • 注意:各对象的 size 值相加后必须为 100.00
  • 每个用户组应在其 entity_ids 数组中指定广告系列 ID
可选:可为 A/B 测试或一个或多个用户组设置 name 和 description。 以下请求在广告系列层级创建一个持续四天的 A/B 测试,包含两个用户组,每组分配 50% 的用户。第一个用户组基于广告系列 f2qcw 和 f2tht;第二个用户组基于广告系列 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”}’
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": "第二个 AB 测试组"}], "name": "第一个 AB 测试", "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": "第二个 AB 测试组"
        }
      ],
      "name": "第一个 AB 测试",
      "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": "第一个 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.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. 单次分流测试中允许的用户分组所包含的 Line item 数量须小于或等于 5。
  4. 每个用户分组仅允许 1 个 Line item。

更新

使用 PUT accounts/:account_id/ab_tests/:ab_test_id 端点更新 A/B 测试。该端点要求在请求中发送一个 JSON 数据块。Content-Type 必须设置为 application/json。 与其他更新端点类似, PUT accounts/:account_id/ab_tests/:ab_test_id 端点要求在 URL 中包含 A/B 测试 ID。一般而言,仅当状态为 SCHEDULED 时才能更新 A/B 测试。存在一个例外:当测试处于 LIVE 时,可以更新 A/B 测试的 end_time。 此端点支持携带对象 ID 的部分 JSON。遵循以下原则:
  • 若要添加或移除对象或元素,请传入整个数组(及其子结构);这是一次替换操作
  • 其他情况下,通过引用键名或 ID 来修改(更改、添加、移除)现有 fields
    • 若要移除字段,将其值设置为 null
    • 未传入的字段不会被修改
例如,向先前创建的 A/B 测试添加第三个用户分组,需要在发送的 user_groups 数组中包含两个现有的用户分组对象以及希望添加的新对象。可将其视为对 user_groups 数组的重新创建;像最初创建时那样传入这些数据(不要传入用户分组对象 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": "first group"
    },
    {
      "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 请求的必需参数。指定的账户必须与已认证用户关联。

类型: string

示例: 18ce54d4x5t
ab_test_ids
可选
通过指定以逗号分隔的标识符列表,将响应限定为所需的 A/B 测试。最多可提供 200 个 ID。

类型: string

示例: hr7l0
count
可选
指定每个独立请求尝试检索的记录数。

类型: int

默认值: 200
最小值、最大值: 1, 1000
cursor
可选
指定用于获取下一页结果的游标。有关更多信息,请参见 分页

类型: string

示例: 8x7v00oow
live_during
可选
将响应限定为在给定日期范围内曾经或将会处于活动状态的 A/B 测试。返回开始和结束时间与给定日期范围部分或完全重叠的 A/B 测试。

将值指定为以逗号分隔的日期,并使用 ISO 8601 格式表示。应先提供较早的日期。

类型: string

示例: 2020-11-01T08:00:00Z,2020-12-01T08:00:00Z
q
可选
通过 name 字段进行限定的可选查询。省略此参数可检索全部结果。

类型: string

最小、最大长度: 1, 80
sort_by
可选
按受支持的属性进行升序或降序排序。有关更多信息,请参见 排序

类型: string

示例: created_at-asc
status
可选
将响应限定为具有指定状态的 A/B 测试。

类型: enum

可能的取值: COMPLETED, LIVE, SCHEDULED
user_id
可选
将响应限定为由指定用户 ID 创建的 A/B 测试。

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

类型: long

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

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

类型: string

示例: apimctestface
with_deleted
可选
在请求中包含已删除的结果。

类型: boolean

默认值: false
可能的取值: 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 请求所必需的参数。指定的账户必须与已验证的用户关联。

类型:string

示例:18ce54d4x5t
end_time
必填
以 ISO 8601 表示的 A/B 测试结束时间。

类型:string

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

类型:enum

可能的取值:CAMPAIGNLINE_ITEM
start_time
必填
以 ISO 8601 表示的 A/B 测试开始时间。

类型:string

示例:2022-05-30T00:00:00Z
user_groups
必填
对用户组的描述。更多信息见下表。可指定 2 至 30 个用户组。

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

类型:string

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

类型:string

示例:first AB test

用户组

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

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

类型:array

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

注意:各个对象的 size 值相加后必须为 100.00。

类型:array

最小值/最大值:1.0099.00
description
可选
用户组的描述。最大长度:1,024 个字符。

类型:string

示例:second AB test group
name
可选
用户组的名称。最大长度:255 个字符。

类型:string

示例: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": "第二组",
              "description": "第二个 A/B 测试组"
            }
          ],
          "name": "第一个 A/B 测试",
          "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": "第一个 A/B 测试",
        "start_time": "2022-05-25T01:00:00Z",
        "status": "已排期",
        "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": "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 此端点支持包含对象 ID 的部分 JSON。适用以下原则:
  • 若要添加或移除对象或元素,请传入整个数组(及其子结构);这是一次替换操作
    • 可以理解为重新创建该数组
  • 其他情况下,通过引用键名或 ID 来修改(更改、添加、移除)现有字段
    • 要移除字段,请将其值设置为 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 请求的必填参数。指定的账户必须与已认证用户关联。

类型:string

示例:18ce54d4x5t
ab_test_id
必填
本次请求中所操作的 A/B 测试引用。

类型:string

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

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

类型:string

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

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

类型:string

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

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

类型:string

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

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

类型:string

示例:2022-05-30T00:00:00Z
user_groups
必填
用户分组的定义。更多信息见下表。

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

类型:对象数组

用户组

名称说明
id
有时必填
在请求中你要操作的用户组对象的引用。

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

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

类型:string

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

注意:可通过将该字段设置为 null 来取消(移除)。

类型:string

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

注意:这是替换操作,将覆盖先前的所有设置。

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

类型:array

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

注意:可通过将该字段设置为 null 来取消(移除)。

类型:string

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

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

类型:string

最小值、最大值:1.0099.00
示例请求
此请求会进行以下修改。
  1. 删除 A/B 测试描述
  2. 修改结束时间
  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": "第一次 A/B 测试组",
              "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": "第一次 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-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 测试引用。

类型:string

示例: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": "第一组",
            "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-06-02T00:18:31Z",
        "updated_by": {
          "user_id": "756201191646691328",
          "username": "apimctestface"
        }
      }
    }