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

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

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

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

Предпосылки

Реализация платного обработчика событий

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

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

private void LoadRewardedAd()
{
   // Send the request to load the ad.
   AdRequest adRequest = new AdRequest();
   RewardedAd.Load("AD_UNIT_ID", adRequest, (RewardedAd rewardedAd, LoadAdError error) =>
   {
      // If the operation failed with a reason.
      if (error != null)
      {
         Debug.LogError("Rewarded ad failed to load an ad with error : " + error);
         return;
      }

      rewardedAd.OnAdPaid += this.HandleAdPaidEvent;
   });
}

public void HandleAdPaidEvent(AdValue adValue)
{
    // TODO: Send the impression-level ad revenue information to your
    // preferred analytics server directly within this callback.

    long valueMicros = adValue.Value;
    string currencyCode = adValue.CurrencyCode;
    PrecisionType precision = adValue.Precision;

    ResponseInfo responseInfo = rewardedAd.GetResponseInfo();
    string responseId = responseInfo.GetResponseId();

    AdapterResponseInfo loadedAdapterResponseInfo = responseInfo.GetLoadedAdapterResponseInfo();
    string adSourceId = loadedAdapterResponseInfo.AdSourceId;
    string adSourceInstanceId = loadedAdapterResponseInfo.AdSourceInstanceId;
    string adSourceInstanceName = loadedAdapterResponseInfo.AdSourceInstanceName;
    string adSourceName = loadedAdapterResponseInfo.AdSourceName;
    string adapterClassName = loadedAdapterResponseInfo.AdapterClassName;
    long latencyMillis = loadedAdapterResponseInfo.LatencyMillis;
    Dictionary<string, string> credentials = loadedAdapterResponseInfo.AdUnitMapping;

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

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

Для источников рекламы на основе пользовательских событий свойство AdSourceName содержит имя источника рекламы Custom Event . Если вы используете несколько пользовательских событий, имя источника рекламы недостаточно детализировано, чтобы различать их. Чтобы найти конкретное пользовательское событие, выполните следующие действия:

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

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

private string GetAdSourceName(AdapterResponseInfo loadedAdapterResponseInfo)
{
    if (loadedAdapterResponseInfo == null)
    {
        return string.Empty;
    }

    string adSourceName = loadedAdapterResponseInfo.AdSourceName;

    if (adSourceName == "Custom Event")
    {

        #if UNITY_ANDROID
            if (loadedAdapterResponseInfo.AdapterClassName ==
                "com.google.ads.mediation.sample.customevent.SampleCustomEvent")
            {
                adSourceName = "Sample Ad Network (Custom Event)";
            }
        #elif UNITY_IPHONE
            if (loadedAdapterResponseInfo.AdapterClassName == "SampleCustomEvent")
            {
                adSourceName = "Sample Ad Network (Custom Event)";
            }
        #endif

    }
    return adSourceName;
}

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

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

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

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

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

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

AdValue

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

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

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

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

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

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

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

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