For debugging and logging purposes, successfully loaded ads provides a ResponseInfo
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 GetResponseInfo()
method. For example, interstitialAd.GetResponseInfo()
gets the response info for a loaded interstitial ad.
For cases where ads fail to load and only an error is available, the response
info is available through LoadAdError.GetResponseInfo()
.
private
void
LoadInterstitialAd
()
{
AdRequest
adRequest
=
new
AdRequest
();
InterstitialAd
.
Load
(
" AD_UNIT_ID
"
,
adRequest
,
(
InterstitialAd
insterstitialAd
,
LoadAdError
error
)
=
>
{
// If the operation failed with a reason.
if
(
error
!=
null
)
{
ResponseInfo
errorInfo
=
error
.
GetResponseInfo
();
Debug
.
LogError
(
"Interstitial ad failed to load an ad with error : "
+
error
);
return
;
}
ResponseInfo
loadInfo
=
insterstitialAd
.
GetResponseInfo
();
});
}
Response info
Here is a sample output returned by ResponseInfo.ToString()
showing the
debugging data returned for a loaded ad:
Android
{ "Response ID" : "COOllLGxlPoCFdAx4Aod-Q4A0g" , "Mediation Adapter Class Name" : "com.google.ads.mediation.admob.AdMobAdapter" , "Adapter Responses" : [ { "Adapter" : "com.google.ads.mediation.admob.AdMobAdapter" , "Latency" : 328 , "Ad Source Name" : "Reservation campaign" , "Ad Source ID" : "7068401028668408324" , "Ad Source Instance Name" : "[DO NOT EDIT] Publisher Test Interstitial" , "Ad Source Instance ID" : "4665218928925097" , "Credentials" : {}, "Ad Error" : "null" } ], "Loaded Adapter Response" : { "Adapter" : "com.google.ads.mediation.admob.AdMobAdapter" , "Latency" : 328 , "Ad Source Name" : "Reservation campaign" , "Ad Source ID" : "7068401028668408324" , "Ad Source Instance Name" : "[DO NOT EDIT] Publisher Test Interstitial" , "Ad Source Instance ID" : "4665218928925097" , "Credentials" : {}, "Ad Error" : "null" }, "Response Extras" : { "mediation_group_name" : "Campaign" } }
iOS
** Response Info ** Response ID : CIzs0ZO5kPoCFRqWAAAdJMINpQ 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.391 ** 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.391
Methods on the ResponseInfo
object include:
GetAdapterResponses
AdapterResponseInfo
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.
GetLoadedAdapterResponseInfo
AdapterResponseInfo
corresponding to the adapter
that loaded the ad.GetMediationAdapterClassName
GetResponseId
GetResponseExtras
-
mediation_group_name
: Name of the mediation group -
mediation_ab_test_name
: Name of the mediation A/B test , if applicable -
mediation_ab_test_variant
: Variant used in the mediation A/B test, if applicable
Here is a sample reading values from a loaded ResponseInfo
:
private
void
LoadInterstitialAd
()
{
AdRequest
adRequest
=
new
AdRequest
();
InterstitialAd
.
Load
(
" AD_UNIT_ID
"
,
adRequest
,
(
InterstitialAd
insterstitialAd
,
LoadAdError
error
)
=
>
{
// If the operation failed with a reason.
if
(
error
!=
null
)
{
Debug
.
LogError
(
"Interstitial ad failed to load an ad with error : "
+
error
);
return
;
}
ResponseInfo
responseInfo
=
insterstitialAd
.
GetResponseInfo
();
string
responseId
=
responseInfo
.
GetResponseId
();
string
mediationAdapterClassName
=
responseInfo
.
GetMediationAdapterClassName
();
List<AdapterResponseInfo>
adapterResponses
=
responseInfo
.
GetAdapterResponses
();
AdapterResponseInfo
loadedAdapterResponseInfo
=
responseInfo
.
GetLoadedAdapterResponseInfo
();
Dictionary<string
,
string
>
extras
=
responseInfo
.
GetResponseExtras
();
string
mediationGroupName
=
extras
[
"mediation_group_name"
];
string
mediationABTestName
=
extras
[
"mediation_ab_test_name"
];
string
mediationABTestVariant
=
extras
[
"mediation_ab_test_variant"
];
});
}
Adapter response info
AdapterResponseInfo
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 a sample output returned by AdapterResponseInfo
:
Android
{ "Adapter" : "com.google.ads.mediation.admob.AdMobAdapter" , "Latency" : 328 , "Ad Source Name" : "Reservation campaign" , "Ad Source ID" : "7068401028668408324" , "Ad Source Instance Name" : "[DO NOT EDIT] Publisher Test Interstitial" , "Ad Source Instance ID" : "4665218928925097" , "Credentials" : {}, "Ad Error" : "null" }
iOS
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.391
For each ad network, AdapterResponseInfo
provides the following methods:
Method | Description |
---|---|
AdError
|
Gets the error associated with the request to the network. Returns null
if the network successfully loaded an ad or if the
network was not attempted. |
AdSourceId
|
Gets the ad source ID associated with this adapter response. For campaigns, 6060308706800320801
is returned for a mediated ads campaign goal type
,
and 7068401028668408324
is returned for impression and click
goal types. See Ad sources
for the list of possible ad source IDs when an ad network serves the ad. |
AdSourceInstanceId
|
Gets the ad source instance ID associated with this adapter response. |
AdSourceInstanceName
|
Gets the ad source instance name associated with this adapter response. |
AdSourceName
|
Gets the ad source representing the specific ad network that serves the
impression. For campaigns, Mediated House Ads
is returned for a mediated ads campaign goal type
,
and Reservation Campaign
is returned for impression and click
goal types. See Ad sources
for the list of possible ad source names when an ad network serves the
ad. |
AdapterClassName
|
Gets a class name that identifies the ad network. |
AdUnitMapping
|
Gets the network configuration set from the Admob UI. |
LatencyMillis
|
Gets the amount of time the ad network spent loading an ad.
Returns 0
if the network was not attempted. |
Here is a sample reading values from a loaded AdapterResponseInfo
:
private
void
LoadInterstitialAd
()
{
AdRequest
adRequest
=
new
AdRequest
();
InterstitialAd
.
Load
(
" AD_UNIT_ID
"
,
adRequest
,
(
InterstitialAd
insterstitialAd
,
LoadAdError
error
)
=
>
{
// If the operation failed with a reason.
if
(
error
!=
null
)
{
Debug
.
LogError
(
"Interstitial ad failed to load an ad with error : "
+
error
);
return
;
}
ResponseInfo
responseInfo
=
insterstitialAd
.
GetResponseInfo
();
AdapterResponseInfo
loadedAdapterResponseInfo
=
responseInfo
.
getLoadedAdapterResponseInfo
();
AdError
adError
=
loadedAdapterResponseInfo
.
AdError
;
string
adSourceId
=
loadedAdapterResponseInfo
.
AdSourceId
;
string
adSourceInstanceId
=
loadedAdapterResponseInfo
.
AdSourceInstanceId
;
string
adSourceInstanceName
=
loadedAdapterResponseInfo
.
AdSourceInstanceName
;
string
adSourceName
=
loadedAdapterResponseInfo
.
AdSourceName
;
string
adapterClassName
=
loadedAdapterResponseInfo
.
AdapterClassName
;
Dictionary<string
,
string
>
credentials
=
loadedAdapterResponseInfo
.
AdUnitMapping
;
long
latencyMillis
=
loadedAdapterResponseInfo
.
LatencyMillis
;
});
}