راه‌اندازی با «درج آگهی پویا» با خدمات کامل

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

این راهنما نحوه پخش جاری‌سازی DAI را بااستفاده از IMA CAF DAI SDK نشان می‌دهد. اگر می‌خواهید یک ادغام نمونه تکمیل‌شده را مشاهده یا دنبال کنید، نمونه را بارگیری کنید.

قبل‌از استفاده از این راهنما، حتماً با پروتکل گیرنده وب چارچوب برنامه Chromecast آشنا شوید. این راهنما فرض می‌کند که شما با مفاهیم پایه گیرنده CAF، مانند رهگیرهای پیام و اشیاء mediaInformation آشنایی دارید و همچنین با نحوه استفاده از ابزار Cast Command and Control برای شبیه‌سازی فرستنده CAF آشنا هستید.

برای استفاده از IMA DAI، باید حساب Ad Manager 360 داشته باشید. اگر حساب Ad Manager دارید، برای جزئیات بیشتر با مدیر حسابتان تماس بگیرید. برای کسب اطلاعات درباره ثبت‌نام در Ad Manager، به مرکز راهنمایی Ad Manager مراجعه کنید.

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

نمای کلی CAF DAI

پیاده‌سازی DAI بااستفاده از IMA CAF DAI SDK شامل دو مؤلفه اصلی است که در این راهنما نشان داده شده است:

  • StreamRequest: شیئی که درخواست جاری‌سازی به سرورهای تبلیغاتی Google را تعریف می‌کند. درخواست‌های جاری‌سازی دو نوع اصلی دارند:

    • LiveStreamRequest: کلید دارایی و همچنین سایر پارامترهای اختیاری را مشخص می‌کند.
    • VODStreamRequest: یک شناسه منبع محتوا، یک شناسه ویدیو، و همچنین سایر پارامترهای اختیاری را مشخص می‌کند.
    • هر دو نوع درخواست می‌توانند به‌طور اختیاری شامل یک کلید API باشند که برای دسترسی به جاری‌سازی‌های مشخص‌شده لازم است، و یک کد شبکه Google Ad Manager برای IMA SDK تا شناسه‌های آگهی‌ها را طبق تنظیمات Google Ad Manager مدیریت کند.
  • StreamManager: شیئی که ارتباط بین جاری‌سازی ویدیویی و IMA DAI SDK را مدیریت می‌کند، مانند ارسال پینگ‌های ردیابی و هدایت رویدادهای جاری‌سازی به ناشر.

پیش‌نیازها

  • حساب کنسول توسعه‌دهنده Cast با دستگاه آزمایشی ثبت‌شده.
  • برنامه گیرنده وب میزبانی‌شده‌ای که در «کنسول توسعه‌دهنده Cast» شما ثبت شده است و می‌توان آن را برای میزبانی کد ارائه‌شده در این راهنما اصلاح کرد.
  • برنامه ارسال‌کننده‌ای که برای استفاده از برنامه گیرنده وب شما پیکربندی شده است. این مثال از ابزار فرمان و کنترل Cast به‌عنوان ارسال‌کننده استفاده می‌کند.

پیکربندی اشیای MediaInfo فرستنده

ابتدا، شیء MediaInfo برنامه فرستنده را پیکربندی کنید تا فیلدهای زیر را دربرگیرد:

contentId شناسه یکتا برای این فایل رسانه‌ای
contentUrl نشانی وب جریان بازگشتی برای بارگیری درصورتی‌که DAI StreamRequest به هر دلیلی ناموفق باشد
streamType برای جاری‌سازی‌های زنده، این مقدار باید روی `LIVE` تنظیم شود. برای جاری‌سازی‌های VOD، این مقدار باید روی `BUFFERED` تنظیم شود
customData assetKey فقط جاری‌سازی‌های زنده. جاری‌سازی زنده را برای بار شدن شناسایی می‌کند
contentSourceId فقط جاری‌سازی‌های ویدیو به‌درخواست. فید رسانه‌ای را که حاوی جاری‌سازی درخواستی است شناسایی می‌کند.
videoId فقط جاری‌سازی‌های ویدیو به‌درخواست. جریان درخواست‌شده را در فید رسانه مشخص‌شده شناسایی می‌کند.
networkCode (اختیاری) کد شبکه Google Ad Manager شما.
ApiKey کلید میانای برنامه‌سازی کاربردی اختیاری که می‌تواند برای بازیابی نشانی وب جاری‌سازی از کیت توسعه نرم‌افزار IMA DAI لازم باشد
senderCanSkip مقدار بولی که به گیرنده اطلاع می‌دهد آیا دستگاه فرستنده می‌تواند دکمه رد کردن را نمایش دهد یا نه، و پشتیبانی از آگهی‌های ردکردنی را فعال می‌کند

برای پیکربندی این مقادیر در ابزار فرمان و کنترل ارسال محتوا، روی برگه بار کردن رسانه کلیک کنید و نوع درخواست بار کردن سفارشی را روی 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»، گیرنده وب پایه ایجاد کنید.

کد گیرنده شما باید به این شکل باشد:

<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

برچسب اسکریپتی را برای وارد کردن IMA DAI SDK برای CAF به گیرنده وب خود اضافه کنید، درست بعداز بارگیری اسکریپت CAF. کیت توسعه نرم‌افزار CAF DAI همیشه به‌روز است، بنابراین نیازی نیست نسخه خاصی را تنظیم کنید. سپس در برچسب اسکریپت بعدی، بافت گیرنده و مدیر پخش‌کننده را به‌عنوان ثابت قبل‌از شروع گیرنده ذخیره کنید.

<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 برای ارسال درخواست‌های جاری‌سازی و جایگزین کردن نشانی وب محتوا با جاری‌سازی نهایی 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 متعلق به Google، جریان‌های DAI را درخواست و بازپخش کنید. برای آشنایی با ویژگی‌های پیشرفته‌تر کیت توسعه نرم‌افزار، راهنماهای دیگر را ببینید یا برنامه‌های گیرنده نمونه ما را بارگیری کنید.