Changelog

Changes to functionality will be detailed here. As of version 2.0.0, the Nimbus SDK team adheres to Semantic Versioning: as follows:

  1. MAJOR version when incompatible/breaking API changes are introduced

  2. MINOR version when functionality is added in a backwards compatible manner

  3. PATCH version when backwards compatible bug fixes are made

2.19.2

Added:

  • Added support for Extended ID atype field

Fixed:

  • Fixed some rewarded ads starting too early

2.19.1

Fixed

  • Removed calls to deprecated Google Adapter methods

2.19.0

Fixed

  • Fixed some interstitials ads starting too early

2.18.0

Fixed

  • Mute not applying correctly to some video ads

  • Crash on WebView render process crashes

  • Companion ads not centering properly

2.17.0

Added

  • Adds language code to request by default

  • Validation for invalid advertising IDs

2.16.0

Added

  • OM Viewability to NimbusRequest by default

Changed

  • Deprecated thirdPartyViewabilityEnabled

2.15.0

Added

  • Vungle Native Ads support

Fixed

  • Removed WebChromeClient from static renderer to void issues with popups

2.14.2

Fixed

  • Fixed click event not firing in interstitial for Nimbus Rendering Dynamic Price

  • Fixed interstitial opening automatically when resuming app for Nimbus Rendering Dynamic Price

2.14.1

Fixed

  • Fixed hidden mute button capturing clicks

2.14.0

Added

  • MobileFuse render functionality implemented

  • VAST 4.0 protocols for Video requests

  • Creative scaling for Vungle Ads

2.13.3

Added

  • Callback for Companion Ads clicks

2.13.2

Fixed

  • Google ad events not firing when Nimbus is rendering dynamic price

  • Sizing for video when Nimbus is rendering Dynamic Price

2.13.1

Fixed

  • Scaling issue when Nimbus is rendering dynamic price ads

2.13.0

Added

  • Dynamic Adapters for AdMob

Changed

  • Improved ad quality for GAM Dynamic Price

2.12.0

Added

  • Dynamic Price support for rewarded and rewarded interstitial

Changed

  • Nimbus icons' filenames - changed prefix to "ic_nimbus_"

2.11.0

  • Improved Meta Rewarded Video Ads

2.10.0

Changed

  • Bug fixes and improvements

2.9.0

Added

  • Added a possibleObstructionListener to Renderer to help debug obstruction cases

  • Fixed issue with Vungle Banners that were not triggering Loaded events

  • Improved ad-tapping detection

2.8.0

Added

  • Support for using Nimbus Renderers with Dynamic Price

  • Pixel scaling ratio included in the Nimbus request

  • Volume control on inline video ads can now be enabled on the VideoAdRenderer

2.7.0

Added

  • Support for sending win / loss notifications to Nimbus

2.6.1

Fixed

  • Potential crash if view obstructing a Nimbus ad removed during exposure calculation

2.6.0

Added

  • Support for Vungle demand

2.5.0

Note for Kotlin Developers:

This update may be source incompatible with previous versions; usage of the following listeners should be updated to mark the parameters as non-nullable.

  • AdController.Listener : AdEvent.Listener, NimbusError.Listener

  • NimbusAdManager.Listener : Renderer.Listener, RequestManager.Listener

TODO("Remove the `?` from the following method overrides")
override fun onAdEvent(adEvent: AdEvent?) 
override fun onAdRendered(controller: AdController?)
override fun onAdResponse(nimbusResponse: NimbusResponse?) 
override fun onError(error: NimbusError?) 

/* Updated listener parameters correctly marked as non-null */
override fun onAdEvent(adEvent: AdEvent) 
override fun onAdRendered(controller: AdController)
override fun onAdResponse(nimbusResponse: NimbusResponse)
override fun onError(error: NimbusError)

Added

  • NimbusRequest.addApsResponse and NimbusRequest.addApsLoader helper methods for including APS paramters in the request to Nimbus.

Changed

  • Initialization and requesting components now use Kotlin coroutines for background processing and thread communication.

  • ApsDemandProvider has been deprecated. Instructions for initializing and including Amazon demand in the Nimbus auction can be found on the Third Party Demand APS page.

Fixed

  • Crash that occurs if a request to Nimbus is made before the SDK has been initialized

2.4.1

Added

  • NimbusRequest.forVideoAd() helper method for requesting videos

Fixed

  • Issue preventing videos larger than the player to scale down to size

2.4.0

Added

  • Added thirdPartyViewabilityEnabled flag to the Nimbus object

  • Added configureViewability method on NimbusRequest

Changed

  • Enabled OM Viewability for all showAd / showBlockingAd / showRewardedAd requests

  • Enabled OM Viewability for APS requests

2.3.0

Added

  • Extended ID helpers to NimbusRequest and NimbusAdManager

Changed

  • Code related to the rendering of ads has been moved from the core and ui module to a new render module

  • The nimbus-ui module is now deprecated; the module will continue to be included transitively but any explicit declarations of "com.adsbynimbus.android:nimbus-ui" in a build should be removed.

2.2.2

Changed

  • Updated NimbusAdManager to store keys and request url on each instance

Fixed

  • Fixed scaling issue causing video to crop when rendered inline

2.2.1

Behavior Changes

  • Increased window for detecting clicks from 100ms to 200ms

2.2.0

New Features

  • Added support for the IAB Global Privacy Platform (GPP)

Behavior Changes

  • Updated Google Mediation Adapter to map adaptive sizes to Nimbus formats

  • Removed dependency on StaticAdRenderer from NimbusAdManager

Updated Dependencies

  • Nimbus OpenRTB: 0.9.6

2.1.1

Behavior Changes

  • Fixed issue causing ViewabilityProvider to incorrectly inject markup rendered by other SDKs

  • Fixed compilation issue when using ExoPlayer 2.17+ in a consumer build

  • Updated NimbusTaskManager to initialize before call to ServiceLoader

  • Fixed issue where request builder not respecting orientation set on NimbusRequest

Updated Dependencies

  • LiveRamp: 1.4.1

  • OM SDK: 1.4.2

2.1.0

New Features

2.0.0

New Features

  • Fully rewritten MRAID 3.0 implementation which adds support for expandable and resizable ads.

Breaking Changes

  • Removed the extension-okhttp module; it is no longer required and should be removed from the build.

  • Removed the extension-exoplayer library; it is no longer required and should be removed from the build.

  • Removed the extension-mopub library; MoPub service was shut down March 31st, 2022.

  • The OkHttpNimbusClient Companion object has been removed and removes the following functions.

  • setOkHttpClient has be replaced with RequestManager.setClient(OkHttpNimbusClient(OkHttpClient.Builder())).

  • setGson has been removed and the use of Gson is no longer supported.

  • JSON_MEDIA_TYPE, HEADER_CONTENT_ENCODING, and GZIP constants have been removed.

  • The DemandProvider interface and companion object has been removed. Any usage of the DemandProvider interface can be replaced with a NimbusRequest.Interceptor installed on the RequestManager.interceptors set.

  • String constants in the NimbusRequest Companion object have been removed.

  • The userDidConsent parameter in setGdprConsent has been removed; consent is read from the TCF string by Nimbus.

Behavior Changes

  • Requests that include banner ads will additionally request MRAID 3 ads.

  • Refreshing Ads now have an enforced 30 seconds minimum.

1.12.2

Behavior Changes

  • Fixed issue where attempting to retrieve TCFv2 gdprApplies value can crash

1.12.1

New Features

  • Volume icon for full screen video ads now bundled with Nimbus SDK.

Behavior Changes

  • Fixed issue where full screen ads loaded using application context may not render.

  • Fixed issue where video ad may not start with volume on if rendered full screen.

  • NimbusActivityCustomEvent Google adapter is deprecated and now extends NimbusCustomEvent.

1.12.0

New features

  • Added support for TCFv2. If a Consent Management Provider SDK is present, the Nimbus SDK will attempt to retrieve the consent string automatically.

Behavior Changes

  • Blocking ads will now attempt to retry showing if transitioning from one Activity to another. This behavior change should fix any crashes associated with showing blocking ads.

  • APSDemandProvider will now request ads at the time a Nimbus Request is made instead of precaching bids.

1.11.6

Behavior Changes

  • Fixed NullPointerException regression in Google Mediation adapter from 1.11.5

1.11.5

Behavior Changes

  • Fixed issue where refreshing ad does not respect timeout on network error

  • Fixed issue where API 7 flag duplicated in request when used with refreshing ad unit

  • Fixed issue where connection type was not added to the outbound request

  • Added 5 second timeout to close button on Google Mediated Ads

  • Updated Blocking Ads to request hardware acceleration for video to add Unity support to the Exoplayer extension

1.11.4

New Features

  • Added support for Dynamic Price video ads

Behavior Changes

  • Fixed dependency compatibility issue when building with Kotlin 1.4

  • Fixed incorrectly removed deprecated properties in 1.11.2 with additional replacements hints

  • Fixed crash on Android 5 devices when retrieving network type

1.11.3

Behavior Changes

  • Fixed issue where refreshing ad does not respect the refresh interval if the very first response is a NO_BID error.

Dependency Updates

  • exoplayer-extension minimum Exoplayer version updated to 2.15.0

1.11.2

New features

  • Added NimbusAdManager.setGdprConsent and RequestManager.setGdprConsent helper methods. See Privacy for more information and examples.

Behavior Changes

  • Fixed issue where refreshing ads would not fire events. This fixes a regression introduced in version 1.10.10 and 1.11.2 should be use if using refreshing ads.

  • Impression bid floor has been removed. To set the bid floor from the client use the banner or video objects accessible in the NimbusRequest.

  • Calling setGson on the OkHttpNimbusClient is now a no-op. Serialization is handled by Kotlin now.

Breaking Changes

  • NimbusRequest helper methods such as forBannerAd and forInterstitialAd have been moved to a companion object. If using Kotlin, the imports for those functions will need to be updated or prefixed like NimbusReqeust.forBannerAd as referenced in the requesting documentation.

  • NimbusResponse now wraps the BidResponse object. Property calls to NimbusResponse such as nimbusResponse.position should change to nimbusResponse.bid.position Function calls as part of the NimbusAd interface such as nimbusResponse.markup() continue to work as before.

1.11.1

New Features

  • Added Viewability extension for providing metrics using the OM SDK. To enable Viewability refer to the OM-Viewability page.

Behavior Changes

  • Fixed crash if static ad is clicked while rendering.

1.11.0

Behavior Changes

  • Fixed issue where LOADED event could fire twice for some static ads.

  • Fixed issue preventing Unity Rewarded Video from rendering.

1.10.11

Behavior Changes

  • Fixed issue where ads can open without user click action.

1.10.10

New Features

  • Updated dependencies to support Android 12

  • Added extension methods for adding parameters to a MoPub ad or Google ad request when using Dynamic price.

  • Fixed potential crashes when loading or clicking on static ads.

  • Fixed issue preventing click-through on video ads after 5 seconds elapsed until video end.

  • Added checks to prevent state issue crash dismissing full screen ads.

Behavior Changes

  • Calls to NimbusAdManager.makeRequest() now callback on the main thread.

  • Fixed issue where scrolling views placed over a Nimbus Ad with a blank space incorrectly reports the ad as being covered. (NOTE: Blank views placed on ads or within a scrolling view on top of an ad must be marked as invisible or have its alpha set to 0 otherwise the ad will report itself as covered.)

1.10.7

Behavior Changes

  • Refreshing ads will always call onAdResponse to notify when the next ad is ready to be shown

  • Added small delay between video load and start when loaded as an interstitial

1.10.6

  • Fixed crash if blocking ad shown after hosting activity is destroyed.

1.10.5

Behavior Changes

  • Fixed issue where refresh logic might not trigger if no layout passes happen on screen.

  • AdController now always passed back before firing loaded event.

  • Static ads now destroy the WebView after a 1 second delay.

  • Static ads only fire resumed event if paused first.

  • Fixed issue reporting exposure to MRAID ads.

  • Fixed issue resolving OpenRTB request models.

1.10.4

New Features

  • Added support for Unity Rewarded Video Demand

Behavior Changes

  • The default mapping for Nimbus Dynamic Price has changed. Please ensure your Nimbus Dynamic Price mapping matches your environment if the mapping was not being set on the Nimbus Dynamic Price request.

  • Fixed potential crashes if MoPub ad is invalidated during load of Nimbus Ad

1.10.3

Behavior Changes

  • All rewarded ads calls will now have an end card automatically included.

  • NimbusAdManager.showRewardedVideoAd has been deprecated and replaced by showRewardedAd. Please note if migrating calls from showRewardedVideoAd to showRewardedAd, the close button delay value has been changed from milliseconds to seconds and the calls should be updated with the appropriate values.

  • showBlockingAd now has a default 5 second close button delay. To revert to the previous behavior, change the call to showBlockingAd to use the 4 parameter version. showBlockingAd(nimbusRequest, 0, activity, listener)

1.10.2

Behavior Changes

  • Added support for MoPub MREC ad units in NimbusMoPubAdapter

  • Setting the App object during initialization is no longer required

1.10.1

Behavior Changes

  • Updated Google Ad SDK to 20.0.0

  • Blocking Ads now use the full screen by default

Migration Steps (Google Dynamic Price Only)

Version 20.0.0 of the Google Ad SDK introduces new names for banner and interstitial ad units. For any place NimbusDynamicPrice is being used, make the following changes:

  1. Change all instances of PublisherAdRequest.Builder to AdManagerAdRequest.Builder

  2. Change all instances of PublisherAdView to AdManagerAdView

// Old
adView = new PublisherAdView(context);
adView.adUnitId = "google_placement_id";
adView.setAdSizes(AdSize.BANNER);
nimbusAdManager.makeRequest(context, NimbusRequest.forBannerAd(...),
    new NimbusDynamicPrice(new PublisherAdRequest.Builder(), builder -> { adView.loadAd(builder.build()); } ));

// New
adView = new AdManagerAdView(context);
adView.adUnitId = "google_placement_id";
adView.setAdSizes(AdSize.BANNER);
nimbusAdManager.makeRequest(context, NimbusRequest.forBannerAd(...),
    new NimbusDynamicPrice(new AdManagerAdRequest.Builder(), builder -> { adView.loadAd(builder.build()); } ));
  1. Change all instances of PublisherInterstitialAd to AdManagerInterstitialAd. AdManagerInterstitial changes how interstitial ads are requested from Google. See the below code sample for the new convention.

// Old
interstitial = new PublisherInterstitialAd(requireActivity());
interstitia.adUnitId = "google_placement_id";
interstitial.adListener = new AdListener() {
    @Override
    public void onAdLoaded() {
        interstitial.show();
    }

    @Override
    public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) { }
};
nimbusAdManager.makeRequest(context, NimbusRequest.forInterstitialAd(...),
    new NimbusDynamicPrice(new PublisherAdRequest.Builder(), builder -> { interstitial.loadAd(builder.build()); } ));

// New
nimbusAdManager.makeRequest(context, NimbusRequest.forInterstitialAd(...),
    new NimbusDynamicPrice(new AdManagerAdRequest.Builder(), builder -> {
    AdManagerInterstitialAd.load(context,"google_placement_id",builder.build(), 
    new AdManagerInterstitialAdLoadCallback() {
        @Override
        public void onAdLoaded(AdManagerInterstitialAd interstitial) {
            interstitial.show(activity);
        }

        @Override
        public void onAdFailedToLoad(LoadAdError loadAdError) { }
    });
}));

More information about the API changes in 20.0.0 can be found on the Ad Manager Migration page.

1.10.0

In this release we have migrated our packages from Bintray to S3 and no longer require credentials to access the packages.

Migration Steps

  1. Remove the following two repository definitions

 maven {
    url  "https://timehop.bintray.com/nimbus-android"
    credentials {
        username "$username" 
        password "$password" 
    }
}
maven {
    url "https://timehop.bintray.com/nimbus-openrtb"
    credentials {
        username "$username"
        password "$password"
    }
}
  1. Add the new S3 maven repository

maven {
    url = uri("https://adsbynimbus-public.s3.amazonaws.com/android/sdks")
    credentials {
        username = "*"
    }
    content {
        includeGroup("com.adsbynimbus.openrtb")
        includeGroup("com.adsbynimbus.android")
    }
}

The updated [Quickstart] guide also contains the new repository for reference.

Behavior Changes

  • Fixed keyword delimiter for MoPub Dynamic Price

1.9.1

Behavior Changes

  • Fixed issue where APS Demand was not included in outbound requests

1.9.0

New Features

  • Added a new NimbusMoPubAdapter to simplify MoPub integration.

  • Added new com.adsbynimbus.google.NimbusCustomEvent class to simplify Google integration.

  • Added Nimbus.setUsPrivacyString() to set US privacy on requests and demand integrations

Behavior Changes

  • Fixed crash in StaticAdController if ad destroyed while scrolling

  • Fixed issue where interstitial close button could be blocked by system UI

  • com.adsbynimbus.mopub.NimbusBlockingAd and com.adsbynimbus.mopub.NimbusInlineAd have been deprecated

  • com.adsbynimbus.google.NimbusCustomEventBanner and com.adsbynimbus.google.NimbusCustomEventInterstitial have been deprecated

  • Removed FragmentActivity version of NimbusAdManager.loadBlockingAd(). No code changes should be required.

1.8.0

New Features

  • Updated Google Ad Manager Nimbus Dynamic Price to pass through ad id for server use

1.7.3

Behavior Changes

  • Fixed issue where ad unit would not refresh if no bid

  • Updated NimbusDynamicPrice constructor to work with MoPub interstitial

1.7.2

Behavior Changes

  • Fixed crash when refreshing ads in background

  • Fixed issue where video playback continues when app backgrounded

1.7.1

Behavior Changes

  • Fixed issue where video would not stop playback when in background when blocking ad called with Activity

  • Fixed issue causing Mopub interstitial adapter to not call onInterstitialShown callback

1.7.0

New Features

  • Added Rewarded Video request helper methods

  • Added helper methods for showing the close button on a delay

  • Added FANAdRenderer.setLegacyBannerPlacementIds() to mark legacy 320_50 placements

Behavior Changes

  • showBlockingAd calls now how have a close button enabled by default

Breaking Changes

  • FANAdRenderer will now map a 320x50 NimbusAd to a BANNER_50 Facebook Ad. If your app uses the legacy BANNER_320_50 size, add the placement id to the FANAdRenderer using setLegacyBannerPlacementIds()

1.6.3

New Features

  • Added Nimbus Dynamic Price for Google

Breaking Changes

  • Mapping, LinearPriceGranularity, and LinearPriceMapping moved to com.adsbynimbus.lineitem package

1.6.2

New Features

  • Adds support for Android 11

  • Device connection type will fallback to link speed if permissions not granted

1.6.1

Behavior Changes

  • Fixed issue where showAd() with a refresh interval did not call onAdRendered()

1.6.0

New features

  • Added Nimbus Dynamic Price for MoPub

Behavior Changes

  • Fixed issue where MoPub interstitial adapter did not trigger impression/dismissed

  • MRAID exposure events will now throttle events under 100ms

1.5.2

Behavior Changes

  • Added showAd() override to allow for refreshing ad units

1.5.1

Behavior Changes

  • Fixed issue where APS parameters not appended to banner request

  • Updated IMA SDK to 3.19.4

1.5.0

New Features

  • Interstitial support

  • Support for Mopub BaseAd adapters for use with Mopubs SDK >= 5.13.0

Behavior Changes

  • Companion objects from Nimbus OpenRTB now removed by R8 (-16 method references, -1.8 kb)

Breaking Changes

  • NimbusCustomEvent classes for Mopub moved to mopub-customevent artifact for Mopub <= 5.12.1

dependencies {
    implementation "com.adsbynimbus.android:extension-mopub:2.1.0" // Requires Mopub >= 5.13.0 
    implementation "com.adsbynimbus.android:extension-mopub-customevent:2.1.0" // For Mopub <= 5.12.1
}

1.4.0

New Features

  • Companion Ad support

1.3.8

Behavior Changes

  • Facebook Ads now send AdEvent.LOADED event on succesful load

  • Fixed MRAID not loading when publisher key used to initialize is not lowercase

  • Static ads now load with the baseurl http://local.adsbynimbus.com

1.3.7

Behavior Changes

  • Device object no longer overwritten on request if previously set

1.3.6

Behavior Changes

  • Disabled encoding of Html characters in serialized NimbusRequest

1.3.5

Behavior changes

  • Fixed consumer proguard files to prevent obfuscation of responses

1.3.4

Behavior Changes

  • Facebook ads destroy properly if AdController destroyed during load.

1.3.3

Behavior Changes

  • FAN Renderer implementations no longer check to see if ad is interstitial before rendering; the renderer capability check is handled by the calling function to render the ad.

  • Fixed keyword clash when interacting with native impression objects in Java. When accessing use setNative() and getNative()

  • NimbusAdViewFragment no longer dismisses upon completion by default. To enable this behavior, call the setDismissOnComplete(true) on the instance of the fragment.

  • Updated Static loaded event to fire after controller is returned

1.3.2

Behavior Changes

  • Static Ads no longer fail when requesting non-existent local assets.

1.3.1

Behavior Changes

  • Added support for native OpenRTB impression requests.

  • Fixed crash on click through for ads instantiated with an application context

1.3.0

New Features

  • Added OpenRTB model documentation to SDK docs

  • OpenRTB models now support usage as Kotlin properties

  • Optimized code shrinking rules to library size on release builds

  • Added support for Facebook interstitial ad units. Please see note in Demand-Sdk-Integrations

Behavior Changes

  • MRAID no longer errors if creative adds unknown event listeners.

Breaking Changes

  • All OpenRTB models (App, User, etc) have moved to the com.adsbynimbus.openrtb.request namespace

  • OkHttpNimbusClient and ApsDemandProvider have moved to the com.adsbynimbus.request namespace

1.2.0

New Features

  • Added Google extension for integration with GAM

Behavior Changes

  • Views managed by an AdController will reattach visibility listeners if it's parent changes

1.1.6

New Features

  • Added ability to set a global request url for proxy servers

1.1.5

New Features

  • Added click tracking for Static and FAN ads

Behavior Changes

  • Session Id can now be get and set by calling Nimbus.(get|set)SessionId()

  • Video ads no longer automatically destroy on completion. Please call ensure destroy() is called when an ad should no longer be shown.

1.1.1

New Features

  • Added MoPub extension for integrating with MoPub.

1.1.0

New Features

  • Added Facebook extension for integrating with Facebook

1.0.0

BREAKING CHANGES

  • NimbusSDK class has been removed; initialization has been moved to the Nimbus class.

  • Nimbus.initialize(Context context, String publisherKey, String apiKey) must be called before the SDK can be used.

  • The api_key and url in the application manifest are no longer used and can be removed.

  • The app object passed to NimbusSDK.initialize() must now be set by calling NimbusAdManager.setApp().

  • Test mode is now enabled by using Nimbus.setTestMode(true);

  • BidRequest object has been renamed to NimbusRequest.

  • fillInterstitialAd() and fillBannerAd() have been renamed to forInterstitialAd() and forBannerAd()

  • Creating a new NimbusRequest object can be done using static forInterstitialAd() and forBannerAd() methods.

  • NimbusAdManager no longer requires a context.

  • NimbusAdManager.requestAd() has been renamed to showAd().

  • AdController has been moved to com.adsbynimbus.render package.

  • The AdController.render() function has been removed. Calls to showAd() will immediately render an ad.

  • AdEventListener has been relocated to com.adsbynimbus.render.AdEvent.Listener

  • StaticAdProvider and VideoAdProvider have been renamed to StaticAdRenderer and VideoAdRenderer

  • StaticAdProvider.WebViewProvider has been removed and should be removed from code.

  • ExoPlayerVideoPlayerProvider has been renamed to ExoPlayerVideoDelegate

  • The provider methods for setting a DataSource.Factory can be set by overriding ExoPlayerVideoDelegate.ExoPlayerFactoryDelegate and calling ExoPlayerVideoDelegate.setExoPlayerFactoryDelegate()

  • VideoAdRenderer delegate for customizing the IMA SDK settings can be set by calling VideoAdRenderer.setDelegate()

  • OkHttpRequestManager has been renamed to OkHttpNimbusClient.

  • OkHttpNimbusClient initializes with default client and gson and can be overridden by calling setOkHttpClient() and setGson()

  • ApsDemandProvider is initialized by calling ApsDemandProvider.initialize()

  • Removed dependencies on androidx.lifecycle

  • Renamed Nimbus.LogProvider class to Nimbus.Logger.

  • Loggers can be added and removed by calling Nimbus.addLogger() / Nimbus.removeLogger()

Behavior Changes

  • Render has been removed and ads will render automatically when calling showAd()

  • Video ads will now manage playback state automatically as they move on and off the screen.

  • The automatic playback of ads can be controlled by calling start() and stop() on an AdController. Stopping an ad will always stop playback.

  • Due to a simplification of NimbusRequest, if a video only or static only interstitial request is desired, create a new NimbusRequest using forInterstitialAd() and then set the corresponding object to null;

val req = NimbusRequest.forInterstitialAd("test_static")
req.request.imp[0].video = null

or

val req = NimbusRequest.forInterstitialAd("test_video")
req.request.imp[0].banner = null
  • To modify the price (or any other field) of a request, use the included builder methods

val req = NimbusRequest.forInterstitialAd("hybrid")
//Bid floor is a float that represents the floor in CPM
req.builder().impression().video().bidFloor(5.50)
or 
req.builder().impression().banner().bidFloor(2.50)

New Features

  • COPPA can now be set application wide by calling Nimbus.setCOPPA(true)

  • Renderers can be installed using Renderer.install()

  • The exoplayer and okhttp extensions install and configure themselves automatically if included in the build.

  • DemandProviders can be added by calling DemandProvider.install()

  • The BidRequest object can be modified in place by accessing the bid object on the NimbusRequest class.

0.1.6

Behavior Changes

  • Changed WebView to raster off screen always

  • Remove user interaction block on webview when static ad starts

0.1.3

New Features

  • Added ExoPlayerVideoPlayerProvider for using an SDK controlled ExoPlayer instance

0.1.2

New Features

  • Added WebViewProvider interface for configuring creation of WebViews for the StaticAdProvider

Breaking Changes from 0.1.0

  • Changed parameters of 2nd NimbusSdk.initialize() method. It is now

/*
* Initialize the Nimbus SDK
*
* @param app             - {@linkplain AndroidApp} application information
* @param requestProvider - {@linkplain RequestProvider} network request provider
* @param webViewProvider - {@linkplain WebViewProvider} base url for webview ads
* @param playerProvider  - {@linkplain VideoPlayerProvider} provider for custom IMA SDK video player
*/
static void initialize(AndroidApp app, RequestProvider requestProvider, WebViewProvider webViewProvider,
    VideoPlayerProvider playerProvider);

0.1.0

Breaking Changes from < 0.1.0

  • BidRequest object now must be instantiated; this can be done by calling

BidRequest.withContext(context)

Last updated