Skip to main content

herald 1.0.1 copy "herald: ^1.0.1" to clipboard
herald: ^1.0.1 copied to clipboard

One analytics vocabulary, heard by every vendor. Events, properties and the Herald fan-out, in pure Dart with no vendor SDK.

example/herald_example.dart

import 'package:herald/herald.dart';

final class const CheckoutStarted(final String plan, final int seats) extends Event {
  @override
  String get name => 'checkout_started';

  @override
  Map<String, AnalyticsValue> get parameters => {'plan': .string(plan), 'seats': .int(seats)};
}

/// A vendor of your own. The vendor packages, such as herald_firebase, provide real ones.
final class PrintEventTracker implements EventTrackerService {
  @override
  Future<void> track(Event event) async => print('${event.name} ${event.parameters}');
}

Future<void> main() async {
  final herald = Herald(
    providers: [HeraldProvider(name: 'print', events: PrintEventTracker())],
    errorReporter: (failure) => print('$failure'),
  );

  await herald.track(const CheckoutStarted('pro', 3));
}
0
likes
0
points
556
downloads

Documentation

Documentation

Publisher

unverified uploader

Weekly Downloads

One analytics vocabulary, heard by every vendor. Events, properties and the Herald fan-out, in pure Dart with no vendor SDK.

Repository (GitHub)
View/report issues

Topics

#analytics #tracking #events

License

unknown (license)

More

Packages that depend on herald