После загрузки объявления или сбоя загрузки проверьте объект ResponseInfo. Этот объект содержит подробные сведения о загруженном объявлении и метаданные о каскаде медиации, который использовался для обработки запроса.
Если объявление загружено успешно, его экземпляр содержит метод getResponseInfo. Например, метод interstitialAd.getResponseInfo возвращает информацию об ответе для загруженного объекта InterstitialAd.
Если объявление не загружается, используйте необязательное свойство responseInfo объекта LoadAdError, например error.responseInfo.
Проверьте объект с информацией об ответе
Объект ResponseInfo предоставляет диагностические данные, полученные в результате запроса объявления.
Ниже приведен пример выходных данных с информацией об ответе для загруженного объявления.
Android
{
"responseId": "COOllLGxlPoCFdAx4Aod-Q4A0g",
"responseExtras": {},
"loadedAdSourceResponseInfo": {
"adapterClassName": "com.google.ads.mediation.admob.AdMobAdapter",
"latencyMillis": 328,
"name": "Reservation campaign",
"id": "7068401028668408324",
"instanceName": "[DO NOT EDIT] Publisher Test Interstitial",
"instanceId": "4665218928925097",
"credentials": {},
"mediationAdError": null
},
"adSourceResponses": [
{
"adapterClassName": "com.google.ads.mediation.admob.AdMobAdapter",
"latencyMillis": 328,
"name": "Reservation campaign",
"id": "7068401028668408324",
"instanceName": "[DO NOT EDIT] Publisher Test Interstitial",
"instanceId": "4665218928925097",
"credentials": {},
"mediationAdError": null
}
]
}
iOS
{
"responseId": "COOllLGxlPoCFdAx4Aod-Q4A0g",
"responseExtras": {},
"loadedAdSourceResponseInfo": {
"adapterClassName": "GADMAdapterGoogleAdMobAds",
"latencyMillis": 328,
"name": "Reservation campaign",
"id": "7068401028668408324",
"instanceName": "[DO NOT EDIT] Publisher Test Interstitial",
"instanceId": "4665218928925097",
"credentials": {},
"mediationAdError": null
},
"adSourceResponses": [
{
"adapterClassName": "GADMAdapterGoogleAdMobAds",
"latencyMillis": 328,
"name": "Reservation campaign",
"id": "7068401028668408324",
"instanceName": "[DO NOT EDIT] Publisher Test Interstitial",
"instanceId": "4665218928925097",
"credentials": {},
"mediationAdError": null
}
]
}
Объект ResponseInfo предоставляет следующие свойства:
| Свойство | Тип | Описание |
|---|---|---|
adSourceResponses |
readonly AdSourceResponseInfo[] |
Список объектов AdSourceResponseInfo, представляющих каждую попытку источника объявлений в каскаде медиации. |
loadedAdSourceResponseInfo |
AdSourceResponseInfo | undefined |
Метаданные для адаптера источника объявлений, который успешно загрузил объявление. Если объявление не загрузилось, значение будет равно undefined. |
responseExtras |
Readonly<Record<string, unknown>> |
Дополнительные метаданные, которые возвращаются в ответе на запрос объявления, например ключ mediation_group_name. |
responseId |
string |
Уникальный идентификатор ответа на запрос объявления. С помощью этого идентификатора можно найти заблокированные объявления в Центре проверки объявлений. |
Как прочитать информацию об ответе источника объявлений
Объект AdSourceResponseInfo предоставляет метаданные для адаптера, включенного в ответ на запрос объявления. Эти объекты перечислены в порядке вызова каждого источника объявлений в каскаде медиации.
Ниже приведен пример выходных данных с информацией об ответе источника объявлений для загруженного объявления.
Android
{
"adapterClassName": "com.google.ads.mediation.admob.AdMobAdapter",
"latencyMillis": 328,
"name": "Reservation campaign",
"id": "7068401028668408324",
"instanceName": "[DO NOT EDIT] Publisher Test Interstitial",
"instanceId": "4665218928925097",
"credentials": {},
"mediationAdError": null
}
iOS
{
"adapterClassName": "GADMAdapterGoogleAdMobAds",
"latencyMillis": 328,
"name": "Reservation campaign",
"id": "7068401028668408324",
"instanceName": "[DO NOT EDIT] Publisher Test Interstitial",
"instanceId": "4665218928925097",
"credentials": {},
"mediationAdError": null
}
Для каждого источника объявлений AdSourceResponseInfo предоставляет следующие свойства:
| Свойство | Тип | Описание |
|---|---|---|
adapterClassName |
string |
Название класса адаптера рекламной сети. |
credentials |
Readonly<Record<string, string>> |
Параметры на стороне сервера, настроенные в интерфейсе AdMob для этого адаптера. |
id |
string |
Уникальный идентификатор источника объявлений. |
instanceId |
string |
Уникальный идентификатор экземпляра источника объявлений. |
instanceName |
string |
Название экземпляра источника объявлений. |
latencyMillis |
number |
Время в миллисекундах, затраченное на попытку подключения к сети. |
mediationAdError |
MediationAdError | undefined |
Если попытка подключения к сети не удалась, это свойство описывает ошибку. Если запрос выполнен успешно, возвращается значение undefined. |
name |
string |
Название источника объявлений, например "Reservation campaign". |
Записывать в журнал полную информацию об ответе
В этом разделе рассказывается, как получить полную информацию об ответе для загруженного объявления.
В следующем примере показано, как регистрировать и проверять информацию об ответе при загрузке объявления или сбое загрузки:
import {InterstitialAd, LoadAdError} from '@google/mobile-ads';
import type {AdSourceResponseInfo, ResponseInfo} from '@google/mobile-ads';
export async function logResponseInfo(adUnitId: string): Promise<void> {
try {
const interstitial = await InterstitialAd.load({adUnitId});
const responseInfo: ResponseInfo = interstitial.getResponseInfo();
console.log('Ad Loaded Response ID:', responseInfo.responseId);
console.log(
'Loaded Adapter Class Name:',
responseInfo.loadedAdSourceResponseInfo?.adapterClassName,
);
// Inspect each ad source response in the mediation waterfall
responseInfo.adSourceResponses.forEach(
(adSourceResponse: AdSourceResponseInfo, index: number) => {
console.log(
`Waterfall index ${index}:`,
adSourceResponse.adapterClassName,
`Latency: ${adSourceResponse.latencyMillis}ms`,
adSourceResponse.mediationAdError
? `Error: ${adSourceResponse.mediationAdError.message}`
: 'Success',
);
},
);
} catch (error) {
if (error instanceof LoadAdError) {
console.error('Ad failed to load:', error.message);
if (error.responseInfo) {
console.log('Failed Response ID:', error.responseInfo.responseId);
}
}
}
}