Перейти к основному содержимому
Версия: 3.3.1

Методы Обратного Вызова Для Отслеживания Дохода От Рекламы

Appodeal SDK позволяет вам получить данные о доходе от рекламы на уровне показа с помощью Ad Revenue Callbacks. Эти данные включают в себя такую информацию, как название рекламной сети, доход, тип рекламы, и т.д.

Данные о доходе от рекламы на уровне показа могут использоваться для отправки в сторонние SDK, такие как Firebase, для всех поддерживаемых рекламных сетей.

Если вы уже интегрировали Firebase, который включен в Appodeal SDK, используя инструкцию, то данные о доходе от рекламы будут отправлены автоматически, можете почитать подробнее здесь во втором шаге.

Минимальные требования:

Appodeal SDK 3.0.1+

Реализация Методов Обратного Вызова

extension YourViewController: UIViewController, AppodealAdRevenueDelegate {
override func viewDidLoad() {
super.viewDidLoad()
Appodeal.setAdRevenueDelegate(self)
}

func didReceiveRevenue(forAd ad: AppodealAdRevenue) {
let parameters: [String: Any] = [
"network": ad.networkName,
"ad_unit": ad.adUnitName,
"placement": ad.placement,
"revenue_precision": ad.revenuePrecision,
"demand": ad.demandSource,
"currency": ad.currency,
"revenue": ad.revenue,
"ad_type": ad.adTypeString
]

}
}
Примечание Admob

Для получения дохода от рекламы на уровне показов от Admob вам также необходимо включить эту настройку в вашей учетной записи AdMob.

Перейдите в Admob Account SettingsAccount → включите Impression-level ad revenue переключатель.


Описание Appodeal Ad Revenue

AppodealAdRevenue - представляет информацию о доходах.

ПараметрТипОписание
networkNameStringИмя рекламной сети.
demandSourceStringИмя источника спроса и имя участника торгов в случае показа в результате торгов в реальном времени.
adUnitNameStringУникальное название рекламного блока.
placementStringИмя плейсмента в Appodeal.
revenueDoubleСумма дохода от объявления или 0, если его не существует.
adTypeIntТип рекламы Appodeal.
adTypeStringStringТип рекламы Appodeal в строковом представлении.
platformStringИмя платформы Appodeal.
currencyStringТекущая валюта, поддерживаемая Appodeal (USD) в строковом представлении.
revenuePrecisionStringТочность дохода.
ВАРИАНТЫ ТОЧНОСТИ ДОХОДА
  1. exact - программный доход - это итоговая цена аукциона
  2. publisher_defined - доход от кросс-промо кампаний
  3. estimated - доход на основе исторических данных сети eCPM и pricefloor
  4. undefined - сумма дохода неопределена

Вариант Использования

Помните:

Если вы интегрировали аналитику, например Firebase, используя это руководство с Appodeal, то никаких дополнительных действий не требуется.

Если вы используете в проекте свою собственную аналитику, то воспользуйтесь примером ниже:

extension YourViewController: UIViewController, AppodealAdRevenueDelegate {
override func viewDidLoad() {
super.viewDidLoad()
Appodeal.setAdRevenueDelegate(self)
}

func didReceiveRevenue(forAd ad: AppodealAdRevenue) {
let parameters: [String: Any] = [
"network": ad.networkName,
"ad_unit": ad.adUnitName,
"placement": ad.placement,
"revenue_precision": ad.revenuePrecision,
"demand": ad.demandSource,
"currency": ad.currency,
"revenue": ad.revenue,
"ad_type": ad.adTypeString
]

//AppsFlyer
let adRevenueParams:[AnyHashable: Any] = [
kAppsFlyerAdRevenueAdUnit : ad.adUnitName,
kAppsFlyerAdRevenueAdType : ad.adTypeString
]

AppsFlyerAdRevenue.shared().logAdRevenue(
monetizationNetwork: ad.networkName,
mediationNetwork: MediationNetworkType.appodeal,
eventRevenue: ad.revenue,
revenueCurrency: ad.currency,
additionalParameters: adRevenueParams
)

//Adjust
let adRevenue = ADJAdRevenue(source: ADJAdRevenueSourcePublisher)
adRevenue.setRevenue(ad.revenue, currency: ad.currency)
adRevenue.adRevenueUnit(ad.adUnitName)
adRevenue.adRevenueNetwork(ad.networkName)
Adjust.trackAdRevenue(adRevenue)

//Firebase
Analytics.logEvent(AnalyticsEventAdImpression, parameters: [
AnalyticsParameterAdFormat: ad.adTypeString,
AnalyticsParameterAdSource: ad.networkName,
AnalyticsParameterAdUnitName: ad.adUnitName,
AnalyticsParameterAdCurrency: ad.currency,
AnalyticsParameterValue: ad.revenue
])
}
}