主题
激励视频 —— NovvyRewardedAd
一次性全屏广告:load() → show()。用户看完(广告变为可关闭)时回调 onUserEarnedReward 发放激励。
对接流程
NovvyAds.setContentContext(...) // 短剧场景必需
↓
NovvyRewardedAd(adUnitId)
↓
load() → onAdLoaded // 就绪(或 onAdFailedToLoad)
↓
show() → onAdShowed
↓
onUserEarnedReward // 发放激励
↓
onAdDismissed // 关闭后自动 destroy完整示例
dart
final ad = NovvyRewardedAd(adUnitId: 'your_ad_unit_id');
var earned = false;
ad.onAdLoaded = () { /* 已就绪,可在此启用「看广告」入口 */ };
ad.onUserEarnedReward = () => earned = true;
ad.onAdDismissed = () {
if (earned) grantReward(); // 发放激励
ad.destroy();
};
ad.onAdFailedToLoad = (e) => ad.destroy();
ad.load(); // 提前预加载
// 用户点击「看广告领奖励」时再展示:
void onWatchAdTapped() {
if (ad.isReady) ad.show();
}关闭后自动
destroy;未展示即放弃时手动调用ad.destroy()。
事件回调
除基类回调 onAdLoaded / onAdFailedToLoad 外,本类型的独有回调:
| 回调 | 类型 | 触发时机 |
|---|---|---|
onAdShowed | void Function()? | 广告展示、曝光上报完成 |
onUserEarnedReward | void Function()? | 广告变为「可关闭」时触发一次(无奖励载荷,宿主发放自有奖励) |
onAdDismissed | void Function()? | 广告关闭,触发后自动 destroy |
onAdFailedToLoad(error) 的 error 取值见错误类型。回调统一在主 isolate(UI 线程) 触发。