

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Dépannage et surveillance
<a name="yield-optimization-troubleshooting"></a>

Cette page vous permet de surveiller les performances d'optimisation du rendement, de diagnostiquer les problèmes courants et de vérifier que votre configuration fonctionne correctement.

## Métriques
<a name="yield-optimization-troubleshooting-metrics"></a>

MediaTailor publie les CloudWatch mesures suivantes pour l'optimisation du rendement. Toutes les métriques sont émises avec une `configurationName` dimension, sauf indication contraire.

### Statistiques relatives aux demandes d'offres
<a name="yield-optimization-troubleshooting-metrics-bidrequest"></a>


| Métrique | Description | 
| --- | --- | 
| YieldOptimization.BidRequest | Émis comme 1 lorsqu'une opportunité de demande d'offre est identifiée. | 
| YieldOptimization.BidResponse | Émis sous la forme 1 lorsqu'une réponse d'offre réussie est reçue. | 
| YieldOptimization.BidDuration | La durée de pause (secondes) demandée dans l'offre, calculée à partir de la durée de disponibilité moins la durée de l'annonce principale. | 
| YieldOptimization.Latency | Round-trip latence par rapport à l'APS en millisecondes. | 
| YieldOptimization.NoBid | Émis sous la forme 1 lorsque APS renvoie HTTP 204 (aucune demande correspondante). La demande elle-même était valide. | 
| YieldOptimization.BidRequestThrottled | Émis sous la forme 1 lorsque APS renvoie HTTP 429 (étranglé). L'APS applique une contre-pression. Reculez avant de réessayer. | 

### Métriques d'insertion d'annonces
<a name="yield-optimization-troubleshooting-metrics-adinsertion"></a>


| Métrique | Description | 
| --- | --- | 
| YieldOptimization.AdsInserted | Nombre d'annonces YO insérées dans la liste. | 
| YieldOptimization.AdsReturned | Nombre d'annonces renvoyées dans le BidResponse (avant filtrage). Émis uniquement lorsqu'il est supérieur à 0. | 
| YieldOptimization.FilledDuration | Durée (ms) renseignée par YO Ads. | 
| YieldOptimization.UnfilledDuration | Durée (ms) envoyée à APS dans la demande d'offre (écart d'opportunité). | 
| YieldOptimization.FillRate | Per-avail taux de remplissage : durée YO transcodée divisée par la durée non remplie avant YO. Le numérateur est transcodé et le dénominateur l'est VAST-based (aucun des deux ne soustrait le pare-chocs), de sorte que la valeur peut dépasser 1,0. | 

### Indicateurs de revenus et de prix
<a name="yield-optimization-troubleshooting-metrics-revenue"></a>


| Métrique | Description | 
| --- | --- | 
| YieldOptimization.Revenue | Revenu total pour le client, provenant de l'priceattribut de la réponse à l'offre OrtB. Somme des prix des annonces insérées. | 
| YieldOptimization.IndicativeBidRevenue | Valeur indicative cumulée par impression de toutes les offres RETOURNÉES (prix de l'offre par impression, et non par insertion). Dual-emitted à côté Revenue pendant une fenêtre de dépréciation et sera supprimé une fois les tableaux de bord coupés. À utiliser Revenue pour les nouveaux tableaux de bord. | 
| YieldOptimization.BidPriceAdsInserted | Le prix CPM de chaque annonce insérée par Yield Optimization. Dimensionné par l'attribut réponse à l'offre cur (devise). Non émis par client, il s'applique donc à l'ensemble du compte. | 
| YieldOptimization.BidPriceAdsReturned | Le prix CPM de chaque enchère renvoyé dans le BidResponse (avant le filtrage des insertions). Dimensionné parcur. Non émis par client, il s'applique donc à l'ensemble du compte. | 

### Statistiques relatives aux erreurs et aux sauts
<a name="yield-optimization-troubleshooting-metrics-error"></a>


| Métrique | Description | 
| --- | --- | 
| YieldOptimization.Errors | Émis sous la forme 1 pour les erreurs de connexion, les erreurs de traitement des réponses ou les exceptions inattendues. Également émis sous la forme 0 en cas de succès (utilisez Sum, pas SampleCount). | 
| YieldOptimization.Timeouts | Émis sous la forme 1 lorsque la demande APS expire. Également émis sous la forme 0 en cas de succès (utilisez Sum, pas SampleCount). | 
| YieldOptimization.BidRequestConfigurationError | Émis sous la forme 1 lorsque le modèle ou la construction de l'offre échoue (champs manquants, JSON non valide). | 
| YieldOptimization.SkipMinUnfilledDurationNotExceeded | Émis sous la forme 1 lorsque YO a été ignoré car la durée non remplie était inférieure au seuil. | 
| YieldOptimization.SkipPersonalizationTimeoutExceeded | Émis sous la forme 1 lorsque YO a été ignoré car le temps de personnalisation restant était insuffisant. | 

**Important**  
`YieldOptimization.Errors`et `YieldOptimization.Timeouts` sont émis sous la forme 0 à chaque demande réussie. Utilisez ** Sum ** (not SampleCount) in CloudWatch pour obtenir le nombre réel d'erreurs ou de délais d'attente. `NoBid`et ne `BidRequestThrottled` sont PAS pris en compte`Errors`. Il s'agit de signaux distincts pour les conditions légitimes de non-demande et de contre-pression.

## Événements de journaux
<a name="yield-optimization-troubleshooting-log-events"></a>

L'optimisation du rendement génère des événements dans le groupe de `MidasMMSService/ads_interaction_log` journaux :


| Type d’événement | Description | 
| --- | --- | 
| RAW\_BID\_REQUEST | La demande d'offre OpenRTB complète au format JSON envoyée à APS. Utilisez-le pour vérifier l'interpolation du modèle. | 
| RAW\_BID\_RESPONSE | La réponse à l'offre OpenRTB brute d'APS, y compris la tarification de l'offre et VAST XML. | 
| FILLED\_AVAIL | L'offre complète avec toutes les annonces. Les publicités YO ont fillMode: "YIELD\_OPTIMIZATION" et incluent bidId bidPricecurrency,impressionId, etseatId. | 

Les événements d'erreur sont émis `MidasMMSService/application.log` avec des enregistreurs tels que`YieldOptimizationSupport`, `OrtbBidRequestBuilder``HttpOrtbRequestSubmitter`, et`OrtbResponseProcessor`.

## Exemples de requêtes CloudWatch Insights
<a name="yield-optimization-troubleshooting-insights"></a>

### Recherchez les erreurs 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
```

**Groupe de journaux : ** `MidasMMSService/application.log`

### Compter les demandes d'enchères par rapport aux réponses
<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
```

**Groupe de journaux : ** `MidasMMSService/ads_interaction_log`

### Trouvez vos annonces dans les offres complètes
<a name="yield-optimization-troubleshooting-insights-filled"></a>

Chaque `FILLED_AVAIL` événement contient un `creativeAds` tableau. Les annonces YO figurant dans ce tableau contiennent `fillMode: "YIELD_OPTIMIZATION"` des métadonnées d'enchères supplémentaires : `bidId` `impressionId``bidPrice`,`seatId`, et`currency`. Utilisez-le pour voir quelles offres ont été comblées par YO, combien d'annonces YO ont été insérées pour chaque offre et la répartition des revenus par offre.

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

Pour extraire les différentes entrées d'annonces YO (numéros d'enchères et prix) pour une session spécifique :

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

Filtrez le `creativeAds` tableau résultant côté client pour les entrées où. `fillMode == "YIELD_OPTIMIZATION"`

**Groupe de journaux : ** `MidasMMSService/ads_interaction_log`

### Vérifiez les variables de modèle non résolues
<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
```

**Groupe de journaux : ** `MidasMMSService/ads_interaction_log`

### Mesurez la latence et le taux de réussite de 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
```

**Groupe de journaux : ** `MidasMMSService/service_log`

**Note**  
`service_log`utilise `customerId` (non`awsAccountId`) pour le champ ID de compte.

## Calcul de l'augmentation de rendement
<a name="yield-optimization-troubleshooting-yield-lift"></a>

Pour mesurer l'impact de l'optimisation du rendement sur les revenus, créez un CloudWatch tableau de bord avec :

1. **Taux de remplissage incrémentiel : ** `Sum(YieldOptimization.AdsInserted) / Sum(YieldOptimization.BidRequest)` indique le pourcentage d'opportunités YO qui se traduisent par l'insertion d'annonces. Vous pouvez également utiliser `Average(YieldOptimization.FillRate)` la métrique native par disponibilité.

1. **Revenu par heure : indique ** `Sum(YieldOptimization.Revenue)` au fil du temps le chiffre d'affaires total par client généré par YO. `Sum(YieldOptimization.BidPriceAdsInserted)`donne le CPM moyen pour l'ensemble du compte.

1. **Durée remplie : ** `Sum(YieldOptimization.FilledDuration)` le contre `Sum(YieldOptimization.BidDuration)` indique la partie de la durée demandée qui a été réellement remplie.

## Problèmes courants
<a name="yield-optimization-troubleshooting-common-issues"></a>

### L'optimisation du rendement ne se déclenche pas
<a name="yield-optimization-troubleshooting-not-triggering"></a>


| Symptôme | Check | Résolution | 
| --- | --- | --- | 
| Aucune métrique YO | Est-ce que YO est configuré dans la configuration de lecture ? | Activez YO dans la console ou l'API. | 
| SkipMinUnfilledDurationNotExceededémettant | L'ADS principal occupe la majeure partie de la pause | Réduisez MinimumUnfilledDuration ou acceptez que le remplissage principal soit suffisant. | 
| SkipPersonalizationTimeoutExceededémettant | L'ADS principal est trop lent, ce qui ne laisse pas le temps pour YO | Optimisez la latence ADS principale ou vérifiez la configuration SDC du délai d'expiration de la personnalisation. | 

### Échec des demandes d'offres
<a name="yield-optimization-troubleshooting-bidrequests-failing"></a>


| Symptôme | Check | Résolution | 
| --- | --- | --- | 
| Métrique BidRequestConfigurationError | Le modèle comporte des champs obligatoires vides ou manquants | Vérifiez application.log l'erreur spécifique (par exemple,app.bundle is required). Corrigez le modèle ou assurez-vous que les paramètres du joueur sont envoyés. | 
| HTTP 204 de APS | YieldOptimization.NoBidincrémentant | APS n'a renvoyé aucune offre. Ce n'est pas une erreur. Vérifiez RAW\_BID\_REQUEST les valeurs des espaces réservés ({UPPER\_CASE}modèles), vérifiez que le bundle et l'URL du magasin sont réels, à un niveau d'enchères inférieur. | 
| HTTP 429 de APS | YieldOptimization.BidRequestThrottledincrémentant | L'APS est en train de ralentir. Rétrogradez le taux de demande. En cas de persistance, contactez le support APS pour augmenter les limites du TPS. | 
| HTTP 400 depuis APS | Requête JSON non valide | Vérifiez le message d'erreur APS dansRAW\_BID\_RESPONSE. Vérifiez que la structure JSON correspond à la spécification OpenRTB. | 
| HTTP 500/503 depuis APS | Erreur ou surcharge du serveur APS | Problème transitoire. MoniteurYieldOptimization.Errors. Si vous persistez, contactez le support APS. | 

### Annonces renvoyées mais non insérées
<a name="yield-optimization-troubleshooting-not-inserted"></a>


| Symptôme | Check | Résolution | 
| --- | --- | --- | 
| AdsReturned> 0 mais AdsInserted = 0 | Publicités filtrées lors de l'insertion | Vérifiez FILLED\_AVAIL les journaux pour des raisons d'omission : création dupliquée, seuil restant dépassé ou variante d'annonce introuvable (transcodage non terminé). | 

## Référence des codes d'erreur APS
<a name="yield-optimization-troubleshooting-error-codes"></a>


| Code | Signification | Causes courantes | 
| --- | --- | --- | 
| 200 | Succès des offres | Fonctionne correctement. | 
| 204 | Aucune enchère | La demande est valide mais aucune offre n'était disponible. Cela ne signifie pas qu'il y a une erreur dans votre modèle. | 
| 400 | Mauvaise demande | JSON non valide, champs obligatoires manquants conformément à la spécification OpenRTB. | 
| 500 | Erreur du serveur | Problème interne à l'APS, service limité, délai d'attente. | 
| 503 | Service surchargé | Contre-pression APS. Ne réessayez pas de manière agressive. | 
| 429 | Limité | APS a commencé à limiter les demandes manuellement. Contactez le support APS si vous persistez. | 