События и доход
Событие — то, что пользователь сделал в приложении: прошёл обучение, оформил покупку, поднял уровень. 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
Заголовок раздела «Подписки Google Play»Для подписок есть отдельный метод с данными покупки 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".

