Получение информации об ответе на рекламу

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

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

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

Ява

@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());
}

Котлин

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())
}

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

Вот пример вывода, возвращаемого 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-pub-9939518381636264//21775744923/example/rewarded-interstitial/cak=no_cache&cadc=8e&caqid=NI3BZfDhGICQtOUP7ayS4Aw"
    },
    "Ad Error": "null"
  },
  "Response Extras": {}
}

К методам объекта ResponseInfo относятся:

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

Дополнительную информацию см. в разделе «Информация об ответе адаптера» .

getLoadedAdapterResponseInfo Возвращает AdapterResponseInfo соответствующее адаптеру, загрузившему объявление.
getMediationAdapterClassName Возвращает имя класса адаптера медиации рекламной сети, в которой было загружено объявление.
getResponseId Идентификатор ответа – это уникальный идентификатор ответа на объявление. Этот идентификатор можно использовать для идентификации и блокировки объявления в Центре просмотра рекламы (ARC) .
getResponseExtras

Возвращает дополнительную информацию об ответе на объявление.

Ява

@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();
}

Котлин

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
}

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

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 Получает набор конфигурации сети из Ad Manager Пользовательский интерфейс.
getLatencyMillis Получает количество времени, потраченное рекламной сетью на загрузку объявления. Возвращает 0 , если попытка подключения к сети не предпринималась.

Ява

@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();
}

Котлин

override fun onAdLoaded(interstitialAd: InterstitialAds) {
  val loadedAdapterResponseInfo = interstitialAd.responseInfo.loadedAdapterResponse

  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
}