এই নির্দেশিকা দেখায় যে কীভাবে ভিডিও প্লেয়ারের সাথে tvOS-এর জন্য IMA DAI SDK ব্যবহার করে DAI পড পরিবেশন লাইভ বা VOD স্ট্রিম চালাতে হয়। সম্পূর্ণ স্যাম্পেল ইন্টিগ্রেশন দেখতে বা অনুসরণ করতে, Pod Serving উদাহরণ অ্যাপ ডাউনলোড করুন (Obj C অথবা Swift)।
IMA DAI পড পরিবেশন সংক্রান্ত ওভারভিউ
tvOS-এর জন্য IMA DAI SDK ব্যবহার করে পড পরিবেশন করার ক্ষেত্রে দুটি প্রধান কম্পোনেন্ট রয়েছে:
StreamRequest: এমন একটি অবজেক্ট যা Google-এর বিজ্ঞাপন সার্ভারে স্ট্রিম অনুরোধকে সংজ্ঞায়িত করে। পড সার্ভিং চালু করতেIMAPodStreamRequestবাIMAPodVODStreamRequestব্যবহার করে তৈরি করতে হবে। দুটি পদ্ধতির জন্যই নেটওয়ার্ক কোড প্রয়োজন এবংIMAPodStreamRequest-এর জন্য কাস্টম অ্যাসেট কী প্রয়োজন। API Key ঐচ্ছিক।IMAStreamManager: এমন একটি অবজেক্ট যা ভিডিও স্ট্রিম ও IMA DAI SDK-এর মধ্যে যোগাযোগ পরিচালনা করে, যেমন ট্র্যাকিং পিং ফায়ার করা এবং প্রকাশকের কাছে স্ট্রিম ইভেন্ট ফরওয়ার্ড করা।
পূর্বশর্ত
শুরু করার আগে, আপনার নিম্নলিখিতগুলি প্রয়োজন:
- Xcode 13 বা তার পরবর্তী যেকোনও ভার্সন।
- IMA SDK ইনস্টল করার পদ্ধতি:
- Swift প্যাকেজ ম্যানেজার (পছন্দসই)
- tvOS-এর জন্য IMA SDK-এর ডাউনলোড করা কপি
- DAI বিজ্ঞাপনের সাথে ভিডিও স্ট্রিম চালানোর জন্য tvOS অ্যাপ আগে থেকেই IMA DAI SDK-এর সাথে সেট-আপ করা আছে। আপনার কাছে আগে থেকে এই ধরনের কোনও অ্যাপ না থাকলে, আমরা tvOS DAI BasicExample শুরু করার পয়েন্ট হিসেবে ব্যবহার করার সাজেশন দিই। BasicExample-এ এই গাইডে উল্লেখ করা কোডবেস আছে। IMA DAI SDK কীভাবে প্রয়োগ করতে হয় সেই সম্পর্কে আরও জানতে, দ্রুত শুরু করার নির্দেশিকা দেখুন।
আপনার Pod Serving ভেরিয়েবল সেট-আপ করুন
Pod Serving-এর জন্য সব পরিবর্তন Swift-এ ViewController.swift-এ
অথবা Objective-C-তে ViewController.m-এ করুন। এই গাইডের স্নিপেটগুলি
ডিফল্ট হিসেবে Swift ভাষা ব্যবহার করে। প্রথম ধাপ হল কনস্ট্যান্ট ভেরিয়েবেল
আপডেট করা।
নিম্নলিখিত বিজ্ঞাপন পড স্ট্রিম অনুরোধের কনস্ট্যান্ট যোগ করুন:
STREAM_URL(শুধুমাত্র লাইভস্ট্রিমের জন্য ব্যবহার করা হয়): আপনার ম্যানিফেস্ট ম্যানিপুলেটর বা পড সার্ভিং ব্যবহারকারী থার্ড-পার্টি পার্টনারের প্রদান করা ভিডিও স্ট্রিম URL। অনুরোধ করার আগে, আপনাকে IMA DAI SDK-এর দেওয়া স্ট্রিম আইডি লিখতে হবে। এই ক্ষেত্রে, স্ট্রিম URL-এ একটি প্লেসহোল্ডার,"[[STREAMID]]"অন্তর্ভুক্ত থাকে, যা আপনি অনুরোধ করার আগে স্ট্রিম আইডি দিয়ে প্রতিস্থাপন করেন।NETWORK_CODE: আপনার Ad Manager 360 অ্যাকাউন্টের নেটওয়ার্ক কোড।CUSTOM_ASSET_KEY(শুধুমাত্র লাইভস্ট্রিমের জন্য ব্যবহার করা হয়): কাস্টম অ্যাসেট কী যা Ad Manager 360-তে আপনার পড পরিবেশন ইভেন্ট শনাক্ত করে। আপনার ম্যানিফেস্ট ম্যানিপুলেটর বা থার্ড-পার্টি পড পরিবেশন পার্টনার এটি তৈরি করতে পারে।API_KEY(শুধুমাত্র লাইভস্ট্রিমের জন্য ব্যবহার করা হয়): একটি ঐচ্ছিক API কী যা IMA DAI SDK থেকে স্ট্রিম আইডি ফিরিয়ে আনার জন্য প্রয়োজন হতে পারে।
নিম্নলিখিতটির সাথে ম্যাচ করতে উদাহরণের ভেরিয়েবেল বিভাগ পরিবর্তন করুন:
...
class ViewController:
UIViewController,
IMAAdsLoaderDelegate,
IMAStreamManagerDelegate,
AVPlayerViewControllerDelegate
{
static let streamUrl = ""
static let networkCode = ""
static let customAssetKey = ""
static let APIKey = ""
static let backupStreamURLString = ""
var adsLoader: IMAAdsLoader?
...
লাইভ বা VOD পড স্ট্রিম অনুরোধের মধ্যে যেকোনও একটি তৈরি করুন
লাইভস্ট্রিম পড পরিবেশন
IMAPodStreamRequest ইনস্ট্যান্টিয়েট করে লাইভ পড স্ট্রিম অনুরোধ তৈরি করতে requestStream পদ্ধতিটি
পরিবর্তন করুন।
...
func requestStream() {
guard let playerViewController = self.playerViewController else return
guard let adContainerView = self.adContainerView else return
guard let adsLoader = self.adsLoader else return
self.videoDisplay = IMAAVPlayerVideoDisplay(avPlayer: playerViewController.player)
adDisplayContainer = IMAAdDisplayContainer(
adContainer: adContainerView, viewController: self)
// Create a podserving stream request.
request = IMAPodStreamRequest(
networkCode: self.networkCode,
customAssetKey: self.customAssetKey,
adDisplayContainer: adDisplayContainer,
videoDisplay: self.videoDisplay,
userContext: nil)
adsLoader.requestStream(with: request)
}
...
VOD স্ট্রিম পড পরিবেশন
requestStream পদ্ধতিটি পরিবর্তন করুন যাতে IMAPodVODStreamRequest ইনস্ট্যান্টিয়েট করে VOD পড স্ট্রিম অনুরোধ তৈরি করা যায়।
...
func requestStream() {
guard let playerViewController = self.playerViewController else return
guard let adContainerView = self.adContainerView else return
guard let adsLoader = self.adsLoader else return
self.videoDisplay = IMAAVPlayerVideoDisplay(avPlayer: playerViewController.player)
adDisplayContainer = IMAAdDisplayContainer(
adContainer: adContainerView, viewController: self)
// Create a podserving stream request.
request = IMAPodVODStreamRequest(
networkCode: self.networkCode,
adDisplayContainer: adDisplayContainer,
videoDisplay: self.videoDisplay,
userContext: nil)
adsLoader.requestStream(with: request)
}
...
স্ট্রিম URL এডিট ও সেট করা
লাইভস্ট্রিম পড পরিবেশন
স্ট্রিম আইডি পেতে streamManager.streamId ব্যবহার করে IMAAdsLoaderDelegate পদ্ধতি
পরিবর্তন করুন। তারপর "[[STREAMID]]"-এর জায়গায় স্ট্রিম আইডি STREAM_URL-এ যোগ করুন। এই পরিবর্তন করার পরে,
videoDisplay.loadStream() ব্যবহার করে নতুন স্ট্রিম URL সেট করুন।
...
// MARK: - IMAAdsLoaderDelegate
func adsLoader(_ loader: IMAAdsLoader!, adsLoadedWith adsLoadedData: IMAAdsLoadedData!) {
let streamManager = adsLoadedData.streamManager
let streamId = streamManager.streamId
let urlString = streamUrl.replacingOccurrences(of: "[[STREAMID]]", with: streamId)
let loadedStreamUrl = URL(string:urlString)
self.videoDisplay.loadStream(loadedStreamUrl, subtitles:@[])
self.videoDisplay.play()
streamManager.delegate = self
streamManager.initialize(with: nil)
self.streamManager = streamManager
}
...
VOD স্ট্রিম পড পরিবেশন
স্ট্রিম আইডি পেতে streamManager.streamId ব্যবহার করে IMAAdsLoaderDelegate পদ্ধতি
পরিবর্তন করুন। তারপর, আপনার ভিডিও প্রযুক্তি পার্টনারের (VTP) থেকে স্ট্রিম URL-এর অনুরোধ করুন এবং IMAStreamManager.loadThirdPartyStream()-এ কল করুন যাতে IMA স্ট্রিম URL এবং আপনার TVP-এর পাঠানো যেকোনও সাবটাইটেল লোড করতে পারে।
...
// MARK: - IMAAdsLoaderDelegate
func adsLoader(_ loader: IMAAdsLoader!, adsLoadedWith adsLoadedData: IMAAdsLoadedData!) {
let streamManager = adsLoadedData.streamManager
let streamId = streamManager.streamId
// 'vtpInterface' is a place holder for your own video technology partner
// (VTP) API calls.
let streamUrl = vtpInterface.requestStreamURL(streamID)
self.streamManager.loadThirdPartyStream(streamUrl, streamSubtitles:@[])
streamManager.delegate = self
streamManager.initialize(with: nil)
self.streamManager = streamManager
}
IMA DAI অ্যাসেট ক্লিন-আপ করা
IMA DAI SDK-এর মাধ্যমে পড সার্ভিং স্ট্রিমে বিজ্ঞাপন অনুরোধ ও দেখানোর কাজ সম্পূর্ণ করার পরে, পড সার্ভিং সেশন শেষ হয়ে গেলে আমরা আপনাকে সব রিসোর্স মুছে দিতে সাজেস্ট করি। স্ট্রিম প্লেব্যাক বন্ধ করতে, সব বিজ্ঞাপন ট্র্যাকিং বন্ধ করতে এবং লোড করা সব স্ট্রিম অ্যাসেট রিলিজ করতে
IMAStreamManager.destroy() কল করুন।
tvOS SDK ব্যবহারের অন্যান্য উদাহরণ দেখতে, GitHub-এ স্যাম্পেল দেখুন।