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 sự kiện có tên e_{screenId}_{prefix}_{name} vào Firebase Analytics (và log gỡ lỗi), sử dụng ID màn hình từ setScreenNameAndId().
sendAKSEvent chỉ là một hàm bọc 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à thông thường bạn lấy từ setScreenNameAndId().first — hãy tự quản lý/truyền giá trị này nếu không ở trong một 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 ở 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 thêm chỉ mục/tiêu đề vào cuối tên.
7.3 Ghi log và gửi sự kiện dùng chung
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 bọc AppsKitSDKLogManager sử dụng 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:
PTB_LOG— log chung của SDKPTB_LOG_ADS— vòng đời tải/hiển thị quảng cáoPTB_LOG_ANALYTICS— sự kiện gửi đến Firebase/các MMP