diff --git a/Application/Sources/Test/TestRenderAdViewController.swift b/Application/Sources/Test/TestRenderAdViewController.swift index 2cbb607..5560d75 100644 --- a/Application/Sources/Test/TestRenderAdViewController.swift +++ b/Application/Sources/Test/TestRenderAdViewController.swift @@ -9,17 +9,14 @@ import UIKit import NimbusKit final class TestRenderAdViewController: UIViewController { - private let adMarkup: String - private let iTunesAppId: String? + private let ad: NimbusAd private lazy var adContainerView: CustomAdContainerView = { - return CustomAdContainerView(ad: Self.getAdFromMarkup(adMarkup: adMarkup), viewController: self) + return CustomAdContainerView(ad: ad, viewController: self) }() - init(adMarkup: String, iTunesAppId: String?) { - self.adMarkup = adMarkup - self.iTunesAppId = iTunesAppId - + init(ad: NimbusAd) { + self.ad = ad super.init(nibName: nil, bundle: nil) } @@ -27,10 +24,10 @@ final class TestRenderAdViewController: UIViewController { fatalError("init(coder:) has not been implemented") } - static func showBlocking(from: UIViewController, adMarkup: String, iTunesAppId: String? = nil) { + static func showBlocking(from: UIViewController, ad: NimbusAd) { let adView = NimbusAdView(adPresentingViewController: from) - adView.showsSKOverlay = iTunesAppId != nil - let controller = NimbusAdViewController(adView: adView, ad: getAdFromMarkup(adMarkup: adMarkup, iTunesAppId: iTunesAppId), companionAd: nil) + adView.showsSKOverlay = ad.extensions?.skAdNetwork != nil + let controller = NimbusAdViewController(adView: adView, ad: ad, companionAd: nil) controller.modalPresentationStyle = .fullScreen adView.adPresentingViewController = controller @@ -62,47 +59,4 @@ final class TestRenderAdViewController: UIViewController { child.fill() } } - - static private func getAdFromMarkup(adMarkup: String, iTunesAppId: String? = nil) -> NimbusAd { - let type: NimbusAuctionType = isVideoMarkup(adMarkup: adMarkup) ? .video : .static - return createNimbusAd(auctionType: type, markup: adMarkup, iTunesAppId: iTunesAppId) - } - - static private func isVideoMarkup(adMarkup: String) -> Bool { - let prefix = adMarkup.prefix(5).lowercased() - return prefix == " NimbusAd { - let adDimensions = isInterstitial ? - NimbusAdDimensions(width: 320, height: 480) : - NimbusAdDimensions(width: 300, height: 50) - - let ext = NimbusAdExtensions(skAdNetwork: NimbusAdSkAdNetwork(advertisedAppStoreItemID: iTunesAppId)) - - return NimbusAd( - position: "", - auctionType: auctionType, - bidRaw: 0, - bidInCents: 0, - contentType: "", - auctionId: "", - network: "test_render", - markup: markup, - isInterstitial: isInterstitial, - placementId: nil, - duration: nil, - adDimensions: adDimensions, - trackers: nil, - isMraid: isMraid, - extensions: iTunesAppId != nil ? ext : nil - ) - } } diff --git a/Application/Sources/Test/TestRenderViewController.swift b/Application/Sources/Test/TestRenderViewController.swift index 78267ef..05a22a0 100644 --- a/Application/Sources/Test/TestRenderViewController.swift +++ b/Application/Sources/Test/TestRenderViewController.swift @@ -6,10 +6,12 @@ // import UIKit +import NimbusKit class TestRenderViewController: DemoViewController { var isBlocking = false + var useNimbusRenderer = false private var iTunesAppId: String? @@ -170,11 +172,13 @@ class TestRenderViewController: DemoViewController { markupTextView.resignFirstResponder() + let ad = getAdFromMarkup(adMarkup: adMarkup) + if isBlocking { - TestRenderAdViewController.showBlocking(from: self, adMarkup: adMarkup, iTunesAppId: iTunesAppId) + TestRenderAdViewController.showBlocking(from: self, ad: ad) } else { navigationController?.pushViewController( - TestRenderAdViewController(adMarkup: adMarkup, iTunesAppId: iTunesAppId), + TestRenderAdViewController(ad: ad), animated: true ) } @@ -198,5 +202,52 @@ class TestRenderViewController: DemoViewController { let selectedRange = markupTextView.selectedRange markupTextView.scrollRangeToVisible(selectedRange) - } + } + + // MARK: - Create NimbusAd + + private func getAdFromMarkup(adMarkup: String) -> NimbusAd { + let type: NimbusAuctionType = isVideoMarkup(adMarkup: adMarkup) ? .video : .static + return createNimbusAd(auctionType: type, markup: adMarkup) + } + + private func isVideoMarkup(adMarkup: String) -> Bool { + let prefix = adMarkup.prefix(5).lowercased() + return prefix == " NimbusAd { + let adDimensions = isInterstitial ? + NimbusAdDimensions(width: 320, height: 480) : + NimbusAdDimensions(width: 300, height: 50) + + let ext = NimbusAdExtensions( + skAdNetwork: iTunesAppId != nil ? NimbusAdSkAdNetwork(advertisedAppStoreItemID: iTunesAppId) : nil, + useNimbusVideoRenderer: useNimbusRenderer + ) + + return NimbusAd( + position: "", + auctionType: auctionType, + bidRaw: 0, + bidInCents: 0, + contentType: "", + auctionId: "", + network: "test_render", + markup: markup, + isInterstitial: isInterstitial, + placementId: nil, + duration: nil, + adDimensions: adDimensions, + trackers: nil, + isMraid: isMraid, + extensions: ext + ) + } }