# uni.createRewardedVideoAd(option)

创建激励视频广告对象

# 参数

名称 类型 必填 默认值 描述
option CreateRewardedVideoAdOptions - -
名称 类型 必备 默认值 描述
adpid string - 广告位 id
urlCallback UrlCallbackOptions | null - 服务器回调透传参数
名称 类型 必备 默认值 描述
userId string | null - 透传到服务器端的userId
extra string | null - 透传到服务器端的extra,不推荐设置过于复杂的字符串

# 返回值

类型
RewardedVideoAd

# RewardedVideoAd 的方法

# show()

广告加载成功之后,调用此方法展示广告

# 返回值
类型
Promise<any>

# load()

加载广告

# 返回值
类型
Promise<any>

# destroy()

销毁广告

# onLoad(callback)

绑定广告 load 事件的监听器

# 参数
名称 类型 必填 默认值 描述
callback (result: any) => void - -

# offLoad(callback)

解除绑定 load 事件的监听器

# 参数
名称 类型 必填 默认值 描述
callback (result: any) => void - -

# onError(callback)

绑定 error 事件的监听器

# 参数
名称 类型 必填 默认值 描述
callback (result: IUniAdError) => void - -
# IUniAdError 的属性值
名称 类型 必备 默认值 描述
errCode number - 错误码 - -5001 广告位标识adpid为空,请传入有效的adpid - -5002 无效的广告位标识adpid,请使用正确的adpid - -5003 广告位未开通广告,请在广告平台申请并确保已审核通过 - -5004 无广告模块,打包时请配置要使用的广告模块 - -5005 广告加载失败,请稍后重试 - -5006 广告已经展示过了,请重新加载 - -5007 广告不可用或已过期,请重新请求 - -5008 广告不可用或已过期,请重新请求 - -5009 广告类型不符,请检查后再试 - -5011 打包或开通的渠道,不支持此类型广告 - -5013 广告播放失败,请重新加载
errSubject string - 统一错误主题(模块)名称
data any | null - 错误信息中包含的数据
cause Error | null - 源错误信息,可以包含多个错误,详见SourceError
errMsg string - -

# offError(callback)

解除绑定 error 事件的监听器

# 参数
名称 类型 必填 默认值 描述
callback (result: IUniAdError) => void - -

# onClose(callback)

绑定 close 事件的监听器

# 参数
名称 类型 必填 默认值 描述
callback (result: VideoAdClose) => void - -
# VideoAdClose 的属性值
名称 类型 必备 默认值 描述
isEnded boolean - true标识广告播放完毕或者达到发放奖励的条件

# offClose(callback)

解除绑定 close 事件的监听器

# 参数
名称 类型 必填 默认值 描述
callback (result: VideoAdClose) => void - -

# onAdClicked(callback)

绑定广告可点击屏幕区域事件的监听器

# 参数
名称 类型 必填 默认值 描述
callback (result: any) => void - -

# onVerify(callback)

绑定 verify 事件的监听器

# 参数
名称 类型 必填 默认值 描述
callback (result: UTSJSONObject) => void - -

# Tips

  • uni-app x 标准基座激励视频广告测试广告位为1507000689
  • 激励视频广告目前仅支持API形式
  • uni-app x 目前需要手动添加三方广告SDK。具体配置可参考文档

# 示例

hello uni-app x

<template>
 <page-head title="激励视频广告"></page-head>
 <button :type="btnType" style="margin: 10px;" :disabled="btnDisable" @click="showAd()">{{btnText}}</button>
</template>

<script>
 export default {
   data() {
     return {
       btnText: "",
       btnType: "primary",
       btnDisable: false,
       rewardAd: null as RewardedVideoAd | null,
       isAdLoadSuccess: false
     }
   },
   onReady() {
     this.loadAd()
   },
   methods: {
     loadAd() {
       if (this.btnDisable)
         return
       this.btnDisable = true
       this.btnText = "正在加载广告"
       this.btnType = "primary"
       if (this.rewardAd == null) {
         this.rewardAd = uni.createRewardedVideoAd({
           adpid: "1507000689" //此处为测试广告位,实际开发中请在uni-ad后台申请自己的广告位后替换
         })
         this.rewardAd!.onError((_) => {
           this.btnType = "warn"
           this.btnText = "广告加载失败,点击重试"
           this.btnDisable = false
         })
         this.rewardAd!.onLoad((_) => {
           this.btnType = "primary"
           this.btnText = "广告加载成功,点击观看"
           this.btnDisable = false
           this.isAdLoadSuccess = true
         })
         this.rewardAd!.onClose((e) => {
           // 测试广告位无法通过服务器回调。实际开发中,使用自己的广告位后,需参考uni-ad文档编写服务器回调的代码,在服务端发放奖励
           this.isAdLoadSuccess = false
           uni.showToast({
             title: "激励视频" + (e.isEnded ? "" : "未") + "播放完毕",
             position: "bottom"
           })
           this.loadAd()
         })
       }
       this.rewardAd!.load()
     },
     showAd() {
       if (this.isAdLoadSuccess) {
         this.rewardAd!.show()
       } else {
         this.loadAd()
       }
     }
   }
 }
</script>

<style>

</style>

# createRewardedVideoAd 兼容性

Android iOS web
4.0 - -

# 参见

相关 Bug

# 通用类型

# GeneralCallbackResult

名称 类型 必备 默认值 描述
errMsg string - 错误信息