本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
故障診斷和監控
此頁面可協助您監控產出最佳化效能、診斷常見問題,並驗證您的組態是否正常運作。
指標
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 儀表板:
-
增量填充率:
Sum(YieldOptimization.AdsInserted) / Sum(YieldOptimization.BidRequest)顯示插入廣告的 YO 機會百分比。或者,Average(YieldOptimization.FillRate)針對每個時段的原生指標使用 。 -
每小時營收:
Sum(YieldOptimization.Revenue)隨著時間的推移,顯示來自 YO 的每位客戶總營收。Sum(YieldOptimization.BidPriceAdsInserted)會提供帳戶範圍的平均 CPM。 -
填充持續時間:
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 支援。 |