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 tuân thủ VAST và quản lý việc phát quảng cáo trong các ứng dụng của bạn. Với SDK IMA DAI, ứng dụng tạo ra yêu cầu phát trực tuyến cho quảng cáo và video nội dung, VOD hoặc nội dung trực tiếp. Sau đó, SDK này 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 của bạn.
Chọn giải pháp DAI mà bạn quan tâm
DAI phân phát nhóm
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 tuân thủ VAST và quản lý việc phát quảng cáo trong các ứng dụng của bạn. Với SDK IMA DAI, ứng dụng tạo ra yêu cầu phát trực tuyến cho quảng cáo và video nội dung, VOD hoặc nội dung trực tiếp. Sau đó, SDK này 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 của bạn.
Hướng dẫn này minh hoạ cách phát một luồng Phân phát nhóm DAI, bằng cách sử dụng IMA DAI SDK có một trình phát video đơn giản để phát trực tiếp và phát trực tiếp VOD. Nếu bạn muốn muốn xem hoặc theo dõi một quá trình tích hợp mẫu hoàn chỉnh, hãy tải ví dụ về việc phân phát nhóm.
Tổng quan về việc phân phát nhóm IMA DAI
StreamRequest
: Một đối tượng xác định yêu cầu truyền trực tuyến máy chủ quảng cáo của Google. Phải được tạo bằng một trong haiImaSdkFactory.createPodStreamRequest()
hoặcImaSdkFactory.createPodVodStreamRequest()
để bật tính năng phân phát nhóm. Các phương pháp này yêu cầu Mã mạng vàcreatePodStreamRequest
cũng yêu cầu một Khoá thành phần tuỳ chỉnh và một khoá API tuỳ chọn. 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 phát trực tuyến đế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 với SDK IMA DAI để phát các luồng video bằng Quảng cáo DAI. Nếu chưa có một ứng dụng như vậy, bạn nên sử dụng Tính năng DAI (Chèn quảng cáo động) trên Android BasicExample dưới dạng một điểm xuất phát. BasicExample có cơ sở mã được tham chiếu trong hướng dẫn này.
Điều quan trọng là ứng dụng của bạn phải gửi các sự kiện ID3 bằng
VideoStreamPlayerCallback.onUserTextReceived()
để IMA DAI hoạt động. 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
Tất cả các thay đổi cần thiết để phân phát nhóm đều được thực hiện trong SampleAdsWrapper.java. Chiến lược phát hành đĩa đơn bước đầu tiên là cập nhật các biến không đổi.
Dưới đâ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 sự kiện phát trực tiếp video do trình điều khiển tệp kê khai hoặc đối tác bên thứ ba sử dụng tính năng phân phát nhóm. Phải yêu cầu bạn phải chèn mã luồng do SDK IMA DAI cung cấp trước khi đưa ra yêu cầu. Trong trường hợp này, URL luồng bao gồm phần giữ chỗ,"[[STREAMID]]"
, được thay thế bằng mã luồng trước khi thực hiện của bạn.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á tài sản tuỳ chỉnh xác định sự kiện phân phát nhóm trong Ad Manager 360. Người tạo có thể tạo trình điều khiển tệp kê khai hoặc đối tác phân phát nhóm bên thứ ba của bạn.API_KEY
: Chỉ dùng cho sự kiện phát trực tiếp – Một khoá API không bắt buộc, có thể cần thiết để truy xuất ID luồng từ SDK IMA DAI.
Ví dụ cơ bản cho tính năng DAI trên Android được thiết kế để phát nhiều luồng khác nhau nhưng để phân phát nhóm, tệp được thiết lập để chỉ phát một luồng duy nhất. Hãy thay đổi phần biến của ví dụ để khớp với thông tin sau:
/** This class adds ad-serving support to Sample HlsVideoPlayer */
public class SampleAdsWrapper
implements AdEvent.AdEventListener, AdErrorEvent.AdErrorListener, AdsLoader.AdsLoadedListener {
// Podserving Stream Constants.
private static final String STREAM_URL =
"https://encodersim.sandbox.google.com/masterPlaylist/9c654d63-5373-4673-8c8d-6d92b66b9d46/" +
"master.m3u8?gen-seg-redirect=true&network=51636543&event=google-sample" +
"&pids=devrel4628000,devrel896000,devrel3528000,devrel1428000,devrel2628000,devrel1928000" +
"&seg-host=dai.google.com&stream_id=[[STREAMID]]";
private static final String NETWORK_CODE = "51636543";
private static final String CUSTOM_ASSET_KEY = "google-sample";
private static final String API_KEY = "";
private static final String PLAYER_TYPE = "DAISamplePlayer";
/** Log interface, so we can output the log commands to the UI or similar. */
public interface Logger {
...
Tạo yêu cầu luồng trực tiếp hoặc nhóm VOD để bật tính năng phân phát nhóm
Phân phát nhóm sự kiện phát trực tiếp
Xoá phương thức buildStreamRequest()
đã được dùng để chuyển đổi giữa
tạo nhiều loại luồng. Sau đó, thay đổi requestAndPlayAds()
để gọi
ImaSdkFactory.createPodStreamRequest()
để tạo quảng cáo phân phát nhóm trực tiếp
của bạn. Cuối cùng, hãy yêu cầu luồng bằng AdsLoader.requestStream()
.
public void requestAndPlayAds() {
StreamRequest request =
sdkFactory.createPodStreamRequest(NETWORK_CODE, CUSTOM_ASSET_KEY, API_KEY);
request.setFormat(StreamFormat.HLS);
adsLoader.addAdErrorListener(this);
adsLoader.addAdsLoadedListener(this);
adsLoader.requestStream(request);
}
Phân phát nhóm sự kiện phát trực tiếp VOD
Xoá phương thức buildStreamRequest()
đã được dùng để chuyển đổi giữa
tạo nhiều loại luồng. Sau đó, thay đổi requestAndPlayAds()
để gọi
ImaSdkFactory.createPodVodStreamRequest()
để tạo quảng cáo phân phát nhóm VOD
của bạn. Cuối cùng, hãy yêu cầu luồng bằng AdsLoader.requestStream()
.
public void requestAndPlayAds() {
StreamRequest request =
sdkFactory.createPodVodStreamRequest(NETWORK_CODE);
request.setFormat(StreamFormat.HLS);
adsLoader.addAdErrorListener(this);
adsLoader.addAdsLoadedListener(this);
adsLoader.requestStream(request);
}
Chỉnh sửa và thiết lập URL của sự kiện phát trực tiếp
Phân phát nhóm sự kiện phát trực tiếp
Gọi StreamManager.getStreamId()
để lấy mã luồng. Sau đó,
đã chèn vào STEAM_URL
thay thế cho "[[STREAMID]]"
. Sau thay đổi này là
bạn có thể đặt URL luồng mới bằng videoPlayer.setStreamUrl()
.
@Override
public void onAdsManagerLoaded(AdsManagerLoadedEvent event) {
streamManager = event.getStreamManager();
streamManager.addAdErrorListener(this);
streamManager.addAdEventListener(this);
// To enable streams
String streamID = streamManager.getStreamId();
String streamUrl = STREAM_URL.replace("[[STREAMID]]", streamID);
streamManager.init();
videoPlayer.setStreamUrl(streamUrl);
videoPlayer.play();
}
Phân phát nhóm sự kiện phát trực tiếp VOD
Gọi StreamManager.getStreamId()
để lấy mã luồng. Sau đó, hãy yêu cầu
URL phát trực tuyến từ đối tác công nghệ video (VTP). Sau đó gọi
StreamManager.loadThirdPartyStream()
để IMA tải URL luồng và bất kỳ
phụ đề do TVP của bạn trả về.
@Override
public void onAdsManagerLoaded(AdsManagerLoadedEvent event) {
streamManager = event.getStreamManager();
streamManager.addAdErrorListener(this);
streamManager.addAdEventListener(this);
// To enable streams
String streamID = streamManager.getStreamId();
// 'vtpInterface' is a place holder for your own video technology partner
// (VTP) API calls.
String streamUrl = vtpInterface.requestStreamURL(streamID);
streamManager.init();
// Pass any subtitles returned by your VTP in this step as well.
streamManager.loadThirdPartyStream(streamUrl, subtitles);
}
Khi tính năng phân phát nhóm được bật, IMA sẽ không thực hiện lệnh gọi đến
VideoStreamPlayer.loadUrl()
, vì vậy, bạn có thể xoá mọi lệnh gọi đến
videoPlayer.setStreamUrl()
và videoPlayer.play()
từ cuộc trò chuyện đó.
Vậy là xong! Bạn hiện đang yêu cầu và hiển thị quảng cáo trong luồng phân phát nhóm với SDK IMA DAI. Để xem các ví dụ khác về cách sử dụng SDK Android, hãy xem mẫu trên GitHub.