এই নির্দেশিকায় বর্ণনা করা হয়েছে কীভাবে অ্যাড পড টাইমিং মেটাডেটা (ATM) পদ্ধতি ব্যবহার করে প্রি-রোল অ্যাড সহ অ্যাড ব্রেকগুলির সঠিক সময় এবং সময়কাল সংগ্রহ করে অ্যাড ব্রেক যুক্ত করা যায়।
প্রি-রোল বিজ্ঞাপন যোগ করতে এবং মিড-রোল বিজ্ঞাপন বিরতির পর কনটেন্টে ফিরে আসা পরিচালনা করতে, আমরা নিম্নলিখিত API-গুলো কল করার পরামর্শ দিই:
- অ্যাড পড টাইমিং মেটাডেটা (ATM) API : অ্যাড এবং স্লেটের সময়কাল সহ অ্যাড পড সিদ্ধান্তের ফলাফল কোয়েরি করুন।
- অ্যাড সেগমেন্ট এন্ডপয়েন্ট : বর্তমান অ্যাড পডটি বন্ধ করার বিকল্পসহ অ্যাড বা স্লেট সেগমেন্টের জন্য অনুরোধ করুন।
ঐচ্ছিকভাবে, অধিক সংখ্যক দর্শকের অংশগ্রহণে অনুষ্ঠিত লাইভস্ট্রিম ইভেন্টগুলোর জন্য, বিজ্ঞাপন বিরতি শুরু হওয়ার আগেই বিজ্ঞাপনের সিদ্ধান্ত নির্ধারণ করতে আমরা আর্লি অ্যাড ব্রেক নোটিফিকেশন (EABN) API কল করার পরামর্শ দিই।
পূর্বশর্ত
শুরু করার জন্য, আপনাকে পড সার্ভিং রিডাইরেক্ট ডাইনামিক অ্যাড ইনসারশন (DAI) টাইপের জন্য একটি লাইভস্ট্রিম ইভেন্ট সেট আপ করতে হবে। নিম্নলিখিত পদ্ধতিগুলোর মধ্যে একটি বেছে নিন:
- বিজ্ঞাপন ব্যবস্থাপক UI: DAI-এর জন্য একটি লাইভস্ট্রিম সেট আপ করুন ।
- অ্যাড ম্যানেজার এপিআই:
LiveStreamEventService.createLiveStreamEventsমেথডটি কল করতে একটি ক্লায়েন্ট লাইব্রেরি ( উপলব্ধ অপশন ) ব্যবহার করুন।LiveStreamEvent.dynamicAdInsertionTypeপ্যারামিটারটিPOD_SERVING_REDIRECTএ সেট করুন।
বিষয়বস্তু প্রবাহ পুনরুদ্ধার করুন
যখন কোনো ব্যবহারকারী একটি লাইভস্ট্রিম ইভেন্ট নির্বাচন করেন, তখন ক্লায়েন্ট অ্যাপটি গুগল অ্যাড ম্যানেজারের কাছে একটি স্ট্রিম রিকোয়েস্ট পাঠায়। স্ট্রিম রেসপন্স থেকে, অ্যাপটি স্ট্রিম ম্যানিফেস্ট রিকোয়েস্টে অন্তর্ভুক্ত করার জন্য গুগল ডিএআই সেশন আইডি এবং মেটাডেটা সংগ্রহ করে নেয়।
নিম্নলিখিত উদাহরণটি একটি ম্যানিফেস্ট ম্যানিপুলেটরের কাছে একটি গুগল ডিএআই সেশন আইডি প্রেরণ করে:
https://MANIFEST_MANIPULATOR_URL/manifest.m3u8?DAI_stream_ID=SESSION_ID&network_code=NETWORK_CODE&DAI_custom_asset_key=CUSTOM_ASSET_KEY
ভিডিও কন্টেন্ট প্লেব্যাকের অনুরোধটি প্রসেস করার সময়, অ্যাড স্টিচিংয়ের প্রস্তুতির জন্য অনুরোধটি থেকে Google DAI সেশন আইডি এবং CUSTOM_ASSET_KEY সংরক্ষণ করুন।
অ্যাড পড টাইমিং মেটাডেটা পুনরুদ্ধার করুন
অ্যাড পডের টাইমিং পেতে, এই ধাপগুলো অনুসরণ করুন:
- একটি HMAC টোকেন তৈরি করুন ।
- HMAC টোকেন ব্যবহার করে এটিএম এপিআই-কে কল করুন।
প্রি-রোল বিজ্ঞাপনের জন্য সময় সংক্রান্ত মেটাডেটা অনুরোধ করুন
নিম্নলিখিত বিকল্পগুলি ব্যবহার করে আপনার লাইভস্ট্রিম ইভেন্টের জন্য প্রি-রোল সেটিংস যাচাই করুন:
প্রি-রোল বিজ্ঞাপনের সিদ্ধান্তের ফলাফল পেতে, এটিএম এপিআই-তে একটি অনুরোধ পাঠান।
নিম্নলিখিত উদাহরণটি প্রি-রোল বিজ্ঞাপনের জন্য একটি এটিএম অনুরোধ করে:
curl "https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/pod.json?stream_id=SESSION_ID&ad_break_id=preroll&auth-token=your_signed_HMAC_token"
মিড-রোল বিজ্ঞাপনের জন্য সময় নির্ধারণের মেটাডেটা অনুরোধ করুন
মিড-রোলগুলির জন্য অ্যাড পড মেটাডেটা পুনরুদ্ধার করতে, এই ধাপগুলি অনুসরণ করুন:
- প্রতিটি মিড-রোল বিজ্ঞাপন বিরতির সময় ও সময়কাল ধারণকারী বিজ্ঞাপন মার্কারগুলো খুঁজে বের করার জন্য লাইভস্ট্রিম ম্যানিফেস্টটি পার্স করুন।
- সুনির্দিষ্ট অ্যাড পড এবং স্লেটের সময়কাল অনুরোধ করতে এটিএম এপিআই এন্ডপয়েন্টে কল করুন। এপিআইটি অ্যাড পডের সিদ্ধান্তের ফলাফলসহ একটি JSON অবজেক্ট ফেরত দেয়।
নিম্নলিখিত উদাহরণটি মিড-রোল বিজ্ঞাপনের জন্য একটি এটিএম অনুরোধ করে:
curl "https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/pod.json?stream_id=SESSION_ID&ad_break_id=AD_BREAK_ID&pd=AD_BREAK_DURATION&auth-token=your_signed_HMAC_token"
সফল হলে, আপনি নিম্নলিখিত JSON অবজেক্টের মতো আউটপুট দেখতে পাবেন:
{
"status": "final",
"ads": [
{
"duration_ms": 5046,
"variants": {
"devrel1428000": {
"segment_extension": "ts",
"segment_durations": {
"timescale": 1000,
"values": [
5045
]
}
},
"devrel1928000": {
"segment_extension": "ts",
"segment_durations": {
"timescale": 1000,
"values": [
5045
]
}
}
}
}
],
"slate": {
"duration_ms": 0,
"variants": {
"devrel1428000": {
"segment_extension": "ts",
"segment_durations": {
"timescale": 1000,
"values": [
5005,
...
5046
]
}
},
"devrel1928000": {
"segment_extension": "ts",
"segment_durations": {
"timescale": 1000,
"values": [
5005,
...
5046
]
}
}
}
}
}
কন্টেন্ট ম্যানিফেস্টে বিজ্ঞাপন সংযুক্ত করুন
নিম্নলিখিত বিভাগগুলিতে লাইভস্ট্রিম ম্যানিফেস্ট পরিবর্তন করার এবং বিজ্ঞাপন সেগমেন্টগুলি যোগ করার পদ্ধতি ধাপে ধাপে দেখানো হয়েছে।
বিজ্ঞাপনের বিরতির অংশগুলো চিহ্নিত করুন এবং অসঙ্গতিগুলো সন্নিবেশ করুন।
প্রতিটি ভ্যারিয়েন্ট ম্যানিফেস্ট প্রসেস করার সময়, আপনার স্ট্রিমে EXT-X-CUE-IN এবং EXT-X-CUE-OUT ট্যাগগুলো শনাক্ত করুন, যা একটি বিজ্ঞাপন বিরতির শুরু এবং শেষ নির্দেশ করে।
ক্লায়েন্ট ভিডিও প্লেয়ারে কন্টেন্ট এবং বিজ্ঞাপনের মধ্যে পরিবর্তন করার জন্য EXT-X-CUE-IN এবং EXT-X-CUE-OUT ট্যাগগুলোকে EXT-X-DISCONTINUITY এলিমেন্ট দিয়ে প্রতিস্থাপন করুন।
নিম্নলিখিত উদাহরণ ম্যানিফেস্টটি EXT-X-CUE-IN এবং EXT-X-CUE-OUT ট্যাগগুলিকে প্রতিস্থাপন করে:
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.000,
contentorigin.com/1.ts
#EXTINF:5.000,
contentorigin.com/2.ts
#EXT-X-CUE-OUT:15.000
#EXTINF:5.000,
contentorigin.com/3.ts
#EXTINF:5.000,
contentorigin.com/4.ts
#EXTINF:5.000,
contentorigin.com/5.ts
#EXT-X-CUE-IN
#EXTINF:5.000,
contentorigin.com/6.ts
#EXTINF:5.000,
contentorigin.com/7.mp4
#EXTINF:5.000,
contentorigin.com/8.mp4
নিম্নলিখিত উদাহরণটি একটি প্রতিস্থাপিত ম্যানিফেস্ট দেখায়:
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.000,
contentorigin.com/1.ts
#EXTINF:5.000,
contentorigin.com/2.ts
#EXTINF:5.000,
#EXT-X-DISCONTINUITY
{... Insert ad segments here ...}
#EXT-X-DISCONTINUITY
#EXTINF:5.000,
contentorigin.com/6.mp4
#EXTINF:5.000,
contentorigin.com/7.mp4
#EXTINF:5.000,
contentorigin.com/8.mp4
Google DAI বিজ্ঞাপন সেগমেন্টগুলো এনক্রিপ্টেড নয়। যদি আপনার কন্টেন্ট এনক্রিপ্টেড থাকে, তাহলে প্রতিটি বিজ্ঞাপন বিরতির প্রথম বিজ্ঞাপন সেগমেন্টের আগে EXT-X-KEY:METHOD=NONE এলিমেন্টটি যুক্ত করে এনক্রিপশনটি সরিয়ে ফেলুন। বিজ্ঞাপন বিরতির শেষে, একটি উপযুক্ত EXT-X-KEY যুক্ত করে এনক্রিপশনটি আবার যোগ করুন।
আসন্ন বিজ্ঞাপন বিরতির শুরুর সময়, সময়কাল এবং সূচির উপর নজর রাখুন।
বিজ্ঞাপন সেগমেন্ট ইউআরএল তৈরি করুন
EXT-X-DISCONTINUITY ট্যাগগুলির মধ্যে থাকা কন্টেন্ট সেগমেন্টগুলিকে প্রতিটি অ্যাড সেগমেন্টের URL দিয়ে প্রতিস্থাপন করুন। কতগুলি অ্যাড সেগমেন্ট যুক্ত করতে হবে তা নির্ধারণ করতে, ATM API থেকে প্রাপ্ত JSON রেসপন্সে দেওয়া ads.segment_durations.values ব্যবহার করুন।
EXT-X-CUE-IN ট্যাগ শনাক্ত করার পর কোনো অ্যাড পড আগেভাগে শেষ করতে, চূড়ান্ত অ্যাড সেগমেন্টের URL-এ d= প্যারামিটারটি যোগ করুন। এই প্যারামিটারটি সেগমেন্টটিকে ছোট করে দেয়, ফলে ক্লায়েন্ট ভিডিও প্লেয়ারের টাইমলাইন প্রভাবিত হয় না।
নিম্নলিখিত উদাহরণটি ম্যানিফেস্টে একটি প্রি-রোল অ্যাড সেগমেন্ট URL একত্রিত করে। উল্লেখ্য যে, অ্যাড সেগমেন্টগুলো একটি জিরো-বেসড ইনডেক্স ব্যবহার করে:
https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/preroll/ad/0/profile/ENCODING_PROFILE/0.ts?stream_id=SESSION_ID
নিম্নলিখিত উদাহরণটি ম্যানিফেস্টে একটি মিড-রোল বিজ্ঞাপন সেগমেন্টের URL একত্রিত করে:
https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/ad/0/profile/ENCODING_PROFILE/0.ts?stream_id=SESSION_ID
নিম্নলিখিত উদাহরণটি ম্যানিফেস্টে বিজ্ঞাপন সেগমেন্টগুলি যুক্ত করে:
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.00,
contentorigin.com/1.ts
#EXTINF:5.00,
contentorigin.com/2.ts
#EXT-X-DISCONTINUITY
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/ad/0/profile/ENCODING_PROFILE/0.ts?stream_id=SESSION_ID
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/ad/0/profile/ENCODING_PROFILE/1.ts?stream_id=SESSION_ID
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/ad/0/profile/ENCODING_PROFILE/2.ts?stream_id=SESSION_ID
#EXT-X-DISCONTINUITY
#EXTINF:5.00,
contentorigin.com/6.mp4
#EXTINF:5.00,
contentorigin.com/7.mp4
#EXTINF:5.00,
contentorigin.com/8.mp4
স্লেট সেগমেন্ট তৈরি করুন
বিজ্ঞাপন এবং কন্টেন্টের মাঝের ফাঁক পূরণ করতে স্লেট সেগমেন্ট যুক্ত করুন। প্রতিটি স্লেট সেগমেন্টের সময়কাল নির্ধারণ করতে ATM API-এর JSON রেসপন্স থেকে slates.segment_durations.values অ্যারেটি ব্যবহার করুন। সম্পূর্ণ বিজ্ঞাপন বিরতিটি পূরণ করার জন্য প্রয়োজন অনুযায়ী সেগমেন্টের সময়কালের ক্রমটি লুপ করুন।
নিম্নলিখিত উদাহরণটি একটি স্লেট সেগমেন্ট একত্রিত করে:
https://dai.google.com/linear/pods/v1/adv/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/slate/0/profile/ENCODING_PROFILE/0.ts?stream_id=SESSION_ID
উদাহরণে slate/0 বলতে স্লেট ইটারেশন নম্বর বোঝানো হয়েছে। স্লেটের প্রতিটি লুপের জন্য এই সংখ্যাটি 0 থেকে শুরু করে বাড়াতে হবে, নাকি সমস্ত ইটারেশনের জন্য 0 রাখতে হবে, তা নির্ধারণ করতে আপনার ক্লায়েন্ট ভিডিও প্লেয়ারের কম্প্যাটিবিলিটি এবং ক্যাশিং ক্ষমতা দেখুন।
বিষয়বস্তুতে প্রত্যাবর্তন পরিচালনা করুন
অ্যাড পড থেকে সমস্ত সেগমেন্ট যুক্ত করার পর, আপনার কন্টেন্ট স্ট্রিমে ফিরে যাওয়ার জন্য নিম্নলিখিত পদ্ধতিগুলোর মধ্যে একটি বেছে নিন:
| পদ্ধতি | বর্ণনা | ক্লায়েন্ট ভিডিও প্লেয়ারের উপর প্রভাব |
|---|---|---|
| স্লেটের খণ্ড দিয়ে পূরণ করুন | স্লেট সেগমেন্টগুলি সন্নিবেশ করে এবং স্লেটটিকে লুপ করে। সময়কাল পূরণ করে এবং প্রতিটি স্লেট পুনরাবৃত্তির মধ্যে EXT-X-DISCONTINUITY উপাদানগুলি সন্নিবেশ করে। | কোনো প্রভাব নেই। ভিডিও প্লেয়ারটি টাইমলাইনের কোনো পরিবর্তন ছাড়াই মূল কন্টেন্টে ফিরে আসে। |
| একটি একক স্লেট সেগমেন্টের সাথে পুনরায় সারিবদ্ধ করুন | একটি একক স্লেট সেগমেন্ট সন্নিবেশ করে। কন্টেন্ট শুরু হওয়ার পূর্ব পর্যন্ত সময়কাল পূরণ করতে d= প্যারামিটারটি ব্যবহৃত হয়। | কোনো প্রভাব নেই। ভিডিও প্লেয়ারটি টাইমলাইনের কোনো পরিবর্তন ছাড়াই মূল কন্টেন্টে ফিরে আসে। |
| অবিলম্বে প্রত্যাবর্তন | বিষয়বস্তু অংশগুলি সন্নিবেশ করুন। | ভিডিও প্লেয়ারের টাইমলাইন পরিবর্তিত হয়েছে। আপনার ক্লায়েন্ট ভিডিও প্লেয়ারকে অবশ্যই পরিবর্তিত টাইমলাইনটি সামলাতে হবে। |
ঐচ্ছিক: একটি বিজ্ঞাপন বিরতি নির্ধারণ করুন।
আপনার ফিল রেট উন্নত করতে, অ্যাড পডের সময়কাল, কাস্টম টার্গেটিং প্যারামিটার এবং SCTE-35 সিগন্যাল ডেটা সহ একটি আর্লি অ্যাড ব্রেক নোটিফিকেশন (EABN) পাঠান। আরও বিস্তারিত জানতে, ‘আর্লি অ্যাড ব্রেক নোটিফিকেশন পাঠান’ দেখুন।