更新日志

Flutter SDK 版本历史

3.9.0 — 2026-09-11

将插件迁移到当前的 CloudX 原生 SDK,并新增 Trusted Arbiter。Dart 包版本跟随 iOS CloudXCore 线;Android 的 io.cloudx:sdk 固定版本随每个版本一并列出。

原生版本固定

  • iOS: CloudXCore 3.9.0
  • Android: io.cloudx:sdk 4.7.0

API

  • CloudX.initialize 返回 CloudXInitializationResult。请检查 result.success;失败时会带上原生 SDK 的错误码、错误码名称和错误信息,因此可以区分应用密钥错误与网络失败。
  • 单次加载的额外参数:setBannerExtraParameter、setMrecExtraParameter、setInterstitialExtraParameter 和 setRewardedExtraParameter 可为该广告单元的下一次加载附加一组键值。参见单次加载的额外参数。
  • CloudXError.codeName 会带上 SDK 为该错误码定义的名称,因此日志会显示为 NO_FILL[302] 而不是 302。初始化失败则由 CloudXInitializationResult.errorCodeName 提供同样的信息。
  • 新增错误码:CloudXErrorCode.adNotFound(403)表示展示时找不到该广告单元的广告,displayHostUnavailable(404)表示没有可用于展示的宿主。
  • 新增加载错误码:loadNotAllowedWhileShowing(303)和 loadFailed(304),以及广告单元在已有加载进行中时可能返回的拒绝,Android 编号为 305,iOS 为 306。这两个都要处理,因为两个平台互不上报对方的值。

Trusted Arbiter

  • CloudX.arbiter 会把已加载的 CloudX 广告与您自行接入平台的出价进行比较,并返回应当展示的平台。出价工厂覆盖 CloudX、AdMob、Google Ad Manager、Unity LevelPlay、PubMatic 和自定义来源。参见 Trusted Arbiter。
  • CloudX.reportRevenueData 把其他中介平台的展示收入转发给 CloudX。AdMob 和 Ad Manager 的出价依赖这些历史数据定价,因此该接口是必需的。
  • CloudXAd.adValues 暴露 SDK 附加在已加载广告上的元数据。请把 onAdLoaded 中的 CloudXAd 原样传给 CloudXArbiterBid.cloudX。

广告行为

  • iOS: 全屏广告从最顶层的视图控制器展示;在系统 UI(如弹窗或分享面板)之上的展示会被拒绝,并在失败信息中给出原因。
  • 测试模式下不回调收入,测试用的哨兵价格不会进入您的收入监听器。
  • 此前广告事件若缺少字段或字段类型异常,会在到达监听器之前被丢弃。现在该回调会正常送达,并把缺失字段标记为不存在。

宿主应用:网络适配器

发布的插件仅包含核心。适配器按 <网络 SDK 版本>.<适配器修订号> 独立编号,与核心 SDK 各自演进,因此适配器版本无需与插件版本一致。Flutter 集成指南 说明在何处声明适配器,并链接到列有当前版本和各网络要求的 Android 与 iOS 指南。

广告格式

本次发布支持横幅广告、MREC、插屏广告和激励视频广告。横幅广告和 MREC 以程序化浮层展示;插屏广告和激励视频广告则通过程序化 API 加载和展示。参见横幅广告和 MREC、插屏广告和激励视频广告。


2.2.3 — 2026-03-19

pub.dev 上的首个公开发布。Dart 软件包的 major.minor.patch 与其绑定的 CloudX 原生 SDK 一致(iOS CloudXCore、Android io.cloudx:sdk)。

要求

  • Dart SDK: >=2.17.1 <4.0.0(见 pub.dev 上的软件包 pubspec)
  • Flutter: >=3.0.0
  • iOS: 13.0+
  • Android: minSdk 23 (API 23)

Dart 下限刻意设低,以便仍在较旧稳定 Flutter 线上的应用可以采用 cloudx_flutter,而不必整套工具链升级。

本版本包含

  • 横幅、MREC、插屏和激励视频广告;程序化浮层 API 以及内嵌 CloudXAdView
  • 监听器回调、定向键值、展示级收入(onAdRevenuePaid)及相关生命周期事件
  • 隐私辅助方法 CloudX.setHasUserConsent 和 CloudX.setDoNotSell(可空的 bool? 会清除覆盖,并在适用时回退到 CMP)
  • 原生版本锁定:CloudXCore 2.2.3(iOS)、io.cloudx:sdk 2.2.3(Android)

宿主应用:广告网络适配器

已发布的插件仅包含核心。请只在 CocoaPods 和 Gradle 中声明您需要的广告网络适配器,版本均为 2.2.3(Meta、Vungle、InMobi、Mintegral、Unity Ads、renderer 等)。对于 Unity Ads,请添加 CloudXUnityAdsAdapter 和 io.cloudx:adapter-unityads。

Android:Mintegral

如果您依赖 io.cloudx:adapter-mintegral,必须在 Gradle 中添加 Mintegral 的 Maven 仓库 —— 制品不在 Maven Central。见 Android Mintegral 适配器 — Maven 仓库。