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

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

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

بازرسی پویای ARP با خدمات کامل

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

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

برای پیکربندی این مقادیر در ابزار فرمان و کنترل ارسال محتوا، روی برگه بار کردن رسانه کلیک کنید و نوع درخواست بار کردن سفارشی را روی LOAD تنظیم کنید. سپس داده‌های JSON را در ناحیه نوشتاری با یکی از اشیای JSON زیر جایگزین کنید:

LIVE

{
  "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"
}

VOD

{
  "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 را وارد کنید و «مدیر پخش‌کننده» را دریافت کنید

برچسب اسکریپتی را برای وارد کردن 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 را مقداردهی اولیه کنید.

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