IMA डीएआई SDK टूल और IMA क्लाइंट-साइड SDK को वर्शन 4 में मर्ज कर दिया गया है, और उन्हें iOS SDK के सटीक सबसेट के तौर पर फिर से बनाया गया है. काफ़ी हद तक यह iOS डेवलपर के लिए लर्निंग कर्व को कम करता है. इस वजह से, कुछ कोड डीएआई उपयोगकर्ताओं के लिए ज़रूरी अब हमारे दूसरे SDK टूल के साथ ज़्यादा समान हो गया है.
इस गाइड में, मौजूदा v3 वर्शन को अपग्रेड करने की ज़रूरी प्रोसेस के बारे में बताया गया है लागू करने के लिए किया जा सकता है.
अगर आपको कोई संदेह है, तो iOS DAI के नमूने the tvOS v4 API एक जैसा है. इसमें कंपैनियन और पीआईपी (पिक्चर में पिक्चर) को छोड़कर, अन्य सभी प्लैटफ़ॉर्म पर इन डिवाइसों का इस्तेमाल किया जा सकता है tvOS).
मॉड्यूल का नाम बदलें
iOS SDK टूल से मिलान करने के लिए, हमने मॉड्यूल का नाम बदलकर InteractiveMediaAds
कर दिया है
GoogleInteractiveMediaAds
तक.
बदलाव | |
---|---|
पुराना |
#import <InteractiveMediaAds/InteractiveMediaAds.h> |
नए दर्शक |
#import <GoogleInteractiveMediaAds/GoogleInteractiveMediaAds.h> |
पुराना |
@import InteractiveMediaAds; |
नए दर्शक |
@import GoogleInteractiveMediaAds; |
नया विज्ञापन कंटेनर बनाना
IMAAdDisplayContainer
, विज्ञापन कंटेनर व्यू को मैनेज करने के लिए ज़िम्मेदार है और
विज्ञापन प्लेबैक के लिए इस्तेमाल किए जाने वाले कंपैनियन विज्ञापन स्लॉट.
बदलाव | |
---|---|
पुराना | इससे मिलता-जुलता कोई पुराना डेटा नहीं है. |
नए दर्शक |
self.adDisplayContainer = [[IMAAdDisplayContainer alloc] initWithAdContainer:self.videoView]; |
IMAVideoDisplay और IMAAdDisplayContainer को IMAStreamRequest में करें
अब जब आपके पास वीडियो डिसप्ले है और IMAAdDisplayContainer,
आपको पास करना होगा
को स्ट्रीम अनुरोध में जोड़ना होगा, ताकि IMA डीएआई SDK टूल उन्हें मैनेज कर सके.
बदलाव | |
---|---|
पुराना |
IMALiveStreamRequest *streamRequest = [[IMALiveStreamRequest alloc] initWithAssetKey:kAssetKey]; IMAVODStreamRequest *streamRequest = [[IMAVODStreamRequest alloc] initWithContentSourceID:kContentSourceID videoID:kVideoID]; |
नए दर्शक |
IMALiveStreamRequest *streamRequest = [[IMALiveStreamRequest alloc] initWithAssetKey:kAssetKey adDisplayContainer:self.adDisplayContainer videoDisplay:self.videoDisplay]; IMAVODStreamRequest *streamRequest = [[IMAVODStreamRequest alloc] initWithContentSourceId:kContentSourceID videoId:kVideoID adDisplayContainer:self.adDisplayContainer videoDisplay:self.videoDisplay]; |
IMAAdsLoader से अनुरोध करना
बदलाव | |
---|---|
पुराना |
self.streamManager = [[IMAStreamManager alloc] initWithVideoDisplay:self.videoDisplay]; self.streamManager.delegate = self; [self.streamManager requestStream:streamRequest]; |
नए दर्शक | self.adsLoader = [[IMAAdsLoader alloc] init]; self.adsLoader.delegate = self; [self.adsLoader requestStreamWithRequest:streamRequest]; |
स्ट्रीम शुरू करने के लिए, IMAAdsLoaderDelegate को लागू करें
इन फ़ंक्शन के नाम बदल दिए गए हैं. साथ ही, इनमें बदलाव किए गए हैं, ताकि वे iOS के हिसाब से काम करें SDK टूल. स्ट्रीम मैनेजर और स्ट्रीम के बीच का संबंध भी बदल गया है. इस वर्शन 3 SDK टूल के बिना, एक ही स्ट्रीम मैनेजर का इस्तेमाल कई स्ट्रीम प्रबंधित करने के लिए किया जा सकता है. वर्शन 4 में, हर स्ट्रीम मैनेजर सिर्फ़ एक स्ट्रीम को मैनेज कर सकता है.
बदलाव | |
---|---|
पुराना |
- (void)streamManager:(IMAStreamManager *)streamManager didInitializeStream:(NSString *)streamID { NSLog(@"Stream initialized with streamID: %@", streamID); } - (void)streamManager:(IMAStreamManager *)streamManager didReceiveError:(NSError *)error { NSLog(@"Error: %@", error); [self playBackupStream]; } |
नए दर्शक |
- (void)adsLoader:(IMAAdsLoader *)loader adsLoadedWithData:(IMAAdsLoadedData *)adsLoadedData { self.streamManager = adsLoadedData.streamManager; self.streamManager.delegate = self; [self.streamManager initializeWithAdsRenderingSettings:nil]; NSLog(@"Stream initialized with streamID: %@", self.streamManager.streamId); } - (void)adsLoader:(IMAAdsLoader *)loader failedWithErrorData:(IMAAdLoadingErrorData *)adErrorData { NSLog(@"Error: %@", adErrorData.adError); [self playBackupStream]; } |
IMAStreamManagerDelegate को लागू करें
iOS SDK टूल को एक जैसा बनाए रखने के लिए, tvOS SDK में अब एक ही स्ट्रीम की जा सकती है
स्ट्रीम इवेंट मैनेज करने के लिए, मैनेजर डेलिगेट IMAStreamManagerDelegate
. आपने लोगों तक पहुंचाया मुफ़्त में
अब आपको अपने संगठन में हर उपयोगकर्ता के लिए,
इवेंट.
बदलाव | |
---|---|
पुराना |
- (void)streamManager:(IMAStreamManager *)streamManager adBreakDidStart:(IMAAdBreakInfo *)adBreakInfo { NSLog(@"Ad break started"); self.playerViewController.requiresLinearPlayback = YES; } - (void)streamManager:(IMAStreamManager *)streamManager adBreakDidEnd:(IMAAdBreakInfo *)adBreakInfo { NSLog(@"Ad break ended"); self.playerViewController.requiresLinearPlayback = NO; } |
नए दर्शक |
- (void)streamManager:(IMAStreamManager *)streamManager didReceiveAdEvent:(IMAAdEvent *)event { NSLog(@"StreamManager event (%@).", event.typeString); switch (event.type) { case kIMAAdEvent_AD_BREAK_STARTED: { NSLog(@"Ad break started"); self.playerViewController.requiresLinearPlayback = YES; break; } case kIMAAdEvent_AD_BREAK_ENDED: { NSLog(@"Ad break ended"); self.playerViewController.requiresLinearPlayback = NO; break; } // And so on for other events. default: break; } } |