简体中文
创建激励视频广告对象
激励视频,顾名思义,播放一段视频广告,手机用户看完广告后需向其发放奖励。
激励视频是一种播放时间较长、CPM单价较高的广告类型,是广告变现中的优质工具。
uni-ad是DCloud提供的聚合广告平台,激励视频的广告来源主要来自于聚合的优量汇、穿山甲、快手、百度、sigmob,通过竞价模型优先展示出价高的广告。
开通时需要进行开发者认证和应用资质审核。
上述文档是uni-app和uni-app x的通用文档,如遇到uni-app x不一致的文档,需以uni-app x文档为准。
开通uni-ad后,在uni-ad后台给App创建激励视频广告位后,需要拿到广告位id(adpid),传入下面的api createRewardedVideoAd
中。
App平台在manifest中配置添加三方广告SDK。具体配置可参考文档。
打正式包或自定义基座后可生效。标准基座包含的是测试广告位,无法为你产生收益。
激励视频播放完毕后,需给手机用户发放奖励。一般是虚拟权益,如游戏道具、查看优质内容(小说、代码、图片、音视频)的资质、vip会员时长。
如果手机用户未看完视频广告,中途退出广告,则不发放奖励。
但为了防止客户端伪造看完广告的凭据,播放完毕广告是由服务器来做回调的。这是业内通行的安全方案,包括支付也是服务器回调。
由uniCloud服务器从各家广告平台接受到视频播放完毕后,通知业务服务进行奖励发放。详见
Web | Android | iOS |
---|---|---|
x | 4.0 | 4.22 |
名称 | 类型 | 必填 | 默认值 | 兼容性 | 描述 | ||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
option | CreateRewardedVideoAdOptions | 是 | - | - | - | ||||||||||||||||||||||||||||||||||||||||||
|
类型 |
---|
RewardedVideoAd |
广告加载成功之后,调用此方法展示广告
Web | Android | iOS |
---|---|---|
x | 4.0 | 4.22 |
类型 |
---|
Promise<any> |
加载广告
Web | Android | iOS |
---|---|---|
x | 4.0 | 4.22 |
类型 |
---|
Promise<any> |
销毁广告
Web | Android | iOS |
---|---|---|
x | 4.0 | 4.22 |
绑定广告 load 事件的监听器
Web | Android | iOS |
---|---|---|
x | 4.0 | 4.22 |
名称 | 类型 | 必填 | 默认值 | 兼容性 | 描述 |
---|---|---|---|---|---|
callback | (result: any) => void | 是 | - | - | - |
解除绑定 load 事件的监听器
Web | Android | iOS |
---|---|---|
x | 4.0 | 4.22 |
名称 | 类型 | 必填 | 默认值 | 兼容性 | 描述 |
---|---|---|---|---|---|
callback | (result: any) => void | 是 | - | - | - |
绑定 error 事件的监听器
Web | Android | iOS |
---|---|---|
x | 4.0 | 4.22 |
名称 | 类型 | 必填 | 默认值 | 兼容性 | 描述 |
---|---|---|---|---|---|
callback | (result: IUniAdError) => void | 是 | - | - | - |
名称 | 类型 | 必备 | 默认值 | 兼容性 | 描述 |
---|---|---|---|---|---|
errCode | number | 是 | - | - | 错误码 - -5001 广告位标识adpid为空,请传入有效的adpid - -5002 无效的广告位标识adpid,请使用正确的adpid - -5003 广告位未开通广告,请在广告平台申请并确保已审核通过 - -5004 无广告模块,打包时请配置要使用的广告模块 - -5005 广告加载失败,请稍后重试 - -5006 广告已经展示过了,请重新加载 - -5007 广告不可用或已过期,请重新请求 - -5008 广告不可用或已过期,请重新请求 - -5009 广告类型不符,请检查后再试 - -5011 打包或开通的渠道,不支持此类型广告 - -5013 广告播放失败,请重新加载 |
errSubject | string | 是 | - | - | 统一错误主题(模块)名称 |
data | any | 否 | - | - | 错误信息中包含的数据 |
cause | Error | 否 | - | - | 源错误信息,可以包含多个错误,详见SourceError |
errMsg | string | 是 | - | - | - |
解除绑定 error 事件的监听器
Web | Android | iOS |
---|---|---|
x | 4.0 | 4.22 |
名称 | 类型 | 必填 | 默认值 | 兼容性 | 描述 |
---|---|---|---|---|---|
callback | (result: IUniAdError) => void | 是 | - | - | - |
绑定 close 事件的监听器
Web | Android | iOS |
---|---|---|
x | 4.0 | 4.22 |
名称 | 类型 | 必填 | 默认值 | 兼容性 | 描述 |
---|---|---|---|---|---|
callback | (result: VideoAdClose) => void | 是 | - | - | - |
名称 | 类型 | 必备 | 默认值 | 兼容性 | 描述 |
---|---|---|---|---|---|
isEnded | boolean | 是 | - | - | true表示广告播放完毕或者达到发放奖励的条件 |
解除绑定 close 事件的监听器
Web | Android | iOS |
---|---|---|
x | 4.0 | 4.22 |
名称 | 类型 | 必填 | 默认值 | 兼容性 | 描述 |
---|---|---|---|---|---|
callback | (result: VideoAdClose) => void | 是 | - | - | - |
绑定广告可点击屏幕区域事件的监听器
Web | Android | iOS |
---|---|---|
x | 4.0 | 4.22 |
名称 | 类型 | 必填 | 默认值 | 兼容性 | 描述 |
---|---|---|---|---|---|
callback | (result: any) => void | 是 | - | - | - |
绑定 verify 事件的监听器
Web | Android | iOS |
---|---|---|
x | 4.0 | 4.22 |
名称 | 类型 | 必填 | 默认值 | 兼容性 | 描述 |
---|---|---|---|---|---|
callback | (result: UTSJSONObject) => void | 是 | - | - | - |
1507000689
。正式开发需配置自己的广告位id,并且打包自定义基座后生效。该 API 不支持 Web,请运行 hello uni-app x 到 App 平台体验
<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>
名称 | 类型 | 必备 | 默认值 | 兼容性 | 描述 |
---|---|---|---|---|---|
errMsg | string | 是 | - | - | 错误信息 |