Apps Kit SDK logoApps Kit SDK
Tài liệu · Tích hợp Android

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:

kotlin
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):

kotlin
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:

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 Thẻ log gỡ lỗi

Lọc Logcat theo:

  • PTB_LOG — log SDK chung
  • PTB_LOG_ADS — vòng đời tải/hiển thị quảng cáo
  • PTB_LOG_ANALYTICS — các sự kiện được gửi đến Firebase/MMP