Nimbus Android SDK

Changelog

1.11.6

Behavior Changes

1.11.5

Behavior Changes

1.11.4

New Features

Behavior Changes

1.11.3

Behavior Changes

Dependency Updates

1.11.2

New features

Behavior Changes

Breaking Changes

1.11.1

New Features

Behavior Changes

1.11.0

Behavior Changes

1.10.11

Behavior Changes

1.10.10

Behavior Changes

1.10.9

Dependency Updates

1.10.8

New Features

Behavior Changes

1.10.7

Behavior Changes

1.10.6

1.10.5

Behavior Changes

1.10.4

New Features

Behavior Changes

1.10.3

Behavior Changes

1.10.2

Behavior Changes

1.10.1

Behavior Changes

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

1.9.1

Behavior Changes

1.9.0

New Features

Behavior Changes

1.8.0

New Features

1.7.3

Behavior Changes

1.7.2

Behavior Changes

1.7.1

Behavior Changes

1.7.0

New Features

Behavior Changes

Breaking Changes

1.6.3

New Features

Breaking Changes

1.6.2

New Features

1.6.1

Behavior Changes

1.6.0

New features

Behavior Changes

1.5.2

Behavior Changes

1.5.1

Behavior Changes

1.5.0

New Features

Behavior Changes

Breaking Changes

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

1.4.0

New Features

1.3.8

Behavior Changes

1.3.7

Behavior Changes

1.3.6

Behavior Changes

1.3.5

Behavior changes

1.3.4

Behavior Changes

1.3.3

Behavior Changes

1.3.2

Behavior Changes

1.3.1

Behavior Changes

1.3.0

New Features

Behavior Changes

Breaking Changes

1.2.0

New Features

Behavior Changes

1.1.6

New Features

1.1.5

New Features

Behavior Changes

1.1.1

New Features

1.1.0

New Features

1.0.0

BREAKING CHANGES

Behavior Changes

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
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

0.1.6

Behavior Changes

0.1.3

New Features

0.1.2

New Features

Breaking Changes from 0.1.0

/*
* 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.withContext(context)