用戶端廣告追蹤 - AWS Elemental MediaTailor

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

用戶端廣告追蹤

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

用戶端追蹤會啟用下列功能:

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

啟用用戶端追蹤

您可以為每個工作階段啟用用戶端追蹤。播放器HTTPPOST會對 MediaTailor 組態的工作階段初始化字首端點進行 。或者,播放器可以傳送其他中繼資料 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 是 的播放器參數param1,而 player_params.param2是 的播放器參數param2

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

廣告伺服器參數

在JSON結構的最上層是adsParamsJSON物件。此物件內部是金鑰/值對, MediaTailor 可在所有工作階段請求中讀取並傳送至廣告伺服器。 MediaTailor 支援下列廣告伺服器:

  • Google Ad Manager

  • SpringServe

  • FreeWheel

  • Publica

原始伺服器互動查詢參數

JSON 結構最上層的任何預留索引鍵/值對,例如 adParamsavailSuppressionoverlayAvails,都不會URL以查詢參數的形式新增至原始伺服器請求。對原始伺服器 MediaTailor 提出的每個工作階段清單請求都包含這些查詢參數。原始伺服器會忽略外部查詢參數。例如, MediaTailor 可以使用金鑰/值對將存取權杖傳送至原始伺服器。

工作階段設定功能

使用工作階段初始化JSON結構來啟用、停用或覆寫 MediaTailor功能,例如 overlayAvailsavailSuppressionadSignaling。工作階段初始化期間傳遞的任何功能組態都會覆寫 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 裝飾功能。如需詳細資訊,請參閱廣告識別碼裝飾。使用此功能會將日期範圍 (HLS) 或事件元素 (DASH) 識別符放在可用中的每個廣告上。玩家可以使用這些資訊清單標籤作為呼叫工作階段 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傳回 null-value 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

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

  5. 對 進行新的呼叫,GetTracking其值為 與所需的 NextToken相關聯StartTimeInSeconds

  6. 如有必要,請再次循環瀏覽傳回的廣告,直到您找到要播放的確切廣告為止。

延伸範例

此範例示範如何使用 GetTrackingNextToken限制傳回至播放器的廣告信標數量。

MediaTailor 會收到GetTracking請求。回應包含 ID 為 9935407 的廣告,以及兩個StartTimeInSeconds值為 52.286 和 48.332 秒的信標。

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值:JF57ITe48t1441mv7TmLKuZLroxDzfIslp6BiSNL1IJmzPVMDN0lqrBYycgM bKEb。

MediaTailor 會回應與上一個呼叫中 中StartTimeInSeconds設定的 相符NextToken的廣告和信標。

假設現在回應包含 ID 為 9235407 的另一個廣告,以及 ID 為 9935407 的上一個廣告。廣告 ID 9235407 的信標具有 StartTimeInSecondss 132.41 和 70.339。

MediaTailor 在工作階段中的所有信標上反覆運算,以選取StartTimeInSeconds超過 52.286 秒的信標 3 和信標 4,其為 ID 為 9235407 的廣告:

{ "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 } ] }