개요
소개
사용 사례
- 크리에이티브
- 타기팅
- 입찰 유형
- 입찰 단위
A/B Testing
사용 사례
- 크리에이티브
- 타게팅
- 입찰 유형
- 입찰 단위
속성
- 테스트 기간으로, start_time 및 end_time 필드로 표현됩니다.
- 분할이 이루어지는 수준으로, entity_type 필드로 표현됩니다.
- 최소 2개(최대 30개)의 사용자 그룹으로, 각각 user_groups 배열의 객체로 표현됩니다.
- 해당 사용자 그룹에 할당되어야 하는 사용자 비율로, size 필드로 표현됩니다.
- 해당 사용자 그룹의 사용자 풀을 구성하는 캠페인 ID/라인 아이템 ID로, entity_ids 배열로 표현됩니다.
사용 방법
생성
Content-Type은 application/json으로 설정해야 합니다.
광고주가 두 개 이상의 캠페인을 설정한 후 A/B 테스트를 생성할 수 있습니다. 위에서 언급했듯이 A/B 테스트에는 반드시 테스트 기간, 분할 수준(split level), 그리고 최소 두 개의 사용자 그룹이 포함되어야 합니다. 각 사용자 그룹은 자신에게 할당할 사용자 비율과 해당 사용자 풀을 구성할 캠페인 ID를 명시해야 합니다. 각 항목에 대해서는 아래에서 더 자세히 설명합니다.
테스트 기간:
-
start_time및end_time값은 다음을 만족해야 합니다.- (A/B 테스트가 생성되는 시점 기준으로) 미래 시점이어야 합니다.
- 캠페인/라인 아이템의 집행 기간(flight dates)과 겹쳐야 합니다.
- 테스트는 앱 기반이 아닌 캠페인의 경우 최소 1일, 앱 기반 캠페인의 경우 최소 5일 동안 진행되어야 합니다.
entity_type은CAMPAIGN또는LINE_ITEM으로 설정할 수 있습니다.
-
각 사용자 그룹은
user_groups배열 내의 하나의 객체로 표현됩니다.- 최소 두 개의 사용자 그룹이 필요합니다.
- 최대 30개의 사용자 그룹까지 허용됩니다.
-
각 사용자 그룹의 크기는 1.00 이상 99.00 이하의 숫자 값을 문자열로 표현하여 설정합니다.
- 참고: 모든 객체에 걸친
size값의 합은 반드시 100.00이 되어야 합니다.
- 참고: 모든 객체에 걸친
-
캠페인 ID는 각 사용자 그룹의
entity_ids배열에 지정해야 합니다.
name과 description을 설정할 수 있습니다.
다음 요청은 캠페인 수준에서 A/B 테스트를 생성하며, 4일 동안 진행되고 각 그룹에 전체 사용자의 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”}’
entity_type입니다. 라인 아이템 수준에서 A/B 테스트를 수행하려면 entity_type = LINE_ITEM으로 설정해야 합니다. 이는 아래에 설명된, 이미 생성된 A/B 테스트에 대해 수행하는 모든 작업에 적용됩니다.
요구 사항:
- A/B 테스트 캠페인의 모든 라인 아이템이 스플릿 테스트에 포함되어야 합니다.
- 라인 아이템 수준에서는 균등 분할만 허용됩니다.
- 하나의 스플릿 테스트에서 사용자 그룹별로 허용되는 라인 아이템 수는 최대 5개입니다.
- 각 사용자 그룹에는 라인 아이템을 1개만 설정할 수 있습니다.
업데이트
Content-Type은 application/json으로 설정해야 합니다.
다른 업데이트 엔드포인트와 마찬가지로, PUT accounts/:account_id/ab_tests/:ab_test_id 엔드포인트를 사용할 때는 URL에 A/B 테스트 ID를 포함해야 합니다. 일반적으로 A/B 테스트는 상태가 SCHEDULED일 때만 업데이트할 수 있습니다. 단, 상태가 LIVE일 때 end_time을 업데이트하는 것은 예외적으로 허용됩니다.
이 엔드포인트는 object ID를 포함하는 부분 JSON을 지원합니다. 다음 원칙이 적용됩니다.
- 객체나 요소를 추가하거나 제거하려면 전체 배열(및 그 하위 구조)을 전달해야 합니다. 이는 대체(replacement) 작업입니다.
-
그 밖의 경우에는 키 이름 또는 ID를 참조해 기존 필드를 수정(변경, 추가, 제거)합니다.
-
필드를 제거하려면 그 값을
null로 설정합니다. - 전달되지 않은 필드는 수정되지 않습니다.
-
필드를 제거하려면 그 값을
user_groups 배열을 전송해야 합니다. 이를 user_groups 배열을 재생성하는 것으로 생각하면 됩니다. 처음부터 이렇게 생성하는 것처럼 데이터를 전달해야 하며(사용자 그룹 object ID는 전달하지 마십시오). 업데이트 요청의 user_groups 배열은 다음과 같이 표현할 수 있습니다.
요청 예시
- 이름이나 설명 없이 세 번째 사용자 그룹을 추가합니다.
- 각 사용자 그룹에 속한 사용자 비율을 변경합니다.
- A/B 테스트 설명을 제거합니다.
- 첫 번째 사용자 그룹에 설명을 추가합니다.
- 두 번째 사용자 그룹에 엔터티 ID(f2syz)를 추가합니다.
- 두 번째 사용자 그룹을 제거합니다
- 각 사용자 그룹에 속한 사용자 비율을 변경합니다
API 참조 문서
A/B 테스트
GET accounts/:account_id/ab_tests
리소스 URL
https://ads-api.x.com/12/accounts/:account_id/ab_tests
Parameters
| Name | Description |
|---|---|
| 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 | 지정된 user ID로 생성된 A/B 테스트로 응답 범위를 제한합니다. Note: username과 동시에 지정할 수 없습니다.Type: long Example: `756201191646691328. |
| username optional | 지정된 username으로 생성된 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
예시 응답
POST accounts/:account_id/ab_tests
Content-Type은 application/json이어야 합니다.
리소스 URL
https://ads-api.x.com/12/accounts/:account_id/ab_tests
매개변수
| Name | Description |
|---|---|
| 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입니다. 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 |
사용자 그룹
| Name | Description |
|---|---|
| entity_ids required | 엔티티 ID의 배열입니다. 참고: 각 엔티티는 하나의 A/B 테스트에만 연관될 수 있습니다. Type: array Example: ["dxi0l", "e66bl"] |
| size required | 이 사용자 그룹에 할당할 사용자 비율입니다. 소수점 둘째 자리까지 사용할 수 있는 숫자 값을 문자열로 표현합니다. 예를 들어 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"}'
응답 예시
PUT accounts/:account_id/ab_tests/:ab_test_id
Content-Type은 application/json이어야 합니다.
이 엔드포인트는 객체 ID를 포함하는 부분 JSON을 지원합니다. 다음 원칙이 적용됩니다:
- 객체나 요소를 추가하거나 제거하려면 전체 배열(및 해당 하위 구조)을 전달해야 하며, 이는 대체 작업입니다
- 배열을 다시 생성한다고 생각하면 됩니다
- 그 외의 경우, 키 이름 또는 ID를 참조하여 기존 필드를 수정(변경, 추가, 제거)합니다
- 필드를 제거하려면 해당 값을
null로 설정합니다 - 전달되지 않은 필드는 수정되지 않습니다
- 필드를 제거하려면 해당 값을
status가 SCHEDULED일 때만 업데이트할 수 있습니다. 예외가 하나 있는데, A/B 테스트가 LIVE인 동안에도 end_time은 업데이트할 수 있습니다.
리소스 URL
https://ads-api.x.com/12/accounts/18ce54d4x5t/:ab_test_id
매개변수
| Name | Description |
|---|---|
| account_id required | 레버리지 계정의 식별자입니다. 리소스 경로에 포함되며, GET accounts를 제외한 대부분의 Advertiser API 요청에서 일반적으로 필수 매개변수입니다. 지정된 계정은 인증된 사용자와 연결되어 있어야 합니다. Type: string Example: 18ce54d4x5t |
| ab_test_id required | 요청에서 사용 중인 A/B Test에 대한 참조입니다. Type: string Example: hr7l0 |
| description optional | A/B Test에 대한 설명입니다. 최대 길이: 1,024자입니다. 참고: A/B Test status가 SCHEDULED인 동안에만 업데이트할 수 있습니다.Type: string Example: documentation example |
| end_time optional | A/B Test가 종료되는 시간을 ISO 8601 형식으로 표현한 값입니다. 참고: A/B Test status가 SCHEDULED 또는 LIVE인 동안에만 업데이트할 수 있습니다.Type: string Example: 2020-10-02T00:00:00Z |
| name optional | A/B Test의 이름입니다. 최대 길이: 255자입니다. 참고: A/B Test status가 SCHEDULED인 동안에만 업데이트할 수 있습니다.Type: string Example: first AB test |
| start_time optional | A/B Test가 시작되는 시간을 ISO 8601 형식으로 표현한 값입니다. 참고: A/B Test status가 SCHEDULED인 동안에만 업데이트할 수 있습니다.Type: string Example: 2022-05-30T00:00:00Z |
| user_groups required | 사용자 그룹을 설명합니다. 아래 표에서 자세한 정보를 확인할 수 있습니다. 참고: A/B Test status가 SCHEDULED인 동안에만 업데이트할 수 있습니다.Type: array of objects |
사용자 그룹
| Name | Description |
|---|---|
| id 필수일 수 있음 | 요청에서 작업 중인 사용자 그룹 객체를 참조하는 값입니다. 참고: 사용자 그룹 객체의 _필드_를 수정(변경, 추가 또는 제거)할 때 필수입니다. 참고: 전체 사용자 그룹 객체를 추가하거나 제거할 때는 ID를 지정하지 마십시오. Type: string Example: p1bcx |
| description 선택 사항 | 사용자 그룹에 대한 설명입니다. 최대 길이: 1,024자입니다. 참고: null 값을 사용해 해당 필드를 지정하면 설정이 해제(제거)됩니다.Type: string Example: second AB test group |
| entity_ids 선택 사항 | 엔터티 ID의 배열입니다. 참고: 이는 교체 연산입니다. 이전에 설정된 값은 모두 덮어씁니다. 참고: 엔터티는 하나의 A/B 테스트에만 연결될 수 있습니다. 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 |
예시 요청
- A/B 테스트 설명을 제거합니다
- 종료 시간을 변경합니다
- 첫 번째 사용자 그룹에 설명을 추가합니다
- 각 사용자 그룹의 사용자 비율을 변경합니다
- 두 번째 사용자 그룹에 엔터티 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"]}]}'
응답 예시
DELETE accounts/:account_id/ab_tests/:ab_test_id
리소스 URL
https://ads-api.x.com/12/accounts/:account_id/ab_tests/:ab_test_id
Parameters
| Name | Description |
|---|---|
| ab_test_id required | 요청에서 사용 중인 A/B Test를 참조하는 값입니다. Type: string Example: hr7l0 |
예시 요청
DELETE https://ads-api.x.com/12/accounts/18ce54d4x5t/ab_tests/hr7l0