抖音开放平台Logo
开发者文档
“/”唤起搜索
控制台

效果展示

效果
描述
视频流广告展示后,用户可上下滑动切走;若广告素材播放完之后用户仍未划走,则进入「自动重播」
演示效果:配置每隔两集出现一次广告,广告内容以用户实际看到为准
Draw流广告=中插广告:开发者可在短剧等视频内容消费场景下接入小程序视频流广告,典型的使用场景为在短剧的集间插入视频流广告。当用户上下滑动切换短剧剧集时,广告会曝光,从而给开发者带来广告收益。
    1.功能概述:官方播放器新增支持一键封装「Draw流广告组件」能力,即开发者可在官方播放器内支持开启Draw流广告组件
    2.功能说明
    a.配置开关:支持开发者可自行配置开启Draw流广告
    b.展示频率:每隔X集展示1个广告(最小值为1)
    c.必看时长:广告必看时长内不可上滑,支持开发者自定义传入必看秒数
    1.必看时长最长设置30s,超过30s即视为30s,跟广告视频总长无关
    2.如广告视频播完后用户未划走,则循环播放广告
    d.广告样式:适配官方播放器全屏播放样式
    1.无必看时长样式:底部提示“上滑继续看短剧”
    2.有必看时长样式:toast提示“倒计时结束后可滑动”,底部提示“X秒后可继续上滑看剧”
    3.上线时间:2024年11月25日
    4.特别注意⚠️:
    a.目前 Draw 流广告仅通过官方播放器形式接入,暂时不支持直接使用抖音开放平台接口对接(不兼容),存量客户不受影响
    b.由于平台内部实验影响,C端用户侧存在一定分流(即部分用户可见,部分用户不可见)

Draw流广告位接入指引

在开发者平台上创建视频流广告位
    a.点击【运营】-【商业化变现】-【广告管理】-【新建广告位】
    b.选择【视频流广告】,输入广告位名称,点击【确认】,即可完成视频流广告位的创建

版本限制

支持宿主
最低版本号
最低基础库版本
抖音、抖音极速版
31.6.0
3.43.0

代码实现

广告设置setAdConfig

广告生效范围为对应albumId,切剧时需要重新设置,每一部剧只可以设置一次
调用前使用canIUse判断是否可用
tt.canIUse('preloadDrawAd') && tt.canIUse('playlet-plugin.setAdConfig')

语法

// 第一种调用方法: 指定特定集后出现 // 在第3、5、12集后出现draw流 pm.setAdConfig({ adType: 'draw', adUnitId: 'xx', albumId: 'xx', customDisplayTiming: [ { seq: 3, drawRequiredDuration: 10, }, { seq: 5, }, { seq: 12, drawRequiredDuration: 5, }, ], }); // 第二种调用方法:从第X集开始,每隔X集出一次 // 每隔两集出一次,每次必看时长5s pm.setAdConfig({ adType: 'draw', adUnitId: 'xx', albumId: 'xx', presetDisplayStrategy: { draw: { intervalCount: 2, drawRequiredDuration: 5, fromSeq:1 }, }, });

参数说明

属性名
类型
默认值
必填
说明
adType
string
广告类型,目前支持: 'draw'
adUnitId
string
广告位id,详见Draw流广告位接入指引
albumId
string
广告策略生效的剧目 ID
customDisplayTiming
Array<CustomDisplayTiming>
自定义广告策略配置
presetDisplayStrategy
PresetDisplayStrategy
否。presetDisplayStrategy和customDisplayTiming必须设置一个,不能同时设置,不能不设置。
预设广告策略配置
CustomDisplayTiming
属性名
类型
默认值
必填
描述
seq
number
设置第几集后出现广告
drawRequiredDuration
number
0
设置广告必看时长。倒计时结束前禁止用户滑动跳过,单位秒
取值范围0 ~ 30
PresetDisplayStrategy
属性名
类型
默认值
必填
描述
intervalCount
number
设置每隔多少集插入 draw 类型广告
drawRequiredDuration
number
0
设置广告必看时长。倒计时结束前禁止用户滑动跳过,单位秒
取值范围0 ~ 30
fromSeq
number
1
设置从第X集开始

广告出现回调 onAdShow

广告出现
调用前使用canIUse判断是否可用
tt.canIUse('playlet-plugin.onAdShow') {}

语法

pm.onAdShow(data => { console.log(data) })

参数说明

属性名
类型
默认值
必填
描述
adType
string
广告类型: 'draw'
albumId
string
剧目 ID
seq
string
第X集后插入的广告出现
episodeId
string
剧集 ID

广告关闭回调 onAdClose

用户滑走/关闭广告
调用前使用canIUse判断是否可用
tt.canIUse('playlet-plugin.onAdClose') {}

语法

pm.onAdClose(data => { console.log(data) })

参数说明

同onAdShow

广告加载失败回调 onAdError

广告出现
调用前使用canIUse判断是否可用
tt.canIUse('playlet-plugin.onAdError') {}

语法

pm.onAdError(({data, error}) => { console.log(data) })

参数说明

同onAdShow

错误说明:

errMsg
说明
最低支持版本
The adUnitId is closed
广告位已关闭
3.38.0
The adUnitId is prohibit
广告位已禁止
3.38.0
The adUnitId is invalid
广告位非法
3.38.0
component position overlaps
广告组件被遮挡
3.38.0
request ad data fail:%s,server code=%ld
请求广告数据失败
server code=28005171时,没有广告数据填充,无需处理
server code=28001005时,内部错误,获取广告失败
3.38.0
component not found
组件不存在
3.38.0
The process does not support advertising
Android 平台暂不支持在该进程插入广告组件
3.38.0
init MannorSDK failed, ${initResult.failReason}
广告初始化失败
3.38.0

配置异常onError

当配置参数异常时,触发开发者onError,配置不会生效。

推荐用法

开发者可在 onReady 生命周期调用接口设置对应剧目的广告策略。在 onChangeEpisode 回调中判断切换剧集时,需更新广告策略
接口调用应在 onReady 生命周期之后进行。
开发者应在特定剧集设置完成后展示广告
if (tt.canIUse('preloadDrawAd') && tt.canIUse('playlet-plugin.setAdConfig')) { pm.setAdConfig({ adType: 'draw', adUnitId: 'xx', albumId: 'xx', customDisplayTiming: [ { seq: 3, drawRequiredDuration: 10, }, { seq: 5, }, { seq: 12, drawRequiredDuration: 5, }, ], }); }
建议每隔两集展示一次广告,且要求用户完整观看 5 秒
// 每隔两集出一次,每次必看时长5s if (tt.canIUse('preloadDrawAd') && tt.canIUse('playlet-plugin.setAdConfig')) { pm.setAdConfig({ adType: 'draw', adUnitId: 'xx', albumId: 'xx', presetDisplayStrategy: { draw: { intervalCount: 2, drawRequiredDuration: 5, fromSeq:1 }, }, }); }
开发者应在切换剧集时更新广告策略
pm.onChangeEpisode(({ albumId }) => { if (tt.canIUse('preloadDrawAd') && tt.canIUse('playlet-plugin.setAdConfig') && albumId !== this.albumId) { pm.setAdConfig({}) } })