databuckets_event_tracker 1.0.3 copy "databuckets_event_tracker: ^1.0.3" to clipboard
databuckets_event_tracker: ^1.0.3 copied to clipboard

Event Tracker SDK

📦 DataBuckets SDK for Flutter/Dart #

Hướng dẫn tích hợp và sử dụng SDK DatabucketsEventTracker để ghi nhận và gửi các sự kiện (events) trong ứng dụng.


🚀 Khởi tạo SDK #

Khi bắt đầu vòng đời của ứng dụng, hãy khởi tạo SDK bằng:

DatabucketsEventTracker.initialize(config);

Với config là một builder như sau:

final config = DatabucketsEventTrackerConfigBuilder(
  apiKey: api_key,
  baseUrl: base_url,
)
.setFlushThreshold(100)      // Gửi khi hàng đợi đạt 100 events
.setMaxEventsStored(1000)    // Lưu tối đa 1000 events
.setFlushInterval(10000)     // Gửi định kỳ mỗi 10 giây
.setMaxFlushSizeMB(1)        // Payload gửi tối đa 1MB
.build();

DatabucketsEventTracker.initialize(config);

🛠️ Các tham số khởi tạo: #

Tham số Mô tả Mặc định
flushThreshold Gửi events khi số lượng đạt đến ngưỡng 500
maxEventsStored Số event tối đa được lưu trữ 5000
flushInterval Thời gian gửi event định kỳ (ms) 10000
maxFlushSizeMB Kích thước payload gửi tối đa (MB) 5

🧱 Class Event #

1. Tạo Event #

Event event = await Event.create("purchase_button_click");

2. Public Methods #

setEventParams(Map<String, dynamic> params)

Ghi đè toàn bộ eventParams hiện tại.

addEventParams(Map<String, dynamic> params)

Gộp thêm params vào event, ghi đè key nếu trùng.

addUserProperties(Map<String, dynamic> props)

Gộp thêm các userProperties, ghi đè key nếu trùng.

⚠️ Không có hàm setUserProperties công khai.

Các phương thức có thể được gọi một lần mỗi khi ứng dụng được khởi tạo (ví dụ: trong onCreate()), và các event sau khi khởi tạo sẽ mặc định có:

  1. setInstallDay(int installDayMillis)

  2. setUserPseudoId(String pseudoId)

  3. setFirstOpenTime(int firstOpenTimeMillis)

  4. setCommonProperties(Map<String, dynamic> props)

final installDay = DateTime.utc(2025,4,15,13,5,45).millisecondsSinceEpoch;
final firstOpenTime = DateTime.utc(2025,4,17,20,31,3).millisecondsSinceEpoch;

Event.setInstallDay(installDay);
Event.setUserPseudoId('test-user-pseudo-id');
Event.setFirstOpenTime(firstOpenTime);
Event.setCommonProperties({
'level': 1,
'progress': 0.99
});


Event event = await Event.create("purchase_button_click");

event.setEventParams({
  "first_time_purchase": true,
  "first_time_login": false
});

event.addEventParams({
  "product_id": "sku_5678",
  "price": 49.99,
  "currency": "USD"
});

event.addUserProperties({
  "membership_status": "premium",
  "last_login_days": 2
});

// Gửi event
DatabucketsEventTracker.addEvent(event);

⏸ Dừng và tiếp tục SDK #

DatabucketsEventTracker.stop();    // Tạm dừng gửi dữ liệu
DatabucketsEventTracker.resume();  // Tiếp tục gửi dữ liệu

⚠️ Khi gọi stop(), các event vẫn được lưu cục bộ nhưng sẽ không được gửi cho đến khi resume().

✅ Gợi ý: Gọi stop() khi app chuẩn bị thoát (terminate), ví dụ trong dispose().