tvOS डीएआई के लिए IMA SDK और tvOS क्लाइंट-साइड को वर्शन 4 में मर्ज कर दिया गया है. इन्हें, iOS SDK के सबसेट के तौर पर फिर से तैयार किया गया है. इससे iOS डेवलपर के लिए लर्निंग कर्व काफ़ी कम हो जाता है. इस वजह से, डीएआई उपयोगकर्ताओं के लिए ज़रूरी कुछ कोड बदल गए हैं, ताकि वे हमारे दूसरे SDK टूल के साथ बेहतर तरीके से काम कर सकें.
इस गाइड में, मौजूदा v3 को लागू करने के तरीके को नए v4 SDK टूल में अपग्रेड करने की ज़रूरी प्रोसेस की जानकारी दी गई है.
अगर आपको किसी तरह का संदेह हो, तो iOS DAI सैंपल\">tvOS v4 एपीआई में कोई अंतर नहीं होता है. हालांकि, कंपैनियन और पीआईपी (पिक्चर में पिक्चर) को छोड़कर, जो 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]; |
स्ट्रीम शुरू करने के लिए, IMAAdsLoaderDialog से जुड़ी वैल्यू को लागू करना
इन फ़ंक्शन के नाम बदल दिए गए हैं और इनमें बदलाव किया गया है, ताकि वे iOS SDK टूल के मुताबिक हों. स्ट्रीम मैनेजर और स्ट्रीम के बीच का संबंध भी बदल गया है. SDK टूल के वर्शन 3 में कई स्ट्रीम को मैनेज करने के लिए, एक ही स्ट्रीम मैनेजर का इस्तेमाल किया जा सकता है. वर्शन 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]; } |
IMAStreamManagerManager को लागू करना
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; } } |