Changelog
Flutter SDK release history
3.9.0 — 2026-09-11
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
- iOS: CloudXCore 3.9.0
- Android: io.cloudx:sdk 4.7.0
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.
2.2.3 — 2026-03-19
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.