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

Когда происходит показ, GMA Next-Gen SDK предоставляет данные о доходе от рекламы, связанные с этим показом. Вы можете использовать эти данные, чтобы рассчитать ценность пользователя за все время или передать их в другие системы.

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

Требования

У каждого формата объявлений естьonAdPaid функция обратного вызова события. Во время жизненного цикла события объявления GMA Next-Gen SDK отслеживает события показа и вызывает обработчик с полученным значением.

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

Kotlin

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

Java

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. Укажите уникальное название источника объявлений.

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

Kotlin

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
}

Java

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

Подробнее о получении информации об ответе на запрос объявления…

Рекомендации по реализации

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

AdValue

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

PrecisionType Описание
UNKNOWN Неизвестное значение объявления. Возвращается, когда включена передача данных о пожизненной ценности, но доступно недостаточно данных.
ESTIMATED Доход от объявления рассчитывается на основе агрегированных данных.
PUBLISHER_PROVIDED Стоимость объявления, указанная издателем, например цена за тысячу показов, назначенная вручную в группе медиации.
PRECISE Точная стоимость показа объявления.

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

Тестирование показов с использованием Open Bidding

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

  • UNKNOWN – элемент, определяющий тип точности;
  • 0 – значение объявления.
Ранее тип точности мог быть указан как значение, отличное от UNKNOWN, а значение объявления – как число больше 0.

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