Skip to content
← Blog

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 journeyFollowed?
Anonymous, one site, within a single dayYes
Anonymous, returns on a later dayNo. They look like a new visitor
Anonymous, across two different appsNo, by design
Signed in (your app calls identify()), one app, over several daysYes
Signed in, across a website and a mobile appYes, 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.

Have questions about integration or security? Drop us a line directly.