Apps Kit SDK logoApps Kit SDK
文档 · Android 集成

7. AKS 事件与日志

7.1 自动屏幕事件

如果你的 Activity 重写了 setScreenNameAndId()(返回 Pair<screenId, screenName>),基类 Activity 会在 onCreate() 中自动触发 SCREEN 事件,无需手动调用。

7.2 在 Activity 内手动发送事件

在任何继承自 AppsKitSDKBaseActivity / AppsKitSDKBaseComponentActivity 的 Activity 内调用:

kotlin
sendAKSEvent(AppsKitSDKEventType.BUTTON, "SaveClicked")

这会使用 setScreenNameAndId() 返回的屏幕 ID,构建名为 e_{screenId}_{prefix}_{name} 的事件,并将其记录到 Firebase Analytics 和调试日志中。

sendAKSEvent 只是一个便捷封装,等效于下面的代码。如果所在位置无法使用该方法(例如 Fragment、ViewModel、Composable,或未继承任何 AKS 基类 Activity 的普通 Activity),可以直接调用以下代码:

kotlin
AKSLogManager.log(
    PlatformContext(this),
    AKSEventCreator.createEvent(screenId, eventType, name)
)

这里的 screenId 就是通常通过 setScreenNameAndId().first 获取的 Int 值。如果不在 AKS 基类 Activity 内,需要自行维护和传递该值。

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、仓储层等的事件),请使用基于普通 Context 的封装类 AppsKitSDKLogManager:

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 的事件