tt.createRewardedVideoAd
收藏
我的收藏

基础库 1.57.0 开始支持本方法,这是一个同步方法。

开发者可以在小程序中使用激励视频广告获得收入。具体接入方式可参考流量主行为规范

暂不支持接口查询广告数据,若需要查看,请在控制台,进入指定小程序后,在 【运营】-> 【商业化变现】中查看。

前提条件
业务背景
使用限制

支持宿主端:抖音、抖音lite、抖火、今日头条(版本9.8.1及以上),西瓜视频(版本8.7.2及以上)

注意事项
  • Tip:激励视频广告是由客户端原生渲染,覆盖在整个小程序页面区域之上,目前支持竖屏展示;
  • Tip:全局只有一个 RewardedVideoAd 实例,重复创建不会覆盖;
  • Tip:激励视频广告展示的时候用户不能操作小程序;
  • Tip:开发者工具上暂不支持调试该 API,请在真机上进行调试;
  • Tip:广告不是每一次都会出现,广告是否会成功调起与用户匹配度、填充率等多种因素有关,没有出现可能是由于该用户不适合浏览广告,可通过 onError 进行监听。具体错误码可参考错误码说明
支持沙盒
相关教程

语法

tt.createRewardedVideoAd(params)

参数说明

params 类型说明

object 类型,属性如下:

属性名类型默认值必填说明最低支持版本
multitonbooleanfalse

是否开启激励再得广告

1.57.0
multitonRewardTimesnumber

额外观看广告的次数,合法的数据范围为 1~4,multiton 为 true 时必填

3.32.0
multitonRewardMsgArray<string>

再得广告的奖励文案,用户每看完一个广告都会展示,multiton 为 true 时必填。文案完整内容为「再看 1 个xxx」,其中 xxx 是 multitonRewardMsg 配置的文案内容,最大长度为 7,文案内容根据 multitonRewardMsg 的配置按顺序展示。若 multitonRewardMsg 长度小于 multitonRewardTimes ,则后续的激励再得广告文案取 multitonRewardMsg 数组最后一个。

3.32.0
progressTipbooleanfalse

是否开启进度提醒。开启时广告文案为「再看 n 个xxx」,关闭时为「再看 1 个xxx」。其中 n 表示用户当前还需额外观看广告的次数

3.32.0
adUnitIdstring

广告位 id。可从「开放平台控制台-进入对应小程序-运营-商业化变现-广告管理」中获取

1.57.0

返回值

类型说明最低支持版本
object

返回值为RewardedVideoAd类型

1.57.0

错误码

errorCodeerrMsgerrorType说明最低支持版本
158802The adUnitId is closedD
广告位被封禁,自查是否有作弊行为
1.57.0
158802The adUnitId is prohibitD
非法广告位
1.57.0
158802The adUnitId is invalidD
adUnitId为空,传入正确的adUnitId
1.57.0
158802The adUnitId is emptyD
当前宿主不支持,暂时没有支持的计划
1.57.0
158887feature is not supported in appD
广告位已关闭,检查广告位是否关闭
1.57.0

扫码体验

请使用字节宿主APP扫码

代码示例

开发者工具中预览

Page({ onLoad() { // 创建实例 this.ad = tt.createRewardedVideoAd({ adUnitId: "xxx", }); // 监听错误 this.ad.onError((err) => { tt.hideLoading(); switch (err.errCode) { case 1004: // 无合适的广告 break; default: // 更多请参考错误码文档 } }); // 监听视频播放完成 this.ad.onClose((data) => { tt.hideLoading(); if (data.isEnded) { console.log("观看了", data.count, "个视频"); } else { console.log("未观看完视频"); } }); // do other thing // 卸载 close 事件监听 this.ad.offClose(closeHandler); // 预加载资源 this.ad.load(); }, // 处理用户点击 handleClick() { tt.showLoading(); this.ad.show(); }, });