기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
문제 해결 및 모니터링
이 페이지에서는 수율 최적화 성능을 모니터링하고, 일반적인 문제를 진단하고, 구성이 올바르게 작동하는지 확인할 수 있습니다.
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 대시보드를 생성합니다.
-
증분 채우기 속도: 삽입된 광고로 이어지는 YO 기회의 비율을
Sum(YieldOptimization.AdsInserted) / Sum(YieldOptimization.BidRequest)보여줍니다. 또는 가용성별 네이티브 지표Average(YieldOptimization.FillRate)에를 사용합니다. -
시간당 수익: 시간
Sum(YieldOptimization.Revenue)경과에 따른는 YO의 총 고객당 수익을 보여줍니다.는 계정 전체의 평균 CPM을Sum(YieldOptimization.BidPriceAdsInserted)제공합니다. -
채워진 기간:에
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 지원팀에 문의하십시오. |