광고 응답에 관한 정보 가져오기

정상적으로 로드된 광고는 디버깅 및 로깅을 위해 GADResponseInfo 객체를 제공합니다. 이 객체에는 로드된 광고에 관한 정보가 포함됩니다. 각 광고 형식 클래스에는 응답 정보를 가져오기 위한 속성이 있습니다. 예를 들어 전면 광고에서는 responseInfo 속성을 사용하세요.

광고는 로드되지 않고 오류만 발생하는 경우에는 오류의 userInfo 사전에 있는 GADErrorUserInfoKeyResponseInfo 키를 통해 GADResponseInfo를 이용할 수 있습니다.

Swift

func adView(_ bannerView: GADBannerView,
    didFailToReceiveAdWithError error: GADRequestError) {
    let responseInfo = error.userInfo[GADErrorUserInfoKeyResponseInfo] as? GADResponseInfo
}

Objective-C

- (void)adView:(GADBannerView *)bannerView didFailToReceiveAdWithError:(GADRequestError *)error {
  GADResponseInfo *responseInfo = error.userInfo[GADErrorUserInfoKeyResponseInfo];
}

응답 정보 속성

GADResponseInfo 객체의 속성에는 다음이 포함됩니다.

responseIdentifier
광고 응답의 고유 식별자로, 광고 심사 센터(ARC)에서 광고를 식별하고 차단하기 위해 사용할 수 있습니다.
adNetworkClassName
현재 광고를 가져온 광고 네트워크의 클래스 이름입니다. 이 속성에서는 다음과 같은 값이 반환됩니다.

광고 소스 클래스 이름
Google Ads GADGoogleAdNetworkClassName의 값
보상형 맞춤 이벤트 맞춤 이벤트의 클래스 이름
다른 모든 맞춤 이벤트 GADCustomEventAdNetworkClassName의 값
미디에이션 미디에이션 어댑터의 클래스 이름

adNetworkInfoArray

GADAdNetworkResponseInfo의 배열. 이 배열은 광고 요청의 미디에이션 폭포식 구조에 수신된 응답을 나타냅니다.

폭포식 구조의 각 광고 네트워크에 대해 GADAdNetworkResponseInfo는 다음을 제공합니다.

속성 설명
adNetworkClassName 광고 네트워크를 식별하는 클래스 이름입니다.
credentials AdMob UI에 설정된 네트워크 구성입니다.
error 네트워크에 보낸 요청과 관련된 오류입니다. 네트워크에서 광고를 정상적으로 로드하지 않았거나 네트워크에 광고 요청을 보내지 않았으면 nil이 반환됩니다.
latency 광고 네트워크에서 광고를 로드하는 데 걸린 시간입니다. 네트워크에 광고 요청을 보내지 않았으면 0이 반환됩니다.

이 속성을 쿼리하면 각 광고 요청에 대한 미디에이션 폭포식 구조의 결과를 세부적으로 파악할 수 있습니다.

샘플 코드

다음은 GADBannerViewDelegate 콜백 구현의 샘플 스니펫입니다.

Swift

func adViewDidReceiveAd(_ bannerView: GADBannerView) {
    print("adViewDidReceiveAd")
    if let responseInfo = bannerView.responseInfo {
      print(responseInfo)
    }
}

func adView(_ bannerView: GADBannerView,
    didFailToReceiveAdWithError error: GADRequestError) {
    print("didFailToReceiveAdWithError: \(error.localizedDescription)")
    // GADBannerView has the responseInfo property but this demonstrates accessing
    // response info from a returned NSError.
    if let responseInfo = error.userInfo[GADErrorUserInfoKeyResponseInfo] as? GADResponseInfo {
      print(responseInfo)
    }
}

Objective-C

- (void)adViewDidReceiveAd:(GADBannerView *)bannerView {
  NSLog(@"adViewDidReceiveAd");
  NSLog(@"\n%@", responseInfo);
}

- (void)adView:(GADBannerView *)bannerView didFailToReceiveAdWithError:(GADRequestError *)error {
  NSLog(@"didFailToReceiveAdWithError: %@", error.localizedDescription);
  // GADBannerView has the responseInfo property but this demonstrates accessing response info
  // from a returned NSError.
  GADResponseInfo *responseInfo = error.userInfo[GADErrorUserInfoKeyResponseInfo];
  NSLog(@"\n%@", responseInfo);
}

Google 모바일 광고 SDK 버전 7.60.0 이상을 사용하는 경우 출력이 다음과 같은 형식으로 표시됩니다.

  ** Response Info **
    Response ID: 4a_iXpjAJcyN5LcPx6y4mAc
    Network: GADMAdapterGoogleAdMobAds

  ** Mediation line items **
    Entry (1)
    Network: GADMAdapterGoogleAdMobAds
    Credentials:
{
}
    Error: (null)
    Latency: 0.252