7. События и логи AKS
7.1 Автоматические события экрана
Если ваша Activity переопределяет setScreenNameAndId() (возвращая Pair<screenId, screenName>), базовая Activity автоматически отправляет событие SCREEN в onCreate() — дополнительно вызывать ничего не нужно.
7.2 Ручная отправка событий из Activity
Внутри любой Activity, наследующей от AppsKitSDKBaseActivity / AppsKitSDKBaseComponentActivity:
sendAKSEvent(AppsKitSDKEventType.BUTTON, "SaveClicked")Этот вызов создаёт событие с именем e_{screenId}_{prefix}_{name} и записывает его в Firebase Analytics (а также в отладочный лог), используя ID экрана из setScreenNameAndId().
sendAKSEvent — лишь удобная обёртка над приведённым ниже кодом. Его можно вызвать напрямую там, где эта обёртка недоступна: во Fragment, ViewModel, Composable или обычной Activity, которая не наследует от одной из базовых Activity AKS:
AKSLogManager.log(
PlatformContext(this),
AKSEventCreator.createEvent(screenId, eventType, name)
)Здесь screenId — это значение типа Int, которое в базовой Activity можно получить через setScreenNameAndId().first. Вне базовой Activity AKS храните и передавайте его самостоятельно.
Значения AppsKitSDKEventType и соответствующие префиксы имён событий Firebase:
| Константа перечисления | Префикс |
|---|---|
SCREEN |
SCR |
BUTTON |
BTN |
STATUS |
STS |
ITEM |
ITM |
LIST |
LST |
ICON |
ICO |
DIALOG_BTN |
DLG_BTN |
ACTION |
ACT |
TAB |
TAB |
DIALOG |
DLG |
Firebase Analytics ограничивает длину имени события 40 символами, поэтому используйте короткие значения name. Это особенно важно для событий ITEM/LIST, у которых к имени добавляется индекс или заголовок.
7.3 Логирование и события общего назначения
Для событий, не привязанных к экрану Activity (в сервисах, ViewModel, репозиториях и т. д.), используйте обёртку AppsKitSDKLogManager, работающую с обычным Context:
// Free-form debug log (tagged PTB_LOG in Logcat)
AppsKitSDKLogManager.log(AppsKitSDKLogType.INFO, "Sync finished")
// Fire a named Firebase event with parameters, from anywhere
AppsKitSDKLogManager.sendEvent("custom_event_name", mapOf("key" to "value"))
// Purchase / subscription events
AppsKitSDKLogManager.sendPurchaseEvent(
context = this,
purchaseType = PurchaseType.SUBSCRIPTION, // or PurchaseType.IN_APP
productId = "premium_monthly",
price = 4.99,
currency = "USD",
receiptId = receipt,
uniqueTransactionId = transactionId,
startDate = startDateIso,
endDate = endDateIso
)
// SDK build/version banner in Logcat
AppsKitSDKLogManager.logAarVersion()AppsKitSDKLogType: INFO, ERROR, VERBOSE, WARNING, DESCRIPTION.
7.4 Теги отладочных логов
Фильтруйте сообщения в Logcat по тегам:
PTB_LOG— общие логи SDKPTB_LOG_ADS— жизненный цикл загрузки и показа рекламыPTB_LOG_ANALYTICS— события, отправляемые в Firebase/MMP