راهکار DAI مورد نظرتان را انتخاب کنید
سرویس کامل DAI
این راهنما نحوه پخش یک جریان DAI را با استفاده از IMA CAF DAI SDK نشان میدهد. اگر مایل به مشاهده یا دنبال کردن یک نمونه کامل از یکپارچهسازی هستید، مثال را دانلود کنید .
قبل از استفاده از این راهنما، حتماً با پروتکل گیرنده وب چارچوب برنامه Chromecast آشنا شوید. این راهنما فرض را بر آشنایی اولیه با مفاهیم گیرنده CAF، مانند رهگیرهای پیام و اشیاء mediaInformation ، و همچنین آشنایی با استفاده از ابزار Cast Command and Control برای شبیهسازی یک فرستنده CAF میگذارد.
برای استفاده از IMA DAI، باید یک حساب Ad Manager 360 داشته باشید. اگر حساب Ad Manager دارید، برای اطلاعات بیشتر با مدیر حساب خود تماس بگیرید. برای کسب اطلاعات در مورد ثبت نام در Ad Manager، به مرکز راهنمایی Ad Manager مراجعه کنید.
برای اطلاعات بیشتر در مورد ادغام با سایر پلتفرمها یا استفاده از SDK های سمت کلاینت IMA، به بخش SDK های تبلیغات رسانهای تعاملی مراجعه کنید.
بررسی اجمالی CAF DAI
پیادهسازی DAI با استفاده از IMA CAF DAI SDK شامل دو جزء اصلی است که در این راهنما نشان داده شده است:
StreamRequest: شیءای که درخواست پخش زنده به سرورهای تبلیغاتی گوگل را تعریف میکند. درخواستهای پخش زنده در دو نوع اصلی ارائه میشوند:-
LiveStreamRequest: یک کلید دارایی و همچنین سایر پارامترهای اختیاری را مشخص میکند. -
VODStreamRequest: شناسه منبع محتوا ، شناسه ویدیو و همچنین سایر پارامترهای اختیاری را مشخص میکند. - هر دو نوع درخواست میتوانند به صورت اختیاری شامل یک کلید API مورد نیاز برای دسترسی به جریانهای مشخص شده و یک کد شبکه Google Ad Manager برای IMA SDK باشند تا شناسههای تبلیغات را طبق تنظیمات Google Ad Manager مدیریت کنند.
-
StreamManager: شیءای که ارتباط بین جریان ویدئو و IMA DAI SDK را مدیریت میکند، مانند اجرای پینگهای ردیابی و ارسال رویدادهای جریان به ناشر.
پیشنیازها
- یک حساب کنسول توسعهدهنده Cast با یک دستگاه آزمایشی ثبتشده.
- یک برنامه گیرنده وب میزبانی شده که در کنسول توسعهدهنده Cast شما ثبت شده است و میتواند برای میزبانی کد ارائه شده توسط این راهنما اصلاح شود.
- یک برنامه ارسال که برای استفاده از برنامه گیرنده وب شما پیکربندی شده است. این مثال از ابزار Cast Command and Control به عنوان فرستنده استفاده میکند.
پیکربندی اشیاء MediaInfo فرستنده
ابتدا، شیء MediaInfo برنامه فرستنده خود را طوری پیکربندی کنید که فیلدهای زیر را شامل شود:
contentId | یک شناسه منحصر به فرد برای این مورد رسانهای | |
contentUrl | آدرس اینترنتی جریان جایگزین که در صورت عدم موفقیت درخواست جریان DAI به هر دلیلی، بارگذاری میشود. | |
streamType | برای پخش زنده، این مقدار باید روی «زنده» تنظیم شود. برای پخش VOD، این مقدار باید روی «بافر شده» تنظیم شود. | |
customData | assetKey | فقط پخش زنده. پخش زندهای که باید بارگیری شود را شناسایی میکند. |
contentSourceId | فقط پخشهای VOD. فید رسانهای حاوی پخش درخواستی را شناسایی میکند. | |
videoId | فقط پخشهای VOD. پخش درخواستی را در فید رسانهای مشخصشده شناسایی میکند. | |
networkCode | (اختیاری) کد شبکه مدیریت تبلیغات گوگل شما. | |
ApiKey | یک کلید API اختیاری که میتواند برای بازیابی URL جریان از IMA DAI SDK مورد نیاز باشد. | |
senderCanSkip | یک مقدار بولی برای اینکه به گیرنده اطلاع دهد که آیا دستگاه فرستنده قابلیت نمایش دکمه رد کردن را دارد یا خیر، و پشتیبانی از تبلیغات قابل رد کردن را فعال میکند. | |
برای پیکربندی این مقادیر در ابزار فرمان و کنترل تبدیل، روی تب Load Media کلیک کنید و نوع درخواست بارگذاری سفارشی را روی LOAD تنظیم کنید. سپس دادههای JSON موجود در قسمت متن را با یکی از اشیاء JSON زیر جایگزین کنید:
زنده
{
"media": {
"contentId": "bbb",
"contentUrl": "https://storage.googleapis.com/interactive-media-ads/media/bbb.m3u8",
"streamType": "LIVE",
"customData": {
"assetKey": "c-rArva4ShKVIAkNfy6HUQ",
"networkCode": "21775744923",
"ApiKey": "",
"senderCanSkip": true
}
},
"credentials": "testCredentials"
}
وی او دی
{
"media": {
"contentId": "tos",
"contentUrl": "https://storage.googleapis.com/interactive-media-ads/media/tos.m3u8",
"streamType": "BUFFERED",
"customData": {
"contentSourceId": "2548831",
"videoId": "tears-of-steel",
"networkCode": "21775744923",
"ApiKey": "",
"senderCanSkip": true
}
},
"credentials": "testCredentials"
}
این شیء درخواست بارگذاری سفارشی میتواند برای آزمایش مراحل زیر به گیرنده ارسال شود.
یک گیرنده CAF پایه ایجاد کنید
با دنبال کردن راهنمای گیرنده پایه CAF SDK، یک گیرنده وب پایه ایجاد کنید.
کد گیرنده شما باید به این شکل باشد:
<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>
IMA DAI SDK را وارد کنید و Player Manager را دریافت کنید.
درست پس از بارگذاری اسکریپت CAF، یک تگ اسکریپت برای وارد کردن IMA DAI SDK برای CAF به گیرنده وب خود اضافه کنید. CAF DAI SDK همیشه در دسترس است، بنابراین نیازی به تنظیم نسخه خاصی نیست. سپس در تگ اسکریپتی که در ادامه میآید، قبل از شروع گیرنده، زمینه گیرنده و مدیر پخش را به عنوان ثابت ذخیره کنید.
<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>
مقداردهی اولیه مدیر جریان IMA
مدیر جریان CAF DAI SDK را مقداردهی اولیه کنید.
<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>
ایجاد رهگیر پیام بارگذاری
کیت توسعه نرمافزار CAF DAI از رهگیر پیام بارگذاری CAF برای ایجاد درخواستهای جریان و جایگزینی URL محتوا با جریان DAI نهایی استفاده میکند. رهگیر پیام، streamManager.requestStream() را فراخوانی میکند که تنظیم وقفههای تبلیغاتی، درخواست جریان و جایگزینی contentURL موجود را مدیریت میکند.
فقط یک رهگیر پیام بارگذاری میتواند وجود داشته باشد، بنابراین اگر برنامه شما نیاز به استفاده از رهگیر دارد، باید هر تابع سفارشی را در همان فراخوانی مجدد بگنجانید.
<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>
درخواست استریم را بسازید
برای تکمیل یکپارچهسازی CAF DAI، باید درخواست جریان خود را با استفاده از دادههایی که در شیء mediaInfo از فرستنده گنجانده شده است، بسازید.
<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.networkCode) {
streamRequest.networkCode = imaRequestData.networkCode;
}
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>
اکنون میتوانید با استفاده از CAF DAI SDK گوگل، درخواست و پخش جریانهای DAI را انجام دهید. برای کسب اطلاعات بیشتر در مورد ویژگیهای پیشرفتهتر SDK، به راهنماهای دیگر مراجعه کنید یا برنامههای گیرنده نمونه ما را دانلود کنید .