IMA SDK গুলি আপনার ওয়েবসাইট এবং অ্যাপগুলিতে মাল্টিমিডিয়া বিজ্ঞাপনগুলিকে একীভূত করা সহজ করে তোলে। IMA SDK গুলি যেকোনো VAST-সম্মত বিজ্ঞাপন সার্ভার থেকে বিজ্ঞাপনের অনুরোধ করতে পারে এবং আপনার অ্যাপগুলিতে বিজ্ঞাপন প্লেব্যাক পরিচালনা করতে পারে। IMA DAI SDK গুলির সাহায্যে, অ্যাপগুলি বিজ্ঞাপন এবং কন্টেন্ট ভিডিওর জন্য একটি স্ট্রিম অনুরোধ করে—হয় VOD অথবা লাইভ কন্টেন্ট। SDK তারপর একটি সম্মিলিত ভিডিও স্ট্রিম প্রদান করে, যাতে আপনাকে আপনার অ্যাপের মধ্যে বিজ্ঞাপন এবং কন্টেন্ট ভিডিওর মধ্যে স্যুইচ করার ব্যবস্থা করতে না হয়।
আপনার আগ্রহের DAI সমাধানটি নির্বাচন করুন।
পড সার্ভিং ডিএআই
এই নির্দেশিকাটি দেখায় কিভাবে একটি ভিডিও প্লেয়ারের মাধ্যমে IMA DAI SDK for tvOS ব্যবহার করে DAI পড সার্ভিং লাইভ বা VOD স্ট্রিম চালাতে হয়। একটি সম্পূর্ণ নমুনা ইন্টিগ্রেশন দেখতে বা অনুসরণ করতে, পড সার্ভিং উদাহরণ অ্যাপ ( Obj C অথবা Swift ) ডাউনলোড করুন।
IMA DAI পড সার্ভিং ওভারভিউ
tvOS-এর জন্য IMA DAI SDK ব্যবহার করে পড সার্ভিং বাস্তবায়নে দুটি প্রধান উপাদান জড়িত:
StreamRequest: একটি অবজেক্ট যা Google এর বিজ্ঞাপন সার্ভারগুলিতে একটি স্ট্রিম অনুরোধ সংজ্ঞায়িত করে। পড সার্ভিং সক্ষম করতেIMAPodStreamRequestঅথবাIMAPodVODStreamRequestব্যবহার করে তৈরি করতে হবে। উভয় পদ্ধতির জন্য একটি নেটওয়ার্ক কোড প্রয়োজন এবংIMAPodStreamRequestজন্য একটি কাস্টম অ্যাসেট কীও প্রয়োজন। একটি API কী ঐচ্ছিক।IMAStreamManager: একটি অবজেক্ট যা ভিডিও স্ট্রিম এবং IMA DAI SDK এর মধ্যে যোগাযোগ পরিচালনা করে, যেমন ট্র্যাকিং পিং ফায়ার করা এবং স্ট্রিম ইভেন্টগুলি প্রকাশকের কাছে ফরোয়ার্ড করা।
পূর্বশর্ত
শুরু করার আগে, আপনার নিম্নলিখিতগুলি প্রয়োজন:
- এক্সকোড ১৩ বা তার পরবর্তী সংস্করণ।
- CocoaPods (পছন্দের), Swift Package Manager, অথবা tvOS এর জন্য IMA DAI SDK এর ডাউনলোড করা কপি।
- DAI বিজ্ঞাপন সহ ভিডিও স্ট্রিম চালানোর জন্য IMA DAI SDK এর সাথে ইতিমধ্যেই একটি tvOS অ্যাপ সেট আপ করা আছে। যদি আপনার কাছে ইতিমধ্যেই এমন কোনও অ্যাপ না থাকে, তাহলে আমরা tvOS DAI BasicExample কে সূচনা বিন্দু হিসেবে ব্যবহার করার পরামর্শ দিচ্ছি। BasicExample-এ এই নির্দেশিকায় কোডবেস উল্লেখ করা আছে। IMA DAI SDK কীভাবে বাস্তবায়ন করবেন সে সম্পর্কে আরও তথ্যের জন্য, দ্রুত শুরু নির্দেশিকা দেখুন।
আপনার পড সার্ভিং ভেরিয়েবল সেট আপ করুন
পড সার্ভিংয়ের জন্য প্রয়োজনীয় সকল পরিবর্তন Swift-এর ViewController.swift অথবা Objective-C-এর ViewController.m এ করা হয়। এই নির্দেশিকার স্নিপেটগুলি ডিফল্টভাবে Swift ভাষা ব্যবহার করে করা হয়। প্রথম ধাপ হল ধ্রুবক ভেরিয়েবল আপডেট করা।
এখানে অ্যাড পড স্ট্রিম রিকোয়েস্ট কনস্ট্যান্ট যোগ করতে হবে:
-
STREAM_URL( Only used for livestreams ): The video stream URL provided by your manifest manipulator or third-party partner using Pod Serving. It should require you to insert the stream ID provided by the IMA DAI SDK, before you make a request. In this case, the stream URL includes a placeholder,"[[STREAMID]]", which is replaced with the stream ID, before making a request. -
NETWORK_CODE: আপনার Ad Manager 360 অ্যাকাউন্টের নেটওয়ার্ক কোড। -
CUSTOM_ASSET_KEY( শুধুমাত্র লাইভস্ট্রিমের জন্য ব্যবহৃত ): কাস্টম অ্যাসেট কী যা অ্যাড ম্যানেজার 360-এ আপনার পড সার্ভিং ইভেন্ট শনাক্ত করে। এটি আপনার ম্যানিফেস্ট ম্যানিপুলেটর বা তৃতীয় পক্ষের পড সার্ভিং পার্টনার দ্বারা তৈরি করা যেতে পারে। -
API_KEY( Only used for livestreams ): An optional API key that can be required to retrieve a stream ID from the 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?
...
একটি লাইভ অথবা ভিওডি পড স্ট্রিম অনুরোধ তৈরি করুন
লাইভস্ট্রিম পড পরিবেশন
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)
}
...
ভিওডি স্ট্রিম পড সার্ভিং
IMAPodVODStreamRequest চালু করে একটি VOD পড স্ট্রিম অনুরোধ তৈরি করতে 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 = IMAPodVODStreamRequest(
networkCode: self.networkCode,
adDisplayContainer: adDisplayContainer,
videoDisplay: self.videoDisplay,
userContext: nil)
adsLoader.requestStream(with: request)
}
...
স্ট্রিম URL এডিট এবং সেট করুন
লাইভস্ট্রিম পড পরিবেশন
Modify the IMAAdsLoaderDelegate methods, using streamManager.streamId to get the stream ID. Then insert the stream ID into the STREAM_URL , replacing "[[STREAMID]]" . Once this change has been made, the new stream URL can be set using videoDisplay.loadStream() .
...
// 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
}
...
ভিওডি স্ট্রিম পড সার্ভিং
স্ট্রিম আইডি পেতে streamManager.streamId ব্যবহার করে IMAAdsLoaderDelegate পদ্ধতিগুলি পরিবর্তন করুন। তারপর, আপনার ভিডিও প্রযুক্তি অংশীদার (VTP) থেকে একটি স্ট্রিম URL অনুরোধ করুন এবং IMA স্ট্রিম URL এবং আপনার TVP দ্বারা ফেরত পাঠানো যেকোনো সাবটাইটেল লোড করতে IMAStreamManager.loadThirdPartyStream() এ কল করুন।
...
// 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-এ নমুনা দেখুন।