💡Tips
- 通过广告状态查询接口,可在展示广告前判断广告是否已加载完成、是否正在加载中,以及查看当前已缓存的广告列表。
- 支持查询插屏广告、激励视频广告和开屏广告的状态。
- 建议在展示广告前调用对应的状态查询方法,以优化广告展示时机和用户体验。
HyperBid Flutter SDK 提供了广告状态查询接口,返回 McAdStatusInfo 对象,包含以下信息:
| 字段 | 类型 | 说明 |
|---|---|---|
isLoading |
bool |
广告是否正在加载中 |
isReady |
bool |
广告是否已加载完成并可展示 |
adList |
List<McAd> |
当前已缓存的广告信息列表 |
McAdStatusInfo statusInfo = await McSdk.checkInterstitialAdStatus("your mediation unit id");
print("是否正在加载: ${statusInfo.isLoading}");
print("是否有可展示的广告: ${statusInfo.isReady}");
print("已缓存广告数量: ${statusInfo.adList.length}");
McAdStatusInfo statusInfo = await McSdk.checkRewardedAdStatus("your mediation unit id");
print("是否正在加载: ${statusInfo.isLoading}");
print("是否有可展示的广告: ${statusInfo.isReady}");
print("已缓存广告数量: ${statusInfo.adList.length}");
McAdStatusInfo statusInfo = await McSdk.checkAppOpenAdStatus("your mediation unit id");
print("是否正在加载: ${statusInfo.isLoading}");
print("是否有可展示的广告: ${statusInfo.isReady}");
print("已缓存广告数量: ${statusInfo.adList.length}");
通过 adList 字段,可以查看当前已缓存的每条广告的详细信息:
// 激励视频为例
McAdStatusInfo statusInfo = await McSdk.checkRewardedAdStatus("your mediation unit id");
for (McAd ad in statusInfo.adList) {
print("聚合单元 ID: ${ad.adUnitId}");
print("广告平台: ${ad.networkName}");
print("聚合平台广告位: ${ad.mediationPlacementId}");
print("预估收益: ${ad.revenue} ${ad.currency}");
print("---");
}
📌
adList中的广告按照缓存顺序排列,已缓存的广告信息可用于数据分析和日志记录。⚠️ 注意:状态查询为异步操作,请使用
await等待结果返回后再进行后续逻辑处理。