প্রি-রোল বিজ্ঞাপন সহ বিজ্ঞাপন বিরতির জন্য সুনির্দিষ্ট সময় এবং সময়কাল আনতে অ্যাড পড টাইমিং মেটাডেটা (এটিএম) পদ্ধতি ব্যবহার করে কীভাবে বিজ্ঞাপন বিরতি সন্নিবেশ করা যায় তা এই নির্দেশিকা বর্ণনা করে।
প্রি-রোল বিজ্ঞাপনগুলি সন্নিবেশ করাতে এবং মিড-রোল বিজ্ঞাপন বিরতির পরে সামগ্রীতে ফিরে যাওয়া পরিচালনা করতে, আমরা নিম্নলিখিত APIগুলিকে কল করার পরামর্শ দিই:
- অ্যাড পড টাইমিং মেটাডেটা (এটিএম) এপিআই : বিজ্ঞাপন এবং স্লেটের সময়কাল সহ বিজ্ঞাপন পডের সিদ্ধান্তের ফলাফল জিজ্ঞাসা করুন৷
- বিজ্ঞাপন সেগমেন্ট এন্ডপয়েন্ট : বর্তমান বিজ্ঞাপন পড বন্ধ করার বিকল্প সহ বিজ্ঞাপন বা স্লেট সেগমেন্টের অনুরোধ করুন।
ঐচ্ছিকভাবে, উচ্চ সঙ্গতিপূর্ণ লাইভস্ট্রিম ইভেন্টের জন্য, আমরা বিজ্ঞাপন বিরতি শুরু হওয়ার আগে বিজ্ঞাপনের সিদ্ধান্তের সময়সূচী করার জন্য আর্লি অ্যাড ব্রেক নোটিফিকেশন (EABN) API কল করার পরামর্শ দিই।
পূর্বশর্ত
শুরু করার জন্য, আপনাকে Pod সার্ভিং রিডাইরেক্ট ডায়নামিক অ্যাড ইনসার্শন (DAI) টাইপের জন্য একটি লাইভস্ট্রিম ইভেন্ট সেট আপ করতে হবে। নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটি বেছে নিন:
- অ্যাড ম্যানেজার UI: DAI-এর জন্য একটি লাইভস্ট্রিম সেট আপ করুন ।
- Ad Manager API:
LiveStreamEventService.createLiveStreamEvents
পদ্ধতিতে কল করতে একটি ক্লায়েন্ট লাইব্রেরি ( উপলব্ধ বিকল্প ) ব্যবহার করুন।LiveStreamEvent.dynamicAdInsertionType
প্যারামিটারPOD_SERVING_REDIRECT
এ সেট করুন।
বিষয়বস্তু স্ট্রীম পুনরুদ্ধার করুন
যখন একজন ব্যবহারকারী একটি লাইভস্ট্রিম ইভেন্ট নির্বাচন করেন, তখন ক্লায়েন্ট অ্যাপ Google অ্যাড ম্যানেজারকে একটি স্ট্রিম অনুরোধ করে। স্ট্রিম প্রতিক্রিয়াতে, অ্যাপটি স্ট্রীম ম্যানিফেস্ট অনুরোধে অন্তর্ভুক্ত করার জন্য Google DAI সেশন আইডি এবং মেটাডেটা বের করে।
নিম্নলিখিত উদাহরণটি একটি ম্যানিফেস্ট ম্যানিপুলেটরকে একটি Google DAI সেশন আইডি পাস করে:
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 টোকেন সহ ATM API-কে কল করুন।
একটি স্বাক্ষরিত HMAC টোকেন তৈরি করুন
আপনার অনুরোধগুলি প্রমাণীকরণ করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
নিচের প্যারামিটারগুলিকে বর্ণানুক্রমিক ক্রমে একত্রিত করে একটি টোকেন স্ট্রিং তৈরি করুন, একটি টিল্ড দ্বারা পৃথক করুন
~
:প্যারামিটার প্রয়োজনীয় বা ঐচ্ছিক বর্ণনা ad_break_id
প্রয়োজন একটি স্ট্রিং যা আপনি বিজ্ঞাপন বিরতি সনাক্ত করতে নির্দিষ্ট করেন, উদাহরণস্বরূপ ad-break-1
। প্রি-রোল বিজ্ঞাপনের জন্য,preroll
ব্যবহার করুন।custom_asset_key
প্রয়োজন লাইভস্ট্রিম ইভেন্টের কাস্টম সম্পদ কী। cust_params
ঐচ্ছিক কাস্টম টার্গেটিং পরামিতি। আরও বিশদ বিবরণের জন্য, আপনার স্ট্রীমে লক্ষ্যমাত্রার পরামিতি সরবরাহ করুন দেখুন। exp
প্রয়োজন এই টোকেনের মেয়াদ শেষ হওয়ার সময়, ইউনিক্স যুগের পর থেকে অতিক্রান্ত সেকেন্ডের মোট সংখ্যা হিসাবে পরিমাপ করা হয়। network_code
প্রয়োজন আপনার Google বিজ্ঞাপন ম্যানেজার নেটওয়ার্ক কোড। আরও বিস্তারিত জানার জন্য, অ্যাড ম্যানেজার অ্যাকাউন্টের তথ্য খুঁজুন দেখুন। pd
প্রয়োজন মিলিসেকেন্ডে বিজ্ঞাপন বিরতির সময়কাল। প্রি-রোল বিজ্ঞাপনের জন্য, Google DAI আপনার লাইভস্ট্রিম ইভেন্ট সেটিংসের সাথে এই প্যারামিটারটিকে ওভাররাইড করে। scte35
ঐচ্ছিক Base64-এনকোডেড SCTE-35 সংকেত। সংকেত সঠিক কিনা তা যাচাই করুন। ভুল হলে, প্রতিক্রিয়াতে X-Ad-Manager-Dai-Warning
HTTP শিরোনামে একটি বার্তা পাঠানো হয় এবং একটি বিজ্ঞাপন বিরতি তৈরি করতে এখনও সংকেত প্রচার করা হয়। সমর্থিত বিজ্ঞাপন বিরতি মার্কার সম্পর্কে আরও বিশদ বিবরণের জন্য, HLS ইন্টিগ্রেশন দেখুন।আপনার HMAC টাইপের Google DAI প্রমাণীকরণ কী ডাউনলোড করুন। আরও বিশদ বিবরণের জন্য, DAI ভিডিও স্ট্রিম অনুরোধগুলি প্রমাণীকরণ দেখুন।
টোকেন স্ট্রিং এর SHA256 স্বাক্ষর তৈরি করতে আপনার ডাউনলোড করা HMAC কী ব্যবহার করুন।
টোকেন স্ট্রিং এবং জেনারেট করা স্বাক্ষর সংযুক্ত করুন।
সংযুক্ত স্ট্রিং-এ URL এনকোডিং প্রয়োগ করুন। এনকোড করা স্ট্রিং হল অ্যাড পড টাইমিং মেটাডেটা (এটিএম) এপিআই অনুরোধের প্রমাণীকরণের জন্য স্বাক্ষরিত HMAC টোকেন।
নিম্নলিখিত উদাহরণটি প্রি-রোল বিজ্ঞাপনের জন্য একটি স্বাক্ষরিত HMAC টোকেন তৈরি করে:
custom_asset_key="CUSTOM_ASSET_KEY"
exp="1750700000" # Expired on Mon Jun 23 2025 13:33:20 GMT-0400 (Eastern Daylight Time)
network_code="NETWORK_CODE"
ad_break_id="preroll"
pd="0" # Pod duration value is overridden by the livestream event settings.
# The HMAC authentication key associated with your livestream event in Google Ad Manager.
secret_key="24E96382584C328087546B0E8454F26158564E8466FD2BE3D8A996B38445876C"
# Concatenate the parameters, keep the parameters alphabetically ordered by name.
token_string="ad_break_id=${ad_break_id}~custom_asset_key=${custom_asset_key}~exp=${exp}~network_code=${network_code}~pd=${pd}"
# Calculate the SHA256 signature of the token_string.
hmac_signature=$(echo -n "$token_string" | openssl dgst -sha256 -hmac "$secret_key" | awk '{print $2}')
# Concatenate the token string and the signature.
signed_token="${token_string}~hmac=${hmac_signature}"
url_encode() {
local string="${1}"
local strlen=${#string}
local encoded=""
local pos c
for (( pos=0 ; pos<strlen ; pos++ )); do
c=${string:$pos:1}
case "$c" in
[-_.~a-zA-Z0-9] ) o="${c}" ;;
* ) printf -v o '%%%02x' "'$c"
esac
encoded+="${o}"
done
echo "${encoded}"
}
# Apply URL encoding to the concatenated string.
url_encoded_signed_token=$(url_encode "$signed_token")
echo "Signed HMAC token:"
echo "${url_encoded_signed_token}"
# Example output:
# ad_break_id%3Dpreroll~custom_asset_key%3DiYdOkYZdQ1KFULXSN0Gi7g~exp%3D1489680000~network_code%3D21775744923~pd%3D180000~pod_id%3D5~hmac%3D24E96382584C328087546B0E8454F26158564E8466FD2BE3D8A996B38445876C
প্রি-রোল বিজ্ঞাপনের জন্য টাইমিং মেটাডেটা অনুরোধ করুন
নিম্নলিখিত বিকল্পগুলি ব্যবহার করে আপনার লাইভস্ট্রিম ইভেন্টের জন্য প্রি-রোল সেটিংস যাচাই করুন:
প্রি-রোল বিজ্ঞাপনের সিদ্ধান্তের ফলাফল পুনরুদ্ধার করতে, ATM API-এ একটি অনুরোধ করুন।
নিম্নলিখিত উদাহরণটি প্রি-রোল বিজ্ঞাপনের জন্য একটি ATM অনুরোধ করে:
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"
মিড-রোল বিজ্ঞাপনের জন্য টাইমিং মেটাডেটা অনুরোধ করুন
মিড-রোলগুলির জন্য বিজ্ঞাপন পড মেটাডেটা পুনরুদ্ধার করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
- প্রতিটি মিড-রোল বিজ্ঞাপন বিরতির সময় এবং সময় ধারণ করে এমন বিজ্ঞাপন চিহ্নিতকারীগুলি খুঁজে পেতে লাইভস্ট্রিম ম্যানিফেস্টকে পার্স করুন।
- সুনির্দিষ্ট বিজ্ঞাপন পড এবং স্লেট সময়কাল অনুরোধ করতে ATM API এন্ডপয়েন্টে কল করুন। এপিআই বিজ্ঞাপন পডের সিদ্ধান্তের ফলাফল সহ একটি JSON অবজেক্ট প্রদান করে।
নিম্নলিখিত উদাহরণটি মিড-রোল বিজ্ঞাপনের জন্য একটি ATM অনুরোধ করে:
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
সন্নিবেশ করে এনক্রিপশন আবার যোগ করুন।
আসন্ন বিজ্ঞাপন বিরতির শুরুর সময়, সময়কাল এবং সূচির উপর নজর রাখুন।
বিজ্ঞাপন সেগমেন্ট URL গুলি তৈরি করুন৷
প্রতিটি বিজ্ঞাপন বিভাগের জন্য URL দিয়ে EXT-X-DISCONTINUITY
ট্যাগের মধ্যে বিষয়বস্তু বিভাগগুলি প্রতিস্থাপন করুন। কতগুলি বিজ্ঞাপন বিভাগ সন্নিবেশ করতে হবে তা নির্ধারণ করতে, 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) পাঠান। আরও বিশদ বিবরণের জন্য, প্রথম দিকে বিজ্ঞাপন বিরতির বিজ্ঞপ্তি পাঠান দেখুন।