Доход от рекламы на уровне показов

При показе рекламы Google Mobile Ads SDK (бета-версия) предоставляет данные о доходе от рекламы, связанные с этим показом. Вы можете использовать эти данные для расчета общей ценности пользователя или пересылать их в другие соответствующие системы.

Это руководство призвано помочь вам реализовать сбор данных о доходах от рекламы на уровне показов в вашем приложении для Android.

Предпосылки

Для каждого формата рекламы предусмотрен обратный вызов события onAdPaid . В течение жизненного цикла события рекламы Google Mobile Ads SDK (бета) отслеживает события показов и вызывает обработчик с полученным значением.

В следующем примере обрабатываются платные события для рекламы с вознаграждением:

Котлин

ad.adEventCallback =
  object : RewardedAdEventCallback {
    override fun onAdPaid(adValue: AdValue) {
      // Send the impression-level ad revenue information to your
      // preferred analytics server directly within this callback.

      // Extract the impression-level ad revenue data.
      val valueMicros = adValue.valueMicros
      val currencyCode = adValue.currencyCode
      val precisionType = adValue.precisionType

      val loadedAdSourceResponseInfo = ad.getResponseInfo().loadedAdSourceResponseInfo
      val adSourceName = loadedAdSourceResponseInfo?.name
      val adSourceId = loadedAdSourceResponseInfo?.id
      val adSourceInstanceName = loadedAdSourceResponseInfo?.instanceName
      val adSourceInstanceId = loadedAdSourceResponseInfo?.instanceId
      val extras = ad.getResponseInfo().responseExtras
      val mediationGroupName = extras.getString("mediation_group_name")
      val mediationABTestName = extras.getString("mediation_ab_test_name")
      val mediationABTestVariant = extras.getString("mediation_ab_test_variant")
    }
  }

Ява

ad.setAdEventCallback(
    new RewardedAdEventCallback() {
      @Override
      public void onAdPaid(@NonNull AdValue value) {
        // Send the impression-level ad revenue information to your preferred
        // analytics server directly within this callback.

        // Extract the impression-level ad revenue data.
        long valueMicros = value.getValueMicros();
        String currencyCode = value.getCurrencyCode();
        PrecisionType precisionType = value.getPrecisionType();

        AdSourceResponseInfo loadedAdSourceResponseInfo =
            ad.getResponseInfo().getLoadedAdSourceResponseInfo();
        String adSourceName = loadedAdSourceResponseInfo.getName();
        String adSourceId = loadedAdSourceResponseInfo.getId();
        String adSourceInstanceName = loadedAdSourceResponseInfo.getInstanceName();
        String adSourceInstanceId = loadedAdSourceResponseInfo.getInstanceId();

        Bundle extras = ad.getResponseInfo().getResponseExtras();
        String mediationGroupName = extras.getString("mediation_group_name");
        String mediationABTestName = extras.getString("mediation_ab_test_name");
        String mediationABTestVariant = extras.getString("mediation_ab_test_variant");
      }
    });

Определите название источника рекламы для пользовательского события

Для источников рекламы с пользовательскими событиями свойство AdSourceResponseInfo.name возвращает имя источника рекламы Custom event . При использовании нескольких пользовательских событий имя источника рекламы недостаточно детализировано, чтобы различать их. Чтобы найти конкретное пользовательское событие, выполните следующие действия:

  1. Получите свойство AdSourceResponseInfo.name .
  2. Задайте уникальное название источника рекламы.

В следующем примере задается уникальное имя источника рекламы для пользовательского события:

Котлин

private fun getUniqueAdSourceName(loadedAdapterResponseInfo: AdSourceResponseInfo): String {
  var adSourceName = loadedAdapterResponseInfo.name
  if (adSourceName == "Custom Event") {
    if (
      loadedAdapterResponseInfo.adapterClassName ==
        "com.google.ads.mediation.sample.customevent.SampleCustomEvent"
    ) {
      adSourceName = "Sample Ad Network (Custom Event)"
    }
  }
  return adSourceName
}

Ява

private String getUniqueAdSourceName(@NonNull AdSourceResponseInfo loadedAdapterResponseInfo) {
  String adSourceName = loadedAdapterResponseInfo.getName();
  if (adSourceName.equals("Custom Event")) {
    if (loadedAdapterResponseInfo
        .getAdapterClassName()
        .equals("com.google.ads.mediation.sample.customevent.SampleCustomEvent")) {
      adSourceName = "Sample Ad Network (Custom Event)";
    }
  }
  return adSourceName;
}

Дополнительную информацию о выигрышном источнике рекламы см. в разделе Получение информации об отклике на рекламу .

Интеграция с партнерами по атрибуции приложений (AAP)

Полную информацию о передаче данных о доходах от рекламы на аналитические платформы см. в руководстве партнера:

Партнерский SDK
Регулировать
AppsFlyer
Единственное число
Тенджин

Лучшие практики внедрения

  • Установите прослушиватель сразу после создания объекта рекламы или получения к нему доступа, но обязательно перед показом рекламы. Это гарантирует, что вы не пропустите ни одного платного обратного вызова.
  • Отправляйте информацию о доходе от рекламы на уровне показов на ваш предпочтительный аналитический сервер сразу же после вызова платного обратного вызова. Это гарантирует отсутствие случайного прерывания обратных вызовов и предотвращает расхождения в данных.

AdValue

AdValue — это класс, представляющий денежную стоимость, полученную за рекламу, включая код валюты стоимости и ее тип точности, закодированный следующим образом.

PrecisionType Описание
UNKNOWN Неизвестная ценность объявления. Возвращается, если включена функция pingback LTV, но недостаточно данных.
ESTIMATED Ценность объявления, рассчитанная на основе агрегированных данных.
PUBLISHER_PROVIDED Издатель предоставил ценность рекламы, например, ручную установку CPM в группе посредничества.
PRECISE Точная стоимость этой рекламы.

В случае медиации AdMob, AdMob пытается предоставить ESTIMATED значение для оптимизированных источников рекламы. Для неоптимизированных источников рекламы или в случаях, когда агрегированных данных недостаточно для получения осмысленной оценки, возвращается значение PUBLISHER_PROVIDED .

Тестовые показы из источников рекламы с торгами

После того, как для источника объявлений с ставкой через тестовый запрос происходит событие дохода от рекламы на уровне показа, вы получаете только следующие значения:

  • UNKNOWN : указывает тип точности.
  • 0 : указывает ценность объявления.

Ранее вы могли видеть тип точности как значение, отличное от UNKNOWN и значение объявления больше 0 .

Подробную информацию об отправке тестового запроса на рекламу см. в разделе Включение тестовых устройств .