View a markdown version of this page

Résolution des problèmes de flux d' MediaTailor événements - 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.

Résolution des problèmes de flux d' MediaTailor événements

La compréhension du flux d' AWS Elemental MediaTailor événements constitue une base solide pour résoudre les problèmes d'insertion d'annonces. En analysant la séquence, le calendrier et les modèles des événements, vous pouvez rapidement identifier les problèmes et mettre en œuvre des solutions ciblées.

Cette section fournit des conseils pratiques sur l'utilisation de l'analyse des flux d'événements pour diagnostiquer les problèmes. Pour comprendre les concepts de base du flux d'événements, consultezFlux d'événements d'insertion d'annonces.

Identifier les flux d'événements incomplets

Les flux d'événements incomplets se produisent lorsque la séquence d'événements attendue s'arrête avant de parvenir à une personnalisation réussie du manifeste (le processus d' MediaTailor insertion d'informations publicitaires personnalisées dans le manifeste). L'identification des ruptures de flux permet d'identifier la cause première des échecs d'insertion d'annonces.

Schémas de flux incomplets courants

Les différents points de défaillance du flux d'événements indiquent des types de problèmes spécifiques, tels que les suivants.

  • Le flux s'arrête après la détection d'une opportunité publicitaire : indique des problèmes liés aux marqueurs publicitaires ou au manifeste lui-même qui MediaTailor empêchent de faire une demande ADS. Des problèmes de connectivité, de configuration ou de temporisation ADS peuvent survenir après l'envoi de la demande ADS.

  • Le flux s'arrête après une demande ADS : suggère des problèmes de réponse ADS, des problèmes d'analyse VAST, des échecs du traitement créatif, des délais ADS, des erreurs de connectivité ou des problèmes de configuration tels que des URL ADS non valides qui ne sont découvertes que lorsque la demande est faite.

  • Balise de suivi manquante : peut indiquer des problèmes de configuration du suivi, des problèmes de reporting côté serveur ou des lacunes de mise en œuvre côté client.

CloudWatch requêtes pour analyse de flux incomplète

Utilisez ces requêtes Amazon CloudWatch Logs Insights pour identifier les flux d'événements incomplets. Exécutez ces requêtes sur les groupes de journaux appropriés en fonction du type d'analyse requis.

Sélection du groupe de journaux :

  • MediaTailor/AdDecisionServerInteractions- À utiliser pour les requêtes analysant les interactions entre les serveurs de décision publicitaire, les opportunités publicitaires et ADS-related les échecs.

  • MediaTailor/TranscodeService- À utiliser pour analyser les problèmes liés aux publicités qui n'ont pas été insérées en raison de problèmes de transcodage, d'échecs du traitement créatif ou d'autres problèmes non liés à la publicité.

Exemple identifier les opportunités publicitaires sans une personnalisation réussie des manifestes

Groupe de journaux : MediaTailor/AdDecisionServerInteractions

La requête suivante identifie les opportunités publicitaires qui n'ont pas abouti à une personnalisation réussie du manifeste :

fields @timestamp, eventType, avail.availId, sessionId | filter eventType = "AD_MARKER_FOUND" | stats count() as total_opportunities by avail.availId | join ( fields @timestamp, eventType, avail.availId | filter eventType = "FILLED_AVAIL" | stats count() as successful_fills by avail.availId ) on avail.availId | where ispresent(total_opportunities) and not ispresent(successful_fills) | sort total_opportunities desc
Exemple analyser les taux d'achèvement du flux d'événements

Groupe de journaux : MediaTailor/AdDecisionServerInteractions

La requête suivante analyse les taux d'achèvement des différents types d'événements :

fields @timestamp, eventType, avail.availId | filter eventType in ["AD_MARKER_FOUND", "MAKING_ADS_REQUEST", "VAST_RESPONSE", "FILLED_AVAIL", "BEACON_FIRED"] | stats count() by eventType, avail.availId | sort avail.availId, eventType
Exemple trouver des sessions avec des événements de balise manquants

Groupe de journaux : MediaTailor/AdDecisionServerInteractions

La requête suivante identifie les sessions dont les disponibilités sont remplies mais aucun événement de balise correspondant :

fields @timestamp, eventType, sessionId, avail.availId | filter eventType = "FILLED_AVAIL" | stats count() as filled_avails by sessionId | join ( fields @timestamp, eventType, sessionId | filter eventType = "BEACON_FIRED" | stats count() as beacon_events by sessionId ) on sessionId | where filled_avails > 0 and (not ispresent(beacon_events) or beacon_events = 0) | sort filled_avails desc
Exemple identifier les échecs d'insertion d'annonces liés au transcodage

Groupe de journaux : MediaTailor/TranscodeService

La requête suivante identifie les problèmes de transcodage qui empêchent l'insertion d'annonces avec succès :

fields @timestamp, eventType, sessionId, requestId | filter eventType in ["TRANSCODE_IN_PROGRESS", "INTERNAL_ERROR", "MISSING_VARIANTS", "PROFILE_NOT_FOUND"] | stats count() as transcode_issues by eventType, sessionId | sort transcode_issues desc

Analyse des problèmes de chronométrage des événements

L'analyse de la chronologie des événements permet d'identifier les goulots d'étranglement en matière de performances et d'optimiser les flux de travail d'insertion d'annonces. Des schémas temporels inhabituels indiquent souvent des problèmes sous-jacents qui affectent l'expérience du spectateur.

Seuils de synchronisation des performances

Utilisez ces seuils temporels pour identifier les problèmes de performances potentiels.

  • Durée totale du flux supérieure à 5 secondes : peut avoir un impact sur l'expérience utilisateur et peut indiquer des problèmes de performances ADS, des problèmes du serveur d'origine (tels que des délais de récupération des manifestes) ou des problèmes internes, notamment MediaTailor des problèmes d'infrastructure avec NAT Gateway, DynamoDB, EC2 ou d'autres composants du système.

  • Temps de réponse ADS supérieur à 2 secondes : suggère des problèmes de performances ADS ou des problèmes de latence du réseau.

  • Personnalisation des manifestes de plus d'une seconde : peut indiquer des retards dans le traitement de la création, des problèmes liés au serveur d'origine (tels que des délais de récupération des manifestes) ou des problèmes internes au MediaTailor système, notamment des contraintes d'infrastructure avec NAT Gateway, DynamoDB, EC2 ou d'autres composants.

Requêtes d'analyse chronologique

Utilisez ces requêtes pour analyser les modèles de synchronisation des événements.

Exemple mesurer la durée totale du flux d'événements

La requête suivante mesure la durée totale des flux d'événements et identifie ceux qui dépassent 5 secondes :

fields @timestamp, eventType, avail.availId | filter avail.availId = "your-avail-id" | filter eventType in ["AD_MARKER_FOUND", "FILLED_AVAIL"] | sort @timestamp asc | stats min(@timestamp) as start_time, max(@timestamp) as end_time by avail.availId | eval duration_seconds = (end_time - start_time) / 1000 | where duration_seconds > 5
Exemple analyser le temps de réponse de l'ADS

La requête suivante analyse les temps de réponse de l'ADS et identifie ceux qui dépassent 2 secondes :

fields @timestamp, eventType, avail.availId | filter avail.availId = "your-avail-id" | filter eventType in ["MAKING_ADS_REQUEST", "VAST_RESPONSE"] | sort @timestamp asc | stats min(@timestamp) as request_time, max(@timestamp) as response_time by avail.availId | eval ads_response_seconds = (response_time - request_time) / 1000 | where ads_response_seconds > 2
Exemple identifier la lenteur de la personnalisation des manifestes

La requête suivante identifie les processus de personnalisation des manifestes qui prennent plus d'une seconde :

fields @timestamp, eventType, avail.availId | filter avail.availId = "your-avail-id" | filter eventType in ["VAST_RESPONSE", "FILLED_AVAIL"] | sort @timestamp asc | stats min(@timestamp) as response_time, max(@timestamp) as filled_time by avail.availId | eval personalization_seconds = (filled_time - response_time) / 1000 | where personalization_seconds > 1

Problèmes courants liés au flux d'événements et solutions

Cette section propose des solutions aux problèmes de flux d'événements fréquemment rencontrés, classés par type de problème et par symptômes.

Échec des requêtes du serveur Ad Decision

Symptômes : le flux d'événements s'arrête après la détection d'une opportunité publicitaire. Aucun événement de demande ADS n'a été enregistré.

Causes courantes et solutions

  • Erreurs de configuration de l'URL ADS : vérifiez que l'URL ADS dans votre configuration de lecture est correcte et accessible. Dans le journal des interactions avec les publicités, vous verrez un événement de demande ADS (MAKING_ADS_REQUEST) mais aucune réponse VAST correspondante, souvent accompagnée d'un événement d'erreur ERROR_UNKNOWN ou d'un événement similaire.

  • Problèmes de connectivité réseau : vérifiez la connectivité réseau entre MediaTailor et votre ADS, notamment les règles de pare-feu et la résolution DNS.

  • SSL/TLS problèmes de certificat : assurez-vous que votre ADS utilise des certificats SSL valides provenant d'une autorité de certification fiable. Pour Google Ad Manager en particulier, vous devrez peut-être contacter AWS Support pour activer un indicateur de configuration qui accepte les certificats SSL de Google.

Requête de diagnostic

La requête suivante permet de diagnostiquer les échecs des requêtes ADS en suivant la séquence des événements :

fields @timestamp, eventType, sessionId | filter sessionId = "your-session-id" | filter eventType in ["AD_MARKER_FOUND", "MAKING_ADS_REQUEST", "ERROR_ADS_IO", "ERROR_UNKNOWN_HOST"] | sort @timestamp asc

Échec de réponse du serveur Ad Decision

Symptômes : les requêtes ADS aboutissent mais MediaTailor ne reçoivent pas de réponse, ou des erreurs d'analyse se produisent.

Causes courantes et solutions

  • Format VAST non valide : validez vos réponses ADS VAST par rapport aux normes de spécification VAST.

  • Problèmes liés au délai d'attente de l'ADS : augmentez les paramètres du délai d'attente de l'ADS ou optimisez le temps de réponse de l'AD

  • Inventaire publicitaire vide : vérifiez la disponibilité de l'inventaire publicitaire et les critères de ciblage dans votre configuration ADS.

Requête de diagnostic

La requête suivante permet de diagnostiquer les échecs de réponse ADS en examinant les événements de demande et de réponse :

fields @timestamp, eventType, sessionId | filter sessionId = "your-session-id" | filter eventType in ["MAKING_ADS_REQUEST", "VAST_RESPONSE", "EMPTY_VAST_RESPONSE", "ERROR_ADS_RESPONSE_PARSE", "ERROR_ADS_TIMEOUT"] | sort @timestamp asc

Défaillances de personnalisation manifestes

Symptômes : des réponses VAST ont été reçues mais la personnalisation du manifeste échoue ou les publicités sont ignorées.

Causes courantes et solutions :

  • Problèmes liés au transcodage créatif : vérifiez s'il s'agit d'une NEW_CREATIVE annonce qui nécessite un transcodage avant son insertion. Vous pouvez également vérifier les erreurs de transcodage en consultant le MediaTailor/TranscodeService journal pour détecter les événements d'erreur tels queINTERNAL_ERROR, MISSING_VARIANTS, ouPROFILE_NOT_FOUND.

  • Problèmes d'inadéquation des durées : vérifiez que les durées des publicités correspondent aux durées d'interruption des publicités disponibles.

  • Problèmes liés au seuil de personnalisation : vérifiez les paramètres du seuil de personnalisation dans votre configuration de lecture.

Requête de diagnostic

La requête suivante permet de diagnostiquer les échecs de personnalisation des manifestes en examinant les réponses VAST et les valeurs renseignées :

fields @timestamp, eventType, sessionId, skippedAds | filter sessionId = "your-session-id" | filter eventType in ["VAST_RESPONSE", "FILLED_AVAIL", "WARNING_NO_ADVERTISEMENTS"] | sort @timestamp asc

Requête pour des raisons liées à l'omission d'une annonce

La requête suivante fournit des informations détaillées sur les raisons pour lesquelles les annonces ont été ignorées :

fields @timestamp, eventType, sessionId, skippedAds.reason, skippedAds.creativeUniqueId | filter sessionId = "your-session-id" | filter eventType = "WARNING_NO_ADVERTISEMENTS" or ispresent(skippedAds) | sort @timestamp asc

Requête pour des raisons liées à l'absence d'annonces et à des identifiants uniques créatifs

La requête suivante fournit des informations détaillées sur les annonces ignorées, y compris les raisons et les identifiants uniques créatifs pour les deux premières annonces de chaque offre :

fields @timestamp, eventType | filter sessionId = "your-session-id" | filter eventType = "FILLED_AVAIL" | fields avail.skippedAds.0.vastDuration as SkippedDur_Ad0, avail.skippedAds.0.skippedReason as Ad0_SkipReason, avail.skippedAds.0.creativeUniqueId as SkippedCreative0_UID | fields avail.skippedAds.1.vastDuration as SkippedDur_Ad1, avail.skippedAds.1.skippedReason as Ad1_SkipReason, avail.skippedAds.1.creativeUniqueId as SkippedCreative1_UID | sort @timestamp desc

Suivi des défaillances des balises

Symptômes : personnalisation réussie du manifeste, mais balises de suivi manquantes ou défaillantes.

Causes courantes et solutions

  • Client-side problèmes de mise en œuvre : la plupart des problèmes liés aux balises de suivi proviennent de problèmes d'implémentation côté client, tels que le fait de ne pas interroger les URL de suivi assez fréquemment pour le suivi côté client, ou des problèmes de logique de déclenchement de balises spécifiques au joueur.

  • Problèmes d'accessibilité des URL de suivi : vérifiez que les URL de suivi des réponses VAST sont accessibles et renvoient les réponses appropriées. Des problèmes peuvent survenir lorsque les URL ne sont pas accessibles ou lorsque MediaTailor des problèmes internes empêchent l'envoi d'une réponse de suivi réussie.

  • Problèmes liés aux demandes de segments de joueurs : des défaillances apparentes des balises de suivi peuvent survenir lorsque le joueur client ne demande aucun segment. Il en résulte qu'aucune balise n'est envoyée, ce qui apparaît comme un échec de suivi mais est en fait un problème d'implémentation du joueur plutôt qu'un problème de balise.

Requête de diagnostic

La requête suivante permet de diagnostiquer les défaillances des balises de suivi en examinant les valeurs remplies et les événements des balises :

fields @timestamp, eventType, sessionId | filter sessionId = "your-session-id" | filter eventType in ["FILLED_AVAIL", "BEACON_FIRED", "ERROR_FIRING_BEACON_FAILED"] | sort @timestamp asc

Meilleures pratiques en matière de surveillance du flux d'événements

Mettez en œuvre ces pratiques de surveillance pour identifier et résoudre de manière proactive les problèmes de flux d'événements :

Configuration des CloudWatch alarmes

Créez des CloudWatch alarmes Amazon pour surveiller les indicateurs clés du flux d'événements.

  • Alarme relative au taux d'achèvement du flux : alerte lorsque le ratio de personnalisation réussie du manifeste par rapport aux opportunités publicitaires tombe en dessous de seuils acceptables.

  • Alarme de temps de réponse ADS : surveillez les temps de réponse moyens des ADS et alertez lorsqu'ils dépassent les seuils de performance.

  • Alarme de taux d'erreur : suivez la fréquence des événements d'erreur et alertez en cas de pics inhabituels dans des types d'erreur spécifiques.

Requêtes de surveillance régulières

Exécutez régulièrement ces requêtes pour conserver une visibilité sur l'état du flux d'événements :

Exemple taux de réussite du flux d'événements quotidien

La requête suivante fournit un aperçu quotidien des taux de réussite des flux d'événements par type d'événement :

fields @timestamp, eventType | filter @timestamp > datefloor(@timestamp, 1d) | stats count() as total_events by eventType | sort total_events desc
Exemple tendance du taux d'erreur horaire

La requête suivante permet de suivre les taux d'erreur par heure afin d'identifier les problèmes courants :

fields @timestamp, eventType | filter eventType like /ERROR_/ | stats count() as error_count by datefloor(@timestamp, 1h) as hour | sort hour desc

Conseils pour l'optimisation des performances

Utilisez l'analyse du flux d'événements pour optimiser les performances d'insertion d'annonces.

  • Optimisation des ADS : collaborez avec votre fournisseur ADS pour optimiser les temps de réponse et réduire la latence.

  • Préparation créative : des créations Pre-transcode publicitaires adaptées à vos profils de contenu et réduisant les délais de traitement.

  • Réglage de la configuration : ajustez les paramètres de délai d'expiration, les seuils de personnalisation et d'autres paramètres de configuration en fonction de l'analyse du flux d'événements.

Ressources supplémentaires pour la résolution des problèmes

Pour obtenir des conseils de dépannage supplémentaires allant au-delà de l'analyse du flux d'événements :