

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 了解 AWS Elemental MediaTailor 广告插入行为
<a name="ad-behavior"></a>

AWS Elemental MediaTailor 通过将广告替换或插入到来源清单中，将广告拼接到直播或视频点播 (VOD) 内容中。是插入还是替换广告取决于来源清单中广告插播时间的配置方式，以及内容是 VOD 还是直播。广告插播时间是节目中展示广告的时间段，而广告可用量是广告时段内可以充斥广告的具体广告时间单位。
+ 使用*广告替换*， MediaTailor 将内容区段替换为广告。
+ 通过*广告插入*， MediaTailor 可以在不存在区段的地方插入广告内容。

要了解如何将广告 MediaTailor 拼接到直播和 VOD 内容中，请选择适用的主题。

**Topics**
+ [VOD 的广告拼接行为](#ad-behavior-vod)
+ [直播广告拼接行为](#ad-behavior-live)

## VOD 的广告拼接行为
<a name="ad-behavior-vod"></a>

MediaTailor 根据来源清单中广告标记的配置方式以及广告决策服务器 (ADS) 是否发送 VMAP 响应，在 VOD 内容中插入或替换广告。

对于按标记配置显示的广告行为，请参阅以下各节。

### 如果存在广告标记
<a name="markers-present"></a>

AWS Elemental MediaTailor 在来源清单中存在 SCTE-35 广告标记的地方插入广告。时`0`长`EXT-X-CUE-OUT`值为的广告标记表示广告的插入。

#### HLS 广告标记指南
<a name="markers-present-hls"></a>

 请遵循以下指导方针进行后贴片和广告 Pod SCTE 信号：

##### 片前广告
<a name="post-roll-ad-markers"></a>

对于 HLS 后置式广告，`CUE-OUT/IN` 标记必须位于最后一个内容分段之前。这是因为 HLS 规范要求必须在分段之前明确声明标记装饰器。

例如，考虑以下声明：

```
#EXT-X-CUE-OUT: 0
#EXT-X-CUE-IN
#EXTINF:4.000,
Videocontent.ts
#EXT-X-ENDLIST
```

AWS Elemental MediaTailor 插入如下所示的帖子。

```
#EXTINF:4.000,
Videocontent.ts
#EXT-X-DISCONTINUITY
#EXTINF:3.0,
Adsegment1.ts
#EXTINF:3.0,
Adsegment2.ts
#EXTINF:1.0,
Adsegment3.ts
#EXT-X-ENDLIST
```

**Example 2: 广告面板**  
 `CUE-OUT/IN`标签必须明确附加到区段。您不能连续使用多个 `CUE-OUT/IN` 标记来模拟广告 pod 行为。  
例如，以下声明是描绘广告窗格的有效用法。`CUE-OUT/IN`  

```
#EXT-X-CUE-OUT: 0
#EXT-X-CUE-IN
#EXTINF:4.000,
Somecontent1.ts
#EXT-X-CUE-OUT: 0
#EXT-X-CUE-IN
#EXTINF:4.000,
Somecontent2.ts
#EXT-X-CUE-OUT: 0
#EXT-X-CUE-IN
#EXTINF:4.000,
Videocontent.ts
```
上述声明会导致如下所示的输出。  

```
Ad 1
Somecontent.ts
Ad 2
Somecontent2.ts
Videocontent.ts
Post-Roll Ad 3
```
以下声明无效。  

```
#EXT-X-CUE-OUT: 0
#EXT-X-CUE-IN
#EXT-X-CUE-OUT: 0
#EXT-X-CUE-IN
#EXT-X-CUE-OUT: 0
#EXT-X-CUE-IN
#EXTINF:4.000,
Videocontent.ts
```

### 如果没有广告标记
<a name="no-markers"></a>

广告标记是在清单中发出广告中断信号的推荐方式。但是，不需要广告标记。如果清单中不包含 DASH 或 HLS 的广告标 MediaTailor 记，则只需调用 ADS 并根据响应创建广告插播时间：
+ 如果 ADS 发送了 VAST 响应，则 MediaTailor 会在清单开头的广告插播时段中插入响应中的所有广告。这是一种前置式广告。
+ 如果 ADS 发送 VMAP 响应，则 MediaTailor 使用广告中断时间偏移来创建广告片段，并在指定时间（前置片段、中片或片尾片段）将其插入到整个清单中。 MediaTailor 使用清单中每个广告时段的 VMAP 响应中每个广告时段的所有广告。
**注意**  
对于 VOD 内容，当片段与具有 VMAP 的插入点重叠时， MediaTailor 会向下舍入到最近的插入点。
**提示**  
如果您希望创建中置式广告时段，但您的 ADS 不支持 VMAP，请确保清单中有广告标记。 MediaTailor 将在标记处插入广告，如以下各个部分中所述。

**注意**  
对于服务器引导的广告插入方法， MediaTailor 请在清单的顶部插入前置广告，然后玩家在其他广告类型之前播放这些广告。

## 直播广告拼接行为
<a name="ad-behavior-live"></a>

在直播中， AWS Elemental MediaTailor 始终执行广告替换，尽可能保持广告标记之间的总时间。当广告标记包含该`DURATION`属性时， MediaTailor 使用该值来确定广告时段的持续时间。在实时工作流程中，每个`CUE-OUT``CUE-IN`指标都必须有持续时间或匹配的指标。

MediaTailor 替换 HLS 和 DASH 直播内容的广告。有关如何 MediaTailor 计算广告插播时间和时间的信息，请参阅[HLS 支持的广告标记](hls-ad-markers.md)和[DASH 广告标记](dash-ad-markers.md)。

### 广告选择和替换
<a name="ad-behavior-live-ad-selection"></a>

AWS Elemental MediaTailor 包括来自广告决策服务器 (ADS) VAST 响应的广告，如下所示：
+ 如果指定了持续时间，则 MediaTailor 选择一组适合时长的广告并将其包括在内。
+ 如果未指定持续时间，则会尽可能多地 MediaTailor 播放广告，直到遇到表示返回主内容的广告标记为止。

AWS Elemental MediaTailor 在直播广告替换期间，请遵守以下准则：
+ MediaTailor 尝试播放完整的广告，而不进行剪辑或截断。
+ 每当 MediaTailor 遇到表明广告插播结束的广告标记时，它都会返回到底层内容。这可能意味着缩短当前播放的广告。
+ 在持续时间结束时， MediaTailor 返回到基础内容。
+ 如果 MediaTailor 在广告时段内没有广告可供播放，则它要么播放 slate（如果已配置），要么恢复底层内容流的播放。这种情况通常出现在没有足够的转码广告来填补广告时段的持续时间时。

  
**提示**  
您可以使用个性化的阈值配置设置，定义广告时段中允许的有限未填充广告时间。有关更多信息，请参阅[PlaybackConfiguration 参考](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_PutPlaybackConfiguration.html#mediatailor-PutPlaybackConfiguration-request-PersonalizationThresholdSeconds)资料。

### 服务器引导式广告插入的实时预告片
<a name="ad-behavior-live-preroll-sgai"></a>

与服务器端广告插入相比，对于服务器引导的广告插入方法，Live preroll 的工作方式有所不同：

服务器端广告插入（拼接模式）  
每位观众会话开始时，前置广告会取代部分直播内容。每位观众根据加入直播的时间在不同的时间看到预告片。

服务器引导的广告插入方法  
MediaTailor 在所有带有属性的媒体清单的顶部放置一个 preroll daterange 标签。`CUE="PRE,ONCE"`这会导致玩家在播放开始时请求和播放前贴片广告一次，尽管他们共享的是相同的非个性化清单。

**配置要求：**
+ **直播前片广告决策服务器：**为前置广告配置 VAST 端点（可能与插播广告不同）
+ **直播前片允许的最大持续时间：**设置前置广告的最大持续时间（可选，如果省略，则将使用所有返回的广告）

**技术实现：**
+ Preroll 日期范围标签使用`START-DATE="1970-01-01T00:00:00.000Z"`（Unix 时代）
+ 素材资源列表请求使用配置的预贴广告决策服务器，而不是普通的 ADS
+ 玩家通过资产列表`availId="aws-mediatailor-preroll-1"`中的数据识别预览请求

**重要**  
对于直播，前置广告会覆盖内容，而不是延迟内容。未来的版本可能会通过其他配置选项支持内容延迟模式。

**注意**  
对于服务器引导的广告插入，直播内容和 VOD 内容的预贴行为各不相同。直播内容需要明确的预贴片配置，而 VOD 内容默认包含使用常规广告决策服务器的预贴片。

### 示例
<a name="ad-behavior-live-examples"></a>
+ 如果广告时段的持续时间设置为 70 秒，并且 ADS 响应包含两个 40 秒的广告，则会 AWS Elemental MediaTailor 播放其中一个 40 秒的广告。在剩下的时间内，它将切换到配置的画面或基础内容。在此过程中的任何时间点，如果 MediaTailor 遇到广告插入指示器，则它将立即切换到基础内容。
+ 如果广告时段的持续时间设置为 30 秒，而 ADS 响应提供的最短广告为 40 秒，则不 MediaTailor 播放任何广告。如果配置了广告名单，则会 MediaTailor 播放 30 秒钟或直到遇到提示指示器。否则， MediaTailor 播放基础内容。