Rewarded video ads follow a two-step process: preloading and showing. You must listen to the initAdStream to handle the lifecycle and reward verification.
- Preload: Call
FlutterUnionad.loadRewardVideoAd. - Show: Call
FlutterUnionad.showRewardVideoAd. - Listen: Use
FlutterUnionad.FlutterUnionadStream.initAdStream with flutterUnionadRewardAdCallBack to handle events like onVerify (for rewards) and onReady (to know when to show the ad).
// 1. Preload
await FlutterUnionad.loadRewardVideoAd(
androidCodeId: "102733764",
iosCodeId: "102733764",
rewardName: "200 Gold",
rewardAmount: 200,
userID: "123",
orientation: FlutterUnionadOrientation.VERTICAL,
);
// 2. Listen for events
FlutterUnionad.FlutterUnionadStream.initAdStream(
flutterUnionadRewardAdCallBack: FlutterUnionadRewardAdCallBack(
onShow: () => print("Ad shown"),
onClick: () => print("Ad clicked"),
onFail: (error) => print("Ad failed: $error"),
onClose: () => print("Ad closed"),
onSkip: () => print("Ad skipped"),
onVerify: (rewardVerify, rewardAmount, rewardName) {
print("Reward: $rewardVerify $rewardAmount $rewardName");
},
onReady: () async {
print("Ad ready, showing now...");
await FlutterUnionad.showRewardVideoAd();
},
onCache: () async {
print("Cache success. Recommended to show ad here.");
},
onUnReady: () => print("Ad not ready"),
onRewardArrived: (rewardVerify, rewardType, rewardAmount, rewardName, errorCode, error, propose) {
print("Reward arrived: $rewardVerify $rewardAmount $rewardName");
},
),
);
// 3. Show
await FlutterUnionad.showRewardVideoAd();