7. AKS 事件与日志
7.1 自动屏幕事件
如果你的 Activity 重写了 setScreenNameAndId()(返回 Pair<screenId, screenName>),基类 Activity 会在 onCreate() 中自动触发 SCREEN 事件,无需手动调用。
7.2 在 Activity 内手动发送事件
在任何继承自 AppsKitSDKBaseActivity / AppsKitSDKBaseComponentActivity 的 Activity 内调用:
sendAKSEvent(AppsKitSDKEventType.BUTTON, "SaveClicked")这会使用 setScreenNameAndId() 返回的屏幕 ID,构建名为 e_{screenId}_{prefix}_{name} 的事件,并将其记录到 Firebase Analytics 和调试日志中。
sendAKSEvent 只是一个便捷封装,等价于以下代码。如果当前组件无法使用该方法(例如 Fragment、ViewModel、Composable,或未继承任何 AKS 基类 Activity 的普通 Activity),可以直接调用以下代码:
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:
// 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 的事件