View a markdown version of this page

문제 해결 및 모니터링 - AWS Elemental MediaTailor

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

문제 해결 및 모니터링

이 페이지에서는 수율 최적화 성능을 모니터링하고, 일반적인 문제를 진단하고, 구성이 올바르게 작동하는지 확인할 수 있습니다.

Metrics

MediaTailor는 수율 최적화에 대해 다음과 같은 CloudWatch 지표를 게시합니다. 달리 명시되지 않는 한 모든 지표는 configurationName차원과 함께 내보내집니다.

입찰 요청 지표

지표 설명
YieldOptimization.BidRequest 입찰 요청 기회가 식별되면 1로 내보내집니다.
YieldOptimization.BidResponse 성공적인 입찰 응답이 수신되면 1로 내보내집니다.
YieldOptimization.BidDuration 입찰에서 요청된 중단 기간(초)으로, 가용 기간에서 기본 광고 기간을 뺀 값에서 계산됩니다.
YieldOptimization.Latency APS까지의 왕복 지연 시간을 밀리초 단위로 표시합니다.
YieldOptimization.NoBid APS가 HTTP 204(일치하는 수요 없음)를 반환할 때 1로 내보내집니다. 요청 자체가 유효했습니다.
YieldOptimization.BidRequestThrottled APS가 HTTP 429(제한됨)를 반환할 때 1로 내보내집니다. APS가 역압을 적용하고 있습니다. 다시 시도하기 전에 다시 시작합니다.

광고 삽입 지표

지표 설명
YieldOptimization.AdsInserted 가용 영역에 삽입된 YO 광고 수입니다.
YieldOptimization.AdsReturned BidResponse에서 반환된 광고 수(필터링 전). 0보다 큰 경우에만 내보내집니다.
YieldOptimization.FilledDuration YO 광고로 채워진 기간(ms)입니다.
YieldOptimization.UnfilledDuration 입찰 요청에서 APS로 전송된 기간(ms)(기회 차이).
YieldOptimization.FillRate 가용 시간당 채우기 속도: 트랜스코딩된 YO 기간을 미리 채워지지 않은 기간으로 나눈 값입니다. 분자는 트랜스코딩되고 분모는 VAST 기반(범퍼를 빼지 않음)이므로 값이 1.0을 초과할 수 있습니다.

수익 및 요금 지표

지표 설명
YieldOptimization.Revenue oRTB 입찰 응답의 price 속성에서 얻은 고객의 총 수익입니다. 삽입된 광고의 가격 합계입니다.
YieldOptimization.IndicativeBidRevenue 모든 RETURNED 입찰(노출당 입찰 가격, 삽입당 입찰 가격 아님)의 압축당 표시 값 합계입니다. 사용 중단 기간 Revenue 동안와 함께 이중 방출되며 대시보드가 전환되면 제거됩니다. 새 대시보드Revenue에를 사용합니다.
YieldOptimization.BidPriceAdsInserted Yield Optimization에서 삽입한 각 광고의 CPM 가격입니다. 입찰 응답cur(통화) 속성으로 측정됩니다. 고객당 방출되지 않으므로 계정 전체에 적용됩니다.
YieldOptimization.BidPriceAdsReturned BidResponse에 반환된 각 입찰의 CPM 가격(삽입으로 필터링하기 전). 로 측정됩니다cur. 고객당 방출되지 않으므로 계정 전체에 적용됩니다.

오류 및 지표 건너뛰기

지표 설명
YieldOptimization.Errors 연결 오류, 응답 처리 오류 또는 예상치 못한 예외의 경우 1로 내보내집니다. 또한 성공 시 0으로 내보내집니다(SampleCount가 아닌 Sum 사용).
YieldOptimization.Timeouts APS 요청 시간이 초과되면 1로 내보내집니다. 또한 성공 시 0으로 내보내집니다(SampleCount가 아닌 Sum 사용).
YieldOptimization.BidRequestConfigurationError 템플릿 또는 입찰 구성이 실패하면(필드 누락, 잘못된 JSON) 1로 내보내집니다.
YieldOptimization.SkipMinUnfilledDurationNotExceeded 채워지지 않은 기간이 임계값 미만이어서 YO를 건너뛰면 1로 내보내집니다.
YieldOptimization.SkipPersonalizationTimeoutExceeded 개인화 시간이 충분하지 않아 YO를 건너뛰면 1로 내보내집니다.
중요

YieldOptimization.Errors 및 YieldOptimization.Timeouts는 요청이 성공할 때마다 0으로 내보내집니다. CloudWatch에서 Sum(SampleCount 아님)을 사용하여 실제 오류 또는 제한 시간 수를 가져옵니다. NoBid 및 BidRequestThrottled는에서 계산되지 않습니다Errors. 이는 합법적인 비수요 및 역압 조건에 대한 별도의 신호입니다.

로그 이벤트

수율 최적화는 MidasMMSService/ads_interaction_log 로그 그룹에서 이벤트를 생성합니다.

이벤트 유형 설명
RAW_BID_REQUEST APS로 전송된 전체 OpenRTB 입찰 요청 JSON입니다. 이를 사용하여 템플릿 보간을 확인합니다.
RAW_BID_RESPONSE 입찰 요금 및 VAST XML을 포함하여 APS의 원시 OpenRTB 입찰 응답입니다.
FILLED_AVAIL 모든 광고가 포함된 전체 가용 시간입니다. YO 광고에는 bidId, , bidPrice, 및이 fillMode: "YIELD_OPTIMIZATION" 포함되어 currency impressionId있습니다seatId.

오류 이벤트는 YieldOptimizationSupport, OrtbBidRequestBuilder, HttpOrtbRequestSubmitter및와 같은 로거와 MidasMMSService/application.log 함께에서 발생합니다OrtbResponseProcessor.

CloudWatch Insights 쿼리 예제

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

로그 그룹: MidasMMSService/application.log

입찰 요청 수와 응답 수 비교

fields @timestamp, sessionId, eventType | filter awsAccountId = 'YOUR_ACCOUNT_ID' and (eventType = 'RAW_BID_REQUEST' or eventType = 'RAW_BID_RESPONSE') | stats count(*) by eventType

로그 그룹: MidasMMSService/ads_interaction_log

채워진 가능 구간에서 YO 광고 찾기

각 FILLED_AVAIL 이벤트에는 creativeAds 배열이 포함됩니다. 해당 배열 내의 YO 광고에는 fillMode: "YIELD_OPTIMIZATION" , bidId, impressionId, 및 추가 입찰 메타데이터bidPriceseatId가 포함됩니다currency. 이를 사용하여 YO로 채워진 가용 시간, 가용 시간당 삽입된 YO 광고 수, 입찰당 수익 어트리뷰션을 확인할 수 있습니다.

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

특정 세션에 대한 개별 YO 광고 항목(입찰 ID 및 가격)을 가져오려면:

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

결과 creativeAds 배열 클라이언트 측에서가 있는 항목을 필터링합니다fillMode == "YIELD_OPTIMIZATION".

로그 그룹: MidasMMSService/ads_interaction_log

해결되지 않은 템플릿 변수 확인

fields @timestamp, sessionId, @message | filter awsAccountId = 'YOUR_ACCOUNT_ID' and eventType = 'RAW_BID_REQUEST' and @message like /\{[A-Z_]+\}/ | sort @timestamp desc | limit 20

로그 그룹: MidasMMSService/ads_interaction_log

YO 지연 시간 및 성공률 측정

fields @timestamp, @message | filter customerId = 'YOUR_ACCOUNT_ID' and (@message like /YieldOptimization/ or @message like /ortb_/) | limit 10000

로그 그룹: MidasMMSService/service_log

참고

service_log는 계정 ID 필드에 customerId (가 아님awsAccountId)를 사용합니다.

수율 리프트 계산

수율 최적화의 수익 영향을 측정하려면 다음을 사용하여 CloudWatch 대시보드를 생성합니다.

  1. 증분 채우기 속도: 삽입된 광고로 이어지는 YO 기회의 비율을 Sum(YieldOptimization.AdsInserted) / Sum(YieldOptimization.BidRequest) 보여줍니다. 또는 가용성별 네이티브 지표Average(YieldOptimization.FillRate)에를 사용합니다.

  2. 시간당 수익: 시간 Sum(YieldOptimization.Revenue) 경과에 따른는 YO의 총 고객당 수익을 보여줍니다.는 계정 전체의 평균 CPM을 Sum(YieldOptimization.BidPriceAdsInserted) 제공합니다.

  3. 채워진 기간:에 Sum(YieldOptimization.FilledDuration) 대해 요청된 기간이 실제로 채워진 정도를 Sum(YieldOptimization.BidDuration) 보여줍니다.

일반적인 문제

수율 최적화가 트리거되지 않음

증상 Check]를 선택합니다 해결 방법
YO 지표가 전혀 없음 재생 구성에 YO가 구성되어 있습니까? 콘솔 또는 API에서 YO를 활성화합니다.
SkipMinUnfilledDurationNotExceeded 방출 기본 ADS가 대부분의 휴식 시간을 채우고 있음 기본 채우기면 충분함을 낮추MinimumUnfilledDuration거나 수락합니다.
SkipPersonalizationTimeoutExceeded 방출 기본 ADS가 너무 느려 YO에 대한 시간이 없습니다. 기본 ADS 지연 시간을 최적화하거나 개인화 제한 시간 SDC 구성을 확인합니다.

입찰 요청 실패

증상 Check]를 선택합니다 해결 방법
BidRequestConfigurationError 지표 템플릿에 필수 필드가 누락되었거나 비어 있음 특정 오류(예: app.bundle is required)가 application.log 있는지 확인합니다. 템플릿을 수정하거나 플레이어 파라미터가 전송되었는지 확인합니다.
APS의 HTTP 204 YieldOptimization.NoBid 증분 APS가 no-bid를 반환했습니다. 오류가 아닙니다. 자리 표시자 값({UPPER_CASE} 패턴)RAW_BID_REQUEST이 있는지 검사하고 번들 및 저장소가 실제 하위 bidfloor인지 확인합니다.
APS의 HTTP 429 YieldOptimization.BidRequestThrottled 증분 APS가 제한되고 있습니다. 요청 속도를 취소합니다. 영구적일 경우 APS 지원팀에 문의하여 TPS 한도를 높이세요.
APS의 HTTP 400 잘못된 요청 JSON 에서 APS 오류 메시지를 확인합니다RAW_BID_RESPONSE. JSON 구조가 OpenRTB 사양과 일치하는지 확인합니다.
APS의 HTTP 500/503 APS 서버 오류 또는 오버로드 일시적인 문제입니다. YieldOptimization.Errors 모니터링. 영구적일 경우 APS 지원팀에 문의하십시오.

반환되었지만 삽입되지 않은 광고

증상 Check]를 선택합니다 해결 방법
AdsReturned > 0이지만 AdsInserted = 0 삽입 중 필터링된 광고 로그FILLED_AVAIL에 중복된 크리에이티브, 남은 임계값 초과 또는 광고 변형을 찾을 수 없음(트랜스코딩이 완료되지 않음)이 있는지 확인합니다.

APS 오류 코드 참조

코드 의미 일반적인 원인
200 입찰 성공 올바르게 작동합니다.
204 입찰 없음 요청이 유효하지만 사용 가능한 입찰이 없습니다. 이는 템플릿의 오류를 나타내지 않습니다.
400 잘못된 요청 잘못된 JSON, OpenRTB 사양당 필수 필드 누락.
500 서버 오류 APS 내부 문제, 서비스 제한, 제한 시간.
503 서비스 오버로드됨 APS 역압. 적극적으로 재시도하지 마십시오.
429 병목 현상 발생 APS가 요청을 수동으로 제한하기 시작했습니다. 영구적일 경우 APS 지원팀에 문의하십시오.