Chọn giải pháp DAI mà bạn quan tâm
DAI (Chèn quảng cáo động) đầy đủ dịch vụ
Hướng dẫn này minh hoạ cách phát một luồng DAI, sử dụng SDK IMA CAF DAI. Nếu bạn muốn xem hoặc theo dõi một quá trình tích hợp mẫu hoàn chỉnh, tải ví dụ xuống.
Trước khi sử dụng hướng dẫn này, hãy nhớ làm quen với Chromecast
Giao thức Web nhận của Khung ứng dụng. Chiến dịch này
hướng dẫn giả định mức độ quen thuộc cơ bản với các khái niệm về bộ thu CAF, chẳng hạn như
tin nhắn
thiết bị chặn
và
mediaInformation
đối tượng, cũng như quen với việc sử dụng Lệnh truyền và Điều khiển
để mô phỏng người gửi CAF.
Để sử dụng IMA DAI, bạn phải có Ad Manager 360. Nếu bạn có một Quảng cáo Tài khoản người quản lý, hãy liên hệ với người quản lý tài khoản của bạn để biết thêm chi tiết. Để biết thông tin về việc đăng ký Ad Manager, hãy truy cập vào phần Trợ giúp Ad Manager .
Để biết thông tin về cách tích hợp với các nền tảng khác hoặc về cách sử dụng IMA SDK phía máy khách, hãy xem SDK quảng cáo trên phương tiện truyền thông tương tác.
Tổng quan về CAF DAI
Việc triển khai DAI bằng cách sử dụng SDK DAI của IMA CAF bao gồm hai thành phần chính như được trình bày trong hướng dẫn này:
StreamRequest
: Đối tượng xác định yêu cầu truyền trực tuyến đến các máy chủ quảng cáo của Google. Yêu cầu luồng có hai loại chính:LiveStreamRequest
: chỉ định một Khoá tài sản và một khoá API tuỳ chọn, cũng như các tham số không bắt buộc.VODStreamRequest
: Chỉ định một ID nguồn nội dung, một ID video và một API không bắt buộc , cũng như 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à IMA DAI SDK, 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
- Tài khoản Cast Developer Console có thiết bị thử nghiệm đã đăng ký.
- Một trình thu nhận dữ liệu web được lưu trữ ứng dụng của bạn đã đăng ký với Bảng điều khiển dành cho nhà phát triển Cast và có thể được sửa đổi để lưu trữ mã do hướng dẫn này cung cấp.
- Một ứng dụng gửi được định cấu hình để dùng ứng dụng nhận web. Ví dụ này sử dụng công cụ Truyền lệnh và điều khiển làm cho người gửi.
Định cấu hình đối tượng MediaInfo của người gửi
Trước tiên, hãy định cấu hình tệp MediaInfo của ứng dụng của người gửi đối tượng cần thêm vào các trường sau:
contentId
|
Giá trị nhận dạng duy nhất của mục nội dung đa phương tiện này | |
contentUrl
|
URL luồng dự phòng sẽ tải nếu DAI StreamRequest không thành công đối với bất kỳ lý do | |
streamType
|
Đối với sự kiện phát trực tiếp, bạn nên đặt giá trị này thành "TRỰC TIẾP". Đối với sự kiện phát trực tiếp VOD, giá trị này phải được đặt thành "BUFFERED" | |
customData
|
assetKey
|
Chỉ áp dụng cho sự kiện phát trực tiếp. Xác định sự kiện phát trực tiếp sẽ tải |
contentSourceId
|
Chỉ luồng VOD. Xác định nguồn cấp dữ liệu đa phương tiện chứa luồng yêu cầu. | |
videoId
|
Chỉ luồng VOD. Xác định luồng được yêu cầu trong nguồn cấp dữ liệu phương tiện đã chỉ định. | |
ApiKey
|
Bạn có thể cần một khoá API tuỳ ý để truy xuất URL luồng từ SDK IMA DAI | |
senderCanSkip
|
Giá trị boolean cho người nhận biết liệu thiết bị gửi có khả năng hiển thị nút bỏ qua, cho phép hỗ trợ quảng cáo có thể bỏ qua |
Để định cấu hình các giá trị này trong công cụ điều khiển và lệnh truyền, hãy nhấp vào nút Tải
Media (Nội dung đa phương tiện) rồi đặt loại yêu cầu tải tuỳ chỉnh thành LOAD
. Sau đó thay thế
Dữ liệu JSON trong vùng văn bản có một trong các đối tượng JSON sau:
TRỰC TIẾP
{
"media": {
"contentId": "bbb",
"contentUrl": "https://storage.googleapis.com/interactive-media-ads/media/bbb.m3u8",
"streamType": "LIVE",
"customData": {
"assetKey": "sN_IYUG8STe1ZzhIIE_ksA",
"ApiKey": "",
"senderCanSkip": true
}
},
"credentials": "testCredentials"
}
Video theo yêu cầu
{
"media": {
"contentId": "tos",
"contentUrl": "https://storage.googleapis.com/interactive-media-ads/media/tos.m3u8",
"streamType": "BUFFERED",
"customData": {
"contentSourceId": "2548831",
"videoId": "tears-of-steel",
"ApiKey": "",
"senderCanSkip": true
}
},
"credentials": "testCredentials"
}
Bạn có thể gửi đối tượng yêu cầu tải tuỳ chỉnh này đến trình nhận để kiểm tra các bước sau.
Tạo một bộ thu CAF cơ bản
Làm theo Hướng dẫn về bộ thu cơ bản của CAF SDK, hãy tạo một bộ thu web cơ bản.
Mã của bộ nhận sẽ có dạng như sau:
<html>
<head>
<script type="text/javascript"
src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js">
</script>
</head>
<body>
<cast-media-player></cast-media-player>
<script>
cast.framework.CastReceiverContext.getInstance().start();
</script>
</body>
</html>
Nhập SDK IMA DAI và tải Trình quản lý trình phát
Thêm một thẻ tập lệnh để nhập SDK IMA DAI cho CAF vào bộ thu web của bạn, chỉ cần sau khi tập lệnh tải CAF. SDK DAI CAF luôn cập nhật, vì vậy không cần để đặt một phiên bản cụ thể. Sau đó, trong thẻ tập lệnh tiếp theo, hãy lưu trữ ngữ cảnh của receiver và trình quản lý trình phát dưới dạng hằng số trước khi khởi động receiver.
<html>
<head>
<script type="text/javascript"
src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js"></script>
<script src="//imasdk.googleapis.com/js/sdkloader/cast_dai.js"></script>
</head>
<body>
<cast-media-player></cast-media-player>
<script>
const castContext = cast.framework.CastReceiverContext.getInstance();
const playerManager = castContext.getPlayerManager();
castContext.start();
</script>
</body>
</html>
Khởi chạy Trình quản lý luồng IMA
Khởi chạy Luồng của SDK DAI CAF Người quản lý.
<html>
<head>
<script type="text/javascript"
src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js"></script>
<script src="//imasdk.googleapis.com/js/sdkloader/cast_dai.js"></script>
</head>
<body>
<cast-media-player></cast-media-player>
<script>
const castContext = cast.framework.CastReceiverContext.getInstance();
const playerManager = castContext.getPlayerManager();
const streamManager = new google.ima.cast.dai.api.StreamManager();
castContext.start();
</script>
</body>
</html>
Tạo trình chặn thông báo tải
SDK DAI CAF sử dụng thông báo tải CAF
trình chặn
để thực hiện yêu cầu luồng và thay thế URL nội dung bằng luồng DAI cuối cùng.
Trình chặn thông báo gọi streamManager.requestStream(), phương thức này xử lý
đặt điểm chèn quảng cáo, yêu cầu phát trực tiếp và thay thế quảng cáo hiện có
contentURL
.
Chỉ có thể có một trình chặn thông báo tải, vì vậy, nếu ứng dụng của bạn cần sử dụng trình chặn, bạn cần kết hợp bất kỳ hàm tuỳ chỉnh nào vào cùng một .
<html>
<head>
<script type="text/javascript"
src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js"></script>
<script src="//imasdk.googleapis.com/js/sdkloader/cast_dai.js"></script>
</head>
<body>
<cast-media-player></cast-media-player>
<script>
const castContext = cast.framework.CastReceiverContext.getInstance();
const playerManager = castContext.getPlayerManager();
const streamManager = new google.ima.cast.dai.api.StreamManager();
const getStreamRequest = (request) => null;
playerManager.setMessageInterceptor(
cast.framework.messages.MessageType.LOAD, (request) => {
return streamManager.requestStream(request, getStreamRequest(request))
.then((request) => {
this.broadcast('Stream request successful.');
return Promise.resolve(request);
})
.catch((error) => {
this.broadcast('Stream request failed.');
return Promise.resolve(request);
});
});
castContext.start();
</script>
</body>
</html>
Tạo yêu cầu luồng
Để hoàn tất quá trình tích hợp DAI với CAF, bạn cần tạo luồng của mình
yêu cầu
bằng cách sử dụng dữ liệu có trong đối tượng mediaInfo
từ người gửi.
<html>
<head>
<script type="text/javascript"
src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js"></script>
<script src="//imasdk.googleapis.com/js/sdkloader/cast_dai.js"></script>
</head>
<body>
<cast-media-player></cast-media-player>
<script>
const castContext = cast.framework.CastReceiverContext.getInstance();
const playerManager = castContext.getPlayerManager();
const streamManager = new google.ima.cast.dai.api.StreamManager();
const getStreamRequest = (request) => {
const imaRequestData = request.media.customData;
let streamRequest = null;
if (imaRequestData.assetKey) {
// Live stream
streamRequest = new google.ima.cast.dai.api.LiveStreamRequest();
streamRequest.assetKey = imaRequestData.assetKey;
} else if (imaRequestData.contentSourceId) {
// VOD stream
streamRequest = new google.ima.cast.dai.api.VODStreamRequest();
streamRequest.contentSourceId = imaRequestData.contentSourceId;
streamRequest.videoId = imaRequestData.videoId;
}
if (streamRequest && imaRequestData.ApiKey) {
streamRequest.ApiKey = imaRequestData.ApiKey;
}
if (streamRequest && imaRequestData.senderCanSkip) {
streamRequest.senderCanSkip = imaRequestData.senderCanSkip;
}
return streamRequest;
};
playerManager.setMessageInterceptor(
cast.framework.messages.MessageType.LOAD, (request) => {
return streamManager.requestStream(request, getStreamRequest(request))
.then((request) => {
return Promise.resolve(request);
})
.catch((error) => {
this.broadcast('Stream request failed.');
return Promise.resolve(request);
});
});
castContext.start();
</script>
</body>
</html>
Giờ đây, bạn có thể yêu cầu và phát các luồng DAI bằng SDK DAI CAF của Google. Để tìm hiểu thêm về các tính năng SDK nâng cao, hãy xem các hướng dẫn khác hoặc tải xuống receiver mẫu của chúng tôi ứng dụng của bạn.