API Chèn quảng cáo động cho luồng TRỰC TIẾP

API Google DAI cho phép bạn triển khai các luồng được bật DAI của Google trong các môi trường không hỗ trợ việc triển khai SDK IMA. Bạn vẫn nên sử dụng IMA trên các nền tảng hỗ trợ SDK IMA.

Bạn nên sử dụng API DAI trên các nền tảng sau:

  • TV thông minh Samsung (Tizen)
  • TV LG
  • HbbTV
  • Xbox (ứng dụng JavaScript)
  • KaiOS

API này hỗ trợ các tính năng cơ bản do SDK IMA DAI cung cấp. Nếu bạn có thắc mắc cụ thể về khả năng tương thích hoặc các tính năng được hỗ trợ, hãy liên hệ với người quản lý tài khoản của Google.

Triển khai API DAI cho luồng TRỰC TIẾP

API DAI hỗ trợ các luồng tuyến tính (LIVE) bằng cách sử dụng cả giao thức HLS và DASH. Các bước được mô tả trong hướng dẫn này áp dụng cho cả hai giao thức.

Để tích hợp API vào ứng dụng của bạn đối với các sự kiện phát trực tiếp TRỰC TIẾP, hãy hoàn thành các bước sau:

1. Yêu cầu phát trực tiếp

Để yêu cầu phát trực tiếp từ API DAI, hãy thực hiện lệnh gọi POST đến điểm cuối của luồng. Phản hồi JSON chứa tệp kê khai luồng cũng như các điểm cuối và giá trị API DAI được liên kết.

Nội dung yêu cầu mẫu

https://dai.google.com/linear/v1/dash/event/0ndl1dJcRmKDUPxTRjvdog/stream

{
  key1 : "value1",
  stream_parameter1 : "value2"
}

Nội dung phản hồi mẫu

{
"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
}

Phản hồi lỗi

Trong trường hợp xảy ra lỗi, mã lỗi HTTP tiêu chuẩn sẽ được trả về mà không có nội dung phản hồi JSON.

Phân tích cú pháp phản hồi JSON và lưu trữ các giá trị sau:

stream_id
Bạn có thể dùng giá trị này để xác định luồng được trả về.
stream_manifest
URL này được chuyển đến trình phát nội dung đa phương tiện để phát trực tuyến.
media_verification_url
URL này là điểm cuối cơ sở để theo dõi các sự kiện phát.
metadata_url
URL này dùng để thăm dò thông tin định kỳ về các sự kiện phát trực tiếp sắp tới.
session_update_url
URL này dùng để cập nhật các tham số của yêu cầu phát trực tiếp được gửi trong yêu cầu phát trực tiếp ban đầu. Xin lưu ý rằng các tham số của yêu cầu này thay thế tất cả các tham số đã đặt cho luồng trước đó.
polling_frequency
Tần suất (tính bằng giây) khi yêu cầu cập nhật Siêu dữ liệu điểm chèn quảng cáo qua API DAI.

2. Thăm dò siêu dữ liệu AdBreak mới

Đặt bộ tính giờ để thăm dò siêu dữ liệu AdBreak mới tại tần suất thăm dò ý kiến, bằng cách sử dụng URL siêu dữ liệu. Nếu không được chỉ định trong phản hồi phát trực tiếp, thì khoảng thời gian mặc định được đề xuất là 10 giây.

Nội dung yêu cầu mẫu

https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/metadata

Nội dung phản hồi mẫu

{
   "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. Theo dõi sự kiện ID3 và theo dõi sự kiện phát

Để xác minh rằng các sự kiện cụ thể đã xảy ra trong luồng video, hãy làm theo các bước sau đây để xử lý các sự kiện ID3:

  1. Lưu trữ các sự kiện nội dung đa phương tiện trong hàng đợi, lưu từng mã nhận dạng nội dung đa phương tiện cùng với dấu thời gian (nếu trình phát hiển thị).
  2. Trong mỗi lần cập nhật từ trình phát hoặc tại một tần suất đã đặt (500 mili giây), hãy kiểm tra hàng đợi sự kiện nội dung đa phương tiện cho các sự kiện được phát gần đây bằng cách so sánh dấu thời gian của sự kiện với con vị trí phát.
  3. Đối với các sự kiện nội dung đa phương tiện mà bạn xác nhận đã phát, hãy kiểm tra loại bằng cách tìm kiếm mã nhận dạng nội dung đa phương tiện trong các thẻ chèn quảng cáo đã lưu trữ. Xin lưu ý rằng các thẻ được lưu trữ chỉ chứa tiền tố của mã nhận dạng nội dung đa phương tiện, do đó, không thể khớp chính xác.
  4. Bạn có thể sử dụng sự kiện "tiến trình" để theo dõi xem người dùng có đang ở trong điểm chèn quảng cáo hay không. Đừng gửi những sự kiện này tới điểm cuối xác minh nội dung nghe nhìn. Đối với các loại sự kiện khác, hãy thêm mã nhận dạng nội dung đa phương tiện vào điểm cuối xác minh nội dung đa phương tiện rồi đưa ra yêu cầu GET để theo dõi quá trình phát.
  5. Xoá sự kiện nội dung đa phương tiện khỏi hàng đợi.

Nội dung yêu cầu mẫu

https://dai.google.com/view/p/service/linear/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/loc/ATL/network/51636543/event/0ndl1dJcRmKDUPxTRjvdog/media/

Câu trả lời mẫu

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

Bạn có thể xác minh các sự kiện theo dõi trong mục Giám sát hoạt động phát trực tuyến.

4. Cập nhật các thông số của phiên phát trực tiếp

Bạn nên điều chỉnh các thông số phiên sau khi tạo luồng. Để làm như vậy, hãy yêu cầu URL cập nhật phiên.

Nội dung yêu cầu mẫu

https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/session

{
  key1 : "value1",
  stream_parameter1 : "value2"
}

Nội dung phản hồi mẫu

Successful response would be to look for - HTTP/1.1 200

Các điểm hạn chế

Nếu bạn sử dụng API trong WebView, thì các giới hạn sau đây sẽ áp dụng cho việc nhắm mục tiêu:

  • UserAgent: Tham số tác nhân người dùng được chuyển dưới dạng giá trị dành riêng cho trình duyệt thay vì nền tảng cơ bản.
  • rdid, idtype, is_lat: Mã thiết bị không được truyền đúng cách, điều này sẽ hạn chế khả năng của các tính năng sau:
    • Giới hạn tần suất
    • Xoay vòng quảng cáo tuần tự
    • Phân khúc đối tượng và nhắm mục tiêu

Các phương pháp hay nhất

Xin lưu ý rằng điểm cuối của siêu dữ liệu cho chỉ mục sự kiện phát trực tiếp là dựa trên tiền tố của thẻ ID3 tương ứng. Mục đích của tính năng này là nhằm ngăn chặn việc sử dụng điểm cuối của siêu dữ liệu để ping ngay lập tức tất cả các nút xác minh.

Tài nguyên khác