tencent cloud

文档反馈

广告插入

最后更新时间:2024-01-06 14:02:29

    广告插入功能

    随着音视频在互联网技术和应用中的发展,视频广告已经是目前一种主流的广告投放方式,在腾讯云音视频产品 Stream Service 上,可以实现基于 SCTE-35 和 SSAI 的动态广告插入,SSAI 的完整大致流程如下:
    
    
    
    1. 推流端推送直播流到 StreamLive 进行转码、封装和广告 SCTE-35 事件标识的插入,并传输到 StreamPackage。如果没有后续的流程,已经完成了 CSAI 中关于服务端的所有步骤。
    2. 播放端请求 manifest(m3u8/mpd),StreamPackage 收到回源相关信息同时解析 m3u8/mpd,检查 scte-35 标签。
    3. StreamPackage 请求 Ad Decision Server,解析 VAST/VMAP 响应并获取广告视频地址。
    4. 下载广告视频、转码并存储。
    5. 将转码后的广告分片地址通过插入和替换更新到 m3u8/mpd 中并分发。
    6. StreamPackage 在客户端播放广告时上报至广告 Tracking 服务进行跟踪(Track)。
    如果使用此广告插入功能,将产生 广告插入费用

    步骤一:开启广告替换功能

    对于需要配置广告替换功能的频道,点击此频道进入到详情页面,StreamPackage 的广告替换功能是基于 Endpoint 维度进行配置的:
    
    
    
    点击 AD Configuration,进入配置页面,页面中主要包括这几种配置:
    Ad decision server:ADS(ad decision server)服务的访问地址。
    Configuration aliases:个性化广告中,用于动态参数替换的规则。
    Personalization details:个性化广告中断时,用于兜底的默认广告播放方案。
    Advanced settings:其它高级配置。

    步骤二:配置 ADS 地址模板

    
    
    ADS 服务在此是指为 StreamPackage 提供广告内容的源站服务,ADS 将决定每次的广告播放内容。请输入以 http:// 或者 https:// 开头的地址,最长支持25000个字符。

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

    可以通过点击右侧的按钮来添加参数、删除参数。参数名词可以支持数字、字母、下划线(_)、连字符(-),最长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 来设定时间阈值,如果广告空白的时间达到此阈值,即切换到播放原视频流。

    步骤五:其它高级配置

    
    
    
    Ad marker passthrough:开启或者关闭广告标记透传功能。
    DASH mpd location:开启或者关闭DASH的一致性HTTP重定向。
    SCTE-35 ad message type:配置将输入视频流中的哪些标记信息作为广告标记进行处理。

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

    在完成上述广告相关的配置后,将 Endpoint Url 添加字段 txType=ssai,即可生成对应的广告替换播放 Url。例如:
    原始的 Endpoint Url 为:
    http://xxx.mediapackage.srclivepull.myqcloud.com/v1/<channel_id>/<stream_id>/ssai_test.m3u8
    那对应的广告替换播放 Url 为:
    http://xxx.mediapackage.srclivepull.myqcloud.com/v1/<channel_id>/<stream_id>/ssai_test.m3u8?txType=ssai

    步骤七:替换前后的 manifest 示例

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

    源流 manifest 示例

    StreamPackage 从源流中获取到的 HLS master manifest 示例:
    #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 manifest:
    #EXTM3U
    #EXT-X-VERSION:5
    #EXT-X-MEDIA-SEQUENCE:3835222
    #EXT-X-TARGETDURATION:6
    #EXTINF:6.000, no desc seq 3835223
    64998DFC00006B56A7AF-p0_tmplav9601_av9601-1689907362016.ts?&3835223
    #EXTINF:2.333, no desc seq 3835224
    64998DFC00006B56A7AF-p0_tmplav9601_av9601-1689907368016.ts?&3835224
    #EXT-OATCLS-SCTE35:/AAgAAHwulfuAAAADwUAAACcAPCAAA27oAAAAAAAAPKrLtw=
    #EXT-X-CUE-OUT:10
    #EXTINF:3.667, no desc seq 3835225
    64998DFC00006B56A7AF-p0_tmplav9601_av9601-1689907370349.ts?&3835225
    #EXT-X-CUE-OUT-CONT:ElapsedTime=3.667,Duration=10,SCTE35=/AAgAAHwulfuAAAADwUAAACcAPCAAA27oAAAAAAAAPKrLtw=
    #EXTINF:6.000, no desc seq 3835226
    64998DFC00006B56A7AF-p0_tmplav9601_av9601-1689907374016.ts?&3835226
    #EXT-X-CUE-OUT-CONT:ElapsedTime=9.667,Duration=10,SCTE35=/AAgAAHwulfuAAAADwUAAACcAPCAAA27oAAAAAAAAPKrLtw=
    #EXTINF:0.333, no desc seq 3835227
    64998DFC00006B56A7AF-p0_tmplav9601_av9601-1689907380016.ts?&3835227
    #EXT-X-CUE-IN
    #EXTINF:5.667, no desc seq 3835228
    64998DFC00006B56A7AF-p0_tmplav9601_av9601-1689907380349.ts?&3835228
    #EXTINF:6.000, no desc seq 3835229
    64998DFC00006B56A7AF-p0_tmplav9601_av9601-1689907386016.ts?&3835229
    #EXTINF:6.000, no desc seq 3835230
    64998DFC00006B56A7AF-p0_tmplav9601_av9601-1689907392016.ts?&3835230

    个性化 manifest 示例

    StreamPackage 生成的个性化的 HLS master manifest:
    #EXTM3U
    #EXT-X-VERSION:3
    #EXT-X-INDEPENDENT-SEGMENTS
    #EXT-X-STREAM-INF:PROGRAM-ID=0,BANDWIDTH=500000,RESOLUTION=640x360
    tx_ssai_temp1.m3u8?txSessionID=fd320a4d99ba7df952f5a214ed901935&txType=manifest
    #EXT-X-STREAM-INF:PROGRAM-ID=0,BANDWIDTH=2000000,RESOLUTION=960x540
    tx_ssai_temp2.m3u8?txSessionID=fd320a4d99ba7df952f5a214ed901935&txType=manifest
    #EXT-X-STREAM-INF:PROGRAM-ID=0,BANDWIDTH=3000000,RESOLUTION=1280x720
    tx_ssai_temp3.m3u8?txSessionID=fd320a4d99ba7df952f5a214ed901935&txType=manifest
    StreamPackage 生成的个性化的 HLS media manifest:
    #EXTM3U
    #EXT-X-VERSION:5
    #EXT-X-MEDIA-SEQUENCE:3835222
    #EXT-X-TARGETDURATION:6
    #EXTINF:6.000, no desc seq 3835223
    64998DFC00006B56A7AF-p0_tmplav9601_av9601-1689907362016.ts?&3835223
    #EXTINF:2.333, no desc seq 3835224
    64998DFC00006B56A7AF-p0_tmplav9601_av9601-1689907368016.ts?&3835224
    #EXT-X-DISCONTINUITY
    #EXTINF:2.000,
    segment.ts?txType=segment&txSessionID=fd320a4d99ba7df952f5a214ed901935&txManifestName=tx_ssai_temp3.m3u8&txSeqNum=3835224
    #EXTINF:2.000,
    segment.ts?txType=segment&txSessionID=fd320a4d99ba7df952f5a214ed901935&txManifestName=tx_ssai_temp3.m3u8&txSeqNum=3835225
    #EXTINF:2.000,
    segment.ts?txType=segment&txSessionID=fd320a4d99ba7df952f5a214ed901935&txManifestName=tx_ssai_temp3.m3u8&txSeqNum=3835226
    #EXTINF:2.000,
    segment.ts?txType=segment&txSessionID=fd320a4d99ba7df952f5a214ed901935&txManifestName=tx_ssai_temp3.m3u8&txSeqNum=3835227
    #EXTINF:2.000,
    segment.ts?txType=segment&txSessionID=fd320a4d99ba7df952f5a214ed901935&txManifestName=tx_ssai_temp3.m3u8&txSeqNum=3835228
    #EXT-X-DISCONTINUITY
    #EXTINF:5.667, no desc seq 3835228
    64998DFC00006B56A7AF-p0_tmplav9601_av9601-1689907380349.ts?&3835228
    #EXTINF:6.000, no desc seq 3835229
    64998DFC00006B56A7AF-p0_tmplav9601_av9601-1689907386016.ts?&3835229
    #EXTINF:6.000, no desc seq 3835230
    64998DFC00006B56A7AF-p0_tmplav9601_av9601-1689907392016.ts?&3835230
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持