এই নির্দেশিকা পড সার্ভিং এপিআই এবং আপনার ম্যানিফেস্ট ম্যানিপুলেটর সহ একটি HLS বা DASH লাইভস্ট্রিম লোড করার জন্য একটি ক্লায়েন্ট অ্যাপ্লিকেশন তৈরি করাকে কভার করে।
পূর্বশর্ত
চালিয়ে যাওয়ার আগে, আপনার অবশ্যই নিম্নলিখিতগুলি থাকতে হবে:
একটি লাইভস্ট্রিম ইভেন্টের জন্য একটি কাস্টম সম্পদ কী
Pod serving redirect
DAI প্রকারের সাথে কনফিগার করা হয়েছে। এই কী পেতে, অনুসরণ করুন:একটি
LiveStreamEvent
অবজেক্টের সাথেLiveStreamEventService.createLiveStreamEvents
পদ্ধতিতে কল করার জন্য একটি SOAP API ক্লায়েন্ট লাইব্রেরি ব্যবহার করুন এবংPOD_SERVING_REDIRECT
enum মানতে সেট করা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) ব্যবহার করতে পারেন। বিশদ বিবরণের জন্য, একটি লাইভস্ট্রিম মনিটর এবং সমস্যা সমাধান দেখুন