API Chèn quảng cáo động cho các luồng VOD

API DAI của Google cho phép bạn triển khai luồng hỗ trợ DAI của Google trong các môi trường trong đó việc triển khai SDK IMA không được hỗ trợ. Bạn vẫn nên sử dụng IMA trên các nền tảng có 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. Đối với sản phẩm cụ thể câu hỏi 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.

Triển khai API DAI cho các luồng VOD

API DAI hỗ trợ các luồng VOD bằng cách sử dụng cả giao thức HLS và DASH. Các bước thực hiện đượ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 phát trực tiếp VOD, hãy hoàn tất các bước sau:

  1. Yêu cầu luồng bằng cách thực hiện lệnh gọi POST đến điểm cuối của luồng:

    Ví dụ về nội dung yêu cầu:

    https://dai.google.com/ondemand/v1/dash/content/2559737/vid/tos-dash/stream
    
      {
        key1 : "value1",
        stream_parameter1 : "value2"
      }
    

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

    {
       "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":[...]
          }
       ]
    }
    

    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ề không có JSON nội dung phản hồi.

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

    • stream_id
    • stream_manifest
    • media_verification_url
    • ad_breaks
  3. Để xác minh nội dung nghe nhìn, hãy theo dõi sự kiện ID3:

    1. Lưu trữ sự kiện nội dung đa phương tiện trong hàng đợi, lưu từng mã 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. Vào mỗi lần cập nhật qua trình phát hoặc theo tần suất cố định (nên dùng 500 mili giây), kiểm tra hàng đợi sự kiện nội dung đa phương tiện để biết các sự kiện đã 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 trỏ vị trí.
    3. Đối với các sự kiện nội dung nghe nhìn mà bạn xác nhận là đã phát, hãy theo dõi quá trình phát bằng cách 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 nghe nhìn và tạo GET yêu cầu.

    Ví dụ về nội dung yêu cầ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 Hoạt động trên luồng Giám sát.

  4. Không bắt buộc: Sử dụng dữ liệu ad_breaks từ luồng tạo câu trả lời để xem loại sự kiện được kích hoạt.

  5. Xoá sự kiện nội dung nghe nhìn khỏi hàng đợi.

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 sẽ áp dụng tương ứng với đến nhắm mục tiêu:

  • UserAgent: Thông số tác nhân người dùng được chuyển dưới dạng giá trị cụ thể của trình duyệt thay vì nền tảng cơ bản.
  • rdid! idtype, is_lat: Mã thiết bị là không được chuyển đúng cách, điều này hạn chế 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 và nhắm mục tiêu đối tượng

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

Việc liên kết thẻ ID3 với loại sự kiện thích hợp sẽ mất nhiều thời gian trên VOD. Sử dụng đã trả về thông tin ad_breaks trong JSON để tra cứu trực tiếp sự kiện, chẳng hạn như những việc bạn sẽ làm với nội dung phát trực tiếp.

Tài nguyên khác