View a markdown version of this page

Solução de problemas e monitoramento - AWS Elemental MediaTailor

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:

  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.

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

  3. Duração preenchida: Sum(YieldOptimization.FilledDuration) contra Sum(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.