tencent cloud

媒体包装

动态与公告
关于媒体包装(StreamPackage)产品正式计费公告
产品简介
购买指南
计费说明
欠费停服说明
控制台指南
频道管理
时移转录
广告插入
频道线性组装
用量统计
日志管理
功能实践
实现直播
配置 Multi-DRM
广告替换
创建 FAST(Free Ad-Supported Streaming TV)频道
广告点击跳转
查询播放数据
API 文档
History
Introduction
API Category
Making API Requests
Channel Management APIs
Advertising Insertion Configuration Management APIs
Channel linear assembly management APIs
VOD remux task APIs
Usage Query APIs
HarvestJob Management APIs
Data Types
Error Codes
StreamPackage 政策
数据处理和安全协议
隐私政策

广告插入

PDF
聚焦模式
字号
最后更新时间: 2025-12-12 17:44:41

广告插入功能

随着音视频在互联网技术和应用中的发展,视频广告已经是目前一种主流的广告投放方式,在腾讯云音视频产品 Stream Service 上,可以实现基于 SCTE-35 和 SSAI 的动态广告插入,SSAI 的完整大致流程如下:

将带有广告标记的内容源,传输到 StreamPackage。以直播内容源为例,可以在推流端推送直播流到 StreamLive 进行转码、插入广告 SCTE-35 事件标识,然后传输到 StreamPackage。如果没有后续的流程,已经完成了 CSAI 中关于服务端的所有步骤。SSAI 的后续流程如下:
1. 播放端请求清单(m3u8/mpd),StreamPackage 收到回源相关信息同时解析 m3u8/mpd,检查 SCTE-35 标签。
2. StreamPackage 请求 Ad Decision Server,解析 VAST/VMAP 响应并获取广告视频地址。
3. 下载广告视频、转码并存储。
4. 将转码后的广告分片地址通过插入和替换更新到 m3u8/mpd 中并分发。
5. StreamPackage 在客户端播放广告时上报至广告 Tracking 服务进行跟踪(Track)。
如果使用此广告插入功能,将产生 广告插入费用

步骤一:创建广告插入配置




StreamPackage 控制台界面,单击 Create Configuration,进入配置页面,其中主要包括这几种配置:
Required settings:必填的设置信息,包括配置名称(Name)、内容源(Content source)和 ADS 服务地址(Ad decision server)。
Configuration aliases:个性化广告中,用于动态参数替换的规则。
Personalization details:个性化广告中断时,用于兜底的默认广告播放方案。
Advanced settings:其它高级配置。

步骤二:填写 Required settings




配置名称(Name)
配置名称是一个广告插入配置的唯一标识。可以输入数字、字母、下划线 (_)、短横线 (-) ,并且最长支持512个字符。
内容源(Content source)
填写源流的 URL 前缀。 例如:填写http://origin-server.com/abc/作为 URL 前缀,可适用于http://origin-server.com/abc/example_1.m3u8、http://origin-server.com/abc/example_2.m3u8等相同前缀的所有源流。最长支持25,000个字符。
ADS 服务地址(Ad decision server)
ADS 服务在此是指为 StreamPackage 提供广告内容的源站服务,ADS 将决定每次的广告播放内容。请输入以 http:// 或者 https:// 开头的地址,最长支持25,000个字符。

步骤三:配置个性化替换参数

可以通过单击右侧的按钮来添加参数、删除参数。参数名词可以支持数字、字母、下划线(_)、连字符(-),最长32个字符。



创建参数后,可以在参数下维护 alias keyalias value。当为获取广告内容,向 ADS 发起访问请求时,StreamPackage 会将访问请求中的 alias key 值,替换成相应的 alias value 值,以实现个性化广告。

使用案例

1. ADS 地址模板配置。
https://my.ads.com/path?ad_type=[player_params.ad_type]&region=[player_params.region]
2. 个性化替换参数配置。
"ConfigurationAliases": {
"player_params.ad_type": {
"customized": "abc",
"default": "default"
},
"player_params.region": {
"india": "ap-mumbai",
"japan": "ap-tokyo"
},
}
3. 在对 StreamPackage 的请求 URL 中,添加对应的 key-value 值。
<master>.m3u8?ad_type=customized&region=india
4. 此时,StreamPackage 向 ADS 发送的 request url 为:
https://my.ads.com/path?ad_type=abc&region=ap-mumbai

步骤四:配置兜底广告播放方案

针对个性化广告不足以填充预留广告时长的场景,例如:个性化广告时长太短、由于网络或者其它原因未成功获取到个性化广告,您可以在Slate ad 设置兜底的默认广告,请输入以 http:// 或者 https:// 开头的地址,最长支持25000个字符。

如果不设置 Slate ad,在遇到以上意外情况时,系统为了保障用户体验,将跳过广告播放环节,继续播放原视频流。您还可以通过设置 Personalization threshold 来设定时间阈值,如果广告空白的时间达到此阈值,即切换到播放原视频流。

步骤五:配置前贴广告

StreamPackage 可以支持在直播流的起始位置(即在正式直播内容开始前),插入前贴广告。

前贴广告的 ADS 服务地址(ad decision server)
为 StreamPackage 提供前贴广告内容的源站服务,ADS 将决定每次的广告播放内容。请输入以 http:// 或者 https:// 开头的地址,最长支持25,000个字符。
前贴广告的最大播放时长
在播放正式直播内容之前,允许有多长时间播放前贴广告,单位为秒,最大值为3600秒。如果 ADS 返回的广告总时长,超过了设定的最大时长,那 StreamPackage 将尽可能多的填充前贴广告,并保证总时长不超过您设定的最大时长。

步骤六:其它高级配置




CDN content segment prefix: 源流分片的 CDN 前缀。
Ad marker passthrough:开启或者关闭广告标记透传功能。
SCTE-35 ad message type:配置将输入视频流中的哪些标记信息作为广告标记进行处理。

步骤七:生成广告替换播放链接




源流的完整 URL:
http://origin-server.com/abc/main.m3u8
在内容源(Content source)处填写的前缀:
http://origin-server.com/abc/
生成的 Playback endpoint prefix:
http://xxx.streampackage.srclivepull.myqcloud.com/v1/ssai/master/<uniq_id>/
完整的广告替换播放 URL:
http://xxx.streampackage.srclivepull.myqcloud.com/v1/ssai/master/<uniq_id>/main.m3u8

步骤八:替换前后的 HLS 清单示例

下面示例提供了源流清单和替换后的个性化清单对比。

源流清单示例

StreamPackage 从源流中获取到的 HLS master 清单示例:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-INDEPENDENT-SEGMENTS
#EXT-X-STREAM-INF:PROGRAM-ID=0,BANDWIDTH=500000,RESOLUTION=640x360
tx_ssai_temp1.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=0,BANDWIDTH=2000000,RESOLUTION=960x540
tx_ssai_temp2.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=0,BANDWIDTH=3000000,RESOLUTION=1280x720
tx_ssai_temp3.m3u8
StreamPackage 从源流中获取到的插入了 SCTE-35 标签的 HLS media 清单:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:11035046
#EXT-X-TARGETDURATION:4
#EXTINF:4.000, no desc seq 11035047
6594D5C2000003872642-p0_tmplav1_av1-1712914648040.ts?pts=118443600&txl=1712914652444&enter_ts=1712914655931&11035047
#EXTINF:0.133, no desc seq 11035048
6594D5C2000003872642-p0_tmplav1_av1-1712914652040.ts?pts=118803600&txl=1712914655932&enter_ts=1712914656383&11035048
#EXT-OATCLS-SCTE35:/AAgAAAAAAAAAAAADwUAAAABAPCAABSZcAAAAAAAABcABfA=
#EXT-X-CUE-OUT:15
#EXTINF:4.000, no desc seq 11035049
6594D5C2000003872642-p0_tmplav1_av1-1712914652173.ts?pts=118815570&txl=1712914656383&enter_ts=1712914660810&11035049
#EXT-X-CUE-OUT-CONT:ElapsedTime=4,Duration=15,SCTE35=/AAgAAAAAAAAAAAADwUAAAABAPCAABSZcAAAAAAAABcABfA=
#EXTINF:4.000, no desc seq 11035050
6594D5C2000003872642-p0_tmplav1_av1-1712914656173.ts?pts=119175570&txl=1712914660812&enter_ts=1712914664291&11035050
#EXT-X-CUE-OUT-CONT:ElapsedTime=8,Duration=15,SCTE35=/AAgAAAAAAAAAAAADwUAAAABAPCAABSZcAAAAAAAABcABfA=
#EXTINF:4.000, no desc seq 11035051
6594D5C2000003872642-p0_tmplav1_av1-1712914660173.ts?pts=119535570&txl=1712914664294&enter_ts=1712914668214&11035051
#EXT-X-CUE-OUT-CONT:ElapsedTime=12,Duration=15,SCTE35=/AAgAAAAAAAAAAAADwUAAAABAPCAABSZcAAAAAAAABcABfA=
#EXTINF:3.000, no desc seq 11035052
6594D5C2000003872642-p0_tmplav1_av1-1712914664173.ts?pts=119895570&txl=1712914668214&enter_ts=1712914671229&11035052
#EXT-X-CUE-IN
#EXTINF:0.834, no desc seq 11035053
6594D5C2000003872642-p0_tmplav1_av1-1712914667173.ts?pts=120165570&txl=1712914671231&enter_ts=1712914672750&11035053

个性化清单示例

StreamPackage 生成的个性化的 HLS master 清单:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-INDEPENDENT-SEGMENTS
#EXT-X-STREAM-INF:PROGRAM-ID=0,BANDWIDTH=500000,RESOLUTION=640x360
../../manifest/018ec77ac9b309dc0f327e4b2d86/31bfddb8b8b73de51338eb764b3621c0/tx_ssai_temp1.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=0,BANDWIDTH=2000000,RESOLUTION=960x540
../../manifest/018ec77ac9b309dc0f327e4b2d86/31bfddb8b8b73de51338eb764b3621c0/tx_ssai_temp2.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=0,BANDWIDTH=3000000,RESOLUTION=1280x720
../../manifest/018ec77ac9b309dc0f327e4b2d86/31bfddb8b8b73de51338eb764b3621c0/tx_ssai_temp3.m3u8
StreamPackage 生成的个性化的 HLS media 清单:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:11035046
#EXT-X-TARGETDURATION:4
#EXTINF:4.000, no desc seq 11035047
http://251009588.ap-mumbai.streampackage.srclivepull.myqcloud.com/v1/018c8bc8788509dc0f3266bdec93/018ed19540a809dc0f327a192df3/6594D5C2000003872642-p0_tmplav1_av1-1712914648040.ts?pts=118443600&txl=1712914652444&enter_ts=1712914655931&11035047
#EXTINF:0.133, no desc seq 11035048
http://251009588.ap-mumbai.streampackage.srclivepull.myqcloud.com/v1/018c8bc8788509dc0f3266bdec93/018ed19540a809dc0f327a192df3/6594D5C2000003872642-p0_tmplav1_av1-1712914652040.ts?pts=118803600&txl=1712914655932&enter_ts=1712914656383&11035048
#EXT-OATCLS-SCTE35:/AAgAAAAAAAAAAAADwUAAAABAPCAABSZcAAAAAAAABcABfA=
#EXT-X-CUE-OUT:15
#EXT-X-DISCONTINUITY
#EXTINF:2.000,
../../segment/018ec77ac9b309dc0f327e4b2d86/6bb76e30ee193e2a08c3fbf5c5356eac/dGVzdF9hdjEubTN1OA==/11035048_1.ts
#EXTINF:2.000,
../../segment/018ec77ac9b309dc0f327e4b2d86/6bb76e30ee193e2a08c3fbf5c5356eac/dGVzdF9hdjEubTN1OA==/11035049_1.ts
#EXTINF:2.000,
../../segment/018ec77ac9b309dc0f327e4b2d86/6bb76e30ee193e2a08c3fbf5c5356eac/dGVzdF9hdjEubTN1OA==/11035050_1.ts
#EXTINF:2.000,
../../segment/018ec77ac9b309dc0f327e4b2d86/6bb76e30ee193e2a08c3fbf5c5356eac/dGVzdF9hdjEubTN1OA==/11035051_1.ts
#EXTINF:2.000,
../../segment/018ec77ac9b309dc0f327e4b2d86/6bb76e30ee193e2a08c3fbf5c5356eac/dGVzdF9hdjEubTN1OA==/11035052_1.ts
#EXTINF:2.000,
../../segment/018ec77ac9b309dc0f327e4b2d86/6bb76e30ee193e2a08c3fbf5c5356eac/dGVzdF9hdjEubTN1OA==/11035053_1.ts
#EXTINF:2.000,
../../segment/018ec77ac9b309dc0f327e4b2d86/6bb76e30ee193e2a08c3fbf5c5356eac/dGVzdF9hdjEubTN1OA==/11035054_1.ts
#EXTINF:1.000,
../../segment/018ec77ac9b309dc0f327e4b2d86/6bb76e30ee193e2a08c3fbf5c5356eac/dGVzdF9hdjEubTN1OA==/11035055_1.ts
#EXT-X-CUE-IN
#EXT-X-DISCONTINUITY
#EXTINF:0.834, no desc seq 11035053
http://251009588.ap-mumbai.streampackage.srclivepull.myqcloud.com/v1/018c8bc8788509dc0f3266bdec93/018ed19540a809dc0f327a192df3/6594D5C2000003872642-p0_tmplav1_av1-1712914667173.ts?pts=120165570&txl=1712914671231&enter_ts=1712914672750&11035053

步骤九:查看广告插入的统计数据

业务开启后,可以在 数据统计页面,查看广告插入的相关统计数据:
在页面头部,可以查看汇总数据。
在表格中,可以查看详细数据并进行下载。

指标名称
介绍
Channel Name
广告配置名称,与 Ad Insertion Configurations 页面列表中的 Name 一致。
Channel ID
广告配置 ID,与 Ad Insertion Configurations 页面列表中的 ID 一致。
Ad Type
广告类型:前贴(Pre-roll)、中贴(Mid-roll)。
Successful Ad Request
广告请求成功次数:广告服务器成功返回广告内容的次数。
Failed Ad Request
广告请求失败次数:广告服务器未正常返回,或返回中不包含广告内容的次数。
Impression
曝光次数:客户端广告播放成功的次数。
Start
播放各分位次数_起始:所有广告内容,有播放到起始位置的总次数。
First Quartile
播放各分位次数_1/4:所有广告内容,有播放到1/4位置的总次数。
Midpoint
播放各分位次数_1/2:所有广告内容,有播放到1/2位置的总次数。
Third Quartile
播放各分位次数_3/4:所有广告内容,有播放到3/4位置的总次数。
Complete
播放各分位次数_完成:所有广告内容,播放完成的总次数。
Mid-roll Ad Personalization Fill Rate
中贴广告个性化填充率:替换总时长/广告标签总时长。
Pre-roll Ad Replacement Success Rate
前贴广告替换成功率:替换成功次数/请求总次数。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈