정상적으로 로드된 광고는 디버깅 및 로깅을 위해 GADResponseInfo 객체를 제공합니다. 이 객체에는 로드한 광고에 대한 정보가 포함되며, 해당 광고를 로드할 때 사용된 연쇄 광고 호출 조정에 대한 정보도 함께 포함됩니다.
광고가 정상적으로 로드되면 광고 객체에 GADResponseInfo 속성이 있습니다. 예를 들어 GADInterstitialAd.responseInfo는 로드된 전면 광고의 응답 정보를 가져옵니다.
광고는 로드되지 않고 오류만 발생하는 경우에는 오류의 userInfo 사전에 있는 GADErrorUserInfoKeyResponseInfo 키를 통해 GADResponseInfo를 이용할 수 있습니다.
Swift
fileprivate func loadInterstitial() { InterstitialAd.load( with: "ca-app-pub-3940256099942544/4411468910", request: request ) { (ad, error) in if let error = error { let responseInfo = (error as NSError).userInfo[GADErrorUserInfoKeyResponseInfo] as? ResponseInfo print("\(String(describing: responseInfo))") return } let responseInfo = ad?.responseInfo print("\(String(describing: responseInfo))") } }
Objective-C
- (void)loadInterstitial { [GADInterstitialAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910" request:request completionHandler:^(GADInterstitialAd *ad, NSError *error) { if (error) { GADResponseInfo *responseInfo = error.userInfo[GADErrorUserInfoKeyResponseInfo]; NSLog(@"%@", responseInfo.description); return; } GADResponseInfo *responseInfo = ad.responseInfo; NSLog(@"%@", responseInfo.description); }]; }
응답 정보
다음은 로드된 광고에 대해 반환된 디버깅 데이터를 보여주는 샘플 출력입니다.
** Response Info **
Response ID: CLz5r-KMtfoCFQvv7QodfGAMHw
Network: GADMAdapterGoogleAdMobAds
** Loaded Adapter Response **
Network: GADMAdapterGoogleAdMobAds
Ad Source Name:Reservation campaign
Ad Source ID:7068401028668408324
Ad Source Instance Name:[DO NOT EDIT] Publisher Test Interstitial
Ad Source Instance ID:[DO NOT EDIT] Publisher Test Interstitial
AdUnitMapping:
{
}
Error: (null)
Latency: 0.357
** Extras Dictionary **
{
"mediation_group_name" = Campaign;
}
** Mediation line items **
Entry (1)
Network: GADMAdapterGoogleAdMobAds
Ad Source Name:Reservation campaign
Ad Source ID:7068401028668408324
Ad Source Instance Name:[DO NOT EDIT] Publisher Test Interstitial
Ad Source Instance ID:[DO NOT EDIT] Publisher Test Interstitial
AdUnitMapping:
{
}
Error: (null)
Latency: 0.357
GADResponseInfo의 속성에는 다음이 포함됩니다.
| 속성 | 설명 |
|---|---|
adNetworkInfoArray |
광고 응답에 포함된 각 어댑터의 메타데이터를 포함하는 GADAdNetworkResponseInfo 목록을 반환합니다. 폭포식 구조 미디에이션 및 입찰 실행을 디버깅하는 데 사용될 수 있습니다. 목록의 순서는 이 광고 요청의 연쇄 광고 호출 조정 순서와 일치합니다.
자세한 내용은 어댑터 응답 정보를 참고하세요. |
loadedAdNetworkResponseInfo |
광고를 로드한 어댑터에 해당하는 GADAdNetworkResponseInfo를 반환합니다. |
adNetworkClassName |
광고를 로드한 광고 네트워크의 미디에이션 어댑터 클래스 이름을 반환합니다. |
responseIdentifier |
응답 식별자는 광고 응답의 고유한 식별자입니다. 이 식별자는 광고 심사 센터(ARC)에서 광고를 식별 및 차단할 때 사용될 수 있습니다. |
extrasDictionary |
광고 응답에 대한 추가 정보를 반환합니다. 추가 정보에서 다음 키를 반환할 수 있습니다.
|
Swift
fileprivate func loadInterstitial() { InterstitialAd.load( with: "ca-app-pub-3940256099942544/4411468910", request: request ) { (ad, error) in let responseInfo = ad?.responseInfo let responseIdentifier = responseInfo?.responseIdentifier let adNetworkClassName = responseInfo?.adNetworkClassName let adNetworkInfoArray = responseInfo?.adNetworkInfoArray let loadedAdNetworkResponseInfo = responseInfo?.loadedAdNetworkResponseInfo let mediationGroupName = responseInfo?.extrasDictionary["mediation_group_name"] let mediationABTestName = responseInfo?.extrasDictionary["mediation_ab_test_name"] let mediationABTestVariant = responseInfo?.extrasDictionary["mediation_ab_test_variant"] } }
Objective-C
- (void)loadInterstitial { [GADInterstitialAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910" request:request completionHandler:^(GADInterstitialAd *ad, NSError *error) { GADResponseInfo *responseInfo = ad.responseInfo; NSString *responseIdentifier = responseInfo.responseIdentifier; NSString *adNetworkClassName = responseInfo.adNetworkClassName; NSArray *adNetworkInfoArray = responseInfo.adNetworkInfoArray; GADAdNetworkResponseInfo *loadedAdNetworkResponseInfo = responseInfo.loadedAdNetworkResponseInfo; NSString *mediationGroupName = responseInfo.extrasDictionary[@"mediation_group_name"]; NSString *mediationABTestName = responseInfo.extrasDictionary[@"mediation_ab_test_name"]; NSString *mediationABTestVariant = responseInfo.extrasDictionary[@"mediation_ab_test_variant"]; }]; }
어댑터 응답 정보
GADAdNetworkResponseInfo에는 광고 응답에 포함된 각 어댑터의 메타데이터가 포함되며 이 메타데이터를 사용하면 폭포식 구조 미디에이션 및 입찰 실행을 디버깅할 수 있습니다. 목록의 순서는 광고 요청의 연쇄 광고 호출 조정 순서와 일치합니다.
다음은 샘플 GADAdNetworkResponseInfo 출력입니다.
Network: GADMAdapterGoogleAdMobAds
Ad Source Name:Reservation campaign
Ad Source ID:7068401028668408324
Ad Source Instance Name:[DO NOT EDIT] Publisher Test Interstitial
Ad Source Instance ID:[DO NOT EDIT] Publisher Test Interstitial
AdUnitMapping:
{
}
Error: (null)
Latency: 0.277
GADAdNetworkResponseInfo는 각 광고 네트워크에 대해 다음 속성을 제공합니다.
| 속성 | 설명 |
|---|---|
error |
네트워크에 보낸 요청과 관련된 오류입니다. 네트워크에서 광고를 정상적으로 로드하지 않았거나 네트워크에 광고 요청을 보내지 않았으면 nil이 반환됩니다. |
adSourceId |
이 어댑터 응답과 연결된 광고 소스 ID입니다.
캠페인의 경우 미디에이션된 광고 캠페인 목표 유형에 대해 6060308706800320801가 반환되고 노출 및 클릭 목표 유형에 대해 7068401028668408324이 반환됩니다. 광고 네트워크에서 광고를 게재할 때 사용할 수 있는 광고 소스 ID 목록은 광고 소스를 참고하세요. |
adSourceInstanceId |
이 어댑터 응답과 연결된 광고 소스 인스턴스 ID입니다. |
adSourceInstanceName |
이 어댑터 응답과 연결된 광고 소스 인스턴스 이름입니다. |
adSourceName |
노출을 게재하는 특정 광고 네트워크를 나타내는 광고 소스입니다. 캠페인의 경우 미디에이션된 광고 캠페인 목표 유형에 대해 Mediated House Ads가 반환되고 노출 및 클릭 목표 유형에 대해 Reservation Campaign이 반환됩니다. 광고 네트워크에서 광고를 게재할 때 사용할 수 있는 광고 소스 이름 목록은 광고 소스를 참고하세요. |
adNetworkClassName |
광고를 로드한 광고 네트워크 어댑터의 클래스 이름입니다. |
adUnitMapping |
AdMob UI에서 설정되는 네트워크 구성입니다. |
latency |
광고 네트워크에서 광고를 로드하는 데 걸린 시간입니다. 네트워크에 광고 요청을 보내지 않았으면 0이 반환됩니다. |
Swift
fileprivate func loadInterstitial() { InterstitialAd.load( with: "ca-app-pub-3940256099942544/4411468910", request: request ) { (ad, error) in let responseInfo = ad?.responseInfo let loadedAdNetworkResponseInfo = responseInfo?.loadedAdNetworkResponseInfo let adNetworkError = loadedAdNetworkResponseInfo?.error let adSourceId = loadedAdNetworkResponseInfo?.adSourceID let adSourceInstanceId = loadedAdNetworkResponseInfo?.adSourceInstanceID let adSourceInstanceName = loadedAdNetworkResponseInfo?.adSourceInstanceName let adSourceName = loadedAdNetworkResponseInfo?.adSourceName let adNetworkClassName = loadedAdNetworkResponseInfo?.adNetworkClassName let adUnitMapping = loadedAdNetworkResponseInfo?.adUnitMapping let latency = loadedAdNetworkResponseInfo?.latency } }
Objective-C
- (void)loadInterstitial { [GADInterstitialAd loadWithAdUnitID:@"ca-app-pub-3940256099942544/4411468910" request:request completionHandler:^(GADInterstitialAd *ad, NSError *error) { GADResponseInfo *responseInfo = ad.responseInfo; GADAdNetworkResponseInfo *loadedAdNetworkResponseInfo = responseInfo.loadedAdNetworkResponseInfo; NSError *adNetworkError = loadedAdNetworkResponseInfo.error; NSString *adSourceId = loadedAdNetworkResponseInfo.adSourceID; NSString *adSourceInstanceId = loadedAdNetworkResponseInfo.adSourceInstanceID; NSString *adSourceInstanceName = loadedAdNetworkResponseInfo.adSourceInstanceName; NSString *adSourceName = loadedAdNetworkResponseInfo.adSourceName; NSString *adNetworkClassName = loadedAdNetworkResponseInfo.adNetworkClassName; NSDictionary*adUnitMapping = loadedAdNetworkResponseInfo.adUnitMapping; NSTimeInterval latency = loadedAdNetworkResponseInfo.latency; }]; }