API เชิงเส้นของการแทรกโฆษณาแบบไดนามิก

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

รหัสเหตุการณ์ของสตรีม
หมายเหตุ: คีย์ของชิ้นงานสตรีมคือตัวระบุที่ดูได้ใน UI ของ Ad Manager

เนื้อความของคำขอ

เนื้อความของคำขอเป็นประเภท application/x-www-form-urlencoded และมีพารามิเตอร์ต่อไปนี้

พารามิเตอร์
dai-ssb ไม่บังคับ

ตั้งค่าเป็น true เพื่อสร้างสตรีมการรายงานบีคอนฝั่งเซิร์ฟเวอร์ ค่าเริ่มต้นคือ false การติดตามสตรีมเริ่มต้น จะเริ่มที่ฝั่งไคลเอ็นต์และมีการ Ping ที่ฝั่งเซิร์ฟเวอร์

พารามิเตอร์การกำหนดเป้าหมายของ 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

โทเค็นแบบทึบแสงที่แสดงสถานะการซิงค์ปัจจุบันของไคลเอ็นต์ หากระบุ เซิร์ฟเวอร์จะแสดงเฉพาะข้อมูลเมตาที่มีการเปลี่ยนแปลงนับตั้งแต่สร้างโทเค็น พร้อมกับ next_delta_token ใหม่ในการตอบกลับ หากไม่ระบุ เซิร์ฟเวอร์จะแสดง ข้อมูลเมตาแบบเต็มสำหรับทั้งช่วงที่บันทึกด้วย DVR

เนื้อหาการตอบกลับ

หากทำสำเร็จ การตอบกลับจะแสดงอินสแตนซ์ของ 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 string

URL ของไฟล์ Manifest ของสตรีม ซึ่งใช้เพื่อดึงข้อมูลเพลย์ลิสต์เวอร์ชันหลายตัวแปรใน HLS หรือ MPD ใน DASH
hls_master_playlist string

(เลิกใช้งานแล้ว) URL ของเพลย์ลิสต์เวอร์ชันหลายตัวแปรของ HLS ใช้ "stream_manifest" แทน
media_verification_url string

URL การยืนยันสื่อที่ใช้เป็นปลายทางฐานสำหรับการติดตามเหตุการณ์การเล่น
metadata_url string

URL ของข้อมูลเมตาที่ใช้ในการสำรวจข้อมูลเป็นระยะๆ เกี่ยวกับเหตุการณ์โฆษณาในสตรีมที่กำลังจะเกิดขึ้น
session_update_url string

URL การอัปเดตของเซสชันที่ใช้เพื่ออัปเดตพารามิเตอร์การกำหนดเป้าหมายสำหรับสตรีมนี้ ระบบจะบันทึกค่าเดิมของพารามิเตอร์การกำหนดเป้าหมายในระหว่างคำขอสร้างสตรีมครั้งแรก
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 string

URL การคลิกผ่านที่ไม่บังคับ
click_tracking_urls string

URL ติดตามการคลิกที่ไม่บังคับ
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 string

URI ไปยังเพย์โหลด JavaScript
api_framework string

APIFramework คือชื่อของเฟรมเวิร์กวิดีโอที่ใช้รหัสยืนยัน
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 string

URL ของครีเอทีฟโฆษณาแบบอินเทอร์แอกทีฟ
type string

ประเภท MIME ของไฟล์ที่ระบุเป็นทรัพยากร
variable_duration boolean

ครีเอทีฟโฆษณานี้ขอขยายระยะเวลาได้หรือไม่
ad_parameters string

ค่าของโหนด <AdParameters> ใน VAST