用户端追蹤 - AWS Elemental MediaTailor

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

用户端追蹤

藉助用户端報告,AWS ElementalMediaTailor代理用户端播放器的廣告追蹤 URL。播放器接著會執行所有的廣告追蹤活動。

用戶端報告可啟用如下的功能:

  • 拖曳行為,瀏覽者可在播放列上移動游標來拖曳視訊。

  • 需要播放器開發的進階播放行為,例如在廣告時段上沒有略過快轉和倒數計時器。

使用用戶端報告進行 VPAID 功能。如需詳細資訊,請參閱 VPAILD 要求。用戶端報告回應中,包含了 VPAID 製作相關的額外中繼資料。

執行用戶端廣告報告

  1. 在播放器上,為 AWS Elemental 的會話初始化請求建構 JSON 消息正文MediaTailor:

    • 提供 MediaTailor 應該傳遞到 adsParams 物件內部 ADS 的參數。這些參數與 MediaTailor 組態的 ADS 範本 URL 中的 [player_params.param] 設定對應。

    • 提供您要 MediaTailor 傳送至原始伺服器做為頂層物件的參數。

    範例:HLS

    POST master.m3u8 { "adsParams": { "deviceType": "ipad" } }

    範例:DASH

    POST manifest.mpd { "adsParams": { "deviceType": "ipad" } }

    如需有關提供動態廣告變數的詳細資訊,請參閱在 AWS Elemental 中使用動態廣告變量 MediaTailor

  2. 從播放器,使用您建構的 JSON 來初始化新的 MediaTailor 播放工作階段。使用如下格式設定您的請求。

    POST <mediatailorURL>/v1/session/<hashed-account-id>/<origin-id>/<asset-id> { "adsParams": { "param1": "value1", "param2": "value2", "param3": "value3" } }

    AWS ElementalMediaTailor會回覆包含兩種相關的 URL 的請求,一個是用於資訊清單,另一個是用於追蹤端點:

    • 資訊清單 — 用於檢索內容資訊清單和廣告片段

      範例:HLS

      /v1/master/<hashed-account-id>/<origin-id>/<asset-id>?aws.sessionId=<session>

      範例:DASH

      /v1/dash/<hashed-account-id>/<origin-id>/<asset-id>?aws.sessionId=<session>
    • 追蹤 — 用於輪詢即將播放的廣告時段

      範例

      /v1/tracking/<hashed-account-id>/<origin-id>/<session>
  3. 在來自 MediaTailor 的相對 URL 的字首加上 <mediatailorURL>,建構完整的資訊清單和追蹤 URL。

  4. 將播放器設定為定期輪詢追蹤 URL,並據以管理廣告時段。輪詢頻率足以滿足您的報告要求。如果您沒有設定的要求,請輪詢至少要每個清單持續時間一次。例如,如果資訊清單是 10 分鐘的滾動式時段,則每 5 分鐘輪詢追蹤 URL。MediaTailor會保留中導追蹤資料,直到所有對應的區段都不在資訊清單時段內為止。

    當廣告發佈時,來自 AWS 元素的響應MediaTailor包含 JSON 物件,該物件會指定廣告時段的時間位移。這類位移會與播放器初始化工作階段時的時間點保持相對關係。以程式設計方式設定播放器中行為時,就能使用這些位移,例如阻止觀眾略過這些廣告。此回應也包含持續時間、計時和識別資訊。

    來自 MediaTailor 的回應可以包含以下值:

    • adId:使用 HLS 時,與廣告開頭關聯的序號。使用 DASH 時,廣告期間的 ID。

    • adParameters:VIST VPAIT VPAIT 發出廣告參數的字串,即 AWS ElementalMediaTailor傳遞給玩家。

    • adSystem:提供廣告的系統名稱。

    • adTitle:廣告的標題。

    • adVerifications:包含執行第三方測量代碼以驗證製作播放所需的資源和中繼資料。如需有關 adVerifications 元素的詳細資訊,請參閱 VAST 4.2 規格,第 3.16 節。

    • apiFramework:將此設為 VPAID 可告知播放器這是一個 VPAID 廣告。

    • availId:使用 HLS 時,與廣告時段開始關聯的序號。使用 DASH 時,廣告時段的期間 ID,通常是指是要替換廣告之內容的期間 ID。

    • beaconUrls:傳送每個廣告信標的位置。

    • bitrate:視訊資產的位元率。可執行檔資產一般不會包含這個值。

    • companionAds:一或多個配套廣告內容規格,每個均指定要使用的資源檔案。配套廣告會伴隨著廣告時段,並用於提供內容 (如顯示在廣告週圍的外框或顯示在靠近影片處的橫幅)。

    • creativeId:廣告的 Creative 標籤的 Id 屬性。

    • delivery:這會指出使用的通訊協定,並可設定為 progressivestreaming

    • duration:採用 ISO 8601 秒數格式的長度。此回應會包含整段廣告時段、每個廣告及信標的持續長度 (儘管信標持續時間絕對是零)。處理 VPAILD 要求 時,傳達的持續時間是 MP4 場記板持續時間。因為轉碼器和片段持續時間組態,這段持續時間通常會較透過 VAST 傳遞之 XML 持續時間稍微長些。您可以將其解釋為可採用 VPAID 廣告填補,而不會造成位移的最長時間。

    • durationInSeconds:採用秒數格式的長度。此回應會包含整段廣告時段、每個廣告及信標的持續長度 (儘管信標持續時間絕對是零)。

    • eventId:處理 HLS 時,與該信標相關聯的序號。處理 DASH 時,廣告開頭的 ptsTime

    • eventType:信標類型。

    • extensions:廣告伺服器可於 VAST 的自訂擴充功能使用 extensions。如需有關 extensions 元素的詳細資訊,請參閱 VAST 4.2 規格,第 3.18 節。

    • height:視訊資產的高度。

    • maintainAspectRatio:指示是否在縮放大小時保持長寬比。

    • mediaFilesList:指定播放器針對廣告時段所需的影片和其他資產。

    • mediaFileUri:指向可執行檔資產或影片資產的 URI。範例:https://myad.com/ad/ad134/vpaid.js

    • mediaTypeJavaScriptFlash 一般表示可執行檔資產。

    • mezzanine:指定 Mezzanine MP4 資產,如果 VPAID 廣告中有包含這類資產。範例:https://gcdn.2mdn.net/videoplayback/id/itag/ck2/file/file.mp4

    • scalable:指示是否要將影片縮放成其他尺寸。

    • skipoffset:識別何時跳過控制項可供使用者使用的時間值。

    • startTime:採用 ISO 8601 秒數格式、相對於播放工作階段開始的時間配置。回應中包含整段廣告時段、每則廣告與信標所要使用的開始時間。

    • startTimeInSeconds:採用秒數格式、相對於播放工作階段開始的時間配置。回應中包含整段廣告時段、每則廣告與信標所要使用的開始時間。

    • vastAdId: Ad 標籤的 Id 屬性。

    • width:視訊資產的寬度。

    以下回應範例指示廣告即將播放。

    { "avails": [ { "ads": [ { "adId": "8104385", "duration": "PT15.100000078S", "durationInSeconds": 15.1, "startTime": "PT17.817798612S", "startTimeInSeconds": 17.817, "trackingEvents": [ { "beaconUrls": [ "http://exampleadserver.com/tracking?event=impression" ], "duration": "PT15.100000078S", "durationInSeconds": 15.1, "eventId": "8104385", "eventType": "impression", "startTime": "PT17.817798612S", "startTimeInSeconds": 17.817 }, { "beaconUrls": [ "http://exampleadserver.com/tracking?event=start" ], "duration": "PT0S", "durationInSeconds": 0.0, "eventId": "8104385", "eventType": "start", "startTime": "PT17.817798612S", "startTimeInSeconds": 17.817 }, { "beaconUrls": [ "http://exampleadserver.com/tracking?event=firstQuartile" ], "duration": "PT0S", "durationInSeconds": 0.0, "eventId": "8104386", "eventType": "firstQuartile", "startTime": "PT21.592798631S", "startTimeInSeconds": 21.592 }, { "beaconUrls": [ "http://exampleadserver.com/tracking?event=midpoint" ], "duration": "PT0S", "durationInSeconds": 0.0, "eventId": "8104387", "eventType": "midpoint", "startTime": "PT25.367798651S", "startTimeInSeconds": 25.367 }, { "beaconUrls": [ "http://exampleadserver.com/tracking?event=thirdQuartile" ], "duration": "PT0S", "durationInSeconds": 0.0, "eventId": "8104388", "eventType": "thirdQuartile", "startTime": "PT29.14279867S", "startTimeInSeconds": 29.142 }, { "beaconUrls": [ "http://exampleadserver.com/tracking?event=complete" ], "duration": "PT0S", "durationInSeconds": 0.0, "eventId": "8104390", "eventType": "complete", "startTime": "PT32.91779869S", "startTimeInSeconds": 32.917 } ] } ], "availId": "8104385", "duration": "PT15.100000078S", "durationInSeconds": 15.1, "startTime": "PT17.817798612S", "startTimeInSeconds": 17.817 } ] }
    { "avails": [ { "ads": [ { "adId": "6744037", "mediaFiles": { "mezzanine": "https://gcdn.2mdn.net/videoplayback/id/itag/ck2/file/file.mp4", "mediaFilesList": [ { "mediaFileUri": "https://myad.com/ad/ad134/vpaid.js", "delivery": "progressive", "width": 176, "height": 144, "mediaType": "application/javascript", "scalable": false, "maintainAspectRatio": false, "apiFramework": "VPAID" }, { "mediaFileUri": "https://myad.com/ad/ad134/file.mp4", "delivery": "progressive", "width": 640, "height": 360, "mediaType": "video/mp4", "scalable": false, "maintainAspectRatio": false }, ... ], "adParameters": "[{'ads':[{"url":"https://myads/html5/media/LinearVPAIDCreative.mp4","mimetype":"video/mp4"]}]", "duration": "PT15.066667079S", "durationInSeconds": 15.066, "startTime": "PT39.700000165S", "startTimeInSeconds": 39.7, "trackingEvents": [ { "beaconUrls": [ "https://beaconURL.com" ], "duration": "PT15.066667079S", "durationInSeconds": 15.066, "eventId": "6744037", "eventType": "impression", "startTime": "PT39.700000165S", "startTimeInSeconds": 39.7 }, ... ] } }, ... ], "availId": "6744037", "duration": "PT45.166667157S", "durationInSeconds": 45.166, "startTime": "PT39.700000165S", "startTimeInSeconds": 39.7 } ] }
    { "avails": [ { "ads": [ { "adId": "3348173", "adParameters": null, "adVerifications": [ { "vendor": "vendor1", "javaScriptResource": [{ "apiFramework": "omid", "browserOptional": "true", "uri": "https://verificationcompany1.com/verification_script1.js" }], "verificationParameters": "" }, { "vendor": "vendor2", "executableResource": [{ "apiFramework": "omid", "type": "exe", "uri": "https://verificationcompany.com/untrusted.exe" }], "trackingEvents": [ { "event": "verificationNotExecuted", "uri": "https://verificationcompany/comdkvkasfakj" } ] } ], "companionAds": [ { "sequence": "", "attributes": { "width": "REQUIRED", "height": "REQUIRED", "id": "", "assetWidth": "", "assetHeight": "", "expandedWidth": "", "expandedHeight": "", "apiFramework": "", "adSlotId": "", "pxratio": "", "renderingMode": "" }, "staticResource": "", "iFrameResource": "", "htmlResource": "<![CDATA[<!doctype html><html><head><meta name=\"viewport\" content=\"width=1, initial-scale=1.0, minimum-scale=1. 0, . . . ]]>", "adParameters": "", "altText": "", "companionClickThrough": "", "companionClickTracking": "", "trackingEvents": [ { "tracking": {} } ] } ] "extensions": [ { "extension": { "type": "", "content": "" } } ], "duration": "PT12.700001178S", "durationInSeconds": 12.7, "mediaFiles": null, "startTime": "PT1M56.060003037S", "startTimeInSeconds": 116.06, "trackingEvents": [], } ], "availId": "3348173", "duration": "PT12.700001178S", "durationInSeconds": 12.7, "startTime": "PT1M56.060003037S", "startTimeInSeconds": 116.06 } ] }