Changelog
Combined release notes across CloudX
Demand — MREC multi-format
Added an MREC Multi-Format page for buyers enabled to bid muted video on MREC.
- The impression carries both
bannerand an in-bannervideoobject at 300×250 - Set
bid.mtype(1banner,2video) andbid.ext.crtypeon every bid - Partner-SDK demand renders video in its own MREC ad view
iOS SDK — BidMachine adapter 3.8.2.0
Added
- First public BidMachine adapter release (beta) — Supports Banner, MREC, Interstitial, and Rewarded with BidMachine SDK 3.8.2. Requires
CloudXCore >= 3.11.0. Install:pod 'CloudXBidMachineAdapter', '~> 3.8.2.0'.
iOS SDK — Mintegral adapter 8.1.7.1
Fixed
- Native ads load — Native, native banner and native MREC load through Mintegral’s Custom Rendering bidding API. Before, every native load failed with error 21030102. Install:
pod 'CloudXMintegralAdapter', '~> 8.1.7.1'.
Changed
- Map Custom Rendering placements — Auto Rendering (Native Advanced) placements no longer load. Manual installs use the
BidNativeAdsubspec instead ofBidNativeAdvancedAd. CLXMintegralNativeuses Custom Rendering — The adapter’s native classes now wrap Mintegral’s Custom Rendering API. Apps that use the adapter through CloudX need no code change.
iOS SDK 3.12.0
Install: pod 'CloudXCore', '~> 3.12'
Added
- Expired full-screen ads reload automatically — Interstitial, rewarded and app-open ads that pass their expiry now load a replacement. Set the new
expirationDelegate(CLXAdExpirationDelegate) to be told when the replacement is ready.
Changed
-
Initialization retries on network errors — A temporary network failure no longer fails initialization; the SDK keeps retrying and completes when it reaches CloudX. The completion still runs once, with an error only for permanent failures such as an invalid app key.
-
Initialization completion runs on the main queue.
-
Load before initialize fails — A load made before
initializeWithConfiguration:completion:was ever called now fails at once withCLXErrorCodeNotInitialized. Callinitializefirst. -
Privacy manifest declares the device ID as used for tracking — CloudXCore’s privacy manifest now marks the device ID (the IDFA, read only after ATT consent) as used for tracking. Review your App Store privacy label.
Fixed
-
An auction with no bid reports
CLXErrorCodeNoFill(302) instead ofCLXErrorCodeInvalidResponse(105). -
Banners and MRECs no longer refresh while the app is in the background. A refresh that comes due resumes when the app returns.
-
MobileFuse native ads load with the MobileFuse adapter installed.
Removed
-
-[CLXSettings getIFA]is removed. The SDK reads the IDFA itself after ATT consent. Read the IDFA fromASIdentifierManagerif your app needs it. -
CLXNetworkAdObjectProviding— This adapter-facing protocol is removed. No CloudX adapter uses it, and apps need no change.
Unity SDK 4.12.0
Added
- An interstitial, rewarded or app open ad that expires before it is shown now reloads automatically and stays ready until the replacement arrives. Unity has no callback for the replacement yet.
- iOS builds now declare Simula’s attribution identifier, so Simula attribution works without you adding it by hand.
Fixed
- (iOS) Fixed a crash when the player closes the app from the app switcher while a fullscreen ad is showing. Reported on plugin 4.10.0.
- (iOS) Banners and MRECs no longer refresh while the app is in the background. A refresh that comes due resumes when the app returns.
- (Android) Fixed a crash at app launch caused by the SDK’s startup warm-up.
- (Android) Fixed a crash when an ad is destroyed from a background thread.
Integration Notes
- (iOS) Callbacks delivered on the native thread now wait while the app is inactive and arrive once it becomes active again. That is fullscreen
OnAdRevenuePaidby default, and every callback whenInvokeEventsOnUnityMainThreadis false. - (Android)
IsInterstitialReady,IsRewardedReadyandIsAppOpenReadynow stay true from load until the ad is shown or destroyed, and no longer ask the ad network. An ad the network dropped fails at show withOnAdShowFailed; load a new one. - A temporary network failure during initialization no longer reports failure. The SDK keeps retrying and reports success once it connects. Initialization now fails only for errors that do not resolve on their own, such as an invalid app key.
- (iOS) A load made before
Initializewas ever called now fails at once. - (iOS) CloudXCore’s privacy manifest now declares the device identifier as used for tracking. Review your App Store privacy label.
- (iOS) An auction with no bid now reports error code 302 instead of 105. Code 105 no longer means no fill; update any branching on it.
- (Android) An interstitial or rewarded
Show()made just afterInitialize, before the ad is set up, now reportsOnAdShowFailedinstead of doing nothing. - (Android) A
StopBannerAutoRefresh()orStopMrecAutoRefresh()call made before initialization completes is now kept, so the ad no longer starts refreshing once initialization succeeds. - (iOS) The MobileFuse, Meta and Digital Turbine adapters require iOS 15.0 or newer. Enabling any of them raises your project’s minimum iOS version.
- (Android) Returning users initialize from their saved configuration on the first launch after an SDK upgrade, including offline, and preloaded ads survive your app going to the background.
SDK Updates
- Updated Android SDK from 4.10.0 to 4.12.0 — see Android SDK changelog for details
- Updated iOS SDK from 3.11.0 to 3.12.0 — see iOS SDK changelog for details
- Updated every bundled adapter pin in
CloudXDependencies.xmlto the version tested with this release. Each adapter page lists its new version.
CloudX CLI 0.42
Ad unit creation
Create ad units without --bidfloor. Set price floors on matching line items instead.
Android SDK — BidMachine adapter 3.8.0.0
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.
Android SDK 4.12.0
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.
iOS SDK — Verve adapter 3.9.3.0
Changed
- Updated to HyBid SDK 3.9.3 — Fixes two crashes and VAST end-card click tracking. The SDK pin is exact, so an app that pins HyBid 3.9.0 through another integration cannot install this version alongside it. Install:
pod 'CloudXVerveAdapter', '~> 3.9.3.0'.
iOS SDK — MobileFuse adapter 1.13.0.0
Changed
- Updated to MobileFuse SDK 1.13.0 — Raises minimum deployment target to iOS 15.0 to align with MobileFuse SDK 1.13.0. Install:
pod 'CloudXMobileFuseAdapter', '~> 1.13.0.0'.
React Native SDK 3.11.1
CloudX React Native 3.11.1 adds native ad preloading and updates Android to io.cloudx:sdk:4.12.0. The iOS pin stays at CloudXCore ~> 3.11.0.
Added
- Native ad preloading - Load a native ad with
CloudXNativeAd.loadoruseCloudXNativeAdbefore its view exists, then pass it toCloudXNativeAdViewlater, on any screen. On Android, an ad shown in one view cannot move to another view, so load a fresh ad for each new view.
Changed
- Updated the Android native SDK pin to
io.cloudx:sdk:4.12.0. - (Android) Initialization retries - Temporary network failures during initialization no longer reject
CloudX.initialize. The SDK keeps retrying and resolves once it connects. - (Android) Fullscreen ad readiness - Interstitial, rewarded and app-open
isAdReadynow stays true from load until the ad is shown or destroyed.
Fixed
- (Android) Native ads in your own layout - Ad networks that wrap the native ad view now report impressions and revenue.
- (Android) Background
destroy()crash - Destroying an ad from a background thread no longer crashes your app. - (Android) Banner auto-refresh before initialization - A
stopAutoRefreshcall made before initialization completes is now kept. - (Android) Startup crash - The SDK’s startup warm-up no longer crashes your app at launch when a dependency it uses is missing or incompatible.
- (Android) Native impressions - A native ad that is rendered again now counts one impression instead of one per render.
Platform Support
- iOS: CloudXCore ~> 3.11.0
- Android: io.cloudx:sdk:4.12.0
iOS SDK — Meta adapter 6.22.1.0
Changed
- Updated to Meta Audience Network SDK 6.22.1 — The SDK pin is exact, so an app that pins Audience Network 6.22.0 through another integration cannot install this version alongside it. Install:
pod 'CloudXMetaAdapter', '~> 6.22.1.0'.
iOS SDK — Digital Turbine adapter 8.5.1.0
Changed
- Updated to Digital Turbine SDK 8.5.1 — The SDK pin is exact, so an app that pins Digital Turbine SDK 8.4.10 through another integration cannot install this version alongside it. Install:
pod 'CloudXDigitalTurbineAdapter', '~> 8.5.1.0'.
iOS SDK — Google waterfall adapter 13.11.0.0
Changed
- Certified with Google Mobile Ads SDK 13.11.0 — Fixes a rare crash when a video ad is dismissed and a crash on mediated native ads. Install:
pod 'CloudXGoogleWaterfallAdapter', '~> 13.11.0.0'.
iOS SDK — Pangle adapter 8.3.0.9.0
Changed
- Updated to Pangle SDK 8.3.0.9 — The SDK pin is exact, so an app that pins Pangle SDK 8.3.0.6 through another integration cannot install this version alongside it. Install:
pod 'CloudXPangleAdapter', '~> 8.3.0.9.0'.
iOS SDK — Unity Ads adapter 4.21.0.0
Changed
- Updated to Unity Ads SDK 4.21.0 — Improves initialization, ad loading and bidding-token performance. The SDK pin is exact. Install:
pod 'CloudXUnityAdsAdapter', '~> 4.21.0.0'.
iOS SDK — Vungle adapter 7.7.8.0
Changed
- Updated to Vungle SDK 7.7.8 — A bug-fix and stability release. The SDK pin is exact, so an app that pins Vungle SDK 7.7.6 through another integration cannot install this version alongside it. Install:
pod 'CloudXVungleAdapter', '~> 7.7.8.0'.
Demand — iion bidder guide (beta)
Added a publisher-facing iion setup guide for CloudX’s SDK-less iion integration.
- Enable iion under Bidders with no credentials or placement mappings
- Add Banner, MREC, Interstitial, Rewarded, and App Open line items
- Publish your
iion.ioDIRECTapp-ads.txt line before live traffic
Demand — Bid expiration required for integrations
Demand partner integrations must set exp (bid expiration, in seconds) on every bid.
- Set it to how long your bid and creative actually remain valid after your response.
- CloudX SDKs use it to decide how long a loaded ad can wait before it is shown.
Android SDK 4.11.0
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.
Flutter SDK 3.11.0
Moves the plugin onto the current CloudX native SDKs and adapters, and brings reward at grant to rewarded ads. The Dart package version follows the iOS CloudXCore line; the Android io.cloudx:sdk pin is listed with each release.
Native pins
Ad behaviour
- Rewarded ads can pay the reward as soon as the ad network grants it, instead of waiting for the ad to close, so a user who never closes the ad is still rewarded. CloudX turns this on per account, and your
onAdReceivedRewardcallback does not change. - iOS: rewarded ads now pay the reward amount and currency configured on the ad unit in CloudX, instead of the value the ad network reports.
- iOS: a banner with no refresh interval configured now refreshes every 30 seconds.
- iOS: the Mediation Debugger can share a plain-text report, for attaching to a support request.
- iOS: part of initialization now runs at app launch, including one request to the CloudX init host that carries no identifiers. Opt out by setting
CloudXStartupWarmDisabledinInfo.plist.
Fixed
- Android: 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.
- Android: the SDK no longer crashes on devices where reading the active network fails inside Android itself. It treats that as a normal network error and continues.
- iOS: full-screen HTML ads no longer render at about a third of the screen, and the built-in native templates keep their title and body readable in dark mode.
Host app: network adapters
io.cloudx:adapter-magnite moves to 1.0.2.1, which brings Magnite SDK 1.0.2. That SDK depends on kotlin-stdlib 2.4.0, so an app including the Magnite adapter must compile with Kotlin 2.3 or later. Kotlin 2.3 also removed the kotlinOptions Gradle block, so set jvmTarget through kotlin { compilerOptions { ... } }. Twelve Android and twelve iOS adapters move to their current revisions; the Flutter integration guide carries the current versions.
On Android, adapter-mintegral 17.1.81.1 and adapter-pangle 8.3.0.4.2 add native, native banner and native MREC ads. adapter-unityads 4.21.0.2 fixes Unity Ads initialization never completing in apps that remove Unity’s androidx.startup initializer from the manifest, and adapter-verve 3.9.3.0 brings HyBid SDK 3.9.3, which no longer declares the ACCESS_ADSERVICES_TOPICS permission.
On iOS, CloudXMagniteAdapterV2 1.0.4.2 fixes a launch crash in apps that set user consent or do-not-sell before CloudX finishes initializing, and withdraws 1.0.4.0 and 1.0.4.1. CloudXMobileFuseAdapter 1.12.0.0 brings MobileFuse SDK 1.12.0, which fixes a crash risk while generating the bidding token, and CloudXInMobiAdapter 11.5.0.0 and CloudXMintegralAdapter 8.1.7.0 move to InMobi SDK 11.5.0 and Mintegral SDK 8.1.7.
iOS SDK — Magnite adapter 1.0.4.2
Fixed
- Launch crash when consent is set early — Apps that set user consent or do-not-sell before CloudX finished initializing could crash on devices with 1.0.4.0 and 1.0.4.1. The adapter now holds those values and applies them once Magnite initializes.
- No integration change required — 1.0.4.0 and 1.0.4.1 are withdrawn; update to 1.0.4.2. MagniteSDK 1.0.4 and
CloudXCore >= 3.9.0are unchanged. Install:pod 'CloudXMagniteAdapterV2', '~> 1.0.4.2'.
iOS SDK — InMobi adapter 11.5.0.0
Changed
- Updated to InMobi SDK 11.5.0 — The SDK pin is exact, so an app that pins InMobi SDK 11.4.1 through another integration cannot install this version alongside it. Install:
pod 'CloudXInMobiAdapter', '~> 11.5.0.0'.
iOS SDK — Mintegral adapter 8.1.7.0
Changed
- Certified with Mintegral SDK 8.1.7 — Updates to Mintegral SDK 8.1.7. Install:
pod 'CloudXMintegralAdapter', '~> 8.1.7.0'.
iOS SDK — MobileFuse adapter 1.12.0.0
Changed
- Updated to MobileFuse SDK 1.12.0 — Fixes a crash risk during bidding-token generation. Install:
pod 'CloudXMobileFuseAdapter', '~> 1.12.0.0'.
Unity SDK 4.10.0
Added
- Rewarded ads can pay out as soon as the ad network grants the reward, instead of when the ad closes. CloudX enables this per account, and it needs the updated rewarded adapters this release ships.
Fixed
- (iOS) A vertical banner in landscape no longer sits inset from a screen edge with no notch or Dynamic Island. It is now flush with that edge and centered on the screen, inset only past a cutout on its own edge. A 180 degree rotation moves it correctly.
Integration Notes
CloudXAdsCallbacks.Rewarded.OnAdRewardedstill arrives when the Unity player resumes, so under the default callback threading it lands when the ad closes. See Callback threading.- (iOS) Rewarded ads now pay the reward amount and currency configured on the ad unit in CloudX, not the value the ad network reports.
- (iOS) A banner with no configured refresh interval now refreshes every 30 seconds.
- (iOS) Part of initialization now runs at app launch, including one request to the CloudX init host that carries no identifiers. Opt out with
CloudXStartupWarmDisabledin Info.plist. - (Android) The Magnite adapter now depends on kotlin-stdlib 2.4.0. Apps that enable it must compile with Kotlin 2.3 or newer.
SDK Updates
- Updated Android SDK from 4.9.0 to 4.10.0 — see Android SDK changelog for details
- Updated iOS SDK from 3.10.0 to 3.11.0 — see iOS SDK changelog for details
- Updated every bundled adapter pin in
CloudXDependencies.xmlto the version tested with this release. Each adapter page lists its new version.
iOS SDK — Digital Turbine adapter 8.4.10.1
Changed
- Rewarded callback timing —
didRewardUserForAd:withReward:(SwiftdidRewardUser(for:with:)) can now fire as soon as the ad network grants the reward, instead of when the ad closes, when CloudX enables it. Takes effect with CloudXCore 3.11.0 or later. - No integration change required — Fyber Marketplace SDK 8.4.10 and
CloudXCore >= 3.5.0are unchanged. Install:pod 'CloudXDigitalTurbineAdapter', '~> 8.4.10.1'.
Fixed
- Privacy manifest included — The adapter framework now ships its own Apple privacy manifest.
iOS SDK — InMobi adapter 11.4.1.1
Changed
- Rewarded callback timing —
didRewardUserForAd:withReward:(SwiftdidRewardUser(for:with:)) can now fire as soon as the ad network grants the reward, instead of when the ad closes, when CloudX enables it. Takes effect with CloudXCore 3.11.0 or later. - No integration change required — InMobiSDK 11.4.1 and
CloudXCore >= 3.5.0are unchanged. Install:pod 'CloudXInMobiAdapter', '~> 11.4.1.1'.
Fixed
- Privacy manifest included — The adapter framework now ships its own Apple privacy manifest.
iOS SDK — Magnite adapter 1.0.4.1
Changed
- Withdrawn — Can crash on devices when consent is set before initialization. Use 1.0.4.2 instead.
- Rewarded callback timing —
didRewardUserForAd:withReward:(SwiftdidRewardUser(for:with:)) can now fire as soon as the ad network grants the reward, instead of when the ad closes, when CloudX enables it. Takes effect with CloudXCore 3.11.0 or later. - No integration change required — MagniteSDK 1.0.4 and
CloudXCore >= 3.9.0are unchanged. Install:pod 'CloudXMagniteAdapterV2', '~> 1.0.4.1'.
iOS SDK — Meta adapter 6.22.0.1
Changed
- Rewarded callback timing —
didRewardUserForAd:withReward:(SwiftdidRewardUser(for:with:)) can now fire as soon as the ad network grants the reward, instead of when the ad closes, when CloudX enables it. Takes effect with CloudXCore 3.11.0 or later. - No integration change required — Meta Audience Network SDK 6.22.0 and
CloudXCore >= 3.5.0are unchanged. Install:pod 'CloudXMetaAdapter', '~> 6.22.0.1'.
Fixed
- Privacy manifest included — The adapter framework now ships its own Apple privacy manifest.
iOS SDK — MobileFuse adapter 1.11.0.2
Changed
- Rewarded callback timing —
didRewardUserForAd:withReward:(SwiftdidRewardUser(for:with:)) can now fire as soon as the ad network grants the reward, instead of when the ad closes, when CloudX enables it. Takes effect with CloudXCore 3.11.0 or later. - No integration change required — MobileFuse SDK 1.11.0 and
CloudXCore >= 3.5.0are unchanged. Install:pod 'CloudXMobileFuseAdapter', '~> 1.11.0.2'.
Fixed
- Privacy manifest included — The adapter framework now ships its own Apple privacy manifest.
iOS SDK — Moloco adapter 4.11.1.1
Changed
- Rewarded callback timing —
didRewardUserForAd:withReward:(SwiftdidRewardUser(for:with:)) can now fire as soon as the ad network grants the reward, instead of when the ad closes, when CloudX enables it. Takes effect with CloudXCore 3.11.0 or later. - No integration change required — MolocoSDKiOS 4.11.1 and
CloudXCore >= 3.5.0are unchanged. Install:pod 'CloudXMolocoAdapter', '~> 4.11.1.1'.
iOS SDK — Pangle adapter 8.3.0.6.1
Changed
- Rewarded callback timing —
didRewardUserForAd:withReward:(SwiftdidRewardUser(for:with:)) can now fire as soon as the ad network grants the reward, instead of when the ad closes, when CloudX enables it. Takes effect with CloudXCore 3.11.0 or later. - No integration change required — Pangle Ads-Global 8.3.0.6 and
CloudXCore >= 3.5.0are unchanged. Install:pod 'CloudXPangleAdapter', '~> 8.3.0.6.1'.
Fixed
- Privacy manifest included — The adapter framework now ships its own Apple privacy manifest.
iOS SDK — TaurusX adapter 1.18.2.1
Changed
- Rewarded callback timing —
didRewardUserForAd:withReward:(SwiftdidRewardUser(for:with:)) can now fire as soon as the ad network grants the reward, instead of when the ad closes, when CloudX enables it. Takes effect with CloudXCore 3.11.0 or later. - No integration change required — TaurusX SDK 1.18.2 and
CloudXCore >= 3.5.0are unchanged. Install:pod 'CloudXTaurusXAdapter', '~> 1.18.2.1'.
Fixed
- Privacy manifest included — The adapter framework now ships its own Apple privacy manifest.
- Corrected the TaurusX adapter framework bundle version to prevent App Store validation errors.
iOS SDK — Unity Ads adapter 4.20.1.1
Changed
- Rewarded callback timing —
didRewardUserForAd:withReward:(SwiftdidRewardUser(for:with:)) can now fire as soon as the ad network grants the reward, instead of when the ad closes, when CloudX enables it. Takes effect with CloudXCore 3.11.0 or later. - Privacy manifest updated — The adapter’s privacy manifest no longer declares data collection or required-reason API use. The Unity Ads SDK still ships its own manifest.
- No integration change required — UnityAds 4.20.1 and
CloudXCore >= 3.5.0are unchanged. Install:pod 'CloudXUnityAdsAdapter', '~> 4.20.1.1'.
iOS SDK — Verve adapter 3.9.0.1
Changed
- Rewarded callback timing —
didRewardUserForAd:withReward:(SwiftdidRewardUser(for:with:)) can now fire as soon as the ad network grants the reward, instead of when the ad closes, when CloudX enables it. Takes effect with CloudXCore 3.11.0 or later. - No integration change required — HyBid 3.9.0 and
CloudXCore >= 3.5.0are unchanged. Install:pod 'CloudXVerveAdapter', '~> 3.9.0.1'.
Fixed
- Privacy manifest included — The adapter framework now ships its own Apple privacy manifest.
iOS SDK — Vungle adapter 7.7.6.1
Changed
- Rewarded callback timing —
didRewardUserForAd:withReward:(SwiftdidRewardUser(for:with:)) can now fire as soon as the ad network grants the reward, instead of when the ad closes, when CloudX enables it. Takes effect with CloudXCore 3.11.0 or later. - Vungle error codes — Creative-download failures now report
CLXErrorCodeAdapterInternalError(600) instead ofCLXErrorCodeAdapterInvalidLoadState(602), and HTTP failures reportCLXErrorCodeAdapterServerError(612). Update any handling of 602. - Dependencies unchanged — VungleAds 7.7.6 and
CloudXCore >= 3.5.0stay the same. Install:pod 'CloudXVungleAdapter', '~> 7.7.6.1'.
Fixed
- Privacy manifest included — The adapter framework now ships its own Apple privacy manifest.
React Native SDK 3.11.0
CloudX React Native 3.11.0 aligns the wrapper with CloudX iOS 3.11.0 and Android 4.10.0.
Added
- Reward at grant - Added support for rewarded ads to deliver the reward as soon as the ad network grants it, instead of when the ad closes.
- (iOS) Share from the Mediation Debugger - The Mediation Debugger can share a plain-text report for support requests.
- (iOS) Startup warm-up - Part of initialization now runs at app launch, including one request to the CloudX init host that carries no identifiers. Opt out with
CloudXStartupWarmDisabledin Info.plist.
Changed
- Updated underlying native SDK pins to iOS
CloudXCore ~> 3.11.0and Androidio.cloudx:sdk:4.10.0. - (iOS) Reward amount - Rewarded ads pay the reward amount and currency set on the ad unit in CloudX, instead of the value the ad network reports.
- (iOS) Banner refresh - Banners without a configured refresh interval now refresh every 30 seconds.
Fixed
- (iOS) Full-screen HTML ads - They no longer render at about a third of the screen.
- (iOS) Native templates in dark mode - The built-in native templates keep their title and body text readable in dark mode.
- (Android) Native ad renderer crash - CloudX-rendered native ads no longer crash your app when Android’s WebView renderer process stops.
- (Android) Network lookup crash - The SDK no longer crashes your app on devices where reading the active network fails inside Android.
Platform Support
- iOS: CloudXCore ~> 3.11.0
- Android: io.cloudx:sdk:4.10.0
Android SDK 4.10.0
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.
iOS SDK 3.11.0
Install: pod 'CloudXCore', '~> 3.11'
Added
-
Rewarded callback timing — CloudX can now control when rewarded ads deliver the reward: when the ad network grants it, or when the ad closes. Granting at grant time means a user who never closes the ad still gets the reward. This takes effect with the adapter updates shipping next.
-
Share from the Mediation Debugger — The Mediation Debugger can share a plain-text report for support requests.
-
Startup warm-up — Part of initialization now runs at app launch, including one request to the CloudX init host that carries no identifiers. Opt out with
CloudXStartupWarmDisabledin Info.plist.
Changed
-
Rewarded ads pay the reward configured for the ad unit. Rewarded ads now pay the reward amount and currency set on the ad unit in CloudX, instead of the value the ad network reports.
-
Banners without a configured refresh interval now refresh every 30 seconds.
Fixed
-
Full-screen HTML ads no longer render at about a third of the screen.
-
Built-in native templates keep their title and body text readable in dark mode.
CloudX CLI 0.41
Reporting timezones
Use --timezone with report dashboard, report apps, report ad-units, report bidders, and report breakdown to select local calendar periods and matching report buckets. UTC remains the default, and existing commands keep their output when the flag is omitted. Daylight-saving transitions use the actual local-day boundaries.
Reports that cannot accurately represent the requested timezone return a clear error. A/B reports remain UTC-only. Export behavior and Demand Comparison’s completion cutoff are unchanged. Read the docs →
Demand Comparison date ranges
CloudX CLI 0.41 removes the 31-date limit for explicit periods in cloudx report demand-comparison and cloudx report demand-comparison-ad-units.
Both commands accept inclusive calendar-date periods of any length within available history. The start date must be on or after 2020-01-01, and the end date must be complete under the 12:00 UTC cutoff. Omitting --period still selects the latest 30 completed dates. Some requested dates may have no CloudX or partner data. Read the docs →
CloudX API — Reporting timezone parameter
The reporting API adds an optional timezone query parameter to GET /report/dashboard, GET /report/apps, GET /report/ad-units, GET /report/bidders, GET /report/breakdown, and GET /report/ab-test. Use an IANA timezone such as America/New_York. Omitting the parameter preserves UTC behavior and existing response formats.
start_time and end_time remain absolute Unix timestamps in seconds and are never shifted. For calendar-date requests, callers must first convert their local boundaries to these timestamps; CLI 0.41 does this with --timezone. Dashboard and breakdown calendar buckets then follow the selected timezone. Dashboard date and day/week/month labels use local dates; bucket_start and hourly breakdown keys remain UTC RFC 3339 instants so repeated daylight-saving hours stay distinct.
Unsupported timezones return 400 Bad Request. SDK reports, hourly dashboard/breakdown reports, and breakdowns grouped by bidder require whole-hour offsets throughout the requested window. A/B reports support UTC only. Existing date-range limits, export behavior, and Demand Comparison’s timezone and completion rules remain unchanged.
iOS SDK — Magnite adapter 1.0.4.0
Changed
- Withdrawn — Can crash on devices when consent is set before initialization. Use 1.0.4.2 instead.
- Certified with MagniteSDK 1.0.4 —
CloudXCore >= 3.9.0and iOS 13.0 requirements are unchanged. Install:pod 'CloudXMagniteAdapterV2', '~> 1.0.4.0'.
React Native SDK 3.10.1
CloudX React Native 3.10.1 adds native ads. The native SDK pins stay at iOS CloudXCore ~> 3.10.0 and Android io.cloudx:sdk:4.9.0.
Added
- Native ads -
CloudXNativeAdViewrenders native ads from four bundled templates, including a full-screen vertical layout, or from your own layout with the CloudX asset components. It works on both the New Architecture and the legacy architecture.
Fixed
- Ad hooks after an ad unit change -
useCloudXInterstitial,useCloudXRewarded,useCloudXAppOpen, anduseCloudXBannerreset their state whenadUnitIdchanges, instead of reporting the previous ad unit’s state.
Platform Support
- iOS: CloudXCore ~> 3.10.0
- Android: io.cloudx:sdk:4.9.0
CloudX API — Network report path
GET /reports/network moved to GET /report/network. It now sits under /report/* with the other reporting endpoints. Parameters, responses, and the reports:read permission do not change.
Breaking Changes
GET /reports/networkreturns404 Not Found. The old path has no alias or redirect. Update every caller toGET /report/network.
iOS SDK — Moloco adapter 4.11.1.0
Changed
- Certified with MolocoSDKiOS 4.11.1 — Updates the bundled MolocoSDKiOS from 4.10.0 to 4.11.1. No integration change is required;
CloudXCore >= 3.5.0and iOS 13.0 are unchanged. Install:pod 'CloudXMolocoAdapter', '~> 4.11.1.0'.
Flutter SDK 3.10.0
Adds the Mediation Debugger and moves the plugin onto the current CloudX native SDKs and adapters. The Dart package version follows the iOS CloudXCore line; the Android io.cloudx:sdk pin is listed with each release.
Native pins
API
CloudX.showMediationDebugger()opens the native integration screen: every installed adapter with its status, the privacy signals, your ad units and test-ad controls. It returnsfalseuntil initialization completes, so call it afterCloudX.initializesucceeds.CloudXAd.creativeIdcarries the creative identifier the network reported, when it reports one.
Ad behaviour
- Ads now honour the advertiser’s expiry. On both platforms a fullscreen ad expires with its bid, and showing an expired one fails with error 616. Check readiness before showing, and load a new ad when it fails.
- Android: a banner or MREC that fails after it loaded now reports
onAdLoadFailed, and while auto-refresh is stopped the SDK no longer reloads on its own. Callload()for a new ad. - Android: CloudX-rendered interstitial and rewarded ads open in the app’s own task, so apps whose launcher Activity sets
android:taskAffinity="", the Flutter template default, no longer get a stuck ad and blocked loads after returning from Home. - Android: WebView and network warm-up now run after the app first reaches the foreground instead of at process start, which lowers ANR risk.
- Revenue callbacks report realized revenue when the ad source provides it, and MMP connectors no longer receive CloudX wins from bidders that report their own revenue.
- iOS: a second
initializewaits for the first, test-mode revenue callbacks fire with revenue 0, video clicks open the in-app App Store, and clicks fire only on a real tap.
Fixed
- Android: CloudX native ads in banner and MREC slots take their text colors from your Activity theme, so titles and body text stay readable on dark themes.
- Android: CloudX-rendered HTML ads with absolutely positioned content are no longer shifted or clipped, and a creative smaller than its slot aligns to the top-left instead of the center.
Host app: network adapters
BIGO Ads is now available on both platforms (io.cloudx:adapter-bigo and CloudXBigoAdapter 6.1.0.0). On iOS, adding the pod makes the Flutter tool drop arm64 from Simulator builds, so test BIGO on a device. The Flutter integration guide links the Android and iOS guides that carry the current adapter versions.
Android SDK 4.9.0
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.
React Native SDK 3.10.0
CloudX React Native 3.10.0 aligns the wrapper with CloudX iOS 3.10.0 and Android 4.9.0. It adds the Mediation Debugger, creative IDs on ad info, and the BIGO Ads adapter, and changes how overlapping loads behave.
Added
- Mediation Debugger - Call
CloudX.showMediationDebugger()after initialization to check adapters, ad units, and privacy state on a test device. It resolvesfalseuntil initialization completes. - Creative ID on ad info -
CloudXAdInfo.creativeIdreports the creative ID from the demand source, so you can report problem creatives. It isnullwhen the source does not send one. - BIGO Ads adapter - Add
pod 'CloudXBigoAdapter', '~> 6.1.0.0'on iOS andio.cloudx:adapter-bigo:6.1.0.0on Android for Banner, MREC, Interstitial, and Rewarded demand. - Inline video ads - CloudX-rendered MREC ads, and banners on iOS, can play video inline. Playback starts muted.
Changed
- Updated underlying native SDK pins to iOS
CloudXCore ~> 3.10.0and Androidio.cloudx:sdk:4.9.0. - Adapter setup versions - Every adapter in the integration guide is updated to the version tested with this release.
- (iOS) Digital Turbine adapter -
pod 'CloudXDigitalTurbineAdapter', '~> 8.4.10.0'requires iOS 15.0 and Xcode 26.1 or newer. - (Android) Kotlin requirement - Android host apps must build with Kotlin 2.1 or newer.
- Concurrent loads per ad unit - Each ad unit allows two simultaneous
load()calls by default. A third fails; wait for a pending load to finish before loading again. - Loading while a fullscreen ad is showing - A
load()made while an interstitial, rewarded, or App Open ad is on screen now starts after the ad closes. - Expired fullscreen ads - Showing an expired fullscreen ad fails with
CloudXErrorCode.ADAPTER_AD_EXPIRED. Load a new ad when this happens. - Test-mode revenue - Revenue callbacks in test mode report
revenueas 0, so you can check your revenue wiring on test devices. - Realized revenue - When the serving network reports impression-level revenue, revenue callbacks carry that amount instead of the auction estimate.
- MMP revenue without duplicates - MMP connectors no longer receive revenue for wins from bidders that already report revenue to your MMP. Per-ad revenue callbacks are unchanged.
- (iOS) Banners refresh only while visible - A hidden or off-screen banner stops requesting ads until it is visible again.
Fixed
- (Android) Reload after a fullscreen ad closes - Loading again from the hidden callback after a click-out no longer stops that ad unit from loading.
- (Android) Initialization on filtered networks - Initialization now recovers when a DNS filter blocks the CloudX initialization host.
- (Android) HTML ad layout - CloudX-rendered HTML ads with absolutely positioned content no longer appear shifted or clipped.
- (iOS) Fullscreen ads over open modals - Interstitial, rewarded, and App Open ads now present when a modal is already open.
- (iOS) Banner auto-refresh after interruptions - Auto-refresh resumes after Control Center, an incoming call, or a Face ID prompt.
- (iOS) Repeated initialization - A second
CloudX.initialize()call waits for the first one instead of starting another initialization.
Platform Support
- iOS: CloudXCore ~> 3.10.0
- Android: io.cloudx:sdk:4.9.0
Unity SDK 4.9.0
Added
CloudXSdk.ShowMediationDebugger()opens the Mediation Debugger, an in-app screen listing every installed adapter with its version and status, your ad units and the SDK configuration. It returnsfalsebefore initialization finishes. Intended for development and QA builds.
Integration Notes
- A banner or MREC that fails after it loaded now reports
OnAdLoadFailed. While auto-refresh is stopped, nothing replaces it on its own; callLoad()to request a new ad.
SDK Updates
- Updated Android SDK from 4.8.2 to 4.9.0 — see Android SDK changelog for details
- Updated the Android InMobi adapter from 11.4.1.0 to 11.5.0.0.
- Updated the Android Moloco adapter from 4.12.0.0 to 4.13.0.0.
- Updated the Android Unity Ads adapter from 4.20.1.0 to 4.21.0.0.
- Updated the Android Vungle adapter from 7.7.8.0 to 7.7.9.0.
- Updated the iOS Mintegral adapter from 8.1.6.0 to 8.1.6.1.
- Updated the iOS Moloco adapter from 4.10.0.0 to 4.11.0.0.
iOS SDK — Mintegral adapter 8.1.6.1
Fixed
- Corrected the Mintegral adapter framework bundle version to prevent App Store validation errors. MintegralAdSDK remains 8.1.6. Install:
pod 'CloudXMintegralAdapter', '~> 8.1.6.1'. - Privacy manifest included — The adapter framework now ships its own Apple privacy manifest.
Demand — CloudX Exchange on by default
CloudX Exchange is now available to publishers as one additional bidder that routes bids from participating third-party demand partners.
- An admin accepts the CloudX Exchange addendum in the dashboard. If the account manager hasn’t turned CloudX Exchange on or off for the account before, accepting turns it on and selects it on the line items in the live configuration, and new line items start with it selected.
- Publishers manage it per line item under Bidders. It isn’t selected on line items whose only bidders are CloudX Direct or AppLovin waterfall, or on native reel line items.
- Demand fills only on apps whose app-ads.txt file includes the CloudX lines, and only for ad formats the exchange partners support.
Unity SDK 4.8.2
SDK Updates
- Updated Android SDK from 4.8.0 to 4.8.2 — see Android SDK changelog for details
- Updated iOS SDK from 3.9.1 to 3.10.0 — see iOS SDK changelog for details
- Updated the Android Google Waterfall adapter from 25.4.0.0 to 25.5.0.0. It requires Android API 24 or later.
- Updated the Android AdMob adapter from 1.4.0.0 to 1.5.0.0.
- Updated the Android TaurusX adapter from 1.18.3.0 to 1.19.1.0.
- Added the iOS BIGO Ads adapter 6.1.0.0 to the optional adapter lines in
CloudXDependencies.xml.
There are no changes to the Unity C# API in this release. The Unity SDK does not expose a Native ad API.
CloudX API — Demand Comparison date ranges
Both Demand Comparison endpoints now accept inclusive calendar-date windows of any length within available history. The start date remains on or after 2020-01-01. The end date must be complete under the 12:00 UTC cutoff. Some requested dates may have no CloudX or partner data. Other reporting endpoints retain their existing date-range limits.
Android SDK 4.8.2
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.
CloudX CLI 0.40
Task command compatibility
CloudX CLI 0.40 updates Task commands to match the current API.
Fixed
- Task creation and retrieval. Fix API schema mismatches that prevented creating Tasks or reading them with
cloudx tasks listandcloudx tasks get.
Changed
- Task access. Use
--access privateor--access workspacewithcloudx tasks createandcloudx tasks update. This replaces--recipient-modeand--recipient-user-id. - Task details. Task lists now show access mode; Task details also show the creator. Read the docs →
- Config list help. List creation and update help now includes
APP_BUNDLE,CREATIVE_ID,CAMPAIGN_ID, andCREATIVE_ATTRIBUTEalongsideDOMAINandIAB_CONTENT_CATEGORY.
Demand — Conversion surfaces for iOS video
CloudX-rendered iOS interstitial and rewarded VAST ads can now open the App Store sheet before the first end card, keep an SKOverlay on screen for the rest of the ad, and show a sequence of end cards.
- Eligible bids get AutoStore and the SKOverlay by default. Set
ext.cloudx.render.auto_storeorext.skadn.skoverlayto customize or opt out, andext.cloudx.render.player_config.cardsto send your own end cards. - Requires CloudX iOS SDK 3.10 or later and
bid.ext.skadn.itunesitem.
iOS SDK 3.10.0
Install: pod 'CloudXCore', '~> 3.10'
Added
-
Mediation Debugger — Call
+[CloudXCore showMediationDebugger]after initialization to see each adapter’s status, privacy signals and ad units, load a test ad for any ad unit, and request test mode for the next launch. ReturnsNOuntilCLXSDKInitializedNotificationhas posted. -
App Store surfaces on fullscreen video — CloudX-rendered video ads can open the in-app App Store sheet on skip or close, or show Apple’s App Store overlay during playback. Users stay in your app.
-
Multi-card end cards — CloudX-rendered fullscreen video ads can show a sequence of end cards. Closing a card advances to the next one before the ad closes.
Changed
-
CloudX-rendered fullscreen video clicks open the App Store inside your app instead of leaving it. Click callbacks now fire only for real user clicks.
-
Ads honor the advertiser’s expiry — Showing an expired fullscreen ad fails with
CLXErrorCodeAdapterAdExpired(616); checkisReadybefore showing. A native ad that was already shown no longer receives an expiry callback. -
Revenue callbacks now fire in test mode — They were previously withheld on test devices; now they fire so you can verify your revenue wiring. Test-mode callbacks report
revenue0 andrevenuePrecision"undefined". -
CLXAd.revenuereports realized impression revenue when the serving network provides it, with a matchingrevenuePrecision. Otherwise the auction estimate is reported with precision"estimated". -
CloudXCore privacy manifest updated — It now declares file-timestamp API use and crash-data collection.
Fixed
-
Calling initialize twice no longer starts two initializations. A second call waits for the first attempt to finish.
-
CloudX-rendered ads can no longer open an advertiser page or report a click without a user tap.
-
The built-in native template no longer shows an empty media area or a blank button when the ad does not supply them.
-
With the ad cache enabled, a native ad destroyed before it was shown is reused by the next load while it is still valid.
-
Improved fill from demand partners that rejected every request after the first in a session.
Dashboard — App version targeting and reporting
Line items can now include or exclude app versions, either exact (6.5.5) or that version and above (6.5+). See Line items.
App Version is also a new dimension in the Auction Funnel report, with data from September 24, 2026 08:00 UTC.
iOS SDK — BIGO Ads adapter 6.1.0.0
Changed
- Certified with BigoADS 6.1.0 —
CloudXCore >= 3.9.0and iOS 13.0 requirements are unchanged. Install:pod 'CloudXBigoAdapter', '~> 6.1.0.0'.
Fixed
- The adapter xcframework now includes its Apple privacy manifest.
Unity SDK 4.8.1
Added
CloudXAd.MediatorNameandCloudXAd.MediatorAdUnitIdreport which mediator and mediator ad unit served an ad. CloudX-won ads reportcloudxand their CloudX ad unit id. Supplied on Android;nullon iOS.CloudXSdkConfiguration.AdUnitConfigurationsmaps each ad unit ID to itsIsOrchestratorEnabledstate once initialization completes. A missing entry means unavailable, not disabled. Supplied on Android; empty on iOS.- The Unity plugin now ships a privacy manifest for iOS builds, so apps that include CloudX declare its Required Reason API use to App Store review.
SDK Updates
- Updated the Android AdMob adapter from 1.3.0.4 to 1.4.0.0.
- Android SDK remains at 4.8.0.
Android SDK 4.8.1
Fixed
- Initialization on Filtered Networks - SDK initialization now recovers when a DNS filter blocks the CloudX initialization host.
Unity SDK 4.8.0
Fixed
- Vertical banners on Android now stay inside the app window’s visible region, so they no longer disappear on devices that crop the window to that region.
SDK Updates
- Updated Android SDK from 4.7.0 to 4.8.0 — see Android SDK changelog for details
- Updated the Android BIGO Ads adapter from 6.0.1.0 to 6.1.0.0.
- Updated the Android InMobi adapter from 11.4.0.1 to 11.4.1.0.
- Updated the Android Mintegral adapter from 17.1.71.1 to 17.1.81.0.
- Updated the Android Pangle adapter from 8.3.0.3.0 to 8.3.0.4.0.
- Updated the Android Verve adapter from 3.9.0.1 to 3.9.2.0.
- Updated the Android Vungle adapter from 7.7.7.0 to 7.7.8.0.
There are no changes to the Unity C# API in this release. The Unity SDK does not expose a Native ad API.
Android SDK 4.8.0
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.
Dashboard — TradPlus data source
TradPlus is now available as a mediation network data source in the Total Revenue dashboard. Connect it with your TradPlus Report API key in Data Sources.
iOS SDK — BIGO Ads adapter 5.3.0.0
Added
- First public BIGO Ads adapter release — Supports Banner, MREC, Interstitial, and Rewarded with BigoADS 5.3.0. Requires
CloudXCore >= 3.9.0. Install:pod 'CloudXBigoAdapter', '~> 5.3.0.0'.
Unity SDK 4.7.2
SDK Updates
- Updated the Android and iOS Magnite adapter pins from 1.0.0.1 to 1.0.0.2.
- Updated the Android Unity Ads adapter from 4.19.0.1 to 4.20.1.0.
- Updated the iOS Unity Ads adapter from 4.19.0.0 to 4.20.1.0.
- Updated the iOS Google Waterfall adapter from 13.7.0.0 to 13.9.0.0.
- Android SDK remains at 4.7.0. iOS CloudXCore remains at 3.9.1.
There are no changes to the Unity C# API in this release. The Unity SDK does not expose a Native ad API.
iOS SDK — Unity Ads adapter 4.20.1.0
Changed
- Certified with UnityAds 4.20.1 —
CloudXCore >= 3.5.0and iOS 13.0 requirements are unchanged. Install:pod 'CloudXUnityAdsAdapter', '~> 4.20.1.0'.
iOS SDK — Unity Ads adapter 4.20.0.0
Changed
- Certified with UnityAds 4.20.0 —
CloudXCore >= 3.5.0and iOS 13.0 requirements are unchanged. Install:pod 'CloudXUnityAdsAdapter', '~> 4.20.0.0'.
Unity SDK 4.7.1
Fixed
- Rewarded and other fullscreen callbacks on iOS now use the placement and custom data from each accepted show. Consecutive rewarded ads no longer use missing or stale custom data.
SDK Updates
- Updated iOS SDK from 3.9.0 to 3.9.1 — see iOS SDK changelog for details.
- Android SDK remains at 4.7.0.
- Updated Android adapters: Moloco 4.11.0.0 to 4.12.0.0, Google Waterfall 25.2.0.5 to 25.4.0.0, and Pangle 8.2.0.4.0 to 8.3.0.3.0.
- Updated iOS adapters: Moloco 4.8.0.0 to 4.10.0.0, Google Waterfall 13.6.0.4 to 13.7.0.0, Digital Turbine 8.4.8.0 to 8.4.10.0, and Pangle 8.2.0.7.0 to 8.3.0.6.0.
CloudX CLI 0.39
Demand Comparison reporting
CloudX CLI 0.39 adds Demand Comparison summary and ad-unit reports for accounts with feature access and the reports:read permission.
Added
- Demand-source summary. Use
cloudx report demand-comparisonto compare CloudX and partner revenue, eCPM, and impressions. The report also shows mapping coverage and partner freshness. - Ad-unit comparison. Use
cloudx report demand-comparison-ad-units --demand-source DEMAND_SOURCEto inspect mapped partner aggregates. Add--view unmappedto inspect excluded partner revenue and impressions. - Completed reporting windows. Omit
--periodto select the latest 30 completed calendar dates. Explicit periods support IANA timezones. - Flexible filters. Repeat demand-source and identifier flags or pass comma-separated values. Use
--jsonto return the complete API response. Read the docs →
CloudX API — Demand Comparison reporting
The public API now exposes Demand Comparison summary and ad-unit reports for accounts with feature access and the reports:read permission.
GET /report/demand-comparisoncompares CloudX and partner revenue, eCPM, and impressions. It also reports matched CloudX ad units, mapping gaps, and partner report freshness.GET /report/demand-comparison/ad-unitsreturns mapped partner aggregates by default. Setview=unmappedto return partner rows excluded because mappings are missing or ambiguous, withexcluded_partner_revenueandexcluded_partner_impressions.- Demand-source filters use repeated query parameters. Provider business, provider property, and CloudX ad-unit filters accept comma-separated values.
- The most recent completed date changes at 12:00 UTC.
iOS SDK — Google Waterfall adapter 13.9.0.0
Changed
- Certified with Google Mobile Ads SDK 13.9.0 —
CloudXCore >= 3.7.0and iOS 13.0 requirements are unchanged. Install:pod 'CloudXGoogleWaterfallAdapter', '~> 13.9.0.0'.
iOS SDK — Google Waterfall adapter 13.8.0.0
Changed
- Certified with Google Mobile Ads SDK 13.8.0 —
CloudXCore >= 3.7.0and iOS 13.0 requirements are unchanged. Install:pod 'CloudXGoogleWaterfallAdapter', '~> 13.8.0.0'.
iOS SDK — Google Waterfall adapter 13.7.0.0
Changed
- Certified with Google Mobile Ads SDK 13.7.0 —
CloudXCore >= 3.7.0and iOS 13.0 requirements are unchanged. Install:pod 'CloudXGoogleWaterfallAdapter', '~> 13.7.0.0'.
Fixed
- Manually integrated adapters now enforce the existing CloudXCore 3.7.0 minimum.
iOS SDK 3.9.1
Install: pod 'CloudXCore', '~> 3.9'
Changed
- Global ad-revenue delegates and MMP connectors no longer receive duplicate mediation-stack revenue when the server marks a bidder as SDK-reported. Per-ad revenue delegates and CloudX impression events are unchanged.
Fixed
- Rewarded and other fullscreen callbacks now use the placement and custom data from the accepted show. Consecutive rewarded ads no longer reuse missing or stale attribution.
iOS SDK — Digital Turbine adapter 8.4.10.0
Changed
- Certified with Fyber Marketplace SDK 8.4.10 — Requires iOS 15.0+ and Xcode 26.1+;
CloudXCore >= 3.5.0is unchanged. Includes improved click handling. Install:pod 'CloudXDigitalTurbineAdapter', '~> 8.4.10.0'.
iOS SDK — Moloco adapter 4.10.0.0
Changed
- Certified with MolocoSDKiOS 4.10.0 — Updates the bundled MolocoSDKiOS from 4.9.1 to 4.10.0. No integration change is required;
CloudXCore >= 3.5.0and iOS 13.0 are unchanged. Install:pod 'CloudXMolocoAdapter', '~> 4.10.0.0'.
iOS SDK — Moloco adapter 4.9.1.0
Changed
- Certified with MolocoSDKiOS 4.9.1 — Updates the bundled MolocoSDKiOS from 4.9.0 to 4.9.1. No integration change is required;
CloudXCore >= 3.5.0and iOS 13.0 are unchanged. Install:pod 'CloudXMolocoAdapter', '~> 4.9.1.0'.
iOS SDK — Moloco adapter 4.9.0.0
Changed
- Certified with MolocoSDKiOS 4.9.0 — Updates the bundled MolocoSDKiOS from 4.8.1 to 4.9.0. No integration change is required;
CloudXCore >= 3.5.0and iOS 13.0 are unchanged. Install:pod 'CloudXMolocoAdapter', '~> 4.9.0.0'.
iOS SDK — Moloco adapter 4.8.1.0
Changed
- Certified with MolocoSDKiOS 4.8.1 — Updates the bundled MolocoSDKiOS from 4.8.0 to 4.8.1. No integration change is required;
CloudXCore >= 3.5.0and iOS 13.0 are unchanged. Install:pod 'CloudXMolocoAdapter', '~> 4.8.1.0'.
iOS SDK — Pangle adapter 8.3.0.6.0
Changed
- Certified with Ads-Global 8.3.0.6 — Updates the bundled Ads-Global from 8.2.1.0 to 8.3.0.6. No integration change is required;
CloudXCore >= 3.5.0and iOS 13.0 are unchanged. Install:pod 'CloudXPangleAdapter', '~> 8.3.0.6.0'.
iOS SDK — Pangle adapter 8.2.1.0.0
Changed
- Certified with Ads-Global 8.2.1.0 — Updates the bundled Ads-Global from 8.2.0.9 to 8.2.1.0. No integration change is required;
CloudXCore >= 3.5.0and iOS 13.0 are unchanged. Install:pod 'CloudXPangleAdapter', '~> 8.2.1.0.0'.
iOS SDK — Pangle adapter 8.2.0.9.0
Changed
- Certified with Ads-Global 8.2.0.9 — Updates the bundled Ads-Global from 8.2.0.8 to 8.2.0.9. No integration change is required;
CloudXCore >= 3.5.0and iOS 13.0 are unchanged. Install:pod 'CloudXPangleAdapter', '~> 8.2.0.9.0'.
iOS SDK — Pangle adapter 8.2.0.8.0
Changed
- Certified with Ads-Global 8.2.0.8 — Updates the bundled Ads-Global from 8.2.0.7 to 8.2.0.8. No integration change is required;
CloudXCore >= 3.5.0and iOS 13.0 are unchanged. Install:pod 'CloudXPangleAdapter', '~> 8.2.0.8.0'.
CloudX CLI 0.38
Bidder breakdown reporting
CloudX CLI 0.38 adds bidder as a custom report dimension, including delivery and click metrics at bidder grain.
Added
- Bidder dimension — Use
bidderwithcloudx report breakdown --byfor periods beginning on or after June 1, 2026, and combine it withapp,format, andad_unitfor demand-source analysis. - Bidder delivery metrics — Request
bid_requests,fills,impressions,revenue,clicks, and rates.requestsremains the ad request count and repeats across bidder rows; usebid_requestsfor requests sent to each bidder. Read the docs →
cloudx report breakdown --by bidder,app,format,ad_unit --metrics requests,bid_requests,fills,impressions,clicks,ctrCloudX API — Bidder breakdown reporting
GET /report/breakdown accepts bidder as a by dimension for periods beginning on or after June 1, 2026. Combine it with app, format, and ad_unit to retrieve bidder-level bid requests, fills, impressions, revenue, clicks, and rates. requests remains the ad request count and repeats across bidder rows; use bid_requests for requests sent to each bidder.
iOS SDK — Unity Ads adapter 4.17.0.0
Added
- Compatibility-line release for Unity Ads 4.17.0 — The 4.19.0.0 adapter rebuilt against Unity Ads 4.17.0, same feature set, no source change. Install:
pod 'CloudXUnityAdsAdapter', '4.17.0.0'; requiresCloudXCore >= 3.5.0.
iOS SDK — Vungle adapter 7.7.1.0
Added
- Compatibility-line release for Vungle Ads SDK 7.7.1 — The 7.7.6.0 adapter rebuilt against Vungle Ads SDK 7.7.1, same feature set, no source change. Install:
pod 'CloudXVungleAdapter', '7.7.1.0'; requiresCloudXCore >= 3.5.0.
Flutter SDK 3.9.0
Moves the plugin onto the current CloudX native SDKs and adds Trusted Arbiter. The Dart package version follows the iOS CloudXCore line; the Android io.cloudx:sdk pin is listed with each release.
Native pins
API
CloudX.initializereturns aCloudXInitializationResult. Checkresult.success; a failure carries the native SDK’s error code, its name and its message, so a bad app key is distinguishable from a network failure.- Per-load extra parameters:
setBannerExtraParameter,setMrecExtraParameter,setInterstitialExtraParameterandsetRewardedExtraParameterattach a key and value to the next load of that ad unit. See per-load extra parameters. CloudXError.codeNamecarries the SDK’s own name for the code, so a log line readsNO_FILL[302]rather than302.CloudXInitializationResult.errorCodeNamedoes the same for an initialization failure.- New error codes:
CloudXErrorCode.adNotFound(403) when a show finds no ad for that ad unit, anddisplayHostUnavailable(404) when there is nothing to present from. - New load error codes:
loadNotAllowedWhileShowing(303) andloadFailed(304), plus a rejection an ad unit with a load already in flight can return, numbered 305 on Android and 306 on iOS. Handle both of those, because neither platform reports the other’s.
Trusted Arbiter
CloudX.arbitercompares a loaded CloudX ad with bids from platforms you mediate yourself and returns the platform to show. Bid factories cover CloudX, AdMob, Google Ad Manager, Unity LevelPlay, PubMatic, and custom inputs. See Trusted Arbiter.CloudX.reportRevenueDataforwards impression revenue from another mediation platform into CloudX. It is required for AdMob and Ad Manager bids, which CloudX prices from that history.CloudXAd.adValuesexposes the SDK metadata attached to a loaded ad. Pass theCloudXAdfromonAdLoadedstraight toCloudXArbiterBid.cloudX.
Ad behaviour
- iOS: fullscreen ads present from the topmost view controller, and a show over system UI such as an alert or share sheet is refused with the reason in the failure message.
- Revenue callbacks are suppressed in test mode, so sentinel test prices do not reach your revenue listener.
- An ad event whose payload was missing a field or carried an unexpected type used to be dropped before reaching your listener. The callback is now delivered with that field reported as absent.
Host app: network adapters
The published plugin is core-only. Adapters are versioned <network-sdk-version>.<adapter-revision> and move independently of the core SDKs, so an adapter version does not have to match the plugin version. The Flutter integration guide shows where to declare them and links the Android and iOS guides that carry the current versions and each network’s requirements.
Ad formats
This release serves banner, MREC, interstitial, and rewarded ads. Banner and MREC render as a programmatic overlay; interstitial and rewarded load and show through the programmatic API. See Banner & MREC, Interstitial, and Rewarded.
Unity SDK 4.7.0
SDK Updates
- Updated Android SDK from 4.6.0 to 4.7.0 — see Android SDK changelog for details
- Updated iOS SDK from 3.8.0 to 3.9.0 — see iOS SDK changelog for details
- Added the BIGO Ads adapter for Android. Uncomment
io.cloudx:adapter-bigo:6.0.1.0inAssets/CloudXSdk/Editor/CloudXDependencies.xmlto enable it. See BIGO Ads. - Updated the Android MobileFuse adapter from 1.11.0.1 to 1.12.0.0.
- Updated the iOS Mintegral adapter from 8.1.5.0 to 8.1.6.0.
- Updated the iOS Vungle adapter from 7.7.4.0 to 7.7.6.0.
iOS SDK 3.9.0
Install: pod 'CloudXCore', '~> 3.9'
Breaking Changes
- A third simultaneous
load()on one ad unit is now rejected — Two concurrent publisher-triggered loads per ad unit is the new default ceiling. A third fails throughdidFailToLoadAd:. Contact CloudX to raise the limit for your account. load()during a fullscreen ad no longer fails — A load requested while an interstitial, rewarded or app-open ad is on screen now waits and starts when that ad is dismissed. Remove any retry logic that handled the old immediate failure.- Manual banner
load()is ignored while auto-refresh is running — With auto-refresh on and an ad already showing,load()runs no auction and fires no delegate callback; a warning is logged instead. CallstopAutoRefreshfirst to drive refresh yourself.
Added
- Video creatives now render inline in banner and MREC slots — Inline video plays in the ad slot through a dedicated renderer. It starts muted and plays only while the slot is genuinely visible. Auto-refresh pauses until playback finishes.
- Optional ad caching and warm preload — A won but unshown ad can survive its ad object being destroyed and serve to the next object for the same ad unit, and an impression can start fetching the next ad. Both are off unless CloudX enables them for your account.
shouldPrepareViewForInteractionOnMainThreadonCLXNativeAd— Override it on a custom native ad to declare whether view preparation must run on the main thread. It defaults toYES, which matches existing behaviour.
Changed
- Faster first bid on a cold start — Bid tokens are now collected as each adapter finishes initializing, rather than when the first auction runs, so the first ad request returns sooner. Measured 230–272 ms faster time-to-first-bid.
- Auto-refresh disabled by CloudX stays disabled — When auto-refresh is turned off for an ad unit on the CloudX side,
startAutoRefresh()no longer re-enables it.load()still works, and pausing or resuming withstopAutoRefresh()is unaffected. - Banners refresh only while actually visible — A banner that is hidden, fully transparent, zero-sized or outside the visible window stops requesting new ads until it is on screen again. Expect fewer load requests and a higher impression rate per load.
- The generated native template view is sized from the creative — A native template view now derives its height from the creative’s aspect ratio and the width you give it, not a fixed 320x250. Read the height from
-sizeThatFits:; a hardcoded height clips the ad. - A fixed-size native template is still available —
+[CLXNativeAdView viewFromAd:withTemplate:]withmedium_templateis unchanged and still returns exactly 320x250.
Fixed
- Banner auto-refresh resumes after a brief interruption — Control Center, an incoming call or a Face ID prompt could stop a banner’s auto-refresh for the rest of the session. Refresh now resumes when your app becomes active again.
- Fullscreen ads present correctly when a modal is already open —
showFromViewController:now resolves the topmost view controller instead of failing. Ads are never presented over system UI such as alerts or share sheets, and the rejection reason is reported. - Test-mode sessions no longer report revenue — A test session fills at placeholder prices, so those figures are no longer sent to your revenue callback or forwarded to your attribution provider. Live sessions are unaffected.
- Your requested native template now reaches the auction — The native template you request is sent in the bid request, so bidders can return a creative that matches it. Previously the request was dropped before it left the SDK.
Dashboard — AdMob revenue counted once in Total Revenue
Google demand served through the AdMob estimated bidder was counted twice in Total Revenue: once by CloudX and again by your own AdMob reporting. The dashboard now subtracts the revenue CloudX recorded from the matching AdMob row, per mapped AdMob ad unit and day, so it counts once under CloudX. Those rows show only the Google traffic that did not go through CloudX, and net to zero rather than negative when CloudX recorded more. Automatic pricing still reads your full AdMob reporting.
Android SDK 4.7.0
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.
iOS SDK — Vungle adapter 7.7.6.0
Changed
- Certified with VungleAds 7.7.6 — Updates the bundled VungleAds SDK from 7.7.4 to 7.7.6. No integration change is required;
CloudXCore >= 3.5.0and iOS 13.0 are unchanged. Install:pod 'CloudXVungleAdapter', '~> 7.7.6.0'.
iOS SDK — Mintegral adapter 8.1.6.0
Changed
- Certified with MintegralAdSDK 8.1.6 — Updates the bundled MintegralAdSDK from 8.1.5 to 8.1.6. No integration change is required;
CloudXCore >= 3.5.0and iOS 13.0 are unchanged. Install:pod 'CloudXMintegralAdapter', '~> 8.1.6.0'.
iOS SDK — Pangle adapter 8.1.0.6.0
Added
- Compatibility-line release for Pangle Ads-Global 8.1.0.6 — The 8.2.0.7.0 adapter rebuilt against Ads-Global 8.1.0.6, same feature set, no source change. Install:
pod 'CloudXPangleAdapter', '8.1.0.6.0'; requiresCloudXCore >= 3.5.0.
iOS SDK — Pangle adapter 8.1.0.7.0
Added
- Compatibility-line release for Pangle Ads-Global 8.1.0.7 — The 8.2.0.7.0 adapter rebuilt against Ads-Global 8.1.0.7, same feature set, no source change. Install:
pod 'CloudXPangleAdapter', '8.1.0.7.0'; requiresCloudXCore >= 3.5.0.
iOS SDK — Moloco adapter 4.7.0.0
Added
- Compatibility-line release for MolocoSDKiOS 4.7.0 — The 4.8.0.0 adapter rebuilt against MolocoSDKiOS 4.7.0, same feature set, no source change. Install:
pod 'CloudXMolocoAdapter', '4.7.0.0'; requiresCloudXCore >= 3.5.0.
iOS SDK — Google Waterfall adapter 12.12.0.0
Added
- Compatibility-line release for Google Mobile Ads SDK 12.12.0 (12.12.0) — The 12.14.0.3 adapter rebuilt against Google Mobile Ads SDK 12.12.0, same feature set, no source change. Install:
pod 'CloudXGoogleWaterfallAdapter', '12.12.0.0'; requiresCloudXCore >= 3.7.0.
Demand — Intent IQ passthrough
CloudX now forwards publisher-provided Intent IQ IDs under intentiq.com with atype: 1.
- Publishers pass the ID with
setUserKeyValue("intentiq.com", id); no SDK update is required. - CloudX passes the ID unchanged and does not run Intent IQ server-side resolution. Demand partners activate
intentiq.comIDs through an Intent IQ partnership.
Unity SDK 4.6.1
What’s New
- Added
CloudXSdk.InvokeEventsOnUnityMainThreadto control which thread CloudX callbacks arrive on. Set it totruefor the Unity main thread,falsefor the native callback thread, or leave it unset for the default. See Callback Threading.
Fixes
- Ad callbacks are no longer lost. A handler that throws is logged with the event name and the failing handler instead of silently stopping the remaining handlers.
- Showing an interstitial, rewarded, or app open ad that is not ready now reports
OnAdShowFailedinstead of doing nothing. - A banner or MREC refresh that fails after a successful first load now reaches
OnAdLoadFailed. ReportRevenueDatanow logs why a payload was rejected, so an invalid revenue value, ad format, or platform name can be corrected.
SDK Updates
- Updated the iOS TaurusX adapter from 1.18.1.0 to 1.18.2.0.
iOS SDK — TaurusX adapter 1.18.2.0
Changed
- Certified with TaurusX SDK 1.18.2 — Updates the bundled TaurusX SDK from 1.18.1. No integration change is required;
CloudXCore >= 3.5.0and iOS 13.0 are unchanged. Install:pod 'CloudXTaurusXAdapter', '~> 1.18.2.0'.
iOS SDK — Mintegral adapter 8.1.3.0
Added
- Backport of the 8.1.5.0 adapter for MintegralAdSDK 8.1.3 — Compatibility-line release with the same Banner, MREC, Interstitial, Rewarded, Native and App Open support. Install:
pod 'CloudXMintegralAdapter', '8.1.3.0'; requiresCloudXCore >= 3.5.0.
iOS SDK — Meta adapter 6.20.1.0
Changed
- Audience Network 6.20.1 compatibility line — For apps pinned to Audience Network 6.20.1; keeps iOS 13. Native video options and AdChoices close reporting are unavailable at this version. Install:
pod 'CloudXMetaAdapter', '6.20.1.0'; requiresCloudXCore >= 3.5.0.
iOS SDK — Vungle adapter 7.6.3.0
Changed
- VungleAds 7.6.3 compatibility line (7.6.3) — For apps whose mediation stack pins VungleAds 7.6.3. No behavioral difference from the current line. Install:
pod 'CloudXVungleAdapter', '7.6.3.0'; requiresCloudXCore >= 3.5.0.
iOS SDK — Unity Ads adapter 4.16.3.0
Changed
- UnityAds 4.16.3 compatibility line — For apps pinned to UnityAds 4.16.3.
CLXUnityAdsRewardedgrants its reward on show completion, and ad expiry callbacks are unavailable. Install:pod 'CloudXUnityAdsAdapter', '4.16.3.0'; requiresCloudXCore >= 3.5.0.
iOS SDK — Mintegral adapter 8.0.3.0
Changed
- MintegralAdSDK 8.0.3 compatibility line (8.0.3) — For apps whose mediation stack pins Mintegral 8.0.3. No behavioral difference from the current line. Install:
pod 'CloudXMintegralAdapter', '8.0.3.0'; requiresCloudXCore >= 3.5.0.
React Native SDK 3.8.0
CloudX React Native 3.8.0 aligns the wrapper with CloudX iOS 3.8.0 and Android 4.6.0, refreshes the native adapter setup versions, and fixes two Android call-ordering problems. The JavaScript API is unchanged.
Changed
- Updated underlying native SDK pins to iOS
CloudXCore ~> 3.8.0and Androidio.cloudx:sdk:4.6.0. - (iOS) Meta adapter - Update setup to
pod 'CloudXMetaAdapter', '~> 6.22.0.0'. - (iOS) InMobi adapter - Update setup to
pod 'CloudXInMobiAdapter', '~> 11.4.1.0'. - (iOS) MobileFuse adapter - Update setup to
pod 'CloudXMobileFuseAdapter', '~> 1.11.0.1'. - Google adapters - Update setup to iOS
CloudXGoogleWaterfallAdapter ~> 13.6.0.4, Androidio.cloudx:adapter-googlewaterfall:25.2.0.5, and Android GMA Next-Genio.cloudx:adapter-admob:1.3.0.4. - (Android) Digital Turbine adapter - Update setup to
io.cloudx:adapter-digitalturbine:8.4.7.1.
Fixed
- (Android) Ad calls now run in the order you make them - Interstitial, app open and rewarded methods could run out of order. Destroying an ad and immediately loading it again could leave the load result never reaching your callbacks.
- (Android) Banner and MREC placement - Setting a position and then setting offsets no longer reverts the position to its previous value.
Platform Support
- iOS: CloudXCore ~> 3.8.0
- Android: io.cloudx:sdk:4.6.0
iOS SDK — Google Waterfall adapter 12.14.0.3
Changed
- Google adapter startup no longer delays CloudX SDK initialization (12.14.0) — Same change as 13.6.0.4, for Google Mobile Ads SDK 12.14.0. Install:
pod 'CloudXGoogleWaterfallAdapter', '12.14.0.3'; requiresCloudXCore >= 3.7.0.
iOS SDK — Google Waterfall adapter 13.6.0.4
Changed
- Google adapter startup no longer delays CloudX SDK initialization — The Google Mobile Ads SDK now starts in the background instead of holding up your
initializecall. A missingGADApplicationIdentifierin your Info.plist still fails initialization straight away. - An ad requested in the moment right after initialization may no-fill once — Google demand is ready as soon as its background start finishes. A request landing before then returns a fast no-fill for that one request instead of waiting, and the next request is served normally.
- Requires Google Mobile Ads SDK 13.6.0 exactly; requires
CloudXCore3.7.0 or newer. Install:pod 'CloudXGoogleWaterfallAdapter', '~> 13.6.0.4'.
Unity SDK 4.6.0
Fixes
- iOS banners and MRECs now render as soon as they are shown, instead of staying blank until the next refresh.
SDK Updates
- Updated Android SDK from 4.5.1 to 4.6.0 — see Android SDK changelog for details
- Updated iOS SDK from 3.7.0 to 3.8.0 — see iOS SDK changelog for details
- Updated Android Google Waterfall, AdMob, and Magnite adapter pins.
- Updated iOS Google Waterfall, InMobi, and MobileFuse adapter pins.
iOS SDK 3.8.0
Install: pod 'CloudXCore', '~> 3.8'
Added
- Video in banner and MREC ads now starts muted — Video creatives in banner and MREC placements begin playback muted; a creative can only unmute in response to a user tap on its own controls.
- Google Ad Manager Prebid integration — Now available as
pod 'CloudXGAMPrebid', '~> 1.0', letting CloudX demand compete as prebid line items in your Google Ad Manager auction for banner, MREC, interstitial, rewarded, and native. Requires CloudXCore 3.8.0.
Fixed
- Revenue and click callbacks always delivered — Ads with incomplete bid metadata could serve and earn while the revenue and click callbacks were silently skipped. These callbacks now always fire, so your ILRD matches CloudX reporting.
- Calling
load()on a visible banner no longer leaks the replaced ad — Publisher-driven banner/MREC refresh viaload()leaked the previous ad’s web view and media resources for the rest of the session. The replaced ad now tears down correctly. - Video impressions tracked when viewability measurement fails to start — Some VAST video ads rendered and played but were never counted as impressions. They now bill and fire their tracking beacons correctly.
- Long tracking URLs no longer dropped — VAST tracking beacons with URLs up to 10KB now fire; previously URLs over 2KB were silently dropped.
- Faster handling of concurrent network responses — Network completions are no longer processed one at a time, so one slow response can no longer delay other finished requests during init and bidding.
iOS SDK — MobileFuse adapter 1.11.0.1
Fixed
- Reading the MobileFuse SDK version no longer blocks the calling thread — Removes a stall on the bid-token path. MobileFuseSDK 1.11.0 and
CloudXCore >= 3.5.0are unchanged. Install:pod 'CloudXMobileFuseAdapter', '~> 1.11.0.1'.
Dashboard — Bidder Funnel reporting
Reporting can now be viewed as a Bidder Funnel as well as the existing Auction Funnel. Open the report heading above the date controls to switch.
Auction Funnel counts one row per ad request, so a bidder only appears once it has won. Bidder Funnel splits the same auctions by the bidders they called, adding the missing denominators: how often each bidder was asked to bid, how often it responded, and what it bid when it lost. Break the funnel down by app, bidder, ad format, OS, country, priority, ad unit, round, bid outcome, and SDK error.
Android SDK 4.6.0
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.
iOS SDK — Google Waterfall adapter 13.6.0.3
Changed
- Fullscreen ads prefetch through Google’s ad-preloading API — Interstitial, rewarded, and app-open ads are preloaded by the Google Mobile Ads SDK, not the adapter;
CLXGoogleWaterfallFullscreenLoaderis removed. Banner, MREC, and native are unchanged, and no publisher action is needed. - Requires Google Mobile Ads SDK 13.6.0 exactly; requires
CloudXCore3.7.0 or newer. Install:pod 'CloudXGoogleWaterfallAdapter', '~> 13.6.0.3'.
Demand — EUID passthrough
CloudX now forwards publisher-provided EUID advertising tokens under euid.eu. EUID is the European counterpart to UID2 and uses atype: 3.
- Publishers pass the advertising token with
setUserKeyValue("euid.eu", token); no SDK update is required. - CloudX passes the token unchanged. Authorized demand partners decrypt it through their EUID bidstream integration.
Demand — Extended identifiers
CloudX now forwards publisher-provided UID 2.0, LiveRamp, and ID5 values on bid requests. Publishers pass them with the existing setUserKeyValue API; no SDK update is required.
- Publisher keys are
uidapi.com(UID2 advertising token),liveramp.com(LiveRamp ATS envelope, not a RampID), andid5-sync.com(ID5 universal UID). - OpenRTB 2.6 bidders read
user.eids. OpenRTB 2.5 bidders readuser.ext.eids. - CloudX does not generate, decrypt, or replace these values and does not run LiveRamp Sidecar.
Publisher setup: Android, iOS, Unity, React Native, and Flutter
Demand partner setup: Read the extended identifier docs →
Dashboard — Ad Tracking YAML fields deprecated
Inventory YAML no longer accepts Ad Tracking keys under target, including
att_status, attStatus, att, exclude.att, and exclude.att_status.
Publishers should remove these deprecated fields rather than migrate their
values to ifa_present, because tracking permission and identifier presence
are different signals. Use ifa_present only for new identifier-presence
targeting.
Android SDK 4.5.2
Changed
- Play SDK Console Verification - The published Android SDK artifact now includes the ownership metadata required for verification in Google Play SDK Console.
Android SDK 4.5.1
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.
iOS SDK — InMobi adapter 11.4.1.0
Changed
- Certified with InMobiSDK 11.4.1 — Improves audio handling for MRAID 3 creatives, so an ad no longer interrupts audio your app is already playing. Requires
CloudXCore >= 3.5.0, unchanged. Install:pod 'CloudXInMobiAdapter', '~> 11.4.1.0'.
Unity SDK 4.5.1
What’s New
- Added support for Vertical Banner, so landscape apps with limited vertical space can also include banners. Use
CloudXAdViewConfiguration.AdViewVerticalPosition.Leftand.Rightfor left- and right-edge banner slots.
Integration Notes
- Apps using iOS Meta adapter
6.22.0.0must target iOS 15 or newer. Apps supporting iOS 13 or 14 should stay on6.21.1.0.
SDK Updates
- Updated Android SDK from 4.5.0 to 4.5.1 — see Android SDK changelog for details
- Updated Android Mintegral, Google Waterfall, Digital Turbine, and AdMob adapter pins.
- Updated iOS Meta adapter from 6.21.1.0 to 6.22.0.0.
iOS SDK — Meta adapter 6.22.0.0
Changed
- Requires iOS 15 — Certified with Meta Audience Network 6.22.0, which requires iOS 15.0. Apps that still support iOS 13 or 14 should stay on 6.21.1.0. Install:
pod 'CloudXMetaAdapter', '~> 6.22.0.0'. - New Meta ad formats — Audience Network 6.22 adds eCommerce and catalog formats, chained ads on iOS, and playable improvements. Meta serves these; no integration change is needed beyond updating the adapter.
CloudX CLI 0.37
Unified activity exports
CloudX CLI 0.37 adds a unified command group for asynchronous, full-day impression, request, and bid activity exports.
Added
- Unified export commands — Use
cloudx export impressions,cloudx export requests, andcloudx export bids. The existingcloudx report impressions exportcommand remains available for compatibility. - Request activity exports — Export one row per auction request, including outcomes and bidder-funnel fields. Read the docs →
- Bid activity exports — Export bids, no-bids, timeouts, and errors. Winning prices are included; losing prices are redacted. Use
--bids-onlyto include bid responses only. Read the docs → - Asynchronous downloads — Export completed UTC days from the previous 45 days, apply focused filters, and use
--waitor--output <path>to retrieve the result.
CloudX API — Activity exports
The public API now supports asynchronous, full-day impression, request, and bid activity exports.
Added
- Unified export endpoints — Create or reuse exports with
POST /export/impressions,POST /export/requests, andPOST /export/bids, then poll the matchingGETendpoint for status and a short-lived download URL. - Request and bid activity — Request exports include auction outcomes and bidder-funnel fields. Bid exports include bids, no-bids, timeouts, and errors, with losing prices redacted. Request export docs → Bid export docs →
iOS SDK 3.7.0
Install: pod 'CloudXCore', '~> 3.7'
Added
- AdMob and Google Ad Manager bids in the Trusted Arbiter — New
CLXArbiterBidfactoriesadMob(adUnitId:)andgam(adUnitId:), no price required: CloudX prices the bid from revenue reported viareportRevenueData(_:). Optional per-impression USD override. CLXRevenuePlatformGAM— Report Google Ad Manager revenue throughreportRevenueData(_:); GAM paid events now also feed arbiter bid pricing.
Changed
- Adapter-facing
CLXBidRoutenative routing — Headers used by CloudX adapters gained native routing support (CLXBidRoute,CLXNativeParsedAdKey). Internal to CloudX adapters; no publisher action needed.
Fixed
- Core-only integrations initialize again — Apps integrating
CloudXCorewith no adapter pods failed to initialize (error 201) and could not run auctions. Both now work. - Banner and MREC views no longer leak — Auto-refreshing inline ad views could be retained for the rest of the session, causing unbounded memory growth in long-running apps. They now release correctly.
- Releasing an ad without
destroy()now cleans up — Dropping your last reference to an ad object without callingdestroy()now tears down the ad and its resources; previously they leaked silently. - Rare crash during ad cleanup fixed — A narrow internal race could abort the process while an ad’s resources were being released.
- Portrait native creatives render at their reported aspect ratio — Vertical (e.g. 9:16) creatives in the SDK native template no longer appear letterboxed in a landscape box. The template view for a portrait creative is now taller (320x548 instead of 320x250).
- No-bid auctions no longer log at ERROR — A normal no-bid outcome now logs at DEBUG, so error logs and crash-tooling alerts only reflect genuine failures.
iOS SDK — Google Waterfall adapter 13.6.0.2
Added
- Google Ad Manager demand —
CLXGoogleWaterfallPlacementTypeGamplacements load via the GAM request surface (banner, MREC, interstitial); revenue measured from realized GAM revenue history. Install:pod 'CloudXGoogleWaterfallAdapter', '~> 13.6.0.2'; requiresCloudXCore >= 3.7.0.
Changed
- Realized-price bookkeeping moved into
CloudXCore— The adapter’sCLXGoogleWaterfallRealizedPriceStoreheader is removed;CloudXCore3.7.0 now keeps this history using the same storage keys. No publisher action needed.
iOS SDK — Google Waterfall adapter 12.14.0.2
Added
- Google Ad Manager demand (12.14.0) — Same support as 13.6.0.2 (
CLXGoogleWaterfallPlacementTypeGamplacements;CLXGoogleWaterfallRealizedPriceStorenow in core), for Google Mobile Ads SDK 12.14.0. Install:pod 'CloudXGoogleWaterfallAdapter', '12.14.0.2'; requiresCloudXCore >= 3.7.0.
React Native SDK 3.7.0
CloudX React Native 3.7.0 aligns the wrapper with CloudX iOS 3.7.0 and Android 4.5.0. It adds Google demand to Trusted Arbiter, adds Google Ad Manager revenue reporting, and updates native setup pins and connector guidance.
Added
- Trusted Arbiter Google bids - Use
CloudXArbiterBid.adMob()andCloudXArbiterBid.gam()to compare CloudX with loaded AdMob or Google Ad Manager ads. - Google Ad Manager revenue reporting - Use
CloudXRevenuePlatform.GAMwithCloudX.reportRevenueData()so GAM paid events feed reporting and Trusted Arbiter pricing. - (iOS) TaurusX adapter - Add
pod 'CloudXTaurusXAdapter', '~> 1.18.1.0'for Banner, MREC, Interstitial, and Rewarded demand. - Optional MMP connector setup - React Native host apps can add Adjust and AppsFlyer native ad-revenue connectors on iOS and Android without JavaScript glue code.
- (Android) Native test ads in Banner and MREC - CloudX test ads can now render native creatives inside Banner and MREC placements.
Changed
- Updated underlying native SDK pins to iOS
CloudXCore ~> 3.7.0and Androidio.cloudx:sdk:4.5.0. - Google adapters - Update setup to iOS
CloudXGoogleWaterfallAdapter ~> 13.6.0.2, Androidio.cloudx:adapter-googlewaterfall:25.2.0.2, and Android GMA Next-Genio.cloudx:adapter-admob:1.3.0.1. - (Android) Meta adapter - Update setup to
io.cloudx:adapter-meta:6.22.0.0. Apps using this adapter must compile with Android API 36. - (Android) Mintegral adapter - Update setup to
io.cloudx:adapter-mintegral:17.1.71.1. - (Android) React Native 0.82+ support - Android host apps on React Native 0.82+ now build with the required New Architecture path automatically.
Fixed
- (iOS) Banner and MREC resource cleanup - Auto-refreshing inline ad views and ads released without
destroy()now clean up correctly. - (Android) Fullscreen callback reliability - Interstitial and rewarded ads no longer replay stale errors when showing, and late network callbacks after destroy are handled safely.
Platform Support
- iOS: CloudXCore ~> 3.7.0
- Android: io.cloudx:sdk:4.5.0
Unity SDK 4.5.0
What’s New
- Added AdMob and Google Ad Manager bids to Trusted Arbiter with
CloudXArbiterBid.AdMob(...)andCloudXArbiterBid.Gam(...). CloudX can price them from reported revenue. - Added
CloudXRevenuePlatform.Gamso apps can forward Google Ad Manager paid events throughCloudXSdk.ReportRevenueData(...). - Added Google Ad Manager demand support to the Google Waterfall Unity adapter; CloudX configuration selects AdMob or GAM per placement.
- Added TaurusX adapter support for Android and iOS.
- Added optional Adjust and AppsFlyer ad-revenue connectors so Unity apps can forward CloudX-won impression revenue to their MMP without Unity C# glue code.
Integration Notes
- Android projects using Meta adapter
6.22.0.0must compile with Android API 36 because Meta Audience Network6.22.0depends onandroidx.browser:1.9.0.
SDK Updates
- Updated Android SDK from 4.4.0 to 4.5.0 — see Android SDK changelog for details
- Updated iOS SDK from 3.6.0 to 3.7.0 — see iOS SDK changelog for details
- Updated Google Waterfall adapter pins to Android 25.2.0.2 and iOS 13.6.0.2.
- Updated Android Meta adapter to 6.22.0.0 and optional Android AdMob adapter to 1.3.0.1.
Android SDK 4.5.0
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.
iOS SDK — TaurusX adapter 1.18.1.0
Added
- TaurusX adapter — New
CloudXTaurusXAdapterserving Banner, MREC, Interstitial, Rewarded, and Native. Install:pod 'CloudXTaurusXAdapter', '~> 1.18.1.0'. Backed by TaurusX SDK 1.18.1; requiresCloudXCore >= 3.5.0.
React Native SDK 3.6.1
CloudX React Native 3.6.1 adds Trusted Arbiter custom bid inputs, improves Android no-winner handling, and refreshes the iOS Pangle adapter pin. Existing ad format integrations remain unchanged.
Added
- Trusted Arbiter custom bids - Use
CloudXArbiterBid.custom()to compare CloudX against publisher-supplied mediation or network bids.
Changed
- (iOS) Pangle adapter - Update iOS setup to
pod 'CloudXPangleAdapter', '~> 8.2.0.7.0'.
Fixed
- (Android) Trusted Arbiter no-winner result - Android now returns
NONEwhen no valid custom bid wins.
Platform Support
- iOS: CloudXCore ~> 3.6.0
- Android: io.cloudx:sdk:4.4.0
Unity SDK 4.4.1
What’s New
- Added custom trusted-arbiter bids with
CloudXArbiterBid.Customfor mediation platforms without a dedicated bid type. - Added
CloudXArbiterPlatform.CustomandCloudXArbiterResult.PlatformNameso custom arbiter winners can identify the originating mediator.
Migration Notes
CloudXArbiterResultnow includesPlatformName; code that directly constructs or deconstructs this record must include the new value.
Changed
- Regenerated CloudX SDK asset GUIDs to avoid import collisions in Unity projects; assembly definition GUIDs are unchanged.
- Updated the Unity demo arbiter verification button to run CloudX, LevelPlay, PubMatic, and custom bid scenarios.
SDK Updates
- Updated the iOS Pangle adapter from 7.9.1.3.0 to 8.2.0.7.0.
Dashboard — TopOn data source
TopOn is now available as a mediation network data source in the Total Revenue dashboard. Configure it in Data Sources.
iOS SDK — Pangle adapter 8.2.0.7.0
Changed
- Pangle
CloudXPangleAdapter→~> 8.2.0.7.0(Ads-Global 8.2.0.7). Install:pod 'CloudXPangleAdapter', '~> 8.2.0.7.0'; requiresCloudXCore >= 3.5.0.
Dashboard — Total Revenue dashboard
Total Revenue brings your CloudX and connected mediation-platform performance into one dashboard, so you can compare aggregate monetization results in one place. Read the docs →
iOS SDK — Google Waterfall adapter 12.14.0.1
Fixed
- Prefetched Google ads could be shown after expiring (12.14.0) — Backport of the 13.6.0.1 fix for Google Mobile Ads SDK 12.14.0; fills now expire and refresh before stale, preventing blank renders. Install:
pod 'CloudXGoogleWaterfallAdapter', '12.14.0.1'; requiresCloudXCore >= 3.5.0.
React Native SDK 3.6.0
CloudX React Native 3.6.0 aligns the wrapper with CloudX iOS 3.6.0 and Android 4.4.0. It adds App Open and publisher-reported revenue APIs, updates native dependency pins, and preserves existing banner, MREC, interstitial, and rewarded integrations without migration.
Added
- App Open ads - Added
CloudXAppOpenAdanduseCloudXAppOpenfor full-screen app launch and foreground placements, backed by the native App Open support in CloudX iOS and Android. - Publisher-reported revenue API - Added
CloudX.reportRevenueData()withCloudXRevenueDataso apps can forward mediation paid events into CloudX reporting. Pass revenue as a JavaScriptnumberin currency units, not micros. - Expanded native adapter setup - React Native apps can use the native adapter set for this release, including independent iOS adapter pins and the Android TaurusX adapter.
Changed
- Updated underlying native SDK pins to iOS
CloudXCore ~> 3.6.0and Androidio.cloudx:sdk:4.4.0. - (iOS) Removed
CloudXRendererfrom setup - Do not addCloudXRendererin React Native Podfiles. Renderer functionality is built intoCloudXCorestarting with iOS 3.5.0. - (iOS) Independent adapter versioning - iOS setup now uses separate adapter versions and
CloudXMagniteAdapterV2, matching the iOS 3.5+ native packaging model. - (Android) Safer load and prefetch behavior - Includes Android 4.3.0 improvements for duplicate
load()calls and stale Google Waterfall prefetched fills.
Fixed
- (iOS) CloudX-served creative rendering - Includes iOS 3.6.0 fixes for blank banner and MREC creatives and rejected HTML rewarded creatives.
- (Android) Runtime compatibility - Includes Android 4.4.0 fixes for telephony permission checks and VAST tracker compatibility on the SDK’s minimum Android version.
- (Android) Native impression revenue - Includes Android 4.3.0 reliability fixes for synchronous native impression revenue callbacks.
Platform Support
- iOS: CloudXCore ~> 3.6.0
- Android: io.cloudx:sdk:4.4.0
Unity SDK 4.4.0
What’s New
- Added App Open ads through
CloudXSdk.LoadAppOpen,CloudXSdk.ShowAppOpen,CloudXSdk.IsAppOpenReady,CloudXSdk.DestroyAppOpen, andCloudXAdsCallbacks.AppOpen. - Added publisher revenue reporting with
CloudXSdk.ReportRevenueData(CloudXRevenueData data), including AdMob, InMobi, TopOn, and custom platform names.
Fixed
- Fixed Unity main-thread callback dispatch so native callbacks that enqueue Unity work no longer deadlock callback delivery.
SDK Updates
- Updated Android SDK from 4.1.7 to 4.4.0 — see Android SDK changelog for details
- Updated iOS CloudXCore from 3.4.6 to 3.6.0
- Updated iOS Google Waterfall adapter from 3.4.6 to 13.6.0.1
- Updated Unity demo Android adapter pins: Vungle 7.7.7.0, InMobi 11.4.0.1, Mintegral 17.1.71.0, Moloco 4.11.0.0, Verve 3.9.0.1, Google Waterfall 25.2.0.1, Digital Turbine 8.4.7.0, and Pangle 8.2.0.4.0.
Android SDK 4.4.0
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.
iOS SDK 3.6.0
Install: pod 'CloudXCore', '~> 3.6'
Added
- Report impression-level revenue from your own mediation platform — Forward paid events to CloudX with
reportRevenueData(_:). AdMob, InMobi, and TopOn are built in. - App-wide ad-revenue delegate — Receive impression-level revenue for every CloudX-won impression from one
CLXAdRevenueDelegateinstead of per ad. Register withaddAdRevenueDelegate(_:). - AppsFlyer ad-revenue connector — Forward CloudX impression revenue to AppsFlyer. Install:
pod 'CloudXAppsFlyerConnector', '~> 6.15.0.0'. RequiresAppsFlyerFramework >= 6.15.0. - Adjust ad-revenue connector — Forward CloudX impression revenue to Adjust. Install:
pod 'CloudXAdjustConnector', '~> 5.0.0.0'. RequiresAdjust >= 5.0.0.
Fixed
- Banner and MREC creatives could render blank on the CloudX renderer — Creatives could fail on first load and after refresh, surfacing as blank impressions. They now render correctly.
- HTML rewarded creatives were rejected on the CloudX renderer — The renderer accepted only VAST rewarded creatives, so HTML rewarded ads failed to load. HTML rewarded creatives now render.
Removed
- Internal headers removed from the
CloudXCore.humbrella — Internal implementation headers were removed from the umbrella; none was linkable, so no integration is affected. Report revenue throughreportRevenueData(_:)and the public revenue types.
React Native SDK 3.4.7
Adds an in-tree React Native component API for banner and MREC ads while preserving the existing programmatic overlay API.
Added
- Component banner and MREC views - Publishers can now render
CloudXBannerViewandCloudXMRECViewdirectly inside React Native layouts, so ads participate in normal view positioning, safe-area handling, and overlay z-ordering. - Declarative component metadata - Component banners and MRECs support
placement,customData, andextraParametersprops for reporting and network/server configuration. - Component callbacks - Component views support
onAdLoaded,onAdLoadFailed,onAdClicked, andonAdRevenuePaidcallback props.
Changed
- Updated the underlying Android native pin to
io.cloudx:sdk:4.1.7(iOSCloudXCore ~> 3.4.5is unchanged). - The existing
CloudXBannerAdandCloudXMRECAdprogrammatic overlay APIs remain available for apps that need fixed native overlay positioning.
Platform Support
- iOS: CloudXCore ~> 3.4.5
- Android: io.cloudx:sdk:4.1.7
Demand — zstd bid compression
CloudX now supports zstd compression for OpenRTB traffic with demand partners, on both bid requests and bid responses.
- Bid requests can be sent with
Content-Encoding: zstd; gzip remains supported. - When CloudX advertises
Accept-Encoding: gzip, zstd, partners may respond with gzip or zstd. - Contact CloudX to enable zstd for your bidder endpoint.
Demand — Vrtcal bidder guide (beta)
Added a publisher-facing Vrtcal setup guide for CloudX’s SDK-less Vrtcal integration.
- Enable Vrtcal under Bidders with no credentials or placement mappings
- Add Banner, MREC, Interstitial, and Rewarded line items
- Confirm any required app-ads.txt entries before live traffic
Dashboard — Ad position overrides
You can now set the bidder-facing ad position signal when creating or editing an ad unit in the Dashboard.
Accurate position signals help bidders understand where an ad appears on screen and can improve how they value the opportunity.
- Keep Default (recommended) to use CloudX’s current defaults: Banner sends
1(above the fold), MREC omits the position signal, and fullscreen formats send7(full screen). - Choose a value from
0to7when the ad’s actual on-screen position differs from the default. - Return to Default (recommended) to clear a saved override.
This setting changes the bidder-facing OpenRTB/AdCOM banner.pos or video.pos field. It does not reposition the ad in your app. Read the docs →
Dashboard — IFA presence targeting for manual floors
Manual line-item floors can now target requests based on whether the device provides a usable advertising identifier.
- Choose Any IFA to leave IFA presence unrestricted.
- Choose Has IFA to target requests with a usable identifier.
- Choose No IFA to target requests where the identifier is empty, whitespace-only, unavailable, or the nil UUID (
00000000-0000-0000-0000-000000000000). - Combine IFA presence with country targeting to set different floors for each traffic cohort.
In YAML configuration, omit ifa_present for Any IFA, set ifa_present: true for Has IFA, or set ifa_present: false for No IFA.
Dashboard — CloudX Agent
CloudX Agent is now available throughout the Dashboard through Ask CloudX. It uses the current page as context and can work across inventory, configuration, reporting, auction data, and CloudX product documentation.
Use it to:
- analyze pricing opportunities and prepare floor changes by ad unit, country, or format
- create, monitor, end, and promote A/B tests
- manage bidder participation and network mappings
- diagnose eCPM and fill-rate changes
- validate inventory and import configuration from CSV or spreadsheet files
- trace published changes to a configuration version, timestamp, and author
Configuration changes require an in-chat review and explicit approval before CloudX validates and publishes them. Read the docs →
Android SDK 4.3.0
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.
iOS SDK — Google Waterfall adapter 13.6.0.1
Fixed
- Prefetched Google ads could be shown after they expired — Prefetched fills now expire and refresh in the background before going stale, preventing blank renders. Install:
pod 'CloudXGoogleWaterfallAdapter', '~> 13.6.0.1'. RequiresCloudXCore >= 3.5.0.
CloudX CLI 0.36
Impression-level revenue exports
CloudX CLI 0.36 adds asynchronous, full-day impression revenue exports for account-scoped analysis and reconciliation.
Added
- Impression-level CSV exports — Added
cloudx report impressions export --date YYYY-MM-DDto create or reuse a gzip-compressed CSV containing one row per impression. Completed UTC days from the previous 45 days are supported. Read the current docs → - Focused export filters — Filter by app ID or bundle, ad unit ID, country, device OS, bidder, line item, and production/test traffic.
- Asynchronous download workflow — Use
--waitto poll for completion or--output <path>to wait and securely download the result from a short-lived URL.
cloudx report impressions export --date 2026-07-16 --output ./impressions-2026-07-16.csv.gziOS SDK — Off-line adapter releases (-core34)
Off-line builds of three adapters for publishers still on CloudXCore 3.4.x. Each works with CloudXCore 3.4.5 or 3.4.6 and is not compatible with CloudXCore 3.5.x. Pin the exact version shown — these versions are never picked up by pod update automatically.
- Google Waterfall —
pod 'CloudXGoogleWaterfallAdapter', '13.0.0.0-core34'. Backed by Google Mobile Ads SDK 13.0.0. RequiresCloudXCore >= 3.4.6, < 3.5. - Unity Ads —
pod 'CloudXUnityAdsAdapter', '4.16.5.0-core34'. Backed by UnityAds 4.16.5. RequiresCloudXCore >= 3.4.5, < 3.5. Reward is granted on completed ad watch; UnityAds 4.16.5 provides no ad-expiry callback, so expired creatives are not signaled. - Moloco —
pod 'CloudXMolocoAdapter', '4.3.0.0-core34'. Backed by MolocoSDKiOS 4.3.0. RequiresCloudXCore >= 3.4.5, < 3.5.
iOS SDK — MobileFuse adapter 1.11.0.0
Added
- MobileFuse adapter — New
CloudXMobileFuseAdapterserving Banner, MREC, Interstitial, and Rewarded. Install:pod 'CloudXMobileFuseAdapter', '~> 1.11.0.0'. Backed by MobileFuse SDK 1.11.0; requiresCloudXCore >= 3.5.0.
Android SDK 4.2.0
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.
iOS SDK 3.5.0
Adapters now version independently of CloudXCore. Each adapter pod uses <network-sdk-version>.<adapter-revision> (e.g. pod 'CloudXVungleAdapter', '~> 7.7.4.0') and is tied to one exact network SDK version per release. CloudXCore continues on SDK semver (pod 'CloudXCore', '~> 3.5').
Breaking Changes
- Adapter pods no longer share the
CloudXCoreversion. Existing pins on the old unified line (~> 3.4,~> 3.x) will not resolve new adapter releases. Update each adapter pin independently, for examplepod 'CloudXMintegralAdapter', '~> 8.1.5.0'. CloudXMagniteAdapterV2replacesCloudXMagniteAdapterfor independent versioning. Installpod 'CloudXMagniteAdapterV2', '~> 1.0.0.0'to move to the new version line; the legacy pod remains on the old line. No source changes — the import name is unchanged.CloudXRendereris no longer a separate pod. Its functionality is built intoCloudXCore; remove any directCloudXRendererdependency from your Podfile.
Added
- Trusted Arbiter Custom Bids — Added mediator-agnostic custom bid inputs with
CLXArbiterBid.custom(...),CLXArbiterPlatform.custom, andCLXArbiterPrecision. - App Open ad format — New
CLXAppOpenad class for full-screen ads shown while your app loads or returns to the foreground. Create withcreateAppOpen(adUnitId:). Supported on the Google Waterfall, Mintegral, Pangle, and Vungle adapters. - VAST video interstitials and rewarded on the CloudX renderer — The CloudX renderer now serves VAST video interstitial and rewarded creatives, with Open Measurement (OMID) video measurement. Rollout is controlled server-side; no integration change is required.
- HTML rewarded on the CloudX renderer — HTML rewarded creatives now render through the CloudX renderer, completing the fullscreen HTML support introduced for interstitials in 3.4.5. Server-side rollout; no integration change required.
- Native ads on Digital Turbine, Mintegral, Pangle, Verve, and Google Waterfall — These adapters now serve Native creatives, standalone and native-in-banner / native-in-MREC.
- Google Waterfall — Interstitial and Rewarded —
CloudXGoogleWaterfallAdapternow serves fullscreen Interstitial and Rewarded creatives, in addition to Banner, MREC, Native, and App Open. - In-app App Store sheet for install-ad clickthroughs — Tapping an install-campaign ad now opens an in-app App Store product sheet instead of leaving your app, for CloudX-rendered creatives that declare the advertised app.
- Fullscreen HTML interstitial clickthrough — Fullscreen HTML interstitials rendered by the CloudX renderer now navigate on tap.
CloudXMagniteAdapterV21.0.0.1 — the new independent-versioned Magnite pod. Install:pod 'CloudXMagniteAdapterV2', '~> 1.0.0.0'. Backed by MagniteSDK 1.0.0.
Changed — Adapter releases
- Vungle
CloudXVungleAdapter→~> 7.7.4.0(VungleAds 7.7.4). - Mintegral
CloudXMintegralAdapter→~> 8.1.5.0(MintegralAdSDK 8.1.5). - Unity Ads
CloudXUnityAdsAdapter→~> 4.19.0.0(UnityAds 4.19.0). - Verve
CloudXVerveAdapter→~> 3.9.0.0(HyBid 3.9.0). - Digital Turbine
CloudXDigitalTurbineAdapter→~> 8.4.8.0(Fyber Marketplace SDK 8.4.8). - Google Waterfall
CloudXGoogleWaterfallAdapter→~> 13.6.0.0(Google Mobile Ads SDK 13.6.0 — a major-version upgrade from 12.x). - InMobi
CloudXInMobiAdapter→~> 11.3.0.0(InMobiSDK 11.3.0). - Meta
CloudXMetaAdapter→~> 6.21.1.0(FBAudienceNetwork 6.21.1). - Moloco
CloudXMolocoAdapter→~> 4.8.0.0(MolocoSDKiOS 4.8.0). - Pangle
CloudXPangleAdapter→~> 7.9.1.3.0(Ads-Global 7.9.1.3).
Fixed
- Some bidders were not billed for certain banner impressions — Native ads rendered in a banner slot (native-in-banner) could be counted without the bidder billing notice, so the bidder was never billed. Impressions are now billed correctly in all cases.
- Native ads in a banner or MREC slot could report their impression too early — A native ad in a banner or MREC slot could fire its impression before the ad view was actually visible, especially when preloading off-screen. Impressions now report at the correct time.
- Stuck fullscreen ad after a rendering crash — If the web content behind a fullscreen ad crashed after the ad loaded, the user could be left on a stuck fullscreen. The ad now closes automatically and delivers the close callback.
- Native ads in banner slots could miss impressions with compact layouts — Fixed an issue where a native ad rendered in a banner slot with the compact template could display without registering an impression.
Removed
CloudXRendererstandalone pod — merged intoCloudXCore. See Breaking Changes above.
Unity SDK 4.1.7
What’s New
- Added APIs for per-request bid floor overrides so publishers can send request-scoped floor controls through the SDK bid pipeline
SDK Updates
- Updated Android SDK from 4.1.5 to 4.1.7 — see Android SDK changelog for details
- Updated iOS SDK from 3.4.5 to 3.4.6 — see iOS SDK changelog for details
iOS SDK 3.4.6
Changed
CloudXMolocoAdapternow supports the full MolocoSDK 4.x line — TheMolocoSDKiOSrequirement was widened from~> 4.6.0to>= 4.6.0, < 5.0, so you can adopt newer 4.x Moloco SDK releases. This resolves a CocoaPods dependency conflict that could block integration.
Fixed
- Rare crash when an ad finished loading — Fixed a rare crash that could occur when a banner or fullscreen (interstitial / rewarded) ad finished loading. Affected ads now load and report their result reliably.
- Duplicate banner impressions after a no-fill refresh — A banner whose auto-refresh returned no bid could re-display the previous creative and count extra impressions. A no-bid refresh now shows nothing and reports no impression.
CloudX CLI 0.35
A/B test country targeting
CloudX CLI 0.35 lets A/B test config edits set geo targeting for the test variant directly from the terminal.
Added
- A/B test geo targeting — Added
--countrytocloudx config edit create-ab-testandcloudx config edit update-ab-test. The flag accepts repeated or comma-separated ISO 3166-1 alpha-2 or alpha-3 country codes, and CloudX stores the test-variant targeting as alpha-3 codes. Read the docs →
cloudx config edit create-ab-test --ad-unit-id au_123 --name "US/GB test" --country US --country GBAndroid SDK 4.1.7
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.
Android SDK 4.1.6
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.
React Native SDK 3.4.6
Aligns the React Native wrapper with CloudX native Android 4.1.5; iOS stays on 3.4.5. There are no JavaScript API changes in this release.
Added
- (Android) MobileFuse adapter availability - MobileFuse demand can now be added to Android React Native apps via
io.cloudx:adapter-mobilefuse:1.11.0.0(Banner, MREC, Interstitial, Rewarded). - (Android) Pangle adapter readiness - Pangle demand can be integrated on Android with
io.cloudx:adapter-pangle:8.1.0.3.0.
Changed
- Updated the underlying Android native pin to
io.cloudx:sdk:4.1.5(iOSCloudXCore ~> 3.4.5is unchanged). - (Android) Faster startup - Initialization and ad-request stalls caused by device signal collection are reduced.
- (Android) Fullscreen HTML rendering - The SDK now renders CloudX-served fullscreen HTML creatives in interstitial and rewarded placements, with viewability measurement. Rollout is server-controlled; no app change is required.
- (Android) Broader native-in-banner coverage - Vungle native demand can now serve into standard banner and MREC slots through the existing banner API (joining Meta and Moloco), where enabled for your line items.
Fixed
- (Android) Fullscreen reliability - More dependable close behavior and hide callbacks for fullscreen HTML ads, with safer reward handling when a rewarded ad is closed early.
- (Android) Native ad image handling - More reliable image loading for native creatives, preventing stale images from appearing in reused ad views.
Platform Support
- iOS: CloudXCore ~> 3.4.5
- Android: io.cloudx:sdk:4.1.5
Unity SDK 4.1.5
SDK Updates
- Updated Android SDK from 4.1.3 to 4.1.5 — see Android SDK changelog for details
- Updated iOS SDK from 3.4.2 to 3.4.5 — see iOS SDK changelog for details
- Added Pangle adapter support for Android and iOS
- Added MobileFuse adapter support for Android
Android SDK 4.1.5
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.
Dashboard — A/B testing result labels
The A/B testing dashboard now more clearly distinguishes result metrics and percentage-point changes.
- A/B test creation now uses a fixed 50/50 split between control and test groups
- ARPU is included in cumulative comparison metrics
- Fill rate reflects true filled auction responses divided by requests
- Customer-facing result badges use Pending, Directional, and Achieved
Android SDK 4.1.4
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.
React Native SDK 3.4.5
Aligns the React Native wrapper with CloudX native iOS 3.4.5; Android stays on 4.1.3. There are no JavaScript API changes in this release.
Fixed
- (iOS) Interstitial and rewarded ads now display on the legacy architecture (Paper) - On apps built with the legacy React Native architecture, fullscreen ads could load but fail to appear on screen. They now present correctly. New Architecture (Fabric) apps were unaffected.
- (iOS) Some valid HTML banner and MREC creatives are no longer skipped - Creatives previously misclassified as broken now render normally.
- (iOS) Native ad reliability on Meta and Moloco - Native-in-banner and native-in-MREC creatives validate and register their assets more reliably for display and click tracking.
- (iOS) Digital Turbine startup conflict - When another mediation SDK initializes the shared Fyber SDK first, the CloudX adapter now defers instead of re-initializing. For the smoothest startup, initialize the other mediation SDK first, then CloudX.
Changed
- Updated the underlying iOS native pin to
CloudXCore ~> 3.4.5(Androidio.cloudx:sdk:4.1.3is unchanged). Update your iOSCloudX*adapter pods to~> 3.4.5to match. - (iOS) Broader native-in-banner coverage - InMobi and Vungle native demand can now serve into standard banner and MREC slots through the existing banner API (joining Meta and Moloco), where enabled for your line items.
- (iOS) HTML interstitial rendering - The CloudX renderer now supports fullscreen HTML interstitial creatives. Rollout is server-controlled; no app change is required.
- (iOS) Slow ad networks no longer delay startup - If a network’s SDK is slow to initialize, CloudX initialization completes without it and the network joins later auctions automatically once ready.
Platform Support
- iOS: CloudXCore ~> 3.4.5
- Android: io.cloudx:sdk:4.1.3
iOS SDK 3.4.5
Added
- Full native ad support across InMobi, Meta, Vungle, and Moloco — With InMobi native and Vungle standalone native added in this release, all four demand partners now serve native ads in every form CloudX supports: standalone (via
CLXNativeAdLoader) and native-in-banner / native-in-MREC. - InMobi native ads —
CloudXInMobiAdapternow serves Native creatives, both standalone (viaCLXNativeAdLoader) and native-in-banner / native-in-MREC. RequiresInMobiSDK >= 11.2.0(the adapter’s minimum was raised from11.0.0). - Vungle standalone native ads —
CloudXVungleAdapternow serves standalone Native creatives viaCLXNativeAdLoader(native-in-banner / native-in-MREC was already supported). - HTML interstitials on the CloudX renderer — The CloudX renderer now supports fullscreen HTML interstitial creatives with MRAID 3.0, alongside the existing HTML banner / MREC support. Rollout is controlled server-side; no integration change is required.
Changed
- Slow ad network SDKs no longer delay CloudX SDK initialization — A slow network SDK no longer blocks init; CloudX completes without it and the network joins later auctions once ready. Networks not yet initialized are excluded from auctions they cannot serve.
Fixed
- Digital Turbine adapter no longer conflicts with another mediation SDK initializing the Fyber SDK — If another mediation SDK initializes the shared Fyber SDK first, the CloudX adapter now defers instead of re-initializing. For smooth startup, initialize the other SDK first, then CloudX.
- Some valid HTML banner creatives were rejected by the renderer — Fixed an issue where HTML banner / MREC creatives containing failed tracker pixels were misclassified as broken and not displayed. These creatives now render normally.
- Native ad reliability improvements on Meta and Moloco — Meta native ads now validate the loaded ad and register all asset views for impression and click tracking, not just the CTA. Moloco native ads are no longer delivered when the underlying ad is not renderable.
Removed
- Adapter-integration APIs — Removed
clx_isFlexibleSize,+isInitialized, and per-instancesdkVersionfrom the adapter-facing surface. These had no function for app integrations; standard publisher integrations are unaffected.
React Native SDK 3.4.4
Aligns the React Native wrapper with the CloudX native SDKs — iOS 3.4.4 and Android 4.1.3 — and adds per-load extra parameters for banner, MREC, interstitial, and rewarded ads.
Added
- Per-load extra parameters -
CloudXBannerAd,CloudXMRECAd,CloudXInterstitialAd, andCloudXRewardedAdnow exposesetExtraParameters(adUnitId, parameters). Values are captured when an ad loads and may be strings, numbers, booleans,null, arrays, or nested objects. - Digital Turbine adapter support - Digital Turbine demand can now be added to React Native apps on both platforms (Banner, MREC, Interstitial, Rewarded). iOS:
pod 'CloudXDigitalTurbineAdapter', '~> 3.4.4'; Android:io.cloudx:adapter-digitalturbine:8.4.5.0. - (iOS) Pangle adapter -
pod 'CloudXPangleAdapter', '~> 3.4.4'(Banner/MREC, Interstitial, Rewarded). - (iOS) Google Waterfall adapter -
pod 'CloudXGoogleWaterfallAdapter', '~> 3.4.4'(Banner, MREC); requires a Google ad application identifier in your app’s Info.plist. - (Android) Native-in-banner rendering - Native ad demand from supported networks (Meta, Moloco, Vungle) can now serve into standard banner and MREC slots through the existing banner API.
Changed
- Updated underlying native SDK pins to iOS
CloudXCore ~> 3.4.4and Androidio.cloudx:sdk:4.1.3. - (Android) Resilient adapter initialization - A slow ad network no longer delays SDK startup; late adapters are held out of auctions until ready, then join automatically.
- (Android) Server-driven always-reward mode - Reward callbacks can be guaranteed per line item from the dashboard, with no app-side change required.
Fixed
- (iOS) App Store submission rejection - Removed a disallowed URL scheme from the SDK binary that could cause App Store review rejections.
- (iOS) SDK initialization could fail for some accounts - Initialization now succeeds for accounts without an organization identifier.
- (iOS) Google Waterfall lost fills - Slow-but-successful mediation responses are no longer discarded, improving fill reliability.
- (iOS) Digital Turbine compatibility - Banner, MREC, Interstitial, and Rewarded now work across the full Fyber 8.x line.
Platform Support
- iOS: CloudXCore ~> 3.4.4
- Android: io.cloudx:sdk:4.1.3
Dashboard — Help menu resources
The Dashboard Help menu now brings product help, support, and release updates into one place.
Open Help in the sidebar to:
- open CloudX documentation
- contact the support team
- browse recent releases under What’s new
- open a release preview in the in-app changelog dialog
- jump to the full docs timeline from Changelog
iOS SDK 3.4.4
Fixed
- Digital Turbine adapter failed to link on Fyber Marketplace SDK below 8.4.0 — The adapter binary failed to link on a Fyber SDK below
8.4.0. It now links across the full8.xline — Banner, MREC, Interstitial, and Rewarded work on Fyber8.0.0+; native fill remains on8.4.0+. - Google Waterfall — occasional lost fills on slow mediation responses — A Google Waterfall ad could be discarded when its mediation cascade responded slowly, even though it ultimately filled. Slow-but-successful responses are now delivered, improving fill reliability.
iOS SDK 3.4.3
Added
- Pangle Adapter — New
CloudXPangleAdaptersupporting Banner/MREC, Interstitial, and Rewarded ad formats. Install:pod 'CloudXPangleAdapter', '~> 3.4.3'. Backed by the Pangle (ByteDance) SDKAds-Global ~> 7.9.0.
Changed
- DigitalTurbine adapter — broader Fyber Marketplace SDK compatibility —
CloudXDigitalTurbineAdapternow acceptsFyber_Marketplace_SDK >= 8.0.0(previously>= 8.4.0). Banner, MREC, Interstitial, and Rewarded work across the full 8.x line; native fill remains on Fyber SDK 8.4.0+.
Fixed
- App Store rejection from the
itms-servicesURL scheme — removed the scheme from the SDK binary; store redirects are unaffected. - SDK init could fail for some accounts — fixed initialization failing for accounts without an organization identifier.
Unity SDK 4.1.3
SDK Updates
- Updated Android SDK from 4.1.1 to 4.1.3 — see Android SDK changelog for details
- Updated iOS SDK from 3.4.1 to 3.4.2 — see iOS SDK changelog for details
- Added Google Waterfall and Digital Turbine adapter support for Android and iOS
Android SDK 4.1.3
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.
iOS SDK 3.4.2
Added
- Google Waterfall Adapter — New
CloudXGoogleWaterfallAdapter(Banner, MREC). Install via CocoaPods (pod 'CloudXGoogleWaterfallAdapter', '~> 3.4.2') or Swift Package Manager. Backed byGoogle-Mobile-Ads-SDK 12.14.0; requires aGADApplicationIdentifierin your Info.plist.
CloudX CLI 0.34
Expanded config writes
CloudX CLI 0.34 extends cloudx config edit beyond line items to cover apps, ad units, ad unit groups, lists, tags, test devices, network mappings, and A/B test lifecycle commands.
Added
- Draft inventory edits — Added create, update, delete, and upsert commands for the main inventory entities. Draft edits validate automatically and still require
cloudx config publishunless noted. Read the docs → - A/B test writes — Added A/B test create, update, start, end, promote, and delete commands. Lifecycle changes publish the resulting config immediately. Read the docs →
CloudX API — Configuration writes
The public API now exposes typed config write operations through POST /config/edit for apps, ad units, ad unit groups, lists, tags, test devices, network mappings, line items, and A/B tests.
Android SDK 4.1.2
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.
iOS SDK 3.4.1
Added
- Digital Turbine Adapter — New
CloudXDigitalTurbineAdapter(Banner, MREC, Interstitial, Rewarded, Native). Install:pod 'CloudXDigitalTurbineAdapter', '~> 3.4.1'. Backed byFyber_Marketplace_SDK >= 8.4.0, < 9.0.
Fixed
- Duplicate
didLoadAd/didShowAdcallbacks on banner refresh — When a partner adapter SDK fired its load or impression callback more than once, publishers could receive duplicates. The first callback is now canonical and re-fires are dropped, so one load and one impression emit per ad.
Unity SDK 4.1.0
What’s New
- Added
CloudXSdk.Arbiter(bids, onCompleted)for running a trusted-arbiter auction from Unity - Added
SetBannerExtraParameter(adUnitId, key, value),SetMRecExtraParameter(adUnitId, key, value),SetInterstitialExtraParameter(adUnitId, key, value), andSetRewardedExtraParameter(adUnitId, key, value)to pass network-specific parameters to each ad format
SDK Updates
- Updated Android SDK from 4.0.0 to 4.1.1 — see Android SDK changelog for details
- Updated iOS SDK from 3.2.0 to 3.4.1 — see iOS SDK changelog for details
- Added Moloco and Verve adapter support for Android and iOS
Android SDK 4.1.1
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.
React Native SDK 3.4.0
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.
- Ad metadata - Added
CloudXAdInfo.adValuesfor SDK-provided loaded-ad metadata used by features such as Trusted Arbiter. - Additional adapter coverage - Updated setup guidance for the latest supported iOS and Android adapter set, including Google Waterfall, Moloco, and Verve where supported by the underlying native SDKs.
Changed
- Updated underlying native SDK pins to iOS
CloudXCore ~> 3.4.0and Androidio.cloudx:sdk:4.1.0.
Platform Support
- iOS: CloudXCore ~> 3.4.0
- Android: io.cloudx:sdk:4.1.0
Android SDK 4.1.0
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.
iOS SDK 3.4.0
Added
- Verve Adapter — New
CloudXVerveAdapter(Banner, MREC, Interstitial, Rewarded, Native). Install:pod 'CloudXVerveAdapter', '~> 3.4.0'. Backed by HyBid 3.8.0. - Moloco Adapter — New
CloudXMolocoAdapter(Banner, MREC, Interstitial, Rewarded, Native). Install:pod 'CloudXMolocoAdapter', '~> 3.4.0'. Backed by MolocoSDKiOS~> 4.6.0. - Non-SDK CloudX-rendered HTML banner and MREC with MRAID 3.0 — HTML banner and MREC creatives can now be served through the CloudX renderer, with MRAID 3.0 support.
- Native-in-banner and native-in-MREC support — Native creatives can be served into banner or MREC slots on Meta, Vungle, and Moloco.
- Trusted Arbiter — Added public APIs for comparing CloudX bids with supported third-party bids from Unity LevelPlay and PubMatic, and selecting the winning platform through CloudX arbitration.
CLXAd.adValuesproperty — New read-onlyNSDictionary<NSString *, NSString *>exposing SDK-defined loaded-ad metadata. Values may be absent depending on ad format and network.
Changed
- UnityAds adapter version range — Widened to accept Unity Ads 4.x patch releases (
>= 4.17.0, < 5.0). - Publisher delegate main-queue threading is now documented contract — All
CLXAdDelegatecallbacks (and protocols that extend it) andCLXAdRevenueDelegatecallbacks deliver on the main queue and may fire inline relative to the SDK call that triggered them. No runtime change.
Fixed
- Native ad memory leak during long sessions — Long-lived publisher integrations that load many native ads no longer accumulate retained observers across native ad refresh cycles.
CloudX CLI 0.33
Config validation, line-item edits, and publishing
CloudX CLI 0.33 adds the ability to edit line items directly from your configuration workflow, publish reviewed drafts, and validate local YAML files or remote configs.
To update an existing Homebrew installation to this release:
brew upgrade cloudxAdded
- Config validation — Added
cloudx config validate [file]for validating local YAML files, plus remote validation of the live config, a published version, or a draft by ID. Use--strictto fail on warnings. Read the docs → - Line-item writes — Added
cloudx config edit create-line-item,cloudx config edit update-line-item, andcloudx config edit delete-line-itemfor preparing line-item changes in a draft config. Draft edits run validation and never publish automatically. Read the docs → - Configuration publishing — Added
cloudx config publish --id <draft-id>to publish a validated draft as the live config. Read the docs → - CLI upgrade notice — The CLI now shows a terminal notice when the CloudX API reports that a newer CLI version is available, with a link to update instructions.
CloudX API — Public API release
CloudX now has a public API for programmatic access to reporting, auction inspection, and account configuration data. The API uses CloudX API keys as bearer tokens and is documented with an interactive OpenAPI reference. Read the docs →
Added
- Reporting endpoints — Retrieve dashboard summaries, breakdown rows, bidder performance, app performance, ad-unit performance, and CSV-style exports.
- Auction inspection endpoints — Inspect auctions, rounds, bids, ILRD rows, and related delivery details.
- Configuration endpoints — Read live, draft, and published account configuration, including configuration history.
Dashboard — Frequency caps
CloudX Dashboard now supports SSP frequency caps for both ad units and segments.
You can now:
- cap a specific ad unit by
hour,day, orsession - cap traffic routed through a specific segment
- set a default cap for requests that do not include any segments
Frequency caps are evaluated before the auction and counted on impression, so once capped inventory reaches its limit, CloudX returns no fill instead of continuing to serve. Ad-unit configuration is documented in Ad units.
CloudX CLI 0.32
To update an existing Homebrew installation to this release:
brew upgrade cloudxAdded
- API-key authentication —
CLOUDX_API_KEYsupport for CI, scheduled jobs, scripts, and other non-interactive workflows. API keys are managed by administrators in Settings > API Keys. Read the docs → - CloudX breakdown reporting —
cloudx report breakdown --by <dimensions> --metrics <metrics>for CloudX-only aggregate reporting across requests, impressions, revenue, fill rate, eCPM, clicks, and CTR. - Report granularity and controls —
cloudx report dashboardandcloudx report exportsupport--granularity daily|hourly; breakdown reports add hourly buckets, sorting, and filters with--granularity hourly,--top,--bottom, and--having. - Configurable request timeout — Global
cloudx --timeout <duration>for API requests. The default remains1m, and values are capped at2m. Read the docs →
React Native SDK 3.2.0
This release updates the React Native SDK to use CloudX native SDK 3.2.0 on both iOS and Android. There are no required JavaScript API changes for publishers upgrading from 3.1.2.
Added
- Magnite adapter support — adds Magnite adapter package support on both iOS and Android.
- Improved diagnostics — expands native event visibility for dashboard and operational troubleshooting.
- (Android) Bid-floor controls — adds support for native bid-floor controls in the ad request path.
Changed
- Updated underlying native SDKs from 3.1.0 to 3.2.0.
- (Android) Banner lifecycle handling — improves banner view attach and detach behavior for more consistent adapter behavior.
Fixed
- (Android) Adapter discovery diagnostics — missing adapter dependencies now report clearer diagnostics.
- (Android) Banner load errors — banner load failures now provide clearer diagnostics when a network reports a loaded banner without a renderable banner view.
Platform Support
- iOS: CloudXCore ~> 3.2.0
- Android: io.cloudx:sdk:3.2.0
CloudX CLI 0.31
Cross-mediator report sources
CloudX CLI 0.31 adds report source filtering for publishers that forward impression-level revenue data from external mediation platforms. Existing report commands stay CloudX-only by default, and --source can be used to opt into mediator ILRD where supported.
To update an existing Homebrew installation to this release:
brew upgrade cloudxAdded
- Report source filtering — Added
--sourcetocloudx report dashboard,cloudx report apps, andcloudx report ad-units. Use--source allfor CloudX plus all available external mediator sources,--source applovinfor one mediator, or--source cloudx,applovinfor side-by-side comparison. - Source-aware report metrics — Dashboard, app, and ad-unit reports can now include external mediator ILRD for revenue, impressions, eCPM, and revenue share. Fill rate remains CloudX-only when external mediators are included because external ILRD does not include CloudX request counts.
- Clearer source semantics —
--sourceuses the mediator/platform source from ILRD, such asapplovin, not downstream demand network names such asADMOB_BIDDING. Read the docs →
CloudX CLI 0.30
Auction list performance and timeout handling
CloudX CLI 0.30 focuses on making auction inspection more reliable during heavier searches and making timeout failures easier to understand.
To update an existing Homebrew installation to this release:
brew upgrade cloudxImproved
- Faster auction lists with ILRD filters — Improved
cloudx auction listperformance when working with ILRD-heavy searches, especially when narrowing results by external ILRD and mediator. - Longer default request timeout — Increased the default CLI timeout to 60 seconds, giving heavier requests more time to complete.
- Clearer timeout errors — Timeout failures now show a clearer CLI message instead of a low-level networking error.
- Better timeout visibility — Timed-out CLI requests are easier for CloudX support to identify and diagnose.
CloudX CLI 0.29
Auction and config inspection
CloudX CLI 0.29 expands the terminal workflow from reporting into production debugging. You can now inspect auctions, rounds, bids, ILRD payloads, live configs, drafts, and published config history without switching to the dashboard.
To update an existing Homebrew installation to this release:
brew upgrade cloudxAdded
- Auction inspection — Added
cloudx auction list,cloudx auction show,cloudx auction rounds, andcloudx auction bidsfor reviewing auction records, related rows, aggregate round metrics, bid and non-bid rows, floor sources, CloudX ILRD, and opted-in external mediator ILRD. Read the docs → - Config inspection — Added
cloudx config showfor live configs, published versions, drafts, and config rows addressed by ID, with YAML output by default and JSON output for automation. Read the docs → - Config history — Added
cloudx config historyfor published config history, creator filtering, recent-change filtering, draft inclusion, and publish-time diff summaries. - Workflow examples — Updated CLI examples and overview pages with auction, config, JSON, and combined reporting workflows. See examples →
Unity SDK 4.0.0
What’s New
- Added Unity Package Manager (UPM) consumer support so the SDK can be referenced from internal UPM packages. Runtime and editor scripts now ship with assembly definitions (
CloudX.SdkandCloudX.Sdk.Editor). - Removed the runtime dependency on
Newtonsoft.Json. The SDK no longer requirescom.unity.nuget.newtonsoft-jsonto be present in your project.
SDK Updates
- Updated Android SDK from 3.2.0 to 4.0.0 — see Android SDK changelog for details
Dashboard — A/B Testing
Stop guessing whether a new line item, bid floor, or network configuration will actually move the needle. A/B Testing lets you split impressions between your current setup and an edited variant, then watch them race head-to-head on the metrics that matter — revenue, eCPM, fill rate, and impressions — all in real time, in production.
When the data is in, promoting the winner takes a click. Open any active ad unit, hit Create A/B test, and start optimizing your monetization strategy with the rigor your revenue deserves. Read the docs →
Android SDK 4.0.0
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.
CloudX MCP — AI-native reporting and docs search
The numbers you need, the way you ask. CloudX now has a hosted Model Context Protocol server that plugs straight into ChatGPT, Claude Code, Cursor, Codex, and any other MCP client of your choosing — so your AI assistant can pull live revenue, fill rate, eCPM, and bidder performance from CloudX without you copy-pasting between tabs.
Ask “how did US iOS traffic perform last week?” and get the actual numbers back, filtered exactly the way you’d filter them in the dashboard. Ask “how do I integrate the Magnite adapter?” and get an answer grounded in our real docs. Read the docs →
Android SDK 3.2.0
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.
Unity SDK 3.2.0
What’s New
- Added
DestroyInterstitial(adUnitId)andDestroyRewarded(adUnitId)to the Unity API so fullscreen ads can be explicitly destroyed and cleaned up
SDK Updates
- Updated Android SDK from 3.1.0 to 3.2.0 — see Android SDK changelog for details
- Updated iOS SDK from 3.1.0 to 3.2.0 — see iOS SDK changelog for details
- Added Magnite adapter support for Android and iOS
iOS SDK 3.2.0
Added
- Magnite Adapter — New
CloudXMagniteAdapter(Banner, MREC, Interstitial, Rewarded). Install:pod 'CloudXMagniteAdapter', '~> 3.2.0'. - Richer dashboard telemetry — Full telemetry overhaul. More robust event capture, new events, and increased observability.
CloudX CLI 0.28
CloudX in your terminal
Some questions don’t need a browser. With the new CloudX CLI, your daily numbers are one keystroke away — cloudx report dashboard shows revenue, fill rate, eCPM, and trends right next to your prompt. Filter by country, platform, ad unit, or test traffic the same way you would in the dashboard.
When you need data downstream, switch to --json for structured output or cloudx report export for CSV ready to pipe into a spreadsheet, a notebook, or another tool. Install with brew install cloudx, sign in once, and your reporting workflow follows you wherever you work. Read the docs →
React Native SDK 3.1.2
Major bump aligning the React Native SDK with the 3.1.0 native SDKs, and adds a manual privacy API in JavaScript.
Added
- Manual Privacy API —
CloudX.setHasUserConsent(value)andCloudX.setDoNotSell(value)bridge to the native privacy APIs on iOS and Android. Acceptsbooleanto set, ornullto clear a previously set value and fall back to the IAB storage. - Error Codes — added
LOAD_NOT_ALLOWED_WHILE_SHOWING(303) andADAPTER_INITIALIZATION_TIMEOUT(622) toCloudXErrorCode.
Changed
Updated underlying native SDKs from 2.2.3 to 3.1.0. For full platform-specific details, see the native changelogs:
This SDK now pins iOS CloudXCore ~> 3.1.0 and Android io.cloudx:sdk:3.1.0,
and all bundled adapters pin to the same major. The native Android SDK’s new
Context requirement is handled by the bridge — no publisher code changes
required.
Fixed
- (iOS) Release-build compile error — resolves a compile error that prevented archiving an app against the earlier 3.1.0 and 3.1.1 builds for App Store submission.
- Banner and MREC render delay — on some devices, a banner or MREC could report a successful load but stay blank until the next auto-refresh (~30 seconds later). The first impression now renders immediately on show.
Upgrading from 2.2.3
- (iOS) Remove any manual top-inset workaround. If you passed the device’s top safe-area inset as
yOffsettoCloudXBannerAd.createAdWithOffsets(e.g.,insets.topfromreact-native-safe-area-context), remove it; an extra offset now pushes the banner below the safe area. - (iOS)
TOP_CENTERandBOTTOM_CENTERbanners now position themselves inside the safe area automatically. UseCloudXBannerAd.createAd(adUnitId, CloudXAdPosition.TOP_CENTER)for the default placement. - Banner and MREC view lifecycle. Banner and MREC ads now load detached from your view hierarchy and attach to the presenting view controller (iOS) or root content view (Android) on
showBanner/showMREC. Noted for publishers who inspect the native view hierarchy between create and show. - Pre-load banners and MRECs into memory. Because ads load detached, you can now pre-load a banner or MREC and show it later without it occupying a parent view in the meantime.
Platform Support
- iOS: CloudXCore ~> 3.1.0
- Android: io.cloudx:sdk:3.1.0
Android SDK 3.1.0
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.
Unity SDK 3.1.0
What’s New
- Revenue-paid callbacks are now delivered immediately and may run off the Unity main thread on Android and iOS
Integration Notes
- Do not touch Unity scene or UI APIs directly inside
OnAdRevenuePaid. Dispatch back to the main thread first if needed.
SDK Updates
- Updated Android SDK from 3.0.0 to 3.1.0 — see Android SDK changelog for details
- Updated iOS SDK from 2.2.8 to 3.1.0 — see iOS SDK changelog for details
iOS SDK 3.1.0
Added
- Meta Reels & Native Ads — Meta Reels (9:16 vertical video) and other Meta native ad formats are now supported via
CLXPublisherNative. This release supports Meta native ads only; additional bidder support is coming in a future release. - Per-Adapter Initialization Timeout — SDK initialization now supports per-adapter timeouts for more predictable startup behavior.
Fixed
- Xcode 26 Compatibility — Resolved a build warning when compiling with Xcode 26.
iOS SDK 2.2.9
Fixed
- Unity Ads Adapter — Fixed initialization, privacy consent forwarding, rewarded callbacks, and bid token error handling for improved reliability across regions.
Android SDK 3.0.0
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.
Unity SDK 3.0.0
SDK Updates
- Updated Android SDK from 2.2.7 to 3.0.0 — see Android SDK changelog for details
- Updated iOS SDK from 2.2.7 to 2.2.8 — see iOS SDK changelog for details
iOS SDK 2.2.8
Fixed
- Crash Fix — Fixed a crash that could occur during concurrent ad event tracking on background threads
Android SDK 2.2.7
Fixed
- Reduced startup ANR risk for apps that include the SDK before calling
CloudX.initialize().
Unity SDK 2.2.7
What’s New
- Added first-party metrics telemetry coverage across Android SDK call sites through the updated Android SDK
- Fixed iOS banner display after deferred initialization and improved Vungle adapter runtime reliability through the updated iOS SDK
Integration Notes
- The Unity integration flow and banner/MREC placement/custom-data ordering guidance introduced in
2.2.6remain unchanged in this release
SDK Updates
- Updated Android SDK from 2.2.6 to 2.2.7 — see Android SDK changelog for details
- Updated iOS SDK from 2.2.6 to 2.2.7 — see iOS SDK changelog for details
Android SDK 2.2.6
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.
iOS SDK 2.2.7
Fixed
- Deferred Banner Display — Fixed an issue where banners created before SDK initialization completed could fail to display after initialization succeeded
- Vungle Adapter Reliability — Fixed an issue where Vungle rewarded and interstitial ads could crash at runtime due to a method being incorrectly stripped during linking
Unity SDK 2.2.6
What’s New
- Added
isAdReadysupport across fullscreen adapters through the updated Android and iOS SDKs - Added Unity Ads privacy consent forwarding through the updated iOS SDK
Integration Notes
- For Unity banner and MREC ads, call
SetBannerPlacement(...)/SetBannerCustomData(...)andSetMrecPlacement(...)/SetMrecCustomData(...)beforeCreateBanner(...)orCreateMrec(...)if you want those values applied to the first ad request
SDK Updates
- Updated Android SDK from 2.2.4 to 2.2.6 — see Android SDK changelog for details
- Updated iOS SDK from 2.2.4 to 2.2.6 — see iOS SDK changelog for details
Android SDK 2.2.5
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.
iOS SDK 2.2.6
Added
- Privacy Consent for Unity Ads — Unity Ads adapter now supports GDPR and CCPA privacy consent forwarding
isAdReadySupport — Fullscreen ad adapters now supportisAdReadyfor reliably querying ad availability before calling show
Fixed
- Banner Visibility Accuracy — Fixed an issue where setting
banner.hidden = YESdid not pause ad refresh. Hidden banners could continue loading ads without being impression-eligible, potentially impacting CPMs. - Improved Dependency Compatibility — Widened third-party SDK version constraints (VungleAds, FBAudienceNetwork, InMobiSDK) to prevent CocoaPods dependency conflicts when integrating alongside other mediation SDKs
- Fullscreen Ad Reliability — Fixed an issue where ad lifecycle callbacks could be silently lost in rare scenarios
- iOS 16 Crash Fix — Fixed a crash on iOS 16 devices related to session tracking
Unity SDK 2.2.4
What’s New
- Added
SetHasUserConsent(bool?)andSetDoNotSell(bool?)for manual privacy overrides before initialization - Added automatic
NSUserTrackingUsageDescriptioninjection during the iOS post-process step when the app has not defined one yet
Fixes
- Fixed Android banner view initialization so newly created banner views start hidden until you show them
- Fixed iOS interstitial and rewarded show-failure callbacks so
OnAdShowFailednow includes both the failedCloudXAdand the correspondingCloudXError, matching the Unity callback contract - Updated the Unity demo app to initialize banner and MREC views once and retry fullscreen ads after both load failures and show failures
SDK Updates
- Updated Android SDK from 2.2.3 to 2.2.4 — see Android SDK changelog for details
- Updated iOS SDK from 2.2.3 to 2.2.4 — see iOS SDK changelog for details
Android SDK 2.2.4
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.
iOS SDK 2.2.4
Changed
- Server-Driven Location Controls — Location coordinate sharing in bid requests is now controlled via the CloudX dashboard (account-scoped). No SDK code changes required for publishers.
- Improved Bid Request Data — Content language is now included in bid requests for improved ad targeting
React Native SDK 2.2.3
Added
- Unity Ads Adapter — Unity Ads now available for banner, interstitial, and rewarded ads (iOS and Android)
- Mintegral Adapter — Mintegral adapter now available as a standard release (iOS and Android)
Improved
- Fullscreen Ad Reliability — Fixed issues where loading a fullscreen ad while another was showing could silently fail (iOS), and ad reload now works correctly in hidden/display-failed callbacks (Android)
- Error Diagnostics — Improved error visibility for no-bid scenarios, making it easier to diagnose fill rate issues
- Reduced SDK Footprint — (Android) Removed
appcompatandwebkittransitive dependencies; renderer now bundled in the core SDK module
Changed
Updated underlying native SDKs from 2.0.0 to 2.2.3. For full platform-specific details, see the native changelogs:
Platform Support
- iOS: CloudXCore ~> 2.2.3
- Android: io.cloudx:sdk:2.2.3
Unity SDK 2.2.3
SDK Updates
- Updated Android SDK from 2.2.2 to 2.2.3 — see Android SDK changelog for details
- Updated iOS SDK from 2.2.2 to 2.2.3 — see iOS SDK changelog for details
- Added Unity Ads adapter support for Android and iOS
Android SDK 2.2.3
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.
iOS SDK 2.2.3
Added
- Unity Ads Adapter — Unity Ads adapter now available for banner, interstitial, and rewarded ads
Fixed
- Unity Ads Initialization — Fixed an issue where the Unity Ads adapter could fail to initialize correctly in some configurations
Flutter SDK 2.2.3
First public release on pub.dev. The Dart package major.minor.patch matches the CloudX native SDKs it ships against (iOS CloudXCore, Android io.cloudx:sdk).
Requirements
- Dart SDK:
>=2.17.1 <4.0.0(see the packagepubspecon pub.dev) - Flutter:
>=3.0.0 - iOS: 13.0+
- Android: minSdk 23 (API 23)
The Dart floor is set low on purpose so apps on older stable Flutter lines can adopt cloudx_flutter without a full toolchain jump.
Included in this release
- Banner, MREC, interstitial, and rewarded ads; programmatic overlay APIs and inline
CloudXAdView - Listener callbacks, targeting key/values, impression-level revenue (
onAdRevenuePaid), and related lifecycle events - Privacy helpers
CloudX.setHasUserConsentandCloudX.setDoNotSell(nullablebool?clears overrides and defers to CMP where applicable) - Native pins: CloudXCore 2.2.3 (iOS), io.cloudx:sdk 2.2.3 (Android)
Host app: network adapters
The published plugin is core-only. Declare only the ad-network adapters you need in CocoaPods and Gradle, all at 2.2.3 (Meta, Vungle, InMobi, Mintegral, Unity Ads, renderer, etc.). For Unity Ads, add CloudXUnityAdsAdapter and io.cloudx:adapter-unityads.
Android: Mintegral
If you depend on io.cloudx:adapter-mintegral, you must add Mintegral’s Maven repository to Gradle — artifacts are not on Maven Central. See Android integration — Mintegral Maven repository.
Android SDK 2.2.2
Added
- Improved SDK initialization diagnostics by reporting adapter metadata.
Fixed
- Fixed InMobi bid token retrieval by ensuring token collection runs on the main thread.
Unity SDK 2.2.2
SDK Updates
- Updated Android SDK from 2.2.1 to 2.2.2 — see Android SDK changelog for details
- Updated iOS SDK from 2.0.0 to 2.2.2 — see iOS SDK changelog for details
- Lowered iOS minimum deployment target from 15.0 to 13.0
- Added Mintegral adapter support (Android + iOS)
iOS SDK 2.2.2
Added
- Manual Privacy API — New
setHasUserConsent:andsetDoNotSell:methods for publisher-controlled privacy consent - Mintegral Adapter — Mintegral adapter now available as a standard release
Fixed
- Improved Error Visibility — Increased error visibility for no-bid scenarios, making it easier to diagnose fill rate issues
- Fullscreen Ad Loading — Fixed an issue where loading a fullscreen ad while another was showing could silently fail
- Fullscreen Failure Callbacks — Fixed missing ad unit ID in fullscreen ad failure callbacks
- Renderer Impression Tracking — Fixed viewability tracking accuracy in CloudX Renderer
Changed
- Mintegral SDK — Upgraded from 8.0.7 to 8.0.8
Android SDK 2.2.1
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.
Unity SDK 2.2.1
SDK Updates
- Updated Android SDK from 2.2.0 to 2.2.1 — see Android SDK changelog for details
- Added Mintegral adapter and Maven repository for Android
Android SDK 2.2.0
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.
Unity SDK 2.2.0
SDK Updates
- Updated Android SDK from 2.0.1 to 2.2.0 — see Android SDK changelog for details
React Native SDK 2.0.0
First stable release of the CloudX React Native SDK.
Added
- Full SDK integration with banner, MREC, interstitial, and rewarded ad formats
- Programmatic overlay APIs for banner (
CloudXBannerAd) and MREC (CloudXMRECAd) - Fullscreen ad modules:
CloudXInterstitialAdandCloudXRewardedAd - React hooks:
useCloudXInterstitial,useCloudXRewarded,useCloudXBanner - Privacy compliance support (CCPA, GDPR, GPP via IAB shared storage)
- User targeting with key-value pairs (
setUserKeyValue,setAppKeyValue) - Impression-level revenue tracking via
addAdRevenuePaidListener - App Tracking Transparency (ATT) support for iOS 14+
- Display failure events (
addAdFailedToDisplayEventListener) for interstitial and rewarded - Full TypeScript type definitions with CloudX-prefixed namespace
- Fabric (New Architecture) and Paper (Legacy) support
Fixed (iOS — since 2.0.0-beta.1)
- Fixed duplicate
onInterstitialHidden/onRewardedAdHiddencallbacks firing twice on close - Fixed double revenue callback for rewarded ads
- Fixed thread-safety crash in bid token dictionary construction
showInterstitial/showRewardednow emit display failure events whentopViewControlleris nil (previously silent return)didFailToLoadAd:now broadcasts to all fullscreen listeners whenadUnitIdis nil (previously silent)rewardAmountsent asNSNumberinstead ofNSString(type alignment with Android and TypeScript)- Improved diagnostic logging for load/failure paths
Platform Support
- iOS: CloudXCore ~> 2.2.0-beta
- Android: io.cloudx:sdk:2.0.0
Android SDK 2.0.1
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.
Unity SDK 2.0.1
This patch release adds full compatibility with Unity Engine 2022.3.
Compatibility
- Added support for Unity Engine 2022.3 LTS
SDK Updates
- Updated Android SDK from 2.0.0 to 2.0.1 — see Android SDK changelog for details
React Native SDK 2.0.0-beta.1
Added
- Initial full SDK integration with CloudX Core SDK
- Banner ads via
CloudXBannerAdmodule - MREC ads (300x250) via
CloudXMRECAdmodule - Interstitial ads via
CloudXInterstitialAdmodule - Rewarded ads via
CloudXRewardedAdmodule - React hooks:
useCloudXInterstitial,useCloudXRewarded,useCloudXBanner - Privacy compliance support (CCPA, GDPR, GPP)
- User targeting with key-value pairs
- Impression-level revenue tracking
- App Tracking Transparency (iOS)
- Full TypeScript type definitions
- Fabric (New Architecture) and Paper (Legacy) support
Platform Support
- iOS: CloudXCore ~> 2.1.0-beta
- Android: io.cloudx:sdk:2.0.0
Unity SDK 2.0.0
Breaking Changes
- Banner and MREC ads no longer auto-load after creation. You must now call
LoadBanner()orLoadMrec()explicitly afterCreateBanner()orCreateMrec() CloudXAdproperty renames:PlacementNameis nowAdUnitIdBidderNameis nowNetworkName
What’s New
- Added placement and custom data support for all ad formats:
SetBannerPlacement(adUnitId, placement)andSetBannerCustomData(adUnitId, customData)SetMRecPlacement(adUnitId, placement)andSetMRecCustomData(adUnitId, customData)ShowInterstitial(adUnitId, placement?, customData?)now accepts optional placement and customData parametersShowRewarded(adUnitId, placement?, customData?)now accepts optional placement and customData parameters
- New
CloudXAdproperties:AdFormat,Placement,NetworkPlacement
SDK Updates
- Updated Android SDK from 0.12.1 to 2.0.0
- Updated Android adapters from 0.12.1 to 2.0.0
- Updated iOS CloudXCore from 1.3.0 to 2.0.0
- Updated iOS CloudXRenderer from 1.3.0 to 2.0.0
- Updated iOS adapters from 1.3.0 to 2.0.0
Android SDK 2.0.0
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.
iOS SDK 2.0.0
This release replaces placement names with Ad Unit IDs from the CloudX dashboard. Update your createBannerWithAdUnitId:, createMRECWithAdUnitId:, createInterstitialWithAdUnitId:, and createRewardedWithAdUnitId: calls to use the ad unit ID instead of a placement name.
Added
- Rewarded ads with
createRewardedWithAdUnitId:delegate:andCLXRewardedDelegate - InMobi adapter (SDK 11.1) with support for banner, MREC, interstitial, and rewarded ads
CLXAd.networkPlacementproperty for network-specific placement ID
Breaking Changes
- Renamed
placementparameter toadUnitIdincreateBannerWithAdUnitId:,createMRECWithAdUnitId:,createInterstitialWithAdUnitId:,createRewardedWithAdUnitId: - Renamed
CLXAd.placementtoadUnitId - Renamed
CLXAd.bidderNametonetworkName - Renamed
CLXErrorCodeInvalidPlacementtoCLXErrorCodeInvalidAdUnit - Changed
bannerAdView:didFailWithError:to include ad unit ID in error - Removed
testModeparameter frominitializeSDKWithAppKey:completion:- test mode is now server-controlled via dashboard
Changed
- Meta Audience Network SDK updated from 6.17.0 to 6.21.0
- Vungle SDK updated from 7.4.2 to 7.6.0
Fixed
- Fixed IFA (Identifier for Advertisers) collection
- Fixed country/geo-targeting data collection
Unity SDK 0.12.1
What’s New
- Added support for iOS platform
Performance Improvements
- Android: BidToken is now generated on a background thread for improved performance
SDK Updates
- Updated Android SDK from 0.12.0 to 0.12.1
Improvements
- Renamed internal
UnityMainThreadDispatcherclass to avoid namespace collisions with third-party packages
Android SDK 0.12.1
Fixed
- Fixed an ANR risk in the Meta adapter caused by bid token collection on the main thread.
Android SDK 0.11.1
Fixed
- Fixed an ANR risk in the Meta adapter caused by bid token collection on the main thread.
Unity SDK 0.12.0
Initial release of CloudX Unity SDK
Android SDK 0.12.0
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.
iOS SDK 1.3.0
Added
- Banner Refresh Retry - Banners now automatically retry loading after failure when hidden
Fixed
- App Extension Compatibility - SDK now works correctly in App Extensions (no UIApplication calls)
- Rewarded Delegate Callbacks - Fixed callback ordering bug
- Symbol Collisions - All category methods now prefixed with
clx_to prevent conflicts
Changed
- CloudXCore now distributed as Dynamic Framework - Enables crash symbolication for SDK issues
Android SDK 0.11.0
Changed
- Migrated the SDK HTTP client from Ktor
3.0.3to OkHttp4.12.0. - Added destroyed-state guards across ad formats.
iOS SDK 1.2.1
Added
- Visual Debugger Button - New debugging tool for development and QA
- High-ROI Key-Value Targeting Examples - Enhanced demo apps with targeting signal examples
Fixed
- Corrected vendored_frameworks paths in podspecs
Android SDK 0.10.0
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.
Android SDK 0.9.0
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.
iOS SDK 1.2.0
🚀 First Official Release
Initial release of the CloudX iOS SDK with support for banner, MREC, and interstitial ads.
Android SDK 0.6.0
Added
- Added
testModesupport toCloudXInitializationParamsfor requesting test ads during development.
Android SDK 0.4.0
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.