Google DAI API ช่วยให้คุณใช้งานสตรีมที่เปิดใช้ Google DAI ได้ในสภาพแวดล้อมที่ไม่รองรับการติดตั้งใช้งาน IMA SDK เราขอแนะนำให้คุณใช้ IMA ในแพลตฟอร์มที่รองรับ IMA SDK ต่อไป
เราขอแนะนำให้ใช้ DAI API ในแพลตฟอร์มต่อไปนี้
- สมาร์ททีวี Samsung (Tizen)
- ทีวี LG
- HbbTV
- Xbox (แอป JavaScript)
- KaiOS
API รองรับฟีเจอร์พื้นฐานจาก IMA DAI SDK หากมีคำถามที่เจาะจงเกี่ยวกับความเข้ากันได้หรือฟีเจอร์ที่รองรับ โปรดติดต่อผู้จัดการฝ่ายดูแลลูกค้าของ Google
ใช้ DAI API สำหรับสตรีม VOD
DAI API รองรับสตรีม VOD ที่ใช้ทั้งโปรโตคอล HLS และ DASH ขั้นตอนที่อธิบายไว้ในคู่มือนี้จะใช้กับโปรโตคอลทั้งสอง
หากต้องการผสานรวม API ในแอปพลิเคชันสำหรับสตรีม VOD ให้ทำตามขั้นตอนต่อไปนี้
ขอสตรีมโดยเรียก POST ไปยังปลายทางของสตรีมโดยทำดังนี้
ตัวอย่างเนื้อหาของคำขอ
https://dai.google.com/ondemand/v1/dash/content/2559737/vid/tos-dash/stream { key1 : "value1", stream_parameter1 : "value2" }
ตัวอย่างเนื้อหาการตอบกลับ:
{ "stream_id":"d32f8920-612a-4d46-8bc7-d73fd6c17c85", "total_duration":636.458, "content_duration":596.458, "valid_for":"8h0m0s", "valid_until":"2020-06-04T20:39:41.274707306-07:00", "stream_manifest":"https://dai.google.com/ondemand/dash/content/2559737/vid/tos-dash/ATL/streams/d32f8920-612a-4d46-8bc7-d73fd6c17c85/manifest.mpd", "media_verification_url":"https://dai.google.com/view/p/service/vod/stream/d32f8920-612a-4d46-8bc7-d73fd6c17c85/loc/ATL/network/124319096/content/2559737/vid/tos-dash/media/", "ad_breaks":[ { "type":"pre", "start":0, "duration":10, "ads":[ { "seq":1, "duration":10, "title":"External NCA1C1L1 Preroll", "description":"External NCA1C1L1 Preroll ad", "clickthrough_url":"https://dai.google.com/ondemand/v1/dash/content/2474148/vid/bbb-clear/location/ATL/stream/d32f8920-612a-4d46-8bc7-d73fd6c17c85/videoclick/5489259204425938365", "events":[ { "time":0.1, "type":"start" }, { "time":2.5, "type":"firstquartile" }, { "time":4.75, "type":"midpoint" }, { "time":7.5, "type":"thirdquartile" }, { "time":9, "type":"complete" } ] } ] }, { "type":"mid", "start":45, "duration":10, "ads":[ {.... } ] } ] }, { "type":"post", "start":626.458, "duration":10, "ads":[...] } ] }
การตอบกลับข้อผิดพลาด
ในกรณีที่เกิดข้อผิดพลาด ระบบจะแสดงรหัสข้อผิดพลาด HTTP มาตรฐานโดยไม่มีเนื้อหาการตอบสนอง JSON
แยกวิเคราะห์การตอบกลับ JSON และเก็บค่าต่อไปนี้
stream_id
stream_manifest
media_verification_url
ad_breaks
หากต้องการยืนยันสื่อ ให้คอยฟังเหตุการณ์ ID3 ดังนี้
- จัดเก็บเหตุการณ์สื่อในคิว โดยบันทึกรหัสสื่อแต่ละรหัสพร้อมกับการประทับเวลา (หากแสดงโดยโปรแกรมเล่น)
- ทุกครั้งที่มีการอัปเดตจากโปรแกรมเล่นหรือตามความถี่ที่ตั้งไว้ (แนะนำที่ 500 มิลลิวินาที) ให้ตรวจสอบคิวเหตุการณ์สื่อสำหรับกิจกรรมที่เล่นล่าสุดโดยเปรียบเทียบการประทับเวลาของเหตุการณ์กับส่วนหัวของตัวควบคุมการเล่น
- สำหรับเหตุการณ์สื่อที่คุณยืนยันว่าได้เล่นแล้ว ให้ติดตามการเล่นโดยเพิ่มรหัสสื่อต่อท้ายปลายทางการยืนยันสื่อและส่งคำขอ GET
ตัวอย่างเนื้อหาของคำขอ
https://dai.google.com/view/p/service/linear/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/loc/ATL/network/51636543/event/0ndl1dJcRmKDUPxTRjvdog/media/
คำตอบตัวอย่าง
Accepted for asynchronous verification - HTTP/1.1 202 Accepted Successful empty response - HTTP/1.1 204 No Content Media verification not found - HTTP/1.1 404 Not Found Media verification sent by someone else - HTTP/1.1 409 Conflict
คุณสามารถตรวจสอบเหตุการณ์การติดตามได้ในเครื่องมือตรวจสอบกิจกรรมการสตรีม
ไม่บังคับ: ใช้ข้อมูล
ad_breaks
จากการตอบกลับการสร้างสตรีมเพื่อค้นหาประเภทของเหตุการณ์ที่เริ่มทำงานนำเหตุการณ์สื่อออกจากคิว
ข้อจำกัด
หากใช้ API ภายใน WebView การกำหนดเป้าหมายจะมีข้อจำกัดต่อไปนี้
- UserAgent: ระบบจะส่งพารามิเตอร์ User Agent เป็นค่าเฉพาะเบราว์เซอร์แทนแพลตฟอร์มที่สำคัญ
rdid
,idtype
,is_lat
: ไม่มีการส่งรหัสอุปกรณ์อย่างถูกต้อง ซึ่งจะจำกัดฟีเจอร์ต่อไปนี้- การกำหนดความถี่สูงสุด
- การหมุนเวียนโฆษณาตามลำดับ
- การแบ่งกลุ่มผู้ชมและการกำหนดเป้าหมาย
แนวทางปฏิบัติแนะนำ
การแมปแท็ก ID3 กับประเภทเหตุการณ์ที่เหมาะสมเป็นสิ่งที่น่าเหนื่อยหน่ายใน VOD ใช้ข้อมูล ad_breaks
ที่แสดงผลใน JSON เพื่อค้นหากิจกรรมโดยตรง เช่นเดียวกับที่คุณทำกับเนื้อหาสด