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

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

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

Google ক্লাউড ভিডিও স্টিচার API এর সাথে নিবন্ধিত লাইভস্ট্রিম চালান

Google ক্লাউড ভিডিও স্টিচার এপিআই-এর সাথে নিবন্ধিত একটি ইভেন্টের জন্য একটি লাইভস্ট্রিমের অনুরোধ করতে এবং চালানোর জন্য কীভাবে HTML5-এর জন্য IMA DAI SDK ব্যবহার করতে হয় এবং প্লেব্যাকের সময় কীভাবে বিজ্ঞাপন বিরতি ঢোকাতে হয় তা এই নির্দেশিকা দেখায়।

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

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

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

একটি Google ক্লাউড প্রকল্প সেট আপ করুন৷

একটি Google ক্লাউড প্রকল্প সেট আপ করুন এবং প্রকল্পটি অ্যাক্সেস করতে পরিষেবা অ্যাকাউন্টগুলি কনফিগার করুন

আপনার নিজস্ব সামগ্রী লাইভস্ট্রিম বা একটি পরীক্ষামূলক লাইভ স্ট্রিম ব্যবহার করে একটি লাইভস্ট্রিম ইভেন্টের জন্য একটি কনফিগারেশন তৈরি করুন ৷ এই নির্দেশিকা একটি HLS স্ট্রিম আশা করে।

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

অবস্থান
Google ক্লাউড অঞ্চল যেখানে আপনার লাইভ কনফিগারেশন তৈরি করা হয়েছিল: LOCATION
প্রকল্প নম্বর
ভিডিও স্টিচার API ব্যবহার করে Google ক্লাউড প্রকল্প নম্বর: PROJECT_NUMBER
OAuth টোকেন

ভিডিও স্টিচার ব্যবহারকারীর ভূমিকা সহ একটি পরিষেবা অ্যাকাউন্টের স্বল্পকালীন OAuth টোকেন:

OAUTH_TOKEN

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

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

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

লাইভ কনফিগার আইডি
আপনার লাইভ স্ট্রিম ইভেন্ট তৈরি করার সময় আপনি যে লাইভ কনফিগারেশন আইডি নির্দিষ্ট করেছেন: LIVE_CONFIG_ID
কাস্টম সম্পদ কী
Ad Manager কাস্টম অ্যাসেট কী ভিডিও স্টিচার API-এর সাথে একটি লাইভস্ট্রিম ইভেন্টের জন্য একটি কনফিগারেশন তৈরি করার প্রক্রিয়া চলাকালীন জেনারেট হয়েছে: CUSTOM_ASSET_KEY

একটি উন্নয়ন পরিবেশ কনফিগার করুন

IMA নমুনা অ্যাপগুলি শুধুমাত্র HLS স্ট্রিম অনুরোধগুলি প্রদর্শন করে৷ VideoStitcherLiveStreamRequest ক্লাস তৈরি করার সময় আপনি এখনও 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 সরল নমুনা বের করুন৷ এই উদাহরণটি হল একটি ওয়েব অ্যাপ যা আপনি স্থানীয়ভাবে পরীক্ষার উদ্দেশ্যে হোস্ট করতে পারেন৷

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

python3 -m http.server 8000

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

একটি ওয়েব ব্রাউজার খুলুন এবং একটি ভিডিও প্লেয়ার দেখতে localhost:8000 এ নেভিগেট করুন। আপনার ব্রাউজার অবশ্যই HLS.js লাইব্রেরি সমর্থন করবে৷

সবকিছু সঠিকভাবে কাজ করলে, ভিডিও প্লেয়ারে প্লে বোতামে ক্লিক করলে একটি ছোট বিজ্ঞাপনের পর শর্ট ফিল্ম "টিয়ার্স অফ স্টিল" শুরু হয়। এই বিষয়বস্তু একটি ভিডিও অন ডিমান্ড (VOD) স্ট্রিম ব্যবহার করে বিতরণ করা হয়।

একটি লাইভস্ট্রিম অনুরোধ

আপনার লাইভস্ট্রিমের সাথে নমুনা VOD স্ট্রীম প্রতিস্থাপন করতে, VideoStitcherLiveStreamRequest ক্লাসটি ব্যবহার করুন যা Google Ad Manager-এর সাথে স্বয়ংক্রিয়ভাবে একটি বিজ্ঞাপন সেশন তৈরি করে। আপনি নিরীক্ষণ এবং ডিবাগিংয়ের জন্য জেনারেট করা DAI সেশনগুলি সনাক্ত করতে Google Ad Manager UI ব্যবহার করতে পারেন৷

বিদ্যমান নমুনায়, একটি VOD স্ট্রিম বা একটি লাইভস্ট্রিম অনুরোধ করার জন্য ফাংশন আছে। এটিকে Google ক্লাউড ভিডিও স্টিচার API এর সাথে কাজ করতে, আপনাকে একটি VideoStitcherLiveStreamRequest অবজেক্ট ফেরত দিতে একটি নতুন ফাংশন যোগ করতে হবে।

এখানে একটি উদাহরণ:

// StreamManager which will be used to request ad-enabled 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() {
  requestVideoStitcherStream();

  playButton.style.display = "none";
  playButton.removeEventListener('click', initiatePlayback);
  playButton.addEventListener('click', resumePlayback);
}
...

function requestVideoStitcherStream() {
  const streamRequest = new google.ima.dai.api.VideoStitcherLiveStreamRequest();
  streamRequest.liveStreamEventId = 'LIVE_CONFIG_ID';
  streamRequest.region = 'LOCATION';
  streamRequest.projectNumber = 'PROJECT_NUMBER';
  streamRequest.oAuthToken = 'OAUTH_TOKEN';
  streamRequest.networkCode = 'NETWORK_CODE';
  streamRequest.customAssetKey = 'CUSTOM_ASSET_KEY';

  streamManager.requestStream(streamRequest);
}

স্থানীয় পরীক্ষার জন্য, যদি লাইভস্ট্রিম ফাইলগুলি একটি ক্লাউড স্টোরেজ বাকেটের মধ্যে থাকে, তাহলে আপনাকে মূল http://localhost:8000 জন্য CORS সক্ষম করতে হবে।

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

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

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

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

...

// The following session options are examples. Use session options
// that are compatible with your video stream.
streamRequest.videoStitcherSessionOptions = {
  "manifestOptions": {
    "includeRenditions": [
      {"bitrateBps": 3000, "codecs": "hvc1.1.4.L126.B0, mp4a.40.2"},
      {"bitrateBps": 2000, "codecs": "avc1.64001f, mp4a.40.2"},
    ],
    "bitrateOrder": "ascending"
  }
};

streamManager.requestStream(streamRequest);

একটি বিজ্ঞাপন বিরতি সন্নিবেশ

Google ক্লাউড ভিডিও স্টিচার API প্রতিটি বিজ্ঞাপন বিরতির জন্য বিজ্ঞাপন ট্যাগ থেকে পুনরুদ্ধার করা বিজ্ঞাপন সন্নিবেশ করায়। বিজ্ঞাপনের বিরতিগুলি বিজ্ঞাপন চিহ্নিতকারী ব্যবহার করে ম্যানিফেস্টে চিহ্নিত করা হয়। লাইভ স্ট্রিম এনকোডার দ্বারা বিজ্ঞাপন চিহ্নিতকারী ঢোকানো হয়।

বিজ্ঞাপন বিরতি ঢোকানোর পরপরই বিজ্ঞাপনটি চালানো হয়।

পরিষ্কার করুন

এখন আপনি Google ক্লাউড ভিডিও স্টিচার API ব্যবহার করে সফলভাবে একটি লাইভ স্ট্রিম হোস্ট করেছেন এবং HTML5-এর জন্য IMA DAI SDK ব্যবহার করে অনুরোধ করেছেন, যে কোনও পরিবেশন সংস্থান পরিষ্কার করা গুরুত্বপূর্ণ৷

যেকোনো অপ্রয়োজনীয় সম্পদ এবং সম্পদ সরাতে লাইভস্ট্রিম ক্লিন আপ গাইড অনুসরণ করুন।

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