Перейти к содержимому

События и доход

Событие — то, что пользователь сделал в приложении: прошёл обучение, оформил покупку, поднял уровень. SDK отправляет события в Tracehub, а вы видите их в отчётах, когортах и постбэках. Здесь — все способы отправить событие, доход, подписку и рекламный доход.

Отправленные события появляются в кабинете Tracehub — вкладка «События» на странице приложения. Карточка события появляется в каталоге сама — обычно через несколько секунд после первой отправки из SDK; завести событие заранее нельзя. Если карточки нет, обновите страницу; иногда она появляется только после следующей отправки того же события.

Tracehub.trackEvent(TracehubEvent("tutorial_complete"))

Укажите сумму и код валюты:

val event = TracehubEvent("purchase").apply {
revenue = 4.99
currency = "USD"
}
Tracehub.trackEvent(event)

Используйте deduplicationId, чтобы одно и то же событие не было засчитано дважды — например, при повторной отправке после сетевой ошибки:

val event = TracehubEvent("purchase").apply {
revenue = 4.99
currency = "USD"
deduplicationId = order.id
}
Tracehub.trackEvent(event)

К событию можно прикрепить собственные пары «ключ-значение» двух видов:

Вид Метод
Callback-параметры addCallbackParameter(key, value)
Partner-параметры addPartnerParameter(key, value)

Дополнительные параметры события работают только внутри отчётов кабинета — как фильтр и разбивка, и только после того, как для параметра включена настройка «Индексировать» (история, накопленная до включения, разбивкой не покрывается).

val event = TracehubEvent("level_up").apply {
addCallbackParameter("level", "12")
addCallbackParameter("character", "mage")
addPartnerParameter("segment", "power_user")
}
Tracehub.trackEvent(event)

Глобальные параметры добавляются ко всем сессиям и событиям автоматически и сохраняются между перезапусками приложения:

// callback-параметры
Tracehub.addGlobalCallbackParameter("user_id", "u123456")
Tracehub.removeGlobalCallbackParameter("user_id")
Tracehub.removeGlobalCallbackParameters() // удалить все
// partner-параметры
Tracehub.addGlobalPartnerParameter("segment", "premium")
Tracehub.removeGlobalPartnerParameter("segment")
Tracehub.removeGlobalPartnerParameters() // удалить все

Чтобы узнавать о судьбе отправленных событий и сессий, зарегистрируйте слушатели в конфигурации:

TracehubConfig.Builder(...)
.setOnEventTrackingSucceededListener { e ->
Log.d("Tracehub", "Событие '${e.eventToken}' отправлено")
}
.setOnEventTrackingFailedListener { f ->
Log.w("Tracehub", "Ошибка события '${f.eventToken}', willRetry: ${f.willRetry}")
}
.setOnSessionTrackingSucceededListener { s -> /* сессия отправлена */ }
.setOnSessionTrackingFailedListener { f -> /* ошибка сессии */ }

Поле willRetry показывает, повторит ли SDK отправку сам.

Для подписок есть отдельный метод с данными покупки Google Play:

val sub = TracehubPlayStoreSubscription(
price = 499, // цена в минимальных единицах валюты
currency = "RUB",
sku = "com.example.premium_monthly",
orderId = purchase.orderId,
signature = purchase.signature,
purchaseToken = purchase.purchaseToken,
).apply {
purchaseTime = purchase.purchaseTime
addCallbackParameter("plan", "monthly")
}
Tracehub.trackPlayStoreSubscription(sub)

Доход от разовых покупок Google Play отправляйте обычным событием с revenue и currency — см. раздел «Событие с доходом» выше. Чтобы повторная отправка не удвоила доход, передавайте идентификатор заказа в deduplicationId.

Доход от показа рекламы передаётся отдельным методом — с указанием источника данных и деталей размещения:

val adRevenue = TracehubAdRevenue("admob_sdk").apply {
revenue = 0.0045
currency = "USD"
adImpressionsCount = 1
adRevenueNetwork = "AdMob"
adRevenueUnit = "banner_home"
adRevenuePlacement = "top"
}
Tracehub.trackAdRevenue(adRevenue)

Распространённые значения источника: "admob_sdk", "applovin_max_sdk", "ironsource_sdk", "topon_sdk", "tradplus_sdk", "unity_level_play_sdk", "publisher_defined".