Apps Kit SDK logoApps Kit SDK
Документация · Интеграция с Android

7. События и логи AKS

7.1 Автоматические события экрана

Если ваша Activity переопределяет setScreenNameAndId() (возвращая Pair<screenId, screenName>), базовая Activity автоматически отправляет событие SCREEN в onCreate() — дополнительно вызывать ничего не нужно.

7.2 Ручная отправка событий из Activity

Внутри любой Activity, наследующей от AppsKitSDKBaseActivity / AppsKitSDKBaseComponentActivity:

kotlin
sendAKSEvent(AppsKitSDKEventType.BUTTON, "SaveClicked")

Этот вызов создаёт событие с именем e_{screenId}_{prefix}_{name} и записывает его в Firebase Analytics (а также в отладочный лог), используя ID экрана из setScreenNameAndId().

sendAKSEvent — лишь удобная обёртка над приведённым ниже кодом. Его можно вызвать напрямую там, где эта обёртка недоступна: во Fragment, ViewModel, Composable или обычной Activity, которая не наследует от одной из базовых Activity AKS:

kotlin
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:

kotlin
// 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 — общие логи SDK
  • PTB_LOG_ADS — жизненный цикл загрузки и показа рекламы
  • PTB_LOG_ANALYTICS — события, отправляемые в Firebase/MMP