Android SDK - Changelog
Release history for the MDN11 Android SDK.
v3.2.10 BOM: 2026.09.06
2026-09-29
Breaking changes
Vendor.IRON_SOURCEremoved - the"ironsource"vendor is no longer part of theVendorenum. Replace anyVendor.IRON_SOURCEentry insetUserConsent()withVendor.UNITY_ADS.Vendor.UNITY_ADSis the only consent forwarded to LevelPlay; consent set under"ironsource"is ignored.
Added
- LevelPlay adapter support for LevelPlay SDK
9.6.0
Fixed
- Various internal fixes and improvements
Updated adapters
- LevelPlay adapter - added
9.0.0
v3.2.8 BOM: 2026.09.05
2026-09-24
Fixed
- Various internal fixes and improvements
v3.2.7 BOM: 2026.09.04
2026-09-22
Added
- Google Ad Manager (GAM) mediation - new supported ad network through the existing
googleadapter. Supports banner, MREC, interstitial, and rewarded formats AdInfo.extraParametersnow populated for GAM-served ads, keyed by"google_ad_manager"(mirrors the"google_admob"shape: response id, served ad source fields, andresponseExtras- mediation group/AB test names, GAM line item and creative ids)- GAM privacy handling modernized to match AdMob: GDPR/LGPD maps to
TFUA, non-GDPR jurisdictions respect theisChildDirectedtri-state viaTFCD(previously hardcoded to non-child-directed), anddoNotSellnow sets thegad_rdprestricted-data-processing signal Google's SDK reads on every request
Fixed
AdInfo.adNetworkNamereported the wrong value (or an empty string) for GAM-served ads in every callback - it's now sourced from the network that actually filled- Various fixes and improvements
Updated adapters
- A11 DSP adapter - updated to
1.0.5 - AppLovin MAX adapter - updated to
13.0.10 - Google (Admob) mediation adapter - updated to
24.0.11 - Nimbus adapter - updated to
2.0.8 - Google Ad Manager (GAM) mediation adapter - updated to
24.0.9
v3.2.6-hotfix1 BOM: 2026.09.03.1
2026-10-06
Hotfix release branched from v3.2.6 - applies only the changes below. Does not include the changes shipped in v3.2.7 through v3.2.10 (above).
Fixed
- Various fixes and improvements
Updated
- Renderer - updated to
0.9.7.1 - Google adapter - updated to
24.0.8.1
v3.2.6 BOM: 2026.09.03
2026-09-16
Breaking changes
- AdMob key in
extraParametersrenamed - the AdMob entry inAdInfo.extraParametersis now keyed by"google_admob"instead of"ad_mob". Update any code readingextraParameters["ad_mob"]to use"google_admob".
Fixed
- Various fixes and improvements
Updated
- Google mediation adapter - updated to
24.0.10
v3.2.5 BOM: 2026.09.02
2026-09-11
Added
- Report that an impression for an ad unit went to an ad source outside the MDN11 SDK via
notifyLossToExternal(price: Double? = null)on all supported ad formats.
v3.2.4 BOM: 2026.09.01
2026-09-03
Added
- Publishers can now observe which ad the SDK would show next: a new
bestLoadedAdListenerandbestLoadedAdsnapshot getter on each ad type AdInfonow carriesadUnitId,sdkPlacementId, andextraParameters- network-specific load-response data keyed by network (e.g."ad_mob"with the served ad source fields and the mediation group name fromresponseExtras)
Fixed
- An AdMob dashboard-configured banner auto-refresh now forwards a paid event to the publisher as revenue for every refresh, instead of only the first
Updated
- Google mediation adapter - updated to
24.0.9
v3.2.3 BOM: 2026.08.05
2026-08-28
Requirements
- Minimum supported Android API level lowered back to 23 (reverting the 3.2.2 change)
Added
- New
init()overload for hybrid initialization: the SDK starts immediately from a publisher-provided static config while a remote config is fetched fromhostUrlsin the background and applied when it arrives - Mediation SDKs are now initialized as soon as configuration is available instead of waiting for the first ad load, shortening time-to-first-ad
Fixed
- Fixed an issue where, in landscape orientation, banner width was limited to at most 70% of the available width
- Various internal fixes and improvements
Updated
- Renderer - updated to
0.9.7 - A11 DSP adapter - updated to
1.0.4 - AppLovin MAX adapter - updated to
13.0.9 - Google adapter - updated to
24.0.8 - Google mediation adapter - updated to
24.0.8 - Nimbus adapter - updated to
2.0.7
v3.2.2 BOM: 2026.08.03
2026-08-24
Requirements
- Minimum supported Android API level raised to 24
Fixed
- Fixed banner ads occasionally producing duplicate
adClickedcallbacks - Fixed banner, MREC, and native ads being torn down when the ad's own overlay closed, instead of the ad itself
- Various internal fixes and improvements
Updated
- AppLovin MAX adapter - updated to
13.0.8 - Google adapter - updated to
24.0.7 - Google mediation adapter - updated to
24.0.7 - Nimbus adapter - updated to
2.0.6
v3.2.1 BOM: 2026.08.02
2026-08-17
Fixed
- Improved adaptive banner sizing on the AppLovin MAX, Google AdMob, Nimbus GAM, and Pangle adapters
- Fixed a couple of rare crashes related to ad display and activity lifecycle handling
- Various internal fixes and improvements
Updated
- Renderer - updated to
0.9.6 - AppLovin MAX adapter - updated to
13.0.7 - Google adapter - updated to
24.0.6 - LevelPlay adapter - updated to
8.0.5 - Nimbus adapter - updated to
2.0.5 - Pangle adapter - updated to
7.0.5
v3.2.0 BOM: 2026.08.01
2026-08-04
Fixed
- Fixed a crash when
WorkManageris not initialized in the host app - Various internal fixes and improvements
v3.1.1 BOM: 2026.07.01
2026-07-29
New
- Unity 2022 support - the SDK now builds and runs on Unity 2022
- BOM (Bill of Materials) - new optional functionality: pin a single BOM version to keep all MDN11 SDK/adapter versions aligned, instead of managing each dependency version individually
Fixed
- Malformed or unknown ad-unit configuration entries are now safely skipped
- Various internal fixes and improvements
Updated adapters
- A11 DSP adapter - updated to
1.0.3 - AppLovin MAX adapter - updated to
13.0.6 - Google mediation adapter - updated to
24.0.5 - Nimbus adapter - updated to
2.0.4
v3.1.0
2026-07-22
Fixed
- Various internal fixes and improvements
v3.0.0
2026-07-17
New
- ACR (Ad Cache Retrieval) - improves how ads are selected and served
- Internal Telemetry - improved diagnostics and reliability
- AppLovin and Meta (previously Facebook) now auto-disable under
setChildDirected(true) - Improved adaptive banner sizing on AppLovin adapters
- JDK downgrade to 11, easing integration for apps still on older toolchains
Fixed
- Various internal fixes and improvements
Updated
- Smaato adapter removed - the adapter has been discontinued and
Vendor.SMAATOis no longer available in the privacy/consent Vendor enum BannerAd.adSize- now requires the main thread; the setter is annotated@MainThread
Updated adapters
- A11 DSP adapter - updated to
1.0.2 - AppLovin MAX adapter - updated to
13.0.5 - Google mediation adapter - updated to
24.0.5
v2.4.2
2026-06-20
Fixed
- Internal bug fixes and improvements
v2.4.1
2026-06-17
New
- A11 DSP support enabled.
Updated
- A11 DSP adapter - updated to
1.0.1 - Google mediation adapter - updated to
24.0.4 - AppLovin MAX adapter - updated to
13.0.4
v2.4.0
2026-06-16
Fixed
- Internal bug fixes and improvements
New
- AdMob mediation support.
Updated
- Google adapter - updated to
24.0.3 - Renderer - updated to
0.9.3
v2.3.0
2026-06-05
Maintenance release - no API changes.
v2.2.0
2026-04-17
New
- Custom ad parameters - all ad units (
BannerAd,MrecAd,InterstitialAd,RewardedAd) now expose acustomParameters: Map<String, Any>?property for passing network-specific key-value pairs to demand partners (e.g. custom targeting for Google Ad Manager, custom tokens for AppLovin) - Static config - new
A11.init(application, appKey, staticConfig: String)overload lets publishers supply the SDK configuration as a JSON string, skipping the remote config fetch; useful for offline environments or publishers without a backend config endpoint
Updated
- Nimbus adapter - updated to
2.0.2 - AppLovin MAX adapter - updated to
13.0.2 - Google adapter - updated to
24.0.2
v2.1.1
2026-03-27
Maintenance release - no API changes.
v2.1.0
2026-03-24
Breaking changes
init()requires a newhostUrlsargument - pass a list of host URLs for the SDK to retrieve its configurationsetTestAds()must be called beforeinit()- calling it afterwards has no effect- Ad retrieval methods renamed -
adBanner→getBannerAd,adInterstitial→getInterstitialAd,adRewarded→getRewardedAd - Dismiss callbacks renamed -
onInterstitialAdDismissed→onInterstitialAdClosed,onRewardedAdDismissed→onRewardedAdClosed AdInfosimplified -revenue,revenueCurrency,network,revenueSource,revenueSourcePrecision, andbiddingare replaced byadImpressionValue,adNetworkName, andsdkAdapterBannerAd.viewrenamed toBannerAd.adViewBannerAd.hide()removed - control banner visibility through the activity lifecycle or by removing the view from the hierarchy
New
- MREC ad format - available via
A11.getMrecAd(adUnitId) - Reward earned callback -
onRewardedAdRewardEarned(adInfo)fires when a reward is granted, independently of the ad close event
Fixed
- Privacy - the child-directed (
TFUA) flag is now only sent whenisChildDirectedis explicitly set
v2.0.0
2026-03-03
- New:
AdInfoadded to all listener callbacks - carries impression-level revenue, network, and attribution data - New:
setTestAds(enabled)- dedicated method for enabling test creatives, independent from development mode logging - New: MREC ad format (
A11.adMrec(adUnitId)) - New: Nimbus adapter available
- Breaking:
onInterstitialAdDismissedandonRewardedAdDismissednow receiveadInfo: AdInfoinstead ofadProviderId: String? - Privacy signals are now non-nullable
- Fixed revenue price parsing for impression data
- SDK also distributed as a fused / fat AAR
v1.0.0
2026-02-16
- Initial release
- Ad formats: Banner, Interstitial, Rewarded
- Waterfall, bidding, and hybrid mediation support
- Privacy API: GDPR per-vendor consent, CCPA do-not-sell, COPPA child-directed
- Publisher signals: paid user, user ID, installed apps
- 40+ demand partners