简介
在直播中使用 StreamPackage 广告预取功能,以帮助减少广告决策服务器 (ADS) 的峰值负载,并减少每次广告时段开始时的清单投放延迟。在定义的预取时间表中,StreamPackage 将按照时间表从 ADS 中预取广告,并为广告插播做好准备。所以,在直播期间,预取可以帮助缓解广告请求和转码超时、广告填充率下降、或其它延迟导致而错失的获利机会。
在广告预取功能中,您可以根据业务需要创建一个或多个预取计划。预取计划将定义 StreamPackage 如何以及何时预取广告,为即将到来的广告投放时段做准备。
单次预取:如果某个活动的广告投放时间是确定的,请使用单次预取计划。在单次预取计划中,将定义一次广告投放时间中使用的广告。对于多次确定的广告投放,您可以为每一次投放都创建一个单次预取计划(距离投放时间最多24小时)。
周期性预取:如果某个活动的广告投放时间是不可预测的,请使用周期性预取计划。在周期性预取计划中,在广告投放时间之前,系统将自动创建预取计划并预取广告。这样,您不需要为每次广告投放都创建一次预取计划,但是相比于单次预取,您也会失去更精细的时间控制。
在节目播放过程中,当客户端向 StreamPackage 发出清单请求时, StreamPackage 将评估与播放配置关联的所有预取计划。如果找不到相匹配的预取计划,该服务将恢复为正常的广告插入,并且不会进行广告预取。如果找到匹配的预取计划,该服务将根据两个组成部分来执行该计划:预取和投放。下文将区分单次预取、周期性预取,对预取和消费过程进行介绍。
单次预取介绍
预取
预取窗口,将定义 StreamPackage 从 ADS 中预取广告的时间范围,请务必将此时段安排在广告投放时段之前。即在此指定的预取时段窗口内,StreamPackage 向 ADS 发送请求,预取和准备广告,以便在后续的播放中执行广告插入。StreamPackage 使用流量整形来限制一次向 ADS 发出的请求数量。您可以在两种方法之间进行选择:
时间窗口流量整形:将请求分布在指定的秒数内,而不是一次性发送所有的会话请求。这种分散的流量分布有助于防止服务不堪重负,从而导致超时和低广告填充率。
基于 TPS 的流量整形:根据每秒交易量 (TPS) 和并发用户数来限制请求。此方法可根据您的 ADS 容量限制提供更直观的配置。
此外,您还可以设置动态变量,StreamPackage 在向 ADS 发送预取请求时会包含这些变量。基于这些变量,可以对预取和投放环节的广告进行关联匹配。
投放
在广告投放时间段中,当 StreamPackage 检测到 SCTE-35 广告标记时,会将已预取的广告进行插播投放。
如果您未设置可用性匹配条件, StreamPackage 会在投放窗口的第一个广告时段插入广告。
如果您为可用性匹配设置了动态变量,StreamPackage 会根据您在预取时设置的动态变量来进行判断。只有在满足匹配的情况下,才会将预取的广告进行插播,在符合匹配条件的第一个广告时段插入广告。
举例
1. 广告预取:直播活动从上午7:45持续到上午10点,广告投放时间为上午8:15。您配置 StreamPackage 从上午7:45到上午8点预取广告,流量窗口为60秒。如果有500,000个并发用户,则 StreamPackage 向 ADS 发送请求,请求持续60秒,每秒大约8,333个请求(500,000个用户 / 60 秒 = 每秒8,333个请求),而不是同时发送所有请求。
2. 变量配置:预取配置中,包括1个动态变量(键为 scte.event、值为1234),StreamPackage 在向 ADS 发出的请求时将包含此变量。
3. 广告投放:您将广告插播、投放的开始时间设置为上午8:15,将结束时间设置为上午8:17。您将 scte.event_id 使用在可用性匹配条件中。那对于从上午8:15到上午8:17出现的每个广告位,StreamPackage 将分析每个广告位的 SCTE event ID。如果广告位的 event ID 为1234,StreamPackage 将使用预取的广告进行插播。如果广告位的 event ID 不为1234,StreamPackage 将不使用预取的广告进行插播,而是进行标准的广告插入流程。
周期性预取介绍
预取
周期预取窗口,定义 StreamPackage 为直播活动预取、插播广告的时间段范围(最长24小时)。在这个窗口中,完成一次广告插播后,StreamPackage 将自动为下一个广告位预取广告。其中,如果您设置了广告位结束后的延迟时间,那 StreamPackage 完成一次广告插播后,将等待一段延迟时间,再为下一个广告位预取广告。您可以使用流量整形来限制一次向 ADS 发出的请求数量,您可以在两种方法之间进行选择:
时间窗口流量整形:将请求分布在指定的秒数内,而不是一次性发送所有的会话请求。这种分散的流量分布有助于防止服务不堪重负,从而导致超时和低广告填充率。
基于 TPS 的流量整形:根据每秒交易量 (TPS) 和并发用户数来限制请求。此方法可根据您的 ADS 容量限制提供更直观的配置。
此外,您还可以设置动态变量,StreamPackage 在向 ADS 发送预取请求时会包含这些变量。基于这些变量,可以对预取和投放环节的广告进行关联匹配。
投放
在广告投放时间段中,当 StreamPackage 检测到 SCTE-35 广告标记时,会将已预取的广告进行插播投放。
如果您设置了预取广告的过期时间,则在指定的到期时间之前,预取的广告可以用于插播。
如果您未设置可用性匹配条件, StreamPackage 会在投放窗口的第一个广告时段插入广告。
如果您为可用性匹配设置了动态变量,StreamPackage 会根据您在预取时设置的动态变量来进行判断。只有在满足匹配的情况下,才会将预取的广告进行插播,在符合匹配条件的第一个广告时段插入广告。
举例
1. 广告预取:直播活动从晚上7点持续到晚上8:45,在此期间有四次广告时段,这些广告时段的具体时间不可预测。您可以将周期性预取配置为从晚上7点到晚上8:45,流量整形窗口为60秒,延迟时间为10分钟。基于60 秒的流量整形窗口和500,000个并发用户,StreamPackage 将在60秒内,以每秒8,333个请求的平均速率向 ADS 发起请求(500,000个用户 / 60 秒 = 每秒8,333个请求),而不是同时发送所有请求。并且,在每次广告插播成功后,需等待十分钟,StreamPackage 将再次向 ADS 发送预取请求。
2. 变量配置:预取配置中,包括1个动态变量(键为 scte.event、值为1234),StreamPackage 在向 ADS 发出的请求时将包含此变量。
3. 广告投放:在广告投放时,您将 scte.event_id 使用在可用性匹配条件中。那对于 StreamPackage 检测到的每个广告位,StreamPackage 将分析每个广告位的 SCTE event ID。如果广告位的 event ID 为1234,StreamPackage 将使用预取的广告进行插播。如果广告位的 event ID 不为1234,StreamPackage 将不使用预取的广告进行插播,而是进行标准的广告插入流程。
4. 设置过期时间:您可以将预取广告的过期时间设置为2700秒,这样预取到的广告在45分钟内可供使用,在45分钟后将失效。