sport, baseball, soccer가 들어 있는 “Sports”). API 경로와 필드에서는 옵션을 category, 옵션의 컨텍스트 ID를 contexts라고 합니다.
옵션의 유형은 두 가지입니다.
atomic: 컨텍스트 ID 목록으로 이루어진 일반 옵션입니다.collection: 자체 컨텍스트 ID와 하위 옵션의 컨텍스트 ID에 모두 매칭되는 옵션입니다. 옵션 그룹을 참고하세요.
https://lake.adrop.io 기준입니다. 인증과 요청 형식은 기본 정보를 참고하세요.
옵션 객체
이 페이지의 엔드포인트는 옵션을 다음 형태로 반환합니다. 옵션 객체에는 컨텍스트 ID 목록이 아니라 컨텍스트 ID 개수만 들어 있습니다. 컨텍스트 ID를 읽으려면 옵션 조회를 사용하세요.
옵션에 해당하지 않는 필드는 응답에서 빠집니다.
옵션 목록 조회
타겟팅의 옵션을_id 오름차순(대략 생성 순서)으로 한 페이지씩 반환합니다. 옵션 그룹과 하위 옵션도 포함됩니다. 각 항목은 옵션 객체입니다.
요청
context-targeting:read 권한이 필요합니다.
경로 파라미터
쿼리 파라미터
요청 예시
응답 예시
next=01JAB3XK5RA1B2C3D4E5F6G7H8을 붙여 보냅니다.
- 마지막 페이지에는
next가 없습니다.next가 없을 때까지 따라가면 모든 옵션을 빠짐없이 한 번씩 받습니다. - 다음 페이지가 남아 있어도 한 페이지의 항목 수가
limit보다 적을 수 있습니다.next가 없을 때만 멈추세요. - 이름으로 검색하는 기능은 없습니다. 받은 항목을
name,parent,children으로 직접 걸러 쓰세요.
옵션 조회
옵션과 그 옵션의 컨텍스트 ID 한 페이지를 반환합니다.요청
context-targeting:read 권한이 필요합니다.
경로 파라미터
쿼리 파라미터
요청 예시
응답 예시
- 옵션의 컨텍스트 ID를 모두 읽으려면
offset이contextCount에 이를 때까지offset을limit만큼 늘려 가며 요청합니다. - 옵션 그룹의
contexts에는 옵션 그룹 자체 컨텍스트 ID만 들어 있으므로ownContextCount까지 페이지를 넘기며 읽습니다. 하위 옵션의 컨텍스트 ID는 하위 옵션을 조회해서 읽습니다.
옵션 추가
기존 타겟팅에 옵션을 추가합니다. 일반 옵션, 옵션 그룹, 기존 옵션 그룹의 하위 옵션을 추가할 수 있습니다.요청
context-targeting:write 권한이 필요합니다. 응답은 201이며, 새로 만든 옵션 객체를 반환합니다.
경로 파라미터
요청 본문
ID는 모두 서버가 발급합니다. 본문에
_id나 위 표에 없는 필드가 있으면 400으로 실패합니다.
다음 조합은 400 TARGETING_CATEGORY_NOT_SUPPORTED로 실패하며, 아무것도 생성되지 않습니다.
- 하위 옵션도 자체 컨텍스트 ID도 없는 옵션 그룹을 만드는 경우
type: "atomic"과children을 함께 보낸 경우- 일반 옵션에
exposeChildren을 보낸 경우 parent와type: "collection",children,exposeChildren중 하나를 함께 보낸 경우. 옵션 그룹에 추가하는 옵션은 항상 일반 옵션입니다parent가 최상위 옵션 그룹이 아닌 옵션을 가리키는 경우
요청 예시
응답 예시
새 최상위 옵션은 이 타겟팅을 사용하는 광고 상품과 그 캠페인에도 추가될 수 있습니다. 광고 상품과 캠페인에 미치는 영향을 참고하세요.
전체 오류 코드와 오류 형식은 오류 코드를 참고하세요.
옵션 수정
옵션의 이름이나 컨텍스트 ID를 바꾸거나, 옵션을 옵션 그룹 안팎이나 옵션 그룹 사이로 옮기거나, 옵션 그룹이 하위 옵션을 광고주에게 노출할지 바꿉니다.요청
context-targeting:write 권한이 필요합니다. 응답은 200이며, 수정된 옵션 객체를 반환합니다.
경로 파라미터
요청 본문
모든 필드는 선택입니다. 바꿀 필드만 보내세요. 보내지 않은 필드는 그대로 유지됩니다.
본문에는 다음 규칙이 적용됩니다.
contexts에는add,remove,set중 하나 이상이 있어야 하고,set은add나remove와 함께 쓸 수 없습니다. 이를 어기면 요청이400으로 실패합니다.parent는contexts와 함께 쓸 수 없습니다. 옵션 이동·분리와 컨텍스트 ID 변경은 요청을 나눠 보내세요.parent와name은 함께 쓸 수 있습니다. 이동이 실패하면 이름도 바뀌지 않습니다.null은parent에만 쓸 수 있습니다.name,contexts,exposeChildren,add,remove,set에null을 넣으면400으로 실패합니다. 필드를 바꾸지 않으려면 생략하세요.- 옵션 그룹은 옮길 수 없습니다. 옵션 그룹에
parent를 보내면400 TARGETING_CATEGORY_NOT_SUPPORTED로 실패하며, 일반 옵션에exposeChildren을 보낼 때도 마찬가지입니다. - 옵션 그룹에 보낸
contexts는 옵션 그룹 자체 컨텍스트 ID를 바꿉니다. 하위 옵션이 없는 옵션 그룹의 자체 컨텍스트 ID를 모두 삭제하면400 TARGETING_CATEGORY_NOT_SUPPORTED로 실패합니다. name,contexts,exposeChildren은 함께 저장됩니다. 컨텍스트 ID 변경이 실패하면 이름과exposeChildren도 바뀌지 않습니다. 단,add와remove를 함께 보내면add가 먼저 적용되므로remove가 실패해도 추가한 컨텍스트 ID는 남습니다.
add/remove와 set 중 무엇을 쓸지는 컨텍스트 ID 갱신 방법을 참고하세요.
요청 예시
응답 예시
옵션 삭제
옵션과 그 옵션의 컨텍스트 ID를 삭제합니다.- 옵션 그룹을 삭제하면 하위 옵션이 최상위 옵션이 되고, 광고 상품과 캠페인에 있던 옵션 그룹의 설정을 이어받습니다. 옵션 그룹에 자체 컨텍스트 ID가 있었다면 그 컨텍스트 ID는 더 이상 매칭되지 않습니다. 옵션 그룹 삭제를 참고하세요.
- 자체 컨텍스트 ID가 없는 옵션 그룹의 마지막 하위 옵션은 삭제할 수 없습니다. 이때는 옵션 그룹을 삭제하세요.
요청
context-targeting:write 권한이 필요합니다. 응답은 200이며, 삭제한 옵션의 ID를 반환합니다.
경로 파라미터
요청 예시
응답 예시
일괄 작업
일괄 작업 엔드포인트는 요청 하나로 옵션을 최대 5,000개까지 추가, 수정, 삭제합니다.context-targeting:write 권한이 필요합니다.
- 요청 전체가 실패하지 않는 한, 일괄 작업 엔드포인트는
200과 함께 항목별 결과를 요청 순서대로 반환합니다. 각 결과의success를 확인하세요. 실패한 항목에는error가 있습니다. 일괄 작업 응답을 참고하세요. - 본문이 잘못된 요청은 잘못된 항목이 하나뿐이어도 요청 전체가
400으로 실패합니다. 컨텍스트 ID 규칙을 어긴 컨텍스트 ID,add와 함께 쓴set, 허용되지 않는 필드 등이 여기에 해당합니다. - 한 프로젝트의 API 쓰기 요청은 한 번에 하나씩 처리됩니다. 일괄 요청은 병렬로 보내지 말고 하나씩 차례로 보내세요. 동시 쓰기를 참고하세요.
옵션 그룹 관련 항목은 다음과 같습니다.
- 추가: 옵션 그룹을 만드는 항목(
type: "collection"또는children)과parent가 있는 항목 - 수정:
parent가 있는 항목(null포함) - 삭제: 옵션 그룹과 하위 옵션의 ID
400으로 실패하며, 요청 안의 어떤 항목도 적용되지 않습니다. 삭제 요청에 옵션 그룹과 하위 옵션이 150개를 넘게 들어 있으면 오류는 TARGETING_CATEGORY_TREE_ITEMS_LIMIT_EXCEEDED이며, detail.limit에는 한도가, detail.count에는 요청에 든 옵션 그룹과 하위 옵션 수가 들어 있습니다. 옵션 수만 개처럼 많은 데이터를 올리려면 5,000개 이하로 나눈 요청을 차례로 보내세요.
옵션 일괄 추가
기존 타겟팅에 옵션을 추가합니다. 항목마다 다른 타겟팅에 추가할 수 있습니다.요청
요청 본문
성공한 항목의
data에는 새로 만든 옵션 객체가 들어 있습니다.
요청 예시
응답 예시
타겟팅에 “Sports”라는 이름의 옵션이 이미 있어서 세 번째 항목만 실패합니다.옵션 일괄 수정
옵션을 수정합니다. 항목마다 다른 옵션을 수정할 수 있습니다.요청
요청 본문
- 요청 하나에 같은
_id는 한 번만 넣을 수 있습니다._id가 겹치면 요청 전체가400으로 실패하므로, 한 옵션의 변경 내용은 모두 한 항목에 담으세요. - 항목은 각각 따로 적용되며 동시에 처리될 수 있습니다. 그래도 결과는 요청 순서대로 반환됩니다.
- 앞 항목이 이름을 바꾸면서 비운 이름은 같은 요청의 뒤 항목에서 쓸 수 있습니다.
data에는 수정된 옵션 객체가 들어 있습니다.
요청 예시
응답 예시
옵션 일괄 삭제
옵션을 삭제합니다. ID마다 옵션 삭제와 같은 규칙이 적용됩니다.요청
요청 본문
성공한 항목의
data에는 삭제한 옵션의 ID가 들어 있습니다.
요청 예시
응답 예시
컨텍스트 ID 규칙
contexts, children, add, remove, set으로 보내는 모든 컨텍스트 ID에 다음 규칙이 적용됩니다.
요청 안의 컨텍스트 ID 중 하나라도 이 규칙을 어기면 요청 전체가
400으로 실패합니다.
같은 컨텍스트 ID를 여러 옵션에 넣을 수 있습니다. 그 컨텍스트 ID가 담긴 광고 요청은 해당 옵션 모두에 매칭됩니다. 단, 옵션 그룹 자체 컨텍스트 ID는 프로젝트 안 다른 옵션 그룹의 자체 컨텍스트 ID와 겹칠 수 없습니다. 제약 사항을 참고하세요.
컨텍스트 ID는 개수와 크기에도 한도가 있습니다.
변경 후 옵션이나 프로젝트가 한도를 넘게 되면
400 TARGETING_CONTEXT_LIMIT_EXCEEDED로 실패합니다. 이 한도는 변경으로 옵션이나 프로젝트가 커질 때만 확인하므로, 컨텍스트 ID를 삭제하기만 하는 변경은 막히지 않습니다. 컨텍스트 ID가 10,000개를 넘는 요청은 전체가 400으로 실패합니다. 전체 한도는 한도를 참고하세요.
컨텍스트 ID 갱신 방법
컨텍스트 ID는 옵션 수정이나 옵션 일괄 수정에서add/remove 또는 set으로 바꿉니다.
add, remove, set은 같은 요청을 다시 보내도 결과가 같으므로, 타임아웃이 난 뒤 다시 보내도 됩니다. 재시도와 중복 요청을 참고하세요.
컨텍스트 ID가 10,000개를 넘는 경우
요청 하나에는 컨텍스트 ID를 10,000개까지만 담을 수 있으므로, 그보다 긴 목록은 set 요청 하나로 바꿀 수 없습니다. 대신 다음 방법으로 옵션을 동기화하세요.
- 옵션 조회에서
offset과limit으로 페이지를 넘기며 옵션의 현재 컨텍스트 ID를 읽습니다. - 가지고 있는 목록과 비교합니다.
- 차이만
add와remove로, 요청당 컨텍스트 ID 10,000개까지 담아 하나씩 차례로 보냅니다.
set 요청으로 나눠 보내지 마세요. set은 매번 컨텍스트 ID 전체를 바꾸므로, 뒤의 set이 앞선 요청에서 넣은 컨텍스트 ID를 지웁니다. set 한 번 뒤에 add 요청을 이어 보내더라도 요청과 요청 사이에는 옵션에 목록의 일부만 남아 있고, 광고 송출에 그 일부 목록이 반영될 수 있습니다.
변경 사항은 잠시 후 광고 송출에 반영됩니다. 변경 사항이 로드됐는지 확인하는 방법은 변경 반영 시점을 참고하세요.
광고 상품과 캠페인에 미치는 영향
광고 상품과 캠페인은 옵션을 선택해 사용하므로, 옵션을 바꾸면 캠페인이 노출되는 곳도 바뀔 수 있습니다. 컨텍스트 ID를 추가하거나 삭제하면 그 옵션을 포함하거나 제외한 캠페인이 노출될 수 있는 페이지가 바뀝니다. 새 최상위 옵션 최상위 옵션(일반 옵션 또는 옵션 그룹)을 추가하면, 그 타겟팅을 설정해 둔 광고 상품에도 새 옵션이 추가됩니다.- 광고 상품이 타겟팅의 현재 최상위 옵션을 모두 필수 포함으로 설정했다면 새 옵션도 필수 포함으로 설정되고, 그 상품의 종료되지 않은 캠페인에도 포함됩니다. 필수 제외도 같은 방식으로 동작합니다.
- 그 밖의 경우에는 새 옵션이 광고주가 선택할 수 있는 옵션으로 광고 상품에 추가됩니다. 필수가 아닌 최상위 옵션이 있거나, 필수 포함과 필수 제외가 섞여 있는 경우가 여기에 해당합니다. 캠페인은 바뀌지 않습니다.
400 AD_PRODUCT_TARGETING_POLICY_LIMIT_EXCEEDED로 실패합니다.
일괄 요청에서는 그 타겟팅에 추가하는 새 최상위 옵션이 모두 실패하고, 나머지 항목은 적용됩니다. 콘솔에서 광고 상품의 필수 옵션을 줄인 뒤 요청을 다시 보내세요. 옵션 그룹을 삭제하거나 하위 옵션을 분리할 때도 옵션 그룹의 설정이 하위 옵션으로 복사되므로 같은 한도가 적용됩니다.
옵션 삭제
타겟팅 삭제와 달리, 옵션은 캠페인이 사용 중이어도 삭제가 막히지 않습니다. 삭제한 옵션은 그 옵션을 선택한 캠페인에서 빠집니다. 캠페인이 그 타겟팅에서 포함한 옵션이 이 옵션 하나뿐이었다면, 캠페인은 더 이상 그 타겟팅의 컨텍스트 ID를 요구하지 않습니다. 캠페인은 멈추지 않고, 다른 컨텍스트 ID가 담긴 광고 요청이나 컨텍스트 ID가 없는 광고 요청에도 노출될 수 있습니다.
옵션을 삭제하기 전에 캠페인이 그 옵션을 사용하는지 확인하세요. 콘솔에서 캠페인이 예약된 옵션은 운영중 상태로 표시됩니다. 타겟팅 관리하기를 참고하세요. 옵션을 삭제하기 전에 해당 캠페인을 변경하거나 종료하세요.
컨텍스트 ID 제외
옵션에는 매칭할 컨텍스트 ID만 나열합니다. “이 옵션에 없는 컨텍스트 ID”라는 조건은 없습니다. 특정 페이지에 광고가 노출되지 않게 하려면, 그 페이지의 컨텍스트 ID를 옵션에 넣고 광고 상품이나 캠페인에서 그 옵션을 제외하세요(예: 광고 상품에서 필수 제외로 설정). 나머지 컨텍스트 ID를 모두 나열한 옵션을 만들지 마세요.