Setting Up Mobile App Analytics Funnels
We’ve seen projects where the registration funnel showed 0% due to incorrect identity merge. After fixing it, conversion jumped from 0% to 23%. In 80% of cases, funnels in Firebase and GA4 are built with errors: wrong conversion window, mismatched event parameters, duplicate events on client and server. Once, in an e-commerce app, the client lost 70% of users at the checkout step — the purchase event wasn’t logged on iOS. After adjustments, conversion rose from 8% to 15% in a week. A properly set funnel increases conversion by 20–30% on average, and up to 50% with smart segmentation. We help companies set up funnels in Firebase, Amplitude, and Mixpanel to identify bottlenecks and improve key metrics. Contact us for a funnel audit and get specific recommendations.
Where to Build Funnels
Three main tools depending on your stack:
- Firebase / Google Analytics 4 — Explore section → Funnel Exploration. Funnels are based on events from the stream.
- Amplitude — Funnel Analysis in the Analytics section. More flexible settings: you can set conversion window per step, group by properties. Amplitude's segmentation flexibility is 3x higher than Firebase's.
- Mixpanel — Funnels in the Reports section. It allows viewing funnels by unique users, sessions, or events — different metrics give different numbers.
How to Properly Structure Events for a Funnel?
A registration funnel should look like this:
app_open → sign_up_start → sign_up_email_entered → sign_up_password_entered → sign_up_success Each event is a separate step. A common mistake: developers log only the start and end. Then you can’t tell where users drop off — after email or after password.
// Correct — each step separately Analytics.logEvent("sign_up_start", parameters: ["method": "email"]) // After email entered Analytics.logEvent("sign_up_email_entered", parameters: [:]) // After password entered Analytics.logEvent("sign_up_password_entered", parameters: [:]) // After successful registration Analytics.logEvent(AnalyticsEventSignUp, parameters: ["method": "email"]) How to Set Up a Funnel in Firebase Explore?
- Explore → + New Exploration → Funnel Exploration
- Add steps in order
- Set Conversion Window — typical values: 1 day for registration, 7 days for onboarding, 30 days for first purchase
- Enable Open funnel if step order is not mandatory, Closed for strictly sequential
Conversion Window is the most influential parameter. The same funnel with a 1-day vs 7-day window can show 15% and 40% conversion, respectively. The choice depends on how fast users actually make decisions. For precise conversion window setup, refer to Firebase documentation (https://firebase.google.com/docs/analytics/funnels).
Why Is Conversion Window So Critical?
Typical windows for different funnels:
| Funnel Type | Conversion Window | Note |
|---|---|---|
| Registration | 1-7 days | Depends on form complexity |
| Onboarding | 7-30 days | Users may return |
| First Purchase | 30 days | Standard for e-commerce |
| Virality (invite) | 1 day | Quick actions |
Another important setting is the step property. For example, add an item_category parameter to the purchase event to build a funnel for each category separately. This helps pinpoint weaknesses in specific flows.
Funnels with Segmentation Parameters
One powerful technique is comparing funnels across segments. In Amplitude, this is done via breakdown:
// Funnel steps remain the same, but broken down by: // - install source (utm_source) // - device type (iOS vs Android) // - app version Example: conversion from registration to first purchase for paid traffic users is 8%, for organic — 22%. This signals that the UA audience quality needs review. Cutting spending on ineffective channels can save up to 30% of the ad budget — one client saved $2000 per month after fixing checkout.
Comparison of Funnel Tools
| Tool | Segmentation Flexibility | Identity Merge Support | Note |
|---|---|---|---|
| Firebase | Medium | Built-in | Free for startups |
| Amplitude | High | Flexible (alias+identify) | Paid, powerful segmentation |
| Mixpanel | Medium | Via ID merge | Paid, event-based model |
Firebase is better for startups with limited budgets, Amplitude for mature products needing complex segments. Mixpanel suits teams focused on events-based analytics.
Errors That Break Funnels
- Different user IDs across steps. If a user starts the funnel as anonymous (device_id) and later becomes authenticated (user_id), and analytics doesn’t merge identities — the funnel breaks at the registration step. In Firebase, use
Analytics.setUserId()after successful authentication. In Amplitude,identify.setUserId()+identify.alias(). - Events logged on both server and client. A
purchasewith the same transaction_id is sent from both iOS SDK and backend. In the funnel, the user passes the step twice — conversion is distorted. - Wrong timestamp. If on Android events are sent with a delay (offline queue) using server timestamp instead of client timestamp — event order in the funnel can be disrupted.
- Google’s official documentation recommends always checking identity merge before building funnels.
We also help analyze user crashes at each funnel step.
Typical Identity Merge Error Breakdown
In one project, the funnel showed 0% at the authentication step. It turned out that after login, the server generated a new identifier, and the client called setUserId without calling setAnonymousUser. Consequently, the anonymous and authenticated users were treated as different entities. Fixed — conversion returned to actual 45%.
What’s Included in Our Work
- Audit of current events for funnel step compliance
- Adding missing intermediate events
- Configuring funnels in Firebase Explore / Amplitude / Mixpanel
- Setting conversion window based on real user behavior
- Setting up segmentation by source, platform, version
- Documenting the funnel schema for the team
- 30 days of support after setup
Order a funnel audit to get specific recommendations for improving conversion. Get a consultation — we’ll tell you how to optimize your analytics.
Timeline
One funnel with event audit: 1 day. Full set of funnels (registration, onboarding, monetization): 3–4 days. Price is calculated individually. Contact us — we’ll help identify issues in your funnels and increase conversion. Over 5 years of experience and 30+ projects guarantee data correctness.







