databuckets_event_tracker 1.0.3 
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
setUserPropertiescô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ó:
- 
setInstallDay(int installDayMillis) - 
setUserPseudoId(String pseudoId) - 
setFirstOpenTime(int firstOpenTimeMillis) - 
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 khiresume().
✅ Gợi ý: Gọi
stop()khi app chuẩn bị thoát (terminate), ví dụ trongdispose().