Методы Обратного Вызова Для Отслеживания Дохода От Рекламы
Appodeal SDK позволяет вам получить данные о доходе от рекламы на уровне показа с помощью Ad Revenue Callbacks. Эти данные включают в себя такую информацию, как название рекламной сети, доход, тип рекламы, и т.д.
Данные о доходе от рекламы на уровне показа могут использоваться для отправки в сторонние SDK, такие как Firebase, для всех поддерживаемых рекламных сетей.
Если вы уже интегрировали Firebase, который включен в Appodeal SDK, используя инструкцию, то данные о доходе от рекламы будут отправлены автоматически, можете почитать подробнее здесь во втором шаге.
Appodeal SDK 3.0.1+
Реализация Методов Обратного Вызова
- UPM Дистрибуция
- Manual Дистрибуция
- Подпишитесь на событие дохода от рекламы, используя один из методов из нашей инструкции.
- Вы можете использовать методы обратного вызова, как показано ниже:
public void SomeMethod()
{
AppodealCallbacks.AdRevenue.OnReceived += (sender, args) => {};
}
- Наследуйте ваш класс от
IAdRevenueListener
:
SomeClassName : IAdRevenueListener {}
- Реализуйте все методы обратного вызова в вашем классе:
#region IAdRevenueListener implementation
public void onAdRevenueReceived(AppodealAdRevenue ad)
{
// Called whenever SDK receives revenue information for an ad
}
#endregion
- Затем вызовите следующий метод перед инициализацией Appodeal SDK:
Appodeal.setAdRevenueCallback(this);
Описание Appodeal Ad Revenue
AppodealAdRevenue
- представляет информацию о доходах.
Parameter | Type | Description |
---|---|---|
NetworkName | String | Имя рекламной сети |
DemandSource | String | Имя источника в случае показа в результате торгов в реальном времени |
AdUnitName | String | Уникальное название рекламного блока |
Placement | String | Имя плейсмента в Appodeal |
Revenue | Double | Сумма дохода от объявления или 0, если его не существует |
AdType | String | Тип рекламы Appodeal в строковом представлении |
Currency | String | Текущая валюта, поддерживаемая Appodeal (USD) в строковом представлении |
RevenuePrecision | String | Точность дохода |
exact
- программный доход - это итоговая цена аукционаpublisher_defined
- доход от кросс-промо кампанийestimated
- доход на основе исторических данных сети eCPM и прайсфлоровundefined
- сумма дохода не определена
Вариант Использования
Если вы интегрировали аналитику, например Firebase, используя это руководство с Appodeal, то никаких дополнительных действий не требуется.
Если вы используете в проекте свою собственную аналитику, то воспользуйтесь примером ниже:
- UPM Дистрибуция
- Manual Дистрибуция
#region IAdRevenueListener implementation
public void OnAdRevenueReceived(AppodealAdRevenue ad)
{
//AppsFlyer
var dict = new Dictionary<string, string>();
dict.Add("AdUnitName", ad.AdUnitName);
dict.Add("AdType", ad.AdType);
AppsFlyerAdRevenue.logAdRevenue(ad.NetworkName,
AppsFlyerAdRevenueMediationNetworkType.AppsFlyerAdRevenueMediationNetworkTypeAppodeal,
ad.Revenue, ad.Currency, dict
);
//Adjust
AdjustAdRevenue adRevenue = new AdjustAdRevenue(AdjustConfig.AdjustAdRevenueSourcePublisher);
adRevenue.setRevenue(ad.Revenue, ad.Currency);
adRevenue.setAdRevenueNetwork(ad.NetworkName);
adRevenue.setAdRevenueUnit(ad.AdUnitName);
Adjust.trackAdRevenue(adRevenue);
//Firebase
Firebase.Analytics.FirebaseAnalytics.LogEvent(
Firebase.Analytics.FirebaseAnalytics.EventAdImpression,
new Firebase.Analytics.Parameter(
Firebase.Analytics.FirebaseAnalytics.ParameterAdPlatform, "Appodeal"),
new Firebase.Analytics.Parameter(
Firebase.Analytics.FirebaseAnalytics.ParameterAdFormat, ad.AdType),
new Firebase.Analytics.Parameter(
Firebase.Analytics.FirebaseAnalytics.ParameterAdSource, ad.NetworkName),
new Firebase.Analytics.Parameter(
Firebase.Analytics.FirebaseAnalytics.AdUnitName, ad.AdUnitName),
new Firebase.Analytics.Parameter(
Firebase.Analytics.FirebaseAnalytics.AdCurrency, ad.Currency),
new Firebase.Analytics.Parameter(
Firebase.Analytics.FirebaseAnalytics.Value, ad.Revenue)
);
}
#endregion
#region IAdRevenueListener implementation
public void onAdRevenueReceived(AppodealAdRevenue ad)
{
//AppsFlyer
var dict = new Dictionary<string, string>();
dict.Add("AdUnitName", ad.AdUnitName);
dict.Add("AdType", ad.AdType);
AppsFlyerAdRevenue.logAdRevenue(ad.NetworkName,
AppsFlyerAdRevenueMediationNetworkType.AppsFlyerAdRevenueMediationNetworkTypeAppodeal,
ad.Revenue, ad.Currency, dict
);
//Adjust
AdjustAdRevenue adRevenue = new AdjustAdRevenue(AdjustConfig.AdjustAdRevenueSourcePublisher);
adRevenue.setRevenue(ad.Revenue, ad.Currency);
adRevenue.setAdRevenueNetwork(ad.NetworkName);
adRevenue.setAdRevenueUnit(ad.AdUnitName);
Adjust.trackAdRevenue(adRevenue);
//Firebase
Firebase.Analytics.FirebaseAnalytics.LogEvent(
Firebase.Analytics.FirebaseAnalytics.EventAdImpression,
new Firebase.Analytics.Parameter(
Firebase.Analytics.FirebaseAnalytics.ParameterAdPlatform, "Appodeal"),
new Firebase.Analytics.Parameter(
Firebase.Analytics.FirebaseAnalytics.ParameterAdFormat, ad.AdType),
new Firebase.Analytics.Parameter(
Firebase.Analytics.FirebaseAnalytics.ParameterAdSource, ad.NetworkName),
new Firebase.Analytics.Parameter(
Firebase.Analytics.FirebaseAnalytics.AdUnitName, ad.AdUnitName),
new Firebase.Analytics.Parameter(
Firebase.Analytics.FirebaseAnalytics.AdCurrency, ad.Currency),
new Firebase.Analytics.Parameter(
Firebase.Analytics.FirebaseAnalytics.Value, ad.Revenue)
);
}
#endregion