tencent cloud

广告插入
最后更新时间:2025-11-13 10:13:38
广告插入
最后更新时间: 2025-11-13 10:13:38

广告插入功能

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

1. 推流端推送直播流到 StreamLive 进行转码、封装和广告 SCTE-35 事件标识的插入,并传输到 StreamPackage。如果没有后续的流程,已经完成了 CSAI 中关于服务端的所有步骤。
2. 播放端请求清单(m3u8/mpd),StreamPackage 收到回源相关信息同时解析 m3u8/mpd,检查 SCTE-35 标签。
3. StreamPackage 请求 Ad Decision Server,解析 VAST/VMAP 响应并获取广告视频地址。
4. 下载广告视频、转码并存储。
5. 将转码后的广告分片地址通过插入和替换更新到 m3u8/mpd 中并分发。
6. 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
前贴广告替换成功率:替换成功次数/请求总次数。
本页内容是否解决了您的问题?
您也可以 联系销售 提交工单 以寻求帮助。

文档反馈