diff --git a/ios/Video/Features/RCTIMAAdsManager.swift b/ios/Video/Features/RCTIMAAdsManager.swift index 6a180dea..f7b219a0 100644 --- a/ios/Video/Features/RCTIMAAdsManager.swift +++ b/ios/Video/Features/RCTIMAAdsManager.swift @@ -9,7 +9,7 @@ class RCTIMAAdsManager: NSObject, IMAAdsLoaderDelegate, IMAAdsManagerDelegate { private var adsLoader: IMAAdsLoader! /* Main point of interaction with the SDK. Created by the SDK as the result of an ad request. */ private var adsManager: IMAAdsManager! - + init(video:RCTVideo!) { _video = video @@ -24,7 +24,7 @@ class RCTIMAAdsManager: NSObject, IMAAdsLoaderDelegate, IMAAdsManagerDelegate { func requestAds() { // Create ad display container for ad rendering. let adDisplayContainer = IMAAdDisplayContainer(adContainer: _video, viewController: _video.reactViewController()) - + let adTagUrl = _video.getAdTagUrl() let contentPlayhead = _video.getContentPlayhead() @@ -35,11 +35,11 @@ class RCTIMAAdsManager: NSObject, IMAAdsLoaderDelegate, IMAAdsManagerDelegate { adDisplayContainer: adDisplayContainer, contentPlayhead: contentPlayhead, userContext: nil) - + adsLoader.requestAds(with: request) } } - + // MARK: - Getters func getAdsLoader() -> IMAAdsLoader? { @@ -56,7 +56,7 @@ class RCTIMAAdsManager: NSObject, IMAAdsLoaderDelegate, IMAAdsManagerDelegate { // Grab the instance of the IMAAdsManager and set yourself 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 = IMAAdsRenderingSettings(); diff --git a/ios/Video/RCTVideo.swift b/ios/Video/RCTVideo.swift index 07a72260..9c761228 100644 --- a/ios/Video/RCTVideo.swift +++ b/ios/Video/RCTVideo.swift @@ -217,7 +217,7 @@ class RCTVideo: UIView, RCTVideoPlayerViewControllerDelegate, RCTPlayerObserverH ]) if currentTimeSecs >= 0 { - if !_didRequestAds && currentTimeSecs >= 0.0001 { + if !_didRequestAds && currentTimeSecs >= 0.0001 && _adTagUrl != nil { _imaAdsManager.requestAds() _didRequestAds = true } @@ -310,10 +310,12 @@ class RCTVideo: UIView, RCTVideoPlayerViewControllerDelegate, RCTPlayerObserverH self.setAutomaticallyWaitsToMinimizeStalling(self._automaticallyWaitsToMinimizeStalling) } - // Set up your content playhead and contentComplete callback. - self._contentPlayhead = IMAAVPlayerContentPlayhead(avPlayer: self._player!) + if _adTagUrl != nil { + // Set up your content playhead and contentComplete callback. + self._contentPlayhead = IMAAVPlayerContentPlayhead(avPlayer: self._player!) - self._imaAdsManager.setUpAdsLoader() + self._imaAdsManager.setUpAdsLoader() + } //Perform on next run loop, otherwise onVideoLoadStart is nil self.onVideoLoadStart?([ @@ -814,7 +816,7 @@ class RCTVideo: UIView, RCTVideoPlayerViewControllerDelegate, RCTPlayerObserverH } // MARK: - RCTIMAAdsManager - + func getAdTagUrl() -> String? { return _adTagUrl } @@ -823,11 +825,11 @@ class RCTVideo: UIView, RCTVideoPlayerViewControllerDelegate, RCTPlayerObserverH func setAdTagUrl(_ adTagUrl:String!) { _adTagUrl = adTagUrl } - + func getContentPlayhead() -> IMAAVPlayerContentPlayhead? { return _contentPlayhead } - + func setAdPlaying(_ adPlaying:Bool) { _adPlaying = adPlaying }