

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

# MediaTailor 广告插入入门
<a name="getting-started-ad-insertion"></a>

要使用 AWS Elemental MediaTailor，您需要 AWS 账户 和权限才能访问、查看和编辑 MediaTailor 配置。有关如何执行此操作的信息，请参阅 [设置 AWS Elemental MediaTailor](setting-up.md)。

此入门教程演示如何执行以下任务：
+ 准备好你的 HLS 或 DASH 内容流
+ 配置广告决策服务器 (ADS) 模板网址
+ 创建包含播放端点的 MediaTailor 配置
+ 使用您的播放器或内容分发网络 (CDN) 向发出播放请求 MediaTailor

有关使用动态变量和玩家参数进行高级 ADS 网址配置，请参阅[MediaTailor ADS 请求的动态广告变量](variables.md)。有关通过传递参数的信息 CDNs，请参见[MediaTailor 清单查询参数](manifest-query-parameters.md)。

完成后，你可以向发送播放请求，在直播中播放个性化广告内容。 MediaTailor 

**Topics**
+ [先决条件](#prerequisites)
+ [步骤 1：访问 AWS Elemental MediaTailor](#access-emt)
+ [第 2 步：准备直播](#getting-started-prep-stream)
+ [步骤 3：配置 ADS 请求网址和查询参数](#getting-started-configure-request)
+ [第 4 步：创建配置](#getting-started-add-mapping)
+ [步骤 5：测试配置](#getting-started-test-config)
+ [第 6 步：将播放请求发送至 AWS Elemental MediaTailor](#send-request-to-mediatailor)
+ [步骤 7（可选）：监控 AWS Elemental MediaTailor 活动](#monitor-step)
+ [步骤 8：清除](#clean-up)

## 先决条件
<a name="prerequisites"></a>

开始之前，请确保您已完成 [设置 AWS Elemental MediaTailor](setting-up.md) 中的步骤。

## 步骤 1：访问 AWS Elemental MediaTailor
<a name="access-emt"></a>

使用您的 IAM 凭证登录 MediaTailor 控制台，网址为**https://console.aws.amazon.com/mediatailor/home**。

## 第 2 步：准备直播
<a name="getting-started-prep-stream"></a>

配置您的源服务器，以便为 HLS 或 DASH 生成与 AWS Elemental MediaTailor兼容的清单。您的源服务器必须使用标准的 HTTP 端口（端口 80）或 HTTPS 端口（端口 443）。 MediaTailor 不支持源服务器通信的自定义端口。

### 准备 HLS 直播
<a name="getting-started-prep-stream-hls"></a>

HLS 清单必须满足以下要求：
+ 清单必须可在公共 Internet 上访问。
+ 清单必须是直播或视频点播 (VOD)。
+ 清单必须具有 `EXT-X-VERSION` `3` 或更高版本。
+ 对于直播内容，清单必须包含描述广告效用的标记。这对于 VOD 内容是可选的，VOD 内容可以改用 VMAP 时间偏移。

  清单文件必须包含标有以下内容之一的广告位：
  + **\$1EXT-X-CUE-OUT /\$1EXT-X-CUE-IN**（更常见），持续时间如以下示例所示。

    ```
    #EXT-X-CUE-OUT:60.00
    #EXT-X-CUE-IN
    ```
  + 带有持续时间的 **\$1EXT-X-DATERANGE**（较少见），如下例所示。

    ```
    #EXT-X-DATERANGE:ID="",START-DATE="",DURATION=30.000,SCTE35-OUT=0xF
    #EXT-X-DATERANGE:ID="",START-DATE="",DURATION=30.000,SCTE35-OUT=0xF
    ```

    为 `#EXT-X-DATERANGE` 显示的所有字段都是必需的。

  在清单中配置广告标记的方式将决定广告是插入到流中还是替换流中的其他片段。有关更多信息，请参阅 [了解 AWS Elemental MediaTailor 广告插入行为](ad-behavior.md)。
+ HLS 多变体播放列表必须遵守 [HTTP 直播：主](https://tools.ietf.org/html/draft-pantos-http-live-streaming-21#section-4.3.4)播放列表标签中记录的 HLS 规范。具体而言，`#EXT-X-STREAM-INF` 必须包含字段 `RESOLUTION`、`BANDWIDTH` 和 `CODEC`。

配置直播后，请记下多变体播放列表的内容来源 URL 前缀。在本教程的后面，您需要使用它在 AWS Elemental MediaTailor中创建配置。

### 准备 DASH 直播
<a name="getting-started-prep-stream-dash"></a>

DASH 清单必须满足以下要求：
+ 清单必须可在公共 Internet 上访问。
+ 清单必须是直播或视频点播 (VOD)。
+ 清单必须使用拼接插入标记或时间信号标记将事件标记为广告效用。您可以使用清除 XML 或 base64 编码的二进制提供广告标记。对于接头插入，必须启用 out-of-network指示器。对于时间信号标记，位于分段 UPID 内的分段类型 ID 必须是可识别的提示值。 AWS Elemental MediaTailor广告效用随相关事件的开始而开始，持续时间与事件持续时间（如果已指定）相同，或者持续到下一个事件开始。

  以下示例显示使用拼接插入标记指定为广告效用的事件。此广告效用的持续时间与事件的持续时间相同。

  ```
    <Period start="PT444806.040S" id="123586" duration="PT15.000S">
      <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
        <Event duration="1350000">
          <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="180832" tier="4095">
            <scte35:SpliceInsert spliceEventId="4026531855" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1">
              <scte35:Program><scte35:SpliceTime ptsTime="5672624400"/></scte35:Program>
              <scte35:BreakDuration autoReturn="true" duration="1350000"/>
            </scte35:SpliceInsert>
          </scte35:SpliceInfoSection>
        </Event>
      </EventStream>
      <AdaptationSet mimeType="video/mp4"
          ...
      </AdaptationSet>
    </Period>
  ```
+ 广告效用必须具有与内容流相同的 `AdaptationSet` 和 `Representation` 设置。 AWS Elemental MediaTailor 使用这些设置来转码广告以匹配内容流，从而实现两者之间的流畅拼接。

配置流后，请记下 DASH 清单的内容源 URL 前缀。在本教程后面的部分中 AWS Elemental MediaTailor，您需要使用它来创建配置。

## 步骤 3：配置 ADS 请求网址和查询参数
<a name="getting-started-configure-request"></a>

要确定 ADS 需要的查询参数，请从 ADS 生成一个广告标签 URL。此 URL 充当对 ADS 请求的模板，并包含以下内容：
+ 静态值
+ 生成的值 AWS Elemental MediaTailor （用`session`或`avail`查询参数表示）
+ 播放器生成的值，从客户端应用程序获取（由 `player_params.` 查询参数指示）

**Example 来自 ADS 的广告标签 URL**  

```
https://my.ads.com/ad?output=vast&content_id=12345678&playerSession=[session.id]&cust_params=[player_params.cust_params]
```
其中：  
+ **output** 和 **content\$1id** 是静态值
+ **PlayerSession= [session.id]** 是由提供的动态值。 AWS Elemental MediaTailor**[session.id]** 的值将随每个播放器会话更改，并为针对每个会话的 VAST 请求生成不同的 URL。
+ **cust\$1params** 是播放器提供的动态值

玩家发出的多变体播放列表请求必须提供与 ADS 请求网址中的`player_params.`查询参数相对应的键值对。有关在请求中配置键值对的更多信息，请参阅。 AWS Elemental MediaTailor[MediaTailor ADS 请求的动态广告变量](variables.md)

在中创建源 server/ADS 映射时，请输入配置的 “模板” URL [第 4 步：创建配置](#getting-started-add-mapping)。 MediaTailor

**测试**  
您可以使用来自 ADS 的静态 VAST 响应进行测试。理想情况下，VAST 响应会返回可以转码的夹层质量的 MP4 格式副本。 AWS Elemental MediaTailor 如果来自 ADS 的响应包含多个播放格式副本，则 MediaTailor 选择最高质量和分辨率的 MP4格式副本并将其发送到转码器。

## 第 4 步：创建配置
<a name="getting-started-add-mapping"></a>

该 AWS Elemental MediaTailor 配置包含源服务器和 ADS 的映射信息。

**创建配置（控制台）**

1. 打开 MediaTailor 控制台，网址为[https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/)。

1. 在 **Configurations (配置)** 页面上，选择 **Create configuration (创建配置)**。

1. 在页面底部的 **Configuration (配置)** 部分，在 **Configuration name (配置名称)** 中，输入用于描述配置的唯一名称。此名称是配置的主要标识符。允许的最大长度为 512 个字符。

1.  对于**视频内容来源**，输入此直播的 HLS 多变体播放列表或 DASH 清单的 URL 前缀，减去素材资源 ID。例如，如果多变播放列表网址为`http://origin-server.com/a/master.m3u8`，则需要输入`http://origin-server.com/a/`。或者，您也可以输入一个较短的前缀（如 `http://origin-server.com`），但您随后必须在针对内容的播放器请求的资产 ID 中包含 `/a/`。最大长度为 512 个字符。

    
**注意**  
如果您的内容源使用 HTTPS，则其证书必须来自知名的证书颁发机构。（它不能是自签名证书。） 否则，将 AWS Elemental MediaTailor 无法连接到内容来源，也无法根据玩家的请求提供清单。

1. 在**广告决策服务器**中，输入广告的网址。这是包含变量的 URL（如[步骤 3：配置 ADS 请求网址和查询参数](#getting-started-configure-request)中所述），或用于测试用途的静态 VAST URL。最大长度为 25000 个字符。
**注意**  
如果您的 ADS 使用 HTTPS，则其证书必须来自知名的证书颁发机构。（它不能是自签名证书。） ADS URLs 返回的夹层广告也是如此。否则， MediaTailor 无法检索广告并将其拼接到来自内容源的清单中。

1. （根据达世币的需要可选）如果您为访问 MediaTailor 清单设置了 CDN 路由规则，并且您要么使用客户端报告，要么您的玩家支持粘性 HTTP 重定向，请在 “**位置**” 中选择 “**禁用**”。

   有关 **Location (位置)** 功能的更多信息，请参阅 [DASH 定位功能](dash-location-feature.md)。

1. （可选）如果您的源服务器生成单周期 DASH 清单，请选择 **DASH mpd manifest origin type (DASH mpd 清单原始类型)**，然后选择 **SINGLE\$1PERIOD**。默认情况下，将 DASH 清单作为多周期清单 MediaTailor 处理。有关更多信息，请参阅 [集成 MPEG-DASH 信号源](manifest-dash.md)。

1. 选择**创建配置**。

   AWS Elemental MediaTailor 在 “配置” 页面上显示新**配置**。

## 步骤 5：测试配置
<a name="getting-started-test-config"></a>

保存配置后，使用适合您的流式处理协议的格式的 URL 测试流：
+ 示例：HLS

  ```
  playback-endpoint/v1/master/hashed-account-id/origin-id/master.m3u8
  ```
+ 示例：DASH

  ```
  playback-endpoint/v1/dash/hashed-account-id/origin-id/manifest.mpd
  ```

其中：
+ `playback-endpoint` 是 AWS Elemental MediaTailor 在创建配置后生成的唯一播放终端节点。

  示例

  ```
  https://777788889999.mediatailor.us-east-1.amazonaws.com
  ```
+ `hashed-account-id`是你的 AWS 账户 身份证。

  示例

  ```
  777788889999
  ```
+ `origin-id` 是您在创建配置时提供的名称。

  示例

  ```
  myOrigin
  ```
+ `master.m3u8` 或 `manifest.mpd` 是来自测试流的清单的名称加上其文件扩展名。定义此项，从而在将它附加到您在[第 4 步：创建配置](#getting-started-add-mapping)中配置的视频内容源时获得完全标识的清单。

使用前面示例中的值，完整 URLs 内容如下。
+ 示例：HLS

  ```
  https://777788889999.mediatailor.us-east-1.amazonaws.com/v1/master/AKIAIOSFODNN7EXAMPLE/myOrigin/master.m3u8
  ```
+ 示例：DASH

  ```
  https://777788889999.mediatailor.us-east-1.amazonaws.com/v1/dash/AKIAIOSFODNN7EXAMPLE/myOrigin/manifest.mpd
  ```

您可以使用以下方法之一测试流。
+ 按以上示例中所示，在独立的播放器输入 URL。
+ 在您自己的播放器环境中测试流。

## 第 6 步：将播放请求发送至 AWS Elemental MediaTailor
<a name="send-request-to-mediatailor"></a>

配置下游播放器或 CDN 以将播放请求发送到从 AWS Elemental MediaTailor提供的配置的播放终端节点。您在[步骤 3：配置 ADS 请求网址和查询参数](#getting-started-configure-request)中的 ADS 请求 URL 中使用的任何播放器定义的动态变量必须在来自播放器的清单请求中定义。

**Example**  
假如您的模板 ADS URL 如下。  

```
https://my.ads.com/ad?output=vast&content_id=12345678&playerSession=[session.id]&cust_params=[player_params.cust_params]
```
然后在玩家请求`[player_params.cust_params]`中定义，在键值对前面加上。`ads.` AWS Elemental MediaTailor 将前面没有的参数传递`ads.`给源服务器，而不是 ADS。  
播放器请求 URL 是以下 HLS 和 DASH 示例的某个变体。  

```
https://777788889999.mediatailor.us-east-1.amazonaws.com/v1/master/AKIAIOSFODNN7EXAMPLE/myOrigin/master.m3u8?ads.cust_params=viewerinfo
```

```
https://777788889999.mediatailor.us-east-1.amazonaws.com/v1/dash/AKIAIOSFODNN7EXAMPLE/myOrigin/manifest.mpd?ads.cust_params=viewerinfo
```
当 AWS Elemental MediaTailor 收到玩家请求时，它会根据请求中的信息定义玩家变量。生成的 ADS 请求 URL 是以下内容的某个变体。  

```
https://my.ads.com/ad?output=vast&content_id=12345678&playerSession=<filled_in_session_id>&cust_params=viewerinfo
```

有关配置要传递到 ADS 的键-值对的更多信息，请参阅 [MediaTailor ADS 请求的动态广告变量](variables.md)。

## 步骤 7（可选）：监控 AWS Elemental MediaTailor 活动
<a name="monitor-step"></a>

使用 Amazon CloudWatch 和 A CloudWatch mazon Logs 来跟踪 AWS Elemental MediaTailor 活动，例如已填写的请求数、错误数和广告投放次数。

如果这是您第一次 CloudWatch 使用和 AWS Elemental MediaTailor，请创建一个 AWS Identity and Access Management (IAM) 角色以允许服务之间的通信。

**允许 AWS Elemental MediaTailor 访问 CloudWatch （控制台）**

1. 使用 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 打开 IAM 控制台。

1. 在 IAM 控制台的导航窗格中，选择**角色**，然后选择**创建角色**。

1. 选择**其他 AWS 账户**角色类型。

1. 在 “**账户 ID**” 中，输入您的 AWS 账户 ID。

1. 选择 **Require external ID (需要外部 ID)** 并输入 **midas**。此选项会在信任策略中自动添加一个条件，即仅当请求包含正确的 `sts:ExternalID` 时，该服务才代入该角色。

1. 选择**下一步: 权限**。

1. 添加指定此角色可完成的操作的权限策略。从以下选项中选择一项，然后选择 **Next: Review (下一步: 审核)**：
   + **CloudWatchLogsFullAccess**提供对 Amazon CloudWatch 日志的完全访问权限
   + **CloudWatchFullAccess**提供对 Amazon 的完全访问权限 CloudWatch

1. 对于**角色名称**，输入 **MediaTailorLogger**，然后选择**创建角色**。

1. 在 **Roles (角色)** 页上，选择您刚刚创建的角色。

1. 编辑信任关系以更新委托人：

   1. 在角色的 **Summary (摘要)** 页上，选择 **Trust relationship (信任关系)** 选项卡。

   1. 选择**编辑信任关系**。

   1. 在策略文档中，将委托人更改为 AWS Elemental MediaTailor 服务。它应如下所示。

      ```
      "Principal": {
         "Service": "mediatailor.amazonaws.com"
      },
      ```

      整个策略的内容现在应如下所示。

   1. 选择**更新信任策略**。

## 步骤 8：清除
<a name="clean-up"></a>

为避免产生多余的费用，请删除所有不必要的配置。

**删除配置（控制台）**

1. 在 “ AWS Elemental MediaTailor **配置**” 页面上，执行以下任一操作：
   + 为要删除的配置选择 **Configuration name (配置名称)**。
   + 在 **Configuration name (配置名称)** 列中，选择单选按钮，然后选择 **Delete (删除)**。

1. 在 **Delete configuration (删除配置)** 确认框中，输入 **Delete**，然后再次选择 **Delete (删除)**。

   AWS Elemental MediaTailor 移除配置。