Как получить информацию об ответе на запрос объявления

Для отладки и ведения журналов успешно загруженные объявления предоставляют объект ResponseInfo. Этот объект содержит информацию о загруженном объявлении, а также о каскадной медиации, использованной для загрузки объявления.

Если объявление загружено, у объекта объявления есть метод getResponseInfo(). Например, InterstitialAd.getResponseInfo() получает информацию об ответе для загруженного межстраничного объявления.

Если объявление не загружается и доступна только ошибка, информацию об ответе можно получить с помощью LoadAdError.getResponseInfo().

Kotlin

override fun onAdLoaded() {
  val responseInfo = adView.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() {
  ResponseInfo responseInfo = adView.getResponseInfo();
  Log.d(TAG, responseInfo.toString());
}

@Override
public void onAdFailedToLoad(LoadAdError adError) {
  ResponseInfo responseInfo = adError.getResponseInfo();
  Log.d(TAG, responseInfo.toString());
}

Информация об ответе

Ниже приведен пример выходных данных, возвращаемых функцией ResponseInfo.toString(), в которых показаны данные отладки, возвращенные для загруженного объявления:

{
  "Response ID": "NI3BZZDbGdyQtOUP4o21gAM",
  "Mediation Adapter Class Name": "com.google.ads.mediation.admob.AdMobAdapter",
  "Adapter Responses": [
    {
      "Adapter": "com.google.ads.mediation.admob.AdMobAdapter",
      "Latency": 3585,
      "Ad Source Name": "AdMob Network",
      "Ad Source ID": "",
      "Ad Source Instance Name": "AdMob (default)",
      "Ad Source Instance ID": "",
      "Credentials": {
        "pubid": "ca-pub-9939518381636264//21775744923/example/rewarded-interstitial/cak=no_cache&cadc=8e&caqid=NI3BZfDhGICQtOUP7ayS4Aw"
      },
      "Ad Error": "null"
    }
  ],
  "Loaded Adapter Response": {
    "Adapter": "com.google.ads.mediation.admob.AdMobAdapter",
    "Latency": 3585,
    "Ad Source Name": "AdMob Network",
    "Ad Source ID": "",
    "Ad Source Instance Name": "AdMob (default)",
    "Ad Source Instance ID": "",
    "Credentials": {
      "pubid": "ca-app-pub-3940256099942544\/9257395921\/cak=no_cache&cadc=8e&caqid=NI3BZfDhGICQtOUP7ayS4Aw"
    },
    "Ad Error": "null"
  },
  "Response Extras": {
    "creative_id": "138471856178",
    "line_item_id": "6707237225",
  }
}

Объект ResponseInfo содержит следующие методы:

Метод Описание
getAdapterResponses Возвращает список AdapterResponseInfo, содержащих метаданные для каждого адаптера, включенного в ответ на запрос объявления. Можно использовать для отладки каскадной медиации и назначения ставок. Порядок в списке соответствует порядку в каскаде медиации для этого запроса объявления.

Подробнее об информации об ответе адаптера…

getLoadedAdapterResponseInfo Возвращает значение AdapterResponseInfo для адаптера, который загрузил объявление.
getMediationAdapterClassName Возвращает название класса адаптера медиации источника объявлений, который загрузил объявление.
getResponseId Идентификатор ответа – это уникальный идентификатор ответа на запрос объявления. С помощью этого идентификатора можно найти и заблокировать объявление в Центре проверки объявлений.
getResponseExtras Возвращает дополнительную информацию об ответе на запрос объявления. В разделе "Дополнительные материалы" могут быть указаны следующие ключи:
  • creative_id – идентификатор креатива выбранного объявления. Возвращено только для объявлений с бронированием.
  • line_item_id – идентификатор позиции выбранного объявления. Возвращается только для объявлений с резервированием.

Kotlin

override fun onAdLoaded() {
  val responseInfo = adView.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() {
  ResponseInfo responseInfo = adView.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");
}

Информация об ответе адаптера

AdapterResponseInfo содержит информацию об ответе для отдельного источника объявлений в ответе на запрос объявления.

В приведенном ниже примере выходных данных AdapterResponseInfo показаны метаданные загруженного объявления:

{
  "Adapter": "com.google.ads.mediation.admob.AdMobAdapter",
  "Latency": 3585,
  "Ad Source Name": "AdMob Network",
  "Ad Source ID": "",
  "Ad Source Instance Name": "AdMob (default)",
  "Ad Source Instance ID": "",
  "Credentials": {
    "pubid": "ca-pub-9939518381636264//21775744923/example/rewarded-interstitial/cak=no_cache&cadc=8e&caqid=NI3BZfDhGICQtOUP7ayS4Aw"
  },
  "Ad Error": "null"
}

Для каждого источника объявлений AdapterResponseInfo предоставляет следующие методы:

Метод Описание
getAdError Получает ошибку, связанную с запросом к источнику объявлений. Возвращает значение null, если источник объявлений успешно загрузил объявление или если попытка загрузки не предпринималась.
getAdSourceId Возвращает идентификатор источника объявлений, связанный с ответом адаптера.
getAdSourceInstanceId Возвращает идентификатор экземпляра источника объявлений, связанный с этим ответом адаптера.
getAdSourceInstanceName Возвращает название экземпляра источника объявлений, связанного с ответом адаптера.
getAdSourceName Возвращает название источника объявлений, связанного с ответом адаптера.
getAdapterClassName Возвращает название класса адаптера источника объявлений, который загрузил объявление.
getCredentials Получает учетные данные адаптера источника объявлений, указанные в интерфейсе Менеджера рекламы.
getLatencyMillis Возвращает время, которое адаптер источника объявлений потратил на загрузку объявления. Если источник объявлений не был опробован, возвращается значение 0.

Kotlin

override fun onAdLoaded() {
  val loadedAdapterResponseInfo = adView.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() {
  AdapterResponseInfo loadedAdapterResponseInfo =
      adView.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();
}