정상적으로 로드된 광고는 디버깅 및 로깅을 위해 GADResponseInfo 객체를 제공합니다. 이 객체에는 로드된 광고에 대한 정보가 포함되며, 해당 광고를 로드할 때
사용된 연쇄 광고 호출 조정에 대한 정보도 함께 포함됩니다.
광고가 성공적으로 로드되면 광고 객체는
GADResponseInfo 속성을 가집니다. 예를 들어
GADInterstitialAd.responseInfo는
로드된 전면 광고의 응답 정보를 가져옵니다.
광고가 로드되지 않고 오류만 발생하는 경우에는
오류의 userInfo 사전에 있는
GADErrorUserInfoKeyResponseInfo 키를 통해 GADResponseInfo를 이용할 수 있습니다.
Swift
fileprivate func loadInterstitial() { AdManagerInterstitialAd.load( with: "/21775744923/example/interstitial", 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:@"/21775744923/example/interstitial" 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: BmnCZaSbE_6Mur8P5su8gAY
Network: GADMAdapterGoogleAdMobAds
** Loaded Adapter Response **
Network: GADMAdapterGoogleAdMobAds
Ad Source Name:AdMob Network
Ad Source ID:
Ad Source Instance Name:AdMob (default)
Ad Source Instance ID:AdMob (default)
AdUnitMapping:
{
pubid = "ca-pub-9939518381636264//21775744923/example/rewarded-interstitial/cak=no_cache&cadc=b0&caqid=BmnCZZjMEvzpkPIP5cWfQA";
}
Error: (null)
Latency: 2.724
** Extras Dictionary **
{
"creative_id" = "138471856178";
"line_item_id" = "6707237225";
}
** Mediation line items **
Entry (1)
Network: GADMAdapterGoogleAdMobAds
Ad Source Name:AdMob Network
Ad Source ID:
Ad Source Instance Name:AdMob (default)
Ad Source Instance ID:AdMob (default)
AdUnitMapping:
{
pubid = "ca-pub-9939518381636264//21775744923/example/rewarded-interstitial/cak=no_cache&cadc=b0&caqid=BmnCZZjMEvzpkPIP5cWfQA";
}
Error: (null)
Latency: 2.724
GADResponseInfo의 속성에는
다음이 포함됩니다.
| 속성 | 설명 |
|---|---|
adNetworkInfoArray |
광고 응답에 포함된 각 어댑터의 메타데이터를
포함하는 GADAdNetworkResponseInfo 목록을 반환합니다. 폭포식 구조 미디에이션 및 입찰 실행을
디버깅하는 데 사용될 수 있습니다. 목록의 순서는 이 광고 요청에 대한
연쇄 광고 호출 조정의 순서와 일치합니다.
자세한 내용은 어댑터 응답 정보를 참고하세요. |
loadedAdNetworkResponseInfo |
광고를 로드한
어댑터에 해당하는 GADAdNetworkResponseInfo를 반환합니다. |
adNetworkClassName |
광고를 로드한 광고 네트워크의 미디에이션 어댑터 클래스 이름을 반환합니다. |
responseIdentifier |
응답 식별자는 광고 응답의 고유 식별자입니다. 이 식별자는 광고 심사 센터(ARC)에서 광고를 식별 및 차단할 때 사용될 수 있습니다. |
extrasDictionary |
광고 응답에 대한 추가 정보를 반환합니다. 부가 기능은 다음 키를
반환할 수 있습니다.
|
Swift
fileprivate func loadInterstitial() { AdManagerInterstitialAd.load( with: "/21775744923/example/interstitial", 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 creativeID = responseInfo?.extrasDictionary["creative_id"] let lineItemID = responseInfo?.extrasDictionary["line_item_id"] } }
Objective-C
- (void)loadInterstitial { [GADInterstitialAd loadWithAdUnitID:@"/21775744923/example/interstitial" 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 *creativeID = responseInfo.extrasDictionary[@"creative_id"]; NSString *lineItemID = responseInfo.extrasDictionary[@"line_item_id"]; }]; }
어댑터 응답 정보
GADAdNetworkResponseInfo에는 광고 응답에 포함된 각 어댑터의 메타데이터가 포함되며
이 메타데이터를 사용하면 폭포식
구조 미디에이션 및 입찰 실행을 디버깅할 수 있습니다. 목록의 순서는
이 광고 요청에 대한 연쇄 광고 호출 조정의 순서와 일치합니다.
다음은 샘플 GADAdNetworkResponseInfo 출력입니다.
Network: GADMAdapterGoogleAdMobAds
Ad Source Name:AdMob Network
Ad Source ID:
Ad Source Instance Name:AdMob (default)
Ad Source Instance ID:AdMob (default)
AdUnitMapping:
{
pubid = "ca-pub-9939518381636264//21775744923/example/rewarded-interstitial/cak=no_cache&cadc=b0&caqid=BmnCZZjMEvzpkPIP5cWfQA";
}
Error: (null)
Latency: 2.724
GADAdNetworkResponseInfo는 각 광고 네트워크에 대해 다음 속성을
제공합니다.
| 속성 | 설명 |
|---|---|
error |
네트워크에 보낸 요청과 관련된 오류입니다. 네트워크에서
광고를 정상적으로 로드했거나 네트워크에
광고 요청을 보내지 않았으면 nil을 반환합니다. |
adSourceId |
이 어댑터 응답과 연결된 광고 소스 ID입니다. |
adSourceInstanceId |
이 어댑터 응답과 연결된 광고 소스 인스턴스 ID입니다. |
adSourceInstanceName |
이 어댑터 응답과 연결된 광고 소스 인스턴스 이름입니다. 수익 그룹에서 채우지 않으면 빈 문자열을 반환합니다. |
adSourceName |
노출을 게재하는 특정 광고 네트워크를 나타내는 광고 소스입니다. |
adNetworkClassName |
광고를 로드한 광고 네트워크 어댑터의 클래스 이름입니다. |
adUnitMapping |
Ad Manager UI에서 설정된 네트워크 구성입니다. |
latency |
광고 네트워크에서 광고를 로드하는 데 걸린 시간입니다. 네트워크에 광고 요청을 보내지 않았으면
0이 반환됩니다. |
Swift
fileprivate func loadInterstitial() { AdManagerInterstitialAd.load( with: "/21775744923/example/interstitial", 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:@"/21775744923/example/interstitial" 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; }]; }