IMA SDK टूल की मदद से, अपनी वेबसाइटों और ऐप्लिकेशन में आसानी से मल्टीमीडिया विज्ञापन इंटिग्रेट किए जा सकते हैं. IMA SDK टूल, वीएएसटी (वीडियो विज्ञापन देने के लिए टेंप्लेट) का पालन करने वाले किसी भी विज्ञापन सर्वर से विज्ञापनों का अनुरोध कर सकते हैं. साथ ही, आपके ऐप्लिकेशन में विज्ञापन चलाने की सुविधा को मैनेज कर सकते हैं. IMA डीएआई SDK की मदद से, ऐप्लिकेशन विज्ञापन और कॉन्टेंट वीडियो के लिए स्ट्रीम का अनुरोध करते हैं. यह वीओडी या लाइव कॉन्टेंट हो सकता है. इसके बाद, SDK टूल एक ऐसी वीडियो स्ट्रीम दिखाता है जिसमें विज्ञापन और कॉन्टेंट, दोनों शामिल होते हैं. इससे आपको अपने ऐप्लिकेशन में, विज्ञापन और कॉन्टेंट वीडियो के बीच स्विच करने की ज़रूरत नहीं पड़ती.
अपनी पसंद का डीएआई सलूशन चुनें
पॉड के तौर पर काम करने वाला डीएआई
इस गाइड में बताया गया है कि किसी इसका इस्तेमाल करके, tvOS के लिए IMA डीएआई SDK टूल का इस्तेमाल किया जा सकता है. अगर आपको Google News पूरे किए गए सैंपल के साथ, Pod Serving के उदाहरण वाला ऐप्लिकेशन डाउनलोड करें (Obj C या Swift).
IMA डीएआई पॉड दिखाने की सुविधा के बारे में खास जानकारी
tvOS के लिए IMA डीएआई SDK का इस्तेमाल करके, पॉड विज्ञापन दिखाने की सुविधा को लागू करने के लिए, दो मुख्य घटक ज़रूरी हैं:
StreamRequest
: यह एक ऐसा ऑब्जेक्ट है जो Google के विज्ञापन सर्वर को स्ट्रीम का अनुरोध करता है. इनमें से किसी का इस्तेमाल करके बनाया जाना चाहिएIMAPodStreamRequest
याIMAPodVODStreamRequest
पॉड सर्विंग चालू करें. दोनों तरीकों के लिए, नेटवर्क कोड औरIMAPodStreamRequest
के लिए, कस्टम ऐसेट कुंजी भी ज़रूरी है. एपीआई पासकोड ज़रूरी नहीं.IMAStreamManager
: एक ऑब्जेक्ट जो दोनों के बीच कम्यूनिकेशन मैनेज करता है वीडियो स्ट्रीम और IMA डीएआई SDK टूल का इस्तेमाल करना, जैसे कि ट्रैकिंग पिंग ट्रिगर करना और स्ट्रीम इवेंट को प्रकाशक को फ़ॉरवर्ड करने की सुविधा मिलती है.
ज़रूरी शर्तें
शुरू करने से पहले, आपको इनकी ज़रूरत होगी:
- Xcode 13 या इसके बाद का वर्शन.
- CocoaPods (इसका इस्तेमाल करना बेहतर है), Swift Package Manager या tvOS के लिए IMA डीएआई SDK टूल की डाउनलोड की गई कॉपी.
- ऐसा tvOS ऐप्लिकेशन जिसमें वीडियो स्ट्रीम चलाने के लिए, IMA डीएआई SDK टूल के साथ पहले से ही सेट अप किया गया हो डीएआई विज्ञापन. अगर आपके पास पहले से ऐसा कोई ऐप्लिकेशन नहीं है, तो हमारा सुझाव है कि आप शुरुआत के लिए, tvOS DAI BasicExample का इस्तेमाल करें. BasicExample में रेफ़र किए गए कोड बेस के बारे में बताया गया है पढ़ें. IMA डीएआई SDK टूल को लागू करने के बारे में ज़्यादा जानने के लिए, यहां जाएं: आसानी से सिखाने वाली गाइड.
पॉडकास्ट दिखाने के लिए वैरिएबल सेट अप करना
पॉड सर्विंग के लिए ज़रूरी सभी बदलाव ViewController.swift
में पूरे कर लिए गए हैं
Objective-C में स्विफ़्ट या ViewController.m
. इस गाइड में दिए गए स्निपेट, डिफ़ॉल्ट रूप से Swift भाषा का इस्तेमाल करते हैं. पहला चरण, स्थिर वैरिएबल अपडेट करना है.
यहां विज्ञापन पॉड स्ट्रीम के अनुरोध के लिए कॉन्स्टेंट जोड़े गए हैं:
STREAM_URL
(सिर्फ़ लाइव स्ट्रीम के लिए इस्तेमाल किया गया): वीडियो स्ट्रीम का यूआरएल पॉड सर्विंग का इस्तेमाल करके, मेनिफ़ेस्ट मैनेज करने वाले या तीसरे पक्ष के पार्टनर को जोड़ें. अनुरोध करने से पहले, आपको IMA डीएआई एसडीके से मिला स्ट्रीम आईडी डालना होगा. इस मामले में, स्ट्रीम यूआरएल में एक प्लेसहोल्डर,"[[STREAMID]]"
शामिल होता है. अनुरोध करने से पहले, इसे स्ट्रीम आईडी से बदल दिया जाता है.NETWORK_CODE
: आपके Ad Manager 360 खाते का नेटवर्क कोड.CUSTOM_ASSET_KEY
(सिर्फ़ लाइव स्ट्रीम के लिए इस्तेमाल किया जाता है): ऐसी कस्टम ऐसेट कुंजी जो Ad Manager 360 में आपके पॉड सर्विंग इवेंट की पहचान करता है. इसे इनके ज़रिए बनाया जा सकता है: या तीसरे पक्ष के पॉड की मदद से विज्ञापन दिखाने वाले पार्टनर के लिए.API_KEY
(सिर्फ़ लाइव स्ट्रीम के लिए इस्तेमाल किया जाता है): एक वैकल्पिक एपीआई पासकोड, जिसे को IMA डीएआई 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?
...
लाइव या वीओडी पॉड स्ट्रीम का अनुरोध करना
लाइव स्ट्रीम पॉड दिखाना
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)
}
...
वीओडी (वीडियो ऑन डिमांड) स्ट्रीम पॉड सर्विंग
वीओडी (वीडियो ऑन डिमांड) पॉड स्ट्रीम का अनुरोध करने के लिए, requestStream
तरीके में बदलाव करें
IMAPodVODStreamRequest
इंस्टैंशिएट हो रहा है.
...
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)
}
...
स्ट्रीम के यूआरएल में बदलाव करना और उसे सेट करना
लाइव स्ट्रीम पॉड दिखाना
streamManager.streamId
का इस्तेमाल करके, IMAAdsLoaderDelegate
के तरीकों में बदलाव करें
स्ट्रीम आईडी देखें. इसके बाद, STREAM_URL
में स्ट्रीम आईडी डालें. इसके लिए,
"[[STREAMID]]"
. यह बदलाव होने के बाद, स्ट्रीम का नया यूआरएल
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
के तरीकों में बदलाव करें
स्ट्रीम आईडी देखें. इसके बाद, अपने वीडियो टेक्नोलॉजी पार्टनर (वीटीपी) से स्ट्रीम यूआरएल का अनुरोध करें. साथ ही, IMAStreamManager.loadThirdPartyStream()
को कॉल करके, IMA को स्ट्रीम यूआरएल और आपके टीवीपी से मिले सबटाइटल लोड करने के लिए कहें.
...
// 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 डीएआई SDK टूल. IMA डीएआई SDK टूल के इस्तेमाल के अन्य उदाहरण देखने के लिए, GitHub पर सैंपल देखें.