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