

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

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

若要使用 AWS Elemental MediaTailor，您需要 AWS 帳戶 和 許可才能存取、檢視和編輯 MediaTailor 組態。如需如何執行此作業的資訊，請參閱 [設定 AWS Elemental MediaTailor](setting-up.md)。

此入門教學課程說明如何執行以下任務：
+ 準備您的 HLS 或 DASH 內容串流
+ 設定廣告決策伺服器 (ADS) 範本 URL
+ 建立包含播放端點的 MediaTailor 組態
+ 使用您的播放器或內容交付網路 (CDN) 向 MediaTailor 提出播放請求

如需使用動態變數和玩家參數的進階 ADS URL 組態，請參閱 [ADS 請求的 MediaTailor 動態廣告變數](variables.md)。如需透過 CDNs傳遞參數的資訊，請參閱 [MediaTailor 資訊清單查詢參數](manifest-query-parameters.md)。

完成後，您就可以將播放請求傳送至 MediaTailor，以取得串流中的個人化廣告內容。

**Topics**
+ [先決條件](#prerequisites)
+ [步驟 1：存取 AWS Elemental MediaTailor](#access-emt)
+ [步驟 2：準備串流](#getting-started-prep-stream)
+ [步驟 3：設定 ADS 請求 URL 和查詢參數](#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>

設定您的原始伺服器以產生與 AWS Elemental MediaTailor相容的 HLS 或 DASH 資訊清單。您的原始伺服器必須使用標準 HTTP 連接埠 （連接埠 80) 或 HTTPS 連接埠 （連接埠 443)。MediaTailor 不支援原始伺服器通訊的自訂連接埠。

### 準備 HLS 串流
<a name="getting-started-prep-stream-hls"></a>

HLS 資訊清單必須符合以下要求：
+ 資訊清單必須可在公有網際網路上供存取。
+ 資訊清單必須為即時或隨需影片 (VOD)。
+ 資訊清單必須有 `3` 或更高的 `EXT-X-VERSION`。
+ 對於即時內容，資訊清單必須包含標記來描述廣告時段。對 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 即時串流中記錄的 HLS 規格：主播放清單標籤](https://tools.ietf.org/html/draft-pantos-http-live-streaming-21#section-4.3.4)。特別是，`#EXT-X-STREAM-INF` 必須包含欄位 `RESOLUTION`、`BANDWIDTH` 和 `CODEC`。

設定串流之後，請注意多變量播放清單的內容原始伺服器 URL 字首。在本教學中稍後，您會需要它才能在 AWS Elemental MediaTailor中建立組態。

### 準備 DASH 串流
<a name="getting-started-prep-stream-dash"></a>

DASH 資訊清單必須符合以下要求：
+ 資訊清單必須可在公有網際網路上供存取。
+ 資訊清單必須為即時或隨需影片 (VOD)。
+ 資訊清單必須使用接合插入標記或時間信號標記，將事件標記為廣告時段。您可以以 Clear XML 或以 base64 編碼的二進位提供廣告標記。對於接合插入，必須啟用網路外部指標。對於時間訊號標記，位於分段 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 請求 URL 和查詢參數
<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 請求 URL 中的`player_params.`查詢參數對應的鍵值對。如需在 請求中設定鍵值對的詳細資訊 AWS Elemental MediaTailor，請參閱 [ADS 請求的 MediaTailor 動態廣告變數](variables.md)。

在 MediaTailor 的 中建立原始伺服器/ADS 映射時，輸入設定的「範本」 URL[步驟 4：建立組態](#getting-started-add-mapping)。

**測試**  
您可以使用來自 ADS 的靜態 VAST 回應供測試目的。通常，VAST 回應會傳回 AWS Elemental MediaTailor 可以轉碼的 Mezzanine 品質 MP4 轉譯。如果來自 ADS 的回應包含多個播放轉譯，MediaTailor 會挑選最高品質的解析度 MP4 轉譯，並將其傳送至轉碼器。

## 步驟 4：建立組態
<a name="getting-started-add-mapping"></a>

 AWS Elemental MediaTailor 組態會保留原始伺服器和 ADS 的映射資訊。

**建立組態 (主控台)**

1. 在 https：//[https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/) 開啟 MediaTailor 主控台。

1. 在 **Configurations (組態)** 頁面上，選擇 **Create configuration (建立組態)**。

1. 在頁面底部的 **Configuration (組態)** 區段中，對於 **Configuration name (組態名稱)**，輸入描述組態的唯一名稱。名稱為組態的主要識別符。允許的長度上限為 512 個字元。

1.  對於**影片內容來源**，輸入此串流的 HLS 多變量播放清單或 DASH 資訊清單的 URL 字首，減去資產 ID。例如，如果多變量播放清單 URL 為 `http://origin-server.com/a/master.m3u8`，您可以輸入 `http://origin-server.com/a/`。或者，您可以輸入較短的字首，例如 `http://origin-server.com`，但接著您必須將 `/a/` 包含在播放器內容請求的資產 ID 中。長度上限為 512 個字元。

    
**注意**  
如果您的內容來源使用 HTTPS，則其憑證必須來自知名的憑證授權單位。(不能是自簽憑證。) 否則， AWS Elemental MediaTailor 無法連線至內容原始伺服器，且無法提供資訊清單以回應玩家請求。

1. 針對**廣告決策伺服器**，輸入 ADS 的 URL。這是[步驟 3：設定 ADS 請求 URL 和查詢參數](#getting-started-configure-request) 中所述具有變數的 URL，或是您用於測試用途的靜態 VAST URL。長度上限為 25,000 個字元。
**注意**  
如果您的 ADS 使用 HTTPS，則其憑證必須來自知名的憑證授權單位。(不能是自簽憑證。) 相同情況適用於 ADS 傳回的 Mezzanine 廣告 URL。否則，MediaTailor 無法從內容來源擷取廣告並將其拼接至資訊清單。

1. (DASH 視需要選用） 對於**位置**，如果您已設定 CDN 路由規則來存取 MediaTailor 資訊清單，且您使用用戶端報告或播放器支援黏性 HTTP 重新導向，請選擇**停用**。

   如需 **Location (位置)** 功能的詳細資訊，請參閱 [DASH 位置功能](dash-location-feature.md)。

1. (選用) 如果您的原始伺服器會產生單一期間 DASH 資訊清單，請選擇 **DASH mpd manifest origin type (DASH mp 資訊清單來源類型)**，然後選擇 **SINGLE\$1PERIOD**。根據預設，MediaTailor 會將 DASH 資訊清單處理為多期間資訊清單。如需詳細資訊，請參閱[整合 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 帳戶 ID。

  範例

  ```
  777788889999
  ```
+ `origin-id` 是您在建立組態時提供的名稱。

  範例

  ```
  myOrigin
  ```
+ `master.m3u8` 或 `manifest.mpd` 是來自測試串流的資訊清單名稱加上其副檔名。定義此項目，使得當您將它附加到在[步驟 4：建立組態](#getting-started-add-mapping)中設定的影片內容來源時，可讓您取得完整識別的資訊清單。

使用來自上述範例的值，完整 URL 如下。
+ 範例：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 請求 URL 和查詢參數](#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]`中，透過使用 . AWS Elemental MediaTailor passes 參數預先引導鍵值對來定義 `ads.`。將未前面的參數傳遞`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 的詳細資訊，請參閱[ADS 請求的 MediaTailor 動態廣告變數](variables.md)。

## 步驟 7 （選用）：監控 AWS Elemental MediaTailor 活動
<a name="monitor-step"></a>

使用 Amazon CloudWatch 和 Amazon CloudWatch 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 Logs 的完整存取權
   + **CloudWatchFullAccess** 提供 Amazon CloudWatch 的完整存取權

1. 針對**角色名稱**，輸入 **MediaTailorLogger**，然後選擇**建立角色**。

1. 在 **Roles (角色)** 頁面上，選取您剛剛建立的角色。

1. 編輯信任關係以更新委託人：

   1. 在角色的 **Summary (摘要)** 頁面上，選擇 **Trust relationship (信任關係)** 標籤。

   1. 選擇**編輯信任關係**。

   1. 在政策文件中，將委託人變更為 AWS Elemental MediaTailor 服務。它應該如下所示。

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

      整個政策看起來應該如下所示。

   1. 選擇 **Update Trust Policy** (更新信任政策)。

## 步驟 8：清理
<a name="clean-up"></a>

為了避免產生額外的費用，請刪除所有不必要的組態。

**刪除組態 (主控台)**

1. 在 AWS Elemental MediaTailor **設定**頁面上，執行下列其中一項操作：
   + 選擇您要刪除的組態的 **Configuration name (組態名稱)**。
   + 在 **Configuration name (組態名稱)** 資料欄中，選擇名稱旁的選項按鈕，然後選擇 **Delete (刪除)**。

1. 在 **Delete configuration (刪除組態)** 確認方塊中，輸入 **Delete**，然後選擇 **Delete (刪除)**。

   AWS Elemental MediaTailor 會移除組態。