Получить информацию об ответе на объявление

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

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

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

private void LoadInterstitialAd()
{
  AdRequest adRequest = new AdRequest();
  InterstitialAd.Load("AD_UNIT_ID", adRequest, (InterstitialAd insterstitialAd, LoadAdError error) =>
  {
    // If the operation failed with a reason.
    if (error != null)
    {
        ResponseInfo errorInfo = error.GetResponseInfo();
        Debug.LogError("Interstitial ad failed to load an ad with error : " + error);
        return;
    }

    ResponseInfo loadInfo = insterstitialAd.GetResponseInfo();
  });
}

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

Вот пример выходных данных, возвращаемых ResponseInfo.ToString() , показывающий отладочные данные, возвращаемые для загруженного объявления:

андроид

{
  "Response ID": "COOllLGxlPoCFdAx4Aod-Q4A0g",
  "Mediation Adapter Class Name": "com.google.ads.mediation.admob.AdMobAdapter",
  "Adapter Responses": [
    {
      "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"
    }
  ],
  "Loaded Adapter Response": {
    "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"
  },
  "Response Extras": {
    "mediation_group_name": "Campaign"
  }
}

iOS

 ** Response Info **
    Response ID: CIzs0ZO5kPoCFRqWAAAdJMINpQ
    Network: GADMAdapterGoogleAdMobAds

  ** Loaded Adapter Response **
    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

  ** Extras Dictionary **
    {
        "mediation_group_name" = Campaign;
    }

  ** Mediation line items **
    Entry (1)
    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

Методы объекта ResponseInfo включают в себя:

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

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

GetLoadedAdapterResponseInfo Возвращает AdapterResponseInfo , соответствующий адаптеру, загрузившему рекламу.
GetMediationAdapterClassName Возвращает имя класса адаптера-посредника рекламной сети, загрузившей рекламу.
GetResponseId Идентификатор ответа — это уникальный идентификатор для ответа на объявление. Этот идентификатор может использоваться для идентификации и блокировки объявления в Центре просмотра объявлений (ARC) .
GetResponseExtras Возвращает дополнительную информацию об ответе на объявление. Дополнительные данные могут возвращать следующие ключи:
  • mediation_group_name : Название группы посредничества
  • mediation_ab_test_name : Название теста A/B посредничества , если применимо
  • mediation_ab_test_variant : вариант, используемый в тесте A/B посредничества, если применимо

Вот пример чтения значений из загруженного ResponseInfo :

private void LoadInterstitialAd()
{
  AdRequest adRequest = new AdRequest();
  InterstitialAd.Load("AD_UNIT_ID", adRequest, (InterstitialAd insterstitialAd, LoadAdError error) =>
  {
    // If the operation failed with a reason.
    if (error != null)
    {
        Debug.LogError("Interstitial ad failed to load an ad with error : " + error);
        return;
    }

    ResponseInfo responseInfo = insterstitialAd.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 mediationGroupName = extras["mediation_group_name"];
    string mediationABTestName = extras["mediation_ab_test_name"];
    string mediationABTestVariant = extras["mediation_ab_test_variant"]; 
  });
}

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

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

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

андроид

{
  "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 для типа цели кампании mediated ads, а 7068401028668408324 возвращается для типов цели показа и клика. См. Источники рекламы для списка возможных идентификаторов источников рекламы, когда рекламная сеть обслуживает рекламу.
AdSourceInstanceId Получает идентификатор экземпляра источника рекламы, связанный с этим ответом адаптера.
AdSourceInstanceName Получает имя экземпляра источника рекламы, связанного с этим ответом адаптера.
AdSourceName Получает источник рекламы, представляющий определенную рекламную сеть, которая обслуживает показ. Для кампаний Mediated House Ads возвращается для типа цели кампании mediated ads, а Reservation Campaign возвращается для типов цели показа и клика. См. Источники рекламы для списка возможных имен источников рекламы, когда рекламная сеть обслуживает рекламу.
AdapterClassName Получает имя класса, идентифицирующее рекламную сеть.
AdUnitMapping Получает конфигурацию сети, заданную из пользовательского интерфейса Admob.
LatencyMillis Получает количество времени, потраченное рекламной сетью на загрузку рекламы. Возвращает 0 , если сеть не пыталась.

Вот пример чтения значений из загруженного AdapterResponseInfo :

private void LoadInterstitialAd()
{
  AdRequest adRequest = new AdRequest();
  InterstitialAd.Load("AD_UNIT_ID", adRequest, (InterstitialAd insterstitialAd, LoadAdError error) =>
  {
    // If the operation failed with a reason.
    if (error != null)
    {
        Debug.LogError("Interstitial ad failed to load an ad with error : " + error);
        return;
    }

    ResponseInfo responseInfo = insterstitialAd.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;
  });
}