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

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

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

Если объявления не загружаются и доступна только ошибка, информацию об ответе можно получить с помощью 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());
}

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

Ниже приведен пример выходных данных, возвращаемых методом 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:

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

Подробнее об информации об ответе источника объявлений…

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

Kotlin

override fun onAdLoaded(interstitialAd: InterstitialAd) {
  val responseInfo = interstitialAd.responseInfo

  val responseId = responseInfo.responseId
  val adapterClassName = responseInfo.adapterClassName
  val adSourceResponses = responseInfo.adSourceResponses
  val loadedAdSourceResponse = responseInfo.loadedAdSourceResponse
  val extras = responseInfo.responseExtras
  val creativeId = extras.getString("creative_id")
  val lineItemId = extras.getString("line_item_id")
}

Java

@Override
public void onAdLoaded(@NonNull InterstitialAd interstitialAd) {
  MyActivity.this.interstitialAd = interstitialAd;

  ResponseInfo responseInfo = interstitialAd.getResponseInfo();
  String responseId = responseInfo.getResponseId();
  String adapterClassName = responseInfo.getAdapterClassName();
  List<AdSourceResponseInfo> adSourceResponses = responseInfo.getAdSourceResponses();
  AdSourceResponseInfo loadedAdSourceResponse = responseInfo.getLoadedAdSourceResponse();
  Bundle extras = responseInfo.getResponseExtras();
  String creativeId = extras.getString("creative_id");
  String lineItemId = extras.getString("line_item_id");
}

Информация об ответе источника объявлений

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

Ниже приведен пример выходных данных AdSourceResponseInfo с метаданными загруженного объявления:

{
  "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"
}

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

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

Kotlin

override fun onAdLoaded(interstitialAd: InterstitialAds) {
  val loadedAdSourceResponseInfo = interstitialAd.responseInfo.loadedAdSourceResponse

  val adError = loadedAdSourceResponseInfo.adError
  val adSourceId = loadedAdSourceResponseInfo.id
  val adSourceInstanceId = loadedAdSourceResponseInfo.instanceId
  val adSourceInstanceName = loadedAdSourceResponseInfo.instanceName
  val adSourceName = loadedAdSourceResponseInfo.name
  val adapterClassName = loadedAdSourceResponseInfo.adapterClassName
  val credentials = loadedAdSourceResponseInfo.credentials
  val latencyMillis = loadedAdSourceResponseInfo.latencyMillis
}

Java

@Override
public void onAdLoaded(@NonNull InterstitialAd interstitialAd) {
  AdSourceResponseInfo loadedAdSourceResponseInfo =
      interstitialAd.getResponseInfo().getLoadedAdSourceResponse();

  AdError adError = loadedAdSourceResponseInfo.getAdError();
  String adSourceId = loadedAdSourceResponseInfo.getId();
  String adSourceInstanceId = loadedAdSourceResponseInfo.getInstanceId();
  String adSourceInstanceName = loadedAdSourceResponseInfo.getInstanceName();
  String adSourceName = loadedAdSourceResponseInfo.getName();
  String adapterClassName = loadedAdSourceResponseInfo.getAdapterClassName();
  Bundle credentials = loadedAdSourceResponseInfo.getCredentials();
  long latencyMillis = loadedAdSourceResponseInfo.getLatencyMillis();
}