کیتهای توسعه نرمافزار IMA ادغام آگهیهای چندرسانهای را در وبسایتها و برنامههایتان آسان میکند. کیتهای توسعه نرمافزار IMA میتوانند از هر سرور آگهی مطابق با VAST درخواست آگهی کنند و بازپخش آگهی را در برنامههایتان مدیریت کنند. با کیتهای توسعه نرمافزار IMA DAI، برنامهها درخواست جاریسازی برای ویدیو آگهی و محتوا (چه ویدیو بهدرخواست و چه محتوای زنده) ارسال میکنند. سپس کیت توسعه نرمافزار یک جاریسازی ویدیویی ترکیبی برمیگرداند تا مجبور نباشید جابهجایی بین آگهی و محتوای ویدیویی را در برنامهتان مدیریت کنید.
راهکار DAI ترجیحیتان را انتخاب کنید:
- راهاندازی با «درج آگهی پویا» با خدمات کامل: Google Ad Manager آگهیها را انتخاب میکند و مستقیماً در جاریسازی محتوای شما ادغام میکند.
- راهاندازی با درج آگهی پویا با ارائه Pod: Google Ad Manager دستههای آگهی را ارائه میدهد که برای ادغام یا بار کردن در پخشکننده ویدیو دردسترس هستند.
پخش جاریسازیهای زنده ثبتشده با Google Cloud Video Stitcher API
این راهنما نشان میدهد که چگونه از IMA DAI SDK برای HTML5 برای درخواست و پخش یک جاریسازی زنده برای رویدادی که با Google Cloud Video Stitcher API ثبت شده است استفاده کنید، و چگونه یک وقفه آگهی را درطول بازپخش درج کنید.
این راهنما مثال پایه را از راهنمای شروع به کار برای IMA DAI بسط میدهد.
برای کسب اطلاعات درباره ادغام با پلاتفرمهای دیگر یا استفاده از کیتهای توسعه نرمافزار IMA سمت کارخواه، به کیتهای توسعه نرمافزار آگهیهای رسانهای تعاملی مراجعه کنید.
برای مشاهده یا دنبال کردن یک نمونه ادغام تکمیلشده، نمونه Cloud video stitcher را برای HLS یا DASH بارگیری کنید.
راهاندازی پروژه Google Cloud
پروژه Google Cloud راهاندازی کنید و حسابهای سرویس را برای دسترسی به پروژه پیکربندی کنید.
پیکربندیای برای رویداد جاریسازی زنده ایجاد کنید که از جاریسازی زنده محتوای خودتان یا جاریسازی زنده آزمایشی استفاده کند. این راهنما برای جاریسازی HLS است.
متغیرهای زیر را برای استفاده در کیت توسعه نرمافزار IMA وارد کنید:- مکان
- منطقه Google Cloud
که پیکربندی زنده شما در آن ایجاد شده است:
LOCATION - شماره پروژه
- شماره پروژه Google Cloud که از Video Stitcher API استفاده میکند:
PROJECT_NUMBER - کد OAuth
کد OAuth کوتاهمدت حساب سرویس با نقش کاربر Video Stitcher:
OAUTH_TOKEN
درباره ایجاد اعتبارنامههای کوتاهمدت برای حسابهای سرویس بیشتر بخوانید. تا زمانی که توکن OAuth منقضی نشده باشد، میتوان از آن در چندین درخواست استفاده مجدد کرد.
- کد شبکه
کد شبکه Ad Manager برای درخواست آگهی:
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 را در پوشه جدیدی استخراج کنید. این نمونه یک برنامه وب است که میتوانید آن را بهصورت محلی برای اهداف آزمایشی میزبانی کنید.
برای میزبانی محلی نمونه، به پوشه جدید بروید و فرمان python زیر را برای راهاندازی سرور وب اجرا کنید:
python3 -m http.server 8000http.server فقط در Python 3.x دردسترس است. میتوانید از هر سرور وب دیگری،
مثل Apache HTTP Server یا Node JS، استفاده کنید.
مرورگر وب را باز کنید و به localhost:8000 بروید تا پخشکننده ویدیو را ببینید.
مرورگرتان باید از کتابخانه HLS.js پشتیبانی کند.
اگر همه چیز بهدرستی کار کند، با کلیک کردن روی دکمه پخش در پخشکننده ویدیو، فیلم کوتاه «Tears of Steel» پساز یک آگهی کوتاه شروع میشود. این محتوا بااستفاده از جاریسازی ویدیو بهدرخواست (VOD) ارائه میشود.
درخواست جاریسازی زنده
برای جایگزین کردن جاریسازی نمونه ویدیو بهدرخواست با جاریسازی زنده خودتان، از کلاس
VideoStitcherLiveStreamRequest
استفاده کنید که بهطور خودکار جلسه آگهی با Google Ad Manager ایجاد میکند. میتوانید
از میانای کاربری Google Ad Manager برای پیدا کردن جلسههای «درج آگهی پویا» تولیدشده برای نظارت و اشکالزدایی استفاده کنید.
در نمونه موجود، توابعی برای درخواست جاریسازی ویدیو بهدرخواست یا جاریسازی زنده وجود دارد. برای اینکه با Google Cloud Video Stitcher API کار کند، باید
تابع جدیدی اضافه کنید تا شیء
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 را برای مبدأ 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 API آگهیهای بازیابیشده از برچسب آگهی را برای هر وقفه آگهی درج میکند. وقفههای آگهی در مانیفست بااستفاده از نشانگرهای آگهی مشخص میشوند. نشانگرهای آگهی توسط کدبند جاریسازی زنده درج میشوند.
اگر از جاریسازی زنده خودتان استفاده میکنید، باید نشانگر آگهی را درج کنید. برای اطلاعات بیشتر درباره نشانگرهای آگهی HLS و DASH پشتیبانیشده، به اسناد نشانگرهای آگهی مراجعه کنید.
اگر بااستفاده از Google Cloud Livestream API جاریسازی زنده ایجاد کردهاید، رویداد کانال وقفه آگهی درج کنید.
آگهی بلافاصله پساز درج وقفه آگهی پخش میشود.
مرتبسازی
اکنون که بااستفاده از Google Cloud Video Stitcher API با موفقیت یک جاریسازی زنده را میزبانی کردهاید و آن را بااستفاده از IMA DAI SDK برای HTML5 درخواست کردهاید، مهم است که منابع ارائهدهنده را پاکسازی کنید.
برای برداشتن منابع و داراییهای غیرضروری، راهنمای پاکسازی جاریسازی زنده را دنبال کنید.
درنهایت، در پنجره ترمینال که سرور وب Python 3 را راهاندازی کردید، از
فرمان ctrl+C برای پایان دادن به سرور محلی استفاده کنید.