For debugging and logging purposes, successfully loaded ads provide 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()
.
Kotlin
override
fun
onAdLoaded
(
interstitialAd
:
InterstitialAd
))
{
val
responseInfo
=
interstitialAd
.
responseInfo
Log
.
d
(
TAG
,
responseInfo
.
toString
())
}
override
fun
onAdFailedToLoad
(
adError
:
LoadAdError
)
{
val
responseInfo
=
adError
.
responseInfo
Log
.
d
(
TAG
,
responseInfo
.
toString
())
}
Java
@Override
public
void
onAdLoaded
(
@NonNull
InterstitialAd
interstitialAd
)
{
ResponseInfo
responseInfo
=
interstitialAd
.
getResponseInfo
();
Log
.
d
(
TAG
,
responseInfo
.
toString
());
}
@Override
public
void
onAdFailedToLoad
(
LoadAdError
loadAdError
)
{
ResponseInfo
responseInfo
=
loadAdError
.
getResponseInfo
();
Log
.
d
(
TAG
,
responseInfo
.
toString
());
}
Response Info
Here is sample output returned by ResponseInfo.toString()
showing the
debugging data returned for a loaded ad:
{
"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"
}
}
Methods on the ResponseInfo
object include the following:
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
: The name of the mediation group -
mediation_ab_test_name
: The name of the mediation A/B test , if applicable -
mediation_ab_test_variant
: The variant used in the mediation A/B test, if applicable
Kotlin
override
fun
onAdLoaded
(
interstitialAd
:
InterstitialAd
))
{
val
responseInfo
=
interstitialAd
.
responseInfo
val
responseId
=
responseInfo
.
responseId
val
mediationAdapterClassName
=
responseInfo
.
mediationAdapterClassName
val
adapterResponses
=
responseInfo
.
adapterResponses
val
loadedAdapterResponseInfo
=
responseInfo
.
loadedAdapterResponseInfo
val
extras
=
responseInfo
.
responseExtras
val
mediationGroupName
=
extras
.
getString
(
"mediation_group_name"
)
val
mediationABTestName
=
extras
.
getString
(
"mediation_ab_test_name"
)
val
mediationABTestVariant
=
extras
.
getString
(
"mediation_ab_test_variant"
)
}
Java
@Override
public
void
onAdLoaded
(
@NonNull
InterstitialAd
interstitialAd
)
{
MyActivity
.
this
.
interstitialAd
=
interstitialAd
;
ResponseInfo
responseInfo
=
interstitialAd
.
getResponseInfo
();
String
responseId
=
responseInfo
.
getResponseId
();
String
mediationAdapterClassName
=
responseInfo
.
getMediationAdapterClassName
();
List<AdapterResponseInfo>
adapterResponses
=
responseInfo
.
getAdapterResponses
();
AdapterResponseInfo
loadedAdapterResponseInfo
=
responseInfo
.
getLoadedAdapterResponseInfo
();
Bundle
extras
=
responseInfo
.
getResponseExtras
();
String
mediationGroupName
=
extras
.
getString
(
"mediation_group_name"
);
String
mediationABTestName
=
extras
.
getString
(
"mediation_ab_test_name"
);
String
mediationABTestVariant
=
extras
.
getString
(
"mediation_ab_test_variant"
);
}
Adapter response info
AdapterResponseInfo
contains response information for an individual ad source in an ad response.
The following sample AdapterResponseInfo
output shows the metadata
for a loaded ad:
{
"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"
}
For each ad source, AdapterResponseInfo
provides the following
methods:
Method | Description |
---|---|
getAdError
|
Gets the error associated with the request to the ad source. Returns null
if the ad source successfully loaded an ad or if the
ad source was not attempted. |
getAdSourceId
|
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 source serves the
ad. |
getAdSourceInstanceId
|
Gets the ad source instance ID associated with this adapter response. |
getAdSourceInstanceName
|
Gets the ad source instance name associated with this adapter response. |
getAdSourceName
|
Gets the ad source name associated with this adapter response.
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 source serves the
ad. |
getAdapterClassName
|
Gets the class name of the ad source adapter that loaded the ad. |
getCredentials
|
Gets the ad source adapter credentials specified in the AdMob UI. |
getLatencyMillis
|
Gets the amount of time the ad source adapter spent loading an ad.
Returns 0
if the ad source was not attempted. |
Kotlin
override
fun
onAdLoaded
(
interstitialAd
:
InterstitialAds
)
{
val
loadedAdapterResponseInfo
=
interstitialAd
.
responseInfo
.
loadedAdapterResponseInfo
val
adError
=
loadedAdapterResponseInfo
.
adError
val
adSourceId
=
loadedAdapterResponseInfo
.
adSourceId
val
adSourceInstanceId
=
loadedAdapterResponseInfo
.
adSourceInstanceId
val
adSourceInstanceName
=
loadedAdapterResponseInfo
.
adSourceInstanceName
val
adSourceName
=
loadedAdapterResponseInfo
.
adSourceName
val
adapterClassName
=
loadedAdapterResponseInfo
.
adapterClassName
val
credentials
=
loadedAdapterResponseInfo
.
credentials
val
latencyMillis
=
loadedAdapterResponseInfo
.
latencyMillis
}
Java
@Override
public
void
onAdLoaded
(
@NonNull
InterstitialAd
interstitialAd
)
{
AdapterResponseInfo
loadedAdapterResponseInfo
=
interstitialAd
.
getResponseInfo
().
getLoadedAdapterResponseInfo
();
AdError
adError
=
loadedAdapterResponseInfo
.
getAdError
();
String
adSourceId
=
loadedAdapterResponseInfo
.
getAdSourceId
();
String
adSourceInstanceId
=
loadedAdapterResponseInfo
.
getAdSourceInstanceId
();
String
adSourceInstanceName
=
loadedAdapterResponseInfo
.
getAdSourceInstanceName
();
String
adSourceName
=
loadedAdapterResponseInfo
.
getAdSourceName
();
String
adapterClassName
=
loadedAdapterResponseInfo
.
getAdapterClassName
();
Bundle
credentials
=
loadedAdapterResponseInfo
.
getCredentials
();
long
latencyMillis
=
loadedAdapterResponseInfo
.
getLatencyMillis
();
}