شروع به کار با IMA SDK برای DAI

پلاتفرم را انتخاب کنید: HTML5 Android iOS tvOS Cast Roku

کیت‌های توسعه نرم‌افزار IMA ادغام آگهی‌های چندرسانه‌ای را در وب‌سایت‌ها و برنامه‌هایتان آسان می‌کند. کیت‌های توسعه نرم‌افزار IMA می‌توانند از هر سرور آگهی مطابق با VAST درخواست آگهی کنند و بازپخش آگهی را در برنامه‌هایتان مدیریت کنند. با کیت‌های توسعه نرم‌افزار IMA DAI، برنامه‌ها درخواست جاری‌سازی برای ویدیو آگهی و محتوا (چه ویدیو به‌درخواست و چه محتوای زنده) ارسال می‌کنند. سپس کیت توسعه نرم‌افزار یک جاری‌سازی ویدیویی ترکیبی برمی‌گرداند تا مجبور نباشید جابه‌جایی بین آگهی و محتوای ویدیویی را در برنامه‌تان مدیریت کنید.

راهکار DAI ترجیحی‌تان را انتخاب کنید:

پخش جاری‌سازی‌های «ویدیو به‌درخواست» ثبت‌شده با Google Cloud Video Stitcher API

این راهنما نشان می‌دهد که چگونه از IMA DAI SDK برای HTML5 برای درخواست و پخش یک جلسه جریان Google Cloud VOD استفاده کنید.

این راهنما مثال پایه را از راهنمای شروع به کار برای IMA DAI بسط می‌دهد.

برای کسب اطلاعات درباره ادغام با پلاتفرم‌های دیگر یا استفاده از کیت‌های توسعه نرم‌افزار IMA سمت کارخواه، به کیت‌های توسعه نرم‌افزار آگهی‌های رسانه‌ای تعاملی مراجعه کنید.

برای مشاهده یا دنبال کردن یک ادغام نمونه تکمیل‌شده، نمونه Cloud video stitcher را برای HLS یا DASH بارگیری کنید.

راه‌اندازی پروژه Google Cloud

پروژه Google Cloud راه‌اندازی کنید و حساب‌های سرویس را برای دسترسی به پروژه پیکربندی کنید.

متغیرهای زیر را برای استفاده در کیت توسعه نرم‌افزار IMA وارد کنید:

مکان
منطقه Google Cloud که پیکربندی ویدیو به‌درخواست شما در آن ایجاد شده است: LOCATION
شماره پروژه
شماره پروژه Google Cloud که از Video Stitcher API استفاده می‌کند: PROJECT_NUMBER
کد OAuth

کد OAuth کوتاه‌مدت حساب سرویس با نقش کاربر Video Stitcher:

OAUTH_TOKEN

درباره ایجاد کردن نشان‌های OAuth کوتاه‌مدت بیشتر بخوانید. تا زمانی که توکن OAuth منقضی نشده باشد، می‌توان از آن در چندین درخواست استفاده مجدد کرد.

کد شبکه

کد شبکه Ad Manager برای درخواست آگهی: NETWORK_CODE

شناسه پیکربندی ویدیو به‌درخواست

شناسه پیکربندی ویدیو به‌درخواست برای جاری‌سازی ویدیو به‌درخواست: VOD_CONFIG_ID

برای کسب اطلاعات بیشتر درباره ایجاد شناسه پیکربندی ویدیو به‌درخواست، به راهنمای ایجاد پیکربندی ویدیو به‌درخواست در Cloud Stitching مراجعه کنید.

پیکربندی محیط توسعه نرم‌افزار

برنامه‌های نمونه IMA فقط درخواست‌های جاری‌سازی HLS را نشان می‌دهند. هنگام ساختن کلاس VideoStitcherVodStreamRequest، همچنان می‌توانید از جاری‌سازی‌های DASH استفاده کنید. هنگام راه‌اندازی پخش‌کننده سازگار با DASH، باید یک شنونده برای رویدادهای پیشرفت پخش‌کننده ویدیو خود راه‌اندازی کنید که بتواند فراداده ویدیو را به StreamManager.processMetadata() ارائه دهد. این تابع سه پارامتر دارد:

  1. ‫type: رشته‌ای که باید برای جاری‌سازی‌های HLS روی 'ID3' و برای جاری‌سازی‌های DASH روی 'urn:google:dai:2018' تنظیم شود.

  2. ‫data: برای پیام‌های رویداد DASH، این رشته داده پیام است.

  3. ‫timestamp: عددی که زمان شروع پیام رویداد برای جاری‌سازی‌های DASH است.

فراداده را در اولین فرصت و هر زمان که رویدادهای بازیکن شما بتواند ارائه دهد ارسال کنید. اگر فراداده وجود نداشته باشد یا صحیح نباشد، IMA DAI SDK ممکن است رویدادهای آگهی را راه‌اندازی نکند، که منجر به گزارش نادرست رویدادهای آگهی می‌شود.

نمونه‌های IMA DAI برای HTML5 را بارگیری کنید و فایل zip نمونه hls_js/simple را در پوشه جدیدی استخراج کنید. این نمونه یک برنامه وب است که می‌توانید آن را به‌طور محلی برای اهداف آزمایشی میزبانی کنید.

برای میزبانی محلی نمونه، به پوشه جدید بروید و فرمان python زیر را برای راه‌اندازی سرور وب اجرا کنید:

python3 -m http.server 8000

‫http.server فقط در Python 3.x دردسترس است. می‌توانید از هر سرور وب دیگری، مثل Apache HTTP Server یا Node JS، استفاده کنید.

مرورگر وب را باز کنید و به localhost:8000 بروید تا پخش‌کننده ویدیو را ببینید. مرورگرتان باید از کتابخانه HLS.js پشتیبانی کند.

اگر همه چیز به‌درستی کار کند، با کلیک کردن روی دکمه پخش در پخش‌کننده ویدیو، فیلم کوتاه «Tears of Steel» با وقفه‌های آگهی هر ۳۰ ثانیه یک‌بار شروع می‌شود.

درخواست جاری‌سازی ویدیو به‌درخواست

برای جایگزین کردن جاری‌سازی نمونه با جاری‌سازی «ویدیو به‌درخواست» (VOD) ادغام‌شده با آگهی، از کلاس VideoStitcherVodStreamRequest استفاده کنید تا به‌طور خودکار جلسه آگهی با Google Ad Manager ایجاد شود. می‌توانید از رابط کاربری Google Ad Manager برای پیدا کردن جلسه‌های DAI تولیدشده برای نظارت و اشکال‌زدایی استفاده کنید.

در نمونه موجود، توابعی برای درخواست جاری‌سازی ویدیو به‌درخواست یا جاری‌سازی زنده وجود دارد. برای اینکه با Google Cloud Video Stitcher API کار کند، باید تابع جدیدی برای برگرداندن شیء VideoStitcherVodStreamRequest اضافه کنید.

مثالی در اینجا ارائه شده است:

// StreamManager which will be used to request DAI 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() {
  requestVodVideoStitcherStream();

  playButton.style.display = "none";
  playButton.removeEventListener('click', initiatePlayback);
  playButton.addEventListener('click', resumePlayback);
}
...
function requestVodVideoStitcherStream() {
  const streamRequest = new google.ima.dai.api.VideoStitcherVodStreamRequest();
  streamRequest.vodConfigId = 'VOD_CONFIG_ID';
  streamRequest.region = 'LOCATION';
  streamRequest.projectNumber = 'PROJECT_NUMBER';
  streamRequest.oAuthToken = 'OAUTH_TOKEN';
  streamRequest.networkCode = 'NETWORK_CODE';

  streamManager.requestStream(streamRequest);
}

صفحه را مجدد بار کنید سپس می‌توانید جاری‌سازی ویدیو به‌درخواست سفارشی را درخواست و پخش کنید.

(اختیاری) افزودن گزینه‌های جلسه جاری‌سازی

درخواست جاری‌سازی‌تان را با افزودن گزینه‌های جلسه برای لغو پیکربندی پیش‌فرض Cloud Video Stitcher API بااستفاده از VideoStitcherVodStreamRequest.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 با موفقیت میزبان یک جاری‌سازی VOD بوده‌اید و آن را بااستفاده از IMA DAI SDK برای HTML5 درخواست کرده‌اید، مهم است که هرگونه منابع ارائه‌دهنده را پاک کنید.

برای برداشتن منابع و دارایی‌های غیرضروری، راهنمای پاک‌سازی ویدیو به‌درخواست را دنبال کنید.

درنهایت، در پنجره ترمینال که سرور وب Python 3 را راه‌اندازی کردید، از فرمان ctrl+C برای پایان دادن به سرور محلی استفاده کنید.