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

Выберите платформу: Android iOS Unity

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

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

Предпосылки

  • Импортируйте Google Mobile Ads SDK 21.1.0 или выше.

У каждого формата рекламы есть прослушиватель OnPaidEventListener . В течение жизненного цикла события рекламы Google Mobile Ads SDK отслеживает события показов и вызывает обработчик с полученным значением.

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

Ява

private void setOnPaidEventListener(RewardedAd ad) {
  ad.setOnPaidEventListener(
      new OnPaidEventListener() {
        @Override
        public void onPaidEvent(@NonNull AdValue adValue) {
          // Extract the impression-level ad revenue data.
          long valueMicros = adValue.getValueMicros();
          String currencyCode = adValue.getCurrencyCode();
          int precision = adValue.getPrecisionType();

          // Get the ad unit ID.
          String adUnitId = ad.getAdUnitId();

          // Extract ad response information.
          AdapterResponseInfo loadedAdapterResponseInfo =
              ad.getResponseInfo().getLoadedAdapterResponseInfo();
          if (loadedAdapterResponseInfo != null) {
            String adSourceName = loadedAdapterResponseInfo.getAdSourceName();
            String adSourceId = loadedAdapterResponseInfo.getAdSourceId();
            String adSourceInstanceName = loadedAdapterResponseInfo.getAdSourceInstanceName();
            String adSourceInstanceId = loadedAdapterResponseInfo.getAdSourceInstanceId();

            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");
          }
        }
      });
}

Котлин

private fun setOnPaidEventListener(ad: RewardedAd) {
  ad.onPaidEventListener = OnPaidEventListener { adValue ->
    // Extract the impression-level ad revenue data.
    val valueMicros = adValue.valueMicros
    val currencyCode = adValue.currencyCode
    val precision = adValue.precisionType

    // Get the ad unit ID.
    val adUnitId = ad.adUnitId

    // Extract ad response information.
    val loadedAdapterResponseInfo = ad.responseInfo.loadedAdapterResponseInfo
    val adSourceName = loadedAdapterResponseInfo?.adSourceName
    val adSourceId = loadedAdapterResponseInfo?.adSourceId
    val adSourceInstanceName = loadedAdapterResponseInfo?.adSourceInstanceName
    val adSourceInstanceId = loadedAdapterResponseInfo?.adSourceInstanceId
    val extras = ad.responseInfo.responseExtras
    val mediationGroupName = extras.getString("mediation_group_name")
    val mediationABTestName = extras.getString("mediation_ab_test_name")
    val mediationABTestVariant = extras.getString("mediation_ab_test_variant")
  }
}

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

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

  1. Вызовите метод getAdSourceName() .
  2. Задайте уникальное название источника рекламы.

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

Ява

private String getUniqueAdSourceName(@NonNull AdapterResponseInfo loadedAdapterResponseInfo) {

  String adSourceName = loadedAdapterResponseInfo.getAdSourceName();
  if (adSourceName.equals("Custom Event")) {
    if (loadedAdapterResponseInfo
        .getAdapterClassName()
        .equals("com.google.ads.mediation.sample.customevent.SampleCustomEvent")) {
      adSourceName = "Sample Ad Network (Custom Event)";
    }
  }
  return adSourceName;
}

Котлин

private fun getUniqueAdSourceName(loadedAdapterResponseInfo: AdapterResponseInfo): String {

  var adSourceName = loadedAdapterResponseInfo.adSourceName
  if (adSourceName == "Custom Event") {
    if (
      loadedAdapterResponseInfo.adapterClassName ==
        "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 .

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