Skip to content

Non official Flutter SDK for Openpanel, the open source alternative to Mixpanel

License

Notifications You must be signed in to change notification settings

chikenare/openpanel_flutter

 
 

Repository files navigation

Openpanel Flutter SDK

Package on pub.dev

Non official Flutter SDK for Openpanel, the open source alternative to Mixpanel, GA & Plausible.

Getting started

First, you need to create an account on Openpanel.

Install this package from pub.dev

$ flutter pub add openpanel_flutter

Usage

Import the package:

import 'package:openpanel_flutter/openpanel_flutter.dart';

Then you need to initialize Openpanel before using it:

import 'package:openpanel_flutter/openpanel_flutter.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await Openpanel.instance.initialize(
    options: OpenpanelOptions(
      clientId: <YOUR_CLIENT_ID>,
      clientSecret: <YOUR_CLIENT_SECRET>,
    )
  );

  runApp(MyApp());
}

Track event

To track an event, use:

Openpanel.instance.event('event_name', properties: {
  ...
})

Track navigation

Add the OpenpanelObserverif you want to track navigation

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      navigatorObservers: [
        OpenpanelObserver()
      ],
      ...
    );
  }
}

Track install referrer

To track the referrer url, use the ReferrerObserver if you want to track the referrer url

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      navigatorObservers: [
        ReferrerObserver()
      ],
      ...
    )
  }
}

Global properties

You can set global properties that will be sent with every event. This is useful if you want to set a custom user id for example.

Openpanel.instance.setGlobalProperties({
  'user_id': '123',
  ...
});

Other options

Customize the url

You can also customize the url of the openpanel server. This is useful if you have a custom domain or use a self-hosted instance of Openpanel.

Enable verbose logging

Openpanel.instance.initialize(
  options: OpenpanelOptions(
    clientId: <YOUR_CLIENT_ID>,
    clientSecret: <YOUR_CLIENT_SECRET>,
    verbose: true
  )
)

Disable events collection

You can disable events collection if you don't want to send events to Openpanel.

Openpanel.instance.setCollectionEnabled(false);

Data tracking

This plugin automatically tracks the following data:

  • App version
  • Build number
  • Platform
  • Device model
  • Os version
  • Manufacturer

Issues

Contributing

If you wish to contribute, please send a PR to the Github Repo

Credits

About

Non official Flutter SDK for Openpanel, the open source alternative to Mixpanel

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Dart 37.9%
  • C++ 31.0%
  • CMake 24.8%
  • Swift 2.8%
  • C 1.8%
  • HTML 1.5%
  • Other 0.2%