本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
入門 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
必須包含欄位RESOLUTION
、BANDWIDTH
和CODEC
。
設定串流之後,記下主要資訊清單的內容來源 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>
-
廣告可用性必須具有相同的
AdaptationSet
和Representation
設置為內容流。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]
其中:
-
output 和 content_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 的映射資訊。
建立組態 (主控台)
開啟 MediaTailor console (主控台)https://console.aws.amazon.com/mediatailor/
。 -
在 Configurations (組態) 頁面上,選擇 Create configuration (建立組態)。
-
在頁面底部的 Configuration (組態) 區段中,對於 Configuration name (組態名稱),輸入描述組態的唯一名稱。名稱為組態的主要識別符。允許的長度上限為 512 個字元。
-
對於 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 無法連接到內容來源,並且無法提供資訊清單以回應播放器請求。
-
適用於廣告決策伺服器」下,輸入您的 ADS 的 URL。這是步驟 3:設定 ADS 請求網址和查詢參數 中所述具有變數的 URL,或是您用於測試用途的靜態 VAST URL。長度上限為 25,000 個字元。
注意 如果您的 ADS 使用 HTTPS,則其憑證必須來自知名的憑證授權單位。(不能是自簽憑證。) 相同情況適用於 ADS 傳回的 Mezzanine 廣告 URL。否則, MediaTailor 無法從內容來源擷取並將廣告整合到資訊清單。
-
(DASH 需要時可選)對於位置,選擇殘疾人如果您設定了用於訪問的 CDN 路由規則 MediaTailor 資訊清單,您要么正在使用客戶端報告或播放器支持粘性 HTTP 重定向。
如需 Location (位置) 功能的詳細資訊,請參閱 DASH 定位功能。
-
(選用) 如果您的原始伺服器會產生單一期間 DASH 資訊清單,請選擇 DASH mpd manifest origin type (DASH mp 資訊清單來源類型),然後選擇 SINGLE_PERIOD。根據預設, MediaTailor 會以多期間資訊清單形式處理 DASH 資訊清單。如需詳細資訊,請參閱 集成 MPEG-DASH 資訊源。
-
選擇 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.m3u8
或manifest.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)
在以下網址開啟 IAM 主控台:https://console.aws.amazon.com/iam/
。 -
在 IAM 主控台的導覽窗格中,選擇 Roles (角色),然後選擇 Create role (建立角色)。
-
選擇 Another AWS account (另一個 AWS 帳戶) 角色類型。
-
針對 Account ID (帳戶 ID),輸入您的 AWS 帳戶 ID。
-
選取 Require external ID (需要外部 ID),然後輸入
midas
。此選項會自動新增條件到信任政策,讓服務只在請求包含正確的sts:ExternalID
時才擔任該角色。 -
選擇 Next: (下一步:) Permissions (許可)。
-
新增指定此角色可以完成之動作的許可政策。選取以下其中一個選項,然後選擇下一頁: 檢閱:
-
CloudWatchLogsFullAccess以提供對亞馬遜的完整存取權 CloudWatch 日誌
-
CloudWatchFullAccess以提供對亞馬遜的完整存取權 CloudWatch
-
-
針對 Role name (角色名稱),輸入
MediaTailorLogger
,然後選擇 Create role (建立角色)。 -
在 Roles (角色) 頁面上,選取您剛剛建立的角色。
-
編輯信任關係以更新委託人:
-
在角色的 Summary (摘要) 頁面上,選擇 Trust relationship (信任關係) 標籤。
-
選擇 Edit trust relationship (編輯信任關係)。
-
在政策文件中,將委託人變更為 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" } } } ] }
-
選擇 Update Trust Policy (更新信任政策)。
-
步驟 8:清除
為了避免產生額外的費用,請刪除所有不必要的組態。
刪除組態 (主控台)
-
AWS Elemental MediaTailor 組態頁面上,執行下列動作:
-
選擇您要刪除的組態的 Configuration name (組態名稱)。
-
在 Configuration name (組態名稱) 資料欄中,選擇名稱旁的選項按鈕,然後選擇 Delete (刪除)。
-
-
在 Delete configuration (刪除組態) 確認方塊中,輸入
Delete
,然後選擇 Delete (刪除)。AWS Elemental MediaTailor 會移除組態。