Install-to-trial funnel
Measure and diagnose the conversion rate from app install to trial start.
Last updated June 2026
The install-to-trial funnel tracks every step between the first app open and a free trial. It combines screen tracking, custom goal events, and RevenueCat transaction data in one funnel. React Native can capture screens from navigation callbacks; native apps call trackScreen from their navigation lifecycle.
This page covers setup. For interpretation and benchmarks, see the install-to-trial guide.
Prerequisites
- Grometrics mobile SDK installed for iOS, Android, React Native, or Flutter
- RevenueCat setup completed for the Trial Started step
- Identity linking configured for RevenueCat matching
- Custom goal events planned for signup and profile completion
Automatic tracking vs code
| Step type | Tracked automatically? | Code needed? |
|---|---|---|
| Screen views | React Native after navigation callbacks are wired | Native iOS, Android, and Flutter call trackScreen |
Goal events (account_created, profile_completed) | No | Yes - one tracker.track call per event |
| RevenueCat transactions | Yes - synced via webhook | No after RevenueCat is connected |
| Identity linking | No | Yes - one tracker.identify call after login or signup |
A screen-only funnel needs no event calls after screen tracking is connected. React Native uses its navigation callbacks; iOS, Android, and Flutter still need their navigation lifecycle wired to trackScreen.
Steps
Confirm screen tracking
Open your app and navigate through all onboarding screens. Then check Pages/Screens in Grometrics and confirm each screen name appears. These names are what you'll use as funnel steps.
If screen names show up as generic names (Screen1, ViewController), update your navigation stack to use descriptive names. The SDK uses whatever your framework reports.
Add goal events
Goal events tell you whether users completed an action, not just whether they saw the screen. Adding them between screen views gives you a more accurate picture.
Common install-to-trial events:
Swift
1// iOS examples — adapt for your platform2await grometrics.track("account_created")3await grometrics.track("profile_completed")4await grometrics.track("onboarding_completed")5await grometrics.track("paywall_viewed")6await grometrics.track("paywall_dismissed")
For all platforms and naming rules, see custom events docs.
Link identity
Call identify once after signup or login so Grometrics merges anonymous screen views with RevenueCat trial events and trusted backend milestones under one canonical visitor.
Swift
1await grometrics.identify(userId: "user_abc123")All previous anonymous screen views and goal events retroactively merge into this identity. See identity linking docs for all platforms and edge cases.
Create the funnel
Create the funnel from the Conversions workspace:
- Go to Conversions → Funnels
- Click + Create funnel
- Name it (e.g. "Install → Trial")
- Add steps:
Recommended configuration
| Step | Type | Value | What it measures |
|---|---|---|---|
| 1 | Screen | Welcome | User opened the app |
| 2 | Screen | Create Account | User reached signup |
| 3 | Goal | account_created | User completed signup |
| 4 | Screen | Profile Setup | User reached profile setup |
| 5 | Goal | profile_completed | User completed profile |
| 6 | Screen | Paywall | User saw the paywall |
| 7 | Transaction | Trial Started | User started a trial |
- Set conversion window: 14 days
- Click Create funnel
Minimal configuration (no goal events)
If you haven't added goal events yet, you can start with screen views and the transaction step only:
| Step | Type | Value |
|---|---|---|
| 1 | Screen | Welcome |
| 2 | Screen | Create Account |
| 3 | Screen | Profile Setup |
| 4 | Screen | Paywall |
| 5 | Transaction | Trial Started |
This shows which screens users reach but not whether they complete the action on each screen. You can add goal events later without recreating the funnel.
Two-step configuration (just the headline number)
| Step | Type | Value |
|---|---|---|
| 1 | Screen | Welcome |
| 2 | Transaction | Trial Started |
This gives you the overall install-to-trial conversion rate as a single number. Useful as a dashboard KPI, but not useful for diagnosis — you won't know where users drop off.
Filtering by source
After the funnel is created, apply source filters using the filter bar:
| Filter | What it shows |
|---|---|
| Source | Meta Ads, Google Ads, App Store, Direct, etc. |
| Medium | paid, organic, referral, social |
| Campaign | specific UTM campaign values |
The entire funnel recalculates for the selected segment. Identity resolution is applied before funnel grouping, so the same person can enter through an anonymous app or browser step and complete later steps through server events. Compare sources to see whether low conversion is a flow problem or a targeting problem.
What happens next
The funnel page shows a bar chart with drop-off badges between steps. The biggest red badge is your highest-leverage fix. See the install-to-trial guide for how to interpret each pattern and decide what to fix.
Troubleshooting
Trial Started step shows zero
- Confirm RevenueCat is connected: Settings → Integrations → RevenueCat should show "Connected" with a transaction count.
- Confirm
grometrics.identify()is called with the same user ID as RevenueCat'slogIn(). - Check the conversion window — if it's 1 day but users typically don't reach the paywall until day 3, the trial will fall outside the window.
Funnel shows high numbers for step 1 but zero for step 2
The screen name in your funnel step must exactly match what the SDK reports. Check Pages/Screens to verify the exact names. Names are case-sensitive.
Drop-off percentages don't add up
The funnel tracks unique visitors at each step, not sessions or events. If a user visits the Welcome screen 3 times across 3 sessions, they count as 1 visitor in step 1. If they then complete signup on the 3rd session, they count as 1 visitor in the signup step. The conversion rate is visitors-who-reached-step-N ÷ visitors-who-reached-step-1.
Was this page helpful?