September 22, 2026 · Updated October 15, 2026
Funnel analysis without cookies: what works and what doesn't
A conversion funnel answers a simple question: of the people who started, how many finished, and where did the rest leave? The usual way to answer it is to follow each person with a cookie. Take the cookie away and a fair question follows: can you still do funnel analysis without cookies?
You can, with honest limits. Here is how Mitr’s funnels work, what they can follow, and where they deliberately stop.
What a funnel needs
Strip it down and a funnel needs one thing: to know that the same visitor did step 2 after step 1. A cookie is one way to recognise a visitor. Mitr uses a hashed identifier instead, built on the server from information the request already carries, with nothing stored on the visitor’s device. Funnel steps are matched on that identifier, and results are computed live over whatever date range you pick.
What works and what doesn’t
How far a funnel can follow someone depends on whether they are anonymous or identified:
| Visitor and journey | Followed? |
|---|---|
| Anonymous, one site, within a single day | Yes |
| Anonymous, returns on a later day | No. They look like a new visitor |
| Anonymous, across two different apps | No, by design |
Signed in (your app calls identify()), one app, over several days | Yes |
| Signed in, across a website and a mobile app | Yes, if cross-app identity is enabled for the workspace |
The anonymous limits are not a bug. For an anonymous visitor the identifier is mixed with a secret that changes every day, and with the specific app. That is exactly what keeps Mitr from reconstructing anyone’s history without consent, and it’s why you can run it without a cookie banner. The cost is real: a two-day buying journey from an anonymous visitor will show as two different people.
How to follow people across days anyway
If your product has accounts, call identify() when someone signs in. The SDK hashes the user ID on the device before it is sent, so Mitr only ever sees the hash, never the raw ID or an email address. From then on that visitor is followed consistently, which is what makes signup-to-activation funnels and cross-app journeys possible.
Defining the steps
Each step matches exactly one of two things:
- A page path, such as
/pricing. - A custom event name, such as
purchase_completed.
Matching is exact, with no wildcards or regex, which keeps funnels predictable and fast. A step can be pinned to one connected app or left open to match in any of them.
You don’t have to start from a blank page. There are ready-made templates for SaaS signup to activation, e-commerce checkout, lead generation, mobile onboarding, and free tool to paid customer. We wrote about them in funnel and webhook templates, and the details are in the funnels docs.
Where cookieless funnels fall short
Worth knowing before you rely on one:
- Long, anonymous journeys are undercounted. If most of your buyers research for several days before they sign up, expect drop-off at the step where they reappear as someone new.
- Cross-app anonymous journeys can’t be joined, as above.
- A visitor who switches network mid-flow can split in two. The anonymous identifier is built from the connection and the browser, so moving from Wi-Fi to mobile data halfway through a flow can look like two visitors.
- It isn’t ad attribution. If you need to tie conversions back to specific ad clicks for bidding, a cookieless funnel is not a replacement.
For the question most teams actually have, “where in this flow are people leaving?”, it answers well. Same-day flows such as checkout, a signup form, or a landing page to a booking are followed well, and signed-in journeys are followed all the way.
Start free and build your first funnel from a template.
Frequently asked questions
Can you do funnel analysis without cookies?
Yes. A funnel only needs to know that the same visitor did step 1 and then step 2. Without cookies that is done with a hashed visitor identifier. For anonymous visitors it works within a single day. For signed-in users your app identifies, it works across days and, if you enable it, across apps.
Why does a cookieless funnel lose people who come back the next day?
For anonymous visitors Mitr deliberately changes the identifier every day, so the same phone looks like a new visitor tomorrow. That is the privacy guarantee. If the visitor signs in and your app calls identify(), they are followed consistently.
Can a funnel span a website and a mobile app?
Yes, for identified visitors. The workspace has to have cross-app identity enabled. A purely anonymous visitor cannot be matched across two apps, by design.
How are funnel steps defined?
Each step matches either an exact page path, such as /pricing, or an exact event name, such as purchase_completed. There is no wildcard or regex matching, and a step can be limited to one connected app.