IMA SDK সেট আপ করুন৷

বিজ্ঞাপন দিয়ে আপনার ভিডিও বিষয়বস্তু নগদীকরণ শুরু.

IMA SDKগুলি আপনার ওয়েবসাইট এবং অ্যাপগুলিতে মাল্টিমিডিয়া বিজ্ঞাপনগুলিকে একীভূত করা সহজ করে তোলে৷ IMA SDK যেকোন VAST-সঙ্গী বিজ্ঞাপন সার্ভার থেকে বিজ্ঞাপনের অনুরোধ করতে পারে এবং আপনার অ্যাপে বিজ্ঞাপন প্লেব্যাক পরিচালনা করতে পারে। IMA ক্লায়েন্ট-সাইড SDK-এর সাথে, আপনি সামগ্রী ভিডিও প্লেব্যাকের নিয়ন্ত্রণ বজায় রাখেন, যখন SDK বিজ্ঞাপন প্লেব্যাক পরিচালনা করে। বিজ্ঞাপনগুলি অ্যাপের বিষয়বস্তু ভিডিও প্লেয়ারের উপরে অবস্থান করা একটি পৃথক ভিডিও প্লেয়ারে চলে৷

এই নির্দেশিকাটি দেখায় কিভাবে একটি ভিডিও প্লেয়ার অ্যাপে IMA SDK সংহত করতে হয়। আপনি যদি একটি সম্পূর্ণ নমুনা ইন্টিগ্রেশন সহ দেখতে বা অনুসরণ করতে চান, GitHub থেকে BasicExample ডাউনলোড করুন।

IMA ক্লায়েন্ট-সাইড ওভারভিউ

IMA ক্লায়েন্ট-সাইড বাস্তবায়নে চারটি প্রধান SDK উপাদান জড়িত, যা এই নির্দেশিকায় প্রদর্শিত হয়েছে:

  • IMAAdDisplayContainer : একটি কন্টেইনার অবজেক্ট যা নির্দিষ্ট করে যেখানে IMA বিজ্ঞাপন UI উপাদানগুলিকে রেন্ডার করে এবং সক্রিয় ভিউ এবং ওপেন মেজারমেন্ট সহ দর্শনযোগ্যতা পরিমাপ করে৷
  • IMAAdsLoader : একটি বস্তু যা বিজ্ঞাপনের অনুরোধ করে এবং বিজ্ঞাপনের অনুরোধের প্রতিক্রিয়া থেকে ইভেন্ট পরিচালনা করে। আপনার শুধুমাত্র একটি বিজ্ঞাপন লোডার ইনস্ট্যান্টিয়েট করা উচিত, যা অ্যাপ্লিকেশনের সারাজীবন জুড়ে পুনরায় ব্যবহার করা যেতে পারে।
  • IMAAdsRequest : একটি বস্তু যা বিজ্ঞাপনের অনুরোধকে সংজ্ঞায়িত করে। বিজ্ঞাপনের অনুরোধগুলি VAST বিজ্ঞাপন ট্যাগের জন্য URL উল্লেখ করে, সেইসাথে অতিরিক্ত প্যারামিটার, যেমন বিজ্ঞাপনের মাত্রা।
  • IMAAdsManager : একটি বস্তু যা বিজ্ঞাপনের অনুরোধের প্রতিক্রিয়া ধারণ করে, বিজ্ঞাপন প্লেব্যাক নিয়ন্ত্রণ করে এবং SDK দ্বারা চালিত বিজ্ঞাপন ইভেন্টগুলির জন্য শোনে।

পূর্বশর্ত

আপনি শুরু করার আগে, আপনার নিম্নলিখিতগুলি প্রয়োজন:

  • Xcode 13 বা তার পরে
  • CocoaPods (পছন্দের), সুইফ্ট প্যাকেজ ম্যানেজার, অথবা iOS এর জন্য IMA SDK এর ডাউনলোড করা কপি

1. একটি নতুন Xcode প্রকল্প তৈরি করুন৷

এক্সকোডে, অবজেক্টিভ-সি বা সুইফট ব্যবহার করে একটি নতুন iOS প্রকল্প তৈরি করুন। প্রকল্পের নাম হিসাবে BasicExample ব্যবহার করুন।

2. Xcode প্রকল্পে IMA SDK যোগ করুন

CocoaPods হল Xcode প্রকল্পগুলির জন্য একটি নির্ভরতা পরিচালক এবং IMA SDK ইনস্টল করার জন্য প্রস্তাবিত পদ্ধতি৷ CocoaPods ইনস্টল বা ব্যবহার সম্পর্কে আরও তথ্যের জন্য, CocoaPods ডকুমেন্টেশন দেখুন। একবার আপনার কোকোপড ইনস্টল হয়ে গেলে, IMA SDK ইনস্টল করতে নিম্নলিখিত নির্দেশাবলী ব্যবহার করুন:

  1. আপনার BasicExample.xcodeproj ফাইলের মতো একই ডিরেক্টরিতে, Podfile নামে একটি পাঠ্য ফাইল তৈরি করুন এবং নিম্নলিখিত কনফিগারেশন যোগ করুন:

    উদ্দেশ্য-C

    source 'https://github.com/CocoaPods/Specs.git'  platform :ios, '12'  target "BasicExample" do   pod 'GoogleAds-IMA-iOS-SDK', '~> 3.26.1' end  

    সুইফট

    source 'https://github.com/CocoaPods/Specs.git'  platform :ios, '12'  target "BasicExample" do   pod 'GoogleAds-IMA-iOS-SDK', '~> 3.26.1' end  
  2. Podfile ধারণকারী ডিরেক্টরি থেকে, pod install --repo-update চালান।

  3. BasicExample.xcworkspace ফাইল খুলে ইনস্টলেশন সফল হয়েছে কিনা তা যাচাই করুন এবং নিশ্চিত করুন যে এতে দুটি প্রকল্প রয়েছে: BasicExample এবং Pods (CocoaPods দ্বারা ইনস্টল করা নির্ভরতা)।

সুইফট প্যাকেজ ম্যানেজার ব্যবহার করে SDK ইনস্টল করুন

ইন্টারেক্টিভ মিডিয়া বিজ্ঞাপন SDK সংস্করণ 3.18.4 থেকে শুরু করে সুইফট প্যাকেজ ম্যানেজার সমর্থন করে। সুইফট প্যাকেজ আমদানি করতে, নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন:

  1. Xcode-এ, ফাইলে নেভিগেট করে IMA SDK সুইফট প্যাকেজ ইনস্টল করুন > প্যাকেজ নির্ভরতা যোগ করুন...।

  2. প্রম্পটে, IMA iOS SDK সুইফ্ট প্যাকেজ GitHub সংগ্রহস্থল অনুসন্ধান করুন: swift-package-manager-google-interactive-media-ads-ios

  3. আপনি যে IMA SDK সুইফট প্যাকেজটি ব্যবহার করতে চান তার সংস্করণ নির্বাচন করুন। নতুন প্রকল্পের জন্য, আমরা আপ টু নেক্সট মেজর সংস্করণ ব্যবহার করার পরামর্শ দিই।

একবার আপনি শেষ হয়ে গেলে, Xcode আপনার প্যাকেজ নির্ভরতা সমাধান করে এবং সেগুলিকে পটভূমিতে ডাউনলোড করে। কীভাবে প্যাকেজ নির্ভরতা যুক্ত করবেন সে সম্পর্কে আরও বিশদ বিবরণের জন্য, অ্যাপলের নিবন্ধটি দেখুন।

ম্যানুয়ালি SDK ডাউনলোড এবং ইনস্টল করুন

আপনি যদি সুইফট প্যাকেজ ম্যানেজার বা CocoaPods ব্যবহার করতে না চান, তাহলে আপনি IMA SDK ডাউনলোড করতে পারেন এবং ম্যানুয়ালি আপনার প্রোজেক্টে যোগ করতে পারেন।

3. একটি ভিডিও প্লেয়ার তৈরি করুন

প্রথমত, একটি ভিডিও প্লেয়ার প্রয়োগ করুন। প্রাথমিকভাবে, এই প্লেয়ারটি IMA SDK ব্যবহার করে না এবং প্লেব্যাক ট্রিগার করার কোনো পদ্ধতি ধারণ করে না।

উদ্দেশ্য-C

প্লেয়ার নির্ভরতা আমদানি করুন:

#import "ViewController.h"  @import AVFoundation; 

প্লেয়ার ভেরিয়েবল সেট আপ করুন:

@interface ViewController () <IMAAdsLoaderDelegate, IMAAdsManagerDelegate>  /// Content video player. @property(nonatomic, strong) AVPlayer *contentPlayer;  /// Play button. @property(nonatomic, weak) IBOutlet UIButton *playButton;  /// UIView in which we will render our AVPlayer for content. @property(nonatomic, weak) IBOutlet UIView *videoView; 

ভিউ লোড হলে ভিডিও প্লেয়ার শুরু করুন:

@implementation ViewController  // The content URL to play. NSString *const kTestAppContentUrl_MP4 =     @"https://storage.googleapis.com/gvabox/media/samples/stock.mp4";  // Ad tag NSString *const kTestAppAdTagUrl = @"https://pubads.g.doubleclick.net/gampad/ads?"   @"iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dlinear&"   @"ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&"   @"correlator=";  - (void)viewDidLoad {   [super viewDidLoad];    self.playButton.layer.zPosition = MAXFLOAT;    [self setupAdsLoader];   [self setUpContentPlayer]; }  #pragma mark Content Player Setup  - (void)setUpContentPlayer {   // Load AVPlayer with path to our content.   NSURL *contentURL = [NSURL URLWithString:kTestAppContentUrl_MP4];   self.contentPlayer = [AVPlayer playerWithURL:contentURL];    // Create a player layer for the player.   AVPlayerLayer *playerLayer = [AVPlayerLayer playerLayerWithPlayer:self.contentPlayer];    // Size, position, and display the AVPlayer.   playerLayer.frame = self.videoView.layer.bounds;   [self.videoView.layer addSublayer:playerLayer];    // Set up our content playhead and contentComplete callback.   self.contentPlayhead = [[IMAAVPlayerContentPlayhead alloc] initWithAVPlayer:self.contentPlayer];   [[NSNotificationCenter defaultCenter] addObserver:self                                            selector:@selector(contentDidFinishPlaying:)                                                name:AVPlayerItemDidPlayToEndTimeNotification                                              object:self.contentPlayer.currentItem]; }  - (IBAction)onPlayButtonTouch:(id)sender {   [self requestAds];   self.playButton.hidden = YES; } 

সুইফট

প্লেয়ার নির্ভরতা আমদানি করুন:

import AVFoundation 

প্লেয়ার ভেরিয়েবল সেট আপ করুন:

class PlayerContainerViewController: UIViewController, IMAAdsLoaderDelegate, IMAAdsManagerDelegate {   static let contentURL = URL(     string: "https://storage.googleapis.com/gvabox/media/samples/stock.mp4")!    private var contentPlayer = AVPlayer(url: PlayerContainerViewController.contentURL)    private lazy var playerLayer: AVPlayerLayer = {     AVPlayerLayer(player: contentPlayer)   }() 

ভিউ লোড হলে ভিডিও প্লেয়ার শুরু করুন:

private lazy var videoView: UIView = {   let videoView = UIView()   videoView.translatesAutoresizingMaskIntoConstraints = false   view.addSubview(videoView)    NSLayoutConstraint.activate([     videoView.bottomAnchor.constraint(       equalTo: view.safeAreaLayoutGuide.bottomAnchor),     videoView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor),     videoView.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor),     videoView.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor),   ])   return videoView }()  // MARK: - View controller lifecycle methods  override func viewDidLoad() {   super.viewDidLoad()    videoView.layer.addSublayer(playerLayer)   adsLoader.delegate = self    NotificationCenter.default.addObserver(     self,     selector: #selector(contentDidFinishPlaying(_:)),     name: .AVPlayerItemDidPlayToEndTime,     object: contentPlayer.currentItem) }  override func viewDidAppear(_ animated: Bool) {   super.viewDidAppear(animated)   playerLayer.frame = videoView.layer.bounds }  override func viewWillTransition(   to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator ) {   coordinator.animate { _ in     // do nothing   } completion: { _ in     self.playerLayer.frame = self.videoView.layer.bounds   } }  // MARK: - Public methods  func playButtonPressed() {   requestAds() } 

4. IMA SDK আমদানি করুন৷

IMA SDK আমদানি করতে, নিম্নলিখিতগুলি করুন:

উদ্দেশ্য-C

  1. IMA SDK আমদানি করুন:

    @import GoogleInteractiveMediaAds; 
  2. অ্যাপে ব্যবহৃত IMAAdsLoader , IMAAVPlayerContentPlayhead এবং IMAAdsManager ক্লাসের জন্য ভেরিয়েবল তৈরি করুন:

    // SDK /// Entry point for the SDK. Used to make ad requests. @property(nonatomic, strong) IMAAdsLoader *adsLoader;  /// Playhead used by the SDK to track content video progress and insert mid-rolls. @property(nonatomic, strong) IMAAVPlayerContentPlayhead *contentPlayhead;  /// Main point of interaction with the SDK. Created by the SDK as the result of an ad request. @property(nonatomic, strong) IMAAdsManager *adsManager; 

সুইফট

  1. IMA SDK আমদানি করুন:

    import GoogleInteractiveMediaAds  
  2. অ্যাপে ব্যবহৃত IMAAdsLoader , IMAAVPlayerContentPlayhead এবং IMAAdsManager ক্লাসের জন্য ভেরিয়েবল তৈরি করুন:

    static let adTagURLString =   "https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/"   + "single_ad_samples&sz=640x480&cust_params=sample_ct%3Dlinear&ciu_szs=300x250%2C728x90&"   + "gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&correlator="  private let adsLoader = IMAAdsLoader() private var adsManager: IMAAdsManager?  private lazy var contentPlayhead: IMAAVPlayerContentPlayhead = {   IMAAVPlayerContentPlayhead(avPlayer: contentPlayer) }() 

5. কন্টেন্ট প্লেহেড ট্র্যাকার এবং এন্ড-অফ-স্ট্রীম পর্যবেক্ষক প্রয়োগ করুন

মিড-রোল বিজ্ঞাপনগুলি চালানোর জন্য, IMA SDK-কে আপনার ভিডিও সামগ্রীর বর্তমান অবস্থান ট্র্যাক করতে হবে৷ এটি করার জন্য, একটি ক্লাস তৈরি করুন যা IMAContentPlayhead প্রয়োগ করে। আপনি যদি একটি AVPlayer ব্যবহার করেন, যেমন এই উদাহরণে দেখানো হয়েছে, SDK IMAAVPlayerContentPlayhead ক্লাস প্রদান করে যা আপনার জন্য এটি করে। আপনি যদি AVPlayer ব্যবহার না করে থাকেন, তাহলে আপনার নিজের একটি ক্লাসে IMAContentPlayhead প্রয়োগ করতে হবে।

আপনার কন্টেন্ট প্লে হয়ে গেলে আপনাকে SDK কে জানাতে হবে যাতে এটি পোস্ট-রোল বিজ্ঞাপনগুলি প্রদর্শন করতে পারে। AVPlayerItemDidPlayToEndTimeNotification ব্যবহার করে IMAAdsLoader-এ contentComplete পদ্ধতিতে কল করার মাধ্যমে এটি করা হয়।

উদ্দেশ্য-C

প্লেয়ার সেটআপে IMAAVPlayerContentPlayhead উদাহরণ তৈরি করুন:

// Set up our content playhead and contentComplete callback. self.contentPlayhead = [[IMAAVPlayerContentPlayhead alloc] initWithAVPlayer:self.contentPlayer]; [[NSNotificationCenter defaultCenter] addObserver:self                                          selector:@selector(contentDidFinishPlaying:)                                              name:AVPlayerItemDidPlayToEndTimeNotification                                            object:self.contentPlayer.currentItem]; 

কন্টেন্ট প্লে করা শেষ হলে IMAAdsLoader.contentComplete() কল করার জন্য contentDidFinishPlaying() পদ্ধতি তৈরি করুন:

- (void)contentDidFinishPlaying:(NSNotification *)notification {   // Make sure we don't call contentComplete as a result of an ad completing.   if (notification.object == self.contentPlayer.currentItem) {     [self.adsLoader contentComplete];   } } 

সুইফট

প্লেয়ার সেটআপে সামগ্রী সমাপ্ত পর্যবেক্ষক তৈরি করুন:

NotificationCenter.default.addObserver(   self,   selector: #selector(contentDidFinishPlaying(_:)),   name: .AVPlayerItemDidPlayToEndTime,   object: contentPlayer.currentItem) 

কন্টেন্ট প্লে করা শেষ হলে IMAAdsLoader.contentComplete() কল করার জন্য contentDidFinishPlaying() পদ্ধতি তৈরি করুন:

@objc func contentDidFinishPlaying(_ notification: Notification) {   // Make sure we don't call contentComplete as a result of an ad completing.   if notification.object as? AVPlayerItem == contentPlayer.currentItem {     adsLoader.contentComplete()   } } 

6. বিজ্ঞাপন লোডার শুরু করুন এবং একটি বিজ্ঞাপন অনুরোধ করুন

বিজ্ঞাপনের একটি সেট অনুরোধ করার জন্য, আপনাকে একটি IMAAdsLoader উদাহরণ তৈরি করতে হবে। এই লোডারটি একটি নির্দিষ্ট বিজ্ঞাপন ট্যাগ URL-এর সাথে যুক্ত IMAAdsRequest বস্তুগুলি প্রক্রিয়া করতে ব্যবহার করা যেতে পারে।

একটি সর্বোত্তম অনুশীলন হিসাবে, আপনার অ্যাপের সমগ্র জীবনচক্রের জন্য শুধুমাত্র IMAAdsLoader এর একটি উদাহরণ বজায় রাখুন। অতিরিক্ত বিজ্ঞাপনের অনুরোধ করতে, একটি নতুন IMAAdsRequest অবজেক্ট তৈরি করুন, কিন্তু একই IMAAdsLoader পুনরায় ব্যবহার করুন। আরও তথ্যের জন্য, IMA SDK FAQ দেখুন।

উদ্দেশ্য-C

- (void)setupAdsLoader {   self.adsLoader = [[IMAAdsLoader alloc] initWithSettings:nil];   self.adsLoader.delegate = self; }  - (void)requestAds {   // Create an ad display container for ad rendering.   IMAAdDisplayContainer *adDisplayContainer =       [[IMAAdDisplayContainer alloc] initWithAdContainer:self.videoView                                           viewController:self                                           companionSlots:nil];   // Create an ad request with our ad tag, display container, and optional user context.   IMAAdsRequest *request = [[IMAAdsRequest alloc] initWithAdTagUrl:kTestAppAdTagUrl                                                 adDisplayContainer:adDisplayContainer                                                    contentPlayhead:self.contentPlayhead                                                        userContext:nil];   [self.adsLoader requestAdsWithRequest:request]; } 

সুইফট

private func requestAds() {   // Create ad display container for ad rendering.   let adDisplayContainer = IMAAdDisplayContainer(     adContainer: videoView, viewController: self, companionSlots: nil)   // Create an ad request with our ad tag, display container, and optional user context.   let request = IMAAdsRequest(     adTagUrl: PlayerContainerViewController.adTagURLString,     adDisplayContainer: adDisplayContainer,     contentPlayhead: contentPlayhead,     userContext: nil)    adsLoader.requestAds(with: request) } 

7. একটি বিজ্ঞাপন লোডার প্রতিনিধি সেট আপ করুন৷

একটি সফল লোড ইভেন্টে, IMAAdsLoader তার নির্ধারিত প্রতিনিধির adsLoadedWithData পদ্ধতিকে কল করে, এটিকে IMAAdsManager এর একটি উদাহরণ দেয়। তারপরে আপনি বিজ্ঞাপন ম্যানেজার শুরু করতে পারেন, যা বিজ্ঞাপন ট্যাগ URL-এর প্রতিক্রিয়া দ্বারা সংজ্ঞায়িত হিসাবে পৃথক বিজ্ঞাপন লোড করে।

উপরন্তু, লোডিং প্রক্রিয়া চলাকালীন ঘটতে পারে এমন কোনো ত্রুটি হ্যান্ডেল করতে ভুলবেন না। বিজ্ঞাপন লোড না হলে, নিশ্চিত করুন যে মিডিয়া প্লেব্যাক বিজ্ঞাপন ছাড়াই চলতে থাকে, যাতে ব্যবহারকারীর অভিজ্ঞতায় হস্তক্ষেপ না হয়।

উদ্দেশ্য-C

- (void)adsLoader:(IMAAdsLoader *)loader adsLoadedWithData:(IMAAdsLoadedData *)adsLoadedData {   // Grab the instance of the IMAAdsManager and set ourselves as the delegate.   self.adsManager = adsLoadedData.adsManager;   self.adsManager.delegate = self;   // Create ads rendering settings to tell the SDK to use the in-app browser.   IMAAdsRenderingSettings *adsRenderingSettings = [[IMAAdsRenderingSettings alloc] init];   adsRenderingSettings.linkOpenerPresentingController = self;   // Initialize the ads manager.   [self.adsManager initializeWithAdsRenderingSettings:adsRenderingSettings]; }  - (void)adsLoader:(IMAAdsLoader *)loader failedWithErrorData:(IMAAdLoadingErrorData *)adErrorData {   // Something went wrong loading ads. Log the error and play the content.   NSLog(@"Error loading ads: %@", adErrorData.adError.message);   [self.contentPlayer play]; } 

সুইফট

func adsLoader(_ loader: IMAAdsLoader, adsLoadedWith adsLoadedData: IMAAdsLoadedData) {   // Grab the instance of the IMAAdsManager and set ourselves as the delegate.   adsManager = adsLoadedData.adsManager   adsManager?.delegate = self    // Create ads rendering settings and tell the SDK to use the in-app browser.   let adsRenderingSettings = IMAAdsRenderingSettings()   adsRenderingSettings.linkOpenerPresentingController = self    // Initialize the ads manager.   adsManager?.initialize(with: adsRenderingSettings) }  func adsLoader(_ loader: IMAAdsLoader, failedWith adErrorData: IMAAdLoadingErrorData) {   if let message = adErrorData.adError.message {     print("Error loading ads: \(message)")   }   contentPlayer.play() } 

8. একটি বিজ্ঞাপন পরিচালক প্রতিনিধি সেট আপ করুন

সবশেষে, ইভেন্ট এবং রাষ্ট্রীয় পরিবর্তনগুলি পরিচালনা করতে, বিজ্ঞাপন পরিচালকের নিজস্ব একজন প্রতিনিধি প্রয়োজন৷ IMAAdManagerDelegate বিজ্ঞাপন ইভেন্ট এবং ত্রুটিগুলি পরিচালনা করার পদ্ধতি রয়েছে, সেইসাথে আপনার ভিডিও সামগ্রীতে প্লে এবং পজ ট্রিগার করার পদ্ধতি রয়েছে৷

প্লেব্যাক শুরু করুন

বিষয়বস্তু এবং বিজ্ঞাপনের প্লেব্যাক শুরু করতে LOADED ইভেন্টের জন্য শুনুন। আরো বিস্তারিত জানার জন্য, didReceiveAdEvent দেখুন।

উদ্দেশ্য-C

- (void)adsManager:(IMAAdsManager *)adsManager didReceiveAdEvent:(IMAAdEvent *)event {   // When the SDK notified us that ads have been loaded, play them.   if (event.type == kIMAAdEvent_LOADED) {     [adsManager start];   } } 

সুইফট

func adsManager(_ adsManager: IMAAdsManager, didReceive event: IMAAdEvent) {   // When the SDK notifies us the ads have been loaded, play them.   if event.type == IMAAdEventType.LOADED {     adsManager.start()   } } 

ত্রুটিগুলি পরিচালনা করুন

বিজ্ঞাপন ত্রুটির জন্য একটি হ্যান্ডলার যোগ করুন. কোনো ত্রুটি দেখা দিলে, আগের ধাপের মতো, কন্টেন্ট প্লেব্যাক আবার শুরু করুন।

উদ্দেশ্য-C

- (void)adsManager:(IMAAdsManager *)adsManager didReceiveAdError:(IMAAdError *)error {   // Something went wrong with the ads manager after ads were loaded. Log the error and play the   // content.   NSLog(@"AdsManager error: %@", error.message);   [self.contentPlayer play]; } 

সুইফট

func adsManager(_ adsManager: IMAAdsManager, didReceive error: IMAAdError) {   // Something went wrong with the ads manager after ads were loaded.   // Log the error and play the content.   if let message = error.message {     print("AdsManager error: \(message)")   }   contentPlayer.play() } 

খেলার জন্য শুনুন এবং ইভেন্ট পজ করুন

IMA SDK দ্বারা অনুরোধ করা হলে, অন্তর্নিহিত ভিডিও বিষয়বস্তুতে ইভেন্ট প্লে এবং পজ করার জন্য আপনার প্রয়োগ করার জন্য শেষ দুটি প্রতিনিধি পদ্ধতি ব্যবহার করা হয়। অনুরোধ করা হলে বিরতি এবং প্লে ট্রিগার করা ব্যবহারকারীকে বিজ্ঞাপনগুলি দেখানোর সময় ভিডিও সামগ্রীর অংশগুলি হারিয়ে যাওয়া থেকে বাধা দেয়৷

উদ্দেশ্য-C

- (void)adsManagerDidRequestContentPause:(IMAAdsManager *)adsManager {   // The SDK is going to play ads, so pause the content.   [self.contentPlayer pause]; }  - (void)adsManagerDidRequestContentResume:(IMAAdsManager *)adsManager {   // The SDK is done playing ads (at least for now), so resume the content.   [self.contentPlayer play]; } 

সুইফট

func adsManagerDidRequestContentPause(_ adsManager: IMAAdsManager) {   // The SDK is going to play ads, so pause the content.   contentPlayer.pause() }  func adsManagerDidRequestContentResume(_ adsManager: IMAAdsManager) {   // The SDK is done playing ads (at least for now), so resume the content.   contentPlayer.play() } 

তাই তো! আপনি এখন অনুরোধ করছেন এবং IMA SDK-এর সাথে বিজ্ঞাপন প্রদর্শন করছেন৷ অতিরিক্ত SDK বৈশিষ্ট্য সম্পর্কে জানতে, GitHub-এ অন্যান্য গাইড বা নমুনাগুলি দেখুন।

পরবর্তী পদক্ষেপ

iOS প্ল্যাটফর্মে বিজ্ঞাপনের আয় বাড়াতে, IDFA ব্যবহার করার জন্য অ্যাপের স্বচ্ছতা এবং ট্র্যাকিং অনুমতির অনুরোধ করুন