event_tracker_handler
Multi-provider event tracking with Firebase Analytics, Mixpanel, and custom webhooks.
Features
- Track predefined events with a single handler.
- Firebase Analytics, Mixpanel, and custom webhook backends.
- Typed user and event data (items, value, currency, custom fields).
- Built-in event timing helpers.
Getting started
Add event_tracker_handler to your pubspec.yaml and complete the setup for any
providers you plan to use (Firebase/Mixpanel).
Usage
Create settings for each tracker and build a handler instance:
import 'package:decimal/decimal.dart';
import 'package:event_tracker_handler/event_tracker_handler.dart';
final handler = EventTrackerHandler.instance([
EventTrackerSettingsFirebase(
eventsToTrack: [EventTrackerEvents.openApp, EventTrackerEvents.purchase],
),
EventTrackerSettingsMixpanel(
token: 'YOUR_MIXPANEL_TOKEN',
eventsToTrack: [EventTrackerEvents.openApp, EventTrackerEvents.purchase],
),
EventTrackerSettingsCustomWebhook(
url: 'https://example.com/events',
eventsToTrack: [EventTrackerEvents.openApp],
),
]);
Future<void> trackPurchase() async {
await handler.init();
handler.logEvent(
type: EventTrackerEvents.purchase,
userData: EventTrackerUserData(
uuid: 'user-123',
email: 'user@example.com',
isAnonymous: false,
),
data: EventTrackerData(
value: Decimal.parse('29.90'),
currency: 'USD',
customData: {'plan': 'pro'},
),
);
}
You can also build tracker settings from a map:
final settings = EventTrackerSettingsModel.fromMap({
'type': 'EventTrackerType.mixpanel',
'token': 'YOUR_MIXPANEL_TOKEN',
'events': ['EventTrackerEvents.openApp', 'EventTrackerEvents.purchase'],
});
Additional information
Custom webhook events include app and device metadata plus the user payload.
Libraries
- domain/core/event_tracker_handler
- domain/core/event_tracker_handler_contract
- domain/enum/event_tracker_events
- domain/enum/event_tracker_type
- domain/event_data/event_tracker_data
- domain/event_data/event_tracker_item
- domain/event_data/event_tracker_user_data
- domain/event_tracker_settings/event_tracker_settings_custom_webhook
- domain/event_tracker_settings/event_tracker_settings_firebase
- domain/event_tracker_settings/event_tracker_settings_mixpanel
- domain/event_tracker_settings/event_tracker_settings_model
- domain/repository/event_tracker_repository_contract
- domain/trackers/event_tracker_contract
- domain/trackers/event_tracker_firebase
- domain/trackers/event_tracking_custom_webhook
- domain/trackers/event_tracking_mixpanel
- domain/utils/enum_handler
- event_tracker_handler