event_tracker_handler 0.1.2
event_tracker_handler: ^0.1.2 copied to clipboard
Multi-provider event tracking with Firebase Analytics, Mixpanel, and webhooks.
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.