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 สำหรับสตรีมแบบสด
DAI API รองรับสตรีมเชิงเส้น (LIVE) ที่ใช้ทั้งโปรโตคอล HLS และ DASH ขั้นตอนที่อธิบายไว้ในคู่มือนี้มีผลกับโปรโตคอลทั้ง 2 รายการ
หากต้องการผสานรวม API กับแอปสำหรับสตรีมแบบสด ให้ทำตามขั้นตอนต่อไปนี้ ขั้นตอน:
1. ขอสตรีม
หากต้องการขอสตรีมแบบสดจาก DAI API ให้เรียก POST ไปยังสตรีม ปลายทาง การตอบสนอง JSON ประกอบด้วยไฟล์ Manifest ของสตรีมและ ค่าและปลายทาง DAI API
ตัวอย่างเนื้อหาของคำขอ
https://dai.google.com/linear/v1/dash/event/0ndl1dJcRmKDUPxTRjvdog/stream
{
  key1 : "value1",
  stream_parameter1 : "value2"
}
ตัวอย่างเนื้อหาการตอบกลับ
{
"stream_id":"c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL",
"stream_manifest":"https://dai.google.com/linear/dash/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/manifest.mpd",
"media_verification_url":"https://dai.google.com/view/p/service/linear/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/loc/ATL/network/51636543/event/0ndl1dJcRmKDUPxTRjvdog/media/",
"metadata_url":"https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/metadata",
"session_update_url":"https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/session",
"polling_frequency":10
}
การตอบกลับข้อผิดพลาด
ในกรณีที่เกิดข้อผิดพลาด ระบบจะส่งรหัสข้อผิดพลาด HTTP มาตรฐานโดยไม่มีการตอบสนอง JSON เนื้อความ
แยกวิเคราะห์การตอบกลับ JSON และเก็บค่าต่อไปนี้
- stream_id
- ค่านี้ใช้ระบุสตรีมที่แสดงผลได้
- stream_manifest
- ระบบจะส่ง URL นี้ไปยังมีเดียเพลเยอร์เพื่อเล่นสตรีม
- media_verification_url
- URL นี้คือปลายทางฐานสำหรับการติดตามเหตุการณ์การเล่น
- metadata_url
- URL นี้ใช้เพื่อสร้างแบบสำรวจข้อมูลเป็นระยะๆ เกี่ยวกับสตรีมที่กำลังจะมีขึ้น กิจกรรม
- session_update_url
- URL นี้ใช้เพื่ออัปเดตพารามิเตอร์คำขอสตรีมที่ส่งในช่วงเริ่มต้น คำขอสตรีม โปรดทราบว่าพารามิเตอร์ของคำขอนี้จะแทนที่พารามิเตอร์ทั้งหมด สำหรับสตรีมก่อนหน้านี้
- polling_frequency
- ความถี่เป็นวินาทีเมื่อส่งคำขอข้อมูลเมตา AdBreak ที่อัปเดตจาก DAI API
2. แบบสำรวจข้อมูลเมตาช่วงพักโฆษณาใหม่
ตั้งตัวจับเวลาเพื่อสำรวจข้อมูลเมตา AdBreak ใหม่ตามความถี่ในการสำรวจ โดยใช้ URL ข้อมูลเมตา หากไม่ได้ระบุไว้ในการตอบกลับของสตรีม ระบบจะใช้ค่าเริ่มต้นที่แนะนำ เป็น 10 วินาที
ตัวอย่างเนื้อหาของคำขอ
https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/metadata
ตัวอย่างเนื้อหาการตอบกลับ
{
   "tags":{
      "google_0492266569":{
         "ad":"0000229836_ad1",
         "ad_break_id":"0000229836",
         "type":"firstquartile"
      },
      "google_1560331148":{
         "ad":"0000229836_ad1",
         "ad_break_id":"0000229836",
         "type":"thirdquartile"
      },
      "google_1877686714378797835":{
         "ad":"0000229836_slate",
         "ad_break_id":"0000229836",
         "type":"progress"
      },
      "google_1vRyQBYPw_7Gg3MrZ6S5EjmV9aLje-YpW8QHed1DSlU":{
         "ad":"0000229835_ad1",
         "ad_break_id":"0000229835",
         "type":"progress"
      },
      "google_2032765498":{
         "ad":"0000229835_ad1",
         "ad_break_id":"0000229835",
         "type":"midpoint"
      },......
      "google_5646900623":{
         "ad":"0000229837_ad1",
         "ad_break_id":"0000229837",
         "type":"complete"
      }
   },
   "ads":{
      "0000229834_ad1":{
         "ad_break_id":"0000229834",
         "position":1,
         "duration":15.01,
         "title":"truman-e2e-creativeset4",
         "description":"truman-e2e-creativeset4 ad",
         "ad_system":"GDFP",
         "ad_id":"39066884",
         "creative_id":"58092079124",
         "clickthrough_url":"https://pubads.g.doubleclick.net/pcs/click?xai=AKAO...\u0026adurl=http://google.com",
         "universal_ad_id":{
            "id_value":"58092079124",
            "id_registry":"GDFP"
         }
      },
      "0000229834_slate":{
         "ad_break_id":"0000229834",
         "position":-1,
         "duration":14.974977777,
         "slate":true
      },...
   },
   "ad_breaks":{
      "0000229834":{
         "type":"mid",
         "duration":15.01,
         "expected_duration":29.984977776999997,
         "ads":1
      },....
   }
}
3. ฟังเหตุการณ์ ID3 และติดตามเหตุการณ์การเล่น
หากต้องการยืนยันว่าเกิดเหตุการณ์ที่เฉพาะเจาะจงในสตรีมวิดีโอ ให้ทำตามดังนี้ ขั้นตอนในการจัดการเหตุการณ์ 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
คุณสามารถยืนยันการติดตามเหตุการณ์ได้ในกิจกรรมสตรีม ตรวจสอบ
4. อัปเดตพารามิเตอร์เซสชันของสตรีมแบบสด
คุณอาจต้องปรับพารามิเตอร์เซสชันหลังจากที่สตรีมจบไปแล้ว สร้าง แล้ว โดยการส่งคำขอไปยัง URL อัปเดตเซสชัน
ตัวอย่างเนื้อหาของคำขอ
https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/session
{
  key1 : "value1",
  stream_parameter1 : "value2"
}
ตัวอย่างเนื้อหาการตอบกลับ
Successful response would be to look for - HTTP/1.1 200
ข้อจำกัด
หากใช้ API ภายใน WebView จะมีข้อจำกัดต่อไปนี้ตามที่กำหนดไว้ ในการกำหนดเป้าหมาย ได้แก่
- UserAgent: ระบบจะส่งพารามิเตอร์ User Agent เป็นค่าเฉพาะเบราว์เซอร์ แทนแพลตฟอร์มพื้นฐาน
- rdid- idtype,- is_lat: ไม่ได้ส่งรหัสอุปกรณ์อย่างถูกต้อง ซึ่งจำกัดความสามารถของอุปกรณ์ ฟีเจอร์ต่อไปนี้- การกำหนดความถี่สูงสุด
- การหมุนเวียนโฆษณาตามลำดับ
- การแบ่งกลุ่มผู้ชมและการกำหนดเป้าหมาย
 
แนวทางปฏิบัติแนะนำ
โปรดทราบว่าปลายทางข้อมูลเมตาสำหรับดัชนีสตรีมแบบสดจะอิงตาม คำนำหน้าของแท็ก ID3 ที่เกี่ยวข้อง ซึ่งออกแบบมาเพื่อป้องกันการใช้ ปลายทางข้อมูลเมตาสำหรับการใช้คำสั่ง ping กับโหนดการยืนยันทั้งหมดทันที
แหล่งข้อมูลเพิ่มเติม
- เอกสารอ้างอิง API เอกสารประกอบ
- เรียบง่าย ตัวอย่าง
- เอกสารเกี่ยวกับ IMA SDK
- ประเภทการใช้งานเลเยอร์ DAI การเปรียบเทียบ