Nimbus Manual Requesting/Rendering

The manual request/render flow can be implemented if you want to request an ad to be shown at a later time.

We highly recommend the use of our Nimbus Dynamic Unit which simplifies the process of requesting and rendering ads.

Initialize Nimbus SDK

Please follow the integration guide to initialize the SDK and the renderers as necessary.

Requesting

Make a request

val adManager = NimbusAdManager()
adManager.makeRequest(
    context = requireContext(),
    request = NimbusRequest.forBannerAd(item, Format.BANNER_320_50, Position.HEADER),
    listener = object : RequestManager.Listener {
       override fun onAdResponse(nimbusResponse: NimbusResponse) {
          // Request completed with the given `nimbusResponse`                   
       }

       override fun onError(error: NimbusError) {
          // Nimbus request failed due to an error or no bid
       }
   })

Rendering

Follow the steps below to render an ad with the given NimbusAd/NimbusResponse.

Renderer.loadAd(
    nimbusResponse,
    adFrame,
    object : Renderer.Listener, NimbusError.Listener {
        override fun onAdRendered(controller: AdController) {
           controller.listeners.add(
                object : AdController.Listener {
                    override fun onAdEvent(adEvent: AdEvent) {
                        TODO("Receive events like `loaded`, `impression`, `clicked`")
                    }
    
                    override fun onError(error: NimbusError) {
                        TODO("Errors thrown after the ad has been rendered")
                    }
                }
            )
        }

        override fun onError(error: NimbusError) {
            Timber.e("Ad rendering failed")
        }
    }
)

SKOverlay

To enable SKOverlay for ad units integrated this way, you can set NimbusAdView.showsSKOverlay. This allows more control over if the overlay shows up for each ad unit.

let adView: NimbusAdView
adView.showsSKOverlay = true

To enable SKOverlay for all units globally, set Nimbus.shared.isSKOverlayEnabledForAllUnits.

Nimbus.shared.isSKOverlayEnabledForAllUnits = true

Caution: Please note that the setting these fields will show the overlay regardless of whether the ad is a banner or interstitial.

Last updated