To use mini program rewarded ads, you must first obtain ad authorization. For details, see Ad Authorization. The rewarded video ad component is composed of native image, text, and video controls from the client. It has the highest layer level and will cover regular components.
Developers can call wx.createRewardedVideoAd to create a rewarded video ad component. This method returns a singleton instance, which is only valid for the current page and cannot be used across pages. Ad creation
The rewarded video ad component is hidden by default, allowing it to be pre-created for early initialization. Developers can create an ad instance in the onLoad event callback of the mini program page and repeatedly call the ad instance within the lifecycle of that page.
let rewardedVideoAd = null
Page({
onLoad() {
if(wx.createRewardedVideoAd){
rewardedVideoAd = wx.createRewardedVideoAd({ adUnitId: 'xxxx' })
rewardedVideoAd.onLoad(() => {
console.log('onLoad event emit')
})
rewardedVideoAd.onError((err) => {
console.log('onError event emit', err)
})
rewardedVideoAd.onClose((res) => {
console.log('onClose event emit', res)
})
}
}
})
To avoid misuse of ad resources, each user is limited to a certain number of rewarded video ads per day. It is recommended to check if the ad has been successfully fetched before displaying the ad button.
Show/Hide
The rewarded video ad component is hidden by default. After the user actively triggers the ad, the developer needs to call RewardedVideoAd.show()
to display it.
Developers cannot control the hiding of the rewarded video ad component.
Fetch success and failure
rewardedVideoAd.onLoad(() => {
console.log('Rewarded video ad loaded successfully')
})
rewardedVideoAd.show()
.then(() => console.log('Rewarded video ad displayed'))
rewardedVideoAd.onError(err => { console.log(err)})
Listen for user rewards
Developers can listen to the onClose event to determine whether a user should receive a reward. The callback function for onClose will pass a res parameter, where res.isEnded describes the state when the ad ends. Developers need to check res.isEnded
to determine if the video was watched to the end and then issue the reward to the user.
rewardedVideoAd.onClose(res => {
if (res && res.isEnded) {
} else {
}
})
Note
Calling RewardedVideoAd.onLoad(), RewardedVideoAd.onError(), RewardedVideoAd.onClose(), and other methods multiple times to listen for ad events will result in multiple event callbacks. It is recommended to listen once after creating the ad, or to cancel the original listener before setting a new one.