philiprehberger_event_tracker 0.2.0 copy "philiprehberger_event_tracker: ^0.2.0" to clipboard
philiprehberger_event_tracker: ^0.2.0 copied to clipboard

Analytics event tracking with filtering, buffering, and multi-sink export

example/example.dart

import 'package:philiprehberger_event_tracker/event_tracker.dart';

Future<void> main() async {
  // Create a tracker with a console sink
  final tracker = EventTracker();
  tracker.addSink(const ConsoleSink());

  // Track simple events
  await tracker.track('page_view', properties: {'page': '/home'});
  await tracker.track('button_click', properties: {'button': 'signup'});

  // Use a buffered sink for batching
  final memorySink = MemorySink();
  final buffered = BufferedSink(memorySink, batchSize: 5);
  tracker.addSink(buffered);

  // Track more events
  for (var i = 0; i < 7; i++) {
    await tracker.track('loop_event', properties: {'index': '$i'});
  }

  // Flush remaining buffered events
  await tracker.flush();

  // Add a filter — only allow page_view events going forward
  tracker.addFilter(EventFilter.byName({'page_view'}));
  await tracker.track('page_view', properties: {'page': '/about'});
  await tracker.track('button_click'); // This is filtered out

  // Query the store
  print('\nTotal events: ${tracker.store.count}');
  print('Page views: ${tracker.store.eventsNamed('page_view').length}');
  print('Summary: ${tracker.store.summary()}');

  // Search
  final results = tracker.store.search('signup');
  print('Search "signup": ${results.length} result(s)');

  // Export
  print('\n--- Export ---');
  print(tracker.store.export());
}
2
likes
160
points
--
downloads

Documentation

API reference

Publisher

verified publisherphiliprehberger.com

Analytics event tracking with filtering, buffering, and multi-sink export

Homepage
Repository (GitHub)
View/report issues

Topics

#analytics #events #tracking

License

MIT (license)

More

Packages that depend on philiprehberger_event_tracker