SDK IMA giúp bạn dễ dàng tích hợp quảng cáo đa phương tiện vào trang web và ứng dụng của mình. SDK IMA có thể yêu cầu quảng cáo từ bất kỳ máy chủ quảng cáo nào tuân thủ VAST và quản lý việc phát quảng cáo trong ứng dụng của bạn. Với SDK IMA DAI, các ứng dụng sẽ gửi yêu cầu về luồng cho quảng cáo và video nội dung (nội dung VOD hoặc nội dung trực tiếp). Sau đó, SDK sẽ trả về một luồng video kết hợp để bạn không phải quản lý việc chuyển đổi giữa quảng cáo và video nội dung trong ứng dụng.
Hướng dẫn này minh hoạ cách phát luồng Phân phát nhóm DAI, sử dụng SDK IMA DAI với trình phát video để phát luồng trực tiếp và VOD. Để xem hoặc làm theo một mẫu tích hợp hoàn chỉnh, hãy tải Ví dụ về tính năng Phân phát nhóm quảng cáo xuống.
Tổng quan về cơ chế Phân phát nhóm IMA DAI
StreamRequest: Một đối tượng xác định yêu cầu luồng đến máy chủ quảng cáo của Google. Phải được tạo bằngImaSdkFactory.createPodStreamRequest()hoặcImaSdkFactory.createPodVodStreamRequest()để bật tính năng Phân phát nhóm. Các phương thức này yêu cầu Mã mạng, vàcreatePodStreamRequestcũng yêu cầu Khoá tài sản tuỳ chỉnh và Khoá API (không bắt buộc). Cả hai đều bao gồm các tham số không bắt buộc khác.StreamManager: Một đối tượng xử lý hoạt động giao tiếp giữa luồng video và SDK IMA DAI, chẳng hạn như kích hoạt ping theo dõi và chuyển tiếp sự kiện luồng đến nhà xuất bản.
Điều kiện tiên quyết
Một ứng dụng Android đã được thiết lập bằng SDK IMA DAI để phát các luồng video có quảng cáo DAI. Nếu chưa có ứng dụng như vậy, bạn nên sử dụng Android DAI BasicExample làm điểm xuất phát. BasicExample có toàn bộ mã nguồn được tham chiếu trong hướng dẫn này.
Ứng dụng của bạn cần gửi sự kiện ID3 bằng
VideoStreamPlayerCallback.onUserTextReceived()để IMA DAI hoạt động. Hãy xem Ví dụ về đoạn mã DAI đầy đủ dịch vụ này.
Thiết lập các biến Phân phát nhóm quảng cáo
Tất cả thay đổi cần thiết cho tính năng Phân phát nhóm đều được thực hiện trong SampleAdsWrapper.java. Bước đầu tiên là cập nhật các biến hằng số.
Sau đây là các hằng số yêu cầu luồng nhóm quảng cáo cần thêm:
STREAM_URL: Chỉ dùng cho sự kiện phát trực tiếp – URL của luồng video do trình thao tác tệp kê khai hoặc đối tác bên thứ ba cung cấp bằng tính năng Phân phát nhóm. Bạn cần phải chèn mã nhận dạng luồng do SDK IMA DAI cung cấp trước khi gửi yêu cầu. Trong trường hợp này, URL của luồng bao gồm một phần giữ chỗ,"[[STREAMID]]", được thay thế bằng mã luồng trước khi đưa ra yêu cầu.NETWORK_CODE: Mã mạng cho tài khoản Ad Manager 360 của bạn.CUSTOM_ASSET_KEY: Chỉ dùng cho sự kiện phát trực tiếp – Khoá thành phần tuỳ chỉnh giúp xác định sự kiện Phân phát nhóm quảng cáo trong Ad Manager 360. Tệp kê khai này có thể do trình thao tác tệp kê khai của bạn hoặc đối tác Phân phát nhóm quảng cáo bên thứ ba tạo.API_KEY: Chỉ dùng cho sự kiện phát trực tiếp – Khoá API không bắt buộc có thể cần thiết để truy xuất mã luồng phát từ SDK IMA DAI.
Android DAI BasicExample được thiết kế để phát nhiều loại luồng khác nhau, nhưng đối với tính năng Phân phát nhóm, ứng dụng này được thiết lập để chỉ phát một luồng. Thay đổi phần biến của ví dụ cho khớp với phần sau:
Tạo yêu cầu luồng nhóm trực tiếp hoặc VOD để bật tính năng Phân phát nhóm
Phân phát nhóm quảng cáo trong sự kiện phát trực tiếp
Xoá phương thức buildStreamRequest() đã được dùng để chuyển đổi giữa việc tạo nhiều loại luồng. Sau đó, hãy sửa đổi requestAndPlayAds() để gọi ImaSdkFactory.createPodStreamRequest() nhằm tạo một yêu cầu quảng cáo cho tính năng Phân phát nhóm quảng cáo trực tiếp.
Phân phát nhóm luồng VOD
Xoá phương thức buildStreamRequest() đã được dùng để chuyển đổi giữa việc tạo nhiều loại luồng. Sau đó, hãy sửa đổi requestAndPlayAds() để gọi ImaSdkFactory.createPodVodStreamRequest() nhằm tạo yêu cầu quảng cáo Phân phát nhóm VOD.
Sau khi tạo thực thể yêu cầu luồng, hãy yêu cầu luồng bằng cách sử dụng AdsLoader.requestStream():
Chỉnh sửa và đặt URL của sự kiện phát trực tiếp
Phân phát nhóm quảng cáo trong sự kiện phát trực tiếp
Gọi phương thức StreamManager.getStreamId() để lấy mã luồng. Bạn cần chèn mã này vào STEAM_URL để thay thế "[[STREAMID]]". Sau khi thực hiện thay đổi này, hãy đặt URL luồng mới bằng phương thức videoPlayer.setStreamUrl() và gọi phương thức videoPlayer.play() để bắt đầu phát luồng.
Phân phát nhóm luồng VOD
- Gọi phương thức
StreamManager.getStreamId()để lấy mã luồng. - Yêu cầu URL của luồng phát từ đối tác công nghệ video (VTP).
- Sau khi bạn nhận được URL từ VTP, hãy gọi phương thức
StreamManager.loadThirdPartyStream()bằng URL để tải luồng, cùng với mọi phụ đề mà VTP trả về.
Đối với các yêu cầu Phân phát nhóm quảng cáo cho VOD, IMA sẽ gọi lệnh gọi lại VideoStreamPlayer.loadUrl() khi luồng đã tải xong. Để bắt đầu phát trực tuyến, hãy thêm lệnh gọi videoPlayer.setStreamUrl() và videoPlayer.play() vào lệnh gọi lại VideoStreamPlayer.loadUrl():
Dọn dẹp các thành phần IMA DAI
Khi bạn đã hoàn tất thành công việc yêu cầu và hiển thị quảng cáo trong một luồng Phân phát nhóm quảng cáo bằng IMA DAI SDK, bạn nên dọn dẹp mọi tài nguyên sau khi phiên Phân phát nhóm quảng cáo hoàn tất. Gọi StreamManager.destroy() để dừng phát trực tuyến, dừng tất cả hoạt động theo dõi quảng cáo và giải phóng tất cả thành phần luồng đã tải.
Để xem các ví dụ khác về cách sử dụng SDK Android, hãy xem các mẫu trên GitHub.