Когда происходит показ, Google Mobile Ads Unity Plugin предоставляет данные о доходе от рекламы, связанном с этим показом. Вы можете использовать эти данные, чтобы рассчитать ценность пользователя за все время или передать их в другие системы.
Это руководство поможет вам настроить сбор данных о доходе от рекламы на уровне показа в проекте Unity.
Требования
- Убедитесь, что вы включили функцию "Доход от рекламы на уровне показа" в интерфейсе AdMob.
- Плагин Unity версии 5.0.0 или более поздней.
- Нажмите Начать. В ваше приложение Unity уже должен быть импортирован плагин Google Mobile Ads для Unity.
Чтобы получать данные о доходе от рекламы на уровне показа, необходимо реализовать хотя бы один формат объявлений:
Как реализовать обработчик платных событий
У каждого формата объявлений есть событие OnAdPaid. В течение жизненного цикла события объявления Google Mobile Ads Unity Plugin отслеживает события показа и вызывает обработчик с 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;
}Подробнее о том, как получить информацию об ответе на запрос объявления…
Интеграция с партнерами по атрибуции конверсий в приложениях
Подробные инструкции по передаче данных о доходе от рекламы на аналитические платформы приведены в руководствах партнеров:
| SDK партнера |
|---|
| Adjust |
| AppsFlyer |
| Singular |
| Tenjin |
Рекомендации по реализации
- Событие
OnPaidEventнужно задать сразу после создания объекта объявления или получения к нему доступа и обязательно до показа объявления. Это гарантирует, что вы не пропустите ни одного обратного вызова. - Отправьте информацию о доходе от рекламы на уровне показа на нужный сервер аналитики сразу в обработчике
OnPaidEvent. Это позволяет избежать случайного пропуска обратных вызовов и расхождений в данных.
AdValue
AdValue – это класс, который представляет денежную ценность, полученную за показ объявления, включая код валюты и тип точности, закодированный следующим образом:
AdValue.PrecisionType |
Описание |
|---|---|
Unknown |
Неизвестное значение объявления. Возвращается, когда включена передача данных о пожизненной ценности, но доступно недостаточно данных. |
Estimated |
Доход от объявления рассчитывается на основе агрегированных данных. |
PublisherProvided |
Стоимость объявления, указанная издателем, например цена за тысячу показов, назначенная вручную в группе медиации. |
Precise |
Точная стоимость этого объявления. |
При медиации AdMob пытается предоставить значение Estimated для оптимизированных источников объявлений. Для неоптимизированных источников объявлений или в случаях, когда недостаточно агрегированных данных для создания значимой оценки, возвращается значение PublisherProvided.
Тестовые показы из источников объявлений с назначением ставок
После того как для источника объявлений со ставками в результате тестового запроса происходит событие, связанное с доходом от рекламы на уровне показа, вы получаете только следующие значения:
Unknown– указывает тип точности.
0– элемент, указывающий ценность объявления;
Unknown, а значение объявления – числом, большим 0.
Подробнее о том, как отправить тестовый запрос объявления, см. Включение тестовых устройств.