При показе рекламы Google Mobile Ads SDK предоставляет данные о доходе от рекламы, связанные с этим показом. Вы можете использовать эти данные для расчета общей ценности пользователя или передать их в другие соответствующие системы.
Это руководство призвано помочь вам реализовать сбор данных о доходах от рекламы на уровне показов в вашем проекте Unity.
Предпосылки
- Убедитесь, что вы включили функцию расчета дохода от рекламы на уровне показов в пользовательском интерфейсе AdMob.
- Плагин Unity 5.0.0 или выше.
- Завершите «Начало работы» . В вашем приложении Unity уже должен быть импортирован плагин Google Mobile Ads для 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
. Если вы используете несколько пользовательских событий, имя источника рекламы недостаточно детализировано, чтобы различать их. Чтобы найти конкретное пользовательское событие, выполните следующие действия:
- Получите свойство
AdapterClassName
. - Задайте уникальное название источника рекламы.
В следующем примере задается уникальное имя источника рекламы для пользовательского события:
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
.
Подробную информацию об отправке тестового запроса на рекламу см. в разделе Включение тестовых устройств .