本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
用戶端廣告追蹤
使用 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
是的播放程式參數param1
,player_params.param2
是的播放程式參數param2
。
https://my.ads.com/path?
param1=[player_params.param1]
¶m2=[player_params.param2]
廣告伺服器參數
在結JSON構的最上層是一個adsParams
JSON對象。此物件內部是 MediaTailor 可以在所有工作階段要求中讀取並傳送至廣告伺服器的索引鍵/值組。 MediaTailor 支持以下廣告服務器:
-
谷歌廣告管理
-
SpringServe
-
FreeWheel
-
公开
原點互動查詢參數
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 裝飾功能。如需詳細資訊,請參閱廣告識別碼裝飾。使用此功能會在可用的每個廣告上放置一個日期範圍 (HLSDASH) 或事件元素 () 識別碼。玩家可以使用這些資訊清單標籤作為提示,以呼叫工作階段的 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
序如下:
撥打第一個電話給
GetTracking
。返回所有廣告和信標以及後續呼叫的第一個
NextToken
。如果的值
NextToken
為 null,會 MediaTailor 傳回所有廣告信標。如果
NextToken
已過期,則 MediaTailor 傳回傳HTTP回碼 400 錯誤訊息。打一個新的電話
GetTracking
來檢索有效的NextToken
s。掃描整個回應,找
StartTimeInSeconds
出所需範圍內的廣告信標。打一個新的呼叫
GetTracking
與所需的NextToken
相關聯的值StartTimeInSeconds
。如有必要,請在返回的廣告中再次循環播放,直到找到要播放的確切廣告為止。
擴展示例
此範例顯示如何使用 GetTracking
's NextToken
來限制傳回給播放器的廣告信標數量。
MediaTailor 接收GetTracking
請求。回應包含一則識別碼為 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
值:JF57ITe48t1441mv7TmLKuZLroxDzfIslp6BiSNL1IJmzPVMDN0 lqrBYycg M bKEb。
MediaTailor 會回應符合上一次通話中StartTimeInSeconds
所設定NextToken
的廣告和信標。
假設現在的回應包含另一個識別碼為 9235407 的廣告,以及前一個識別碼為 9935407 的廣告。廣告識別碼 9235407 的信標具有 StartTimeInSeconds
132.41 和 70.339,如下圖所示。
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 } ] }