🚀 快速开始
2.0: 对应 2.0.0 新契约。pub.dev 当前仍提供 1.0.3;依赖尚未升级时请切换到 1.x 文档。

初始化

Future<void> initializeAds(String appId) async {
  await GromoreAds.initialize(
    GromoreInitConfig(
      appId: appId,
      useMediation: true,
      privacy: const GromorePrivacyConfig(
        android: AndroidGromorePrivacyConfig(
          canUseLocation: false,
          canUsePhoneState: false,
          canUseAppList: false,
        ),
        ios: IosGromorePrivacyConfig(
          canUseLocation: false,
          forbiddenIdfa: true,
        ),
      ),
    ),
  );
}

appId 应由宿主专用配置读取,并与当前包名、Bundle ID 和签名在穿山甲平台的登记信息一致;是否纳入版本控制由宿主仓库策略决定。配置文件缺失或必填值为空时,应在调用 initialize() 前明确失败。

initializationState 明确区分 uninitializedinitializingreadyfailed。广告方法只能在 ready 后调用,否则抛出 GromoreException(code: 'AD_NOT_READY')

相同配置的重复初始化返回同一个 Future。已经开始初始化后,修改 appIduseMediation 或其他初始化配置会抛出 INITIALIZATION_CONFIG_CONFLICT,原生层也会再次校验。

本地瀑布流配置

final config = GromoreInitConfig(
  appId: appId,
  localConfig: GromoreLocalConfig.asset('assets/SDK_Setting.json'),
);

也可使用绝对文件路径或经过校验的 JSON object 字符串。公开 API 不接受裸 Map

iOS 选项

IosGromoreOptions(
  appLogoAsset: 'assets/app_logo.png',
  allowModifyAudioSessionSetting: true,
  audioSessionMode: IosAudioSessionMode.mix,
)

另一平台的配置不会发送到原生层。

需要进一步协助?

与 LightCore 技术顾问沟通,获取商业化策略与集成支持。