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

انتخاب پلاتفرم: 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 کلید API اختیاری که می‌تواند برای بازیابی نشانی وب جاری‌سازی از کیت توسعه نرم‌افزار 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 را وارد کنید و 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 Stream Manager

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