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.initialize returns a CloudXInitializationResult. Check result.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, setInterstitialExtraParameter and setRewardedExtraParameter attach a key and value to the next load of that ad unit. See per-load extra parameters.
  • CloudXError.codeName carries the SDK’s own name for the code, so a log line reads NO_FILL[302] rather than 302. CloudXInitializationResult.errorCodeName does the same for an initialization failure.
  • New error codes: CloudXErrorCode.adNotFound (403) when a show finds no ad for that ad unit, and displayHostUnavailable (404) when there is nothing to present from.
  • New load error codes: loadNotAllowedWhileShowing (303) and loadFailed (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.arbiter compares 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.reportRevenueData forwards impression revenue from another mediation platform into CloudX. It is required for AdMob and Ad Manager bids, which CloudX prices from that history.
  • CloudXAd.adValues exposes the SDK metadata attached to a loaded ad. Pass the CloudXAd from onAdLoaded straight to CloudXArbiterBid.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 package pubspec on 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.setHasUserConsent and CloudX.setDoNotSell (nullable bool? 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.