As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Solução de problemas e monitoramento
Esta página ajuda você a monitorar o desempenho do Yield Optimization, diagnosticar problemas comuns e validar se sua configuração está funcionando corretamente.
Metrics
MediaTailor publica as seguintes CloudWatch métricas para otimização de rendimento. Todas as métricas são emitidas com uma configurationName dimensão, a menos que indicado de outra forma.
Métricas de solicitação de lance
| Métrica | Description |
|---|---|
YieldOptimization.BidRequest |
Emitido como 1 quando uma oportunidade de solicitação de oferta é identificada. |
YieldOptimization.BidResponse |
Emitido como 1 quando uma resposta de lance bem-sucedida é recebida. |
YieldOptimization.BidDuration |
A duração do intervalo (segundos) solicitada no lance, calculada a partir da duração do aproveitamento menos a duração do anúncio principal. |
YieldOptimization.Latency |
Round-trip latência para APS em milissegundos. |
YieldOptimization.NoBid |
Emitido como 1 quando APS retorna HTTP 204 (sem demanda correspondente). A solicitação em si era válida. |
YieldOptimization.BidRequestThrottled |
Emitido como 1 quando APS retorna HTTP 429 (limitado). APS está aplicando contrapressão. Recue antes de tentar novamente. |
Métricas de inserção de anúncios
| Métrica | Description |
|---|---|
YieldOptimization.AdsInserted |
Número de anúncios YO inseridos no site disponível. |
YieldOptimization.AdsReturned |
Número de anúncios retornados no BidResponse (antes da filtragem). Emitido somente quando maior que 0. |
YieldOptimization.FilledDuration |
Duração (ms) preenchida pelos anúncios YO. |
YieldOptimization.UnfilledDuration |
Duração (ms) enviada à APS na solicitação de licitação (lacuna de oportunidade). |
YieldOptimization.FillRate |
Per-avail taxa de preenchimento: duração transcodificada do YO dividida pela duração não preenchida do pré-YO. O numerador é transcodificado e o denominador é VAST-based (nenhum subtrai o para-choque), então o valor pode exceder 1,0. |
Métricas de receita e preços
| Métrica | Description |
|---|---|
YieldOptimization.Revenue |
Receita total do cliente, proveniente do price atributo da resposta do lance ou tB. Soma do preço em todos os anúncios inseridos. |
YieldOptimization.IndicativeBidRevenue |
Valor indicativo somado por impressão de todos os lances DEVOLVIDOS (preço do lance por impressão, não por inserção). Dual-emitted ao lado Revenue durante uma janela de descontinuação e serão removidos quando os painéis forem cortados. Use Revenue para novos painéis. |
YieldOptimization.BidPriceAdsInserted |
O preço do CPM de cada anúncio inserido pela Yield Optimization. Dimensionado pelo atributo de resposta do lance cur (moeda). Não é emitido por cliente, então isso é para toda a conta. |
YieldOptimization.BidPriceAdsReturned |
O preço do CPM de cada lance retornado no BidResponse (antes da filtragem para inserções). Dimensionado porcur. Não é emitido por cliente, então isso é para toda a conta. |
Métricas de erro e salto
| Métrica | Description |
|---|---|
YieldOptimization.Errors |
Emitido como 1 para erros de conexão, erros de processamento de resposta ou exceções inesperadas. Também emitido como 0 em caso de sucesso (use Sum, não SampleCount). |
YieldOptimization.Timeouts |
Emitido como 1 quando a solicitação APS atinge o tempo limite. Também emitido como 0 em caso de sucesso (use Sum, não SampleCount). |
YieldOptimization.BidRequestConfigurationError |
Emitido como 1 quando a construção do modelo ou do lance falha (campos ausentes, JSON inválido). |
YieldOptimization.SkipMinUnfilledDurationNotExceeded |
Emitido como 1 quando YO foi ignorado porque a duração não preenchida estava abaixo do limite. |
YieldOptimization.SkipPersonalizationTimeoutExceeded |
Emitido como 1 quando o YO foi ignorado porque o tempo de personalização permaneceu insuficiente. |
Importante
YieldOptimization.Errorse YieldOptimization.Timeouts são emitidos como 0 em cada solicitação bem-sucedida. Use Sum (not SampleCount) in CloudWatch para obter o erro real ou a contagem de tempo limite. NoBide NÃO BidRequestThrottled são contadosErrors. Eles são sinais separados para condições legítimas de contrapressão e sem demanda.
Eventos de log
A otimização de rendimento gera eventos no grupo de MidasMMSService/ads_interaction_log registros:
| Tipo de evento | Description |
|---|---|
RAW_BID_REQUEST |
A solicitação de licitação completa do OpenRTB JSON enviada à APS. Use isso para verificar a interpolação do modelo. |
RAW_BID_RESPONSE |
A resposta bruta de lance do OpenRTB da APS, incluindo preços de lances e VAST XML. |
FILLED_AVAIL |
O pacote completo está disponível em todos os anúncios. Os anúncios YO têm fillMode:
"YIELD_OPTIMIZATION" e incluem bidId bidPrice currencyimpressionId,, seatId e. |
Os eventos de erro são emitidos MidasMMSService/application.log com registradores comoYieldOptimizationSupport, OrtbBidRequestBuilderHttpOrtbRequestSubmitter, e. OrtbResponseProcessor
Exemplos de consultas do CloudWatch Insights
Verifique se há erros de 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
Grupo de registros: MidasMMSService/application.log
Conte as solicitações de lance versus as respostas
fields @timestamp, sessionId, eventType | filter awsAccountId = 'YOUR_ACCOUNT_ID' and (eventType = 'RAW_BID_REQUEST' or eventType = 'RAW_BID_RESPONSE') | stats count(*) by eventType
Grupo de registros: MidasMMSService/ads_interaction_log
Encontre anúncios YOU em todos os disponíveis
Cada FILLED_AVAIL evento contém uma creativeAds matriz. Os anúncios YO dentro dessa matriz contêm fillMode: "YIELD_OPTIMIZATION" metadados de lance adicionais: bidIdimpressionId,bidPrice,seatId, e. currency Use isso para ver quais disponibilidades foram preenchidas pelo YO, quantos anúncios YO foram inseridos por disponibilidade e a atribuição de receita por lance.
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
Para obter as entradas individuais de anúncios YO (códigos de lance e preços) para uma sessão específica:
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
Filtre a creativeAds matriz resultante do lado do cliente para entradas onde. fillMode == "YIELD_OPTIMIZATION"
Grupo de registros: MidasMMSService/ads_interaction_log
Verifique se há variáveis de modelo não resolvidas
fields @timestamp, sessionId, @message | filter awsAccountId = 'YOUR_ACCOUNT_ID' and eventType = 'RAW_BID_REQUEST' and @message like /\{[A-Z_]+\}/ | sort @timestamp desc | limit 20
Grupo de registros: MidasMMSService/ads_interaction_log
Meça a latência e a taxa de sucesso do YO
fields @timestamp, @message | filter customerId = 'YOUR_ACCOUNT_ID' and (@message like /YieldOptimization/ or @message like /ortb_/) | limit 10000
Grupo de registros: MidasMMSService/service_log
nota
service_logusa customerId (nãoawsAccountId) para o campo ID da conta.
Calculando o aumento de rendimento
Para medir o impacto da otimização do rendimento na receita, crie um CloudWatch painel com:
-
Taxa de preenchimento incremental:
Sum(YieldOptimization.AdsInserted) / Sum(YieldOptimization.BidRequest)mostra qual porcentagem de oportunidades de YO resultam em anúncios inseridos. Como alternativa, useAverage(YieldOptimization.FillRate)para a métrica nativa por disponibilidade. -
Receita por hora:
Sum(YieldOptimization.Revenue)ao longo do tempo, mostra a receita total por cliente de YO.Sum(YieldOptimization.BidPriceAdsInserted)fornece CPM médio em toda a conta. -
Duração preenchida:
Sum(YieldOptimization.FilledDuration)contraSum(YieldOptimization.BidDuration)mostra quanto da duração solicitada foi realmente preenchida.
Problemas comuns
A otimização de rendimento não é acionada
| Sintomas | Verificar | Resolução |
|---|---|---|
| Nenhuma métrica de YO | O YO está configurado na configuração de reprodução? | Ative o YO no console ou na API. |
SkipMinUnfilledDurationNotExceededemitindo |
O ADS primário está preenchendo a maior parte do intervalo | MinimumUnfilledDurationDiminuir ou aceitar que o preenchimento primário é suficiente. |
SkipPersonalizationTimeoutExceededemitindo |
O ADS primário é muito lento, não deixando tempo para YO | Otimize a latência primária do ADS ou verifique a configuração do SDC do tempo limite de personalização. |
Falha nas solicitações de lance
| Sintomas | Verificar | Resolução |
|---|---|---|
Métrica do BidRequestConfigurationError |
O modelo tem campos obrigatórios ausentes ou vazios | application.logVerifique o erro específico (por exemplo,app.bundle is required). Corrija o modelo ou garanta que os parâmetros do jogador sejam enviados. |
| HTTP 204 da APS | YieldOptimization.NoBidincrementando |
APS retornou sem licitação. Não é um erro. Inspecione RAW_BID_REQUEST os valores do espaço reservado ({UPPER_CASE}padrões), verifique se o pacote e o URL da loja são reais, diminua o lance mínimo. |
| HTTP 429 da APS | YieldOptimization.BidRequestThrottledincrementando |
APS está acelerando. Reduza a taxa de solicitação. Se persistente, entre em contato com o suporte do APS para aumentar os limites de TPS. |
| HTTP 400 da APS | Solicitação JSON inválida | Verifique a mensagem de erro do APS emRAW_BID_RESPONSE. Verifique se a estrutura JSON corresponde à especificação do OpenRTB. |
| HTTP 500/503 do APS | Erro ou sobrecarga do servidor APS | Problema transitório. Monitorar o YieldOptimization.Errors. Se persistente, entre em contato com o suporte da APS. |
Anúncios retornados, mas não inseridos
| Sintomas | Verificar | Resolução |
|---|---|---|
AdsReturned> 0, mas AdsInserted = 0 |
Anúncios filtrados durante a inserção | Verifique FILLED_AVAIL os registros por motivos de pulação: criativos duplicados, limite restante excedido ou variante do anúncio não encontrada (a transcodificação não foi concluída). |
Referência de códigos de erro APS
| Código | Significado | Causas comuns |
|---|---|---|
| 200 | Sucesso com licitações | Funcionando corretamente. |
| 204 | Sem licitação | A solicitação é válida, mas nenhum lance estava disponível. Isso não indica um erro no seu modelo. |
| 400 | Pedido incorreto | JSON inválido, campos obrigatórios ausentes de acordo com a especificação do OpenRTB. |
| 500 | Erro de servidor | Problema interno do APS, serviço limitado, tempo limite. |
| 503 | Serviço sobrecarregado | Contrapressão APS. Não tente novamente de forma agressiva. |
| 429 | Limitados | O APS começou manualmente a limitar as solicitações. Entre em contato com o suporte da APS se persistir. |