用戶端廣告追蹤 - AWS Elemental MediaTailor

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

用戶端廣告追蹤

使用 AWS Elemental MediaTailor 用戶端追蹤API,您可以在串流工作流程中加入廣告插播期間的播放器控制 在用戶端追蹤中,播放器或用戶端會向廣告決策伺服器 (ADS) 和其他廣告驗證實體發出追蹤事件,例如曝光次數和四分位廣告指標。如需曝光次數和四分位廣告指標的詳細資訊,請參閱。用戶端指標如需有關ADS及其他廣告驗證實體的詳細資訊,請參閱用戶端廣告追蹤整合

用戶端追蹤可啟用如下功能:

使用用 MediaTailor 戶端追蹤API,您可以將中繼資料傳送至播放裝置,以啟用用戶端追蹤以外的功能:

啟用用戶端追蹤

您為每個工作階段啟用用戶端追蹤。播放程式會建立 MediaTailor 組態HTTPPOST的工作階段初始化前置詞端點。或者,播放器可以傳送額外的中繼資料,以 MediaTailor 便在進行廣告呼叫、呼叫資訊清單的來源,以及在工作階段層級叫用或停用 MediaTailor功能時使用。

下列範例顯示中JSON繼資料的結構:

{ "adsParams": { # 'adsParams' is case sensitive "param1": "value1", # key is not case sensitive "param2": "value2", # Values can contain spaces. For example, 'value 2' is an allowed value. }, "origin_access_token":"abc123", # this is an example of a query parameter designated for the origin "overlayAvails":"on" # 'overlayAvails' is case sensitive. This is an example of a feature that is enabled at the session level. }

使用主 MediaTailor 控台或設定API要ADS求範本URL以參照這些參數。在下列範例中,player_params.param1是的播放程式參數param1player_params.param2是的播放程式參數param2

https://my.ads.com/path?param1=[player_params.param1]&param2=[player_params.param2]

廣告伺服器參數

在結JSON構的最上層是一個adsParamsJSON對象。此物件內部是 MediaTailor 可以在所有工作階段要求中讀取並傳送至廣告伺服器的索引鍵/值組。 MediaTailor 支持以下廣告服務器:

  • 谷歌廣告管理

  • SpringServe

  • FreeWheel

  • 公开

原點互動查詢參數

JSON結構最上層內的任何保留索引鍵/值配對 (例如、adParamsavailSuppressionoverlayAvails、和) 都不會以查詢參數的形式新增至原始請求URL。對原點發出的每個會話清單請求都包含這些查詢參數。 MediaTailor 原點會忽略無關的查詢參數。例如, MediaTailor 可以使用鍵/值對將訪問令牌發送到原點。

工作階段設定的功能

使用階段作業初始化JSON結構來啟用、停用或覆寫 MediaTailor功能,例如overlayAvailsavailSuppression、和。adSignaling階段作業初始化期間傳遞的任何功能組態都會覆寫 MediaTailor 組態層級的設定。

注意

MediaTailor 在會話初始化時提交給的元數據是不可變的,並且在會話期間不能添加其他元數據。使用 SCTE -35 標記來攜帶會話期間更改的數據。如需詳細資訊,請參閱使用會話變量

範例 :執行的用戶端廣告追蹤 HLS
POST mediatailorURL/v1/session/hashed-account-id/origin-id/asset-id.m3u8 { "adsParams": { "deviceType": "ipad" # This value does not change during the session. "uid": "abdgfdyei-2283004-ueu" } }
範例 :執行的用戶端廣告追蹤 DASH
POST mediatailorURL/v1/session/hashed-account-id/origin-id/asset-id.mpd { "adsParams": { "deviceType": "androidmobile", "uid": "xjhhddli-9189901-uic" } }

一個成功的響應是HTTP200一個響應主體。主體包含帶有manifestUrltrackingUrl鍵的JSON對象。URLs這些值是播放器可用於播放和廣告事件追蹤用途的相對值。

{ "manifestUrl": "/v1/dashmaster/hashed-account-id/origin-id/asset-id.m3u8?aws.sessionId=session-id", "trackingUrl": "/v1/tracking/hashed-account-id/origin-id/session-id" }

如需用戶端追蹤結構描述的詳細資訊,請參閱用戶端廣告追蹤架構和屬性

用戶端追蹤的最佳做法

本節概述在中針對即時和VOD工作流程 MediaTailor 進行用戶端追蹤的最佳做法。

即時工作流

以符合每個目標持續時間或最短更新期間的HLS間隔輪詢追蹤端點DASH,以便永遠擁有最新的廣告追蹤中繼資料。在創意人員可能具有互動式或覆蓋元件的工作流程中,符合此間隔特別重要。

注意

有些玩家支援事件偵聽程式,可用作輪詢的替代方案。舉例來說,每個工作階段都必須啟用 MediaTailor 廣告 ID 裝飾功能。如需詳細資訊,請參閱廣告識別碼裝飾。使用此功能會在可用的每個廣告上放置一個日期範圍 (HLSDASH) 或事件元素 () 識別碼。玩家可以使用這些資訊清單標籤作為提示,以呼叫工作階段的 MediaTailor 追蹤端點。

VOD工作流

在成功的工作階段初始化之後, MediaTailor收到包含媒體的第一個資訊清單後,您只需要呼叫追蹤端點一次。

工作流VOD程的呼叫流程。在工作階段初始化並 MediaTailor 接收包含媒體的第一個資訊清單之後,呼叫用戶端追蹤端點。

通過廣告信標進行分頁 GetTracking

使用GetTracking端點來縮小傳回給播放器的廣告數量。舉例來說,如果資訊清單視窗很寬且跨越很多時間,傳回的廣告信標數量可能會影響玩家成效。

GetTracking傳回一個NextToken值,您可以透過分頁傳回的信標清單來縮小傳回的信標數目。您可以循環檢視這NextToken些值,以尋找廣告信標StartTimeInSeconds欄位的所需值。

  • 在第一次呼叫時GetTracking,會傳回落在資訊清單視窗中的所有可能廣告,包括每個廣告的NextToken和值。

  • 如果GetTracking請求包含NextToken,則會傳回資訊清單視窗中的所有廣告。

  • 如果GetTracking要求包含,NextToken但沒有要傳回的新信標,則會傳 MediaTailor 回您在原始要求上傳送的相同值。NextToken

  • 如果沒有其他與廣告對應的信標,請將該廣告從其回應中GetTracking移除。

  • 令牌在 24 小時後GetTracking過期。如果一個NextToken值大於 24 小時,下一次調用GetTracking返回一個空NextToken值。

GetTracking 來自玩家的廣義呼叫順序

從客戶端播放器中,GetTracking請求是一POST個請求主體,其中包含NextToken與令牌相關的廣告和信標。

https://YouMediaTailorUrl/v1/tracking { "NextToken": "value" . . . }

GetTracking與使用的一般順NextToken序如下:

  1. 撥打第一個電話給GetTracking

    返回所有廣告和信標以及後續呼叫的第一個NextToken

  2. 如果的值NextToken為 null,會 MediaTailor 傳回所有廣告信標。

  3. 如果NextToken已過期,則 MediaTailor 傳回傳HTTP回碼 400 錯誤訊息。

    打一個新的電話GetTracking來檢索有效的 NextToken s。

  4. 掃描整個回應,找StartTimeInSeconds出所需範圍內的廣告信標。

  5. 打一個新的呼叫GetTracking與所需的NextToken相關聯的值StartTimeInSeconds

  6. 如有必要,請在返回的廣告中再次循環播放,直到找到要播放的確切廣告為止。

擴展示例

此範例顯示如何使用 GetTracking's NextToken 來限制傳回給播放器的廣告信標數量。

MediaTailor 接收GetTracking請求。回應包含一則識別碼為 9935407 的廣告,以及兩個StartTimeInSeconds值為 52.286 和 48.332 秒的信標,如下圖所示。

使用多個廣告信標進行GetTrackingAPI端點處理的單一廣告範例

MediaTailor 發送JSON響應,NextToken如下所示:

{ "NextToken": JF57ITe48t1441mv7TmLKuZLroxDzfIslp6BiSNL1IJmzPVMDN0lqrBYycgMbKEb "avails": [ { "ads": [ { "adId": "9935407", "adVerifications": [], "companionAds": [], "creativeId": "", "creativeSequence": "", "duration": "PT15S", "durationInSeconds": 15, "extensions": [], "mediaFiles": { "mediaFilesList": [], "mezzanine": "" }, "startTime": "PT30S", "StartTimeInSeconds": 45, "trackingEvents": [ { "beaconUrls": [ "http://adserver.com/tracking?event=Impression " ], "duration": "PT0S", "durationInSeconds": 0, "eventId": "9935414", "eventType": "secondQuartile", "startTime": "PT52.286S", "StartTimeInSeconds": 52.286 }, { "beaconUrls": [ "http://adserver.com/tracking?event=firstQuartile" ], "duration": "PT0S", "durationInSeconds": 0, "eventId": "9935412", "eventType": "firstQuartile", "startTime": "PT48.332S", "StartTimeInSeconds": 48.332 } ], "vastAdId": "" } ], "startTime": "PT46.47S", "StartTimeInSeconds": 46.47 } ] }

在下一個GetTracking請求中, MediaTailor 回應NextToken值:JF57ITe48t1441mv7TmLKuZLroxDzfIslp6BiSNL1IJmzPVMDN0 lqrBYycg M bKEb。

MediaTailor 會回應符合上一次通話中StartTimeInSeconds所設定NextToken的廣告和信標。

假設現在的回應包含另一個識別碼為 9235407 的廣告,以及前一個識別碼為 9935407 的廣告。廣告識別碼 9235407 的信標具有 StartTimeInSeconds 132.41 和 70.339,如下圖所示。

供GetTrackingAPI端點處理的多個廣告範例 (每個廣告信標都有多個廣告信標)

MediaTailor 重複執行階段作業中的所有信標,以選取識別碼為 9235407 之廣告中StartTimeInSeconds超過 52.286 秒的信標 3 和信標 4:

{ "NextToken": ZkfknvbfsdgfbsDFRdffg12EdffecFRvhjyjfhdfhnjtsg5SDGN "avails": [ { "ads": [ { "adId": "9235407", "adVerifications": [], "companionAds": [], "creativeId": "", "creativeSequence": "", "duration": "PT15.816S", "durationInSeconds": 19.716, "extensions": [], "mediaFiles": { "mediaFilesList": [], "mezzanine": "" }, "startTime": "PT2M0S", "StartTimeInSeconds": 120.0, "trackingEvents": [ { "beaconUrls": [ "http://adserver.com/tracking?event=complete" ], "duration": "PT0S", "durationInSeconds": 0, "eventId": "8935414", "eventType": "firstQuartile", "startTime": "PT1M10.330S", "StartTimeInSeconds": 70.339 }, { "beaconUrls": [ "http://adserver.com/tracking?event=thirdQuartile" ], "duration": "PT0S", "durationInSeconds": 0, "eventId": "8935412", "eventType": "secondQuartile", "startTime": "PT2M12.41S", "StartTimeInSeconds": 132.41 } ], "vastAdId": "" }, ], "startTime": "PT36.47S", "StartTimeInSeconds": 36.47 } ] }