For debugging and logging purposes, successfully loaded ads provide a GADResponseInfo
object. This object contains information about the ad it loaded, in addition to
information about the mediation waterfall used to load the ad.
For cases where an ad loads successfully, the ad object has a GADResponseInfo
property. For example, GADInterstitialAd.responseInfo
gets the response info for a loaded interstitial ad.
For cases where ads fail to load and only an error is available, the GADResponseInfo
is available using the key GADErrorUserInfoKeyResponseInfo
on the error's userInfo
dictionary.
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
Here is sample output showing the debugging data returned for a loaded ad:
**
Respo
nse
I
nf
o
**
Respo
nse
ID
:
Bm
n
CZaSbE_
6
Mur
8
P
5
su
8
gAY
Ne
t
work
:
GADMAdap
ter
GoogleAdMobAds
**
Loaded
Adap
ter
Respo
nse
**
Ne
t
work
:
GADMAdap
ter
GoogleAdMobAds
Ad
Source
Name
:
AdMob
Ne
t
work
Ad
Source
ID
:
Ad
Source
I
nstan
ce
Name
:
AdMob
(de
fault
)
Ad
Source
I
nstan
ce
ID
:
AdMob
(de
fault
)
AdU
n
i
t
Mappi
n
g
:
{
pubid
=
"ca-pub-9939518381636264//21775744923/example/rewarded-interstitial/cak=no_cache&cadc=b0&caqid=BmnCZZjMEvzpkPIP5cWfQA"
;
}
Error
:
(
null
)
La
ten
cy
:
2.724
**
Ex
tras
Dic
t
io
nar
y
**
{
"creative_id"
=
"138471856178"
;
"line_item_id"
=
"6707237225"
;
}
**
Media
t
io
n
li
ne
i
te
ms
**
E
ntr
y
(
1
)
Ne
t
work
:
GADMAdap
ter
GoogleAdMobAds
Ad
Source
Name
:
AdMob
Ne
t
work
Ad
Source
ID
:
Ad
Source
I
nstan
ce
Name
:
AdMob
(de
fault
)
Ad
Source
I
nstan
ce
ID
:
AdMob
(de
fault
)
AdU
n
i
t
Mappi
n
g
:
{
pubid
=
"ca-pub-9939518381636264//21775744923/example/rewarded-interstitial/cak=no_cache&cadc=b0&caqid=BmnCZZjMEvzpkPIP5cWfQA"
;
}
Error
:
(
null
)
La
ten
cy
:
2.724
Properties on GADResponseInfo
include:
adNetworkInfoArray
GADAdNetworkResponseInfo
containing metadata for each adapter included in the ad response. Can be
used to debug the waterfall mediation and bidding execution. The order of
the list matches the order of the mediation waterfall for this ad request. See Adapter Response Info for more information.
loadedAdNetworkResponseInfo
GADAdNetworkResponseInfo
corresponding to the adapter
that loaded the ad.adNetworkClassName
responseIdentifier
extrasDictionary
-
creative_id
: The line item ID of the selected ad. Returned for reservation ads only. -
line_item_id
: The creative ID of the selected ad. Returned for reservation ads only.
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" ]; }]; }
Adapter Response Info
GADAdNetworkResponseInfo
contains metadata for each adapter included in the ad response which can be used
to debug the waterfall mediation and bidding execution. The order of the list
matches the order of the mediation waterfall for the ad request.
Here is sample GADAdNetworkResponseInfo
output:
Ne
t
work
:
GADMAdap
ter
GoogleAdMobAds
Ad
Source
Name
:
AdMob
Ne
t
work
Ad
Source
ID
:
Ad
Source
I
nstan
ce
Name
:
AdMob
(de
fault
)
Ad
Source
I
nstan
ce
ID
:
AdMob
(de
fault
)
AdU
n
i
t
Mappi
n
g
:
{
pubid
=
"ca-pub-9939518381636264//21775744923/example/rewarded-interstitial/cak=no_cache&cadc=b0&caqid=BmnCZZjMEvzpkPIP5cWfQA"
;
}
Error
:
(
null
)
La
ten
cy
:
2.724
For each ad network, GADAdNetworkResponseInfo
provides the following
properties:
Property | Description |
---|---|
error
|
The error associated with the request to the network. Returns nil
if the network successfully loaded an ad or if the network
was not attempted. |
adSourceId
|
The ad source ID associated with this adapter response. |
adSourceInstanceId
|
The ad source instance ID associated with this adapter response. |
adSourceInstanceName
|
The ad source instance name associated with this adapter response. Returns an empty string if not filled by a yield group. |
adSourceName
|
The ad source representing the specific ad network that serves the impression. |
adNetworkClassName
|
The class name of the ad network adapter that loaded the ad. |
adUnitMapping
|
The network configuration set from the Ad Manager UI. |
latency
|
The amount of time the ad network spent loading an ad. Returns 0
if the network was not attempted. |
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 ; }]; }