IMA DAI SDK এবং IMA ক্লায়েন্ট-সাইড SDK সংস্করণ 4-এ একত্রিত হয়েছে এবং iOS SDK-এর একটি সঠিক উপসেট হিসাবে পুনরায় কাজ করা হয়েছে। এটি উল্লেখযোগ্যভাবে iOS বিকাশকারীদের জন্য শেখার বক্ররেখা হ্রাস করে। ফলস্বরূপ, DAI ব্যবহারকারীদের জন্য প্রয়োজনীয় কিছু কোড আমাদের অন্যান্য SDK-এর সাথে আরও সামঞ্জস্যপূর্ণ হতে পরিবর্তিত হয়েছে।
এই নির্দেশিকাটি একটি বিদ্যমান v3 বাস্তবায়নকে নতুন v4 SDK-এ আপগ্রেড করার জন্য প্রয়োজনীয় প্রক্রিয়ার মধ্য দিয়ে চলে।
সন্দেহ থাকলে, iOS DAI নমুনাগুলি দেখুন — tvOS v4 API একই (সঙ্গী এবং PIP ছাড়া, যা 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]; |
IMAStreamRequest এ IMAVideoDisplay এবং IMAAdDisplayContainer পাস করুন
এখন আপনার কাছে একটি ভিডিও ডিসপ্লে এবং IMAAdDisplayContainer,
আপনাকে সেগুলিকে স্ট্রিম অনুরোধে পাঠাতে হবে যাতে IMA DAI 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-এর সাথে সামঞ্জস্যপূর্ণ হওয়ার জন্য পরিবর্তন করা হয়েছে৷ স্ট্রিম ম্যানেজার এবং স্ট্রিমের মধ্যে সম্পর্কও পরিবর্তিত হয়েছে। v3 SDK-এ, একাধিক স্ট্রিম পরিচালনা করতে একটি একক স্ট্রিম ম্যানেজার ব্যবহার করা যেতে পারে। v4-এ, প্রতিটি স্ট্রিম ম্যানেজার শুধুমাত্র একটি একক স্ট্রিম পরিচালনা করতে পারে।
পরিবর্তন | |
---|---|
পুরাতন | - (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; } } |