

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
<a name="yield-optimization-troubleshooting"></a>

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
<a name="yield-optimization-troubleshooting-metrics"></a>

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
<a name="yield-optimization-troubleshooting-metrics-bidrequest"></a>


| 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
<a name="yield-optimization-troubleshooting-metrics-adinsertion"></a>


| 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
<a name="yield-optimization-troubleshooting-metrics-revenue"></a>


| 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
<a name="yield-optimization-troubleshooting-metrics-error"></a>


| 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.Errors`e `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. `NoBid`e NÃO `BidRequestThrottled` são contados`Errors`. Eles são sinais separados para condições legítimas de contrapressão e sem demanda.

## Eventos de log
<a name="yield-optimization-troubleshooting-log-events"></a>

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 como`YieldOptimizationSupport`, `OrtbBidRequestBuilder``HttpOrtbRequestSubmitter`, e. `OrtbResponseProcessor`

## Exemplos de consultas do CloudWatch Insights
<a name="yield-optimization-troubleshooting-insights"></a>

### Verifique se há erros de YO
<a name="yield-optimization-troubleshooting-insights-errors"></a>

```
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
<a name="yield-optimization-troubleshooting-insights-count"></a>

```
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
<a name="yield-optimization-troubleshooting-insights-filled"></a>

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: `bidId``impressionId`,`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
<a name="yield-optimization-troubleshooting-insights-unresolved"></a>

```
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
<a name="yield-optimization-troubleshooting-insights-latency"></a>

```
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_log`usa `customerId` (não`awsAccountId`) para o campo ID da conta.

## Calculando o aumento de rendimento
<a name="yield-optimization-troubleshooting-yield-lift"></a>

Para medir o impacto da otimização do rendimento na receita, crie um CloudWatch painel com:

1. **Taxa de preenchimento incremental: ** `Sum(YieldOptimization.AdsInserted) / Sum(YieldOptimization.BidRequest)` mostra qual porcentagem de oportunidades de YO resultam em anúncios inseridos. Como alternativa, use `Average(YieldOptimization.FillRate)` para a métrica nativa por disponibilidade.

1. **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.

1. **Duração preenchida: ** `Sum(YieldOptimization.FilledDuration)` contra `Sum(YieldOptimization.BidDuration)` mostra quanto da duração solicitada foi realmente preenchida.

## Problemas comuns
<a name="yield-optimization-troubleshooting-common-issues"></a>

### A otimização de rendimento não é acionada
<a name="yield-optimization-troubleshooting-not-triggering"></a>


| 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
<a name="yield-optimization-troubleshooting-bidrequests-failing"></a>


| 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
<a name="yield-optimization-troubleshooting-not-inserted"></a>


| 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
<a name="yield-optimization-troubleshooting-error-codes"></a>


| 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. | 