MediaTailor에서 광고 건너뛰기 문제 해결 - AWS Elemental MediaTailor

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

MediaTailor에서 광고 건너뛰기 문제 해결

광고 건너뛰기는 MediaTailor 고객이 보고하는 가장 일반적인 문제 중 하나입니다. 이 섹션에서는 재생 중에 광고를 건너뛸 수 있는 이유에 대한 자세한 분석을 제공하고 적절한 광고 삽입을 보장하는 솔루션을 제공합니다.

증상 및 영향

광고 건너뛰기가 발생하면 다음 증상이 관찰될 수 있습니다.

  • 예상 광고 시간 동안 광고가 표시되지 않음

  • 광고 대신 콘텐츠로 채워진 광고 시간

  • 다양한 보기 세션에서 일관성 없는 광고 재생

  • 다양한 건너뛰기 이유가 있는 AdSkipped 이벤트를 보여주는 CloudWatch 로그

광고 건너뛰기는 수익 창출에 직접적인 영향을 미치며 즉시 해결하지 않으면 시청자 경험이 저하될 수 있습니다.

일반적인 원인

MediaTailor는 로그 그룹의 FILLED_AVAIL 이벤트 로그 메시지에서 광고를 건너뛰는 특정 이유를 MediaTailor/AdDecisionServerInteractions 기록합니다. 효과적인 문제 해결을 위해서는 이러한 건너뛰기 이유를 이해하는 것이 중요합니다.

일반적인 광고 건너뛰기 이유
사유 건너뛰기 설명
NEW_CREATIVE 광고가 아직 트랜스코딩되지 않았습니다. 이는 MediaTailor가 삽입 전에 트랜스코딩이 필요한 새 광고 크리에이티브를 발견할 때 발생합니다.
PROFILE_NOT_FOUND 세션의 구성과 연결된 MediaConvert 트랜스코딩 프로파일이 존재하지 않아 광고 준비를 방지합니다.
TRANSCODE_ERROR 광고 트랜스코딩 프로세스에서 오류가 발생하여 완료하지 못했습니다.
TRANSCODE_IN_PROGRESS 광고 트랜스코딩이 아직 진행 중이며 아직 삽입할 준비가 되지 않았습니다.
INTERNAL_ERROR 광고를 처리하는 동안 내부 MediaTailor 오류가 발생하여 삽입이 방지되었습니다.
AVAIL_DURATION_EXCEEDED 광고가 광고 중단의 남은 기간 내에 맞지 않습니다.
LEFTOVER_AVAIL_EXCEEDED_THRESHOLD 삽입되었을 수 있는 모든 광고의 누적 기간이 세션에 대해 구성된 개인화 임계값을 충족하지 않습니다.
VAST_PARSING_ERROR 광고 결정 서버의 VAST 응답에 오류가 있거나 형식이 잘못되었습니다.
ADS_TIMEOUT 광고 결정 서버가 구성된 제한 시간 내에 응답하지 않았습니다.
MEDIA_FILE_UNAVAILABLE VAST 응답에 지정된 광고 미디어 파일에 액세스할 수 없습니다.
SESSION_INITIALIZATION_FAILED 종종 잘못된 세션 변수로 인해 MediaTailor 세션을 제대로 초기화하지 못했습니다.
EARLY_CUE_IN 광고 중단은 초기 신호로 인해 예상보다 일찍 종료되어 광고가 완전히 삽입되지 않습니다.
NO_VARIANT_MATCH 광고 크리에이티브에는 콘텐츠 스트림의 인코딩 파라미터(비트레이트, 해상도, 코덱)와 일치하는 변형이 없습니다.
NO_MODEL_CREATIVE_MATCH 광고 크리에이티브가 현재 재생 구성에 대한 예상 모델 또는 형식 요구 사항과 일치하지 않습니다.
REJECTED_REPLICA_VAST 복제본 또는 중복 콘텐츠 감지 정책으로 인해 VAST 응답이 거부되었습니다.
INVALID_VAST_WRAPPER_AD VAST 래퍼 광고에는 광고 삽입 성공을 방해하는 유효하지 않거나 잘못된 래퍼 요소가 포함되어 있습니다.
IMPORT_ERROR 광고 가져오기 프로세스 중에 오류가 발생하여 광고가 삽입 처리되지 않습니다.
IMPORT_IN_PROGRESS 광고 가져오기 프로세스가 현재 진행 중이며 아직 완료되지 않았습니다.

이러한 특정 건너뛰기 이유 외에도 다른 일반적인 원인은 다음과 같습니다.

  • 잘못된 세션 변수 구성

  • 광고 결정 서버(ADS) 연결 문제

  • 동일한 광고 콘텐츠에 대해 일관되지 않은 크리에이티브 IDs

  • 매니페스트 형식과의 플레이어 호환성 문제

  • 광고 세그먼트 전송에 영향을 미치는 CDN 구성 문제

문제 해결 단계

다음 단계에 따라 광고 건너뛰기 문제를 진단하고 해결합니다.

  1. 특정 건너뛰기 이유 식별

    CloudWatch Logs Insights를 사용하여 건너뛴 광고에 대해 MediaTailor/AdDecisionServerInteractions 로그 그룹을 쿼리합니다.

    fields @timestamp, avail.availId, skippedAds.0.skippedReason, skippedAds.0.creativeUniqueId | filter eventType = "FILLED_AVAIL" and ispresent(skippedAds.0.skippedReason) | sort @timestamp desc

    이 쿼리는 특정 이유와 함께 최신 광고 건너뛰기 이벤트를 반환하므로 패턴을 식별하는 데 도움이 됩니다.

  2. 세션 변수 구성 확인

    잘못된 세션 변수는 광고 건너뛰기의 일반적인 원인입니다. 다음을 확인합니다.

    • 모든 필수 세션 변수가 ADS URL 템플릿에 올바르게 구성됨

    • 동적 변수의 형식이 올바른 경우(올바른 구문MediaTailor 동적 광고 변수은 참조)

    • 플레이어 파라미터가 MediaTailor로 올바르게 전달되고 있습니다.

    세션 변수를 사용하여 올바르게 구성된 ADS URL의 예:

    https://my-ads-server.com/ads? sessionId=[session.id]& playerParams=[player_params.param1]& deviceType=[player_params.device]& correlator=[session.avail_duration_ms]
  3. NEW_CREATIVE 문제 해결

    다음과 같은 NEW_CREATIVE 이유로 광고를 건너뛰는 경우:

    MediaTailor는 크리에이티브 ID, AWS 계정 ID 및 트랜스코딩 변형 세트(기본 콘텐츠 스트림의 재생 변환)의 세 가지 주요 요소를 기반으로 광고를 트랜스코딩합니다. 크리에이티브 ID 또는 트랜스코딩 변형 세트의 일부가 다른 경우 MediaTailor는 광고를 트랜스코딩이 필요한 새 변형으로 인식합니다. 여기에는 가장 가까운 8,000비트로 반올림할 때의 비트 전송률 변경이 포함되며, 이는 기본 콘텐츠 스트림이 기본 매니페스트를 변경할 때 발생할 수 있습니다.

    비트 전송률 변경 및 크리에이티브 ID 충돌을 포함한 NEW_CREATIVE 시나리오에 대한 자세한 내용은이 절차의 자세한 NEW_CREATIVE 분석 섹션을 참조하세요.

    1. 광고 결정 서버가 동일한 광고 콘텐츠에 대해 일관된 크리에이티브 IDs를 반환하는지 확인

    2. 콘텐츠 스트림이 일관된 비트 전송률 및 변형 세트를 유지하는지 확인

    3. 재생 전에 광고가 트랜스코딩되도록 광고 미리 가져오기 구현 고려( 참조광고 미리 가져오기)

    4. 지속적인 문제의 경우 AWS Support에 문의하여 추가 문제 해결 지원을 받으세요.

  4. ADS 연결 문제 해결

    ADS_TIMEOUT 또는 관련 이유로 광고를 건너뛰는 경우:

    • MediaTailor에서 광고 결정 서버에 액세스할 수 있는지 확인

    • ADS가 구성된 제한 시간 내에 응답하는지 확인

    • ADS가 피크 기간 동안 요청 볼륨을 처리할 수 있는지 확인

    • 기본 ADS를 사용할 수 없는 경우 폴백 광고 전략 구현 고려

  5. VAST 응답 문제 해결

    VAST_PARSING_ERROR 또는를 사용하여 광고를 건너뛰는 경우MEDIA_FILE_UNAVAILABLE:

    • VAST 사양과 비교하여 VAST 응답 형식 검증

    • VAST 응답의 모든 미디어 파일 URLs에 공개적으로 액세스할 수 있는지 확인합니다.

    • VAST XML에서 특수 문자의 인코딩이 적절한지 확인

    • VAST 응답에 MediaTailor와 호환되는 형식의 미디어 파일이 포함되어 있는지 확인합니다.

  6. 기간 불일치 문제 해결

    AVAIL_DURATION_EXCEEDED 또는를 사용하여 광고를 건너뛰는 경우LEFTOVER_AVAIL_EXCEEDED_THRESHOLD:

    • ADS가 사용 가능한 광고 중단 기간에 맞는 광고를 반환하는지 확인합니다.

    • 콘텐츠의 광고 중단 마커가 의도한 지속 시간을 올바르게 알리는지 확인합니다.

    • 사용 사례에 적합한 경우 개인화 임계값 조정 고려

  7. CloudWatch 지표 모니터링

    주요 MediaTailor 지표에 대한 CloudWatch 경보를 설정하여 광고 건너뛰기 문제를 사전에 감지합니다.

    • AdDecisionServer.Ads.Skipped - 건너뛴 광고 수

    • AdDecisionServer.Timeouts - ADS 제한 시간 수

    • Avail.FilledDuration - 채워진 광고 중단 기간

    • Avail.SlateOnly - 슬레이트로만 채워진 광고 시간 수

    사용 가능한 지표에 대한 자세한 내용은 Amazon CloudWatch 지표 AWS Elemental MediaTailor 를 사용한 모니터링 단원을 참조하십시오.

  8. 변형 일치 및 형식 문제 해결

    NO_VARIANT_MATCH, NO_MODEL_CREATIVE_MATCH, EARLY_CUE_IN또는 형식 관련 이유로 광고를 건너뛰는 경우:

    • NO_VARIANT_MATCH: 콘텐츠 스트림의 인코딩 파라미터(비트레이트, 해상도, 코덱)와 일치하는 변형으로 광고 크리에이티브를 사용할 수 있는지 확인합니다. 호환되는 형식으로 광고를 제공하도록 광고 서버를 구성합니다.

    • NO_MODEL_CREATIVE_MATCH: 재생 구성의 크리에이티브 모델 요구 사항을 검토하고 광고 서버가 예상 형식 및 사양과 일치하는 광고를 제공하는지 확인합니다.

    • EARLY_CUE_IN: 콘텐츠 스트림의 큐 인 신호가 적절한 시간 내에 있고 광고 시간에 광고 삽입 시간이 충분한지 확인합니다. 조기 EXT-X-CUE-IN 태그 또는 SCTE-35 splice_insert 메시지가 있는지 확인합니다.

  9. VAST 래퍼 및 가져오기 문제 해결

    REJECTED_REPLICA_VAST, INVALID_VAST_WRAPPER_AD, IMPORT_ERROR또는를 사용하여 광고를 건너뛰는 경우IMPORT_IN_PROGRESS:

    • REJECTED_REPLICA_VAST: 광고 서버 구성에서 중복 콘텐츠 감지 정책을 확인합니다. VAST 응답에 고유한 크리에이티브 콘텐츠가 포함되어 있는지 확인하고 동일한 세션 내에서 동일한 광고를 제공하지 않도록 합니다.

    • INVALID_VAST_WRAPPER_AD: VAST 래퍼 응답을 VAST 사양과 비교하여 검증합니다. 모든 래퍼 요소의 형식이 올바르게 지정되고 유효한 VASTAdTagURI가 포함되어 있는지 확인합니다.

    • IMPORT_ERRORIMPORT_IN_PROGRESS: 광고 가져오기 프로세스의 문제를 나타냅니다. 광고 크리에이티브 소스 파일의 접근성 및 형식 호환성을 확인합니다. 가져오기 진행 상황을 모니터링하고 실패한 가져오기를 다시 시도합니다.

자세한 NEW_CREATIVE 분석

이 섹션에서는 기본 원인 및 고급 문제 해결 기술을 포함하여 NEW_CREATIVE 광고 건너뛰기 시나리오에 대한 포괄적인 정보를 제공합니다.

비트레이트 변경 시나리오

비트 전송률 변경으로 인해 가장 가까운 8,000비트로 반올림한 후 비트 전송률이 일치하지 않으면 NEW_CREATIVE 건너뛰기가 발생할 수 있습니다. 이는 일반적으로 다음과 같은 경우에 발생합니다.

  • 기본 콘텐츠 스트림은 기본 매니페스트를 변경합니다.

  • 새 세션은 기존 세션과 다른 변형으로 생성됩니다.

  • 콘텐츠 스트림 비트레이트가 재생 세션 간에 일관되지 않음

크리에이티브 ID 충돌

MediaTailor가 이미 트랜스코딩된 미디어 파일에 대해 다른 크리에이티브 ID를 발견하면 다음 시퀀스가 발생합니다.

  1. NEW_CREATIVE 이유와 함께 광고를 건너뜁니다.

  2. 이로 인해 불필요한 트랜스코딩 시도가 발생합니다.

  3. 크리에이티브가 DUPLICATE_TRANSCODE 또는 COPY_DEDUP으로 표시됩니다.

참고

MediaTailor는 트랜스코딩된 광고를 만료하거나 삭제하지 않습니다. MediaTailor 소유 S3 버킷에 무기한 저장됩니다.

ETAG 처리

ETAG는 특정 버전의 광고 재생 목록 또는 매니페스트와 연결된 고유 식별자입니다. MediaTailor는 크리에이티브 ID를 사용하여 광고 자산을 식별하지만 각 요청에 따라 크리에이티브 ID가 변경되면 광고가 새로운 크리에이티브로 표시되어 삽입이 방지될 수 있습니다.

주의

크리에이티브 ID가 고유하지 않다고 보장되므로 잘못된 광고가 표시될 수 있습니다.

기간 형식 문제

서버 측 광고 삽입(SSAI)에는 매니페스트 파일에 특정 기간 파라미터 형식이 필요합니다. 기간 형식이 잘못되면 광고 삽입이 실패할 수 있습니다.

EXT-X-CUE-OUT 기간 파라미터

EXT-X-CUE-OUT 태그 지속 시간 파라미터는 ISO 8601 지속 시간 형식이 아닌 정수 값으로 형식이 지정되어야 합니다.

기간 형식 요구 사항
형식 예시 상태 표시기
정수(정답) 32 지원됨 - 32초를 나타냅니다.
십진수(정답) 30.000 지원됨 - 30초를 나타냅니다.
ISO 8601(잘못됨) PT32S 지원되지 않음 - 삽입 실패 발생

올바른 매니페스트 형식의 예:

#EXTM3U #EXT-X-VERSION:3 #EXT-X-TARGETDURATION:10 #EXTINF:10.0, segment1.ts #EXT-X-CUE-OUT:30 #EXTINF:10.0, segment2.ts #EXT-X-CUE-IN #EXTINF:10.0, segment3.ts
중요

광고 삽입 문제를 방지하려면 모든 EXT-X-CUE-OUT 기간 파라미터가 정수 형식을 사용해야 합니다.

광고 마커 형식 검증

광고 마커 형식을 검증하고 기간 구문 분석 문제를 식별하려면:

  1. AD_MARKER_FOUND 이벤트 아래의 CloudWatch 로그에서 광고 마커 형식 확인

  2. FILLED_AVAIL 이벤트에서 FORMAT_ERROR 건너뛰기 이유 찾기

  3. 콘텐츠 매니페스트의 기간 값이 지원되는 형식을 사용하는지 확인

  4. 다양한 기간 형식으로 테스트하여 호환성 문제 식별

VOD 스트림 최적화

온디맨드 비디오(VOD) 스트림은 여러 ADS 요청을 생성할 수 있으며, 이는 성능에 영향을 미칠 수 있습니다. MediaTailor는이 동작을 해결하기 위한 최적화 기능을 제공합니다.

여러 ADS 요청 문제

기본적으로 VOD 스트림은 MediaTailor 로그에서 여러 MAKING_ADS_REQUEST 이벤트를 생성할 수 있습니다. 이는 VOD 콘텐츠의 각 광고 중단이 광고 결정 서버에 대한 별도의 ADS 요청을 트리거하기 때문에 발생합니다.

VOD 스트림이 과도한 ADS 요청을 생성하는지 확인하려면 다음 CloudWatch Logs Insights 쿼리를 사용합니다.

fields @timestamp, sessionId, eventType, adBreakIndex | filter eventType = "MAKING_ADS_REQUEST" | stats count() by sessionId | sort count desc | limit 20

VOD 병렬화 기능

MediaTailor는 VOD 콘텐츠에 대한 ADS 요청 처리를 최적화하는 병렬화 기능을 제공합니다. 이 기능은 재생 구성에서 maxConcurrentAdsRequests 파라미터를 사용하여 구성할 수 있습니다.

구성의 예제:

{ "Name": "OptimizedVODConfig", "VideoContentSourceUrl": "https://example.com/content/", "AdDecisionServerUrl": "https://example.com/ads", "maxConcurrentAdsRequests": 3 }

이 구성은 동시 ADS 요청 수를 제한하여 서버 로드를 줄이고 응답 시간을 개선합니다.

래핑된 VAST 응답 처리

병렬화 기능은 프로그래밍 방식 광고 시나리오에서 일반적인 래핑된 VAST 응답의 처리도 최적화합니다. 래핑된 VAST 응답에는 실제 미디어 파일에 도달하기 위해 래핑을 해제해야 하는 여러 계층의 VAST 태그가 포함됩니다.

세션 변수 문제 해결

세션 변수는 광고 타겟팅 및 선택에 중요한 역할을 합니다. 잘못된 세션 변수 구성은 광고 건너뛰기 문제의 일반적인 원인입니다.

일반적인 세션 변수 문제

세션 변수와 관련된 다음 문제로 인해 광고 건너뛰기가 발생할 수 있습니다.

  • 필수 변수 누락: 광고 결정 서버에 제공되지 않는 특정 변수가 필요할 수 있습니다.

  • 잘못된 변수 구문: 변수는 올바른 구문을 사용해야 합니다(예: [session.id] 대신 ${session.id}).

  • URL 인코딩 문제: 변수 값의 특수 문자에 적절한 URL 인코딩이 필요할 수 있습니다.

  • 일치하지 않는 플레이어 파라미터: 플레이어 파라미터는 세션 간에 일관되게 전달되어야 합니다.

  • 동적 변수 확인 실패: 해결할 수 없는 변수는 빈 문자열로 대체됩니다.

  • SCTE-35 UPID 구문 분석 문제: 분할 UPID 처리에 문제가 있으면 세션 변수 해결에 실패할 수 있습니다.

세션 변수 확인

세션 변수가 제대로 확인되고 있는지 확인하려면:

  1. MediaTailor 구성에 대한 디버그 로깅 활성화

  2. MediaTailor/AdDecisionServerInteractions 로그 그룹에서 실제 ADS 요청 URLs

  3. 템플릿 URL의 모든 변수가 적절한 값으로 대체되었는지 확인합니다.

  4. 해결 실패를 나타낼 수 있는 빈 문자열로 대체된 변수를 찾습니다.

해결된 ADS 요청 URL을 보여주는 로그 항목의 예:

{ "eventType": "MAKING_ADS_REQUEST", "sessionId": "abcd1234-5678-efgh-9012-ijklmnopqrst", "requestUrl": "https://my-ads-server.com/ads?sessionId=abcd1234-5678-efgh-9012-ijklmnopqrst&playerParams=mobile&deviceType=android&correlator=30000", "timestamp": "2025-06-20T19:00:00Z" }

SCTE-35 UPID 구문 분석 및 세션 변수

SCTE-35 분할 UPID 처리에 문제가 있으면 세션 변수 문제가 발생할 수 있습니다.

  • 형식 요구 사항: UPIDsegmentation_upid_type는 12여야 하며 적절한 처리를 format_identifier 위해를 포함해야 합니다.

  • 구문 분석 규칙: 디코딩된 UPID에는 여러 값에 대한 콜론 구분 기호가 포함될 수 있습니다. 템플릿 변수와 디코딩된 UPID 토큰의 수는 같아야 합니다.

  • 잘못된 형식: 값(예: :: 또는 :46175218::4053)이 없는 이중 콜론은 구문 분석 실패를 일으키므로 사용하지 마세요.

  • 형식 식별자 처리: MediaTailor는 처음 4바이트가 format_identifier라고 가정합니다. 누락된 경우 private_data는 처음 4바이트를 잘라내어 ADS가 예상과 다른 값을 수신할 수 있습니다.

고급 CloudWatch Logs Insights 쿼리

광고 삽입 문제의 자세한 문제 해결을 위해 다음과 같은 특수 CloudWatch Logs Insights 쿼리를 사용합니다.

크리에이티브 IDs 찾기

ads_interaction_log의 FILLED_AVAIL 이벤트에서 크리에이티브 IDs를 식별하려면

fields @timestamp, sessionId, eventType | filter sessionId like /sessionId/ and eventType!='BEACON_FIRED' | sort @timestamp desc
참고

를 조사 중인 실제 세션 IDsessionId로 바꿉니다.

포괄적인 세션 분석

특정 세션의 광고 삽입 동작에 대한 자세한 분석:

fields @timestamp, sessionId, eventType, creativeId, skipReason, adBreakIndex | filter sessionId = "your-session-id-here" | filter eventType in ["FILLED_AVAIL", "SKIPPED_AVAIL", "MAKING_ADS_REQUEST"] | sort @timestamp asc | limit 100

NEW_CREATIVE 분석 건너뛰기

NEW_CREATIVE 광고 건너뛰기의 패턴을 분석하려면:

fields @timestamp, sessionId, creativeId, skipReason, MediaFileSourceUrl | filter skipReason = "NEW_CREATIVE" | stats count() by creativeId, MediaFileSourceUrl | sort count desc | limit 50

광고 건너뛰기를 방지하는 모범 사례

다음 모범 사례를 구현하여 광고 건너뛰기 문제를 최소화합니다.

  • 광고 미리 가져오기 구현: MediaTailor의 미리 가져오기 기능을 사용하여 재생 전에 광고가 트랜스코딩되도록 합니다. 구현 세부 정보는 섹션을 참조광고 미리 가져오기하세요.

  • 일관된 크리에이티브 IDs 유지: 광고 결정 서버가 세션 간에 동일한 광고 콘텐츠에 대해 일관된 크리에이티브 IDs를 사용하는지 확인합니다.

  • 적절한 기간 형식 확인: ISO 8601 형식 대신 EXT-X-CUE-OUT 기간 파라미터에 정수 값을 사용합니다.

  • VOD 최적화 구성: 서버 로드를 줄이기 위해 여러 광고 중단이 있는 VOD 스트림에 대해 maxConcurrentAdsRequests를 설정합니다.

  • 트랜스코딩 패턴 모니터링: CloudWatch 로그에서 트랜스코딩 효율성을 모니터링하고 트랜스코딩 문제를 나타내는 패턴이 발견되면 AWS Support에 문의하세요.

  • ETAG 일관성 확인: 불필요한 재트랜스코딩을 방지하기 위해 미디어 파일 URIs 동일한 콘텐츠에 대해 일관된지 확인합니다.

  • 체계적인 문제 해결 구현: 구조화된 접근 방식을 따릅니다. 건너뛰기 이유를 식별하고, 근본 원인을 분석하고, 해결을 구현하고, 수정 사항을 검증합니다.

  • ADS 성능 최적화: 광고 결정 서버가 빠르게 응답하고 최대 트래픽 볼륨을 처리하도록 구성합니다.

  • 적절한 오류 처리 구현: 광고를 삽입할 수 없을 때 광고 시간을 채우도록 슬레이트 콘텐츠를 구성합니다.

  • 광고 삽입 지표 모니터링: CloudWatch 경보를 설정하여 광고 건너뛰기 문제를 조기에 감지합니다.

  • 철저한 테스트: 다양한 디바이스 및 네트워크 조건에서 광고 삽입 워크플로를 검증합니다.

  • 폴백 전략 구현: 기본 광고 소스가 실패할 때 백업 광고 소스 또는 기본 광고를 구성합니다.

광고 건너뛰기 문제 해결에 대한 자세한 내용은 다음 관련 주제를 참조하세요.