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