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

В целях отладки и регистрации успешно загруженные объявления предоставляют объект 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 возвращается для типа цели кампании с посредником, а 7068401028668408324 возвращается для типов целей по показам и кликам. См . «Источники объявлений» , где приведен список возможных идентификаторов источников объявлений, когда рекламная сеть показывает объявление.
AdSourceInstanceId Получает идентификатор экземпляра источника объявления, связанный с этим ответом адаптера.
AdSourceInstanceName Получает имя экземпляра источника объявления, связанное с этим ответом адаптера.
AdSourceName Получает источник объявления, представляющий конкретную рекламную сеть, которая обеспечивает показ. Для кампаний Mediated House 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;
  });
}