IMA SDK टूल की मदद से, अपनी वेबसाइटों और ऐप्लिकेशन में आसानी से मल्टीमीडिया विज्ञापन इंटिग्रेट किए जा सकते हैं. IMA SDK टूल, वीएएसटी (वीडियो विज्ञापन देने के लिए टेंप्लेट) का पालन करने वाले किसी भी विज्ञापन सर्वर से विज्ञापनों का अनुरोध कर सकते हैं. साथ ही, आपके ऐप्लिकेशन में विज्ञापन चलाने की सुविधा को मैनेज कर सकते हैं. IMA डीएआई SDK की मदद से, ऐप्लिकेशन विज्ञापन और कॉन्टेंट वीडियो के लिए स्ट्रीम का अनुरोध करते हैं. यह वीओडी या लाइव कॉन्टेंट हो सकता है. इसके बाद, SDK टूल एक साथ कई वीडियो स्ट्रीम दिखाता है, ताकि आपको अपने ऐप्लिकेशन में विज्ञापन और कॉन्टेंट वीडियो के बीच स्विच करने की ज़रूरत न पड़े.
डीआई (डायनामिक विज्ञापन) का वह समाधान चुनें जिसमें आपकी दिलचस्पी है
पॉड में डीएआई का इस्तेमाल करना
इस गाइड में, tvOS के लिए IMA डीएआई SDK टूल का इस्तेमाल करके, वीडियो प्लेयर के साथ डीएआई पॉड सेविंग लाइव या वीओडी स्ट्रीम चलाने का तरीका बताया गया है. इंटिग्रेशन का पूरा सैंपल देखने या उससे जुड़े निर्देशों का पालन करने के लिए, 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 की डाउनलोड की गई कॉपी.
- डीएआई विज्ञापनों के साथ वीडियो स्ट्रीम चलाने के लिए, पहले से ही IMA डीएआई SDK टूल के साथ सेट अप किया गया tvOS ऐप्लिकेशन. अगर आपके पास पहले से ऐसा कोई ऐप्लिकेशन नहीं है, तो हमारा सुझाव है कि आप शुरुआत के लिए, tvOS DAI BasicExample का इस्तेमाल करें. BasicExample में, इस गाइड में रेफ़र किया गया कोडबेस है. IMA DAI SDK टूल को लागू करने के तरीके के बारे में ज़्यादा जानने के लिए, शुरुआती गाइड देखें.
पॉडकास्ट दिखाने के लिए वैरिएबल सेट अप करना
पॉड सर्विंग के लिए ज़रूरी सभी बदलाव, Swift में 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)
}
...
वीओडी स्ट्रीम पॉड दिखाना
IMAPodVODStreamRequest
को इंस्टैंशिएट करके, वीओडी पॉड स्ट्रीम का अनुरोध बनाने के लिए, 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)
}
...
स्ट्रीम के यूआरएल में बदलाव करना और उसे सेट करना
लाइव स्ट्रीम पॉड दिखाना
स्ट्रीम आईडी पाने के लिए, streamManager.streamId
का इस्तेमाल करके IMAAdsLoaderDelegate
के तरीकों में बदलाव करें. इसके बाद, "[[STREAMID]]"
की जगह पर स्ट्रीम आईडी डालें.STREAM_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
के तरीकों में बदलाव करें. इसके बाद, अपने वीडियो टेक्नोलॉजी पार्टनर (वीटीपी) से स्ट्रीम यूआरएल का अनुरोध करें. साथ ही, 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
}
IMA DAI ऐसेट को हटाना
IMA DAI SDK की मदद से, पॉड सेर्विंग स्ट्रीम में विज्ञापनों का अनुरोध करने और उन्हें दिखाने के बाद, हमारा सुझाव है कि पॉड सेर्विंग सेशन पूरा होने के बाद, सभी संसाधनों को हटा दें. स्ट्रीम चलाना बंद करने, सभी विज्ञापन ट्रैकिंग को रोकने, और लोड की गई सभी स्ट्रीम एसेट को रिलीज़ करने के लिए, IMAStreamManager.destroy()
को कॉल करें.
tvOS SDK के इस्तेमाल के अन्य उदाहरण देखने के लिए, GitHub पर सैंपल देखें.