การขอโฆษณา
คำขอโฆษณาผลิตภัณฑ์ทั้งหมดต้องมี placement
และ catalogId
และ maxNumberOfAds
คุณต้องการที่จะแสดงต่อลูกค้า นอกจากนี้คำขอของคุณยังควรมี customerId
และ sessionId
.
ตำแหน่งการค้นหา
ตำแหน่งการค้นหามักจะง่ายที่สุดที่จะขอ พวกเขาต้องการ 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"
},
"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"
},
"maxNumberOfAds": 3
}
เนื่องจากมีการอ่านหมวดหมู่เพิ่มเติม คุณต้องอัปเดตการเรียก API ของคุณตามลำดับ
แนวทางปฏิบัติที่ดีที่สุด
แนวทางปฏิบัติที่ดีที่สุดคือส่งหมวดหมู่ระดับต่ำสุดไปยังคำขอโฆษณาของคุณไปยัง CitrusAd ขณะที่ลูกค้าเรียกดูหมวดหมู่ที่ลึกกว่า
แทนที่จะระบุคำขอแบบลูกโซ่ที่ระดับ 3 ของ L1 + L2 + L3 คุณจะระบุเฉพาะหมวดหมู่ L3 เท่านั้น
ตําแหน่งหมวดหมู่การขายพ่วง
ตำแหน่งหมวดหมู่ขายพ่วงมีคำขอที่คล้ายกันมากกับตำแหน่งหมวดหมู่ คุณจะต้องระบุหมวดหมู่ที่แน่นอนที่คุณต้องการขอโฆษณา โดยทั่วไปจะเป็นหน้าที่คุณกำลังดูอยู่ ระบุหมวดหมู่ใน 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"
},
"maxNumberOfAds": 3
}
เนื่องจากมีการอ่านหมวดหมู่เพิ่มเติม คุณต้องอัปเดตการเรียก API ของคุณตามลำดับ
การรวมการกำหนดเป้าหมายตามหมวดหมู่ทั่วไปและการขายต่อเนื่องเข้าด้วยกันใช่หรือไม่
หากคุณต้องการรวมคำขอโฆษณาหมวดหมู่ทั่วไปและแบบขายพ่วงไว้ในตำแหน่งเดียว คุณจะต้องใช้ตรรกะการรวมและการจัดส่งกับลูกค้าของคุณ นี่เป็นความรับผิดชอบของผู้รวมระบบ แม้ว่า CitrusAd ยินดีที่จะให้คำปรึกษา
โดยทั่วไป เราขอแนะนำให้คุณแสดงโฆษณาหมวดหมู่ทั่วไป และโฆษณาขายพ่วงตำแหน่งและหมวดหมู่หลังจากตำแหน่งทั่วไป
ตําแหน่งการทํางานแบบกว้าง
ตำแหน่งกว้างๆ เช่น หน้าแรกหรือหน้าชำระเงิน ไม่จำเป็นต้องมี productFilters
ระบุไว้ในคำขอ ตัวกรองใดๆ ที่ผู้ค้าปลีกต้องการระบุ (ตามข้อเสนอ ใหม่ ฯลฯ) สามารถระบุได้ใน productFilters
เพื่อให้แน่ใจว่า CitrusAd จะแสดงโฆษณาภายในข้อกําหนดเท่านั้น
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"
},
"maxNumberOfAds": 3
}
ขอการปรับปรุง
สำหรับตำแหน่งการค้นหา หมวดหมู่ และการทำงานแบบกว้าง เราขอแนะนำให้คุณพิจารณาการปรับปรุงด้านล่างเพื่อปรับปรุงประสบการณ์ผู้ใช้ของคุณ
แบ่งหน้าคำขอ
เมื่อสร้างโฆษณาผลิตภัณฑ์ คุณจะได้รับ memoryToken
ที่สามารถส่งในคำขอที่ตามมาเพื่อยกเว้นโฆษณาที่แสดงก่อนหน้านี้ จากนั้นคุณสามารถส่ง memoryToken
ในคำขอโฆษณาที่ตามมา และ CitrusAd จะแยกโฆษณาที่แสดงก่อนหน้านี้สำหรับบริบทเดียวกันออกจากการตอบกลับโฆษณาของเรา
โปรดตรวจสอบ การแบ่งหน้า ก่อนนำไปใช้
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",
"memoryToken":"85ykKVv-luDHMWLZx2d6xcPq6sF7CgkJCSJDb3VudGVyIjogIjIiLAoJCQkiQWRzIjogWwoJCQkJImRpc3BsYXlfV05VV0NwQkRKMUpKNm5wdVZSVExvOU40TUxzNE1UWTBOemt5TWc9PSIsCgkJCQkiZGlzcGxheV9MME5NUHRxNmdCcVFvREJOd3J0dE9UTGJoWk0xTVRFeU9UYzRPUT09IiwKCQkJCSJkaXNwbGF5XzlCcEpmdUpaWk9VXzgyaWpFM3VCczgxd3VVczRNekkwTnpVeE5nPT0iLAoJCQkJImRpc3BsYXlfcW1VU1p4TkpMQ0lqeWQwdTFJRDk0RmxVZ0pnNE16STBOelV4Tnc9PSIsCgkJCQkiZGlzcGxheV9oeHlFZktCUnRrNWlxMThMQzE1SDJHcEN3QjgxTVRFeU9UYzVNQT09IiwKCQkJCSJkaXNwbGF5X1NkcjFEcU5aUEFtcGh0Q1FIUndoYUxFT1B0RXhNamsxT1RJNE5BPT0iLAoJCQkJImRpc3BsYXlfeVlSai1qV2Ntc2ozNzhrel9PMm0yOVlwTjhJeE5EazNPRE00TXc9PSIsCgkJCQkiZGlzcGxheV9Xbm9NZGZuLTRTVmhxcF9xQzVvLWxoT0paNm8xTkRJeE1UUTROdz09IgoJCQldLAoJCQkiVFRMIjogMTYyODk4NTYwMAoJCX0=",
"options": {
"filterMode": "AndOr"
},
"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"
},
"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"
},
"maxNumberOfAds": 3
}
การตอบสนองต่อโฆษณาผลิตภัณฑ์
การตอบกลับโฆษณาผลิตภัณฑ์ทั้งหมดเป็นไปตามรูปแบบ JSON เดียวกัน โฆษณาผลิตภัณฑ์จะถูกส่งกลับใน ads
อาร์เรย์ เหมือนตัวอย่างด้านล่าง:
{
"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
},
{
"id": "display_xNeShqidaMuEqiJ0zNdt-Gzygjs3NzE0MTA3",
"gtin": "7714107",
"discount": {
"amount": 0,
"minPrice": 0,
"maxPerCustomer": 0
},
"expiry": "2021-05-12T04:17:50.400912929Z",
"position": 3
},
{
"id": "display_3rGiryPskhQusmsf43nghbQwnqo3NzMzNjU3",
"gtin": "7733657",
"discount": {
"amount": 0,
"minPrice": 0,
"maxPerCustomer": 0
},
"expiry": "2021-05-12T04:17:50.400917769Z",
"position": 4
}
],
"banners": [],
"products": [],
"memoryToken":"85ykKVv-luDHMWLZx2d6xcPq6sF7CgkJCSJDb3VudGVyIjogIjIiLAoJCQkiQWRzIjogWwoJCQkJImRpc3BsYXlfV05VV0NwQkRKMUpKNm5wdVZSVExvOU40TUxzNE1UWTBOemt5TWc9PSIsCgkJCQkiZGlzcGxheV9MME5NUHRxNmdCcVFvREJOd3J0dE9UTGJoWk0xTVRFeU9UYzRPUT09IiwKCQkJCSJkaXNwbGF5XzlCcEpmdUpaWk9VXzgyaWpFM3VCczgxd3VVczRNekkwTnpVeE5nPT0iLAoJCQkJImRpc3BsYXlfcW1VU1p4TkpMQ0lqeWQwdTFJRDk0RmxVZ0pnNE16STBOelV4Tnc9PSIsCgkJCQkiZGlzcGxheV9oeHlFZktCUnRrNWlxMThMQzE1SDJHcEN3QjgxTVRFeU9UYzVNQT09IiwKCQkJCSJkaXNwbGF5X1NkcjFEcU5aUEFtcGh0Q1FIUndoYUxFT1B0RXhNamsxT1RJNE5BPT0iLAoJCQkJImRpc3BsYXlfeVlSai1qV2Ntc2ozNzhrel9PMm0yOVlwTjhJeE5EazNPRE00TXc9PSIsCgkJCQkiZGlzcGxheV9Xbm9NZGZuLTRTVmhxcF9xQzVvLWxoT0paNm8xTkRJeE1UUTROdz09IgoJCQldLAoJCQkiVFRMIjogMTYyODk4NTYwMAoJCX0="
}
AD_ID id
ฟิลด์ id คือ ID โฆษณาของคุณที่ใช้ในรายงานการแสดงผลและการคลิก AD_ID position
ฟิลด์กำหนดตำแหน่งในเพย์โหลด CitrusAd โปรดดูข้อมูลอ้างอิงสำหรับข้อมูลเพิ่มเติมเกี่ยวกับแต่ละสตริง
คุณควรอ่านและรักษา
position
เพื่อให้แน่ใจว่าตำแหน่งผู้เช่าคงที่ปรากฏอย่างถูกต้อง
รหัสผู้ขายในตลาด
หากเป็นผู้ขายในตลาด คุณอาจเห็นเพิ่มเติม sellerId
ต่อโฆษณาในการตอบกลับ ซึ่งจะปรากฏขึ้นก็ต่อเมื่อทีมที่เป็นเจ้าของแคมเปญที่กำลังให้บริการมีรหัสผู้ขายที่กำหนดค่าไว้ใน UI ตัวอย่างด้านล่างแสดงโฆษณาหนึ่งรายการที่มี 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": [],
"products": [],
"memoryToken":"85ykKVv-luDHMWLZx2d6xcPq6sF7CgkJCSJDb3VudGVyIjogIjIiLAoJCQkiQWRzIjogWwoJCQkJImRpc3BsYXlfV05VV0NwQkRKMUpKNm5wdVZSVExvOU40TUxzNE1UWTBOemt5TWc9PSIsCgkJCQkiZGlzcGxheV9MME5NUHRxNmdCcVFvREJOd3J0dE9UTGJoWk0xTVRFeU9UYzRPUT09IiwKCQkJCSJkaXNwbGF5XzlCcEpmdUpaWk9VXzgyaWpFM3VCczgxd3VVczRNekkwTnpVeE5nPT0iLAoJCQkJImRpc3BsYXlfcW1VU1p4TkpMQ0lqeWQwdTFJRDk0RmxVZ0pnNE16STBOelV4Tnc9PSIsCgkJCQkiZGlzcGxheV9oeHlFZktCUnRrNWlxMThMQzE1SDJHcEN3QjgxTVRFeU9UYzVNQT09IiwKCQkJCSJkaXNwbGF5X1NkcjFEcU5aUEFtcGh0Q1FIUndoYUxFT1B0RXhNamsxT1RJNE5BPT0iLAoJCQkJImRpc3BsYXlfeVlSai1qV2Ntc2ozNzhrel9PMm0yOVlwTjhJeE5EazNPRE00TXc9PSIsCgkJCQkiZGlzcGxheV9Xbm9NZGZuLTRTVmhxcF9xQzVvLWxoT0paNm8xTkRJeE1UUTROdz09IgoJCQldLAoJCQkiVFRMIjogMTYyODk4NTYwMAoJCX0="
}
หากคุณไม่แน่ใจเกี่ยวกับสตริงในส่วนนี้ โปรดไปที่หน้า การอ้างอิงโฆษณาผลิตภัณฑ์