এই নির্দেশিকা পড সার্ভিং এপিআই এবং আপনার ম্যানিফেস্ট ম্যানিপুলেটর সহ একটি HLS বা DASH লাইভস্ট্রিম লোড করার জন্য একটি ক্লায়েন্ট অ্যাপ্লিকেশন তৈরি করাকে কভার করে।
পূর্বশর্ত
চালিয়ে যাওয়ার আগে, আপনার অবশ্যই নিম্নলিখিতগুলি থাকতে হবে:
একটি লাইভস্ট্রিম ইভেন্টের জন্য একটি কাস্টম সম্পদ কী
Pod serving redirectDAI প্রকারের সাথে কনফিগার করা হয়েছে। এই কী পেতে, অনুসরণ করুন:একটি
LiveStreamEventঅবজেক্টের সাথেLiveStreamEventService.createLiveStreamEventsপদ্ধতিতে কল করার জন্য একটি SOAP API ক্লায়েন্ট লাইব্রেরি ব্যবহার করুন এবংPOD_SERVING_REDIRECTenum মানতে সেট করাdynamicAdInsertionTypeপ্রপার্টি। সমস্ত ক্লায়েন্ট লাইব্রেরির জন্য, ক্লায়েন্ট লাইব্রেরি এবং উদাহরণ কোড দেখুন।
ইন্টারেক্টিভ মিডিয়া বিজ্ঞাপন (IMA) SDK আপনার প্ল্যাটফর্মের জন্য উপলব্ধ কিনা তা নির্ধারণ করুন। আমরা আয় বাড়াতে IMA SDK ব্যবহার করার পরামর্শ দিই। বিস্তারিত জানার জন্য, DAI-এর জন্য IMA SDk সেট আপ করুন দেখুন।
একটি স্ট্রিম অনুরোধ করুন
যখন আপনার ব্যবহারকারী একটি স্ট্রীম নির্বাচন করেন, নিম্নলিখিতগুলি করুন:
লাইভস্ট্রিম পরিষেবা পদ্ধতিতে একটি
POSTঅনুরোধ করুন। বিস্তারিত জানার জন্য, পদ্ধতি দেখুন: স্ট্রিম ।application/x-www-form-urlencodedবাapplication/jsonফরম্যাটে বিজ্ঞাপন টার্গেটিং প্যারামিটার পাস করুন। এই অনুরোধটি Google DAI-এর সাথে একটি স্ট্রিম সেশন নিবন্ধন করে।নিম্নলিখিত উদাহরণটি একটি স্ট্রিম অনুরোধ করে:
ফর্ম এনকোডিং
const url = `https://dai.google.com/ssai/pods/api/v1/` + `network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/stream`; const params = new URLSearchParams({ cust_params: 'section=sports&page=golf,tennis' }).toString(); const response = await fetch(url, { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: params }); console.log(await response.json());JSON এনকোডিং
const url = `https://dai.google.com/ssai/pods/api/v1/` + `network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/stream`; const response = await fetch(url, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ cust_params: { section: 'sports', page: 'golf,tennis' } }) }); console.log(await response.json());সফল হলে, আপনি নিম্নলিখিত অনুরূপ আউটপুট দেখতে পাবেন:
{ "stream_id": "8d2b2292-6356-4c0e-94be-cece01d2df2e:DLS", "media_verification_url": "https://dai.google.com/view/.../event/c14aZDWtQg-ZwQaEGl6bYA/media/", "metadata_url": "https://dai.google.com/linear/pods/hls/.../metadata", "session_update_url": "https://dai.google.com/linear/.../session", "polling_frequency": 10 }JSON প্রতিক্রিয়াতে, স্ট্রিম সেশন আইডিটি সনাক্ত করুন এবং পরবর্তী পদক্ষেপগুলির জন্য অন্যান্য ডেটা সংরক্ষণ করুন৷
পোল বিজ্ঞাপন মেটাডেটা
বিজ্ঞাপনের মেটাডেটা পোল করতে, নিম্নলিখিতগুলি করুন:
স্ট্রীম রেজিস্ট্রেশন প্রতিক্রিয়া থেকে
metadata_urlমান পড়ুন।শেষ পয়েন্টে একটি
GETঅনুরোধ করুন। বিস্তারিত জানার জন্য, পদ্ধতি দেখুন: মেটাডেটা ।নিম্নলিখিত উদাহরণটি বিজ্ঞাপন মেটাডেটা নিয়ে আসে:
const response = await fetch(metadata_url); console.log(await response.json());সফল হলে, আপনি বর্তমান এবং আসন্ন বিজ্ঞাপন বিরতির জন্য PodMetadata প্রতিক্রিয়া পাবেন:
{ "tags":{ "google_5555555555":{ "ad":"0000229834_ad1", "ad_break_id":"0000229834", "type":"firstquartile" }, "google_1234567890123456789":{ "ad":"0000229834_ad1", "ad_break_id":"0000229834", "type":"progress" }, ... }, "ads":{ "0000229834_ad1":{ "ad_break_id":"0000229834", "position":1, "duration":15, "clickthrough_url":"https://.../", ... }, ... }, "ad_breaks":{ "0000229834":{ "type":"mid", "duration":15, "ads":1 }, ... } }পরবর্তী ধাপের জন্য
tagsঅবজেক্ট সংরক্ষণ করুন।সব ধারাবাহিক বিজ্ঞাপন বিরতির জন্য নিয়মিতভাবে মেটাডেটা অনুরোধ করতে
polling_frequencyমান ব্যবহার করে একটি টাইমার সেট করুন।
আপনার ভিডিও প্লেয়ারে স্ট্রিমটি লোড করুন
রেজিস্ট্রেশন প্রতিক্রিয়া থেকে আপনার সেশন আইডি পাওয়ার পরে, আপনার ম্যানিফেস্ট ম্যানিপুলেটরকে আইডি পাস করুন, বা একটি ভিডিও প্লেয়ারে স্ট্রিম লোড করার জন্য একটি ম্যানিফেস্ট URL তৈরি করুন।
সেশন আইডি পাস করতে, আপনার ম্যানিফেস্ট ম্যানিপুলেটর ডকুমেন্টেশন দেখুন। আপনি যদি একটি ম্যানিফেস্ট ম্যানিপুলেটর তৈরি করেন, তাহলে লাইভস্ট্রিমের জন্য ম্যানিফেস্ট ম্যানিপুলেটর দেখুন।
নিম্নলিখিত উদাহরণ একটি ম্যানিফেস্ট URL একত্রিত করে:
https://<your_manifest_manipulator_url>/manifest.m3u8?DAI_stream_ID=SESSION_ID&network_code=NETWORK_CODE&DAI_custom_asset_key=CUSTOM_ASSET_KEY"
আপনার প্লেয়ার প্রস্তুত হলে, প্লেব্যাক শুরু করুন।
বিজ্ঞাপন ইভেন্টের জন্য শুনুন
টাইমড মেটাডেটার জন্য আপনার স্ট্রীমের ধারক বিন্যাস পরীক্ষা করুন:
ট্রান্সপোর্ট স্ট্রীম (TS) কন্টেইনার সহ HLS স্ট্রীমগুলি টাইমড মেটাডেটা বহন করতে টাইমড ID3 ট্যাগ ব্যবহার করে। বিস্তারিত জানার জন্য, HTTP লাইভ স্ট্রিমিং (HLS) সহ সাধারণ মিডিয়া অ্যাপ্লিকেশন ফর্ম্যাট সম্পর্কে দেখুন।
ম্যানিফেস্টে ইভেন্টগুলি নির্দিষ্ট করতে DASH স্ট্রীম
EventStreamউপাদানগুলি ব্যবহার করে৷DASH স্ট্রিমগুলি
InbandEventStreamউপাদানগুলি ব্যবহার করে যখন সেগমেন্টগুলিতে ID3 ট্যাগ সহ পেলোড ডেটার জন্য ইভেন্ট বার্তা (emsg) বক্স থাকে৷ বিস্তারিত জানার জন্য, InbandEventStream দেখুন।DASH এবং HLS সহ CMAF স্ট্রীম, ID3 ট্যাগ সম্বলিত
emsgবক্স ব্যবহার করে।
আপনার স্ট্রীম থেকে ID3 ট্যাগ পুনরুদ্ধার করতে, আপনার ভিডিও প্লেয়ারের নির্দেশিকা পড়ুন। বিস্তারিত জানার জন্য, হ্যান্ডেল টাইমড মেটাডেটা গাইড দেখুন
ID3 ট্যাগ থেকে বিজ্ঞাপন ইভেন্ট আইডি পুনরুদ্ধার করতে, নিম্নলিখিতগুলি করুন:
-
urn:google:dai:2018বাhttps://aomedia.org/emsg/ID3দিয়েscheme_id_uriদ্বারা ইভেন্টগুলি ফিল্টার করুন। message_dataক্ষেত্র থেকে বাইট অ্যারে বের করুন।নিম্নলিখিত উদাহরণটি JSON-এ
emsgডেটা ডিকোড করে:{ "scheme_id_uri": "https://developer.apple.com/streaming/emsg-id3", "presentation_time": 27554, "timescale": 1000, "message_data": "ID3TXXXgoogle_1234567890123456789", ... }TXXXgoogle_{ad_event_ID}ফর্ম্যাট দিয়ে ID3 ট্যাগগুলি ফিল্টার করুন :TXXXgoogle_1234567890123456789
বিজ্ঞাপন ইভেন্ট ডেটা দেখান
TagSegment অবজেক্ট খুঁজে পেতে, নিম্নলিখিত করুন:
পোল বিজ্ঞাপন মেটাডেটা থেকে বিজ্ঞাপন মেটাডেটা
tagsঅবজেক্ট পুনরুদ্ধার করুন।tagsঅবজেক্ট হলTagSegmentঅবজেক্টের একটি অ্যারে।টাইপ
progressসহ একটিTagSegmentঅবজেক্ট খুঁজতে সম্পূর্ণ বিজ্ঞাপন ইভেন্ট আইডি ব্যবহার করুন।অন্যান্য ধরনের
TagSegmentঅবজেক্ট খুঁজে পেতে বিজ্ঞাপন ইভেন্ট আইডির প্রথম 17টি অক্ষর ব্যবহার করুন।আপনার কাছে
TagSegmentথাকার পর,ad_break_idপ্রপার্টিটিকে কী হিসেবে অ্যাড মেটাডেটাad_breaksঅবজেক্টেAdBreakঅবজেক্ট খুঁজে বের করুন।নিম্নলিখিত উদাহরণ একটি
AdBreakবস্তু খুঁজে পায়:{ "type":"mid", "duration":15, "ads":1 }বিজ্ঞাপন বিরতিতে বিজ্ঞাপনের অবস্থান সম্পর্কে তথ্য দেখানোর জন্য
TagSegmentএবংAdBreakডেটা ব্যবহার করুন। উদাহরণস্বরূপ,Ad 1 of 3।
মিডিয়া যাচাইকরণ পিং পাঠান
প্রতিটি বিজ্ঞাপন ইভেন্টের জন্য, progress ধরন ছাড়া, একটি মিডিয়া যাচাইকরণ পিং পাঠান। Google DAI progress ইভেন্টগুলি বাতিল করে, এবং এই ইভেন্টগুলি ঘন ঘন পাঠালে আপনার অ্যাপের কার্যকারিতা প্রভাবিত হতে পারে।
একটি বিজ্ঞাপন ইভেন্টের সম্পূর্ণ মিডিয়া যাচাইকরণ URL তৈরি করতে, নিম্নলিখিতগুলি করুন:
স্ট্রীম প্রতিক্রিয়া থেকে,
media_verification_urlমানতে সম্পূর্ণ বিজ্ঞাপন ইভেন্ট আইডি যোগ করুন।সম্পূর্ণ URL সহ একটি
GETঅনুরোধ করুন:// media_verification_url: "https://dai.google.com/view/.../event/c14aZDWtQg-ZwQaEGl6bYA/media/" const completeUrl = `${media_verification_url}google_5555555555123456789`; const response = await fetch(completeUrl);সফল হলে, আপনি একটি কোড স্ট্যাটাস
202প্রতিক্রিয়া পাবেন। অন্যথায়, আপনি একটি404ত্রুটি কোড পাবেন।
সমস্ত বিজ্ঞাপন ইভেন্টের ঐতিহাসিক লগ পরিদর্শন করতে আপনি স্ট্রিম অ্যাক্টিভিটি মনিটর (SAM) ব্যবহার করতে পারেন। বিশদ বিবরণের জন্য, একটি লাইভস্ট্রিম মনিটর এবং সমস্যা সমাধান দেখুন