Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.cloudx.io/llms.txt

Use this file to discover all available pages before exploring further.

No releases match the current filters.

April 28, 2026

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.Sdk and CloudX.Sdk.Editor).
  • Removed the runtime dependency on Newtonsoft.Json. The SDK no longer requires com.unity.nuget.newtonsoft-json to be present in your project.

SDK Updates

April 24, 2026

Android SDK 3.2.0

Added

  • Magnite Adapter — Added adapter-magnite with banner, interstitial, and rewarded support, plus privacy forwarding, bid extras, and metadata integration for Magnite demand
  • Per-Request Bid Floor Overrides — Added an Android API for per-request bid floor overrides and expanded bid request extras handling so publishers can send request-scoped floor controls through the SDK bid pipeline

Changed

  • Adapter Integration Surface — Replaced adapter listener extraInfo maps with Bundle, renamed extras types to clearer Pub / Adapter prefixes, and now source SDK version reporting from adapter params instead of BuildConfig so adapters receive the version actually used by the request
  • Banner Lifecycle Ownership — Moved banner view attach and detach handling out of individual adapters and into the SDK delegate so banner integrations behave more consistently across networks
  • Telemetry Payload Alignment — Aligned Android telemetry with the iOS and backend wire contract, added app version and build number to TelemetrySdkContext, restored gzip compression on telemetry endpoints, and now forwards raw ILRD ad format values to the backend

Fixed

  • Adapter Discovery Hardening — Centralized reflective adapter loading and now tracks discovery failures explicitly, improving resilience when network SDK classes or adapter objects are missing at runtime
  • Vungle Banner Load Errors — Banner load callbacks now surface INVALID_LOAD_STATE when Vungle reports onAdLoaded() without a banner view instance, instead of leaving that path ambiguous

Unity SDK 3.2.0

What’s New

  • Added DestroyInterstitial(adUnitId) and DestroyRewarded(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

April 22, 2026

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.

April 21, 2026

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.
Install 3.1.2 or later — 3.1.0 and 3.1.1 are not installable. Both earlier 3.1 versions were removed from npm after a release-build issue on iOS. 3.1.2 is the first installable release of the 3.1 line.
Native Ads support is tracked separately and is not part of this release.

Added

  • Manual Privacy APICloudX.setHasUserConsent(value) and CloudX.setDoNotSell(value) bridge to the native privacy APIs on iOS and Android. Accepts boolean to set, or null to clear a previously set value and fall back to the IAB storage.
  • Error Codes — added LOAD_NOT_ALLOWED_WHILE_SHOWING (303) and ADAPTER_INITIALIZATION_TIMEOUT (622) to CloudXErrorCode.

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 used CloudXBannerAd.createAdWithOffsets and passed the device’s top safe-area inset as the yOffset (for example, insets.top from react-native-safe-area-context), remove it. TOP_CENTER and BOTTOM_CENTER banners already position themselves inside the safe area automatically, so an additional offset will push the banner below the safe area on devices with a notch or Dynamic Island. Use CloudXBannerAd.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) when you call showBanner / showMREC. This is invisible through the JavaScript API — mentioned here only for publishers who inspect the native view hierarchy between create and show. A side effect is that you can now pre-load a banner into memory 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

April 17, 2026

Android SDK 3.1.0

Added

  • Native Ads — Added native ad support with CloudX.createNativeAdLoader(), CloudXNativeAdLoader, CloudXNativeAd, CloudXNativeAdListener, and CloudXNativeLoaderConfiguration, backed by the Meta adapter and NATIVE_REEL ad unit parsing support
  • Trusted Event Timestamps — Added clientTrustedTimestamp to telemetry event headers so backend processing can distinguish SDK-side event creation time from delivery time

Changed

  • Adapter Communication Improvements — Reworked adapter initialization, bid extras, privacy forwarding, and load/show communication around explicit params objects and callback-based async flows
  • Startup And Threading Safety — Moved user-agent resolution off singleton startup, allowed adapter initialization to run in parallel with timeout handling, and reduced cumulative main-thread work during initialization to lower ANR and deadlock risk
  • Telemetry Payload Improvements — Restructured telemetry payloads, expanded config, latency, identity, and storage-guard handling, and disabled gzip on telemetry request bodies
  • Runtime Hardening — Improved resilience for missing network SDK dependencies during adapter class loading, Unity Ads initialization, banner threading, bid token formatting, banner/native load exception handling, and ad preview bid asset fallback
  • Unity 2022 Meta Compatibilityadapter-meta now brings in Meta Audience Network 6.20.0 transitively by default for Unity 2022 compatibility. If your integration uses native ads, explicitly add Meta Audience Network 6.21.0 or newer in your app

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

April 16, 2026

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.

April 9, 2026

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.

April 6, 2026

Android SDK 3.0.0

Breaking Changes

  • Explicit Android Context On Public SDK APIsCloudX.initialize() now requires an Android Context, and the public creation APIs now require Context as well: createBanner(), createMREC(), createInterstitial(), and createRewarded()
  • Adapter Factory Interfaces Now Take Raw Context — Adapter factory interfaces now take context: Context directly instead of CloudXContextProvider; external adapters must update their factory create() signatures and replace contextProvider.getContext() with the passed context

Changed

  • Explicit Context Flow Across The SDK — The SDK no longer relies on process-startup context bootstrapping. Context now flows explicitly through initialization, ad creation, privacy handling, HTTP client setup, and internal singleton access
  • Lower Startup Overhead And ANR Risk — The SDK startup initializer was removed from the manifest, reducing main-thread work during app launch and lowering ANR risk
  • Correct Privacy Initialization Order — Privacy forwarding now resolves consent in the correct initialization order and reacts to post-init manual privacy changes through ManualPrivacyState.onChanged
  • Expanded First-Party Metrics Telemetry — First-party metrics telemetry is now wired through the public SDK entry points and internal runtime call sites with typed telemetry metrics, config-driven sampling, and buffered delivery through MetricsTelemetryTracker

Removed

  • Legacy Startup Context Bootstrap — Removed the internal startup context bootstrap path, including ApplicationContext, CloudXStartup, CloudXContextProvider, and the internal ContextProvider indirection layer
  • ActivityLifecycleService Startup Path — Removed ActivityLifecycleService and its startup registration path from the SDK startup flow

Unity SDK 3.0.0

SDK Updates

April 3, 2026

iOS SDK 2.2.8

Fixed

  • Crash Fix — Fixed a crash that could occur during concurrent ad event tracking on background threads

April 2, 2026

Android SDK 2.2.7

Added

  • First-Party Metrics Telemetry Across SDK Call Sites — Metrics telemetry is now wired through SDK call sites, HTTP timing instrumentation, and telemetry collectors, so method calls and internal SDK metrics flow through the first-party metrics telemetry pipeline alongside the existing metrics tracker

Changed

  • Metric Timestamps Now Reflect Event Creation Time — Metric timestamps are now stamped when the metric event is created instead of when the tracker later enqueues it, so timing data reflects when the SDK action actually happened
  • Explicit Activity Lifecycle Service Initialization — Activity lifecycle tracking now initializes through ActivityLifecycleService.instance(context), and Jetpack Startup now passes the real application context directly when registering lifecycle tracking

Fixed

  • Publisher Startup ANR Risk — Fixed publisher startup ANR risk in ActivityLifecycleService initialization by removing the previous lazy singleton and global lookup path from the startup flow
  • Missing SDK Metrics Telemetry Events — Fixed SDK metrics telemetry gaps by wiring MetricsTelemetryTracker through runtime call sites that were previously only reported through the legacy metrics path

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.6 remain unchanged in this release

SDK Updates

April 1, 2026

Android SDK 2.2.6

Added

  • Lifecycle Event Telemetry — The SDK now sends first-party telemetry for init, bid request, load success, loss, impression, click, reward, and error events in parallel with the legacy tracker flow
  • Crash Telemetry Pipeline — SDK crashes are now cached and sent through both the legacy crash tracker and the newer first-party crash telemetry tracker on the next launch

Changed

  • Placement And Custom Data In Telemetry — Banner, interstitial, and rewarded lifecycle telemetry now includes the placement and customData values attached to the ad instance at event time
  • Crash Cache Behavior — Crash telemetry payloads are now cached even when the crash endpoint is not configured; endpoint presence only controls whether pending payloads are sent
  • Telemetry Endpoint Naming — Remote log endpoint config now uses sdkLogEndpointURL naming to match the server contract

Removed

  • Session Init Tracking — Removed the old session endpoint and internal session tracker flow; SDK initialization no longer sends the legacy session init event

Fixed

  • SDK Error Visibility In Telemetry — Bid-response parsing failures, adapter initialization failures, and ad-loading failures are now recorded in first-party telemetry instead of only in the legacy tracker path
  • Crash Tracker Isolation — A failure in one crash tracker no longer prevents the other crash tracker from caching or sending its payload
  • Native Ads Excluded From Release — The native ads work from commit f6d049327f249fa1728fbb9e754484f460e40fbd was intentionally excluded from the published 2.2.6 release

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 isAdReady support 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(...) and SetMrecPlacement(...) / SetMrecCustomData(...) before CreateBanner(...) or CreateMrec(...) if you want those values applied to the first ad request

SDK Updates

March 30, 2026

Android SDK 2.2.5

Added

  • SDK Init Telemetry — Added first-party SDK init tracking via sdkInitEndpointURL
  • Bid Request Telemetry — Added first-party bid request tracking via sdkBidReqEndpointURL
  • Explicit Load Failure While Showing — Added LOAD_NOT_ALLOWED_WHILE_SHOWING so fullscreen load() calls fail clearly when invoked while the same ad instance is already being shown

Changed

  • Adapter-Owned Fullscreen Readiness — Fullscreen readiness now comes from the underlying network adapter instead of relying only on whether the SDK still holds a cached fullscreen ad reference
  • Stale Fullscreen Reload HandlingFullscreenAdManager.load() now reuses a cached fullscreen ad only if the adapter still reports it as ready; otherwise the stale ad is destroyed and a fresh load begins
  • Static Fullscreen Expiration — Static fullscreen ads now track when they loaded and stop reporting ready after one hour

Fixed

  • Dropped Internal Tracking Events — Fixed impression, click, reward, and error internal tracking being lost when adapters fire callbacks back-to-back and the delegate coroutine scope is cancelled before event emission completes
  • Load During Active Show — Fixed fullscreen load() being accepted during an active show; it now fails immediately with onAdLoadFailed(..., LOAD_NOT_ALLOWED_WHILE_SHOWING)
  • Stale Fullscreen Readiness — Fixed fullscreen ads being reported as ready after the underlying network SDK had already invalidated or expired the ad object
  • Mintegral CMP Consent Propagation — Fixed CMP-managed GDPR consent for Mintegral by calling setConsentStatus(context) when manual consent is not set, allowing the Mintegral SDK to read the TCF string from shared storage

iOS SDK 2.2.6

Added

  • Privacy Consent for Unity Ads — Unity Ads adapter now supports GDPR and CCPA privacy consent forwarding
  • isAdReady Support — Fullscreen ad adapters now support isAdReady for reliably querying ad availability before calling show

Fixed

  • Banner Visibility Accuracy — Fixed an issue where setting banner.hidden = YES did 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

March 27, 2026

Unity SDK 2.2.4

What’s New

  • Added SetHasUserConsent(bool?) and SetDoNotSell(bool?) for manual privacy overrides before initialization
  • Added automatic NSUserTrackingUsageDescription injection 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 OnAdShowFailed now includes both the failed CloudXAd and the corresponding CloudXError, 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

March 26, 2026

Android SDK 2.2.4

Added

  • Granular No-Fill Diagnostics — No-fill error messages now include per-network non-bid reasons, making it easier to diagnose fill rate issues
  • Improved Bid Request Data — Content language is now included in bid requests for improved ad targeting

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.

Fixed

  • ProGuard Compatibility — Fixed consumer ProGuard rules not being applied correctly for adapter modules
  • Mintegral Stability — Fixed a crash in the Mintegral adapter on Android 6.0 (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 appcompat and webkit transitive 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

March 23, 2026

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

March 20, 2026

Android SDK 2.2.3

Added

  • Remote log collection via metrics pipeline with server-controlled filters and collection limits
  • Added Unity Ads adapter publishing to both GitHub Packages RC workflows and Maven Central release workflows

Changed

  • Renamed the Unity adapter artifact/module to adapter-unityads and aligned Unity Ads naming across the SDK, build setup, and documentation
  • Refactored CXLogger to a handler-based architecture and simplified scoped logging internals
  • Removed the demo app dependency on the SDK’s internal CXLogger

Fixed

  • Fixed Unity Ads network name casing to match the server bidder configuration

March 19, 2026

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 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. See the Flutter integration guide for copy-paste snippets.

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.

March 17, 2026

Android SDK 2.2.2

Added

  • Adapter metadata in config request
  • Metrics tracking for bid token collection
  • Session init event sent after SDK initialization

Fixed

  • InMobi bid token retrieval now runs on 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)

March 16, 2026

iOS SDK 2.2.2

Added

  • Manual Privacy API — New setHasUserConsent: and setDoNotSell: 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

March 11, 2026

Android SDK 2.2.1

Changed

  • Hardened Mintegral adapter with defensive null checks and exception guards across all ad format factories and bumped Mintegral SDK from 17.0.61 to 17.0.91

Fixed

  • Fixed non-local return in BidRequestProvider.createBidRequest() that caused adapter extras to be silently skipped when an adapter threw an exception

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

March 10, 2026

Android SDK 2.2.0

Added

  • Ad click tracking — notifies server when a user taps an ad
  • Manual privacy APIsetHasUserConsent() and setDoNotSell() for apps that manage consent directly, with automatic forwarding to all ad network adapters
  • Kotlin coroutine support — suspend initialize() overload for cleaner Kotlin integration
  • Network SDK crash reporting — detects and reports crashes from ad network SDKs
  • Creative Type support in the CloudX renderer
  • Adapter error metrics tracked across all ad formats

Changed

  • CloudX renderer moved into the core SDK module
  • Removed appcompat and webkit transitive dependencies, reducing SDK footprint
  • Metrics are retained on transient failures (5xx, network, timeout) and retried automatically
  • Bumped Vungle SDK from 7.6.1 to 7.7.1
  • Bumped InMobi SDK from 11.1.0 to 11.1.1

Fixed

  • Fixed geo location data being read from processed headers instead of raw headers
  • Fixed INVALID_APP_KEY error incorrectly surfacing for non-config HTTP responses

Unity SDK 2.2.0

SDK Updates

March 5, 2026

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: CloudXInterstitialAd and CloudXRewardedAd
  • 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 / onRewardedAdHidden callbacks firing twice on close
  • Fixed double revenue callback for rewarded ads
  • Fixed thread-safety crash in bid token dictionary construction
  • showInterstitial / showRewarded now emit display failure events when topViewController is nil (previously silent return)
  • didFailToLoadAd: now broadcasts to all fullscreen listeners when adUnitId is nil (previously silent)
  • rewardAmount sent as NSNumber instead of NSString (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

March 4, 2026

Android SDK 2.0.1

This patch release adds compatibility with Unity Engine 2022.3.

Changed

  • Improved internal event persistence with a lighter file-based storage layer, resolving Unity Engine 2022.3 build compatibility
  • Downgraded Meta Audience Network SDK from 6.21.0 to 6.20.0 for Unity Engine 2022.3 compatibility

Fixed

  • Fixed a rare concurrent access issue in session metrics tracking
  • Fixed Meta rewarded ad Activity being destroyed prematurely in apps using singleTask launch 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

February 26, 2026

React Native SDK 2.0.0-beta.1

Added

  • Initial full SDK integration with CloudX Core SDK
  • Banner ads via CloudXBannerAd module
  • MREC ads (300x250) via CloudXMRECAd module
  • Interstitial ads via CloudXInterstitialAd module
  • Rewarded ads via CloudXRewardedAd module
  • 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

February 5, 2026

Unity SDK 2.0.0

Breaking Changes

  • Banner and MREC ads no longer auto-load after creation. You must now call LoadBanner() or LoadMrec() explicitly after CreateBanner() or CreateMrec()
  • CloudXAd property renames:
    • PlacementName is now AdUnitId
    • BidderName is now NetworkName

What’s New

  • Added placement and custom data support for all ad formats:
    • SetBannerPlacement(adUnitId, placement) and SetBannerCustomData(adUnitId, customData)
    • SetMRecPlacement(adUnitId, placement) and SetMRecCustomData(adUnitId, customData)
    • ShowInterstitial(adUnitId, placement?, customData?) now accepts optional placement and customData parameters
    • ShowRewarded(adUnitId, placement?, customData?) now accepts optional placement and customData parameters
  • New CloudXAd properties: 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

February 4, 2026

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 with CloudX.createRewarded(), CloudXRewardedAd, CloudXRewardedListener, and CloudXReward
  • InMobi adapter (SDK 11.1.0) with support for banner, MREC, interstitial, and rewarded ads
  • Vungle rewarded ads (SDK 7.6.1) support added to existing Vungle adapter
  • CloudX.isInitialized() to check SDK initialization state
  • CloudX.getVersion() to get the SDK version string
  • setPlacement() and setCustomData() methods on CloudXAdView for tracking
  • show(activity, placement, customData) overloads on fullscreen ads for tracking
  • CloudXSdkConfiguration returned in onInitialized() callback
  • CloudXAd.networkPlacement property for network-specific placement ID
  • New error codes: NETWORK_NO_CONNECTION, AD_ALREADY_SHOWING, DONT_KEEP_ACTIVITIES_ENABLED, AD_NOT_READY, INVALID_APP_KEY

Breaking Changes

  • Bumped minSdk from 21 to 23 (Android 6.0 Marshmallow)
  • Replaced CloudXInitializationParams with CloudXInitializationConfiguration builder pattern
  • Renamed placementName parameter to adUnitId in createBanner(), createMREC(), createInterstitial(), createRewarded()
  • Renamed CloudXAd.placementId to adUnitId
  • Removed CloudXAd.placementName property
  • Renamed CloudXAd.bidderName to networkName
  • Renamed CloudXErrorCode.INVALID_PLACEMENT to INVALID_AD_UNIT
  • Changed onAdLoadFailed(placementName, cloudXError) to onAdLoadFailed(adUnitId, cloudXError)
  • Changed onAdDisplayFailed(cloudXError) to onAdDisplayFailed(cloudXAd, cloudXError) - now includes the ad object
  • Changed onInitialized() to onInitialized(configuration: CloudXSdkConfiguration)
  • Removed testMode parameter - test mode is now server-controlled
  • Changed show() to show(activity) for interstitial and rewarded ads - Activity parameter now required

Changed

  • Meta Audience Network SDK updated from 6.17.0 to 6.21.0

Fixed

  • Ad reload now works correctly in onAdHidden and onAdDisplayFailed callbacks
  • All load() and show() calls now guarantee callbacks 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: and CLXRewardedDelegate
  • InMobi adapter (SDK 11.1) with support for banner, MREC, interstitial, and rewarded ads
  • CLXAd.networkPlacement property for network-specific placement ID

Breaking Changes

  • Renamed placement parameter to adUnitId in createBannerWithAdUnitId:, createMRECWithAdUnitId:, createInterstitialWithAdUnitId:, createRewardedWithAdUnitId:
  • Renamed CLXAd.placement to adUnitId
  • Renamed CLXAd.bidderName to networkName
  • Renamed CLXErrorCodeInvalidPlacement to CLXErrorCodeInvalidAdUnit
  • Changed bannerAdView:didFailWithError: to include ad unit ID in error
  • Removed testMode parameter from initializeSDKWithAppKey: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

January 15, 2026

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 UnityMainThreadDispatcher class to avoid namespace collisions with third-party packages

December 23, 2025

Android SDK 0.12.1

Fixed

  • Fixed ANR in Meta adapter caused by getBidderToken() blocking main thread

December 15, 2025

Unity SDK 0.12.0

Initial release of CloudX Unity SDK

December 14, 2025

Android SDK 0.12.0

Breaking Changes

  • Removed CloudXError.effectiveMessage - use message directly instead
  • Removed setLoggingEnabled() - use setMinLogLevel(CloudXLogLevel.NONE) to disable logging
  • Removed CloudXPrivacy class - privacy is now handled automatically via GPP/TCF

Changed

  • Enhanced GDPR support with GPP Section 2 parsing and vendor consent checking
  • Simplified TCF purpose checks to only require purposes 1 and 2 (removed 3-4)
  • Added CCPA support via GPP with legacy USPrivacy fallback
  • Removed COPPA handling
  • Added CloudXLogLevel.NONE enum value for 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

December 9, 2025

Android SDK 0.11.0

Changed

  • Migrated HTTP client from Ktor 3.0.3 to OkHttp 4.12.0
  • Added isDestroyed guards to all ad formats

December 4, 2025

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

December 3, 2025

Android SDK 0.10.0

Added

  • Vungle adapter (SDK 7.6.1) with support for banner and interstitial ads

Changed

  • Simplified log tag to “CloudX” for easier logcat filtering
  • Added entry logging to public API functions for better debugging
  • SDK initialization now fails early with clear error when no adapters are found

Fixed

  • Fixed banner refresh stopping after load failure

November 26, 2025

Android SDK 0.9.0

Added

  • Ad revenue tracking via new CloudXAdRevenueListener interface with onAdRevenuePaid callback

Changed

  • Upgraded Ktor from 2.3.8 to 3.0.3 for improved compatibility with apps using Ktor 3.x

Fixed

  • Fixed memory leaks in ad lifecycle management
  • Various bug fixes and stability improvements

iOS SDK 1.2.0

🚀 First Official Release

Initial release of the CloudX iOS SDK with support for banner, MREC, and interstitial ads.

November 11, 2025

Android SDK 0.8.0

Internal

  • Test release to validate release automation workflow

November 3, 2025

Android SDK 0.6.1

Fixed

  • Fixed release script to update Chinese README (README.zh-CN.md) version numbers

Android SDK 0.6.0

Added

  • Test mode support: Add testMode parameter to CloudXInitializationParams to request test ads during development

October 27, 2025

Android SDK 0.5.0

Fixed

  • Fixed release promotion script to properly sync file deletions from release branch to main

Android SDK 0.4.0

Added

  • Initial alpha release of CloudX Android SDK
  • Support for Banner (320x50) and MREC (300x250) ad formats
  • Support for Interstitial fullscreen ads
  • Real-time bidding with intelligent ad mediation
  • CloudX and Meta Audience Network adapter support
  • Privacy compliance for GDPR, CCPA (via GPP), and COPPA
  • IAB TCF, USPrivacy, and GPP string support
  • Session depth tracking for bid optimization
  • Comprehensive ad lifecycle callbacks and error handling
  • Debug logging with configurable log levels