IMA SDK গুলি আপনার ওয়েবসাইট এবং অ্যাপগুলিতে মাল্টিমিডিয়া বিজ্ঞাপনগুলিকে একীভূত করা সহজ করে তোলে। IMA SDK গুলি যেকোনো VAST-সম্মত বিজ্ঞাপন সার্ভার থেকে বিজ্ঞাপনের অনুরোধ করতে পারে এবং আপনার অ্যাপগুলিতে বিজ্ঞাপন প্লেব্যাক পরিচালনা করতে পারে। IMA DAI SDK গুলির সাহায্যে, অ্যাপগুলি বিজ্ঞাপন এবং কন্টেন্ট ভিডিওর জন্য একটি স্ট্রিম অনুরোধ করে—হয় VOD অথবা লাইভ কন্টেন্ট। SDK তারপর একটি সম্মিলিত ভিডিও স্ট্রিম প্রদান করে, যাতে আপনাকে আপনার অ্যাপের মধ্যে বিজ্ঞাপন এবং কন্টেন্ট ভিডিওর মধ্যে স্যুইচ করার ব্যবস্থা করতে না হয়।
আপনার আগ্রহের DAI সমাধানটি নির্বাচন করুন।
Google Cloud Video Stitcher API-এর সাথে নিবন্ধিত লাইভস্ট্রিম চালান
এই নির্দেশিকাটি দেখায় যে কীভাবে HTML5 এর জন্য IMA DAI SDK ব্যবহার করে Google Cloud Video Stitcher API- তে নিবন্ধিত কোনও ইভেন্টের জন্য লাইভস্ট্রিমের অনুরোধ এবং প্লে করতে হয় এবং প্লেব্যাকের সময় কীভাবে একটি বিজ্ঞাপন বিরতি সন্নিবেশ করাতে হয়।
এই নির্দেশিকাটি IMA DAI-এর জন্য শুরু করার নির্দেশিকা থেকে মৌলিক উদাহরণের উপর বিস্তৃত।
অন্যান্য প্ল্যাটফর্মের সাথে একীভূতকরণ বা IMA ক্লায়েন্ট-সাইড SDK ব্যবহার সম্পর্কে তথ্যের জন্য, ইন্টারেক্টিভ মিডিয়া বিজ্ঞাপন SDK দেখুন।
সম্পূর্ণ নমুনা ইন্টিগ্রেশন দেখতে বা অনুসরণ করতে, HLS বা DASH এর জন্য ক্লাউড ভিডিও স্টিচার উদাহরণটি ডাউনলোড করুন।
একটি গুগল ক্লাউড প্রোজেক্ট সেট আপ করুন
আপনার নিজস্ব কন্টেন্ট লাইভস্ট্রিম অথবা টেস্ট লাইভস্ট্রিম ব্যবহার করে লাইভস্ট্রিম ইভেন্টের জন্য একটি কনফিগারেশন তৈরি করুন । এই নির্দেশিকাটিতে একটি HLS স্ট্রিম আশা করা হচ্ছে।
IMA SDK-তে ব্যবহারের জন্য নিম্নলিখিত ভেরিয়েবলগুলি লিখুন:- স্থান
- আপনার লাইভ কনফিগারেশন তৈরি করা হয়েছে এমন Google ক্লাউড অঞ্চল :
LOCATION - প্রকল্প নম্বর
- ভিডিও স্টিচার API ব্যবহার করে Google ক্লাউড প্রকল্প নম্বর:
PROJECT_NUMBER - OAuth টোকেন
ভিডিও স্টিচার ব্যবহারকারীর ভূমিকা সহ একটি পরিষেবা অ্যাকাউন্টের স্বল্পস্থায়ী OAuth টোকেন:
OAUTH_TOKEN
পরিষেবা অ্যাকাউন্টের জন্য স্বল্পস্থায়ী শংসাপত্র তৈরি সম্পর্কে আরও পড়ুন। OAuth টোকেনটি একাধিক অনুরোধে পুনঃব্যবহার করা যেতে পারে যতক্ষণ না এটির মেয়াদ শেষ হয়ে যায়।
- নেটওয়ার্ক কোড
বিজ্ঞাপনের অনুরোধের জন্য বিজ্ঞাপন ম্যানেজার নেটওয়ার্ক কোড:
NETWORK_CODE
- লাইভ কনফিগারেশন আইডি
- আপনার লাইভস্ট্রিম ইভেন্ট তৈরি করার সময় আপনি যে লাইভ কনফিগারেশন আইডিটি নির্দিষ্ট করেছিলেন:
LIVE_CONFIG_ID - কাস্টম অ্যাসেট কী
- ভিডিও স্টিচার API ব্যবহার করে লাইভস্ট্রিম ইভেন্টের জন্য কনফিগারেশন তৈরি করার প্রক্রিয়ার সময় তৈরি হওয়া বিজ্ঞাপন ম্যানেজার কাস্টম অ্যাসেট কী:
CUSTOM_ASSET_KEY
একটি উন্নয়ন পরিবেশ কনফিগার করুন
IMA নমুনা অ্যাপগুলি শুধুমাত্র HLS স্ট্রিম অনুরোধগুলি প্রদর্শন করে। VideoStitcherLiveStreamRequest ক্লাস তৈরি করার সময় আপনি এখনও DASH স্ট্রিম ব্যবহার করতে পারেন। আপনার DASH-সামঞ্জস্যপূর্ণ প্লেয়ার সেট আপ করার সময়, আপনার ভিডিও প্লেয়ারের অগ্রগতি ইভেন্টগুলির জন্য একটি শ্রোতা সেট আপ করতে হবে যা StreamManager.processMetadata() কে ভিডিওর মেটাডেটা সরবরাহ করতে পারে। এই ফাংশনটি তিনটি প্যারামিটার গ্রহণ করে:
type: একটি স্ট্রিং যা HLS স্ট্রিমগুলির জন্য'ID3'এবং DASH স্ট্রিমগুলির জন্য'urn:google:dai:2018'তে সেট করতে হবে।data: DASH ইভেন্ট বার্তাগুলির জন্য, এটি হল বার্তা ডেটা স্ট্রিং।timestamp: একটি সংখ্যা যা DASH স্ট্রিমগুলির জন্য ইভেন্ট বার্তা শুরুর সময়।
আপনার প্লেয়ার ইভেন্টগুলি যত তাড়াতাড়ি এবং যতবার সম্ভব মেটাডেটা পাঠান। যদি মেটাডেটা অনুপস্থিত থাকে বা সঠিক না হয়, তাহলে IMA DAI SDK বিজ্ঞাপন ইভেন্টগুলি ট্রিগার নাও করতে পারে, যার ফলে ভুলভাবে বিজ্ঞাপন ইভেন্টগুলি রিপোর্ট করা হতে পারে।
HTML5 এর জন্য IMA DAI উদাহরণগুলি ডাউনলোড করুন এবং HLS.js Simple নমুনাটি একটি নতুন ফোল্ডারে এক্সট্র্যাক্ট করুন। এই উদাহরণটি একটি ওয়েব অ্যাপ যা আপনি পরীক্ষার উদ্দেশ্যে স্থানীয়ভাবে হোস্ট করতে পারেন।
স্থানীয়ভাবে উদাহরণটি হোস্ট করতে, নতুন ফোল্ডারে নেভিগেট করুন এবং একটি ওয়েব সার্ভার শুরু করতে নিম্নলিখিত পাইথন কমান্ডটি চালান:
python3 -m http.server 8000http.server শুধুমাত্র Python 3.x তে উপলব্ধ। আপনি অন্য যেকোনো ওয়েব সার্ভার ব্যবহার করতে পারেন, যেমন Apache HTTP Server অথবা Node JS।
একটি ওয়েব ব্রাউজার খুলুন এবং localhost:8000 এ যান এবং একটি ভিডিও প্লেয়ার দেখুন। আপনার ব্রাউজারটি অবশ্যই HLS.js লাইব্রেরি সমর্থন করবে।
যদি সবকিছু ঠিকঠাকভাবে কাজ করে, তাহলে ভিডিও প্লেয়ারের প্লে বোতামে ক্লিক করলে একটি ছোট বিজ্ঞাপনের পরে "টিয়ার্স অফ স্টিল" শর্ট ফিল্মটি শুরু হয়। এই কন্টেন্টটি একটি ভিডিও অন ডিমান্ড (VOD) স্ট্রিম ব্যবহার করে সরবরাহ করা হয়।
লাইভস্ট্রিমের অনুরোধ করুন
আপনার লাইভস্ট্রিমের সাথে নমুনা VOD স্ট্রিম প্রতিস্থাপন করতে, VideoStitcherLiveStreamRequest ক্লাসটি ব্যবহার করুন যা স্বয়ংক্রিয়ভাবে Google বিজ্ঞাপন ম্যানেজারের সাথে একটি বিজ্ঞাপন সেশন তৈরি করে। আপনি পর্যবেক্ষণ এবং ডিবাগিংয়ের জন্য জেনারেট করা DAI সেশনগুলি সনাক্ত করতে Google বিজ্ঞাপন ম্যানেজার UI ব্যবহার করতে পারেন।
বিদ্যমান নমুনায়, একটি VOD স্ট্রিম বা একটি লাইভস্ট্রিম অনুরোধ করার জন্য ফাংশন রয়েছে। এটি Google Cloud Video Stitcher 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);
}
স্থানীয় পরীক্ষার জন্য, যদি লাইভস্ট্রিম ফাইলগুলি ক্লাউড স্টোরেজ বাকেটে থাকে, তাহলে আপনাকে origin 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": {
"bitrateOrder": "ascending"
}
};
streamManager.requestStream(streamRequest);
একটি বিজ্ঞাপন বিরতি ঢোকান
গুগল ক্লাউড ভিডিও স্টিচার এপিআই প্রতিটি বিজ্ঞাপন বিরতির জন্য বিজ্ঞাপন ট্যাগ থেকে প্রাপ্ত বিজ্ঞাপনগুলি সন্নিবেশ করায়। বিজ্ঞাপন বিরতিগুলি বিজ্ঞাপন মার্কার ব্যবহার করে ম্যানিফেস্টে নির্দেশিত হয়। লাইভ স্ট্রিম এনকোডার দ্বারা বিজ্ঞাপন মার্কারগুলি সন্নিবেশ করা হয়।
যদি আপনি নিজের লাইভ স্ট্রিম ব্যবহার করেন, তাহলে আপনাকে বিজ্ঞাপন মার্কারটি সন্নিবেশ করতে হবে। সমর্থিত HLS এবং DASH বিজ্ঞাপন মার্কার সম্পর্কে আরও তথ্যের জন্য, বিজ্ঞাপন মার্কার ডকুমেন্টেশন দেখুন।
আপনি যদি Google Cloud Livestream API ব্যবহার করে একটি লাইভ স্ট্রিম তৈরি করেন, তাহলে একটি বিজ্ঞাপন বিরতি চ্যানেল ইভেন্ট সন্নিবেশ করান ।
বিজ্ঞাপন বিরতি সন্নিবেশ করার সাথে সাথেই বিজ্ঞাপনটি চালানো হয়।
পরিষ্কার করা
এখন যেহেতু আপনি Google Cloud Video Stitcher API ব্যবহার করে সফলভাবে একটি লাইভ স্ট্রিম হোস্ট করেছেন এবং HTML5 এর জন্য IMA DAI SDK ব্যবহার করে এটির অনুরোধ করেছেন, তাই যেকোনো পরিবেশনকারী রিসোর্স পরিষ্কার করা গুরুত্বপূর্ণ।
যেকোনো অপ্রয়োজনীয় সম্পদ এবং সম্পদ অপসারণ করতে লাইভস্ট্রিম পরিষ্কারের নির্দেশিকা অনুসরণ করুন।
অবশেষে, যে টার্মিনাল উইন্ডো থেকে আপনি Python 3 ওয়েব সার্ভার শুরু করেছেন, সেখানে স্থানীয় সার্ভারটি শেষ করতে ctrl+C কমান্ডটি ব্যবহার করুন।