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 gì để gửi sự kiện này.
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 (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 dưới đây. Bạn có thể gọi trực tiếp các dòng 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 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 ở 40 ký tự, vì vậy hãy đặt name ngắn gọn — đặc biệt với các sự kiện ITEM/LIST, vì chỉ số/tiêu đề sẽ được nối thêm vào 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 SDK chungPTB_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