nexly 1.0.0 copy "nexly: ^1.0.0" to clipboard
nexly: ^1.0.0 copied to clipboard

Official Nexly analytics SDK for Flutter. Track pageviews, screens, custom events, and engagement on iOS and Android with a privacy-friendly API.

Nexly #

Official Flutter SDK for Nexly analytics on iOS and Android. Pure Dart on top of package:http and shared_preferences, no native code.

Install #

flutter pub add nexly

Setup #

Wrap your app in NexlyProvider:

import 'package:nexly/nexly.dart';

void main() {
  runApp(NexlyProvider(
    appId: 'app_...',
    ingestKey: 'nx_...',
    child: const MyApp(),
  ));
}

Or initialize manually before runApp:

WidgetsFlutterBinding.ensureInitialized();
await Nexly.init(appId: 'app_...', key: 'nx_...');

appId and the ingest key come from the Nexly dashboard. By default the SDK also starts engagement tracking (active seconds, a 60s heartbeat, and session_ping / session_end around app backgrounding) — pass autoEngagement: false to opt out and call Nexly.startEngagement() / Nexly.stopEngagement() manually.

Enable the Mobile apps channel for the app in the Nexly dashboard (SDK options in the setup wizard, or the Ingest settings tab later) so the collector accepts events from this SDK.

Usage #

Nexly.setScreen('Settings');
Nexly.pageview();

// Or in one call:
Nexly.screenview('Pricing');

Nexly.customEvent('checkout_started', cdata: {'cart_value_cents': 4200});

Nexly.event(name: 'search_submitted', type: 'engagement', cdata: {'query_length': 7});

Privacy mode #

When enabled, the SDK never reads or writes device storage for visitor / session identifiers; the collector derives a short-lived, daily-rotating visit fingerprint server-side instead.

await Nexly.init(appId: 'app_...', key: 'nx_...', privacyMode: true);

// Can also be toggled at runtime, e.g. from a settings switch:
await Nexly.setPrivacyMode(true);

Custom visitor / session id #

Works in both modes. In privacy mode this is the only way to get a stable visitor id or control visit grouping client-side.

Nexly.setVisitorId('user_42');
Nexly.setSessionId('checkout-flow-1');

// Clear an override:
Nexly.setVisitorId('');

Versioning #

This package's version is kept in lockstep with the @nexly/* JS packages in the trackers monorepo (packages/core, packages/web, packages/react-native, etc. — all released together via changesets). When those packages bump to e.g. 1.1.0, this package gets a matching 1.1.0 release once the wire-contract changes have been ported, so the version number alone tells you which JS release a given SDK build's behavior corresponds to. See CHANGELOG.md for what changed in each release.

Development #

flutter pub get
flutter test

There is no bundled example app in this repository — the reference Flutter example lives in the trackers monorepo at examples/flutter and consumes this package during development.

0
likes
150
points
68
downloads

Documentation

API reference

Publisher

verified publishernexly.to

Weekly Downloads

Official Nexly analytics SDK for Flutter. Track pageviews, screens, custom events, and engagement on iOS and Android with a privacy-friendly API.

Homepage
Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

flutter, http, shared_preferences

More

Packages that depend on nexly