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

Выберите платформу: Android (бета-версия) Новоизбранный Android iOS Unity

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

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

Предварительные требования

Для каждого формата рекламы существует функция обратного вызова события onAdPaid . В течение жизненного цикла рекламного события GMA Next-Gen 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")
    }
  }

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. Укажите уникальное название источника рекламы.

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

Котлин

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

Для получения дополнительной информации об источнике объявления-победителя см. раздел «Получение информации об отклике на объявление» .

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

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

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

Передовые методы внедрения

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

AdValue

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

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

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

Тестовые показы из рекламных источников, участвующих в аукционе.

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

  • UNKNOWN : указывает тип точности.
  • 0 : указывает на стоимость рекламы.

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

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