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 a user passes through between opening your app for the first time and starting a free trial. It combines automatic screen tracking, custom goal events, and RevenueCat transaction data into one funnel with drop-off metrics at each step.
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 | Yes - SDK tracks every screen or route change | No |
Goal events (account_created, profile_completed) | No | Yes - one Grometrics.track call per event |
| RevenueCat transactions | Yes - synced via webhook | No after RevenueCat is connected |
| Identity linking | No | Yes - one Grometrics.identify call after login or signup |
If your funnel only uses screen views (no goal events, no RevenueCat steps), you don't need to write any code at all. The SDK handles everything.
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 platform2Grometrics.track("account_created") // after successful signup3Grometrics.track("profile_completed") // after profile form submission4Grometrics.track("onboarding_completed") // after reaching the main app5Grometrics.track("paywall_viewed") // if paywall is a modal overlay, not a full screen6Grometrics.track("paywall_dismissed") // if user closes paywall without converting
For all platforms and naming rules, see custom events docs.
Link identity
Call identify once after signup or login so Grometrics can connect anonymous screen views to RevenueCat trial events.
Swift
1Grometrics.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. Compare sources to see whether low conversion is a flow problem (all sources drop at the same step) or a targeting problem (paid drops at step 1 while organic converts fine).
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's `logIn()`.
- 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?