메인 콘텐츠로 건너뛰기

개요

소개

A/B 테스트는 광고주가 X에서 도달하는 사용자를 세분화해 캠페인 성과를 최적화하는 최적의 방법을 파악하고, 마케팅 전략 수립에 활용할 인사이트를 확보할 수 있도록 합니다. 이러한 세그먼트(사용자 그룹 분할)는 무작위로 배정되며 상호 배타적입니다. 무작위화로 인해 결과에 영향을 미치는 요인이 균등하게 분포합니다. 즉, 그룹 간에도, 예측되는 행동에도 본질적인 차이가 없습니다. 따라서 하나의 변형만 특정 사용자 그룹에 적용되고 다른 그룹에는 적용되지 않는 경우, 캠페인 성과의 차이는 그 변형에 기인한다고 볼 수 있습니다. 여러 변형을 동시에 테스트할 수도 있지만, 한 번에 하나의 변형만 테스트할 것을 강력히 권장합니다. 이렇게 하면 관찰된 캠페인 성과 차이의 인과 요인을 분리할 수 있습니다. 변형은 캠페인 수준에서 설정됩니다. 예를 들어 광고주가 새로운 크리에이티브의 효과를 테스트하려면, 크리에이티브만 다른 동일한 두 개의 캠페인을 만들어야 합니다. 향후에는 라인 아이템 수준의 변형도 지원할 예정입니다.

사용 사례

A/B 테스트는 주로 (1) X에서 어떤 요소가 가장 효과적인지 파악해 투자 효율을 극대화하려는 성과형 고객의 최적화 사용 사례와 (2) 학습 결과를 기반으로 마케팅 전략을 수립하려는 브랜드 광고주의 학습 사용 사례를 지원하는 데 활용됩니다.  API는 다음을 포함한 모든 캠페인 변수에 대해 A/B 테스트를 지원합니다:
  • 크리에이티브 
  • 타기팅 
  • 입찰 유형
  • 입찰 단위

A/B Testing

A/B Testing은 광고주가 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/라인 아이템 ID: entity_ids 배열로 표시됨
선택적으로 A/B 테스트와 사용자 그룹에 name 및 description 값을 설정할 수 있습니다. 유효성 검사 규칙과 기타 제약 조건은 아래에서 확인할 수 있습니다. 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": "첫 번째 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,
      "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":"두 번째 A/B 테스트",
   "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":"예약됨"
   "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 테스트 생성 시점을 기준으로) 미래여야 합니다
    • 캠페인/라인 아이템의 플라이트 날짜와 겹쳐야 합니다
  • 테스트는 앱 비기반 캠페인의 경우 최소 1일, 앱 기반 캠페인의 경우 최소 5일 동안 지속되어야 합니다
분할 수준:
  • entity_type은 CAMPAIGN 또는 LINE_ITEM으로 설정할 수 있습니다
사용자 그룹:
  • 각 사용자 그룹은 user_groups 배열의 객체로 표현됩니다
    • 최소 두 개의 사용자 그룹이 필요합니다
    • 최대 30개의 사용자 그룹이 허용됩니다
  • 각 사용자 그룹의 크기는 1.00과 99.00 사이의 숫자 값을 문자열로 설정합니다
    • 참고: 객체 전체의 크기 값 합은 반드시 100.00이어야 합니다
  • 캠페인 ID는 각 사용자 그룹의 entity_ids 배열에 지정해야 합니다
선택적으로, A/B 테스트 또는 하나 이상의 사용자 그룹에 대해 이름과 설명을 설정할 수 있습니다. 다음 요청은 캠페인 수준에서 4일 동안 지속되며, 각 그룹에 사용자 50%가 배정된 두 개의 사용자 그룹을 가진 A/B 테스트를 생성합니다. 첫 번째 사용자 그룹은 캠페인 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"
    }
  }
}
라인 아이템 수준의 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 엔드포인트를 사용해 A/B 테스트를 업데이트합니다. 이 엔드포인트는 요청 본문에 JSON 블롭을 포함해야 합니다. Content-Type은 application/json으로 설정해야 합니다. 다른 업데이트 엔드포인트와 마찬가지로 PUT accounts/:account_id/ab_tests/:ab_test_id 엔드포인트는 URL에서 A/B 테스트 ID를 지정해야 합니다. 일반적으로 A/B 테스트는 상태가 SCHEDULED일 때만 업데이트할 수 있습니다. 단, 예외적으로 LIVE 상태에서 end_time은 업데이트할 수 있습니다. 이 엔드포인트는 객체 ID를 포함한 부분 JSON을 지원합니다. 다음 원칙이 적용됩니다:
  • 객체나 요소를 추가·제거하려면 전체 배열(및 하위 구조)을 전달합니다. 이는 교체 작업입니다.
  • 그 외에는 키 이름 또는 ID를 참조하여 기존 필드(변경, 추가, 제거)를 수정합니다.
    • 필드를 제거하려면 값을 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": "두 번째 A/B 테스트 그룹"
  },
  {
    "entity_ids": [
      "i1vwr",
      "i1xre"
    ],
    "size": "40.0"
  }
]
개체 전체의 크기 값 합계가 여전히 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": "두 번째 AB 테스트 그룹"
    },
    {
      "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": "첫 번째 AB 테스트 그룹"
    },
    {
      "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
매개변수
NameDescription
account_id
required
사용 중인 계정의 식별자입니다. 리소스 경로에 표시되며, GET accounts를 제외한 모든 Advertiser API 요청에 일반적으로 필요한 매개변수입니다. 지정한 계정은 인증된 사용자와 연동되어 있어야 합니다.

Type: string

Example: 18ce54d4x5t
ab_test_ids
optional
쉼표로 구분된 식별자 목록을 지정하여 원하는 A/B 테스트만 응답에 포함합니다. 최대 200개의 ID를 제공할 수 있습니다.

Type: string

Example: hr7l0
count
optional
각 요청당 조회할 레코드 수를 지정합니다.

Type: int

Default: 200
Min, Max: 1, 1000
cursor
optional
다음 결과 페이지를 가져오기 위한 커서를 지정합니다. 자세한 내용은 Pagination을 참조하세요.

Type: string

Example: 8x7v00oow
live_during
optional
지정한 날짜 범위 동안 진행 중이었거나 진행될 A/B 테스트로 응답을 제한합니다. 시작 및 종료 시간이 해당 날짜 범위와 부분적으로 또는 완전히 겹치는 A/B 테스트를 반환합니다.

값은 ISO 8601 형식의 쉼표로 구분된 날짜로 지정하세요. 이른 날짜를 먼저 지정해야 합니다.

Type: string

Example: 2020-11-01T08:00:00Z,2020-12-01T08:00:00Z
q
optional
name으로 리소스를 필터링하는 선택적 쿼리입니다. 모두 가져오려면 이 매개변수를 생략하세요.

Type: string

Min, Max length: 1, 80
sort_by
optional
지원되는 속성을 기준으로 오름차순 또는 내림차순 정렬합니다. 자세한 내용은 Sorting을 참조하세요.

Type: string

Example: created_at-asc
status
optional
지정한 상태의 A/B 테스트만 응답에 포함합니다.

Type: enum

Possible values: COMPLETED, LIVE, SCHEDULED
user_id
optional
지정한 사용자 ID가 생성한 A/B 테스트만 응답에 포함합니다.

Note: username과 동시에 지정할 수 없습니다.

Type: long

Example: 756201191646691328
username
optional
지정한 사용자 이름이 생성한 A/B 테스트만 응답에 포함합니다. 앞의 ”@” 기호는 포함하지 마세요.

Note: user_id와 동시에 지정할 수 없습니다.

Type: string

Example: apimctestface
with_deleted
optional
삭제된 결과를 포함합니다.

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": "첫 번째 그룹",
              "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"
          }
        }
      ],
      "next_cursor": null
    }

POST accounts/:account_id/ab_tests

새 A/B 테스트를 생성합니다. 모든 매개변수는 요청 본문으로 전송되며 Content-Typeapplication/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 배열입니다.

참고: 각 엔터티는 하나의 A/B 테스트에만 연결될 수 있습니다.

Type: array

Example: ["dxi0l", "e66bl"]
size
required
이 사용자 그룹에 배정할 사용자 비율입니다. 소수점 이하 최대 두 자리까지의 숫자 값을 문자열로 표기합니다. 예를 들어 40%는 40, 40.0 또는 40.00으로 표기합니다.

참고: 각 객체의 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": "첫 번째 그룹"
            },
            {
              "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": "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": "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이어야 합니다. 이 엔드포인트는 객체 ID가 포함된 부분 JSON을 지원합니다. 다음 원칙이 적용됩니다.
  • 객체나 요소를 추가하거나 제거하려면 전체 배열(및 하위 구조 전체)을 전달하세요. 이는 대체 작업입니다.
    • 배열을 다시 생성한다고 생각하면 됩니다.
  • 그 외의 경우에는 키 이름이나 ID를 참조하여 기존 필드를 수정(변경, 추가, 제거)하세요.
    • 필드를 제거하려면 해당 값을 null로 설정하세요.
    • 전달되지 않은 필드는 변경되지 않습니다.
일반적으로 A/B 테스트는 statusSCHEDULED일 때만 업데이트할 수 있습니다. 한 가지 예외로, LIVE 상태일 때도 A/B 테스트의 end_time은 업데이트할 수 있습니다.
리소스 URL
https://ads-api.x.com/12/accounts/18ce54d4x5t/:ab_test_id
매개변수
이름설명
account_id
required
레버리지드 계정의 식별자입니다. 리소스 경로에 포함되며, GET accounts를 제외한 모든 Advertiser API 요청에서 일반적으로 필수 매개변수입니다. 지정된 계정은 인증된 사용자와 연결되어 있어야 합니다.

유형: string

예시: 18ce54d4x5t
ab_test_id
required
요청에서 사용 중인 A/B 테스트에 대한 참조입니다.

유형: string

예시: hr7l0
description
optional
A/B 테스트의 설명입니다. 최대 길이: 1,024자.

참고: A/B 테스트의 statusSCHEDULED일 때에만 업데이트할 수 있습니다.

유형: string

예시: documentation example
end_time
optional
A/B 테스트가 종료되는 시간(ISO 8601 형식)입니다.

참고: A/B 테스트의 statusSCHEDULED 또는 LIVE일 때에만 업데이트할 수 있습니다.

유형: string

예시: 2020-10-02T00:00:00Z
name
optional
A/B 테스트의 이름입니다. 최대 길이: 255자.

참고: A/B 테스트의 statusSCHEDULED일 때에만 업데이트할 수 있습니다.

유형: string

예시: first AB test
start_time
optional
A/B 테스트가 시작되는 시간(ISO 8601 형식)입니다.

참고: A/B 테스트의 statusSCHEDULED일 때에만 업데이트할 수 있습니다.

유형: string

예시: 2022-05-30T00:00:00Z
user_groups
required
사용자 그룹을 설명합니다. 아래 표에서 자세한 정보를 확인하세요.

참고: A/B 테스트의 statusSCHEDULED일 때에만 업데이트할 수 있습니다.

유형: 객체 배열

사용자 그룹

이름설명
id
때때로 필요
요청에서 작업 중인 사용자 그룹 객체를 참조합니다.

참고: 사용자 그룹 객체의 필드를 수정(변경, 추가, 제거)할 때 필요합니다.

참고: 전체 사용자 그룹 객체를 추가하거나 제거할 때는 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.00, 99.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
required
이 요청에서 사용 중인 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": "첫 번째 A/B 테스트",
        "start_time": "2022-05-25T01:00:00Z",
        "status": "예정됨",
        "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"
        }
      }
    }