সম্পূর্ণ পরিষেবা DAI-এর মাধ্যমে সেট-আপ করুন

প্ল্যাটফর্ম বেছে নিন: HTML5 Android iOS tvOS Cast Roku

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

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

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

অন্যান্য প্ল্যাটফর্মের সাথে ইন্টিগ্রেট করা বা IMA ক্লায়েন্ট-সাইড SDK ব্যবহার করার ব্যাপারে আরও তথ্য পেতে, Interactive Media Ads SDK দেখুন।

CAF DAI ওভারভিউ

IMA CAF DAI SDK ব্যবহার করে DAI প্রয়োগ করার ক্ষেত্রে দুটি প্রধান কম্পোনেন্ট আছে, যা এই গাইডে দেখানো হয়েছে:

  • StreamRequest: একটি অবজেক্ট যা Google-এর বিজ্ঞাপন সার্ভারে স্ট্রিম অনুরোধকে সংজ্ঞায়িত করে। স্ট্রিম সংক্রান্ত অনুরোধ মূলত দুই ধরনের হয়:

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

পূর্বশর্ত

  • রেজিস্টার করা টেস্ট ডিভাইস সহ একটি Cast Developer Console অ্যাকাউন্ট।
  • একটি হোস্ট করা ওয়েব রিসিভার অ্যাপ যা আপনার Cast Developer Console-এ রেজিস্টার করা আছে এবং যা হোস্ট করার জন্য পরিবর্তন করা যেতে পারে এই নির্দেশিকা দ্বারা প্রদত্ত কোড।
  • একটি প্রেরক অ্যাপ যা আপনার ওয়েব রিসিভার অ্যাপ ব্যবহার করার জন্য কনফিগার করা হয়েছে। এই উদাহরণ কাস্ট কমান্ড এবং কন্ট্রোল টুল ব্যবহার করে প্রেরক হিসাবে।

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

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

contentId এই মিডিয়া আইটেমের জন্য একটি অনন্য শনাক্তকারী
contentUrl কোনও কারণে DAI StreamRequest ব্যর্থ হলে, লোড করার জন্য ফলব্যাক স্ট্রিম URL
streamType লাইভ স্ট্রিমের জন্য এই ভ্যালু `LIVE` হিসেবে সেট করতে হবে। VOD স্ট্রিমের জন্য, এই ভ্যালু `BUFFERED` হিসেবে সেট করতে হবে
customData assetKey শুধুমাত্র লাইভ স্ট্রিম। লোড করার জন্য লাইভ স্ট্রিম শনাক্ত করে
contentSourceId শুধু VOD স্ট্রিম। অনুরোধ করা স্ট্রিম আছে এমন মিডিয়া ফিড শনাক্ত করে।
videoId শুধু VOD স্ট্রিম। নির্দিষ্ট মিডিয়া ফিডের মধ্যে অনুরোধ করা স্ট্রিম শনাক্ত করে।
networkCode (ঐচ্ছিক) আপনার Google Ad Manager নেটওয়ার্ক কোড।
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": "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 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 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 SDK, স্ট্রিম অনুরোধ করতে এবং কন্টেন্ট URL-কে চূড়ান্ত DAI স্ট্রিম দিয়ে পরিবর্তন করতে CAF লোড মেসেজ ইন্টারসেপ্টর ব্যবহার করে। মেসেজ ইন্টারসেপ্টর 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>

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