IMA DAI SDK দিয়ে শুরু করুন

আপনি আগ্রহী DAI সমাধান নির্বাচন করুন

সম্পূর্ণ পরিষেবা DAI

IMA CAF DAI SDK ব্যবহার করে কীভাবে একটি DAI স্ট্রিম খেলতে হয় এই নির্দেশিকাটি প্রদর্শন করে৷ আপনি যদি একটি সম্পূর্ণ নমুনা ইন্টিগ্রেশন সহ দেখতে বা অনুসরণ করতে চান, তাহলে উদাহরণটি ডাউনলোড করুন

এই নির্দেশিকাটি ব্যবহার করার আগে, Chromecast অ্যাপ্লিকেশন ফ্রেমওয়ার্কের ওয়েব রিসিভার প্রোটোকলের সাথে নিজেকে পরিচিত করতে ভুলবেন না। এই নির্দেশিকাটি CAF রিসিভার ধারণাগুলির সাথে পরিচিতির একটি প্রাথমিক স্তর অনুমান করে, যেমন বার্তা ইন্টারসেপ্টর এবং mediaInformation অবজেক্ট, সেইসাথে একটি CAF প্রেরককে অনুকরণ করতে কাস্ট কমান্ড এবং কন্ট্রোল টুল ব্যবহার করার সাথে পরিচিতি।

IMA DAI ব্যবহার করতে, আপনার একটি Ad Manager 360 অ্যাকাউন্ট থাকতে হবে। আপনার যদি অ্যাড ম্যানেজার অ্যাকাউন্ট থাকে, তাহলে আরও বিশদ বিবরণের জন্য আপনার অ্যাকাউন্ট পরিচালকের সাথে যোগাযোগ করুন। অ্যাড ম্যানেজারের জন্য সাইন আপ করার বিষয়ে তথ্যের জন্য, অ্যাড ম্যানেজার সহায়তা কেন্দ্রে যান।

অন্যান্য প্ল্যাটফর্মের সাথে একীভূত করার বিষয়ে বা IMA ক্লায়েন্ট-সাইড SDK ব্যবহার করার বিষয়ে তথ্যের জন্য, ইন্টারেক্টিভ মিডিয়া বিজ্ঞাপন SDK দেখুন।

CAF DAI ওভারভিউ

IMA CAF DAI SDK ব্যবহার করে DAI বাস্তবায়নে এই নির্দেশিকায় প্রদর্শিত দুটি প্রধান উপাদান জড়িত:

  • StreamRequest : একটি বস্তু যা Google এর বিজ্ঞাপন সার্ভারে একটি স্ট্রিম অনুরোধ সংজ্ঞায়িত করে। স্ট্রিম অনুরোধ দুটি প্রধান বৈচিত্র্য আসে:

    • LiveStreamRequest : একটি সম্পদ কী , এবং একটি ঐচ্ছিক API কী , সেইসাথে অন্যান্য ঐচ্ছিক পরামিতিগুলি নির্দিষ্ট করে৷
    • VODStreamRequest : একটি বিষয়বস্তু উৎস আইডি , একটি ভিডিও আইডি এবং একটি ঐচ্ছিক API কী , সেইসাথে অন্যান্য ঐচ্ছিক পরামিতিগুলি নির্দিষ্ট করে৷
  • StreamManager : একটি বস্তু যা ভিডিও স্ট্রীম এবং IMA DAI SDK-এর মধ্যে যোগাযোগ পরিচালনা করে, যেমন ফায়ারিং ট্র্যাকিং পিং এবং প্রকাশকের কাছে স্ট্রিম ইভেন্ট ফরওয়ার্ড করা।

পূর্বশর্ত

প্রেরকের MediaInfo অবজেক্ট কনফিগার করুন

প্রথমে, নিম্নলিখিত ক্ষেত্রগুলি অন্তর্ভুক্ত করতে আপনার প্রেরক অ্যাপের MediaInfo অবজেক্ট কনফিগার করুন:

contentId এই মিডিয়া আইটেমটির জন্য একটি অনন্য শনাক্তকারী৷
contentUrl DAI StreamRequest কোনো কারণে ব্যর্থ হলে ফলব্যাক স্ট্রিম URL লোড হবে
streamType লাইভ স্ট্রীমের জন্য এই মানটি `লাইভ`-এ সেট করা উচিত। VOD স্ট্রীমের জন্য, এই মানটি `BUFFERED`-এ সেট করা উচিত
customData assetKey শুধুমাত্র লাইভ স্ট্রিম। লোড করার জন্য লাইভস্ট্রিম শনাক্ত করে
contentSourceId শুধুমাত্র VOD স্ট্রিম। অনুরোধ করা স্ট্রীম ধারণকারী মিডিয়া ফিড সনাক্ত করে।
videoId শুধুমাত্র VOD স্ট্রিম। নির্দিষ্ট মিডিয়া ফিডের মধ্যে অনুরোধ করা স্ট্রীম সনাক্ত করে।
ApiKey একটি ঐচ্ছিক API কী যা IMA DAI SDK থেকে স্ট্রিম URL পুনরুদ্ধার করতে প্রয়োজন হতে পারে৷
senderCanSkip একটি বুলিয়ান মান যা রিসিভারকে জানাতে পারে যে পাঠানোর ডিভাইসে একটি স্কিপ বোতাম প্রদর্শন করার ক্ষমতা আছে কি না, এড়িয়ে যাওয়া বিজ্ঞাপনের জন্য সমর্থন সক্ষম করে

কাস্ট কমান্ড এবং কন্ট্রোল টুলে এই মানগুলি কনফিগার করতে, লোড মিডিয়া ট্যাবে ক্লিক করুন এবং কাস্টম লোড অনুরোধের ধরনটি LOAD এ সেট করুন। তারপরে নিম্নলিখিত JSON অবজেক্টগুলির মধ্যে একটি দিয়ে পাঠ্য এলাকায় JSON ডেটা প্রতিস্থাপন করুন:

লাইভ দেখান

{
  "media": {
    "contentId": "bbb",
    "contentUrl": "https://storage.googleapis.com/interactive-media-ads/media/bbb.m3u8",
    "streamType": "LIVE",
    "customData": {
      "assetKey": "sN_IYUG8STe1ZzhIIE_ksA",
      "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",
      "ApiKey": "",
      "senderCanSkip": true
    }
  },
  "credentials": "testCredentials"
}

নিম্নলিখিত ধাপগুলি পরীক্ষা করার জন্য এই কাস্টম লোড অনুরোধ বস্তুটি রিসিভারের কাছে পাঠানো যেতে পারে।

একটি মৌলিক CAF রিসিভার তৈরি করুন

CAF SDK বেসিক রিসিভার গাইড অনুসরণ করে একটি বেসিক ওয়েব রিসিভার তৈরি করুন।

আপনার রিসিভার কোড এই মত হওয়া উচিত:

<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 আমদানি করুন এবং প্লেয়ার ম্যানেজার পান৷

CAF স্ক্রিপ্ট লোড হওয়ার ঠিক পরে আপনার ওয়েব রিসিভারে CAF-এর জন্য IMA DAI SDK আমদানি করতে একটি স্ক্রিপ্ট ট্যাগ যোগ করুন। 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();

    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 SDK CAF লোড মেসেজ ইন্টারসেপ্টর ব্যবহার করে স্ট্রীম রিকোয়েস্ট করতে এবং কন্টেন্ট URL-কে চূড়ান্ত 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.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>

আপনি এখন Google-এর CAF DAI SDK-এর সাথে DAI স্ট্রীমগুলির অনুরোধ এবং প্লেব্যাক করতে সক্ষম। আরও উন্নত SDK বৈশিষ্ট্য সম্পর্কে জানতে, অন্যান্য গাইড দেখুন বা আমাদের নমুনা রিসিভার অ্যাপ্লিকেশন ডাউনলোড করুন