MediaTailor 廣告插入入門 - AWS Elemental MediaTailor

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

MediaTailor 廣告插入入門

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

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

  • 準備您的 HLS 或 DASH 內容串流

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

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

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

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

先決條件

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

步驟 1:存取 AWS Elemental MediaTailor

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

步驟 2:準備串流

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

準備 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 的所有欄位為必要欄位。

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

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

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

準備 DASH 串流

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>
  • 廣告時段必須擁有與內容串流相同的 AdaptationSetRepresentation 設定。 AWS Elemental MediaTailor 會使用這些設定來轉碼廣告,以符合內容串流,以便在兩個串流之間順暢切換。

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

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

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

  • 靜態值

  • 產生的值 AWS Elemental MediaTailor (由 sessionavail 查詢參數表示)

  • 播放器產生的值,從用戶端應用程式取得 (以 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的請求中設定索引鍵-值組的詳細資訊,請參閱在 MediaTailor 中使用動態廣告變數

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

測試

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

步驟 4:建立組態

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

建立組態 (主控台)
  1. 在 https://https://console.aws.amazon.com/mediatailor/ 開啟 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 和查詢參數 中所述具有變數的 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. 選擇建立組態

    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://777788889999.mediatailor.us-east-1.amazonaws.com
  • hashed-account-id 是您的 AWS 帳戶 ID。

    範例

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

    範例

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

使用來自上述範例的值,完整 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

設定下游播放器或 CDN 來傳送播放請求到 AWS Elemental MediaTailor提供之組態的播放端點。於步驟 3:設定 ADS 請求 URL 和查詢參數的 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]中,透過使用 . 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 的詳細資訊,請參閱在 MediaTailor 中使用動態廣告變數

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

使用 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/ 的 IAM 主控台。

  2. 在 IAM 主控台的導覽窗格中,選擇角色,然後選擇建立角色

  3. 選擇另一個 AWS 帳戶角色類型。

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

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

  6. 選擇下一步:許可

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

    • CloudWatchLogsFullAccess 提供 Amazon CloudWatch Logs 的完整存取權

    • CloudWatchFullAccess 提供 Amazon CloudWatch 的完整存取權

  8. 針對角色名稱,輸入 MediaTailorLogger,然後選擇建立角色

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

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

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

    2. 選擇編輯信任關係

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

      "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 會移除組態。