View a markdown version of this page

Dépannage et surveillance - AWS Elemental MediaTailor

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

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

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

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

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

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

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.Errorset 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. NoBidet ne BidRequestThrottled sont PAS pris en compteErrors. Il s'agit de signaux distincts pour les conditions légitimes de non-demande et de contre-pression.

Événements de journaux

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 queYieldOptimizationSupport, OrtbBidRequestBuilderHttpOrtbRequestSubmitter, etOrtbResponseProcessor.

Exemples de requêtes CloudWatch Insights

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

Groupe de journaux : MidasMMSService/application.log

Compter les demandes d'enchères par rapport aux réponses

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

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 impressionIdbidPrice,seatId, etcurrency. 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

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

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_logutilise customerId (nonawsAccountId) pour le champ ID de compte.

Calcul de l'augmentation de rendement

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

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

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

L'optimisation du rendement ne se déclenche pas

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

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

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

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.