Mobile funnel tracking
Track onboarding flows, paywall conversion, and in-app purchase funnels using the Grometrics mobile SDK, custom events, and RevenueCat transaction data.
Last updated June 2026
A mobile funnel combines three types of steps: screen views (tracked automatically by the SDK), goal events (custom events you fire from your app code), and transaction events (synced from RevenueCat). You can mix all three in a single funnel. This page covers how to send the right events from your app so your funnels have data.
Prerequisites
- Grometrics mobile SDK installed and verified for iOS, Android, React Native, or Flutter
- RevenueCat setup completed if tracking in-app purchases or subscriptions
- At least one recorded app session in Settings > Tracking
Steps
Confirm screen tracking is working
Open your app, navigate through several screens, then go to Pages/Screens in Grometrics and confirm your screen names appear. If screens show as generic names, update your navigation stack to use descriptive route names.
Add custom goal events
Fire goal events only after the user completes the action, not when a form or screen loads. Common onboarding events include account_created, profile_completed, notifications_enabled, onboarding_completed, paywall_viewed, and paywall_dismissed. See the [custom goal events docs](/docs/tracking/custom-events) for platform examples and naming rules.
React Native
1Grometrics.track('account_created');23Grometrics.track('profile_completed', {4had_avatar: true,5fields_filled: 4,6});
Link identity for RevenueCat attribution
After your auth session is saved, pass the same app user ID to RevenueCat and Grometrics so subscription revenue can link back to the same app user.
React Native
1await Purchases.logIn(user.id);23await Grometrics.track('account_identified', {4user_id: user.id,5});67await Grometrics.identify(user.id);
Create the funnel in the dashboard
Go to Conversions > Funnels, create a funnel, then mix Screen, Goal, and Transaction steps in the same flow. Set a conversion window that matches your trial length and buying cycle.
Options / Configuration
| Event name | When to fire |
|---|---|
| account_created | After successful signup, not when the form loads |
| profile_completed | After the user submits their profile |
| notifications_enabled | After the user grants push permission |
| onboarding_completed | After the user reaches the main app experience |
| paywall_viewed | When the paywall renders, especially if it is a modal overlay |
| paywall_dismissed | When the user closes the paywall without starting a trial |
Options / Configuration
| Step label | RevenueCat event |
|---|---|
| Trial Started | TRIAL_STARTED |
| Purchase | INITIAL_PURCHASE |
| Trial Converted | TRIAL_CONVERTED |
| Renewal | RENEWAL |
| Cancellation | CANCELLATION |
Event naming rules
Use lowercase letters, numbers, underscores, and hyphens only. Event names are limited to 64 characters. Send at most 10 properties per event, with keys up to 64 characters and values up to 255 characters.
What happens next
Open Conversions and build a paywall funnel such as Home, Paywall, Trial Started, and Purchase. Funnel Analysis guide
Troubleshooting
Screen names are not appearing
The screen name in your funnel step must exactly match what the SDK reports. Check Pages/Screens for the exact tracked names.
RevenueCat transaction steps show zero
Confirm RevenueCat is connected, identity linking uses the same user ID in both SDKs, and the conversion window is long enough for trial conversion.
Goal events are not registering
Confirm the event fires after at least one screen_view. Offline events are queued and sent when connectivity returns.
Some steps have data but later steps do not
This is usually a conversion-window issue. Increase the funnel window if users complete later steps after the current window expires.
Was this page helpful?