播放器Draw流广告
效果展示
效果 | 描述 |
视频流广告展示后,用户可上下滑动切走;若广告素材播放完之后用户仍未划走,则进入「自动重播」 演示效果:配置每隔两集出现一次广告,广告内容以用户实际看到为准 |
|
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({}) } })
