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:準備串流

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

準備HLS串流

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

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

  • 資訊清單必須是即時或隨選視訊 (VOD)。

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

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

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

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

設定串流之後,請注意主資訊清單的內容原始URL碼。在本教學中稍後,您會需要它才能在 AWS Elemental MediaTailor中建立組態。

準備DASH串流

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

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

  • 資訊清單必須是即時或隨選視訊 (VOD)。

  • 資訊清單必須使用接合插入標記或時間信號標記,將事件標記為廣告時段。您可以提供透明XML或 base64 編碼二進位檔中的廣告標記。對於接合插入,必須啟用 out-of-network指標。對於時間訊號標記,位於分割 內的分割類型 ID UPID必須是 可辨識的提示值 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所需的查詢參數,URL請從 產生廣告標籤ADS。這URL可做為 請求的範本ADS,並包含下列項目:

  • 靜態值

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

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

範例 URL 來自 的廣告標籤 ADS
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】 值會變更,並導致每個工作階段的URLVAST請求不同。

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

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

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

測試

您可以使用來自 的靜態VAST回應ADS進行測試。在理想情況下,VAST回應會傳回 AWS Elemental MediaTailor 可轉碼的中間品質MP4轉譯。如果 的回應ADS包含多個播放轉譯, 會 MediaTailor 擷取最高品質的解析度MP4轉譯,並將其傳送至轉碼器。

步驟 4:建立組態

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

建立組態 (主控台)
  1. 在 開啟 MediaTailor 主控台https://console.aws.amazon.com/mediatailor/

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

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

  4. 針對影片內容來源,輸入此串流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. 針對廣告決策伺服器,輸入 URL的 ADS。這是URL具有 中所述變數的 步驟 3:設定ADS請求URL和查詢參數,或是您用於測試目的VASTURL的靜態 。長度上限為 25,000 個字元。

    注意

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

  6. (對於 ,視需要選用DASH) 針對位置,選擇DISABLED您是否已設定用於存取 MediaTailor 資訊清單的CDN路由規則,而且您使用用戶端報告或玩家支援黏性HTTP重新導向。

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

  7. (選用) 如果您的原始伺服器產生單一期間DASH資訊清單,請選擇 DASH mpd 資訊清單原始伺服器類型,然後選擇 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。

    範例

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

    範例

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

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

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

範例

假設您的範本ADSURL如下。

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..passes 參數,而這些參數不是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. 開啟位於 IAM 的 https://console.aws.amazon.com/iam/ 主控台。

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

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