IMA SDK की मदद से, मल्टीमीडिया विज्ञापनों को आपकी वेबसाइटों और ऐप्लिकेशन में आसानी से इंटिग्रेट किया जा सकता है. IMA SDK, VAST के मुताबिक किसी भी विज्ञापन सर्वर से विज्ञापनों का अनुरोध कर सकता है. साथ ही, आपके ऐप्लिकेशन में विज्ञापन प्लेबैक को मैनेज कर सकता है. IMA डीएआई SDK टूल की मदद से, ऐप्लिकेशन विज्ञापन और कॉन्टेंट वीडियो के लिए स्ट्रीम का अनुरोध करते हैं, फिर चाहे वह वीओडी (वीडियो ऑन डिमांड) हो या लाइव. इसके बाद, SDK टूल एक साथ वीडियो स्ट्रीम दिखाता है, ताकि आपको अपने ऐप्लिकेशन में विज्ञापन और कॉन्टेंट वीडियो के बीच स्विच करने की प्रोसेस मैनेज न करनी पड़े.
अपनी पसंद का डीएआई सलूशन चुनें
डीएआई दिखाने वाले पॉड
इस गाइड में बताया गया है कि iOS के लिए IMA डीएआई SDK टूल को एक आसान वीडियो प्लेयर के साथ इस्तेमाल करके, डीएआई पॉड सर्विंग को लाइव या वीओडी स्ट्रीम कैसे चलाएं. अगर आपको पूरे सैंपल के साथ फ़ॉलो करना है, तो पॉड दिखाने का उदाहरण डाउनलोड करें.
IMA डीएआई पॉड दिखाने के बारे में खास जानकारी
iOS के लिए, IMA डीएआई SDK का इस्तेमाल करके पॉड दिखाने की सुविधा लागू करने में दो मुख्य कॉम्पोनेंट शामिल हैं:
StreamRequest
: यह एक ऑब्जेक्ट है, जो Google के विज्ञापन सर्वर से स्ट्रीम के अनुरोध के बारे में बताता है. पॉड सर्विंग को चालू करने के लिएIMAPodStreamRequest
याIMAPodVODStreamRequest
का इस्तेमाल करके बनाया जाना चाहिए. दोनों तरीकों के लिए नेटवर्क कोड की ज़रूरत होती है औरIMAPodStreamRequest
के लिए कस्टम एसेट कुंजी की भी ज़रूरत होती है. एपीआई पासकोड डालना ज़रूरी नहीं है.IMAStreamManager
: एक ऐसा ऑब्जेक्ट जो वीडियो स्ट्रीम और IMA डीएआई SDK टूल के बीच कम्यूनिकेशन मैनेज करता है. जैसे, ट्रैकिंग पिंग और पब्लिशर को फ़ॉरवर्ड करने वाले स्ट्रीम इवेंट.
ज़रूरी शर्तें
शुरू करने से पहले, आपको इनकी ज़रूरत होगी:
- Xcode 13 या उसके बाद का वर्शन.
- CocoaPods (प्राथमिकता दी जाती है), Swift Package Manager या iOS के लिए IMA डीएआई SDK की डाउनलोड की गई कॉपी.
- डीएआई विज्ञापनों वाली वीडियो स्ट्रीम चलाने के लिए, IMA डीएआई SDK टूल के साथ पहले से सेट अप किया गया iOS ऐप्लिकेशन. अगर आपके पास पहले से ऐसा कोई ऐप्लिकेशन नहीं है, तो हमारा सुझाव है कि शुरुआत में iOS डीएआई बेसिकउदाहरण का इस्तेमाल करें. BasicExample में वह कोडबेस मौजूद है जिसका रेफ़रंस इस गाइड में दिया गया है. IMA डीएआई SDK टूल को लागू करने के तरीके के बारे में ज़्यादा जानकारी के लिए, आसानी से सिखाने वाली गाइड देखें.
पॉड सर्विंग वैरिएबल सेट अप करें
पॉड सर्विंग के लिए ज़रूरी सभी बदलाव, swift में ViewController.swift या Objective-C में ViewController.m में किए जाते हैं. इस गाइड में दिए गए स्निपेट में डिफ़ॉल्ट रूप से Swift भाषा का इस्तेमाल किया जाता है. सबसे पहले, कॉन्स्टेंट वैरिएबल को अपडेट करें.
यहां विज्ञापनों के पॉड स्ट्रीम के अनुरोध को स्थिर रखने वाले नियम दिए गए हैं:
STREAM_URL
(सिर्फ़ लाइव स्ट्रीम के लिए इस्तेमाल किया जाता है): वीडियो स्ट्रीम का वह यूआरएल जो आपके मेनिफ़ेस्ट में बताए गए टूल या पॉड सर्विंग का इस्तेमाल करने वाले थर्ड पार्टी पार्टनर से मिलता है. अनुरोध करने से पहले, आपको IMA डीएआई SDK से मिला स्ट्रीम आईडी डालना होगा. इस मामले में, स्ट्रीम यूआरएल में प्लेसहोल्डर"[[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?
...
लाइव या वीओडी पॉड स्ट्रीम का अनुरोध करें
लाइव स्ट्रीम पॉड सर्विंग
लाइव पॉड स्ट्रीम का अनुरोध करने के लिए, requestStream
तरीके में बदलाव करें. इसके लिए, IMAPodStreamRequest
को तुरंत चालू करें.
...
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
तरीकों में बदलाव करें. इसके बाद, अपने वीडियो टेक्नोलॉजी पार्टनर (VTP) से स्ट्रीम यूआरएल का अनुरोध करें. इसके बाद, IMAStreamManager.loadThirdPartyStream()
को कॉल करें, ताकि IMA
स्ट्रीम का यूआरएल और 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
}
हो गया! अब iOS के लिए IMA डीएआई SDK टूल की मदद से, पॉड सर्विंग स्ट्रीम में विज्ञापनों के लिए अनुरोध किया जा रहा है और उन्हें दिखाया जा रहा है. इस्तेमाल किए जा रहे IMA डीएआई SDK टूल के अन्य उदाहरण देखने के लिए, GitHub पर सैंपल देखें.