MediaTailor 이벤트 흐름 문제 해결 - AWS Elemental MediaTailor

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

MediaTailor 이벤트 흐름 문제 해결

AWS Elemental MediaTailor 이벤트 흐름을 이해하면 광고 삽입 문제를 해결하기 위한 강력한 기반을 제공합니다. 이벤트의 시퀀스, 타이밍 및 패턴을 분석하여 문제가 발생하는 위치를 빠르게 식별하고 대상 솔루션을 구현할 수 있습니다.

이 섹션에서는 이벤트 흐름 분석을 사용하여 문제를 진단하기 위한 실제 지침을 제공합니다. 기본 이벤트 흐름 개념을 이해하려면 섹션을 참조하세요광고 삽입 이벤트 흐름.

불완전한 이벤트 흐름 식별

불완전한 이벤트 흐름은 성공적인 매니페스트 개인화(매니페스트에 개인화된 광고 정보를 삽입하는 MediaTailor 프로세스)에 도달하기 전에 예상 이벤트 시퀀스가 중지될 때 발생합니다. 흐름이 중단되는 위치를 식별하면 광고 삽입 실패의 근본 원인을 정확히 파악하는 데 도움이 됩니다.

일반적인 불완전한 흐름 패턴

이벤트 흐름의 여러 장애 지점은 다음과 같은 특정 유형의 문제를 나타냅니다.

  • 광고 기회 감지 후 흐름 중지: MediaTailor가 ADS 요청을 하지 못하게 하는 광고 마커 또는 매니페스트 자체의 문제를 나타냅니다. ADS 연결, 구성 또는 제한 시간 문제는 ADS 요청이 이루어진 후에 발생합니다.

  • ADS 요청 후 흐름 중지: ADS 응답 문제, VAST 구문 분석 문제, 크리에이티브 처리 실패, ADS 제한 시간, 연결 오류 또는 요청 시에만 검색되는 잘못된 ADS URLs과 같은 구성 문제를 제안합니다.

  • 추적 비컨 누락: 구성 문제 추적, 서버 측 보고 문제 또는 클라이언트 측 구현 격차를 나타낼 수 있습니다.

불완전한 흐름 분석을 위한 CloudWatch 쿼리

이러한 Amazon CloudWatch Logs Insights 쿼리를 사용하여 불완전한 이벤트 흐름을 식별합니다. 필요한 분석 유형에 따라 적절한 로그 그룹에 대해 이러한 쿼리를 실행합니다.

로그 그룹 선택:

  • MediaTailor/AdDecisionServerInteractions - 광고 결정 서버 상호 작용, 광고 기회 및 ADS 관련 실패를 분석하는 쿼리에 사용합니다.

  • MediaTailor/TranscodeService - 트랜스코딩 문제, 크리에이티브 처리 실패 또는 기타 비 ADS 관련 문제로 인해 광고가 삽입되지 않은 문제를 분석하는 데 사용합니다.

예 성공적인 매니페스트 개인화 없이 광고 기회 식별

로그 그룹: MediaTailor/AdDecisionServerInteractions

다음 쿼리는 성공적인 매니페스트 개인화로 이어지지 않은 광고 기회를 식별합니다.

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
예 이벤트 흐름 완료율 분석

로그 그룹: MediaTailor/AdDecisionServerInteractions

다음 쿼리는 다양한 이벤트 유형에서 완료율을 분석합니다.

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
예 비컨 이벤트가 누락된 세션 찾기

로그 그룹: MediaTailor/AdDecisionServerInteractions

다음 쿼리는 가용 시간을 채웠지만 해당 비컨 이벤트가 없는 세션을 식별합니다.

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
예 트랜스코딩 관련 광고 삽입 실패 식별

로그 그룹: MediaTailor/TranscodeService

다음 쿼리는 성공적인 광고 삽입을 방해하는 트랜스코딩 문제를 식별합니다.

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

이벤트 타이밍 문제 분석

이벤트 타이밍 분석은 성능 병목 현상을 식별하고 광고 삽입 워크플로를 최적화하는 데 도움이 됩니다. 비정상적인 타이밍 패턴은 최종 사용자 경험에 영향을 미치는 근본적인 문제를 나타내는 경우가 많습니다.

성능 타이밍 임계값

이러한 타이밍 임계값을 사용하여 잠재적 성능 문제를 식별합니다.

  • 5초를 초과하는 총 흐름 기간: 최종 사용자 경험에 영향을 미칠 수 있으며 ADS 성능 문제, 오리진 서버 문제(예: 매니페스트 검색 제한 시간) 또는 NAT 게이트웨이, DynamoDB, EC2 또는 기타 시스템 구성 요소의 인프라 문제를 포함한 내부 MediaTailor 문제를 나타낼 수 있습니다.

  • 2초를 초과하는 ADS 응답 시간: ADS 성능 문제 또는 네트워크 지연 시간 문제를 제안합니다.

  • 매니페스트 개인화 1초 이상: NAT Gateway, DynamoDB, EC2 또는 기타 구성 요소의 인프라 제약을 포함한 크리에이티브 처리 지연, 오리진 서버 문제(매니페스트 검색 제한 시간 등) 또는 내부 MediaTailor 시스템 문제를 나타낼 수 있습니다.

타이밍 분석 쿼리

이러한 쿼리를 사용하여 이벤트 타이밍 패턴을 분석합니다.

예 총 이벤트 흐름 기간 측정

다음 쿼리는 이벤트 흐름의 총 기간을 측정하고 5초를 초과하는 기간을 식별합니다.

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
예 ADS 응답 타이밍 분석

다음 쿼리는 ADS 응답 시간을 분석하고 2초를 초과하는 시간을 식별합니다.

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
예 느린 매니페스트 개인화 식별

다음 쿼리는 1초 이상 걸리는 매니페스트 개인화 프로세스를 식별합니다.

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

일반적인 이벤트 흐름 문제 및 해결 방법

이 섹션에서는 자주 발생하는 이벤트 흐름 문제에 대한 솔루션을 문제 유형 및 증상별로 정리하여 제공합니다.

광고 결정 서버 요청 실패

증상: 광고 기회 감지 후 이벤트 흐름이 중지됩니다. 기록된 ADS 요청 이벤트가 없습니다.

일반적인 원인 및 해결 방법

  • ADS URL 구성 오류: 재생 구성의 ADS URL이 올바르고 액세스 가능한지 확인합니다. 광고 상호 작용 로그에는 ADS 요청 이벤트(MAKING_ADS_REQUEST)가 표시되지만 해당하는 VAST 응답은 표시되지 않으며, 종종 ERROR_UNKNOWN 또는 유사한 오류 이벤트가 수반됩니다.

  • 네트워크 연결 문제: 방화벽 규칙 및 DNS 해결을 포함하여 MediaTailor와 ADS 간의 네트워크 연결을 확인합니다.

  • SSL/TLS 인증서 문제: ADS가 신뢰할 수 있는 인증 기관의 유효한 SSL 인증서를 사용하는지 확인합니다. 특히 Google Ad Manager의 경우 AWS Support에 문의하여 Google의 SSL 인증서를 수락하는 구성 플래그를 활성화해야 할 수 있습니다.

진단 쿼리

다음 쿼리는 이벤트 시퀀스를 추적하여 ADS 요청 실패를 진단하는 데 도움이 됩니다.

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

광고 결정 서버 응답 실패

증상: ADS 요청이 성공했지만 MediaTailor가 응답을 받지 못하거나 구문 분석 오류가 발생합니다.

일반적인 원인 및 해결 방법

  • 잘못된 VAST 형식: VAST 사양 표준에 따라 ADS VAST 응답을 검증합니다.

  • ADS 제한 시간 문제: ADS 제한 시간 설정을 늘리거나 ADS 응답 시간을 최적화합니다.

  • 빈 광고 인벤토리: ADS 구성에서 광고 인벤토리 가용성 및 대상 지정 기준을 확인합니다.

진단 쿼리

다음 쿼리는 요청 및 응답 이벤트를 검사하여 ADS 응답 실패를 진단하는 데 도움이 됩니다.

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

매니페스트 개인화 실패

증상: VAST 응답을 수신했지만 매니페스트 개인 맞춤이 실패하거나 광고를 건너뜁니다.

일반적인 원인 및 해결 방법:

  • 크리에이티브 트랜스코딩 문제: 광고가 삽입 전에 NEW_CREATIVE트랜스코딩이 필요한 인지 확인합니다. MediaTailor/TranscodeService 로그에서 INTERNAL_ERROR MISSING_VARIANTS, 또는와 같은 오류 이벤트를 검사하여 트랜스코딩 오류를 확인할 수도 있습니다PROFILE_NOT_FOUND.

  • 기간 불일치 문제: 광고 기간이 사용 가능한 광고 중단 기간 내에 맞는지 확인합니다.

  • 개인화 임계값 문제: 재생 구성에서 개인화 임계값 설정을 검토합니다.

진단 쿼리

다음 쿼리는 VAST 응답과 채워진 공간을 검사하여 매니페스트 개인화 실패를 진단하는 데 도움이 됩니다.

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

건너뛴 광고 이유에 대한 쿼리

다음 쿼리는 광고를 건너뛰는 이유에 대한 자세한 정보를 제공합니다.

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

건너뛴 광고 이유 및 창의적인 고유 IDs에 대한 쿼리

다음 쿼리는 각 가용 구간의 처음 두 광고에 대한 이유와 창의적인 고유 IDs를 포함하여 건너뛴 자세한 광고 정보를 제공합니다.

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

비컨 실패 추적

증상: 매니페스트 개인화는 성공했지만 비컨 추적은 누락되거나 실패했습니다.

일반적인 원인 및 해결 방법

  • 클라이언트 측 구현 문제: 대부분의 추적 비컨 문제는 클라이언트 측 추적을 위해 추적 URLs 자주 폴링하지 않거나 플레이어별 비컨 실행 로직 문제와 같은 클라이언트 측 구현 문제에서 기인합니다.

  • URL 접근성 문제 추적: VAST 응답의 추적 URLs에 액세스할 수 있는지 확인하고 적절한 응답을 반환합니다. URLs 연결할 수 없거나 MediaTailor에서 성공적인 추적 응답 전송을 방해하는 내부 문제가 발생할 때 문제가 발생할 수 있습니다.

  • 플레이어 세그먼트 요청 문제: 클라이언트 플레이어가 실제로 세그먼트를 요청하지 않으면 명백한 추적 비컨 오류가 발생할 수 있습니다. 이로 인해 비컨이 전송되지 않고 추적 실패로 표시되지만 실제로는 비컨 문제가 아닌 플레이어 구현 문제입니다.

진단 쿼리

다음 쿼리는 채워진 가용 시간 및 비컨 이벤트를 검사하여 비컨 실패 추적을 진단하는 데 도움이 됩니다.

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

이벤트 흐름 모니터링 모범 사례

이러한 모니터링 사례를 구현하여 이벤트 흐름 문제를 사전에 식별하고 해결합니다.

CloudWatch 경보 설정

Amazon CloudWatch 경보를 생성하여 주요 이벤트 흐름 지표를 모니터링합니다.

  • 흐름 완료율 경보: 성공적인 매니페스트 개인화 대 광고 기회의 비율이 허용 가능한 임계값 아래로 떨어지면 경고합니다.

  • ADS 응답 시간 경보: 평균 ADS 응답 시간을 모니터링하고 성능 임계값을 초과할 때 알립니다.

  • 오류율 경보: 오류 이벤트 빈도를 추적하고 특정 오류 유형의 비정상적인 스파이크에 대해 경고합니다.

정기 모니터링 쿼리

이러한 쿼리를 정기적으로 실행하여 이벤트 흐름 상태에 대한 가시성을 유지합니다.

예 일일 이벤트 흐름 성공률

다음 쿼리는 이벤트 유형별 이벤트 흐름 성공률에 대한 일일 개요를 제공합니다.

fields @timestamp, eventType | filter @timestamp > datefloor(@timestamp, 1d) | stats count() as total_events by eventType | sort total_events desc
예 시간당 오류율 추세

다음 쿼리는 시간별 오류율을 추적하여 유행하는 문제를 식별합니다.

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

성능 최적화 지침

이벤트 흐름 분석을 사용하여 광고 삽입 성능을 최적화합니다.

  • ADS 최적화: ADS 공급자와 협력하여 응답 시간을 최적화하고 지연 시간을 줄입니다.

  • 크리에이티브 준비: 콘텐츠 프로필과 일치하고 처리 지연을 줄이기 위해 광고 크리에이티브를 사전 트랜스코딩합니다.

  • 구성 튜닝: 이벤트 흐름 분석을 기반으로 제한 시간 설정, 개인화 임계값 및 기타 구성 파라미터를 조정합니다.

추가 문제 해결 리소스

이벤트 흐름 분석 이외의 추가 문제 해결 지침: