7. Sự kiện và log AKS
7.1 Sự kiện màn hình tự động
Nếu Activity của bạn ghi đè setScreenNameAndId() (trả về một Pair<screenId, screenName>), Activity cơ sở sẽ tự động gửi sự kiện SCREEN trong onCreate() — bạn không cần tự gọi thêm hàm nào.
7.2 Gửi sự kiện thủ công từ Activity
Từ bên trong bất kỳ Activity nào kế thừa AppsKitSDKBaseActivity / AppsKitSDKBaseComponentActivity:
sendAKSEvent(AppsKitSDKEventType.BUTTON, "SaveClicked")Lệnh này tạo và ghi nhận sự kiện có tên e_{screenId}_{prefix}_{name} vào Firebase Analytics (đồng thời ghi vào log gỡ lỗi), sử dụng ID màn hình từ setScreenNameAndId().
sendAKSEvent chỉ là một hàm bao tiện ích — tương đương với các dòng bên dưới. Bạn có thể gọi trực tiếp đoạn mã này ở những nơi không có sẵn hàm đó (Fragment, ViewModel, Composable hoặc Activity thông thường không kế thừa một trong các Activity cơ sở của AKS):
AKSLogManager.log(
PlatformContext(this),
AKSEventCreator.createEvent(screenId, eventType, name)
)screenId ở đây chính là giá trị Int mà bạn thường lấy từ setScreenNameAndId().first — hãy tự quản lý/truyền giá trị này nếu bạn không ở trong Activity cơ sở của AKS.
AppsKitSDKEventType và tiền tố tương ứng trong tên sự kiện Firebase:
| Hằng enum | Tiền tố |
|---|---|
SCREEN |
SCR |
BUTTON |
BTN |
STATUS |
STS |
ITEM |
ITM |
LIST |
LST |
ICON |
ICO |
DIALOG_BTN |
DLG_BTN |
ACTION |
ACT |
TAB |
TAB |
DIALOG |
DLG |
Firebase Analytics giới hạn tên sự kiện ở mức 40 ký tự, vì vậy hãy giữ name ngắn gọn — đặc biệt với các sự kiện ITEM/LIST, vì chúng nối thêm chỉ mục/tiêu đề vào tên.
7.3 Ghi log và gửi sự kiện dùng chung
Đối với các sự kiện nằm ngoài phạm vi màn hình của Activity (service, ViewModel, repository, v.v.), hãy dùng lớp bao AppsKitSDKLogManager với Context thông thường:
// 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 Thẻ log gỡ lỗi
Lọc Logcat theo các thẻ:
PTB_LOG— log chung của SDKPTB_LOG_ADS— vòng đời tải/hiển thị quảng cáoPTB_LOG_ANALYTICS— các sự kiện được gửi đến Firebase/MMP