DAI-এর জন্য IMA SDK ব্যবহার শুরু করা

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

IMA SDK আপনার ওয়েবসাইট ও অ্যাপে মাল্টিমিডিয়া বিজ্ঞাপন ইন্টিগ্রেট করা সহজ করে তোলে। IMA SDK যেকোনও VAST-মেনে চলা বিজ্ঞাপন সার্ভার থেকে বিজ্ঞাপনের অনুরোধ করতে এবং আপনার অ্যাপে বিজ্ঞাপন প্লেব্যাক ম্যানেজ করতে পারে। IMA DAI SDK-এর মাধ্যমে, অ্যাপ বিজ্ঞাপন ও কন্টেন্ট ভিডিওর জন্য স্ট্রিম অনুরোধ করে—VOD বা লাইভ কন্টেন্ট, যেকোনও একটি। SDK তারপর একটি সম্মিলিত ভিডিও স্ট্রিম ফেরত পাঠায়, যাতে আপনাকে অ্যাপের মধ্যে বিজ্ঞাপন ও কন্টেন্ট ভিডিওর মধ্যে পরিবর্তন ম্যানেজ করতে না হয়।

আপনার পছন্দের DAI সমাধান বেছে নিন:

Google Cloud Video Stitcher API-এর সাথে রেজিস্টার করা VOD স্ট্রিম চালান

এই নির্দেশিকা থেকে জানতে পারবেন কীভাবে HTML5-এর জন্য IMA DAI SDK ব্যবহার করে Google Cloud VOD স্ট্রিম সেশন অনুরোধ ও প্লে করতে হয়।

এই নির্দেশিকা IMA DAI-এর জন্য শুরু করার নির্দেশিকা থেকে প্রাথমিক উদাহরণটি আরও বিস্তারিতভাবে ব্যাখ্যা করে।

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

সম্পূর্ণ স্যাম্পেল ইন্টিগ্রেশন দেখতে বা অনুসরণ করতে, HLS বা DASH-এর জন্য Cloud ভিডিও স্টিচার উদাহরণ ডাউনলোড করুন।

Google Cloud প্রোজেক্ট সেট-আপ করা

Google Cloud প্রোজেক্ট সেট-আপ করুন এবং প্রোজেক্ট অ্যাক্সেস করার জন্য পরিষেবা অ্যাকাউন্ট কনফিগার করুন।

IMA SDK-তে ব্যবহার করার জন্য নিম্নলিখিত ভেরিয়েবল লিখুন:

লোকেশন
আপনার VOD কনফিগারেশন যেখানে তৈরি করা হয়েছে সেই Google Cloud অঞ্চল: LOCATION
প্রোজেক্ট নম্বর
Video Stitcher API ব্যবহার করা Google Cloud প্রোজেক্ট নম্বর: PROJECT_NUMBER
OAuth টোকেন

Video Stitcher ব্যবহারকারীর সাথে পরিষেবা অ্যাকাউন্টের স্বল্পস্থায়ী OAuth টোকেন রোল:

OAUTH_TOKEN

স্বল্প-স্থায়ী OAuth টোকেন তৈরি করা সম্পর্কে আরও জানুন। OAuth টোকেনের মেয়াদ শেষ না হওয়া পর্যন্ত একাধিক অনুরোধে এটি আবার ব্যবহার করা যেতে পারে।

নেটওয়ার্ক কোড

বিজ্ঞাপনের অনুরোধ করার জন্য Ad Manager নেটওয়ার্ক কোড: NETWORK_CODE

VOD কনফিগারেশন আইডি

VOD স্ট্রিমের জন্য VOD কনফিগারেশন আইডি: VOD_CONFIG_ID

Cloud stitching-এ VOD কনফিগারেশন আইডি তৈরি করার VOD কনফিগারেশন গাইড থেকে VOD কনফিগারেশন আইডি তৈরি করার ব্যাপারে আরও জানুন।

ডেভেলপমেন্ট এনভায়রনমেন্ট কনফিগার করা

IMA স্যাম্পেল অ্যাপ শুধুমাত্র HLS স্ট্রিম অনুরোধ দেখায়। VideoStitcherVodStreamRequest ক্লাস তৈরি করার সময় আপনি এখনও DASH স্ট্রিম ব্যবহার করতে পারবেন। DASH-এর সাথে মানানসই প্লেয়ার সেট-আপ করার সময়, আপনার ভিডিও প্লেয়ারের প্রোগ্রেস ইভেন্টের জন্য আপনাকে একটি লিসেনার সেট-আপ করতে হবে যা StreamManager.processMetadata()-এ ভিডিওর মেটাডেটা প্রদান করতে পারে। এই ফাংশন তিনটি প্যারামিটার নেয়:

  1. type: একটি স্ট্রিং যা HLS স্ট্রিমের জন্য 'ID3' এবং DASH স্ট্রিমের জন্য 'urn:google:dai:2018' হিসেবে সেট করতে হবে।

  2. data: DASH ইভেন্ট মেসেজের ক্ষেত্রে, এটি হল মেসেজ ডেটা স্ট্রিং।

  3. timestamp: DASH স্ট্রিমের জন্য ইভেন্ট মেসেজ শুরুর সময় নির্দেশক সংখ্যা।

আপনার প্লেয়ার ইভেন্ট যত ঘন ঘন এবং যত দ্রুত মেটাডেটা প্রদান করতে পারে, তত ঘন ঘন এবং তত দ্রুত তা পাঠান। মেটাডেটা না থাকলে বা সঠিক না হলে, IMA DAI SDK বিজ্ঞাপনের ইভেন্ট ট্রিগার নাও করতে পারে, যার ফলে বিজ্ঞাপনের ইভেন্ট সঠিকভাবে রিপোর্ট করা হয় না।

HTML5-এর জন্য IMA DAI উদাহরণ ডাউনলোড করুন এবং hls_js/simple স্যাম্পেল জিপ ফাইলটি একটি নতুন ফোল্ডারে এক্সট্র্যাক্ট করুন। এই উদাহরণটি হল একটি ওয়েব অ্যাপ যা আপনি পরীক্ষার উদ্দেশ্যে স্থানীয়ভাবে হোস্ট করতে পারেন।

উদাহরণটি লোকালি হোস্ট করতে, নতুন ফোল্ডারে নেভিগেট করুন এবং ওয়েব সার্ভার চালু করতে নিম্নলিখিত python কমান্ড রান করুন:

python3 -m http.server 8000

http.server শুধুমাত্র Python 3.x-এ উপলভ্য। আপনি অন্য যেকোনও ওয়েব সার্ভার ব্যবহার করতে পারেন, যেমন Apache HTTP Server বা Node JS।

ওয়েব ব্রাউজার খুলে localhost:8000-এ গিয়ে ভিডিও প্লেয়ার দেখুন। আপনার ব্রাউজারে HLS.js লাইব্রেরি কাজ করতে হবে।

সবকিছু ঠিকঠাক কাজ করলে, ভিডিও প্লেয়ারের প্লে বোতামে ক্লিক করলে "Tears of Steel" শর্ট ফিল্ম শুরু হবে এবং প্রতি ৩০ সেকেন্ড অন্তর বিজ্ঞাপন বিরতি থাকবে।

VOD স্ট্রিমের অনুরোধ করা

আপনার বিজ্ঞাপন স্টিচ করা VOD স্ট্রিমের সাথে স্যাম্পেল স্ট্রিম পরিবর্তন করতে, Google Ad Manager-এর সাথে অটোমেটিক বিজ্ঞাপন সেশন তৈরি করতে VideoStitcherVodStreamRequest ক্লাস ব্যবহার করুন। আপনি মনিটর ও ডিবাগ করার জন্য তৈরি করা DAI সেশন লোকেট করতে Google Ad Manager UI ব্যবহার করতে পারবেন।

আগে থেকে থাকা স্যাম্পেলে, VOD স্ট্রিম বা লাইভ স্ট্রিমের অনুরোধ করার জন্য ফাংশন আছে। Google Cloud Video Stitcher API-এর সাথে এটি কাজ করানোর জন্য, আপনাকে একটি নতুন ফাংশন যোগ করতে হবে যা VideoStitcherVodStreamRequest অবজেক্ট রিটার্ন করবে।

একটা উদাহরণ দেওয়া হল:

// StreamManager which will be used to request DAI streams.
let streamManager;
...

function initPlayer() {
  videoElement = document.getElementById('video');
  adUiElement = document.getElementById('adUi');
  streamManager = new google.ima.dai.api.StreamManager(
    videoElement,
    adUiElement
  );
  streamManager.addEventListener(
    [
      google.ima.dai.api.StreamEvent.Type.LOADED,
      google.ima.dai.api.StreamEvent.Type.ERROR,
      google.ima.dai.api.StreamEvent.Type.AD_BREAK_STARTED,
      google.ima.dai.api.StreamEvent.Type.AD_BREAK_ENDED
    ],
    onStreamEvent, false);

  hls.on(Hls.Events.FRAG_PARSING_METADATA, function(event, data) {
    if (streamManager && data) {
      // For each ID3 tag in our metadata, we pass in the type - ID3, the
      // tag data (a byte array), and the presentation timestamp (PTS).
      data.samples.forEach(function(sample) {
        streamManager.processMetadata('ID3', sample.data, sample.pts);
      });
    }
  });

  videoElement.addEventListener('pause', () => {
    playButton.style.display = "block";
  });

  playButton.addEventListener('click', initiatePlayback);
}

function initiatePlayback() {
  requestVodVideoStitcherStream();

  playButton.style.display = "none";
  playButton.removeEventListener('click', initiatePlayback);
  playButton.addEventListener('click', resumePlayback);
}
...
function requestVodVideoStitcherStream() {
  const streamRequest = new google.ima.dai.api.VideoStitcherVodStreamRequest();
  streamRequest.vodConfigId = 'VOD_CONFIG_ID';
  streamRequest.region = 'LOCATION';
  streamRequest.projectNumber = 'PROJECT_NUMBER';
  streamRequest.oAuthToken = 'OAUTH_TOKEN';
  streamRequest.networkCode = 'NETWORK_CODE';

  streamManager.requestStream(streamRequest);
}

পৃষ্ঠা আবার লোড করুন। তারপর, আপনি কাস্টম VOD স্ট্রিমের জন্য অনুরোধ করতে এবং তা চালাতে পারবেন।

(ঐচ্ছিক) স্ট্রিমিং সেশন সংক্রান্ত বিকল্প যোগ করুন

ডিফল্ট Cloud Video Stitcher API কনফিগারেশন ওভাররাইড করতে সেশন বিকল্প যোগ করে আপনার স্ট্রিম অনুরোধ কাস্টমাইজ করুন। এর জন্য VideoStitcherVodStreamRequest.videoStitcherSessionOptions ব্যবহার করুন। আপনি কোনও অপরিচিত বিকল্প প্রদান করলে, Cloud Video Stitcher API একটি HTTP 400 সমস্যা সহ উত্তর দেবে। সহায়তার জন্য সমস্যার সমাধান সংক্রান্ত নির্দেশিকা পরামর্শ করুন।

যেমন, আপনি নিম্নলিখিত কোড স্নিপেটের মাধ্যমে ম্যানিফেস্ট বিকল্প ওভাররাইড করতে পারেন, যা সর্বনিম্ন থেকে সর্বোচ্চ বিটরেট পর্যন্ত অর্ডার করা রেন্ডিশন সহ দুটি স্ট্রিম ম্যানিফেস্টের অনুরোধ করে।

...

// The following session options are examples. Use session options
// that are compatible with your video stream.
streamRequest.videoStitcherSessionOptions = {
  "manifestOptions": {
    "bitrateOrder": "ascending"
  }
};

streamManager.requestStream(streamRequest);

অপ্রয়োজনীয়গুলি মুছুন

আপনি এখন Google Cloud Video Stitcher API ব্যবহার করে VOD স্ট্রিম হোস্ট করেছেন এবং HTML5-এর জন্য IMA DAI SDK ব্যবহার করে এটির অনুরোধ করেছেন, তাই এখন পরিষেবা প্রদানকারী রিসোর্সগুলি পরিষ্কার করা গুরুত্বপূর্ণ।

অপ্রয়োজনীয় রিসোর্স ও অ্যাসেট সরাতে VOD ক্লিন আপ সংক্রান্ত নির্দেশিকা অনুসরণ করুন।

শেষে, যে টার্মিনাল উইন্ডোতে আপনি Python 3 ওয়েব সার্ভার শুরু করেছিলেন, সেখানে ctrl+C কমান্ড ব্যবহার করে লোকাল সার্ভার বন্ধ করুন।