View a markdown version of this page

故障診斷和監控 - AWS Elemental MediaTailor

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

故障診斷和監控

此頁面可協助您監控產出最佳化效能、診斷常見問題,並驗證您的組態是否正常運作。

指標

MediaTailor 會發佈下列 CloudWatch 指標以進行產出最佳化。除非另有說明,否則所有指標都會以configurationName維度發出。

競價請求指標

指標 說明
YieldOptimization.BidRequest 當識別出出價請求機會時,發出為 1。
YieldOptimization.BidResponse 當收到成功的出價回應時,發出為 1。
YieldOptimization.BidDuration 出價中請求的中斷持續時間 (秒),從時段持續時間減去主要廣告持續時間計算得出。
YieldOptimization.Latency APS 的往返延遲,以毫秒為單位。
YieldOptimization.NoBid 當 APS 傳回 HTTP 204 (沒有相符的需求) 時發出為 1。請求本身有效。
YieldOptimization.BidRequestThrottled 當 APS 傳回 HTTP 429 (限流) 時發出為 1。APS 正在套用背壓。重試之前,請關閉 。

廣告插入指標

指標 說明
YieldOptimization.AdsInserted 插入時段的 YO 廣告數量。
YieldOptimization.AdsReturned BidResponse 中傳回的廣告數量 (篩選之前)。只有在大於 0 時發出。
YieldOptimization.FilledDuration YO 廣告填入的持續時間 (毫秒)。
YieldOptimization.UnfilledDuration 在競價請求中傳送至 APS 的持續時間 (毫秒) (機會差距)。
YieldOptimization.FillRate 每個時段填充率:轉碼 YO 持續時間除以預先 YO 未填充持續時間。分子經過轉碼,分母是以 VAST 為基礎 (不會減去緩衝),因此值可以超過 1.0。

營收和定價指標

指標 說明
YieldOptimization.Revenue 客戶的總收入,來源於 oRTB 出價回應的 price 屬性。插入廣告的價格總和。
YieldOptimization.IndicativeBidRevenue 所有 RETURNED 出價 (每個印模的出價,不是每個插入的出價) 的每個印模指示值。在棄用時段Revenue同時發出雙重 ,並在儀表板切換後移除。將 Revenue用於新的儀表板。
YieldOptimization.BidPriceAdsInserted Yield Optimization 插入的每個廣告的 CPM 價格。以競價回應 cur(貨幣) 屬性為維度。每個客戶不發出,因此這是整個帳戶。
YieldOptimization.BidPriceAdsReturned BidResponse 中傳回的每個出價的 CPM 價格 (在篩選插入之前)。維度為 cur。每個客戶不發出,因此這是整個帳戶。

錯誤並略過指標

指標 說明
YieldOptimization.Errors 因連線錯誤、回應處理錯誤或非預期例外狀況而發出為 1。成功時也會發出為 0 (使用總和,而非 SampleCount)。
YieldOptimization.Timeouts 當 APS 請求逾時時,發出為 1。成功時也會發出為 0 (使用總和,而非 SampleCount)。
YieldOptimization.BidRequestConfigurationError 當範本或競價建構失敗 (缺少欄位、無效的 JSON) 時,發出為 1。
YieldOptimization.SkipMinUnfilledDurationNotExceeded 當因未填充持續時間低於閾值而略過 YO 時,發出為 1。
YieldOptimization.SkipPersonalizationTimeoutExceeded 當因個人化時間不足而略過 YO 時,會發出為 1。
重要

YieldOptimization.Errors 每個成功請求的 和 YieldOptimization.Timeouts 都會發出為 0。在 CloudWatch 中使用總和 (非 SampleCount) 來取得實際錯誤或逾時計數。 NoBid和 BidRequestThrottled 不會計入 中Errors。它們是合法的無需求和背壓條件的個別訊號。

日誌事件

Yield Optimization 會在MidasMMSService/ads_interaction_log日誌群組中產生事件:

事件類型 說明
RAW_BID_REQUEST 傳送至 APS 的完整 OpenRTB 競價請求 JSON。使用此項目來驗證範本插補。
RAW_BID_RESPONSE APS 的原始 OpenRTB 出價回應,包括出價和 VAST XML。
FILLED_AVAIL 包含所有廣告的完整時段。YO 廣告包含 fillMode: "YIELD_OPTIMIZATION" bidId、bidPrice、impressionId、 currency和 seatId。

錯誤事件會在 中使用MidasMMSService/application.log記錄器發出OrtbBidRequestBuilder,例如 YieldOptimizationSupport、HttpOrtbRequestSubmitter、 和 OrtbResponseProcessor。

CloudWatch Insights 查詢範例

檢查 YO 錯誤

fields @timestamp, message.sessionId, message.message, log.logger, log.level | filter message.awsAccountId = 'YOUR_ACCOUNT_ID' and (log.level = 'ERROR' or log.level = 'WARN') and (log.logger like /YieldOptimization/ or log.logger like /OrtbResponseProcessor/ or log.logger like /HttpOrtbRequestSubmitter/ or log.logger like /OrtbBidRequestBuilder/) | sort @timestamp desc | limit 100

日誌群組: MidasMMSService/application.log

計數出價請求與回應

fields @timestamp, sessionId, eventType | filter awsAccountId = 'YOUR_ACCOUNT_ID' and (eventType = 'RAW_BID_REQUEST' or eventType = 'RAW_BID_RESPONSE') | stats count(*) by eventType

日誌群組: MidasMMSService/ads_interaction_log

在填滿時段中尋找 YO 廣告

每個FILLED_AVAIL事件都包含creativeAds陣列。該陣列內的 YO 廣告承載fillMode: "YIELD_OPTIMIZATION"和其他出價中繼資料:bidId、impressionIdbidPrice、、 seatId和 currency。使用此項目來查看 YO 填充了哪些時段、每個時段插入了多少個 YO 廣告,以及每個出價的收入歸因。

fields @timestamp, sessionId, avail.availId, avail.numAds, avail.fillRate, avail.filledDuration | filter awsAccountId = 'YOUR_ACCOUNT_ID' and eventType = 'FILLED_AVAIL' and @message like /YIELD_OPTIMIZATION/ | sort @timestamp desc | limit 50

若要提取特定工作階段的個別 YO 廣告項目 (競價 ID 和價格):

fields @timestamp, sessionId, avail.availId, avail.creativeAds | filter awsAccountId = 'YOUR_ACCOUNT_ID' and eventType = 'FILLED_AVAIL' and sessionId = 'YOUR_SESSION_ID' | sort @timestamp desc | limit 20

針對 的項目,篩選產生的creativeAds陣列用戶端fillMode == "YIELD_OPTIMIZATION"。

日誌群組: MidasMMSService/ads_interaction_log

檢查未解決的範本變數

fields @timestamp, sessionId, @message | filter awsAccountId = 'YOUR_ACCOUNT_ID' and eventType = 'RAW_BID_REQUEST' and @message like /\{[A-Z_]+\}/ | sort @timestamp desc | limit 20

日誌群組: MidasMMSService/ads_interaction_log

測量 YO 延遲和成功率

fields @timestamp, @message | filter customerId = 'YOUR_ACCOUNT_ID' and (@message like /YieldOptimization/ or @message like /ortb_/) | limit 10000

日誌群組: MidasMMSService/service_log

注意

service_log 會針對帳戶 ID 欄位使用 customerId(而非 awsAccountId)。

計算收益提升

若要測量收益最佳化對營收的影響,請使用下列項目建立 CloudWatch 儀表板:

  1. 增量填充率:Sum(YieldOptimization.AdsInserted) / Sum(YieldOptimization.BidRequest)顯示插入廣告的 YO 機會百分比。或者,Average(YieldOptimization.FillRate)針對每個時段的原生指標使用 。

  2. 每小時營收:Sum(YieldOptimization.Revenue)隨著時間的推移,顯示來自 YO 的每位客戶總營收。 Sum(YieldOptimization.BidPriceAdsInserted)會提供帳戶範圍的平均 CPM。

  3. 填充持續時間:Sum(YieldOptimization.FilledDuration)針對 Sum(YieldOptimization.BidDuration)顯示實際填充的請求持續時間。

常見問題

未觸發的產出最佳化

徵狀 Check Resolution
完全沒有 YO 指標 是否在播放組態上設定 YO? 在主控台或 API 中啟用 YO。
SkipMinUnfilledDurationNotExceeded 發出 主要 ADS 正在填補大部分的休息時間 降低MinimumUnfilledDuration或接受主填充已足夠。
SkipPersonalizationTimeoutExceeded 發出 主要 ADS 太慢,沒有時間用於 YO 最佳化主要 ADS 延遲或檢查個人化逾時 SDC 組態。

競價請求失敗

徵狀 Check Resolution
BidRequestConfigurationError 指標 範本有遺失或空白的必要欄位 檢查application.log特定錯誤 (例如 app.bundle is required)。修正範本或確保傳送玩家參數。
來自 APS 的 HTTP 204 YieldOptimization.NoBid 遞增 APS 傳回無出價。不是錯誤。檢查RAW_BID_REQUEST預留位置值 ({UPPER_CASE} 模式),確認 bundle 和 storeurl 是真實、較低的 bidfloor。
來自 APS 的 HTTP 429 YieldOptimization.BidRequestThrottled 遞增 APS 正在調節。退避請求率。如果持續存在,請聯絡 APS 支援以提高 TPS 限制。
來自 APS 的 HTTP 400 無效的請求 JSON 檢查 中的 APS 錯誤訊息RAW_BID_RESPONSE。驗證 JSON 結構符合 OpenRTB 規格。
從 APS 的 HTTP 500/503 APS 伺服器錯誤或過載 暫時性問題。監控 YieldOptimization.Errors。如果持續存在,請聯絡 APS 支援。

傳回但未插入的廣告

徵狀 Check Resolution
AdsReturned > 0 但 AdsInserted = 0 插入期間篩選的廣告 檢查FILLED_AVAIL日誌是否有略過原因:重複的創作、超過剩餘閾值,或找不到廣告變體 (轉碼未完成)。

APS 錯誤代碼參考

Code 意義 常見原因
200 成功出價 正常運作。
204 無出價 請求有效,但沒有可用的競價。這並不表示您的範本中發生錯誤。
400 錯誤的請求 無效的 JSON,每個 OpenRTB 規格缺少必要欄位。
500 伺服器錯誤 APS 內部問題、服務已調節、逾時。
503 服務過載 APS 背壓。請勿積極重試。
429 受節制 APS 已手動開始調節請求。如果持續存在,請聯絡 APS 支援。