본문으로 건너뛰기

응답 정보

NAM SDK 는 광고 로드 성공 또는 실패 시 디버깅 및 로깅 목적으로 활용할 수 있는 GFPLoadResponseInfo 객체를 제공합니다. 이 객체에는 광고 요청의 고유 식별자(Request ID), 각 구간별 소요 시간, 그리고 미디에이션 워터폴이 어떤 어댑터를 순서대로 시도했는지에 대한 내역이 담겨 있습니다.

응답 정보는 다음 두 가지 경로로 획득할 수 있습니다.

  • 로드 성공 시 : 로드된 광고 객체의 responseInfo 프로퍼티
  • 로드 실패 시 : 각 Delegate 의 didFailWithError:responseInfo: 콜백으로 전달되는 responseInfo 인자

획득 경로

광고 형식로드 성공로드 실패
배너adLoader:didReceiveBannerAd:bannerView.responseInfoadLoader:didFailWithError:responseInfo:
네이티브adLoader:didReceiveNativeAd:nativeAd.responseInfoadLoader:didFailWithError:responseInfo:
네이티브 심플adLoader:didReceiveNativeSimpleAd:nativeSimpleAd.responseInfoadLoader:didFailWithError:responseInfo:
전면형interstitialAdManager:didLoadAd:interstitialAd.responseInfointerstitialAdManager:didFailWithError:responseInfo:
보상형rewardedAdManager:didLoadAd:rewardedAd.responseInforewardedAdManager:didFailWithError:responseInfo:

응답 정보 확인 예제

GFPAdLoader 사용시

배너네이티브 그리고 네이티브 심플 광고의 로드를 지원하는 GFPAdLoader 를 사용하는 경우에는 아래 예시와 같이 광고 응답 정보를 확인할 수 있습니다.

func adLoader(_ unifiedAdLoader: GFPAdLoader!, didReceiveBannerAd bannerView: GFPBannerView!) {
print("banner ad response info: \(bannerView.responseInfo)")
}

func adLoader(_ unifiedAdLoader: GFPAdLoader!, didReceiveNativeAd nativeAd: GFPNativeAd!) {
print("native ad response info: \(nativeAd.responseInfo)")
}

func adLoader(_ unifiedAdLoader: GFPAdLoader!, didReceiveNativeSimpleAd nativeSimpleAd: GFPNativeSimpleAd!) {
print("native simple ad response info: \(nativeSimpleAd.responseInfo)")
}

func adLoader(_ unifiedAdLoader: GFPAdLoader!, didFailWithError error: GFPError!, responseInfo: GFPLoadResponseInfo!) {
print("on error response info: \(String(describing: responseInfo))")
}

GFPInterstitialAdManager 사용시

func interstitialAdManager(_ manager: GFPInterstitialAdManager, didLoadAd interstitialAd: GFPInterstitialAd) {
print("response info: \(interstitialAd.responseInfo)")
}

func interstitialAdManager(_ manager: GFPInterstitialAdManager, didFailWithError error: GFPError, responseInfo: GFPLoadResponseInfo!) {
print("response info: \(String(describing: responseInfo))")
}

GFPRewardedAdManager 사용시

func rewardedAdManager(_ manager: GFPRewardedAdManager, didLoadAd rewardedAd: GFPRewardedAd) {
print("response info: \(rewardedAd.responseInfo)")
}

func rewardedAdManager(_ manager: GFPRewardedAdManager, didFailWithError error: GFPError, responseInfo: GFPLoadResponseInfo!) {
print("response info: \(String(describing: responseInfo))")
}

로그 출력 예시

GFPLoadResponseInfo 를 그대로 로그로 출력하면 미디에이션 워터폴의 진행 내역까지 한 번에 확인할 수 있습니다.

[GFPLoadResponseInfo] requestID: 0f0f1d3c-..., adCallLatency: 0.083, adaptorLoadLatency: 0.402, totalLoadLatency: 0.485, adaptorResponses: (
"[GFPAdaptorResponseInfo] adaptorName: GFPSDKMediationDFP.GFPDFPBannerAdaptor, loadErrorLatency: 0.156, errorMessage: no ad to show",
"[GFPAdaptorResponseInfo] adaptorName: GFPNDABannerAdaptor, loadLatency: 0.246"
)

위 예시는 첫 번째 어댑터가 실패한 뒤 두 번째 어댑터에서 광고가 선출되었음을 의미합니다.

응답 정보

GFPLoadResponseInfo 객체의 프로퍼티에는 다음이 포함됩니다.

프로퍼티타입설명
requestIDNSString광고 요청에 대한 고유 식별자입니다. 특정 광고 요청에 문제가 발생했을 때 원인을 파악하는 데 유용한 키 값이 될 수 있습니다.
adCallLatencyNSNumber광고 서버에 요청을 보내고 응답을 받는 데 걸린 시간(초)입니다. 광고를 요청하지 않았거나 응답을 받지 못한 경우에는 0이 반환됩니다.
adaptorLoadLatencyNSNumber미디에이션 선출 과정이 시작된 시점부터 종료될 때까지 걸린 시간(초)입니다. 실패한 어댑터의 시도 시간도 포함됩니다. 광고 서버 응답을 받지 못해 미디에이션이 진행되지 않은 경우 0이 반환됩니다.
totalLoadLatencyNSNumber광고 서버에 요청을 보낸 시점부터 미디에이션 선출 과정이 종료될 때까지 걸린 전체 시간(초)입니다. 광고 서버 응답을 받지 못한 경우 0이 반환됩니다.
adContextNSString?선출된 광고의 광고 컨텍스트 문자열입니다. 광고 응답에 포함되지 않은 경우 nil 이 반환됩니다.
cridNSString?선출된 광고 소재의 Creative ID 입니다. 광고를 로드하는 데 성공한 광고가 없을 경우 nil 이 반환됩니다.
loadResponseList[GFPInternalResponseInfo]이 광고 요청에서 시도된 각 미디에이션 어댑터의 응답 정보 목록입니다. Waterfall 미디에이션 과정을 디버깅하는 데 사용될 수 있으며, 목록의 순서는 이 광고 요청의 미디에이션 호출 순서와 일치합니다.

어댑터 응답 정보

GFPInternalResponseInfo 는 미디에이션 과정 중에 처리되는 개별 미디에이션 어댑터에 대한 응답 정보를 포함하고, 이 객체의 프로퍼티에는 다음이 포함됩니다.

프로퍼티타입설명
adaptorNameNSString광고 네트워크를 식별하는 미디에이션 어댑터의 클래스 이름입니다. 어댑터 생성 전에 실패한 경우에는 값이 채워지지 않습니다.
loadLatencyNSNumber어댑터 내부에서 광고를 요청하고 로드하는 데 걸린 시간(초)입니다. 어댑터 내부에서 광고를 요청하지 않았거나 광고 요청이 실패했을 경우 0이 반환됩니다.
loadErrorLatencyNSNumber어댑터 내부에서 광고를 요청하고 오류가 발생하는 시점까지 걸린 시간(초)입니다. 어댑터 내부에서 광고를 요청하지 않았거나 광고 요청이 성공했을 경우 0이 반환됩니다.
errorMesageNSString어댑터 내부에서 발생한 오류 메시지입니다. 광고 응답이 비어 있는 경우에는 EMPTY 가 기록되며, 광고 요청이 성공했을 경우에는 값이 채워지지 않습니다.
errorCodeNSNumber?어댑터 내부에서 발생한 오류의 코드입니다. 오류 코드가 전달되지 않았거나 광고 요청이 성공했을 경우 nil 이 반환됩니다. 코드별 상세 내용은 광고 오류 문서를 참고하세요.
errorSubcodeNSString?어댑터 내부에서 발생한 오류의 서브 코드입니다. 서브 코드가 전달되지 않았거나 광고 요청이 성공했을 경우 nil 이 반환됩니다.