IMA SDKগুলি আপনার ওয়েবসাইট এবং অ্যাপগুলিতে মাল্টিমিডিয়া বিজ্ঞাপনগুলিকে একীভূত করা সহজ করে তোলে৷ IMA SDK যেকোন VAST-সঙ্গী বিজ্ঞাপন সার্ভার থেকে বিজ্ঞাপনের অনুরোধ করতে পারে এবং আপনার অ্যাপে বিজ্ঞাপন প্লেব্যাক পরিচালনা করতে পারে। IMA DAI SDK-এর সাথে, অ্যাপগুলি বিজ্ঞাপন এবং বিষয়বস্তু ভিডিওর জন্য একটি স্ট্রিম অনুরোধ করে—হয় VOD বা লাইভ সামগ্রী। SDK তারপরে একটি সম্মিলিত ভিডিও স্ট্রিম ফেরত দেয়, যাতে আপনাকে আপনার অ্যাপের মধ্যে বিজ্ঞাপন এবং বিষয়বস্তু ভিডিওর মধ্যে স্যুইচিং পরিচালনা করতে হবে না।
আপনি আগ্রহী DAI সমাধান নির্বাচন করুন
পড পরিবেশন DAI
এই নির্দেশিকাটি দেখায় যে কীভাবে একটি সাধারণ ভিডিও প্লেয়ারের সাথে tvOS-এর জন্য IMA DAI SDK ব্যবহার করে একটি DAI পড সার্ভিং লাইভ বা VOD স্ট্রিম চালাতে হয়। আপনি যদি একটি সম্পূর্ণ নমুনা সহ অনুসরণ করতে চান তবে পড সার্ভিং উদাহরণ অ্যাপটি ডাউনলোড করুন ( Obj C বা Swift )।
IMA DAI পড সার্ভিং ওভারভিউ
TVOS-এর জন্য IMA DAI SDK ব্যবহার করে পড পরিবেশন বাস্তবায়নে দুটি প্রধান উপাদান জড়িত:
StreamRequest
: একটি বস্তু যা Google এর বিজ্ঞাপন সার্ভারে একটি স্ট্রিম অনুরোধ সংজ্ঞায়িত করে। পড সার্ভিং সক্ষম করতেIMAPodStreamRequest
বাIMAPodVODStreamRequest
ব্যবহার করে তৈরি করতে হবে। উভয় পদ্ধতির একটি নেটওয়ার্ক কোড প্রয়োজন এবংIMAPodStreamRequest
জন্য একটি কাস্টম সম্পদ কী প্রয়োজন। একটি API কী ঐচ্ছিক।IMAStreamManager
: একটি বস্তু যা ভিডিও স্ট্রীম এবং IMA DAI SDK-এর মধ্যে যোগাযোগ পরিচালনা করে, যেমন ফায়ারিং ট্র্যাকিং পিং এবং প্রকাশকের কাছে স্ট্রিম ইভেন্ট ফরওয়ার্ড করা।
পূর্বশর্ত
আপনি শুরু করার আগে, আপনার নিম্নলিখিতগুলি প্রয়োজন:
- Xcode 13 বা তার পরে।
- CocoaPods (পছন্দের), সুইফ্ট প্যাকেজ ম্যানেজার, অথবা tvOS-এর জন্য IMA DAI SDK- এর ডাউনলোড করা কপি।
- DAI বিজ্ঞাপনের সাথে ভিডিও স্ট্রিম চালানোর জন্য IMA DAI SDK-এর সাথে একটি tvOS অ্যাপ ইতিমধ্যেই সেট আপ করা হয়েছে। যদি আপনার কাছে এমন কোনো অ্যাপ না থাকে, তাহলে আমরা tvOS DAI BasicExample টিকে শুরুর পয়েন্ট হিসেবে ব্যবহার করার পরামর্শ দিই। BasicExample এই নির্দেশিকায় উল্লেখিত কোডবেস আছে। IMA DAI SDK কীভাবে বাস্তবায়ন করবেন সে সম্পর্কে আরও তথ্যের জন্য, দ্রুত শুরু নির্দেশিকা দেখুন।
আপনার পড পরিবেশন ভেরিয়েবল সেট আপ করুন
পড পরিবেশনের জন্য প্রয়োজনীয় সমস্ত পরিবর্তন সুইফটে ViewController.swift
বা অবজেক্টিভ-সি-তে ViewController.m
এ করা হয়। এই গাইডের স্নিপেটগুলি সুইফট ভাষা ব্যবহার করার জন্য ডিফল্ট। প্রথম ধাপ হল ধ্রুবক ভেরিয়েবল আপডেট করা।
এখানে অ্যাড পড স্ট্রিম অনুরোধের ধ্রুবক যোগ করা হয়েছে:
-
STREAM_URL
( শুধুমাত্র লাইভস্ট্রিমগুলির জন্য ব্যবহৃত হয় ): আপনার ম্যানিফেস্ট ম্যানিপুলেটর বা তৃতীয় পক্ষের অংশীদার পড পরিবেশন ব্যবহার করে প্রদত্ত ভিডিও স্ট্রিম URL৷ আপনি একটি অনুরোধ করার আগে, আপনাকে IMA DAI SDK দ্বারা প্রদত্ত স্ট্রিম আইডি ঢোকাতে হবে। এই ক্ষেত্রে, স্ট্রীম URL-এ একটি স্থানধারক অন্তর্ভুক্ত করা হয়,"[[STREAMID]]"
, যা অনুরোধ করার আগে স্ট্রিম আইডি দিয়ে প্রতিস্থাপিত হয়। -
NETWORK_CODE
: আপনার Ad Manager 360 অ্যাকাউন্টের নেটওয়ার্ক কোড। -
CUSTOM_ASSET_KEY
( শুধুমাত্র লাইভস্ট্রিমের জন্য ব্যবহৃত হয় ): কাস্টম অ্যাসেট কী যা অ্যাড ম্যানেজার 360-এ আপনার পড সার্ভিং ইভেন্টকে শনাক্ত করে৷ এটি আপনার ম্যানিফেস্ট ম্যানিপুলেটর বা 3য় পক্ষের পড পরিবেশনকারী অংশীদার দ্বারা তৈরি করা যেতে পারে৷ -
API_KEY
( শুধুমাত্র লাইভস্ট্রিমের জন্য ব্যবহৃত হয় ): একটি ঐচ্ছিক API কী যা IMA DAI SDK থেকে একটি স্ট্রিম আইডি পুনরুদ্ধার করতে প্রয়োজন হতে পারে।
নিম্নলিখিতগুলির সাথে মেলে উদাহরণের পরিবর্তনশীল বিভাগটি পরিবর্তন করুন:
...
class ViewController:
UIViewController,
IMAAdsLoaderDelegate,
IMAStreamManagerDelegate,
AVPlayerViewControllerDelegate
{
static let streamUrl =
"https://encodersim.sandbox.google.com/masterPlaylist/9c654d63-5373-4673-8c8d-6d92b66b9d46/master.m3u8?gen-seg-redirect=true&network=51636543&event=google-sample&pids=devrel4628000,devrel896000,devrel3528000,devrel1428000,devrel2628000,devrel1928000&seg-host=dai.google.com&stream_id=[[STREAMID]]"
static let networkCode = "51636543"
static let customAssetKey = "google-sample"
static let APIKey = ""
static let backupStreamURLString =
"http://googleimadev-vh.akamaihd.net/i/big_buck_bunny/bbb-,480p,720p,1080p,.mov.csmil/master.m3u8"
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)
}
...
ভিওডি স্ট্রিম পড পরিবেশন
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 সম্পাদনা করুন এবং সেট করুন৷
লাইভস্ট্রিম পড পরিবেশন
স্ট্রিম আইডি পেতে streamManager.streamId
ব্যবহার করে IMAAdsLoaderDelegate
পদ্ধতি পরিবর্তন করুন। তারপর "[[STREAMID]]"
প্রতিস্থাপন করে STREAM_URL
এ স্ট্রিম আইডি ঢোকান। একবার এই পরিবর্তন করা হয়ে গেলে, নতুন স্ট্রীম URL 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 এর অনুরোধ করুন এবং 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
}
তাই তো! আপনি এখন tvOS-এর জন্য IMA DAI SDK-এর সাথে একটি পড সার্ভিং স্ট্রীমে বিজ্ঞাপনের অনুরোধ করছেন এবং প্রদর্শন করছেন৷ IMA DAI SDK ব্যবহার করার অন্যান্য উদাহরণ দেখতে, GitHub-এর নমুনাগুলি দেখুন।
,IMA SDKগুলি আপনার ওয়েবসাইট এবং অ্যাপগুলিতে মাল্টিমিডিয়া বিজ্ঞাপনগুলিকে একীভূত করা সহজ করে তোলে৷ IMA SDK যেকোন VAST-সঙ্গী বিজ্ঞাপন সার্ভার থেকে বিজ্ঞাপনের অনুরোধ করতে পারে এবং আপনার অ্যাপে বিজ্ঞাপন প্লেব্যাক পরিচালনা করতে পারে। IMA DAI SDK-এর সাথে, অ্যাপগুলি বিজ্ঞাপন এবং বিষয়বস্তু ভিডিওর জন্য একটি স্ট্রিম অনুরোধ করে—হয় VOD বা লাইভ সামগ্রী। SDK তারপরে একটি সম্মিলিত ভিডিও স্ট্রিম ফেরত দেয়, যাতে আপনাকে আপনার অ্যাপের মধ্যে বিজ্ঞাপন এবং বিষয়বস্তু ভিডিওর মধ্যে স্যুইচিং পরিচালনা করতে হবে না।
আপনি আগ্রহী DAI সমাধান নির্বাচন করুন
পড পরিবেশন DAI
এই নির্দেশিকাটি দেখায় যে কীভাবে একটি সাধারণ ভিডিও প্লেয়ারের সাথে tvOS-এর জন্য IMA DAI SDK ব্যবহার করে একটি DAI পড সার্ভিং লাইভ বা VOD স্ট্রিম চালাতে হয়। আপনি যদি একটি সম্পূর্ণ নমুনা সহ অনুসরণ করতে চান তবে পড সার্ভিং উদাহরণ অ্যাপটি ডাউনলোড করুন ( Obj C বা Swift )।
IMA DAI পড সার্ভিং ওভারভিউ
TVOS-এর জন্য IMA DAI SDK ব্যবহার করে পড পরিবেশন বাস্তবায়নে দুটি প্রধান উপাদান জড়িত:
StreamRequest
: একটি বস্তু যা Google এর বিজ্ঞাপন সার্ভারে একটি স্ট্রিম অনুরোধ সংজ্ঞায়িত করে। পড সার্ভিং সক্ষম করতেIMAPodStreamRequest
বাIMAPodVODStreamRequest
ব্যবহার করে তৈরি করতে হবে। উভয় পদ্ধতির একটি নেটওয়ার্ক কোড প্রয়োজন এবংIMAPodStreamRequest
জন্য একটি কাস্টম সম্পদ কী প্রয়োজন। একটি API কী ঐচ্ছিক।IMAStreamManager
: একটি বস্তু যা ভিডিও স্ট্রীম এবং IMA DAI SDK-এর মধ্যে যোগাযোগ পরিচালনা করে, যেমন ফায়ারিং ট্র্যাকিং পিং এবং প্রকাশকের কাছে স্ট্রিম ইভেন্ট ফরওয়ার্ড করা।
পূর্বশর্ত
আপনি শুরু করার আগে, আপনার নিম্নলিখিতগুলি প্রয়োজন:
- Xcode 13 বা তার পরে।
- CocoaPods (পছন্দের), সুইফ্ট প্যাকেজ ম্যানেজার, অথবা tvOS-এর জন্য IMA DAI SDK- এর ডাউনলোড করা কপি।
- DAI বিজ্ঞাপনের সাথে ভিডিও স্ট্রিম চালানোর জন্য IMA DAI SDK-এর সাথে একটি tvOS অ্যাপ ইতিমধ্যেই সেট আপ করা হয়েছে। যদি আপনার কাছে এমন কোনো অ্যাপ না থাকে, তাহলে আমরা tvOS DAI BasicExample টিকে শুরুর পয়েন্ট হিসেবে ব্যবহার করার পরামর্শ দিই। BasicExample এই নির্দেশিকায় উল্লেখিত কোডবেস আছে। IMA DAI SDK কীভাবে বাস্তবায়ন করবেন সে সম্পর্কে আরও তথ্যের জন্য, দ্রুত শুরু নির্দেশিকা দেখুন।
আপনার পড পরিবেশন ভেরিয়েবল সেট আপ করুন
পড পরিবেশনের জন্য প্রয়োজনীয় সমস্ত পরিবর্তন সুইফটে ViewController.swift
বা অবজেক্টিভ-সি-তে ViewController.m
এ করা হয়। এই গাইডের স্নিপেটগুলি সুইফট ভাষা ব্যবহার করার জন্য ডিফল্ট। প্রথম ধাপ হল ধ্রুবক ভেরিয়েবল আপডেট করা।
এখানে অ্যাড পড স্ট্রিম অনুরোধের ধ্রুবক যোগ করা হয়েছে:
-
STREAM_URL
( শুধুমাত্র লাইভস্ট্রিমগুলির জন্য ব্যবহৃত হয় ): আপনার ম্যানিফেস্ট ম্যানিপুলেটর বা তৃতীয় পক্ষের অংশীদার পড পরিবেশন ব্যবহার করে প্রদত্ত ভিডিও স্ট্রিম URL৷ আপনি একটি অনুরোধ করার আগে, আপনাকে IMA DAI SDK দ্বারা প্রদত্ত স্ট্রিম আইডি ঢোকাতে হবে। এই ক্ষেত্রে, স্ট্রীম URL-এ একটি স্থানধারক অন্তর্ভুক্ত করা হয়,"[[STREAMID]]"
, যা অনুরোধ করার আগে স্ট্রিম আইডি দিয়ে প্রতিস্থাপিত হয়। -
NETWORK_CODE
: আপনার Ad Manager 360 অ্যাকাউন্টের নেটওয়ার্ক কোড। -
CUSTOM_ASSET_KEY
( শুধুমাত্র লাইভস্ট্রিমের জন্য ব্যবহৃত হয় ): কাস্টম অ্যাসেট কী যা অ্যাড ম্যানেজার 360-এ আপনার পড সার্ভিং ইভেন্টকে শনাক্ত করে৷ এটি আপনার ম্যানিফেস্ট ম্যানিপুলেটর বা 3য় পক্ষের পড পরিবেশনকারী অংশীদার দ্বারা তৈরি করা যেতে পারে৷ -
API_KEY
( শুধুমাত্র লাইভস্ট্রিমের জন্য ব্যবহৃত হয় ): একটি ঐচ্ছিক API কী যা IMA DAI SDK থেকে একটি স্ট্রিম আইডি পুনরুদ্ধার করতে প্রয়োজন হতে পারে।
নিম্নলিখিতগুলির সাথে মেলে উদাহরণের পরিবর্তনশীল বিভাগটি পরিবর্তন করুন:
...
class ViewController:
UIViewController,
IMAAdsLoaderDelegate,
IMAStreamManagerDelegate,
AVPlayerViewControllerDelegate
{
static let streamUrl =
"https://encodersim.sandbox.google.com/masterPlaylist/9c654d63-5373-4673-8c8d-6d92b66b9d46/master.m3u8?gen-seg-redirect=true&network=51636543&event=google-sample&pids=devrel4628000,devrel896000,devrel3528000,devrel1428000,devrel2628000,devrel1928000&seg-host=dai.google.com&stream_id=[[STREAMID]]"
static let networkCode = "51636543"
static let customAssetKey = "google-sample"
static let APIKey = ""
static let backupStreamURLString =
"http://googleimadev-vh.akamaihd.net/i/big_buck_bunny/bbb-,480p,720p,1080p,.mov.csmil/master.m3u8"
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)
}
...
ভিওডি স্ট্রিম পড পরিবেশন
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 সম্পাদনা করুন এবং সেট করুন৷
লাইভস্ট্রিম পড পরিবেশন
স্ট্রিম আইডি পেতে streamManager.streamId
ব্যবহার করে IMAAdsLoaderDelegate
পদ্ধতি পরিবর্তন করুন। তারপর "[[STREAMID]]"
প্রতিস্থাপন করে STREAM_URL
এ স্ট্রিম আইডি ঢোকান। একবার এই পরিবর্তন করা হয়ে গেলে, নতুন স্ট্রীম URL 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 এর অনুরোধ করুন এবং 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
}
তাই তো! আপনি এখন tvOS-এর জন্য IMA DAI SDK-এর সাথে একটি পড সার্ভিং স্ট্রীমে বিজ্ঞাপনের অনুরোধ করছেন এবং প্রদর্শন করছেন৷ IMA DAI SDK ব্যবহার করার অন্যান্য উদাহরণ দেখতে, GitHub-এর নমুনাগুলি দেখুন।
,IMA SDKগুলি আপনার ওয়েবসাইট এবং অ্যাপগুলিতে মাল্টিমিডিয়া বিজ্ঞাপনগুলিকে একীভূত করা সহজ করে তোলে৷ IMA SDK যেকোন VAST-সঙ্গী বিজ্ঞাপন সার্ভার থেকে বিজ্ঞাপনের অনুরোধ করতে পারে এবং আপনার অ্যাপে বিজ্ঞাপন প্লেব্যাক পরিচালনা করতে পারে। IMA DAI SDK-এর সাথে, অ্যাপগুলি বিজ্ঞাপন এবং বিষয়বস্তু ভিডিওর জন্য একটি স্ট্রিম অনুরোধ করে—হয় VOD বা লাইভ সামগ্রী। SDK তারপরে একটি সম্মিলিত ভিডিও স্ট্রিম ফেরত দেয়, যাতে আপনাকে আপনার অ্যাপের মধ্যে বিজ্ঞাপন এবং বিষয়বস্তু ভিডিওর মধ্যে স্যুইচিং পরিচালনা করতে হবে না।
আপনি আগ্রহী DAI সমাধান নির্বাচন করুন
পড পরিবেশন DAI
এই নির্দেশিকাটি দেখায় যে কীভাবে একটি সাধারণ ভিডিও প্লেয়ারের সাথে tvOS-এর জন্য IMA DAI SDK ব্যবহার করে একটি DAI পড সার্ভিং লাইভ বা VOD স্ট্রিম চালাতে হয়। আপনি যদি একটি সম্পূর্ণ নমুনা সহ অনুসরণ করতে চান তবে পড সার্ভিং উদাহরণ অ্যাপটি ডাউনলোড করুন ( Obj C বা Swift )।
IMA DAI পড সার্ভিং ওভারভিউ
TVOS-এর জন্য IMA DAI SDK ব্যবহার করে পড পরিবেশন বাস্তবায়নে দুটি প্রধান উপাদান জড়িত:
StreamRequest
: একটি বস্তু যা Google এর বিজ্ঞাপন সার্ভারে একটি স্ট্রিম অনুরোধ সংজ্ঞায়িত করে। পড সার্ভিং সক্ষম করতেIMAPodStreamRequest
বাIMAPodVODStreamRequest
ব্যবহার করে তৈরি করতে হবে। উভয় পদ্ধতির একটি নেটওয়ার্ক কোড প্রয়োজন এবংIMAPodStreamRequest
জন্য একটি কাস্টম সম্পদ কী প্রয়োজন। একটি API কী ঐচ্ছিক।IMAStreamManager
: একটি বস্তু যা ভিডিও স্ট্রীম এবং IMA DAI SDK-এর মধ্যে যোগাযোগ পরিচালনা করে, যেমন ফায়ারিং ট্র্যাকিং পিং এবং প্রকাশকের কাছে স্ট্রিম ইভেন্ট ফরওয়ার্ড করা।
পূর্বশর্ত
আপনি শুরু করার আগে, আপনার নিম্নলিখিতগুলি প্রয়োজন:
- Xcode 13 বা তার পরে।
- CocoaPods (পছন্দের), সুইফ্ট প্যাকেজ ম্যানেজার, অথবা tvOS-এর জন্য IMA DAI SDK- এর ডাউনলোড করা কপি।
- DAI বিজ্ঞাপনের সাথে ভিডিও স্ট্রিম চালানোর জন্য IMA DAI SDK-এর সাথে একটি tvOS অ্যাপ ইতিমধ্যেই সেট আপ করা হয়েছে। যদি আপনার কাছে এমন কোনো অ্যাপ না থাকে, তাহলে আমরা tvOS DAI BasicExample টিকে শুরুর পয়েন্ট হিসেবে ব্যবহার করার পরামর্শ দিই। BasicExample এই নির্দেশিকায় উল্লেখিত কোডবেস আছে। IMA DAI SDK কীভাবে বাস্তবায়ন করবেন সে সম্পর্কে আরও তথ্যের জন্য, দ্রুত শুরু নির্দেশিকা দেখুন।
আপনার পড পরিবেশন ভেরিয়েবল সেট আপ করুন
পড পরিবেশনের জন্য প্রয়োজনীয় সমস্ত পরিবর্তন সুইফটে ViewController.swift
বা অবজেক্টিভ-সি-তে ViewController.m
এ করা হয়। এই গাইডের স্নিপেটগুলি সুইফট ভাষা ব্যবহার করার জন্য ডিফল্ট। প্রথম ধাপ হল ধ্রুবক ভেরিয়েবল আপডেট করা।
এখানে অ্যাড পড স্ট্রিম অনুরোধের ধ্রুবক যোগ করা হয়েছে:
-
STREAM_URL
( শুধুমাত্র লাইভস্ট্রিমগুলির জন্য ব্যবহৃত হয় ): আপনার ম্যানিফেস্ট ম্যানিপুলেটর বা তৃতীয় পক্ষের অংশীদার পড পরিবেশন ব্যবহার করে প্রদত্ত ভিডিও স্ট্রিম URL৷ আপনি একটি অনুরোধ করার আগে, আপনাকে IMA DAI SDK দ্বারা প্রদত্ত স্ট্রিম আইডি ঢোকাতে হবে। এই ক্ষেত্রে, স্ট্রীম URL-এ একটি স্থানধারক অন্তর্ভুক্ত করা হয়,"[[STREAMID]]"
, যা অনুরোধ করার আগে স্ট্রিম আইডি দিয়ে প্রতিস্থাপিত হয়। -
NETWORK_CODE
: আপনার Ad Manager 360 অ্যাকাউন্টের নেটওয়ার্ক কোড। -
CUSTOM_ASSET_KEY
( শুধুমাত্র লাইভস্ট্রিমের জন্য ব্যবহৃত হয় ): কাস্টম অ্যাসেট কী যা অ্যাড ম্যানেজার 360-এ আপনার পড সার্ভিং ইভেন্টকে শনাক্ত করে৷ এটি আপনার ম্যানিফেস্ট ম্যানিপুলেটর বা 3য় পক্ষের পড পরিবেশনকারী অংশীদার দ্বারা তৈরি করা যেতে পারে৷ -
API_KEY
( শুধুমাত্র লাইভস্ট্রিমের জন্য ব্যবহৃত হয় ): একটি ঐচ্ছিক API কী যা IMA DAI SDK থেকে একটি স্ট্রিম আইডি পুনরুদ্ধার করতে প্রয়োজন হতে পারে।
নিম্নলিখিতগুলির সাথে মেলে উদাহরণের পরিবর্তনশীল বিভাগটি পরিবর্তন করুন:
...
class ViewController:
UIViewController,
IMAAdsLoaderDelegate,
IMAStreamManagerDelegate,
AVPlayerViewControllerDelegate
{
static let streamUrl =
"https://encodersim.sandbox.google.com/masterPlaylist/9c654d63-5373-4673-8c8d-6d92b66b9d46/master.m3u8?gen-seg-redirect=true&network=51636543&event=google-sample&pids=devrel4628000,devrel896000,devrel3528000,devrel1428000,devrel2628000,devrel1928000&seg-host=dai.google.com&stream_id=[[STREAMID]]"
static let networkCode = "51636543"
static let customAssetKey = "google-sample"
static let APIKey = ""
static let backupStreamURLString =
"http://googleimadev-vh.akamaihd.net/i/big_buck_bunny/bbb-,480p,720p,1080p,.mov.csmil/master.m3u8"
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)
}
...
ভিওডি স্ট্রিম পড পরিবেশন
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 সম্পাদনা করুন এবং সেট করুন৷
লাইভস্ট্রিম পড পরিবেশন
স্ট্রিম আইডি পেতে streamManager.streamId
ব্যবহার করে IMAAdsLoaderDelegate
পদ্ধতি পরিবর্তন করুন। তারপর "[[STREAMID]]"
প্রতিস্থাপন করে STREAM_URL
এ স্ট্রিম আইডি ঢোকান। একবার এই পরিবর্তন করা হয়ে গেলে, নতুন স্ট্রীম URL 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 এর অনুরোধ করুন এবং 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
}
তাই তো! আপনি এখন tvOS-এর জন্য IMA DAI SDK-এর সাথে একটি পড সার্ভিং স্ট্রীমে বিজ্ঞাপনের অনুরোধ করছেন এবং প্রদর্শন করছেন৷ IMA DAI SDK ব্যবহার করার অন্যান্য উদাহরণ দেখতে, GitHub-এর নমুনাগুলি দেখুন।
,IMA SDKগুলি আপনার ওয়েবসাইট এবং অ্যাপগুলিতে মাল্টিমিডিয়া বিজ্ঞাপনগুলিকে একীভূত করা সহজ করে তোলে৷ IMA SDK যেকোন VAST-সঙ্গী বিজ্ঞাপন সার্ভার থেকে বিজ্ঞাপনের অনুরোধ করতে পারে এবং আপনার অ্যাপে বিজ্ঞাপন প্লেব্যাক পরিচালনা করতে পারে। IMA DAI SDK-এর সাথে, অ্যাপগুলি বিজ্ঞাপন এবং বিষয়বস্তু ভিডিওর জন্য একটি স্ট্রিম অনুরোধ করে—হয় VOD বা লাইভ সামগ্রী। SDK তারপরে একটি সম্মিলিত ভিডিও স্ট্রিম ফেরত দেয়, যাতে আপনাকে আপনার অ্যাপের মধ্যে বিজ্ঞাপন এবং বিষয়বস্তু ভিডিওর মধ্যে স্যুইচিং পরিচালনা করতে হবে না।
আপনি আগ্রহী DAI সমাধান নির্বাচন করুন
পড পরিবেশন DAI
এই নির্দেশিকাটি দেখায় যে কীভাবে একটি সাধারণ ভিডিও প্লেয়ারের সাথে tvOS-এর জন্য IMA DAI SDK ব্যবহার করে একটি DAI পড সার্ভিং লাইভ বা VOD স্ট্রিম চালাতে হয়। আপনি যদি একটি সম্পূর্ণ নমুনা সহ অনুসরণ করতে চান তবে পড সার্ভিং উদাহরণ অ্যাপটি ডাউনলোড করুন ( Obj C বা Swift )।
IMA DAI পড সার্ভিং ওভারভিউ
TVOS-এর জন্য IMA DAI SDK ব্যবহার করে পড পরিবেশন বাস্তবায়নে দুটি প্রধান উপাদান জড়িত:
StreamRequest
: একটি বস্তু যা Google এর বিজ্ঞাপন সার্ভারে একটি স্ট্রিম অনুরোধ সংজ্ঞায়িত করে। পড সার্ভিং সক্ষম করতেIMAPodStreamRequest
বাIMAPodVODStreamRequest
ব্যবহার করে তৈরি করতে হবে। উভয় পদ্ধতির একটি নেটওয়ার্ক কোড প্রয়োজন এবংIMAPodStreamRequest
জন্য একটি কাস্টম সম্পদ কী প্রয়োজন। একটি API কী ঐচ্ছিক।IMAStreamManager
: একটি বস্তু যা ভিডিও স্ট্রীম এবং IMA DAI SDK-এর মধ্যে যোগাযোগ পরিচালনা করে, যেমন ফায়ারিং ট্র্যাকিং পিং এবং প্রকাশকের কাছে স্ট্রিম ইভেন্ট ফরওয়ার্ড করা।
পূর্বশর্ত
আপনি শুরু করার আগে, আপনার নিম্নলিখিতগুলি প্রয়োজন:
- Xcode 13 বা তার পরে।
- CocoaPods (পছন্দের), সুইফ্ট প্যাকেজ ম্যানেজার, অথবা tvOS-এর জন্য IMA DAI SDK- এর ডাউনলোড করা কপি।
- DAI বিজ্ঞাপনের সাথে ভিডিও স্ট্রিম চালানোর জন্য IMA DAI SDK-এর সাথে একটি tvOS অ্যাপ ইতিমধ্যেই সেট আপ করা হয়েছে। যদি আপনার কাছে এমন কোনো অ্যাপ না থাকে, তাহলে আমরা tvOS DAI BasicExample টিকে শুরুর পয়েন্ট হিসেবে ব্যবহার করার পরামর্শ দিই। BasicExample এই নির্দেশিকায় উল্লেখিত কোডবেস আছে। IMA DAI SDK কীভাবে বাস্তবায়ন করবেন সে সম্পর্কে আরও তথ্যের জন্য, দ্রুত শুরু নির্দেশিকা দেখুন।
আপনার পড পরিবেশন ভেরিয়েবল সেট আপ করুন
পড পরিবেশনের জন্য প্রয়োজনীয় সমস্ত পরিবর্তন সুইফটে ViewController.swift
বা অবজেক্টিভ-সি-তে ViewController.m
এ করা হয়। এই গাইডের স্নিপেটগুলি সুইফট ভাষা ব্যবহার করার জন্য ডিফল্ট। প্রথম ধাপ হল ধ্রুবক ভেরিয়েবল আপডেট করা।
এখানে অ্যাড পড স্ট্রিম অনুরোধের ধ্রুবক যোগ করা হয়েছে:
-
STREAM_URL
( শুধুমাত্র লাইভস্ট্রিমগুলির জন্য ব্যবহৃত হয় ): আপনার ম্যানিফেস্ট ম্যানিপুলেটর বা তৃতীয় পক্ষের অংশীদার পড পরিবেশন ব্যবহার করে প্রদত্ত ভিডিও স্ট্রিম URL৷ আপনি একটি অনুরোধ করার আগে, আপনাকে IMA DAI SDK দ্বারা প্রদত্ত স্ট্রিম আইডি ঢোকাতে হবে। এই ক্ষেত্রে, স্ট্রীম URL-এ একটি স্থানধারক অন্তর্ভুক্ত করা হয়,"[[STREAMID]]"
, যা অনুরোধ করার আগে স্ট্রিম আইডি দিয়ে প্রতিস্থাপিত হয়। -
NETWORK_CODE
: আপনার Ad Manager 360 অ্যাকাউন্টের নেটওয়ার্ক কোড। -
CUSTOM_ASSET_KEY
( শুধুমাত্র লাইভস্ট্রিমের জন্য ব্যবহৃত হয় ): কাস্টম অ্যাসেট কী যা অ্যাড ম্যানেজার 360-এ আপনার পড সার্ভিং ইভেন্টকে শনাক্ত করে৷ এটি আপনার ম্যানিফেস্ট ম্যানিপুলেটর বা 3য় পক্ষের পড পরিবেশনকারী অংশীদার দ্বারা তৈরি করা যেতে পারে৷ -
API_KEY
( শুধুমাত্র লাইভস্ট্রিমের জন্য ব্যবহৃত হয় ): একটি ঐচ্ছিক API কী যা IMA DAI SDK থেকে একটি স্ট্রিম আইডি পুনরুদ্ধার করতে প্রয়োজন হতে পারে।
নিম্নলিখিতগুলির সাথে মেলে উদাহরণের পরিবর্তনশীল বিভাগটি পরিবর্তন করুন:
...
class ViewController:
UIViewController,
IMAAdsLoaderDelegate,
IMAStreamManagerDelegate,
AVPlayerViewControllerDelegate
{
static let streamUrl =
"https://encodersim.sandbox.google.com/masterPlaylist/9c654d63-5373-4673-8c8d-6d92b66b9d46/master.m3u8?gen-seg-redirect=true&network=51636543&event=google-sample&pids=devrel4628000,devrel896000,devrel3528000,devrel1428000,devrel2628000,devrel1928000&seg-host=dai.google.com&stream_id=[[STREAMID]]"
static let networkCode = "51636543"
static let customAssetKey = "google-sample"
static let APIKey = ""
static let backupStreamURLString =
"http://googleimadev-vh.akamaihd.net/i/big_buck_bunny/bbb-,480p,720p,1080p,.mov.csmil/master.m3u8"
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)
}
...
ভিওডি স্ট্রিম পড পরিবেশন
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 সম্পাদনা করুন এবং সেট করুন৷
লাইভস্ট্রিম পড পরিবেশন
স্ট্রিম আইডি পেতে streamManager.streamId
ব্যবহার করে IMAAdsLoaderDelegate
পদ্ধতি পরিবর্তন করুন। তারপর "[[STREAMID]]"
প্রতিস্থাপন করে STREAM_URL
এ স্ট্রিম আইডি ঢোকান। একবার এই পরিবর্তন করা হয়ে গেলে, নতুন স্ট্রীম URL 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 এর অনুরোধ করুন এবং 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
}
তাই তো! আপনি এখন tvOS-এর জন্য IMA DAI SDK-এর সাথে একটি পড সার্ভিং স্ট্রীমে বিজ্ঞাপনের অনুরোধ করছেন এবং প্রদর্শন করছেন৷ IMA DAI SDK ব্যবহার করার অন্যান্য উদাহরণ দেখতে, GitHub-এর নমুনাগুলি দেখুন।