Quy cách Quảng cáo xen kẽ HLS giới thiệu một cách linh hoạt để lập lịch và chèn quảng cáo vào luồng video hoặc âm thanh. Với phương pháp phía máy khách, ứng dụng của bạn có toàn quyền kiểm soát thời điểm yêu cầu và phát các điểm chèn quảng cáo bằng cách tạo lớp AVPlayerInterstitialEvent. Phương pháp này không yêu cầu thẻ EXT-X-DATERANGE trong tệp kê khai luồng nội dung. Quảng cáo xen kẽ HLS phía ứng dụng cho phép bạn chèn quảng cáo một cách linh động vào mọi nội dung mà không cần sửa đổi tệp kê khai luồng hoặc tệp đa phương tiện.
Hướng dẫn này trình bày cách tích hợp SDK Quảng cáo trên phương tiện truyền thông tương tác (IMA) vào một ứng dụng trình phát video tạo phiên phát trực tiếp Chèn quảng cáo do máy chủ hướng dẫn (SGAI) và lên lịch quảng cáo xen kẽ phía máy khách. Để biết thêm thông tin, hãy xem bài viết DAI do máy chủ hướng dẫn.
Điều kiện tiên quyết
Trước khi bắt đầu, bạn cần có những thông tin sau:
Một dự án Xcode mới, sử dụng
Storyboardcho giao diện người dùng. Để biết thêm thông tin, hãy xem bài viết Tạo dự án Xcode cho một ứng dụng.Google IMA SDK. Để biết thêm thông tin, hãy xem bài viết Thiết lập SDK IMA cho DAI.
Các thông số sau đây cho yêu cầu phát trực tiếp DAI:
NETWORK_CODE: Mã mạng Google Ad Manager của bạn.CUSTOM_ASSET_KEY: Chuỗi tuỳ chỉnh của bạn xác định sự kiện phát trực tiếp DAI. Sự kiện phát trực tiếp phải có loại DAI Tệp kê khai phân phát nhóm.
Định cấu hình bảng phân cảnh
Trong tệp iPhone.storyboard, hãy làm như sau:
- Tạo một đối tượng
UIViewlàm vùng chứa cho trình phát video và giao diện người dùng quảng cáo. - Tạo một thuộc tính
adUIViewcủa lớpViewControllerđể kết nối với đối tượngUIView. - Trong đối tượng
adUIView, hãy tạo mộtUIButtonđể hoạt động như một nút phát. - Tạo một thuộc tính
playButtoncủa lớpViewControllerđể kết nối với đối tượngUIButtonvà một hàmonPlayButtonTouchđể xử lý các thao tác nhấn của người dùng.
Khởi chạy một trình tải quảng cáo
Trong sự kiện viewDidLoad của bộ điều khiển chế độ xem chính, hãy làm như sau:
- Thiết lập trình phát video bằng các lớp
AVPlayervàAVPlayerLayer. - Tạo các đối tượng
IMAAdDisplayContainervàIMAAVPlayerVideoDisplay. Vùng chứa hiển thị quảng cáo chỉ địnhadUIViewđể IMA DAI SDK chèn các khung hiển thị phụ của giao diện người dùng quảng cáo. Đối tượng hiển thị video đóng vai trò là cầu nối giữa logic quảng cáo của SDK DAI IMA và hệ thống phát lại AVFoundation, theo dõi quá trình phát quảng cáo dạng video. - Khởi động đối tượng
IMAAdsLoaderbằng chế độ phát quảng cáo và chế độ cài đặt bản địa hoá giao diện người dùng quảng cáo.
Ví dụ sau đây khởi chạy một trình tải quảng cáo bằng một đối tượng IMASettings trống:
Đưa ra yêu cầu phát trực tuyến
Để yêu cầu quảng cáo cho một luồng nội dung, hãy tạo một đối tượng IMAPodStreamRequest rồi truyền đối tượng đó đến phiên bản IMAAdsLoader. Bạn có thể đặt thuộc tính adTagParameters để cung cấp các lựa chọn DAI và thông số nhắm mục tiêu cho luồng phát.
Ví dụ này gọi phương thức loadAdStream trong sự kiện viewDidAppear:
Trong ứng dụng phát hành công khai, hãy gọi phương thức loadAdStream sau khi người dùng chọn một luồng nội dung.
Xử lý sự kiện tải luồng phát
Triển khai giao thức IMAAdsLoaderDelegate để xử lý trạng thái thành công hoặc không thành công của yêu cầu truyền phát:
- Khi thành công, bạn sẽ nhận được một đối tượng
IMAAdsLoadedDatachứaIMAStreamManager. Lưu trữ giá trịstreamManager.streamIdcho phiên DAI hiện tại. - Khi thất bại, hãy ghi lại lỗi.
Ví dụ sau đây xử lý sự kiện luồng được tải và ghi lại sự kiện luồng không tải được:
Lên lịch chèn quảng cáo
Để lên lịch cho một điểm chèn quảng cáo, hãy tạo đối tượng AVPlayerInterstitialEvent. Đặt thuộc tính templateItems của đối tượng sự kiện thành một mảng gồm các đối tượng AVPlayerItem, trong đó mỗi đối tượng mục giữ một URL tệp kê khai nhóm quảng cáo.
Để tạo URL tệp kê khai nhóm quảng cáo, hãy làm theo tài liệu Phương thức: Tệp kê khai nhóm HLS.
Để minh hoạ, ví dụ sau đây sẽ tạo một chuỗi mã nhận dạng nhóm quảng cáo bằng cách sử dụng thời gian hiện tại của luồng phát trực tiếp nội dung. Hàm generatePodIdentifier trả về giá trị nhận dạng nhóm dưới dạng ad_break_id/mid-roll-{minute}.
Trong ứng dụng phát hành công khai, hãy truy xuất mã nhận dạng nhóm từ một nguồn cung cấp các giá trị riêng biệt cho từng điểm chèn quảng cáo, được đồng bộ hoá cho tất cả người xem sự kiện phát trực tiếp.
Ví dụ sau đây lên lịch cho một điểm chèn quảng cáo bắt đầu trong vòng 2 phút tiếp theo sau khi người dùng nhấp vào nút phát:
Phương thức scheduleAdInsertion sẽ tính toán thời gian bắt đầu điểm chèn quảng cáo và tạo URL tệp kê khai nhóm quảng cáo. Dùng URL này để tạo một đối tượng AVPlayerInterstitialEvent.
Nếu muốn, hãy dùng cấu trúc AVPlayerInterstitialEvent.Restrictions để hạn chế người dùng tua qua hoặc tua lại trong quá trình phát quảng cáo.
Xử lý sự kiện quảng cáo
Để xử lý các sự kiện quảng cáo, hãy triển khai giao thức IMAStreamManagerDelegate. Phương pháp này cho phép bạn theo dõi thời điểm bắt đầu và kết thúc các điểm chèn quảng cáo, đồng thời nhận thông tin về từng quảng cáo.
Chạy ứng dụng của bạn. Nếu thành công, bạn có thể yêu cầu và phát quảng cáo xen kẽ bằng cách sử dụng luồng tệp kê khai phân phát Pod.