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

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

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

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

InterstitialAd ad;

private void RequestInterstitial()
{
    ad = new InterstitialAd("AD_UNIT_ID");
    this.interstitial.OnAdLoaded += OnAdLoaded;
    this.interstitial.OnAdFailedToLoad += HandleOnAdFailedToLoad;
    AdRequest request = new AdRequest.Builder().Build();
    this.interstitial.LoadAd(request);
}

private void OnAdLoaded(object sender, EventArgs args)
{
    ResponseInfo info = ad.GetResponseInfo();
}

private void OnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
    ResponseInfo info = args.LoadAdError.GetResponseInfo();
}

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

Ниже приведен пример выходных данных, возвращенных ResponseInfo.ToString() и содержащих отладочную информацию о загруженном объявлении.

Android

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

iOS

** Response Info **
    Response ID: BmnCZaSbE_6Mur8P5su8gAY
    Network: GADMAdapterGoogleAdMobAds

  ** Loaded Adapter Response **
    Network: GADMAdapterGoogleAdMobAds
    Ad Source Name:AdMob Network
    Ad Source ID:
    Ad Source Instance Name:AdMob (default)
    Ad Source Instance ID:AdMob (default)
    AdUnitMapping:
{
    pubid = "ca-pub-9939518381636264//21775744923/example/rewarded-interstitial/cak=no_cache&cadc=b0&caqid=BmnCZZjMEvzpkPIP5cWfQA";
}
    Error: (null)
    Latency: 2.724

  ** Extras Dictionary **
    {
        "creative_id" = "138471856178";
        "line_item_id" = "6707237225";
    }

  ** Mediation line items **
    Entry (1)
    Network: GADMAdapterGoogleAdMobAds
    Ad Source Name:AdMob Network
    Ad Source ID:
    Ad Source Instance Name:AdMob (default)
    Ad Source Instance ID:AdMob (default)
    AdUnitMapping:
{
    pubid = "ca-pub-9939518381636264//21775744923/example/rewarded-interstitial/cak=no_cache&cadc=b0&caqid=BmnCZZjMEvzpkPIP5cWfQA";
}
    Error: (null)
    Latency: 2.724

Методы объекта ResponseInfo:

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

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

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

Ниже приведен пример считывания значений из загруженного объекта ResponseInfo.

private void OnAdLoaded(object sender, EventArgs args)
{
  ResponseInfo info = ad.GetResponseInfo();

  string responseId = responseInfo.GetResponseId();
  string mediationAdapterClassName = responseInfo.GetMediationAdapterClassName();
  List<AdapterResponseInfo> adapterResponses = responseInfo.GetAdapterResponses();
  AdapterResponseInfo loadedAdapterResponseInfo = responseInfo.GetLoadedAdapterResponseInfo();
  Dictionary<string, string> extras = responseInfo.GetResponseExtras();
  string creativeId = extras["creative_id"];
  string lineItemId = extras["line_item_id"];
}

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

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

Вот пример выходных данных, возвращаемых AdapterResponseInfo:

Android

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

iOS

  Network: GADMAdapterGoogleAdMobAds
  Ad Source Name: Reservation campaign
  Ad Source ID: 7068401028668408324
  Ad Source Instance Name: [DO NOT EDIT] Publisher Test Interstitial
  Ad Source Instance ID: [DO NOT EDIT] Publisher Test Interstitial
  AdUnitMapping:
  {
  }
  Error: (null)
  Latency: 0.391

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

Метод Описание
AdError Возвращает ошибку, связанную с запросом к сети. Возвращает null, если сеть успешно загрузила объявление или если попытка не была предпринята.
AdSourceId Возвращает идентификатор источника объявлений, связанный с этим ответом адаптера. Для кампаний с типом цели "Агрегируемые объявления" возвращается значение 6060308706800320801, а для кампаний с типами цели "Показы" и "Клики" – 7068401028668408324. Список возможных идентификаторов источников объявлений, когда объявление показывается рекламной сетью, приведен в статье Источники объявлений.
AdSourceInstanceId Возвращает идентификатор экземпляра источника объявлений, связанный с этим ответом адаптера.
AdSourceInstanceName Возвращает название экземпляра источника объявлений, связанного с этим ответом адаптера.
AdSourceName Получает источник объявления, представляющий определенную рекламную сеть, которая выполняет показ. Для кампаний с типом цели "Агрегируемые объявления" возвращается значение Mediated House Ads, а для кампаний с типами цели "Показы" и "Клики" – Reservation Campaign. Список возможных названий источников объявлений, когда объявление показывается рекламной сетью, приведен в разделе Источники объявлений.
AdapterClassName Получает название класса, идентифицирующее рекламную сеть.
AdUnitMapping Получает конфигурацию сети, заданную в интерфейсе AdMob.
LatencyMillis Возвращает время, которое рекламная сеть потратила на загрузку объявления. Если попытка подключения к сети не выполнялась, возвращает 0.

Ниже приведен пример считывания значений из загруженного объекта AdapterResponseInfo.

private void OnAdLoaded(object sender, EventArgs args)
{
  ResponseInfo responseInfo = ad.GetResponseInfo();
  AdapterResponseInfo loadedAdapterResponseInfo = responseInfo.getLoadedAdapterResponseInfo();

  AdError adError = loadedAdapterResponseInfo.AdError;
  string adSourceId = loadedAdapterResponseInfo.AdSourceId;
  string adSourceInstanceId = loadedAdapterResponseInfo.AdSourceInstanceId;
  string adSourceInstanceName = loadedAdapterResponseInfo.AdSourceInstanceName;
  string adSourceName = loadedAdapterResponseInfo.AdSourceName;
  string adapterClassName = loadedAdapterResponseInfo.AdapterClassName;
  Dictionary<string, string> credentials = loadedAdapterResponseInfo.AdUnitMapping;
  long latencyMillis = loadedAdapterResponseInfo.LatencyMillis;
}