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, goal events, and transaction events synced from RevenueCat. React Native can capture screens through its navigation callbacks; native iOS, Android, and Flutter apps call trackScreen from their navigation lifecycle. You can mix all three in one funnel.

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

Anonymous tracking and identity linking

Steps

1

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.

2

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 for platform examples and naming rules.

React Native

1await tracker.track('account_created');23await tracker.track('profile_completed', {4  had_avatar: true,5  fields_filled: 4,6});
3

Merge anonymous and logged-in activity

After your auth session is saved, pass the same stable app user ID to RevenueCat and Grometrics. Identify retroactively merges earlier screens and goals with later server events and subscription revenue across every analytics report.

React Native

1await Purchases.logIn(user.id);2await tracker.identify(user.id);34// Before sign-out on a shared device5await tracker.reset();
4

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.

Browser-to-server funnels use the same person

Canonical identity resolution is shared across funnels, Visitors, unique counts, revenue, goals, journeys, devices, and Realtime. A browser pageview and a backend event sent with the identified userId can complete one funnel path.

OR and all-of steps

In the funnel editor, use the filter button for property filters such as is_first_message = true, + OR for alternatives such as first_project_created OR template_imported, and ALL OF when one logical step requires every event in any order, such as profile_name_added plus profile_photo_added, profile_role_selected, profile_bio_added, and profile_topics_selected.

Options / Configuration

Event nameWhen to fire
account_createdAfter successful signup, not when the form loads
profile_completedAfter the user submits their profile
notifications_enabledAfter the user grants push permission
onboarding_completedAfter the user reaches the main app experience
paywall_viewedWhen the paywall renders, especially if it is a modal overlay
paywall_dismissedWhen the user closes the paywall without starting a trial

Options / Configuration

Step labelRevenueCat event
Trial StartedTRIAL_STARTED
PurchaseINITIAL_PURCHASE
Trial ConvertedTRIAL_CONVERTED
RenewalRENEWAL
CancellationCANCELLATION

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.

Web checkout revenue

If the mobile funnel leads users into web checkout, connect [Stripe analytics](/stripe-analytics) so the same source and screen path can be reviewed beside Stripe customers, renewals, refunds, and revenue attribution.

What happens next

Build a dedicated install-to-trial funnel when you need to diagnose the full path from first app open to trial start. Install-to-trial funnel

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?