Flutter app analytics SDK
for iOS and Android.
Add one package to your Flutter app, mark onboarding steps and paywall events, and see installs, funnel drop-off and revenue from RevenueCat or Superwall in one dashboard. No Firebase project needed.
- Native Swift
- Native Android
- Flutter
- React Native
- RevenueCat
- Superwall
- One package for both storesOne Flutter package covers iOS and Android and records first open and every session on its own.
- Onboarding and paywall eventsMark each onboarding step and paywall action once and watch the funnel and paywall cards fill.
- Revenue from RevenueCat or SuperwallTrials, renewals and refunds land next to the events from the same device.
The dashboard your Flutter events fill, on demo data
Onboarding
Acquisition
Outcomes
16
started
cohort outcomes
50% churn by
7.0d
churn paths
- cancelled
- 0
- expired
- 1
Apple Ads
Devices
Events
How is Workout Tracker doing? Show me the numbers and where we’re losing users.
activationpal.list_apps()└ Workout Tracker id: "workout-tracker"
activationpal.get_stats( app: "workout-tracker", range: "30d" )└ Snapshot received · installs, revenue, onboarding, paywall
WORKOUT TRACKER · LAST 30 DAYS revenue $428.43 ↑80% installs 716 ↑52% conversion 6% 43 purchases installs ▃▅▆▄▅▆▇▆▅▅▄▅▆▅▄▅▆█▇▆▅▂ revenue ▁▆▃▁▁▂▄▂▂▂▂█▂▁▂▁▂▁▃▂▄▂ Oct 11 → Nov 9 ONBOARDING installed 716 100% █████████ your goal 682 95% █████████ experience lev 636 89% ████████░ weekly schedul 594 83% ███████░░ notifications 550 77% ███████░░ completed 526 73% ███████░░
Biggest leak: “experience level” loses 46 users (7% of arrivals). Installs are up 52%. Test a shorter version before increasing spend.
Which markets are actually making money?
MARKET INST REVENUE US United States 213 $223.80 GB United Kingdom 62 $67.95 DE Germany 56 $27.97 AU Australia 28 $23.98 organic 634 $371.99 apple ads 82 $56.44
Revenue is concentrated in United States. Scale only where revenue per install supports the acquisition cost.
Flutter app analytics SDK FAQ
How do I add analytics to a Flutter app?
Run flutter pub add activationpal. Then in main() call WidgetsFlutterBinding.ensureInitialized() and await ActivationPal.configure(app: 'myapp', key: 'ap_pk_YOUR_KEY') before runApp. Awaiting it means an event fired by the first widget cannot race the setup. The app slug and key come from adding the app in the dashboard. Full steps: Flutter setup.
Can I use Flutter analytics without Firebase?
Yes. The package has no Firebase dependency. It relies on shared_preferences, package_info_plus and device_info_plus, and events go to your ActivationPal dashboard.
How do I track onboarding and paywall events in Flutter?
One call per onboarding screen, in order, with the index starting at 0: ActivationPal.onboardingStep(0, id: 'goal', answer: 'lose_weight'), then ActivationPal.onboardingCompleted() at the end. On the paywall: ActivationPal.paywallShown('onboarding'), ActivationPal.paywallPlanSelected('yearly'), ActivationPal.paywallPurchased('yearly') and ActivationPal.paywallDismissed(). What the funnel shows: onboarding funnel analytics.
How do I do Flutter event tracking with custom events?
Call ActivationPal.track('workout_logged', {'type': 'run', 'duration_min': 42}). Use a snake_case name in the past tense, with string, bool, int and double props. New names appear in the Events card with counts and unique devices, with no registration. See the event list.
How does RevenueCat or Superwall revenue join Flutter events?
Through a RevenueCat or Superwall webhook, one revenue source per app. For RevenueCat, configure Purchases first and pass its user id and storefront: ActivationPal.configure(app: 'myapp', key: 'ap_pk_YOUR_KEY', userId: await Purchases.appUserID, storefront: storefront?.countryCode). After a logIn or logOut call ActivationPal.setUserId(await Purchases.appUserID). For Superwall, call await Superwall.shared.identify(userId), then ActivationPal.setUserId(userId) with the same id. Setup: RevenueCat webhook, Superwall webhook and subscription analytics.
Does Apple Search Ads attribution work in Flutter?
On iOS, yes, with no extra code. At first open the package's bundled iOS bridge requests Apple's AdServices attribution token, and the Acquisition card separates Apple Ads installs from organic ones. No tracking prompt is shown. Apple attribution is iOS only. For the native stacks, see iOS analytics and Android analytics. Building with JavaScript instead? React Native analytics.
When are events sent, and does the SDK block the UI?
Up to 500 events are buffered on the device. The SDK flushes every 10 seconds, at 20 buffered events and when the app goes to the background, and retries a failed delivery. It never blocks the UI. Debug, TestFlight and release builds are tagged automatically. It needs Flutter 3.22 or later and Dart 3.4 or later.
How do I get started?
Create a free account, add an app, and follow the setup guide. The first 10,000 events are free and no card is required. Plans are on the pricing page.