本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
故障排除和监控
此页面可帮助您监控产量优化性能、诊断常见问题并验证您的配置是否正常运行。
指标
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 仪表板:
-
增量填充率:
Sum(YieldOptimization.AdsInserted) / Sum(YieldOptimization.BidRequest)显示插入 YO 机会的百分比。或者,Average(YieldOptimization.FillRate)用于按使用率的原生指标。 -
每小时收入:一段
Sum(YieldOptimization.Revenue)时间内显示来自YO的每位客户的总收入。Sum(YieldOptimization.BidPriceAdsInserted)给出全账户的平均每千次展示费用。 -
时长已填满:
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 支持部门。 |