本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
用戶端廣告追蹤
使用 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]
¶m2=[player_params.param2]
廣告伺服器參數
在JSON結構的最上層是adsParams
JSON物件。此物件內部是金鑰/值對, MediaTailor 可在所有工作階段請求中讀取並傳送至廣告伺服器。 MediaTailor 支援下列廣告伺服器:
-
Google Ad Manager
-
SpringServe
-
FreeWheel
-
Publica
原始伺服器互動查詢參數
JSON 結構最上層的任何預留索引鍵/值對,例如 adParams
、 availSuppression
和 overlayAvails
,都不會URL以查詢參數的形式新增至原始伺服器請求。對原始伺服器 MediaTailor 提出的每個工作階段清單請求都包含這些查詢參數。原始伺服器會忽略外部查詢參數。例如, MediaTailor 可以使用金鑰/值對將存取權杖傳送至原始伺服器。
工作階段設定功能
使用工作階段初始化JSON結構來啟用、停用或覆寫 MediaTailor功能,例如 overlayAvails
、 availSuppression
和 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
具有回應內文的 。內文包含具有 manifestUrl
和 trackingUrl
金鑰的JSON物件。這些值是播放器可用於播放和廣告事件追蹤目的URLs的相對值。
{ "manifestUrl": "/v1/
dash
master
/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,您只需呼叫追蹤端點一次。
使用 分頁廣告信標 GetTracking
使用GetTracking
端點來縮小傳回至播放器的廣告數量。例如,如果資訊清單視窗很寬,且跨越許多時間,傳回的廣告信標數目可能會影響玩家效能。
GetTracking
傳回一個NextToken
值,您可以透過分頁傳回的信標清單來縮小傳回信標的數量。您可以循環瀏覽這些NextToken
值,以尋找廣告信標StartTimeInSeconds
欄位的所需值。
-
在第一次呼叫 時
GetTracking
,會傳回資訊清單視窗中的所有可能廣告,包括每個廣告的NextToken
和 值。 如果
GetTracking
請求不包含NextToken
,則會傳回資訊清單視窗中的所有廣告。如果
GetTracking
請求包含 ,NextToken
但沒有要傳回的新信標, 會 MediaTailor 傳回您在原始請求上傳送NextToken
的相同值。當沒有更多與廣告對應的信標時, 會從其回應
GetTracking
中移除該廣告。權杖會在 24 小時後
GetTracking
過期。如果NextToken
值超過 24 小時,下次呼叫 會GetTracking
傳回 null-valueNextToken
。
GetTracking 來自播放器的 的廣義呼叫序列
從用戶端播放器,GetTracking
請求是POST具有請求內文的 ,其中包含與權杖相關的 NextToken
和廣告和信標。
https://YouMediaTailorUrl/v1/tracking { "NextToken": "value" . . . }
GetTracking
搭配 使用 的一般順序NextToken
如下:
第一次呼叫
GetTracking
。所有廣告和信標,以及
NextToken
後續呼叫的第一個 都會傳回。如果 的值
NextToken
為 null, 會 MediaTailor 傳回所有廣告信標。如果
NextToken
已過期, 會 MediaTailor 傳回HTTP傳回代碼 400 錯誤訊息。對 進行新的呼叫
GetTracking
,以擷取有效的NextToken
。掃描整個回應,尋找所需範圍內
StartTimeInSeconds
的廣告信標。對 進行新的呼叫,
GetTracking
其值為 與所需的NextToken
相關聯StartTimeInSeconds
。如有必要,請再次循環瀏覽傳回的廣告,直到您找到要播放的確切廣告為止。
延伸範例
此範例示範如何使用 GetTracking
來NextToken
限制傳回至播放器的廣告信標數量。
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 的信標具有 StartTimeInSeconds
s 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 } ] }