Skip to content

Funnels Pro ​

A funnel is a sequence of goals. It answers one question: where do people drop out?

1. Landed on blog          412  ████████████████████  100%
2. Read a post             289  ██████████████         70%
   ↳ 123 left here (29.9%)
3. Reached services         31  █▌                      7.5%
   ↳ 258 left here (89.3%)

The third number is the useful one here. The blog is not failing; people read a post and then do not find their way to what you sell.

Making one ​

You need at least two goals first, because a funnel step is a goal. That way a step and a goal cannot disagree about what a conversion is.

Settings → Plugins → Craft Analytics → Goals & funnels → New funnel, then add the goals in the order they should happen.

Order is enforced ​

A session counts at step 3 only if it converted step 1, then step 2, then step 3. Somebody who arrived on /services first and then read a blog post has not walked this funnel, and counting them would make a broken flow look healthy.

Here is an example with four visitors:

VisitorWhat they didSteps reached
Ablog → post → services3
Bblog → post2
Cservices → blog → post2 - the services visit came first, so it isn't step 3
Dblog1

Result: 4 / 3 / 1. Note that C did convert the "reached services" goal - the Goals report counts them. They just didn't walk the funnel in order, so the funnel doesn't credit them at step 3. Both numbers are right; they're answering different questions.

Unrelated goals in between don't break anything. blog → newsletter signup → post → live chat → services is still a complete walk.

Duration and scroll steps are conditions, not positions ​

A session duration or scroll depth step behaves differently, and deliberately: those are properties of the whole visit rather than things that happened at a particular moment. "Stayed 60 seconds" isn't true at a point you could slot into a sequence - it's true of the visit or it isn't.

So a step like that gates the funnel without taking a place in the order:

1. Read a guide
2. Stayed 60 seconds      ← a condition on the session, not a position
3. Requested a quote      ← must still come after step 1

Somebody who read a guide, requested a quote and was there for two minutes completes all three. Somebody who did the same in forty seconds stops at step 1, because step 2 gates them.

Within a session, and only within a session ​

There is no cross-session funnel.

Visitors are identified by a hash built from a salt that is replaced every 24 hours. Once it has rotated there is no way to know that today's visitor is yesterday's, which is what removes the need for a cookie banner.

A purchase decided over three visits is therefore three sessions, and each is reported separately rather than stitched together.

Multi-visit funnels would require identifying returning visitors, which requires a cookie and therefore consent. Craft Analytics supports that - see Privacy & compliance - and it is off by default, since turning it on changes your legal position.

Reading the numbers ​

  • Sessions at each step is "reached at least this far", so it only ever goes down.
  • Drop-off is the difference between neighbouring steps, worked out when you look rather than stored.
  • Of first step is the share of everyone who started.
  • Completion rate is the last step ÷ the first.

A step showing 0 usually means its goal is not matching. Check it on the Goals screen before concluding that your checkout is broken.

Funnels live in the database ​

Like goals, and for the same reasons - see Goals for why they moved out of project config in 2.0.0, and what that means if you are upgrading. You can build one in any environment, production included.

A step names a goal, so the goal has to exist first. Naming one that doesn't is refused at the form rather than saved and skipped, because a funnel quietly missing a step reports drop-off that never happened.

Digital help you can trust.