Trong ads_manager.js, hãy xác định một lớp trình bao bọc cho StreamManager của IMA SDK để đưa ra các yêu cầu về luồng phát, nhận tệp kê khai nhóm quảng cáo, theo dõi các sự kiện luồng phát IMA và truyền các sự kiện emsg đến IMA SDK.
Trong ads_manager.js, ứng dụng mẫu IMA HbbTV thiết lập các phương thức sau:
requestStream()onStreamEvent()onEmsgEvent()loadAdPodManifest()
Khởi chạy trình quản lý quảng cáo
Khởi chạy lớp trình quản lý quảng cáo và đặt trình nghe cho các sự kiện phát trực tiếp của IMA. Trong lệnh gọi này, hãy đặt trình xử lý sự kiện emsg bằng phương thức VideoPlayer.setEmsgEventHandler().
Đưa ra yêu cầu về luồng nhóm quảng cáo
Tạo phương thức AdManager.requestStream() để tạo một đối tượng PodStreamRequest bằng mã mạng Google Ad Manager và khoá tài sản tuỳ chỉnh của luồng phát. Kiểm thử ứng dụng HbbTV bằng luồng phân phát nhóm DASH mẫu của IMA với các thông số luồng sau:
- Mã mạng:
'21775744923' - Khoá thành phần tuỳ chỉnh:
'hbbtv-dash'
Theo dõi các sự kiện luồng quảng cáo
Tạo phương thức AdManager.onStreamEvent() để xử lý phản hồi của ứng dụng đối với các sự kiện luồng IMA, STREAM_INITIALIZED, AD_BREAK_STARTED và AD_BREAK_ENDED.
Xử lý siêu dữ liệu luồng quảng cáo
Để truyền thông tin sự kiện emsg đến IMA, hãy tạo phương thức AdManager.onEmsgEvent() bằng phương thức StreamManager.processMetadata(). Lớp trình phát video gọi phương thức này bằng phương thức VideoPlayer.setEmsgEventHandler().
Tải tệp kê khai nhóm quảng cáo
Tạo phương thức AdManager.loadAdPodManifest() để tải trước tệp kê khai nhóm quảng cáo bằng trình phát video. Tạo một URL tệp kê khai đã xác thực bằng cấu trúc trong Phương thức: Tệp kê khai nhóm DASH.
Ứng dụng mẫu HbbTV sử dụng giá trị adBreakId duy nhất được tạo ngẫu nhiên. Trong các ứng dụng phát hành công khai, giá trị adBreakId là một chuỗi gồm chữ và số, ví dụ: ab-001, tăng thêm một cho mỗi điểm chèn quảng cáo. Xác minh rằng giá trị adBreakId là cùng một giá trị cho tất cả người xem điểm chèn quảng cáo. Để nhận giá trị adBreakId, bạn nên sử dụng API Khoảng thời gian quảng cáo DAI.
Trong môi trường sản xuất, hãy thêm giá trị adBreakId và giá trị podDuration vào sự kiện luồng HbbTV AD_BREAK_ANNOUNCE.
Tiếp theo, hãy tạo lớp ứng dụng chính cho ứng dụng HbbTV tương tác với chương trình phát sóng HbbTV.