광고 요청
동일한 엔드포인트에서 제품 광고와 배너가 생성되면 게재위치의 컨텍스트가 동일한 경우 배너와 동일한 요청으로 제품 광고를 요청할 수 있습니다.
수신할 수 있는 제품 광고의 수는 maxNumberOfAds
매개 변수를 정의하여 구성됩니다. 수신할 수 있는 배너 광고의 수는 고유한 slotId당 maxNumberOfAds
속성으로 구성할 수 있습니다.
모든 배너 광고 요청에는 요청하는 광고에 대한 contentStandardId
및 bannerSlots
이 필요합니다. 또한 배너 요청에는 다음이 포함되어야 합니다. 컨텍스트의 customerId
,sessionId
,placement
, catalogId
.
여기에 몇 가지 변경 사항이 있음을 알 수 있습니다!
CitrusAd 배너 광고 요청 방법이 변경되었습니다. 이미 통합되어 있는 경우
bannerSlotIds
속성을 사용하여 요청할 수 있으며 이는 새로운bannerSlots
기능으로 대체되었습니다. 이 페이지 하단에bannerSlotIds
속성으로 광고를 요청하는 방법이 안내되어 있습니다.이
bannerSlots
기능은 2022년 9월에 출시되었습니다.
검색 게재위치
검색 게재위치는 일반적으로 요청하기 가장 쉬운 항목으로 아래 예와 같이 요청에 searchTerm
을 지정해야 합니다.
POST $BASE_URL/v1/ads/generate HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
{
"customerId": "wertg5432a",
"sessionId": "ec9-4e07-881d-3e9",
"dtmCookieId": "AAAF8xLBTA968AB6TOthAAAAAAE",
"placement": "search",
"catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
"searchTerm": "chocolate",
"options": {
"filterMode": "AndOr"
},
"contentStandardId": "fec2ab89-7a29-42b5-b58a-5675688b52d9",
"bannerSlots": [
{
"slotId": "<SLOT_ID>",
"maxNumberOfAds": 1
},
{
"slotId": "<SLOT_ID>",
"maxNumberOfAds": 2
}
],
"maxNumberOfAds": 3
}
카테고리 게재위치
카테고리 게재위치의 경우 요청에 productFilters
가 지정되어야 합니다. 아래 예시는 카테고리 필터를 전송할 위치입니다.
POST $BASE_URL/v1/ads/generate HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
{
"customerId": "wertg5432a",
"sessionId": "ec9-4e07-881d-3e9",
"dtmCookieId": "AAAF8xLBTA968AB6TOthAAAAAAE",
"placement": "category",
"catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
"productFilters": [
["category:Cupboard/Snacks"]
],
"options": {
"filterMode": "AndOr"
},
"contentStandardId": "fec2ab89-7a29-42b5-b58a-5675688b52d9",
"bannerSlots": [
{
"slotId": "<SLOT_ID>",
"maxNumberOfAds": 1
},
{
"slotId": "<SLOT_ID>",
"maxNumberOfAds": 2
}
],
"maxNumberOfAds": 3
}
추가 카테고리가 검토되므로 API 호출을 적절하게 업데이트해야 합니다.
교차 판매 카테고리 게재위치
교차 판매 카테고리 게재위치는 카테고리 게재위치와 요청 방식이 매우 유사합니다. 귀하는 광고 요청 시 정확한 카테고리를 지정하고 싶을 것입니다. 다음은 일반적으로 현재 사용 중인 페이지입니다. 요청의 productFilters
에 카테고리를 지정하십시오. 아래 예시는 카테고리 필터를 전송할 위치를 표시합니다.
POST $BASE_URL/v1/ads/generate HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
{
"customerId": "wertg5432a",
"sessionId": "ec9-4e07-881d-3e9",
"dtmCookieId": "AAAF8xLBTA968AB6TOthAAAAAAE",
"placement": "category-cross-sell",
"catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
"productFilters": [
["category:Cupboard/Snacks"]
],
"options": {
"filterMode": "AndOr"
},
"contentStandardId": "fec2ab89-7a29-42b5-b58a-5675688b52d9",
"bannerSlots": [
{
"slotId": "<SLOT_ID>",
"maxNumberOfAds": 1
},
{
"slotId": "<SLOT_ID>",
"maxNumberOfAds": 2
}
],
"maxNumberOfAds": 3
}
추가 카테고리가 검토되므로 API 호출을 적절하게 업데이트해야 합니다.
오가닉 및 교차 판매 카테고리 타게팅을 병합하시겠습니까?
오가닉 및 교차 판매 카테고리 광고 요청을 단일 게재위치로 병합하려면 고객에게 병합 및 전달 로직을 실행해야 합니다. CitrusAd에서 자세히 상담해 드리나 이는 통합 담당자의 직무입니다.
일반적으로 오가닉 게재위치 후에 오가닉 카테고리 광고, 위치 및 카테고리 교차 판매 광고를 표시하는 것이 좋습니다.
광범위 일치 게재위치
홈 또는 체크아웃 페이지 등의 광범위한 게재위치에서는 요청에 productFilters
를 지정할 필요가 없습니다. 소매업체가 지정하려는 모든 필터(프로모션, 신상품 등)는 CitrusAd가 요구 사항을 충족하는 광고만 제공하도록 productFilters
에 지정될 수 있습니다. 아래 예를 참조하십시오.
POST $BASE_URL/v1/ads/generate HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
{
"customerId": "wertg5432a",
"sessionId": "ec9-4e07-881d-3e9",
"dtmCookieId": "AAAF8xLBTA968AB6TOthAAAAAAE",
"placement": "home",
"catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
"productFilters": [
[]
],
"options": {
"filterMode": "AndOr"
},
"contentStandardId": "fec2ab89-7a29-42b5-b58a-5675688b52d9",
"bannerSlots": [
{
"slotId": "<SLOT_ID>",
"maxNumberOfAds": 1
},
{
"slotId": "<SLOT_ID>",
"maxNumberOfAds": 2
}
],
"maxNumberOfAds": 3
}
요청 개선
사용자 경험을 향상시키기 위해 아래의 개선사항을 고려할 것을 추천합니다.
필터링된 검색
고객이 검색을 필터링하는 경우 컨텍스트를 확장하여 productFilters
를 제공할 수 있습니다. 아래는 고객이 "찬장" 및 식이 제한 "글루텐 프리" 카테고리로 필터링하는 예시입니다. 이와 동일한 방식을 모든 카테고리 또는 광범위한 일치 게재위치에 적용할 수 있습니다.
POST $BASE_URL/v1/ads/generate HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
{
"customerId": "wertg5432a",
"sessionId": "ec9-4e07-881d-3e9",
"dtmCookieId": "AAAF8xLBTA968AB6TOthAAAAAAE",
"placement": "search",
"catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
"searchTerm": "chocolate",
"productFilters": [
["category:Cupboard"],["dietary:Gluten-free"]
],
"options": {
"filterMode": "AndOr"
},
"contentStandardId": "fec2ab89-7a29-42b5-b58a-5675688b52d9",
"bannerSlots": [
{
"slotId": "<SLOT_ID>",
"maxNumberOfAds": 1
},
{
"slotId": "<SLOT_ID>",
"maxNumberOfAds": 2
}
],
"maxNumberOfAds": 3
}
위치별 필터링
카탈로그에서 위치 필터를 동기화하는 경우 아래 예와 같이 컨텍스트를 확장하여 productFilters
에서 고객의 스토어 위치를 제공할 수 있습니다.
POST $BASE_URL/v1/ads/generate HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
{
"customerId": "wertg5432a",
"sessionId": "ec9-4e07-881d-3e9",
"dtmCookieId": "AAAF8xLBTA968AB6TOthAAAAAAE",
"placement": "search",
"catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
"searchTerm": "chocolate",
"productFilters": [
["category:Cupboard"],["dietary:Gluten-free"],["location:Westenbury"]
],
"options": {
"filterMode": "AndOr"
},
"contentStandardId": "fec2ab89-7a29-42b5-b58a-5675688b52d9",
"bannerSlots": [
{
"slotId": "<SLOT_ID>",
"maxNumberOfAds": 1
},
{
"slotId": "<SLOT_ID>",
"maxNumberOfAds": 2
}
],
"maxNumberOfAds": 3
}
bannerSlotIds 매개 변수(레거시) 사용
이미 통합되어 있는 경우 bannerSlotIds
로( bannerSlots
대신) 광고를 요청할 수 있습니다. 이는 광고가 필요한 배너 슬롯을 지정하는 문자열 배열로 동일한 배너 슬롯에 대해 둘 이상의 광고를 요청할 수 있도록 기능이 개선되었습니다. 이를 사용하려면 위에 안내된 bannerSlots
방법에 대한 통합을 향상해야 합니다.
POST $BASE_URL/v1/ads/generate HTTP/1.1
accept: application/json
content-type: application/json
Authorization: Basic <API_KEY>
{
"customerId": "wertg5432a",
"sessionId": "ec9-4e07-881d-3e9",
"dtmCookieId": "AAAF8xLBTA968AB6TOthAAAAAAE",
"placement": "search",
"catalogId": "628dbe95-2ec9-4e07-881d-3e9f92ab2e0b",
"searchTerm": "chocolate",
"productFilters": [
["category:Cupboard"],["dietary:Gluten-free"],["location:Westenbury"]
],
"options": {
"filterMode": "AndOr"
},
"contentStandardId": "fec2ab89-7a29-42b5-b58a-5675688b52d9",
"bannerSlotIds": [
"<SLOT_ID>","<SLOT_ID>"
],
"maxNumberOfAds": 3
}
배너 광고 반응
모든 반응은 동일한 JSON 형식을 따릅니다. 제품 광고를 요청하는 경우 아래 예시와 같이 ads
배열이 채워집니다. 배너광고는 banners
배열에 포함되므로 광고가 있는 배너 슬롯에 대해서만 콘텐츠가 반환됩니다.
{
"ads": [
{
"id": "display__QqHaKRrKlFm1Wxr9c_DXJN4HSE3NzMzNjM2",
"gtin": "7733636",
"discount": {
"amount": 0,
"minPrice": 0,
"maxPerCustomer": 0
},
"expiry": "2021-05-12T04:17:50.400902957Z",
"position": 1
},
{
"id": "display_NzsHqP0_iQedlo9VnrO2vqkwi_k3NzMzNjI4",
"gtin": "7733628",
"discount": {
"amount": 0,
"minPrice": 0,
"maxPerCustomer": 0
},
"expiry": "2021-05-12T04:17:50.400908257Z",
"position": 2
}
],
"banners": [
{
"id": "banner_XeemTeq59HapGSp4vccOYfBq_yvc3zMzNjM2",
"contentStandardId": "fec2ab89-7a29-42b5-b58a-5675688b52d9",
"slotId": "<SLOT_ID>",
"imageUrl": "https://cdn.flavedo.io/s/-oW-C3cEViSSO2krWkwOBUXOhvUdhHOySx-YQLGZ1lA=",
"linkUrl": "https://www.retailer.com/link",
"altText": "Your local ice cream",
"text": "",
"gtins": [
"7733628",
"7714107",
"7163379",
"7733636",
"7733657"
],
"expiry": "2021-05-17T01:49:17.75503253Z",
"tags": {},
"position": 1
},
{
"id": "banner_A0KA6mNmFs6sZPb_FvwWe5k6x6c3NzMzNjM3",
"contentStandardId": "fec2ab89-7a29-42b5-b58a-5675688b52d9",
"slotId": "<SLOT_ID>",
"imageUrl": "https://cdn.flavedo.io/s/-oW-dfsgrerWkwOBUXOhvUdhHOySx-YQLreGZ1lw=",
"linkUrl": "https://www.retailer.com/link",
"altText": "Advertisement for pet food.",
"text": "",
"gtins": [
"16309011",
"57312011",
"65250011"
],
"expiry": "2021-05-17T01:49:17.75503253Z",
"tags": {},
"position": 2
}
],
"products": [],
"memoryToken":"85ykKVv-luDHMWLZx2d6xcPq6sF7CgkJCSJDb3VudGVyIjogIjIiLAoJCQkiQWRzIjogWwoJCQkJImRpc3BsYXlfV05VV0NwQkRKMUpKNm5wdVZSVExvOU40TUxzNE1UWTBOemt5TWc9PSIsCgkJCQkiZGlzcGxheV9MME5NUHRxNmdCcVFvREJOd3J0dE9UTGJoWk0xTVRFeU9UYzRPUT09IiwKCQkJCSJkaXNwbGF5XzlCcEpmdUpaWk9VXzgyaWpFM3VCczgxd3VVczRNekkwTnpVeE5nPT0iLAoJCQkJImRpc3BsYXlfcW1VU1p4TkpMQ0lqeWQwdTFJRDk0RmxVZ0pnNE16STBOelV4Tnc9PSIsCgkJCQkiZGlzcGxheV9oeHlFZktCUnRrNWlxMThMQzE1SDJHcEN3QjgxTVRFeU9UYzVNQT09IiwKCQkJCSJkaXNwbGF5X1NkcjFEcU5aUEFtcGh0Q1FIUndoYUxFT1B0RXhNamsxT1RJNE5BPT0iLAoJCQkJImRpc3BsYXlfeVlSai1qV2Ntc2ozNzhrel9PMm0yOVlwTjhJeE5EazNPRE00TXc9PSIsCgkJCQkiZGlzcGxheV9Xbm9NZGZuLTRTVmhxcF9xQzVvLWxoT0paNm8xTkRJeE1UUTROdz09IgoJCQldLAoJCQkiVFRMIjogMTYyODk4NTYwMAoJCX0="
}
다음 id
필드는 노출 수 및 클릭 수 보고에 사용되는 광고 ID입니다. 각 문자열에 대한 자세한 정보는 참조를 확인하십시오.
마켓플레이스 sellerId
마켓플레이스 셀러의 경우 반응에 광고당 추가 sellerId
가 표시될 수 있습니다. 이것은 실행 중인 캠페인을 소유한 팀이 UI에 구성된 Seller Id를 가지고 있는 경우에만 나타납니다. 아래는 SellerId가 있는 광고와 SellerId가 없는 광고의 예시입니다.
{
"ads": [
{
"id": "display_QqHaKRrKlFm1Wxr9c_DXJN4HSE3NzMzNjM2",
"gtin": "7733636",
"discount": {
"amount": 0,
"minPrice": 0,
"maxPerCustomer": 0
},
"expiry": "2021-05-12T04:17:50.400902957Z",
"position": 1
},
{
"id": "display_NzsHqP0_iQedlo9VnrO2vqkwi_k3NzMzNjI4",
"gtin": "7733628",
"sellerId": "2834-ascre-2wcr4",
"discount": {
"amount": 0,
"minPrice": 0,
"maxPerCustomer": 0
},
"expiry": "2021-05-12T04:17:50.400908257Z",
"position": 2
}
],
"banners": [
{
"id": "banner_XeemTeq59HapGSp4vccOYfBq_yvc3zMzNjM2",
"contentStandardId": "fec2ab89-7a29-42b5-b58a-5675688b52d9",
"slotId": "<SLOT_ID>",
"sellerId": "43d-w4-2wcr4",
"imageUrl": "https://cdn.flavedo.io/s/-oW-C3cEViSSO2krWkwOBUXOhvUdhHOySx-YQLGZ1lA=",
"linkUrl": "https://www.retailer.com/link",
"altText": "Your local ice cream",
"text": "",
"gtins": [
"7733628",
"7714107",
"7163379",
"7733636",
"7733657"
],
"expiry": "2021-05-17T01:49:17.75503253Z",
"tags": {},
"position": 1
},
{
"id": "banner_A0KA6mNmFs6sZPb_FvwWe5k6x6c3NzMzNjM3",
"contentStandardId": "fec2ab89-7a29-42b5-b58a-5675688b52d9",
"slotId": "<SLOT_ID>",
"imageUrl": "https://cdn.flavedo.io/s/-oW-dfsgrerWkwOBUXOhvUdhHOySx-YQLreGZ1lw=",
"linkUrl": "https://www.retailer.com/link",
"altText": "Advertisement for pet food.",
"text": "",
"gtins": [
"16309011",
"57312011",
"65250011"
],
"expiry": "2021-05-17T01:49:17.75503253Z",
"tags": {},
"position": 2
}
],
"products": [],
"memoryToken":"85ykKVv-luDHMWLZx2d6xcPq6sF7CgkJCSJDb3VudGVyIjogIjIiLAoJCQkiQWRzIjogWwoJCQkJImRpc3BsYXlfV05VV0NwQkRKMUpKNm5wdVZSVExvOU40TUxzNE1UWTBOemt5TWc9PSIsCgkJCQkiZGlzcGxheV9MME5NUHRxNmdCcVFvREJOd3J0dE9UTGJoWk0xTVRFeU9UYzRPUT09IiwKCQkJCSJkaXNwbGF5XzlCcEpmdUpaWk9VXzgyaWpFM3VCczgxd3VVczRNekkwTnpVeE5nPT0iLAoJCQkJImRpc3BsYXlfcW1VU1p4TkpMQ0lqeWQwdTFJRDk0RmxVZ0pnNE16STBOelV4Tnc9PSIsCgkJCQkiZGlzcGxheV9oeHlFZktCUnRrNWlxMThMQzE1SDJHcEN3QjgxTVRFeU9UYzVNQT09IiwKCQkJCSJkaXNwbGF5X1NkcjFEcU5aUEFtcGh0Q1FIUndoYUxFT1B0RXhNamsxT1RJNE5BPT0iLAoJCQkJImRpc3BsYXlfeVlSai1qV2Ntc2ozNzhrel9PMm0yOVlwTjhJeE5EazNPRE00TXc9PSIsCgkJCQkiZGlzcGxheV9Xbm9NZGZuLTRTVmhxcF9xQzVvLWxoT0paNm8xTkRJeE1UUTROdz09IgoJCQldLAoJCQkiVFRMIjogMTYyODk4NTYwMAoJCX0="
}
이 섹션의 문자열에 대해 확실하지 않은 경우 참조 페이지를 방문하십시오.
타사 추적 태그
배너 광고의 경우, CitrusAd는 타사의 추적 태그를 소매업체에 전달하는 것을 지원합니다. 이러한 태그는 광고주가 실적을 입증하기 위해 신뢰할 수 있는 타사를 통해 사용됩니다.
CitrusAd는 아래의 추적 태그를 지원합니다.
- DoubleVerify
- DCM 클릭
- DCM 노출 수
- IAS
캠페인에 추적 태그가 구성되어 있는 경우 아래 tags
개체에 관련 필드로 표시됩니다. 캠페인에 태그가 구성되어 있지 않은 경우 tags
개체는 비어 있게 됩니다.
{
"ads": [],
"banners": [
{
"id": "banner_XeemTeq59HapGSp4vccOYfBq_yvc3zMzNjM2",
"contentStandardId": "fec2ab89-7a29-42b5-b58a-5675688b52d9",
"slotId": "<SLOT_ID>",
"imageUrl": "https://cdn.flavedo.io/s/-oW-C3cEViSSO2krWkwOBUXOhvUdhHOySx-YQLGZ1lA=",
"linkUrl": "https://www.retailer.com/link",
"altText": "Your local ice cream",
"text": "",
"gtins": [
"7733628",
"7714107",
"7163379",
"7733636",
"7733657"
],
"expiry": "2021-05-17T01:49:17.75503253Z",
"tags": {
"dv": "<script src=\"https://cdn.doubleverify.com/dvtp_src.js?ctx=919421&cmp=1074060503&sid=1073907024&plc=1075810393&adsrv=115&btreg=&btadsrv=&crt=&tagtype=&dvtagver=6.1.src\" type=\"text/javascript\"></script>",
"dcmClick": "<script ..../>",
"dcmImpression": "<script.... />",
"ias": "<script.... />" }
}
],
"products": [],
"memoryToken":"85ykKVv-luDHMWLZx2d6xcPq6sF7CgkJCSJDb3VudGVyIjogIjIiLAoJCQkiQWRzIjogWwoJCQkJImRpc3BsYXlfV05VV0NwQkRKMUpKNm5wdVZSVExvOU40TUxzNE1UWTBOemt5TWc9PSIsCgkJCQkiZGlzcGxheV9MME5NUHRxNmdCcVFvREJOd3J0dE9UTGJoWk0xTVRFeU9UYzRPUT09IiwKCQkJCSJkaXNwbGF5XzlCcEpmdUpaWk9VXzgyaWpFM3VCczgxd3VVczRNekkwTnpVeE5nPT0iLAoJCQkJImRpc3BsYXlfcW1VU1p4TkpMQ0lqeWQwdTFJRDk0RmxVZ0pnNE16STBOelV4Tnc9PSIsCgkJCQkiZGlzcGxheV9oeHlFZktCUnRrNWlxMThMQzE1SDJHcEN3QjgxTVRFeU9UYzVNQT09IiwKCQkJCSJkaXNwbGF5X1NkcjFEcU5aUEFtcGh0Q1FIUndoYUxFT1B0RXhNamsxT1RJNE5BPT0iLAoJCQkJImRpc3BsYXlfeVlSai1qV2Ntc2ozNzhrel9PMm0yOVlwTjhJeE5EazNPRE00TXc9PSIsCgkJCQkiZGlzcGxheV9Xbm9NZGZuLTRTVmhxcF9xQzVvLWxoT0paNm8xTkRJeE1UUTROdz09IgoJCQldLAoJCQkiVFRMIjogMTYyODk4NTYwMAoJCX0="
}
CitrusAd는 서버와 서버 간의 통합이므로 타사의 추적 태그는 소매업체가 추가로 개발해야 합니다. 이 기능을 이용하려면 기술 계정 관리자에게 문의하십시오.