Skip to main content

apprvd_tracker 0.6.0 copy "apprvd_tracker: ^0.6.0" to clipboard
apprvd_tracker: ^0.6.0 copied to clipboard

Tiny event tracker for Apprvd.app. Batches events in memory and posts them to Apprvd.app's ingest endpoint for push audiences and tracker KPIs.

0.6.0 #

  • Platform, app version and SDK version on every batch. init takes optional platform ('ios', 'android' or 'web') and appVersion, and each batch also carries sdkVersion (Apprvd.sdkVersion). With them, Apprvd.app compares each release with the one before and flags a key event that stopped arriving on the new version. Sent once per batch, not per event; a value left out is omitted, never sent as null.

0.5.1 #

  • Fix: one bad param stopped all tracking. Params were only encoded at flush, so a DateTime or an enum made every flush throw and the queue never drained. They are encoded in track() now, and a value JSON has no type for is sent as its toString(); a cyclic map drops its own event.
  • Fix: one oversized event lost its whole batch. The server rejects a batch over any one event, so track() now drops an event whose params are over 8 KB as JSON, or whose param name is empty or over 40 characters.
  • Fix: a bad event name crashed debug builds. track() no longer asserts: an invalid name (e.g. "Sign Up") is dropped with a printed warning in debug builds, silently in release.

0.5.0 #

  • Experiments without Remote Config. Apprvd.variant(key, fallback:) returns which variant of an Apprvd.app test this device gets: a stable FNV-1a bucket of the device id and the test, the same in the Swift and Kotlin SDKs. The config is fetched at init (configEndpoint overrides the URL), can be cached across launches with experimentsCache / onExperiments, and experimentsReady completes on the first answer or after 2 s. The first answer per key holds for the session; the first assigned one sends an apprvd_exposure event.

0.4.0 #

  • Renamed from pulse_tracker, and the Pulse class is now Apprvd: import package:apprvd_tracker/apprvd_tracker.dart and call Apprvd.track(...). The wire format is unchanged.

0.3.1 #

  • Fix: a successful send could delete unsent events. With the queue at its 500 cap, events tracked while a batch was in flight evicted from the head, and the 2xx then removed the first N entries by count, some of them never sent. Sent events are now removed by identity.

0.3.0 #

  • appInstanceId on init (and Pulse.setAppInstanceId for when it resolves later). Pass FirebaseAnalytics.instance.appInstanceId: it is the same value as user_pseudo_id in the BigQuery export, and it is the only thing that links your Firebase analytics to a tracker event and to a push token. Sent once per batch, not per event.

0.2.0 #

  • Fix: a 429 no longer discards the batch. Rate limiting is backpressure, not rejection: the old code treated any non-5xx as final and dropped the events, losing data exactly when the app was producing it fastest. 429 now keeps the batch and retries.
  • Honour Retry-After on 429/503 (clamped to 1–300 s, so a missing or hostile header can neither wedge the queue nor licence a hot retry loop). A bare 5xx with no header still just waits for the next tick.

0.1.0 #

  • Initial release: Pulse.init / track / identify / flush, in-memory batching (20 events / 10 s), retry on 5xx and network errors, client-side dedup ids, 500-event queue cap.
0
likes
160
points
531
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Tiny event tracker for Apprvd.app. Batches events in memory and posts them to Apprvd.app's ingest endpoint for push audiences and tracker KPIs.

Homepage

License

MIT (license)

Dependencies

http

More

Packages that depend on apprvd_tracker