کیتهای توسعه نرمافزار IMA ادغام تبلیغات چندرسانهای را در وبسایتها و برنامههای شما آسان میکنند. کیتهای توسعه نرمافزار IMA میتوانند از هر سرور تبلیغاتی سازگار با VAST درخواست تبلیغات کنند و پخش تبلیغات را در برنامههای شما مدیریت کنند. با کیتهای توسعه نرمافزار IMA DAI، برنامهها درخواست پخش جریانی برای تبلیغات و ویدیوی محتوا - چه VOD و چه محتوای زنده - ارسال میکنند. سپس SDK یک جریان ویدیویی ترکیبی را برمیگرداند، به طوری که شما مجبور نیستید جابجایی بین ویدیوی تبلیغ و محتوا را در برنامه خود مدیریت کنید.
راهکار DAI مورد نظرتان را انتخاب کنید
پخش زندههای ثبتشده با Google Cloud Video Stitcher API
این راهنما نحوه استفاده از IMA DAI SDK برای HTML5 را برای درخواست و پخش پخش زنده برای رویدادی که در Google Cloud Video Stitcher API ثبت شده است، و نحوه درج یک تبلیغ کوتاه در هنگام پخش را نشان میدهد.
این راهنما، مثال پایه از راهنمای شروع به کار برای IMA DAI را بسط میدهد.
برای اطلاعات بیشتر در مورد ادغام با سایر پلتفرمها یا استفاده از SDK های سمت کلاینت IMA، به بخش SDK های تبلیغات رسانهای تعاملی مراجعه کنید.
برای مشاهده یا دنبال کردن یک نمونه تکمیلشده از یکپارچهسازی، نمونه Cloud video stitcher را برای HLS یا DASH دانلود کنید.
راهاندازی یک پروژه گوگل کلود
یک پروژه Google Cloud راهاندازی کنید و حسابهای سرویس را برای دسترسی به پروژه پیکربندی کنید .
با استفاده از پخش زنده محتوای خودتان یا یک پخش زنده آزمایشی، پیکربندی یک رویداد پخش زنده را ایجاد کنید . این راهنما انتظار یک پخش زنده HLS را دارد.
متغیرهای زیر را برای استفاده در IMA SDK وارد کنید:- مکان
- منطقه Google Cloud که پیکربندی زنده شما در آن ایجاد شده است:
LOCATION - شماره پروژه
- شماره پروژه گوگل کلود با استفاده از رابط برنامهنویسی کاربردی Video Stitcher:
PROJECT_NUMBER - توکن OAuth
توکن OAuth کوتاهمدت یک حساب کاربری سرویس با نقش کاربری Video Stitcher:
OAUTH_TOKEN
درباره ایجاد اعتبارنامههای کوتاهمدت برای حسابهای سرویس بیشتر بخوانید. توکن OAuth تا زمانی که منقضی نشده باشد، میتواند در چندین درخواست دوباره استفاده شود.
- کد شبکه
کد شبکه مدیریت تبلیغات برای درخواست تبلیغات:
NETWORK_CODE
- شناسه پیکربندی زنده
- شناسه پیکربندی زندهای که هنگام ایجاد رویداد پخش زنده خود مشخص کردهاید:
LIVE_CONFIG_ID - کلید دارایی سفارشی
- کلید دارایی سفارشی مدیر تبلیغات (Ad Manager) که در طول فرآیند ایجاد پیکربندی برای یک رویداد پخش زنده با رابط برنامهنویسی کاربردی دوخت ویدیو (Video Stitcher API) ایجاد شده است:
CUSTOM_ASSET_KEY
پیکربندی یک محیط توسعه
برنامههای نمونه IMA فقط درخواستهای پخش HLS را نشان میدهند. شما همچنان میتوانید هنگام ساخت کلاس VideoStitcherLiveStreamRequest از پخشهای DASH استفاده کنید. هنگام تنظیم پخشکننده سازگار با DASH، باید یک شنونده برای رویدادهای پیشرفت پخشکننده ویدیوی خود تنظیم کنید که بتواند فرادادههای ویدیو را به StreamManager.processMetadata() ارائه دهد. این تابع سه پارامتر میگیرد:
type: رشتهای که باید برای جریانهای HLS روی'ID3'و برای جریانهای DASH'urn:google:dai:2018'تنظیم شود.data: برای پیامهای رویداد DASH، این رشته داده پیام است.timestamp: عددی که زمان شروع پیام رویداد برای جریانهای DASH است.
فرادادهها را در اسرع وقت و به دفعاتی که رویدادهای بازیکن شما میتوانند ارائه دهند، ارسال کنید. اگر فرادادهها وجود نداشته باشند یا صحیح نباشند، ممکن است IMA DAI SDK رویدادهای تبلیغاتی را فعال نکند و منجر به گزارش نادرست رویدادهای تبلیغاتی شود.
نمونههای IMA DAI برای HTML5 را دانلود کنید و نمونه ساده HLS.js را در یک پوشه جدید استخراج کنید. این مثال یک برنامه وب است که میتوانید آن را به صورت محلی برای اهداف آزمایشی میزبانی کنید.
برای میزبانی مثال به صورت محلی، به پوشه جدید بروید و دستور پایتون زیر را برای شروع یک وب سرور اجرا کنید:
python3 -m http.server 8000http.server فقط در پایتون ۳.x موجود است. میتوانید از هر وب سرور دیگری مانند Apache HTTP Server یا Node JS استفاده کنید.
یک مرورگر وب باز کنید و برای دیدن پخشکننده ویدیو به localhost:8000 بروید. مرورگر شما باید از کتابخانه HLS.js پشتیبانی کند.
اگر همه چیز به درستی کار کند، با کلیک بر روی دکمه پخش در پخش کننده ویدیو، فیلم کوتاه "اشکهای فولاد" پس از یک تبلیغ کوتاه آغاز میشود. این محتوا با استفاده از پخش ویدیوی درخواستی (VOD) ارائه میشود.
درخواست پخش زنده
برای جایگزینی پخش زنده VOD نمونه با پخش زنده خود، از کلاس VideoStitcherLiveStreamRequest استفاده کنید که به طور خودکار یک جلسه تبلیغاتی با Google Ad Manager ایجاد میکند. میتوانید از رابط کاربری Google Ad Manager برای یافتن جلسات DAI تولید شده برای نظارت و اشکالزدایی استفاده کنید.
در نمونه موجود، توابعی برای درخواست پخش VOD یا پخش زنده وجود دارد. برای اینکه با API مربوط به Google Cloud Video Stitcher کار کند، باید یک تابع جدید برای برگرداندن شیء VideoStitcherLiveStreamRequest اضافه کنید.
در اینجا یک مثال آورده شده است:
// StreamManager which will be used to request ad-enabled streams.
let streamManager;
...
function initPlayer() {
videoElement = document.getElementById('video');
adUiElement = document.getElementById('adUi');
streamManager = new google.ima.dai.api.StreamManager(
videoElement,
adUiElement
);
streamManager.addEventListener(
[
google.ima.dai.api.StreamEvent.Type.LOADED,
google.ima.dai.api.StreamEvent.Type.ERROR,
google.ima.dai.api.StreamEvent.Type.AD_BREAK_STARTED,
google.ima.dai.api.StreamEvent.Type.AD_BREAK_ENDED
],
onStreamEvent, false);
hls.on(Hls.Events.FRAG_PARSING_METADATA, function(event, data) {
if (streamManager && data) {
// For each ID3 tag in our metadata, we pass in the type - ID3, the
// tag data (a byte array), and the presentation timestamp (PTS).
data.samples.forEach(function(sample) {
streamManager.processMetadata('ID3', sample.data, sample.pts);
});
}
});
videoElement.addEventListener('pause', () => {
playButton.style.display = 'block';
});
playButton.addEventListener('click', initiatePlayback);
}
function initiatePlayback() {
requestVideoStitcherStream();
playButton.style.display = "none";
playButton.removeEventListener('click', initiatePlayback);
playButton.addEventListener('click', resumePlayback);
}
...
function requestVideoStitcherStream() {
const streamRequest = new google.ima.dai.api.VideoStitcherLiveStreamRequest();
streamRequest.liveStreamEventId = 'LIVE_CONFIG_ID';
streamRequest.region = 'LOCATION';
streamRequest.projectNumber = 'PROJECT_NUMBER';
streamRequest.oAuthToken = 'OAUTH_TOKEN';
streamRequest.networkCode = 'NETWORK_CODE';
streamRequest.customAssetKey = 'CUSTOM_ASSET_KEY';
streamManager.requestStream(streamRequest);
}
برای آزمایش محلی، اگر فایلهای پخش زنده در یک فضای ذخیرهسازی ابری قرار دارند، باید CORS را برای origin http://localhost:8000 فعال کنید.
صفحه را دوباره بارگذاری کنید. سپس، میتوانید پخش زندههای سفارشی را درخواست و پخش کنید.
(اختیاری) گزینههای جلسه پخش جریانی را اضافه کنید
درخواست پخش خود را با اضافه کردن گزینههای جلسه برای لغو پیکربندی پیشفرض Cloud Video Stitcher API با استفاده از VideoStitcherLiveStreamRequest.videoStitcherSessionOptions سفارشی کنید. اگر گزینهای ناشناخته ارائه دهید، Cloud Video Stitcher API با خطای HTTP 400 پاسخ خواهد داد. برای راهنمایی به راهنمای عیبیابی مراجعه کنید.
برای مثال، میتوانید گزینههای مانیفست را با قطعه کد زیر لغو کنید، که دو مانیفست جریان با ترتیب نمایش از کمترین بیتریت به بیشترین بیتریت را درخواست میکند.
...
// The following session options are examples. Use session options
// that are compatible with your video stream.
streamRequest.videoStitcherSessionOptions = {
"manifestOptions": {
"bitrateOrder": "ascending"
}
};
streamManager.requestStream(streamRequest);
درج وقفه تبلیغاتی
رابط برنامهنویسی کاربردی Google Cloud Video Stitcher، تبلیغات بازیابیشده از تگ تبلیغ را برای هر وقفه تبلیغاتی درج میکند. وقفههای تبلیغاتی با استفاده از نشانگرهای تبلیغاتی در مانیفست مشخص میشوند. نشانگرهای تبلیغاتی توسط رمزگذار پخش زنده درج میشوند.
اگر از پخش زنده خودتان استفاده میکنید، باید نشانگر تبلیغ را وارد کنید. برای اطلاعات بیشتر در مورد نشانگرهای تبلیغ HLS و DASH پشتیبانی شده، به مستندات نشانگرهای تبلیغ مراجعه کنید.
اگر با استفاده از API پخش زنده Google Cloud، پخش زندهای ایجاد کردهاید، یک رویداد کانال ad break وارد کنید .
بلافاصله پس از درج متن آگهی، تبلیغ پخش میشود.
تمیز کردن
اکنون که با موفقیت یک پخش زنده را با استفاده از Google Cloud Video Stitcher API میزبانی کردهاید و آن را با استفاده از IMA DAI SDK برای HTML5 درخواست کردهاید، مهم است که هرگونه منبع سرویسدهنده را پاکسازی کنید.
برای حذف هرگونه منابع و داراییهای غیرضروری، راهنمای پاکسازی پخش زنده را دنبال کنید.
در نهایت، در پنجره ترمینال که وب سرور پایتون ۳ را در آن اجرا کردید، از دستور ctrl+C برای پایان دادن به سرور محلی استفاده کنید.