Changelog
Android SDK release history
BidMachine adapter 3.8.0.0 - 2026-10-26
Added
- BidMachine Android Beta - Install
io.cloudx:adapter-bidmachine:3.8.0.0for Banner, MREC, Interstitial, and Rewarded with BidMachine SDK 3.8.0. Requires CloudX Android SDK 4.9.0+; see setup.
[4.12.0] - 2026-10-26
Added
- BidMachine Support - Core support for the BidMachine adapter. Bid tokens are now collected per ad format, so a token gathered for one format is never used for another.
Fixed
- Startup Crash - The SDK’s startup warm-up no longer crashes your app at launch when a dependency it uses is missing or incompatible.
- Native Impressions - A native ad that is rendered again now counts one impression instead of one per render.
[4.11.0] - 2026-10-19
Added
- Expired Ad Reload - An interstitial, rewarded or app-open ad that expires before it is shown now reloads automatically on the same object and stays ready until the replacement arrives. Set
expirationListenerto receiveonExpiredAdReloadedwith the new ad.
Changed
- Fullscreen Ad Readiness - Interstitial, rewarded and app-open
isAdReady()now stays true from load until the ad is shown or destroyed, and no longer checks with the ad network. An ad the network has dropped fails atshow()withonAdDisplayFailed; load a new ad. - Initialization Retries - Temporary network failures during initialization no longer call
onInitializationFailed. The SDK keeps retrying and callsonInitializedonce it connects. The failure callback now covers only errors that do not resolve on their own, such as an invalid app key. - Offline Initialization After Upgrades - Returning users now initialize from their saved configuration on the first launch after an SDK upgrade, including when offline.
- Preloaded Ads in the Background - Ads the SDK has preloaded for an ad unit are no longer discarded each time your app moves to the background.
Fixed
- Background
destroy()Crash - Callingdestroy()on an ad from a background thread no longer crashes your app. Ad network cleanup now always runs on the main thread. - Show Before Ad Setup - An interstitial or rewarded
show()made just after initialization, before the ad is set up, now fails withonAdDisplayFailedandCloudXErrorCode.AD_NOT_READYinstead of doing nothing. - Banner Auto-Refresh Before Initialization - A
stopAutoRefresh()call made before initialization completes is now kept, so the banner or MREC no longer starts refreshing once initialization succeeds.
[4.10.0] - 2026-10-13
Added
- Reward at Grant -
onUserRewardedcan now fire as soon as the ad network grants the reward, instead of when the ad closes. This is a server-configured setting and works with rewarded adapter releases that support it.
Fixed
- Native Ad Renderer Crash - CloudX-rendered native ads no longer crash your app when Android’s WebView renderer process stops. The ad hides its main image and keeps its text, clicks and impression tracking.
- Network Lookup Crash - The SDK no longer crashes your app on devices where reading the active network fails inside Android itself. It now treats that failure as a normal network error and continues.
[4.9.0] - 2026-10-07
Added
- Ad Quality Gate - Register a
CloudXAdQualityGatewithCloudX.setAdQualityGate()to screen each loaded ad beforeonAdLoaded. A blocked ad is discarded and the SDK tries the next bid. A gate that times out or throws lets the ad through. - Ad Size -
CloudXAd.adSizereports the size of a loaded ad in dp, such as 320x50 for banners and 300x250 for MRECs. Custom implementations ofCloudXAdmust be rebuilt, and Java implementations must also addgetAdSize(). - Multiple End Cards - CloudX-rendered fullscreen video ads can now show more than two end cards when the creative provides them.
Changed
- Mediation Debugger -
CloudX.showMediationDebugger(context)now opens only after SDK initialization completes and returnsfalsebefore that. Call it after initialization, and recompile code built against 4.8.x. - Ad Expiry - Fullscreen and native ads now expire when their bid expires, or 50 minutes after the bid when it sets no expiry. An expired fullscreen ad reports
isAdReady()as false and failsshow()withCloudXErrorCode.ADAPTER_AD_EXPIRED; load a new ad. - Test-Mode Revenue - Test-mode sessions now deliver revenue callbacks again, including to global listeners and MMP connectors, with
revenueset to 0. Use them to check your revenue wiring on test devices. - Banner Failures After Load - A banner or MREC that fails after it loaded now reports
onAdLoadFailed. While auto-refresh is stopped, the SDK no longer reloads on its own; callload()to request a new ad. - Startup Performance - At process start the SDK now only schedules its warm-up, and runs WebView and network warm-up after the app first comes to the foreground. Background processes such as FCM and WorkManager skip it, which reduces ANR risk.
Fixed
- Native Ads on Dark Themes - CloudX native ads in banner and MREC slots now take their text colors from your Activity theme, so titles and body text stay readable on dark themes.
- HTML Ad Layout - CloudX-rendered HTML ads with absolutely positioned content no longer appear shifted or clipped. Creatives smaller than their slot now align to the top-left corner instead of the center.
- Mediation Debugger Consent Detection - The Mediation Debugger now detects CMPs that store consent only in GPP and lists the frameworks it found instead of reporting no CMP.
[4.8.2] - 2026-09-29
Fixed
- Reload After Fullscreen Close - A
load()call made while an interstitial or rewarded ad is closing now completes with a load callback. Apps that reload fromonAdHiddenno longer stop loading that ad unit after a click-out and return.
[4.8.1] - 2026-09-22
Fixed
- Initialization on Filtered Networks - SDK initialization now recovers when a DNS filter blocks the CloudX initialization host.
[4.8.0] - 2026-09-21
Added
- Ad Unit Configuration After Initialization -
CloudXSdkConfiguration.adUnitConfigurationsmaps each ad unit ID to itsisOrchestratorEnabledstate once initialization completes. Custom implementations ofCloudXSdkConfigurationmust implement this new member. - Mediation Debugger - Open an in-app integration report with
CloudX.showMediationDebugger(context). It shows adapter and ad unit status, privacy state, and test-ad load and show controls, and can share a plain-text report with CloudX support. - Creative Identifier -
CloudXAd.creativeIdexposes the creative id reported by the demand source, so you can identify and block problem creatives. Null when the source does not send one, including Meta, Digital Turbine, and Unity Ads today. - Mediator Identity -
CloudXAd.mediatorNameandmediatorAdUnitIdreport which mediator and mediator ad unit served an ad. CloudX-won ads reportcloudxand their CloudX ad unit id. - Arbiter Bid Metadata -
CloudXArbiterBid.cloudX(ad, extras)accepts optional metadata when creating a CloudX bid candidate for third-party arbitration.
Changed
- Realized Revenue - When an ad source reports impression-level revenue, such as the AdMob and GAM estimated bidders and AppLovin MAX,
CloudXAd.revenueinonAdRevenuePaidnow carries the realized amount andrevenuePrecisionits precision. CloudX bids still report the bid-time estimate. - Connector Revenue Forwarding - MMP connectors and global ad revenue listeners no longer receive CloudX wins from bidders that already report impression revenue to your MMP, such as AppLovin MAX and the AdMob and GAM estimated bidders. Per-ad revenue callbacks are unchanged.
- Vungle Error Reporting - Creative-download failures now report
CloudXErrorCode.ADAPTER_INTERNAL_ERRORwith storage/network guidance instead ofADAPTER_INVALID_LOAD_STATE, and HTTP transport failures now reportADAPTER_SERVER_ERROR. Update any branching on error code 602. - Kotlin Requirement - The SDK is now compiled with Kotlin 2.2. Apps must build with Kotlin 2.1 or newer.
Fixed
- Fullscreen Ads in the App Task - CloudX-rendered interstitial and rewarded ads now open in your app’s own task. Apps whose launcher Activity sets
android:taskAffinity="", the Flutter template default, no longer end up with a stuck ad and blocked later loads after returning from Home. - AppLovin Initialization Recovery - CloudX now completes initialization when the app starts AppLovin MAX first, instead of staying pending after MAX becomes ready.
[4.7.0] - 2026-09-09
Added
- MREC Video - CloudX-rendered MREC ads now support inline VAST video. Playback starts muted and pauses when the ad moves off-screen.
- Fullscreen Preloading - When enabled in CloudX configuration, showing a fullscreen ad can preload the next ad for the same ad unit.
- BIGO Ads Adapter Availability - The BIGO Ads Android adapter is now available as
io.cloudx:adapter-bigo:6.0.1.0, supporting Banner, MREC, Interstitial, and Rewarded ad formats on CloudX Android SDK 4.7.0 or newer.
Changed
- Inline Video Audio - HTML/MRAID video in CloudX-rendered banner and MREC ads now starts muted. Users can unmute through the video controls.
- Concurrent Loads - Each ad unit allows two simultaneous publisher loads by default, with a configurable limit. Excess loads fail with
CloudXErrorCode.LOAD_REJECTED_CONCURRENCY; wait for a pending load to finish before retrying. - Load During Display - Calling
load()while a fullscreen ad is showing queues one request until dismissal. Repeated calls do not add more queued requests. - Test-Mode Revenue - Test sessions no longer deliver per-ad or global revenue callbacks, including connector notifications. Impression and reward events remain available.
- Initialization Performance - Reduced main-thread work during SDK initialization and improved preparation for the first ad request.
Fixed
- First-Load Reliability - Improved ad loading while networks initialize and reduced repeated preparation work before ad requests.
- Native Ad Rendering - Native loads now fail when click and impression registration cannot complete, instead of returning an unusable ad.
- Banner Refresh Control - Disabling auto-refresh in CloudX configuration now remains effective after an app calls
startAutoRefresh(). - Device Detection - Fixed physical Android devices being incorrectly identified as emulators.
[4.6.0] - 2026-08-23
Added
- Google Ad Manager Prebid Integration - Now available as
io.cloudx:integration-gam-prebid:1.0.0, letting CloudX demand compete as prebid line items in your Google Ad Manager auction for banner, MREC, interstitial, rewarded, and native. Requires CloudX Android SDK 4.6.0.
Changed
- First-Auction Performance - Reduced network setup before the first auction by starting the CloudX connection during SDK initialization.
[4.5.2] - 2026-08-18
Changed
- Play SDK Console Verification - The published Android SDK artifact now includes the ownership metadata required for verification in Google Play SDK Console.
[4.5.1] - 2026-08-18
Fixed
- Vertical Banner Reliability - Rotated banners now report correct viewability exposure and MRAID positions, enabling reliable left- and right-side vertical banner placements in wrapper integrations.
- VAST Impression Tracking - VAST tracker URLs up to 10 KB are now delivered, preventing valid impression beacons with long query parameters from being dropped.
- Native Video in Banner Slots - Video native ads that cannot render in 320x50 slots are now rejected instead of producing invisible impressions, allowing fallback demand to continue.
[4.5.0] - 2026-08-10
Added
- AdMob and Google Ad Manager Demand via TPA - Adds AdMob and Google Ad Manager demand to third-party arbitration with
CloudXArbiterBid.adMob(adUnitId)andCloudXArbiterBid.gam(adUnitId). Bids are priced automatically from realized revenue, or manually viamanualRevenuePerImpressionUSD. - Google Ad Manager in Google Adapters - Existing Google adapters can now serve Google Ad Manager demand alongside AdMob, selected per placement through CloudX configuration with no code changes.
- Native Test Ads in Banner and MREC - CloudX test ads can now render native creatives in banner (320x50) and MREC (300x250) placements.
Fixed
- Fullscreen Callback Reliability - Fixed a race where showing an interstitial or rewarded ad could replay a stale error, and ad network callbacks arriving after an ad is destroyed are now handled safely.
- Digital Turbine Native Impressions - Digital Turbine native ads now fire impressions and revenue callbacks. Requires the updated Digital Turbine adapter.
[4.4.0] - 2026-07-28
Added
- Publisher Revenue Platforms - Publisher-reported revenue can now use
CloudXRevenuePlatform.INMOBI,CloudXRevenuePlatform.TOPON, orCloudXRevenuePlatform.custom(name)in addition to AdMob, so apps can forward impression-level revenue from more mediation and reporting platforms.
Changed
- Revenue Amount Units -
CloudXRevenueData.builder(platform, revenue, adFormat)now takesrevenueas aDoublein currency units, andCloudXRevenueData.revenueis now aDouble. For AdMobAdValue.valueMicros, divide by1_000_000.0before creatingCloudXRevenueData.
Fixed
- Telephony Permission Guard - The SDK now checks phone-state permission before reading the telephony network type.
- VAST Tracker Compatibility - Fixed the VAST event tracker to avoid an API 24-only collection call when running on the SDK’s minimum supported Android version.
[4.3.0] - 2026-07-21
Added
- AppsFlyer Ad Revenue Connector - Added a managed AppsFlyer connector and a global
CloudX.addAdRevenueListener()API to forward CloudX ad revenue to AppsFlyer or any MMP with one dependency and no glue code. The listener fires once per CloudX-won impression across all ad formats.
Changed
- Google Waterfall Prefetch Expiry - Prefetched Google Waterfall fills now expire on per-format time limits (4 hours for App Open, 1 hour for other formats) and refill proactively, so stale cached fills no longer render blank or fail at show.
- Duplicate load() Handling - Repeated
load()calls while a load is in flight are now handled safely and consistently across all ad formats. Previously, rapid duplicate banner and MREC loads could cancel the in-flight auction and starve the app of fills. - Creative Reporting - Creative identifiers are now included in impression and revenue telemetry across native and Mintegral-backed placements for more accurate creative-level reporting.
Fixed
- Pre-Init Load Callbacks - Banner and MREC
load()calls made before initialization completes are now queued and always produce a callback. Previously such calls could be dropped silently, and a failed initialization is now reported as a load failure instead of hanging with no callback. - Native Impression Revenue - Fixed a timing gap where a native impression fired before the SDK’s observer subscribed could be lost, so the publisher’s revenue callback did not fire. Affected synchronous-impression native paths such as Moloco standalone native.
- Optimistic Banner Leak - Fixed an adapter view leak when an optimistically loaded banner is destroyed before its background creative load dispatches.
[4.2.0] - 2026-07-07
Added
- App Open Ads - Added App Open ad support through
CloudX.createAppOpen()andCloudXAdFormat.APP_OPENfor app foreground placements. - Publisher Revenue Reporting - Added
CloudX.reportRevenueData()andCloudXRevenueDataso publishers can forward AdMob impression-level revenue events into CloudX reporting. - Trusted Arbiter Custom Bids - Added mediator-agnostic custom bid inputs with
CloudXArbiterBid.custom(),CloudXArbiterPlatform.CUSTOM, andCloudXArbiterPrecision. - Expanded Google Waterfall Support - Added Google Waterfall Interstitial, Rewarded, Native, and App Open support.
- Banner Auto-Refresh Configuration - Added banner and MREC support for server-disabled auto-refresh settings.
- TaurusX Adapter Availability - The TaurusX Android adapter is now available as
io.cloudx:adapter-taurusx:1.18.3.0, supporting Banner, MREC, Interstitial, Rewarded, and Native ad formats on CloudX Android SDK 4.2.0 or newer.
Changed
- Adapter Format Metadata - Adapters now report supported ad formats to CloudX, helping server-provisioned configuration match demand to compatible adapters.
- Google Waterfall Reporting - Improved Google Waterfall response identifiers and realized-price handling for more accurate waterfall diagnostics and reporting.
- Renderer Reliability - Fullscreen CloudX renderer behavior now better respects device auto-rotate settings and rewarded close/reward eligibility.
- Fullscreen Network Names - Fullscreen ad callbacks now report network names consistently with the raw adapter code used by other ad formats.
- Initialization Resilience - Improved SDK recovery from stale or poisoned OS DNS resolver state during initialization and network calls.
Fixed
- Moloco Native Banner Impressions - Fixed Moloco Native Banner and Native MREC impression timing so impressions are handled after the ad view is attached to the CloudX ad view container.
- Banner Render Timing - Improved banner and MREC load/render timing so adapter render latency is tracked separately from the initial load signal.
- Google Waterfall Prefetch Reliability - Improved Google Waterfall prefetch callback handling and impression reporting so stale loader callbacks cannot affect current fills.
- Trusted Arbiter PubMatic Comparison - Fixed fallback arbitration so PubMatic OpenWrap CPM prices are normalized before comparison with per-impression revenue bids.
[4.1.7] - 2026-06-25
Changed
- Faster SDK Initialization - Reduced initialization latency by applying privacy consent to ad network adapters in parallel and moving non-critical startup work off the initialization path.
[4.1.6] - 2026-06-25
Changed
- Quicker Initialization - The SDK can reuse cached configuration on warmed sessions, reducing initialization latency on subsequent launches.
- Trusted Arbiter Revenue Accuracy - Normalized fallback revenue units used in arbitration so CloudX bid comparisons and revenue reporting are more accurate.
[4.1.5] - 2026-06-19
Added
- MobileFuse Adapter Availability - The MobileFuse Android adapter is now available as
io.cloudx:adapter-mobilefuse:1.11.0.0, supporting Banner, MREC, Interstitial, Rewarded, and Native ad formats.
Changed
- Meta Native-in-Banner Routing - Meta native banner demand now uses Meta’s native-banner rendering path only for banner-sized placements; native MREC placements use the regular native ad path.
- Vungle Native Ad Support - Added support for Vungle native, native banner, and native MREC ad formats.
[4.1.4] - 2026-06-18
Added
- Pangle Adapter Readiness - Added the SDK-side metadata needed for the independently released Pangle Android adapter. Publishers can integrate Pangle demand with
io.cloudx:adapter-pangle:8.1.0.3.0on CloudX Android SDK 4.1.4 or newer. - CloudX Fullscreen HTML Rendering - Added SDK support for CloudX-served MRAID fullscreen creatives in interstitial and rewarded placements, including OMID viewability measurement for CloudX HTML ads.
Changed
- SDK Startup Performance - Reduced SDK initialization and ad-request stalls caused by device signal collection.
- MRAID Fullscreen Reliability - Improved fullscreen CloudX HTML ads with load watchdogs, a loading indicator, larger close hit targets,
mraid.unload()support, more reliable hide callbacks, and safer reward handling when rewarded ads are closed early. - Native Ad Rendering - Improved native image handling for local file-backed assets and prevented stale async image loads from overwriting reused native ad views.
- Telemetry Timing Accuracy - SDK telemetry durations now use monotonic app-uptime timing for more reliable diagnostics.
[4.1.3] - 2026-05-31
Changed
- Resilient Adapter Initialization - A slow ad network adapter no longer blocks SDK initialization. Each adapter gets a soft init timeout; the SDK finishes initializing while it continues starting up in the background. Not-ready adapters are held out of auctions until they finish.
[4.1.2] - 2026-05-28
Added
- Native-in-Banner Rendering - Native ad demand from supported adapters, including Meta, Moloco, and Vungle, can now serve into standard banner and MREC slots through the existing banner public API.
Changed
- Server-Driven Always-Reward Mode - Rewarded ad adapters now honor a
shouldAlwaysRewardUserflag configured per-line-item in the dashboard. The SDK fires the reward callback even for networks that don’t always deliver a reward signal. No integration change required.
[4.1.1] - 2026-05-26
Added
- Digital Turbine Adapter Support - Added SDK support for the Digital Turbine Android adapter. Adapter artifacts continue to be released independently.
- Expanded Network Mappings - Added SDK network mappings for BidMachine, Chartboost, Digital Turbine, LoopMe, MobileFuse, Pangle, PubMatic, and Yandex so compatible adapters can be released independently as they become available.
Changed
- Digital Turbine Adapter Metadata - Updated Digital Turbine adapter metadata and error reporting compatibility for CloudX SDK 4.1.1.
- Google Waterfall Adapter - Updated Google Waterfall support to Google Mobile Ads SDK 25.1.0 and added fallback banner/MREC impression reporting when AdMob impression-level revenue callbacks are unavailable.
[4.1.0] - 2026-05-22
Added
- Trusted Arbiter - Added support for comparing CloudX bids with supported third-party bids from Unity LevelPlay and PubMatic, and selecting the winning platform through CloudX arbitration.
- LevelPlay Impression-Level Revenue Data - Added impression-level revenue tracking via Unity LevelPlay integration, alongside the existing AppLovin ILRD support.
- Ad Value Accessors - Added
CloudXAd.adValuesfor SDK-provided ad metadata. - Expanded Network Support - Added SDK support for Google Waterfall, Moloco, and Verve adapters. Adapter artifacts continue to be released independently.
- MRAID 3.0 Ad View Rendering - Added CloudX renderer support for MRAID 3.0 banner and MREC creatives.
[4.0.0] - 2026-04-27
Breaking Changes
- Adapter Version Compatibility - Adapters now declare their minimum CloudX SDK version. The SDK skips incompatible adapters during initialization.
Added
- Independent Adapter Versions - CloudX adapters are now released independently from the core SDK, allowing compatible adapter updates to ship on their own release schedule.
Changed
- Publisher Release Builds - Improved release-build compatibility by preserving the CloudX runtime classes required for SDK initialization and adapter loading.
Fixed
- Release Build Initialization - Fixed an issue that could prevent SDK initialization in minified publisher builds.
[3.2.0] - 2026-04-24
Added
- Magnite Adapter - Added Magnite adapter support for banner, interstitial, and rewarded ads.
- Per-Request Bid Floor Overrides - Added APIs for per-request bid floor overrides so publishers can send request-scoped floor controls through the SDK bid pipeline.
Changed
- Improved banner and MREC lifecycle handling across adapters for more consistent rendering, refresh, and cleanup behavior.
Fixed
- Improved SDK resilience when optional adapter or network SDK dependencies are missing at runtime.
- Fixed Vungle banner load errors so invalid banner load states are surfaced through SDK error callbacks.
[3.1.0] - 2026-04-17
Added
- Native Ads - Added native ad support with
CloudX.createNativeAdLoader(),CloudXNativeAdLoader,CloudXNativeAd,CloudXNativeAdListener, andCloudXNativeLoaderConfiguration, backed by the Meta adapter.
Changed
- Improved adapter initialization, privacy forwarding, and ad load/show reliability across supported networks.
- Reduced startup and initialization work on the main thread to improve app launch stability and lower ANR risk.
- Unity 2022 Meta Compatibility -
adapter-metanow brings in Meta Audience Network6.20.0transitively by default for Unity 2022 compatibility. If your integration uses native ads, explicitly add Meta Audience Network6.21.0or newer in your app:dependencies { implementation("io.cloudx:adapter-meta:3.1.0") implementation("com.facebook.android:audience-network-sdk:6.21.0") }
Fixed
- Improved SDK resilience for missing network SDK dependencies and adapter load failures.
[3.0.0] - 2026-04-06
Breaking Changes
CloudX.initialize()now requires an AndroidContext, and the public ad creation APIs now requireContextas well:createBanner(),createMREC(),createInterstitial(), andcreateRewarded().
Changed
- Removed automatic process-start initialization; apps now provide
Contextexplicitly through SDK initialization and ad creation APIs. - Reduced SDK work before
CloudX.initialize()is called, lowering main-thread startup overhead and ANR risk.
[2.2.7] - 2026-04-02
Fixed
- Reduced startup ANR risk for apps that include the SDK before calling
CloudX.initialize().
[2.2.6] - 2026-04-01
Changed
- Improved ad lifecycle, revenue, and crash reporting reliability across SDK and network-adapter events.
- Improved banner, interstitial, and rewarded event attribution so placement and custom data are tracked consistently.
Fixed
- Improved error reporting for bid response parsing, adapter initialization, and ad load failure paths.
[2.2.5] - 2026-03-30
Added
- Added
CloudXErrorCode.LOAD_NOT_ALLOWED_WHILE_SHOWINGfor fullscreenload()calls made while the same ad instance is actively showing. - Added fullscreen adapter readiness checks across interstitial and rewarded adapters.
Changed
- Improved fullscreen ad readiness handling so expired or invalidated network ads are no longer reported as ready.
- Improved fullscreen ad reuse behavior to avoid serving stale cached ads.
Fixed
- Fixed fullscreen
load()being accepted during an active show; it now fails immediately withonAdLoadFailed(..., LOAD_NOT_ALLOWED_WHILE_SHOWING). - Fixed stale fullscreen ads being reported as ready after the network SDK had already invalidated or expired the underlying ad object.
- Fixed Mintegral GDPR consent propagation for CMP-managed integrations.
[2.2.4] - 2026-03-26
Added
- Server-Driven Location Sharing - Added server-controlled location sharing with publisher opt-out support and reduced coordinate precision.
- Added server-controlled remote log collection to help diagnose publisher integration issues.
- Added content-language targeting support in bid requests.
- Added more granular no-fill reasons in SDK error messages.
Changed
- Improved SDK diagnostic and crash reporting reliability for ad lifecycle events.
Fixed
- Fixed release-build rules so CloudX adapters are preserved correctly in minified apps.
- Fixed Mintegral adapter crash on Android API 23.
[2.2.3] - 2026-03-20
Added
- Added server-controlled diagnostic log collection for integration support.
Changed
- Renamed the Unity adapter artifact to
adapter-unityadsand aligned Unity Ads naming across SDK setup and documentation.
Fixed
- Fixed Unity Ads network name casing to match server bidder configuration.
[2.2.2] - 2026-03-17
Added
- Improved SDK initialization diagnostics by reporting adapter metadata.
Fixed
- Fixed InMobi bid token retrieval by ensuring token collection runs on the main thread.
[2.2.1] - 2026-03-11
Changed
- Hardened the Mintegral adapter against null values and ad load exceptions across supported ad formats.
- Bumped Mintegral SDK from
17.0.61to17.0.91.
Fixed
- Fixed adapter bid extras collection so an exception from one adapter no longer prevents extras from subsequent adapters being included.
[2.2.0] - 2026-03-10
Added
- Impression-Level Revenue Data - Added impression-level revenue tracking with CloudX auction correlation via AppLovin integration.
- Ad Click Tracking - Added click notification support when users tap ads.
- Manual Privacy API - Added
CloudX.setHasUserConsent()andCloudX.setDoNotSell()with adapter privacy forwarding. - Kotlin Suspend Initialization - Added a suspend
CloudX.initialize(context, config)overload for Kotlin callers. - Device-Level Reporting - Added Android ID based device-level reporting for DAU/MAU analytics when available.
- Adapter Error Diagnostics - Added adapter error reporting across banner, interstitial, and rewarded ads.
- Network SDK Crash Reporting - Added crash reporting for crashes originating from supported ad network SDKs.
- Creative Type Support - Added creative type support in the CloudX renderer.
Changed
- Moved the CloudX renderer into the core SDK, so publishers no longer need a separate CloudX renderer adapter module.
- Removed
appcompatandwebkittransitive dependencies from the SDK to reduce dependency surface area and APK size. - Improved reporting delivery reliability by retaining events for retry on transient send failures.
- Bumped Vungle SDK from
7.6.1to7.7.1. - Bumped InMobi SDK from
11.1.0to11.1.1, including an upstreamBroadcastReceiverleak fix.
Fixed
- Fixed location data handling for geo-based targeting and reporting.
- Fixed incorrect
INVALID_APP_KEYerrors for non-config HTTP responses. - Improved retry classification for transient network and server errors.
[2.0.1] - 2026-03-04
Changed
- Improved Unity 2022.3 compatibility by removing database runtime dependencies from SDK event persistence.
- Downgraded Meta Audience Network SDK from
6.21.0to6.20.0to avoid Unity 2022.3 build incompatibilities.
Fixed
- Fixed a concurrency issue that could occur during impression tracking.
- Fixed Meta rewarded ad handling for apps using
singleTasklaunch mode.
[2.0.0] - 2026-02-04
This release replaces placement names with Ad Unit IDs from the CloudX dashboard. Update your createBanner(), createMREC(), createInterstitial(), and createRewarded() calls to use the ad unit ID instead of a placement name.
Added
- Rewarded Ads - Added rewarded ads with
CloudX.createRewarded(),CloudXRewardedAd,CloudXRewardedListener, andCloudXReward. - InMobi Adapter - Added InMobi adapter support for banner, MREC, interstitial, and rewarded ads.
- Vungle Rewarded Ads - Added rewarded ad support to the Vungle adapter.
- Added
CloudX.isInitialized()to check SDK initialization state. - Added
CloudX.getVersion()to get the SDK version string. - Added
setPlacement()andsetCustomData()onCloudXAdViewfor tracking. - Added
show(activity, placement, customData)overloads on fullscreen ads for tracking. - Added
CloudXSdkConfigurationin theonInitialized()callback. - Added
CloudXAd.networkPlacementfor network-specific placement IDs. - Added new error codes:
NETWORK_NO_CONNECTION,AD_ALREADY_SHOWING,DONT_KEEP_ACTIVITIES_ENABLED,AD_NOT_READY, andINVALID_APP_KEY.
Breaking Changes
- Bumped
minSdkfrom 21 to 23. - Replaced
CloudXInitializationParamswithCloudXInitializationConfiguration. - Renamed
placementNameparameters toadUnitIdincreateBanner(),createMREC(),createInterstitial(), andcreateRewarded(). - Renamed
CloudXAd.placementIdtoadUnitId. - Removed
CloudXAd.placementName. - Renamed
CloudXAd.bidderNametonetworkName. - Renamed
CloudXErrorCode.INVALID_PLACEMENTtoINVALID_AD_UNIT. - Changed
onAdLoadFailed(placementName, cloudXError)toonAdLoadFailed(adUnitId, cloudXError). - Changed
onAdDisplayFailed(cloudXError)toonAdDisplayFailed(cloudXAd, cloudXError). - Changed
onInitialized()toonInitialized(configuration: CloudXSdkConfiguration). - Removed the
testModeinitialization parameter; test mode is now server-controlled. - Changed
show()toshow(activity)for interstitial and rewarded ads.
Changed
- Updated Meta Audience Network SDK from
6.17.0to6.21.0.
Fixed
- Fixed ad reload behavior in
onAdHiddenandonAdDisplayFailedcallbacks. - Ensured all
load()andshow()callbacks are delivered on the UI thread.
[0.12.1] - 2025-12-23
Fixed
- Fixed an ANR risk in the Meta adapter caused by bid token collection on the main thread.
[0.12.0] - 2025-12-14
Breaking Changes
- Removed
CloudXError.effectiveMessage; usemessagedirectly instead. - Removed
setLoggingEnabled(); usesetMinLogLevel(CloudXLogLevel.NONE)to disable logging. - Removed
CloudXPrivacy; privacy is now handled automatically through standard privacy signals.
Changed
- Enhanced GDPR support with GPP Section 2 parsing and vendor consent checking.
- Simplified TCF purpose checks to only require purposes 1 and 2.
- Added CCPA support via GPP with legacy US Privacy fallback.
- Removed COPPA handling.
- Added
CloudXLogLevel.NONEfor disabling logs.
Fixed
- Fixed geo API failure handling during initialization.
[0.11.1] - 2025-12-23
Fixed
- Fixed an ANR risk in the Meta adapter caused by bid token collection on the main thread.
[0.11.0] - 2025-12-09
Changed
- Migrated the SDK HTTP client from Ktor
3.0.3to OkHttp4.12.0. - Added destroyed-state guards across ad formats.
[0.10.0] - 2025-12-03
Added
- Vungle Adapter - Added Vungle adapter support for banner and interstitial ads.
Changed
- Simplified the log tag to
CloudXfor easier logcat filtering. - Added public API entry logging for easier integration debugging.
- SDK initialization now fails early with a clear error when no adapters are found.
Fixed
- Fixed banner refresh stopping after load failure.
[0.9.0] - 2025-11-26
Added
- Added ad revenue tracking via
CloudXAdRevenueListener.onAdRevenuePaid().
Changed
- Upgraded Ktor from
2.3.8to3.0.3for improved compatibility with apps using Ktor 3.x.
Fixed
- Fixed memory leaks in ad lifecycle management.
- Improved SDK stability.
[0.6.0] - 2025-11-03
Added
- Added
testModesupport toCloudXInitializationParamsfor requesting test ads during development.
[0.4.0] - 2025-10-27
Added
- Initial alpha release of CloudX Android SDK.
- Added banner and MREC ad support.
- Added interstitial ad support.
- Added real-time bidding with CloudX mediation.
- Added CloudX and Meta Audience Network adapter support.
- Added privacy compliance support for GDPR, CCPA, US Privacy, TCF, and GPP signals.
- Added session depth tracking for bid optimization.
- Added ad lifecycle callbacks and error handling.
- Added debug logging with configurable log levels.