View a markdown version of this page

故障排除和监控 - AWS Elemental MediaTailor

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

故障排除和监控

此页面可帮助您监控产量优化性能、诊断常见问题并验证您的配置是否正常运行。

指标

MediaTailor 发布了以下收益优化 CloudWatch 指标。除非另有说明,否则所有指标均以configurationName维度发布。

出价请求指标

指标 说明
YieldOptimization.BidRequest 当确定出价请求机会时,以 1 的形式发出。
YieldOptimization.BidResponse 收到成功的出价响应时作为 1 发出。
YieldOptimization.BidDuration 出价中请求的休息时长(秒),根据空闲时长减去主广告时长计算得出。
YieldOptimization.Latency Round-trip APS 的延迟以毫秒为单位。
YieldOptimization.NoBid 当 APS 返回 HTTP 204(没有匹配的需求)时,作为 1 发出。请求本身是有效的。
YieldOptimization.BidRequestThrottled 当 APS 返回 HTTP 429(已限制)时,作为 1 发出。APS 正在施加背压。重试前退一步。

广告插入指标

指标 说明
YieldOptimization.AdsInserted 插入 Availed 的 YO 广告数量。
YieldOptimization.AdsReturned BidResponse (筛选前)中返回的广告数量。仅在大于 0 时发出。
YieldOptimization.FilledDuration 时长 (ms) 由 YO 广告填充。
YieldOptimization.UnfilledDuration 在出价请求(机会间隔)中向 APS 发送的持续时间(毫秒)。
YieldOptimization.FillRate Per-avail 填充率:转码后的 YO 时长除以 YO 之前的未填充时长。分子经过转码,分母为 VAST-based (均不减去 bumper),因此该值可以超过 1.0。

收入和定价指标

指标 说明
YieldOptimization.Revenue 客户的总收入,来自 OrtB 出价回复的price属性。插入广告的价格总和。
YieldOptimization.IndicativeBidRevenue 所有返回的出价的每次曝光指示值的总和(每次展示的出价,而不是每次插入的出价)。 Dual-emitted 在弃用Revenue时段旁边,仪表板切换后将被删除。Revenue用于新仪表板。
YieldOptimization.BidPriceAdsInserted 收益优化插入的每个广告的每千次展示费用价格。按出价响应cur(货币)属性划分。不是按客户发放的,因此这是全账户范围的。
YieldOptimization.BidPriceAdsReturned 每个出价的 CPM 价格返回到 BidResponse (筛选到插入项之前)。尺寸由。cur不是按客户发放的,因此这是全账户范围的。

错误并跳过指标

指标 说明
YieldOptimization.Errors 对于连接错误、响应处理错误或意外异常,以 1 的形式发出。成功时也会作为 0 发出(使用 Sum,不是 SampleCount)。
YieldOptimization.Timeouts 当 APS 请求超时时以 1 的形式发出。成功时也会作为 0 发出(使用 Sum,不是 SampleCount)。
YieldOptimization.BidRequestConfigurationError 当模板或出价构造失败(缺少字段,JSON 无效)时,以 1 的形式发出。
YieldOptimization.SkipMinUnfilledDurationNotExceeded 由于未填充持续时间低于阈值而跳过 YO 时作为 1 发出。
YieldOptimization.SkipPersonalizationTimeoutExceeded 当由于剩余的个性化时间不足而跳过 YO 时作为 1 发出。
重要

YieldOptimization.ErrorsYieldOptimization.Timeouts并且在每次成功请求时作为 0 发出。使用 Sum (n SampleCount ot) in CloudWatch 来获取实际错误或超时次数。NoBid而且BidRequestThrottled不计算在内Errors。它们是合法的无需求和背压条件的单独信号。

日志事件

产量优化会在MidasMMSService/ads_interaction_log日志组中生成事件:

事件类型 说明
RAW_BID_REQUEST 发送给 APS 的完整 OpenRTB 出价请求 JSON。使用它来验证模板插值。
RAW_BID_RESPONSE 来自APS的原始OpenRTB出价回应,包括出价和VAST XML。
FILLED_AVAIL 所有广告都完全有用。YO 广告有fillMode: "YIELD_OPTIMIZATION"并包括bidIdbidPrice、currency、impressionId、和seatId。

错误事件由YieldOptimizationSupport、、MidasMMSService/application.logOrtbBidRequestBuilder和之类的记录器发出。HttpOrtbRequestSubmitter OrtbResponseProcessor

CloudWatch 见解查询示例

检查 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"额外的出价元数据:bidIdimpressionId、bidPrice、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)给出全账户的平均每千次展示费用。

  3. 时长已填满:Sum(YieldOptimization.FilledDuration)对照Sum(YieldOptimization.BidDuration)显示请求的持续时间中有多少实际已填满。

常见问题

收益优化未触发

症状 Check 解决方案
根本没有 YO 指标 你在播放配置上配置了吗? 在控制台或 API 中启用 YO。
SkipMinUnfilledDurationNotExceeded发出 主要 ADS 填补了大部分空缺 降低MinimumUnfilledDuration或接受初级填充量就足够了。
SkipPersonalizationTimeoutExceeded发出 主广告太慢了,没时间给 YO 优化主 ADS 延迟或检查个性化超时 SDC 配置。

出价请求失败

症状 Check 解决方案
BidRequestConfigurationError 指标 模板的必填字段缺失或为空 检查是否application.log存在特定错误(例如,app.bundle is required)。修复模板或确保玩家参数已发送。
来自 APS 的 HTTP 204 YieldOptimization.NoBid递增 APS 没有出价。不是错误。检查RAW_BID_REQUEST占位符值({UPPER_CASE}模式),验证捆绑包和商店网址是否真实且较低的出价。
来自 APS 的 HTTP 429 YieldOptimization.BidRequestThrottled递增 APS 正在节流。退回请求率。如果持续,请联系 APS 支持部门以提高 TPS 限制。
来自 APS 的 HTTP 400 请求 JSON 无效 请检查中的 APS 错误消息RAW_BID_RESPONSE。验证 JSON 结构是否符合 OpenRTB 规范。
500/503 来自 APS 的 HTTP APS 服务器错误或过载 暂时性问题。监控 YieldOptimization.Errors。如果持续,请联系 APS 支持部门。

广告已返回但未插入

症状 Check 解决方案
AdsReturned> 0 但是 AdsInserted = 0 广告在插入期间被过滤 检查FILLED_AVAIL日志中是否存在跳过的原因:广告素材重复、超过剩余阈值或未找到广告变体(转码未完成)。

APS 错误代码参考

代码 含义 常见原因
200 出价成功 工作正常。
204 不出价 该请求有效,但没有出价。这并不表示您的模板存在错误。
400 请求不正确 JSON 无效,缺少 OpenRTB 规范中的必填字段。
500 服务器错误 APS 内部问题、服务受限、超时。
503 服务超载 APS 背压。不要激进地重试。
429 受限 APS 已手动开始限制请求。如果持续,请联系 APS 支持部门。