Dynamic Ad Insertion API ช่วยให้คุณขอและติดตามสตรีมเชิงเส้น (สด) ของการแทรกโฆษณาแบบไดนามิกได้
บริการ: dai.google.com
URI ทั้งหมดจะเกี่ยวข้องกับ https://dai.google.com
วิธีการ: สตรีม
| เมธอด | |
|---|---|
stream |
POST /linear/v1/hls/event/{assetKey}/stream
สร้างสตรีม DAI สำหรับรหัสเหตุการณ์ที่ระบุ |
คำขอ HTTP
POST https://dai.google.com/linear/v1/hls/event/{assetKey}/stream
ส่วนหัวของคำขอ
| พารามิเตอร์ | |
|---|---|
api‑key |
stringคีย์ API ที่ระบุเมื่อสร้างสตรีม ต้องใช้ได้กับเครือข่ายของผู้เผยแพร่โฆษณา คุณสามารถส่งคีย์ API ในส่วนหัวการให้สิทธิ์ HTTP ในรูปแบบต่อไปนี้แทนการระบุในส่วนเนื้อหาของคำขอ Authorization: DCLKDAI key="<api-key>" |
พารามิเตอร์เส้นทาง
| พารามิเตอร์ | |
|---|---|
assetKey |
stringรหัสเหตุการณ์ของสตรีม |
เนื้อความของคำขอ
เนื้อความของคำขอเป็นประเภท application/x-www-form-urlencoded และมีพารามิเตอร์ต่อไปนี้
| พารามิเตอร์ | ||
|---|---|---|
dai-ssb |
ไม่บังคับ | ตั้งค่าเป็น |
| พารามิเตอร์การกำหนดเป้าหมายของ DFP | ไม่บังคับ | พารามิเตอร์การกำหนดเป้าหมายเพิ่มเติม |
| ลบล้างพารามิเตอร์ของสตรีม | ไม่บังคับ | ลบล้างค่าเริ่มต้นของพารามิเตอร์การสร้างสตรีม |
| การตรวจสอบสิทธิ์ HMAC | ไม่บังคับ | ตรวจสอบสิทธิ์โดยใช้โทเค็นที่ใช้ HMAC |
เนื้อหาการตอบกลับ
หากทำสำเร็จ เนื้อหาการตอบกลับจะมี Stream ใหม่ สำหรับสตรีมที่ใช้บีคอนฝั่งเซิร์ฟเวอร์ Stream
จะมีเฉพาะฟิลด์ stream_id และ stream_manifest เท่านั้น
Open Measurement
DAI API มีข้อมูลสำหรับการยืนยัน Open Measurement ในฟิลด์
Verifications ฟิลด์นี้มีองค์ประกอบอย่างน้อย 1 รายการ
Verification ซึ่งแสดงรายการทรัพยากรและข้อมูลเมตาที่จำเป็นต่อการเรียกใช้
โค้ดการวัดผลโดยบุคคลที่สามเพื่อยืนยันการเล่นครีเอทีฟโฆษณา รองรับเฉพาะ JavaScriptResource ดูข้อมูลเพิ่มเติมได้ที่
IAB Tech Lab และ
ข้อกำหนด VAST 4.1
วิธีการ: การยืนยันสื่อ
หลังจากพบตัวระบุสื่อโฆษณาระหว่างการเล่น ให้ส่งคำขอทันทีโดยใช้ media_verification_url ที่ได้จากปลายทาง stream คำขอเหล่านี้ไม่จำเป็นสำหรับสตรีมที่ใช้การรายงานบีคอนฝั่งเซิร์ฟเวอร์ ซึ่งเซิร์ฟเวอร์เป็นผู้เริ่มการยืนยันสื่อ
คำขอไปยังปลายทาง media verification เป็นแบบ Idempotent
| เมธอด | |
|---|---|
media verification |
GET /{media_verification_url}/{ad_media_id}
แจ้ง API เกี่ยวกับเหตุการณ์การยืนยันสื่อ |
คำขอ HTTP
GET https://{media-verification-url}/{ad-media-id}
เนื้อหาการตอบกลับ
media verification
จะแสดงการตอบกลับต่อไปนี้
HTTP/1.1 204 No Contentหากการยืนยันสื่อสำเร็จและส่งการ Ping ทั้งหมดแล้วHTTP/1.1 404 Not Foundหากคำขอไม่สามารถยืนยันสื่อเนื่องจากการจัดรูปแบบ URL ไม่ถูกต้องหรือหมดอายุHTTP/1.1 404 Not Foundหากคำขอยืนยันก่อนหน้านี้สำหรับบัตรประจำตัวนี้สำเร็จHTTP/1.1 409 Conflictหากคำขออื่นส่งการปิงอยู่แล้วในขณะนี้
รหัสสื่อโฆษณา (HLS)
ระบบจะเข้ารหัสตัวระบุสื่อโฆษณาในข้อมูลเมตาที่มีการจับเวลาของ HLS โดยใช้คีย์
TXXX ซึ่งสงวนไว้สำหรับเฟรม "ข้อมูลข้อความที่ผู้ใช้กำหนด"
เนื้อหาของเฟรมจะไม่ได้เข้ารหัสและจะขึ้นต้นด้วยข้อความ
"google_" เสมอ
ระบบควรผนวกเนื้อหาข้อความทั้งหมดของเฟรมเข้ากับ URL การยืนยันโฆษณา ก่อนที่จะส่งคำขอการยืนยันโฆษณาแต่ละรายการ
วิธีการ: ข้อมูลเมตา
ปลายทางข้อมูลเมตาที่ metadata_url จะแสดงข้อมูลที่ใช้สร้างโฆษณา
UI ปลายทางข้อมูลเมตาไม่พร้อมใช้งานสำหรับสตรีมที่ใช้การส่งบีคอนฝั่งเซิร์ฟเวอร์
ซึ่งเซิร์ฟเวอร์มีหน้าที่เริ่มการยืนยันสื่อโฆษณา
| เมธอด | |
|---|---|
metadata |
GET /{metadata_url}/{ad-media-id}GET /{metadata_url}
เรียกข้อมูลเมตาของโฆษณา |
คำขอ HTTP
GET https://{metadata_url}/{ad-media-id}
GET https://{metadata_url}
พารามิเตอร์การค้นหา
| พารามิเตอร์ | ||
|---|---|---|
delta_token |
ไม่บังคับ |
string
โทเค็นแบบทึบแสงที่แสดงสถานะการซิงค์ปัจจุบันของไคลเอ็นต์
หากระบุ เซิร์ฟเวอร์จะแสดงเฉพาะข้อมูลเมตาที่มีการเปลี่ยนแปลงนับตั้งแต่สร้างโทเค็น
พร้อมกับ |
เนื้อหาการตอบกลับ
หากทำสำเร็จ การตอบกลับจะแสดงอินสแตนซ์ของ
PodMetadata
การทำงานกับข้อมูลเมตา
ข้อมูลเมตามี 3 ส่วนที่แยกกัน ได้แก่ tags, ads และโฆษณา breaks จุดแรกเข้าสู่ข้อมูลคือส่วน tags จากนั้น ให้วนซ้ำผ่านแท็ก
และค้นหารายการแรกที่มีชื่อเป็นคำนำหน้าของรหัสสื่อโฆษณาที่พบในวิดีโอสตรีม เช่น คุณอาจมีรหัสสื่อโฆษณาที่มีลักษณะดังนี้
google_1234567890
จากนั้นคุณจะเห็นออบเจ็กต์แท็กชื่อ google_12345 ในกรณีนี้ รหัสจะตรงกับ
รหัสสื่อโฆษณา เมื่อพบออบเจ็กต์คำนำหน้าสื่อโฆษณาที่ถูกต้องแล้ว คุณจะค้นหา
รหัสโฆษณา รหัสช่วงพักโฆษณา และประเภทเหตุการณ์ได้ จากนั้นระบบจะใช้รหัสโฆษณาเพื่อจัดทำดัชนีออบเจ็กต์
ads และใช้รหัสช่วงพักโฆษณาเพื่อจัดทำดัชนีออบเจ็กต์ breaks
ข้อมูลการตอบกลับ
สตรีม
Stream ใช้ในการแสดงรายการทรัพยากรสำหรับสตรีมที่สร้างขึ้นใหม่ในรูปแบบ JSON| การแสดง JSON |
|---|
{
"stream_id": string,
"stream_manifest": string,
"hls_master_playlist": string,
"media_verification_url": string,
"metadata_url": string,
"session_update_url": string,
"polling_frequency": number,
} |
| ช่อง | |
|---|---|
stream_id |
stringตัวระบุสตรีม GAM |
stream_manifest |
stringURL ของไฟล์ Manifest ของสตรีม ซึ่งใช้เพื่อดึงข้อมูลเพลย์ลิสต์เวอร์ชันหลายตัวแปรใน HLS หรือ MPD ใน DASH |
hls_master_playlist |
string(เลิกใช้งานแล้ว) URL ของเพลย์ลิสต์เวอร์ชันหลายตัวแปรของ HLS ใช้ "stream_manifest" แทน |
media_verification_url |
stringURL การยืนยันสื่อที่ใช้เป็นปลายทางฐานสำหรับการติดตามเหตุการณ์การเล่น |
metadata_url |
stringURL ของข้อมูลเมตาที่ใช้ในการสำรวจข้อมูลเป็นระยะๆ เกี่ยวกับเหตุการณ์โฆษณาในสตรีมที่กำลังจะเกิดขึ้น |
session_update_url |
stringURL การอัปเดตของเซสชันที่ใช้เพื่ออัปเดตพารามิเตอร์การกำหนดเป้าหมายสำหรับสตรีมนี้ ระบบจะบันทึกค่าเดิมของพารามิเตอร์การกำหนดเป้าหมายในระหว่างคำขอสร้างสตรีมครั้งแรก |
polling_frequency |
numberความถี่ในการตรวจสอบสถานะเป็นวินาทีเมื่อขอ metadata_url หรือ heartbeat_url |
PodMetadata
PodMetadata มีข้อมูลเมตาเกี่ยวกับโฆษณา ช่วงพักโฆษณา และแท็กรหัสสื่อ| การแสดง JSON |
|---|
{
"tags": map[string, object(TagSegment)],
"ads": map[string, object(Ad)],
"ad_breaks": map[string, object(AdBreak)],
"next_delta_token": string,
"obsolete_ad_break_ids": [],
} |
| ช่อง | |
|---|---|
tags |
map[string, object(TagSegment)]แผนที่ของกลุ่มแท็กที่จัดทำดัชนีตามคำนำหน้าแท็ก |
ads |
map[string, object(Ad)]แผนที่ของโฆษณาที่จัดทำดัชนีตามรหัสโฆษณา |
ad_breaks |
map[string, object(AdBreak)]แผนที่ของช่วงพักโฆษณาที่จัดทำดัชนีตามรหัสช่วงพักโฆษณา |
next_delta_token |
stringโทเค็นทึบสำหรับไคลเอ็นต์ที่จะใช้ในการสำรวจครั้งถัดไป |
obsolete_ad_break_ids |
stringรายการรหัสช่วงพักโฆษณาที่ล้าสมัยและควร นำออกจากแคชของไคลเอ็นต์ |
TagSegment
TagSegment มีการอ้างอิงถึงโฆษณา ช่วงพักโฆษณา และประเภทเหตุการณ์ ไม่ควรปิง TagSegment ที่มี type="progress" ไปยังปลายทางการยืนยันสื่อโฆษณา| การแสดง JSON |
|---|
{ "ad": string, "ad_break_id": string, "type": string, } |
| ช่อง | |
|---|---|
ad |
stringรหัสของโฆษณาของแท็กนี้ |
ad_break_id |
stringรหัสของช่วงพักโฆษณาของแท็กนี้ |
type |
stringประเภทเหตุการณ์ของแท็กนี้ |
AdBreak
AdBreak อธิบายช่วงพักโฆษณาเดียวในสตรีม โดยมีระยะเวลา ประเภท (กลาง/ก่อน/หลัง) และจำนวนโฆษณา| การแสดง JSON |
|---|
{ "type": string, "duration": number, "expected_duration": number, "ads": number, } |
| ช่อง | |
|---|---|
type |
stringประเภทการแบ่งที่ใช้ได้ ได้แก่ ก่อน ระหว่าง และหลัง |
duration |
numberระยะเวลาโฆษณาทั้งหมดสำหรับช่วงพักโฆษณานี้ หน่วยเป็นวินาที |
expected_duration |
numberระยะเวลาที่คาดไว้ของช่วงพักโฆษณา (เป็นวินาที) รวมถึงโฆษณาทั้งหมดและแถบสเลท |
ads |
numberจำนวนโฆษณาในช่วงพักโฆษณา |
โฆษณา
Ad อธิบายโฆษณาในสตรีม| การแสดง JSON |
|---|
{
"ad_break_id": string,
"position": number,
"duration": number,
"title": string,
"description": string,
"advertiser": string,
"ad_system": string,
"ad_id": string,
"creative_id": string,
"creative_ad_id": string,
"deal_id": string,
"clickthrough_url": string,
"click_tracking_urls": [],
"verifications": [object(Verification)],
"slate": boolean,
"icons": [object(Icon)],
"wrappers": [object(Wrapper)],
"universal_ad_id": object(UniversalAdID),
"extensions": [],
"companions": [object(Companion)],
"interactive_file": object(InteractiveFile),
} |
| ช่อง | |
|---|---|
ad_break_id |
stringรหัสของช่วงพักโฆษณาของโฆษณานี้ |
position |
numberตำแหน่งของโฆษณานี้ในช่วงพักโฆษณา โดยเริ่มที่ 1 |
duration |
numberระยะเวลาของโฆษณาเป็นวินาที |
title |
stringชื่อโฆษณาที่ไม่บังคับ |
description |
stringคำอธิบายเพิ่มเติมของโฆษณา |
advertiser |
stringตัวระบุผู้ลงโฆษณาที่ไม่บังคับ |
ad_system |
stringระบบโฆษณาที่ไม่บังคับ |
ad_id |
stringรหัสโฆษณาที่ไม่บังคับ |
creative_id |
stringรหัสครีเอทีฟโฆษณาที่ไม่บังคับ |
creative_ad_id |
stringรหัสโฆษณาของครีเอทีฟโฆษณาที่ไม่บังคับ |
deal_id |
stringรหัสดีลที่ไม่บังคับ |
clickthrough_url |
stringURL การคลิกผ่านที่ไม่บังคับ |
click_tracking_urls |
stringURL ติดตามการคลิกที่ไม่บังคับ |
verifications |
[object(Verification)]รายการการยืนยัน Open Measurement ที่ไม่บังคับซึ่งแสดงรายการทรัพยากร และข้อมูลเมตาที่จำเป็นในการเรียกใช้โค้ดการวัดผลโดยบุคคลที่สามเพื่อยืนยัน การเล่นครีเอทีฟโฆษณา |
slate |
booleanบูลีนที่ไม่บังคับซึ่งระบุว่ารายการปัจจุบันเป็นรายการแนะนำ |
icons |
[object(Icon)]รายการไอคอน เว้นว่างไว้หากไม่มี |
wrappers |
[object(Wrapper)]รายการ Wrapper ซึ่งจะเว้นว่างไว้หากไม่มี |
universal_ad_id |
object(UniversalAdID)รหัสโฆษณาสากลที่ไม่บังคับ |
extensions |
stringรายการโหนด <Extension> ทั้งหมดใน VAST (ไม่บังคับ) |
companions |
[object(Companion)]ครีเอทีฟโฆษณาที่แสดงร่วมที่ไม่บังคับซึ่งอาจแสดงพร้อมกับโฆษณานี้ |
interactive_file |
object(InteractiveFile)ครีเอทีฟโฆษณาแบบอินเทอร์แอกทีฟที่ไม่บังคับ (SIMID) ซึ่งควรแสดงระหว่างการเล่นโฆษณา |
ไอคอน
Icon มีข้อมูลเกี่ยวกับไอคอน VAST| การแสดง JSON |
|---|
{ "click_data": object(ClickData), "creative_type": string, "click_fallback_images": [object(FallbackImage)], "height": int32, "width": int32, "resource": string, "type": string, "x_position": string, "y_position": string, "program": string, "alt_text": string, } |
| ช่อง | |
|---|---|
click_data |
object(ClickData) |
creative_type |
string |
click_fallback_images |
[object(FallbackImage)] |
height |
int32 |
width |
int32 |
resource |
string |
type |
string |
x_position |
string |
y_position |
string |
program |
string |
alt_text |
string |
ClickData
ClickData มีข้อมูลเกี่ยวกับการคลิกผ่านไอคอน| การแสดง JSON |
|---|
{
"url": string,
} |
| ช่อง | |
|---|---|
url |
string |
FallbackImage
FallbackImage มีข้อมูลเกี่ยวกับรูปภาพสำรองของ VAST| การแสดง JSON |
|---|
{ "creative_type": string, "height": int32, "width": int32, "resource": string, "alt_text": string, } |
| ช่อง | |
|---|---|
creative_type |
string |
height |
int32 |
width |
int32 |
resource |
string |
alt_text |
string |
Wrapper
Wrapper มีข้อมูลเกี่ยวกับโฆษณา Wrapper โดยจะไม่รวมรหัสดีลหากไม่มี| การแสดง JSON |
|---|
{
"system": string,
"ad_id": string,
"creative_id": string,
"creative_ad_id": string,
"deal_id": string,
} |
| ช่อง | |
|---|---|
system |
stringตัวระบุระบบโฆษณา |
ad_id |
stringรหัสโฆษณาที่ใช้สำหรับโฆษณา Wrapper |
creative_id |
stringรหัสครีเอทีฟโฆษณาที่ใช้สำหรับโฆษณา Wrapper |
creative_ad_id |
stringรหัสโฆษณาของครีเอทีฟโฆษณาที่ใช้สำหรับโฆษณา Wrapper |
deal_id |
stringรหัสดีลที่ไม่บังคับสำหรับโฆษณา Wrapper |
การยืนยัน
การยืนยันมีข้อมูลสำหรับ Open Measurement ซึ่งช่วยให้ การวัดการมองเห็นโฆษณาและการยืนยันของบุคคลที่สามเป็นไปได้ ปัจจุบันรองรับเฉพาะทรัพยากร JavaScript ดู https://iabtechlab.com/standards/open-measurement-sdk/| การแสดง JSON |
|---|
{
"vendor": string,
"java_script_resources": [object(JavaScriptResource)],
"tracking_events": [object(TrackingEvent)],
"parameters": string,
} |
| ช่อง | |
|---|---|
vendor |
stringผู้ให้บริการการยืนยัน |
java_script_resources |
[object(JavaScriptResource)]รายการแหล่งข้อมูล JavaScript สำหรับการยืนยัน |
tracking_events |
[object(TrackingEvent)]รายการเหตุการณ์การติดตามสำหรับการยืนยัน |
parameters |
stringสตริงทึบแสงที่ส่งไปยังรหัสยืนยันการเริ่มต้นระบบ |
JavaScriptResource
JavaScriptResource มีข้อมูลสำหรับการยืนยันผ่าน JavaScript| การแสดง JSON |
|---|
{
"script_url": string,
"api_framework": string,
"browser_optional": boolean,
} |
| ช่อง | |
|---|---|
script_url |
stringURI ไปยังเพย์โหลด JavaScript |
api_framework |
stringAPIFramework คือชื่อของเฟรมเวิร์กวิดีโอที่ใช้รหัสยืนยัน |
browser_optional |
booleanสคริปต์นี้เรียกใช้ภายนอกเบราว์เซอร์ได้หรือไม่ |
TrackingEvent
TrackingEvent มี URL ที่ไคลเอ็นต์ควรปิงในบางสถานการณ์| การแสดง JSON |
|---|
{
"event": string,
"uri": string,
} |
| ช่อง | |
|---|---|
event |
stringประเภทของเหตุการณ์การติดตาม |
uri |
stringเหตุการณ์การติดตามที่จะปิง |
UniversalAdID
UniversalAdID ใช้เพื่อให้ตัวระบุครีเอทีฟโฆษณาที่ไม่ซ้ำกันซึ่งดูแลในระบบโฆษณา| การแสดง JSON |
|---|
{ "id_value": string, "id_registry": string, } |
| ช่อง | |
|---|---|
id_value |
stringรหัสโฆษณาสากลของครีเอทีฟโฆษณาที่เลือกสำหรับโฆษณา |
id_registry |
stringสตริงที่ใช้ระบุ URL สำหรับเว็บไซต์รีจิสทรีที่มีการจัดแคตตาล็อก Universal Ad ID ของครีเอทีฟโฆษณาที่เลือก |
Companion
ครีเอทีฟโฆษณาที่แสดงร่วมมีข้อมูลสำหรับโฆษณาที่แสดงร่วมซึ่งอาจแสดง พร้อมกับโฆษณา| การแสดง JSON |
|---|
{ "click_data": object(ClickData), "creative_type": string, "height": int32, "width": int32, "resource": string, "type": string, "ad_slot_id": string, "api_framework": string, "tracking_events": [object(TrackingEvent)], } |
| ช่อง | |
|---|---|
click_data |
object(ClickData)ข้อมูลการคลิกของครีเอทีฟโฆษณาที่แสดงร่วมนี้ |
creative_type |
stringแอตทริบิวต์ CreativeType ในโหนด <StaticResource> ใน VAST หากเป็นโฆษณาที่แสดงร่วมประเภทคงที่ |
height |
int32ความสูงเป็นพิกเซลของโฆษณาที่แสดงร่วมนี้ |
width |
int32ความกว้างเป็นพิกเซลของโฆษณาที่แสดงร่วมนี้ |
resource |
stringสำหรับโฆษณาที่แสดงร่วมแบบคงที่และแบบ iframe นี่จะเป็น URL ที่จะโหลดและ แสดง สำหรับโฆษณาที่แสดงร่วม HTML นี่จะเป็นข้อมูลโค้ด HTML ที่ควร แสดงเป็นโฆษณาที่แสดงร่วม |
type |
stringประเภทของอุปกรณ์ที่ใช้ร่วมกันนี้ ซึ่งอาจเป็นแบบคงที่, iframe หรือ HTML |
ad_slot_id |
stringรหัสช่องของโฆษณาที่แสดงร่วมนี้ |
api_framework |
stringเฟรมเวิร์ก API สำหรับอุปกรณ์เสริมนี้ |
tracking_events |
[object(TrackingEvent)]รายการเหตุการณ์การติดตามสำหรับโฆษณาที่แสดงร่วมนี้ |
InteractiveFile
InteractiveFile มีข้อมูลสำหรับครีเอทีฟโฆษณาแบบอินเทอร์แอกทีฟ (เช่น SIMID) ที่ควรแสดงระหว่างการเล่นโฆษณา| การแสดง JSON |
|---|
{ "resource": string, "type": string, "variable_duration": boolean, "ad_parameters": string, } |
| ช่อง | |
|---|---|
resource |
stringURL ของครีเอทีฟโฆษณาแบบอินเทอร์แอกทีฟ |
type |
stringประเภท MIME ของไฟล์ที่ระบุเป็นทรัพยากร |
variable_duration |
booleanครีเอทีฟโฆษณานี้ขอขยายระยะเวลาได้หรือไม่ |
ad_parameters |
stringค่าของโหนด <AdParameters> ใน VAST |