[2.2.3] - 2026-03-20
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-unityadsand aligned Unity Ads naming across the SDK, build setup, and documentation - Refactored
CXLoggerto 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
[2.2.2] - 2026-03-17
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
[2.2.1] - 2026-03-11
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
[2.2.0] - 2026-03-10
Added
- Ad click tracking — notifies server when a user taps an ad
- Manual privacy API —
setHasUserConsent()andsetDoNotSell()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
appcompatandwebkittransitive 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_KEYerror incorrectly surfacing for non-config HTTP responses
[2.0.1] - 2026-03-04
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
Activitybeing destroyed prematurely in apps usingsingleTasklaunch mode
[2.0.0] - 2026-02-04
This release replaces placement names with Ad Unit IDs from the CloudX dashboard. Update yourcreateBanner(), createMREC(), createInterstitial(), and createRewarded() calls to use the ad unit ID instead of a placement name.
Added
- Rewarded ads with
CloudX.createRewarded(),CloudXRewardedAd,CloudXRewardedListener, andCloudXReward - 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 stateCloudX.getVersion()to get the SDK version stringsetPlacement()andsetCustomData()methods onCloudXAdViewfor trackingshow(activity, placement, customData)overloads on fullscreen ads for trackingCloudXSdkConfigurationreturned inonInitialized()callbackCloudXAd.networkPlacementproperty 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
minSdkfrom 21 to 23 (Android 6.0 Marshmallow) - Replaced
CloudXInitializationParamswithCloudXInitializationConfigurationbuilder pattern - Renamed
placementNameparameter toadUnitIdincreateBanner(),createMREC(),createInterstitial(),createRewarded() - Renamed
CloudXAd.placementIdtoadUnitId - Removed
CloudXAd.placementNameproperty - Renamed
CloudXAd.bidderNametonetworkName - Renamed
CloudXErrorCode.INVALID_PLACEMENTtoINVALID_AD_UNIT - Changed
onAdLoadFailed(placementName, cloudXError)toonAdLoadFailed(adUnitId, cloudXError) - Changed
onAdDisplayFailed(cloudXError)toonAdDisplayFailed(cloudXAd, cloudXError)- now includes the ad object - Changed
onInitialized()toonInitialized(configuration: CloudXSdkConfiguration) - Removed
testModeparameter - test mode is now server-controlled - Changed
show()toshow(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
onAdHiddenandonAdDisplayFailedcallbacks - All
load()andshow()calls now guarantee callbacks on the UI thread
[0.12.1] - 2025-12-23
Fixed
- Fixed ANR in Meta adapter caused by
getBidderToken()blocking main thread
[0.12.0] - 2025-12-14
Breaking Changes
- Removed
CloudXError.effectiveMessage- usemessagedirectly instead - Removed
setLoggingEnabled()- usesetMinLogLevel(CloudXLogLevel.NONE)to disable logging - Removed
CloudXPrivacyclass - 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.NONEenum value for disabling logs
Fixed
- Fixed geo API failure handling during initialization
[0.11.0] - 2025-12-09
Changed
- Migrated HTTP client from Ktor 3.0.3 to OkHttp 4.12.0
- Added
isDestroyedguards to all ad formats
[0.10.0] - 2025-12-03
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
[0.9.0] - 2025-11-26
Added
- Ad revenue tracking via new
CloudXAdRevenueListenerinterface withonAdRevenuePaidcallback
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
[0.8.0] - 2025-11-11
Internal
- Test release to validate release automation workflow
[0.6.1] - 2025-11-03
Fixed
- Fixed release script to update Chinese README (README.zh-CN.md) version numbers
[0.6.0] - 2025-11-03
Added
- Test mode support: Add
testModeparameter toCloudXInitializationParamsto request test ads during development
[0.5.0] - 2025-10-27
Fixed
- Fixed release promotion script to properly sync file deletions from release branch to main
[0.4.0] - 2025-10-27
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