আপনার পছন্দের DAI সমাধানটি নির্বাচন করুন।
সম্পূর্ণ পরিষেবা DAI
এই নির্দেশিকাটি IMA CAF DAI SDK ব্যবহার করে একটি DAI স্ট্রিম কীভাবে প্লে করতে হয় তা দেখায়। আপনি যদি একটি সম্পূর্ণ নমুনা ইন্টিগ্রেশন দেখতে বা অনুসরণ করতে চান, তাহলে উদাহরণটি ডাউনলোড করুন ।
এই নির্দেশিকাটি ব্যবহার করার আগে, Chromecast Application Framework-এর Web Receiver প্রোটোকলের সাথে ভালোভাবে পরিচিত হয়ে নিন। এই নির্দেশিকাটি ধরে নেয় যে, আপনার CAF রিসিভারের ধারণা, যেমন মেসেজ ইন্টারসেপ্টর এবং mediaInformation অবজেক্ট, সম্পর্কে প্রাথমিক ধারণা রয়েছে এবং সেইসাথে CAF প্রেরককে অনুকরণ করার জন্য Cast Command and Control টুলটি ব্যবহার করার অভিজ্ঞতাও আছে।
IMA DAI ব্যবহার করার জন্য, আপনার একটি Ad Manager 360 অ্যাকাউন্ট থাকতে হবে। যদি আপনার একটি Ad Manager অ্যাকাউন্ট থাকে, তবে আরও বিস্তারিত জানতে আপনার অ্যাকাউন্ট ম্যানেজারের সাথে যোগাযোগ করুন। Ad Manager-এ সাইন আপ করার বিষয়ে তথ্যের জন্য, Ad Manager হেল্প সেন্টার দেখুন।
অন্যান্য প্ল্যাটফর্মের সাথে ইন্টিগ্রেশন বা IMA ক্লায়েন্ট-সাইড SDK ব্যবহারের তথ্যের জন্য, ইন্টারেক্টিভ মিডিয়া অ্যাডস SDK দেখুন।
CAF DAI সংক্ষিপ্ত বিবরণ
এই নির্দেশিকায় যেমন দেখানো হয়েছে, IMA CAF DAI SDK ব্যবহার করে DAI বাস্তবায়নে দুটি প্রধান উপাদান জড়িত:
StreamRequest: একটি অবজেক্ট যা গুগলের বিজ্ঞাপন সার্ভারগুলিতে একটি স্ট্রিম অনুরোধ নির্ধারণ করে। স্ট্রিম অনুরোধ প্রধানত দুই প্রকারের হয়:-
LiveStreamRequest: একটি অ্যাসেট কী (Asset Key) এবং অন্যান্য ঐচ্ছিক প্যারামিটার নির্দিষ্ট করে। -
VODStreamRequest: একটি কন্টেন্ট সোর্স আইডি , একটি ভিডিও আইডি এবং অন্যান্য ঐচ্ছিক প্যারামিটার নির্দিষ্ট করে। - উভয় ধরনের অনুরোধেই ঐচ্ছিকভাবে নির্দিষ্ট স্ট্রিম অ্যাক্সেস করার জন্য প্রয়োজনীয় একটি এপিআই কী এবং গুগল অ্যাড ম্যানেজার সেটিংসে নির্দিষ্ট করা বিজ্ঞাপন শনাক্তকারীগুলো পরিচালনা করার জন্য আইএমএ এসডিকে-এর একটি গুগল অ্যাড ম্যানেজার নেটওয়ার্ক কোড অন্তর্ভুক্ত করা যেতে পারে।
-
StreamManager: একটি অবজেক্ট যা ভিডিও স্ট্রিম এবং IMA DAI SDK-এর মধ্যে যোগাযোগ পরিচালনা করে, যেমন ট্র্যাকিং পিং পাঠানো এবং স্ট্রিম ইভেন্টগুলোকে পাবলিশারের কাছে ফরোয়ার্ড করা।
পূর্বশর্ত
- একটি নিবন্ধিত টেস্ট ডিভাইসসহ কাস্ট ডেভেলপার কনসোল অ্যাকাউন্ট।
- একটি হোস্টেড ওয়েব রিসিভার অ্যাপ যা আপনার কাস্ট ডেভেলপার কনসোলে নিবন্ধিত এবং যা এই নির্দেশিকায় প্রদত্ত কোড হোস্ট করার জন্য পরিবর্তন করা যেতে পারে।
- একটি প্রেরক অ্যাপ যা আপনার ওয়েব রিসিভার অ্যাপ ব্যবহার করার জন্য কনফিগার করা হয়েছে। এই উদাহরণে প্রেরক হিসেবে কাস্ট কমান্ড অ্যান্ড কন্ট্রোল টুল ব্যবহার করা হয়েছে।
প্রেরকের MediaInfo অবজেক্টগুলি কনফিগার করুন
প্রথমে, আপনার প্রেরক অ্যাপের MediaInfo অবজেক্টটি নিম্নলিখিত ফিল্ডগুলি অন্তর্ভুক্ত করার জন্য কনফিগার করুন:
contentId | এই মিডিয়া আইটেমটির জন্য একটি অনন্য শনাক্তকারী | |
contentUrl | যেকোনো কারণে DAI StreamRequest ব্যর্থ হলে লোড করার জন্য ফলব্যাক স্ট্রিম URL। | |
streamType | লাইভ স্ট্রিমের জন্য এই মানটি `LIVE`-এ সেট করতে হবে। VOD স্ট্রিমের জন্য এই মানটি `BUFFERED`-এ সেট করতে হবে। | |
customData | assetKey | শুধুমাত্র লাইভস্ট্রিম। লোড করার জন্য লাইভস্ট্রিমটি শনাক্ত করে। |
contentSourceId | শুধুমাত্র VOD স্ট্রিম। অনুরোধকৃত স্ট্রিমটি যে মিডিয়া ফিডে রয়েছে, তা শনাক্ত করে। | |
videoId | শুধুমাত্র VOD স্ট্রিম। নির্দিষ্ট মিডিয়া ফিডের মধ্যে অনুরোধকৃত স্ট্রিমটি শনাক্ত করে। | |
networkCode | (ঐচ্ছিক) আপনার গুগল অ্যাড ম্যানেজার নেটওয়ার্ক কোড। | |
ApiKey | একটি ঐচ্ছিক এপিআই কী, যা IMA DAI SDK থেকে স্ট্রিম ইউআরএল পুনরুদ্ধার করার জন্য প্রয়োজন হতে পারে। | |
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"
}
ভিওডি
{
"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-এর জন্য IMA DAI SDK ইম্পোর্ট করতে, CAF লোড করার স্ক্রিপ্টটির ঠিক পরেই একটি স্ক্রিপ্ট ট্যাগ যোগ করুন। 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>
আইএমএ স্ট্রিম ম্যানেজার শুরু করুন
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>
আপনি এখন গুগলের CAF DAI SDK ব্যবহার করে DAI স্ট্রিম অনুরোধ এবং প্লেব্যাক করতে পারবেন। SDK-এর আরও উন্নত বৈশিষ্ট্য সম্পর্কে জানতে, অন্যান্য গাইডগুলি দেখুন অথবা আমাদের নমুনা রিসিভার অ্যাপ্লিকেশনগুলি ডাউনলোড করুন ।