入門 MediaTailor 廣告插入 - AWS Elemental MediaTailor

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

入門 MediaTailor 廣告插入

使用 AWS Elemental MediaTailor,您需要 AWS 帳戶和許可來存取、檢視和編輯 MediaTailor 配置。如需如何執行此作業的資訊,請參閱設定 AWS Elemental MediaTailor

此入門教學課程說明如何執行以下任務:

  • 準備您的 HLS 或短跑內容流

  • 設定廣告決策伺服器 (ADS) 範本 URL

  • 建立 MediaTailor 包含播放端點的組態

  • 使用播放器或內容交付網路 (CDN) 提出播放請求, MediaTailor

完成後,您將能夠傳送播放請求到 MediaTailor 在直播中提供個人化廣告內容。

先決條件

開始之前,請務必先完成 設定 AWS Elemental MediaTailor 中的步驟。

步驟 1:存取 AWS Elemental MediaTailor

使用您的 IAM 登入資料,登入到 MediaTailor console (主控台)https://console.aws.amazon.com/mediatailor/home

步驟 2:準備串流

設定您的原始伺服器以產生與 AWS Elemental 相容的 HLS 或 DASH 資訊清單 MediaTailor。

準備 HLS 串流

HLS 資訊清單必須符合以下要求:

  • 資訊清單必須可在公有網際網路上供存取。

  • 資訊清單必須為即時或隨需影片 (VOD)。

  • 資訊清單必須有 3 或更高的 EXT-X-VERSION

  • 對於即時內容,資訊清單必須包含標記來描述廣告時段。對 VOD 內容來說,這是選用的,它可以改為使用 VMAP 時間偏移。

    資訊清單檔案必須以下列其中一項標示廣告時段:

    • #EXT-X-CUE-OUT / #EXT-X-CUE-IN (較常見) 具有的持續時間如以下範例所示。

      #EXT-X-CUE-OUT:60.00 #EXT-X-CUE-IN
    • #EXT-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 的所有欄位為必要欄位。

    您在資訊清單中設定廣告標記的方式,會影響廣告是否要在串流中插入或取代串流中的其他片段。如需詳細資訊,請參閱 了解 MediaTailor 廣告插入行為

  • HLS 主資訊清單必須遵循記錄在 HLS 規格HTTP 即時串流:主播放清單標籤。特別是,#EXT-X-STREAM-INF 必須包含欄位 RESOLUTIONBANDWIDTHCODEC

設定串流之後,記下主要資訊清單的內容來源 URL 字首。您需要它才能在 AWS Elemental 中建立組態 MediaTailor,稍後將在本教學課程中。

準備 DASH 串流

DASH 資訊清單必須符合以下要求:

  • 資訊清單必須可在公有網際網路上供存取。

  • 資訊清單必須為即時或隨需影片 (VOD)。

  • 資訊清單必須使用接合插入標記或時間信號標記,將事件標記為廣告時段。您可以以 Clear 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>
  • 廣告可用性必須具有相同的AdaptationSetRepresentation設置為內容流。AWS Elemental MediaTailor 會使用這些設定來轉碼廣告,以符合內容串流,以在兩個串流中順暢切換。

設定串流之後,記下 DASH 資訊清單的內容來源 URL 字首。您需要它才能在 AWS Elemental 中建立組態 MediaTailor,稍後將在本教學課程中。

步驟 3:設定 ADS 請求網址和查詢參數

若要判斷 ADS 需要的查詢參數,請從 ADS 產生廣告標籤 URL。此 URL 可做為對 ADS 請求的範本,並包含下列項目:

  • 靜態值

  • AWS Elemental 產生的值 MediaTailor (由session或者avail查詢參數)

  • 播放器產生的值,從用戶端應用程式取得 (以 player_params. 查詢參數表示)

範例 來自 ADS 的廣告標籤 URL

https://my.ads.com/ad?output=vast&content_id=12345678&playerSession=[session.id]&cust_params=[player_params.cust_params]

其中:

  • outputcontent_id 是靜態值

  • playerSession= [session.id]是 AWS Elemental 提供的值 MediaTailor。每個播放器工作階段的 [session.id] 值會變更,並且造成每個工作階段 VAST 請求的 URL 不同。

  • cust_params 是播放器提供的動態值

來自播放器主要資訊清單的請求,必須提供與 ADS 請求 URL 中 player_params. 查詢參數對應的索引鍵-值組。如需在 AWS Elemental 請求中設定索引鍵-值組的詳細資訊 MediaTailor,請參閱在 AWS Elemental 中使用動態廣告變量 MediaTailor

輸入您在 MediaTailor 中建立原始伺服器/ADS 映射時設定的「範本」URL (步驟 4:建立組態)。

測試

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

步驟 4:建立組態

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

建立組態 (主控台)

  1. 開啟 MediaTailor console (主控台)https://console.aws.amazon.com/mediatailor/

  2. Configurations (組態) 頁面上,選擇 Create configuration (建立組態)

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

  4. 對於 Video content source (影片內容來源),請輸入此串流的 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 無法連接到內容來源,並且無法提供資訊清單以回應播放器請求。

  5. 適用於廣告決策伺服器」下,輸入您的 ADS 的 URL。這是步驟 3:設定 ADS 請求網址和查詢參數 中所述具有變數的 URL,或是您用於測試用途的靜態 VAST URL。長度上限為 25,000 個字元。

    注意

    如果您的 ADS 使用 HTTPS,則其憑證必須來自知名的憑證授權單位。(不能是自簽憑證。) 相同情況適用於 ADS 傳回的 Mezzanine 廣告 URL。否則, MediaTailor 無法從內容來源擷取並將廣告整合到資訊清單。

  6. (DASH 需要時可選)對於位置,選擇殘疾人如果您設定了用於訪問的 CDN 路由規則 MediaTailor 資訊清單,您要么正在使用客戶端報告或播放器支持粘性 HTTP 重定向。

    如需 Location (位置) 功能的詳細資訊,請參閱 DASH 定位功能

  7. (選用) 如果您的原始伺服器會產生單一期間 DASH 資訊清單,請選擇 DASH mpd manifest origin type (DASH mp 資訊清單來源類型),然後選擇 SINGLE_PERIOD。根據預設, MediaTailor 會以多期間資訊清單形式處理 DASH 資訊清單。如需詳細資訊,請參閱 集成 MPEG-DASH 資訊源

  8. 選擇 Create configuration (建立組態)

    AWS Elemental MediaTailor 會在上顯示新的組態。組態(憑證已建立!) 頁面上的名稱有些許差異。

步驟 5:測試組態

儲存組態之後,使用您的串流協定的適當格式 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://bdaaeb4bd9114c088964e4063f849065.mediatailor.us-east-1.amazonaws.com
  • hashed-account-id 是您的 AWS 帳戶 ID。

    範例

    AKIAIOSFODNN7EXAMPLE
  • origin-id 是您在建立組態時提供的名稱。

    範例

    myOrigin
  • master.m3u8manifest.mpd 是來自測試串流的資訊清單名稱加上其副檔名。定義此項目,使得當您將它附加到在步驟 4:建立組態中設定的影片內容來源時,可讓您取得完整識別的資訊清單。

使用來自上述範例的值,完整 URL 如下。

  • 範例:HLS

    https://bdaaeb4bd9114c088964e4063f849065.mediatailor.us-east-1.amazonaws.com/v1/master/AKIAIOSFODNN7EXAMPLE/myOrigin/master.m3u8
  • 範例:DASH

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

您可以使用下列其中一個方法來測試串流。

  • 如前述範例所示,輸入獨立播放器中的 URL。

  • 在您自己的播放器環境中測試串流。

步驟 6:將播放請求傳送至 AWS Elemental MediaTailor

設定下游播放器或 CDN 以傳送播放請求到 AWS Elemental 提供之組態的播放端點 MediaTailor。於步驟 3:設定 ADS 請求網址和查詢參數的 ADS 請求 URL 中使用之任何播放器定義的動態變數,必須在來自播放器的資訊清單請求中定義。

範例

假設您的範本 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://bdaaeb4bd9114c088964e4063f849065.mediatailor.us-east-1.amazonaws.com/v1/master/AKIAIOSFODNN7EXAMPLE/myOrigin/master.m3u8?ads.cust_params=viewerinfo
https://bdaaeb4bd9114c088964e4063f849065.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 的詳細資訊,請參閱在 AWS Elemental 中使用動態廣告變量 MediaTailor

步驟 7 (選用):AWS Elemental MediaTailor 活動

使用 Amazon CloudWatch 和 Amazon CloudWatch 用於追蹤 AWS Elemental 的日誌 MediaTailor 活動,例如請求,錯誤和廣告時段填滿的計數。

如果您是第一次使用 CloudWatch 使用 AWS Elemental MediaTailor,建立AWS Identity and Access Management(IAM) 角色,以允許服務之間的通訊。

若要允許 AWS Elemental MediaTailor 存取 CloudWatch (console)

  1. 在以下網址開啟 IAM 主控台:https://console.aws.amazon.com/iam/

  2. 在 IAM 主控台的導覽窗格中,選擇 Roles (角色),然後選擇 Create role (建立角色)。

  3. 選擇 Another AWS account (另一個 AWS 帳戶) 角色類型。

  4. 針對 Account ID (帳戶 ID),輸入您的 AWS 帳戶 ID。

  5. 選取 Require external ID (需要外部 ID),然後輸入 midas。此選項會自動新增條件到信任政策,讓服務只在請求包含正確的 sts:ExternalID 時才擔任該角色。

  6. 選擇 Next: (下一步:) Permissions (許可)。

  7. 新增指定此角色可以完成之動作的許可政策。選取以下其中一個選項,然後選擇下一頁: 檢閱

    • CloudWatchLogsFullAccess以提供對亞馬遜的完整存取權 CloudWatch 日誌

    • CloudWatchFullAccess以提供對亞馬遜的完整存取權 CloudWatch

  8. 針對 Role name (角色名稱),輸入 MediaTailorLogger,然後選擇 Create role (建立角色)

  9. Roles (角色) 頁面上,選取您剛剛建立的角色。

  10. 編輯信任關係以更新委託人:

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

    2. 選擇 Edit trust relationship (編輯信任關係)

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

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

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

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "mediatailor.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "Midas" } } } ] }
    4. 選擇 Update Trust Policy (更新信任政策)。

步驟 8:清除

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

刪除組態 (主控台)

  1. AWS Elemental MediaTailor 組態頁面上,執行下列動作:

    • 選擇您要刪除的組態的 Configuration name (組態名稱)

    • Configuration name (組態名稱) 資料欄中,選擇名稱旁的選項按鈕,然後選擇 Delete (刪除)

  2. Delete configuration (刪除組態) 確認方塊中,輸入 Delete,然後選擇 Delete (刪除)

    AWS Elemental MediaTailor 會移除組態。