412.381.5500
1.877.220.LUNA

Funnel Problems in Google Analytics

Goals are one of the most useful things you can set up in your Google Analytics. Funnels go along with goals in helping you understand how visitors progress to your goal.

A Primer on Funnels

A funnel is just an ordered list of pages (up to ten) leading up to your goal page. For example, for a shopping cart, a funnel might be something like this:

  1. Check out
  2. Fill out shipping information
  3. Fill out billing information
  4. Confirm purchase

The funnel that make sense for your goal depends on your site and how you intend your visitors to progress to your goal. Not all goals have a natural funnel, and you aren’t required to define a funnel for a goal. However, for a goal like the shopping cart example above, defining a funnel can give you a lot of useful information about where people get hung up and decide to abandon the funnel, never reaching your goal.

You set up a funnel along with your goal, and the setup is the same — just put in the URLs for the funnel pages (using Head Match, Exact Match, and Regular Expression match just like the patterns for the goal URL). See How Do I Set Up Goals? in the Google Analytics Help for more information on setting up goals. One tip: Give the funnel steps descriptive names, since they’ll show up in the reports and you want them to be self-explanatory. “Step 1” and “Step 2” don’t help anyone much. Better to go with “Check out” and “Fill out shipping information.”

There’s a lot of confusion around how setting up a funnel affects your goal reporting, and what gets recorded in the funnel by Google Analytics. First of all, the funnel you define affects only the Funnel Visualization report. Your goal conversion counts and rates are still exactly the same as they would be without the funnel in the rest of the reports in GA. With that in mind, here are some answers and some troubleshooting for common problems with funnels.

Required Step

The “Required First Step” check box on the goal setup causes a lot of confusion. First of all, remember that this affects only the Funnel Visualization report. If you check off this box, here’s what happens: The Funnel Visualization report includes only conversions that passed through the required step. That’s it. Your other reports still include any visit that views the goal page, but the Funnel Visualization report only calls it a conversion if it visits the required funnel page.

The required step can be a way to separately measure multiple goals that have the same ultimate goal page, but start at different places. Simply set up more than one goal with a different required step for each one. (Again, remember that the differences will only be apparent in the Funnel Visualization report.)

Order of Steps and “Backfill”

Your funnel steps have an order, and they show up in that order in the Funnel Visualization Report. But the truth is, GA doesn’t care what order the steps occur in. It simply looks through the visit to see whether the funnel pages and the goal pages were viewed, and if they were, that’s represented in the Funnel Visualization report, regardless of the order they were viewed in. A visitor could view step 2, then step 1, then step 3, then the goal, but they’ll still show up in the funnel for each of the steps.

In fact, GA goes even further and “backfills” missed steps in the funnel. So if someone views step 1, skips to step 3, and then views the goal page, GA will actually show that they proceeded through step 2! It will fill in any pages between a visited step and the goal.

Converting More than Once

A conversion is when someone reaches your goal page. But what if someone
visits your goal page more than once? Whether they visit your goal page one
time or one hundred, GA will only report a single conversion for that visit.

Much like the scenario in “Order of Steps” above, GA simply looks through
the visit to see if the goal page was viewed, and if it was, the visit
counts as a conversion. So if a visitor repeats the funnel within the same
visit, you’ll only see one conversion.

Funnel Problems: 100% leave after a step, or 100% convert for several steps

Occasionally we see a funnel that looks like the one below. Something’s clearly wrong. 100% of the visitors leave after the first step, but the other reports clearly show goal conversions are happening.

broken funnel 1

This happens when you have a funnel step that matches the subsequent steps in the funnel. Remember you need to be careful if you are using Head Match or Regular Expression match in your URLs. If your funnel setup looks like the one below, you’ll end up with a Funnel Visualization report that looks like the one above, where everyone leaves after the first step, because all of the steps match the first one.

setup for broken funnel 1

A related problem happens when only some of the later pages match a previous page in the funnel. Take a look here:

broken funnel 2

This problem is harder to detect, but 100% conversion across several steps looks fishy. You should expect to lose at least a few people, given enough data. So what’s happening here?

setup for broken funnel 2

It’s similar to the first problem funnel setup. Here step 1 also matches
steps 2 and 3, but this time it does not match the goal page. Like the
first example, because steps 1 and 2 are the same, no visitors make it to
step 2, as far as GA is concerned. However, the goal page is different.
For every visitor that reaches the goal page, GA backfills into the previous
steps.

You can avoid problems with a step matching subsequent steps by using regular expression that have negative lookaheads to exclude the later steps.

Jonathan

Share our stuff with others:
  • Digg
  • del.icio.us
  • StumbleUpon
  • Sphinn
  • Facebook

21 Responses to “Funnel Problems in Google Analytics”

  1. Leonardo Naressi Says:

    Excelent Jonathan!

    Google Analytics really have a lot of undocumented behaviours. Maybe someone should start to write a “Guide” with all these ones. Sure it will help many GA users around the world :D

    Thanks!
    Leo

  2. Jeff Staub Says:

    Great post, thanks for the insights.

    My confidence in the Funnel Visualization report has been shaken after reading this bit:

    “In fact, GA goes even further and “backfills” missed steps in the funnel. So if someone views step 1, skips to step 3, and then views the goal page, GA will actually show that they proceeded through step 2! It will fill in any pages between a visited step and the goal.”

    Why in the world would they go to the trouble to do this? Even if it is no trouble at all why do it?

  3. Jonathan Says:

    Hi Jeff,

    I think the rationale behind the funnel backfilling is that for many funnels (like a standard shopping cart), they’re a sequence of steps and a visitor has to go through every one to get to the end. In that case, it’s inconceivable that someone could actually skip a step, since there’s no way to get to step 3 without going through step 2. Google Analytics assumes that there’s a measurement error and “corrects” the data.

    Unfortunately, I can think of lots of examples (and I’m sure you can, too) where a funnel has the possibility of skipping steps in a completely rational way. In that case, you’re right, the Funnel Visualization report isn’t much help to you — what you really want to know is, how many people skipped from step 1 to step 3, but there’s no way to find that out currently with the data that GA reports.

  4. Jeff Hogg Says:

    Funnel visualization is something that has been stumping me lately, thanks for the detailed information.

    What might the problem be in a four step funnel that is showing all people entering into the final step for a 100% conversion rate? When I look into the reverse visualization it looks like everyone is going through the steps (/cart/view>>/cart/billing_and_shipping>>/cart/shipping_method>>order/XXX/complete) but all “entered” on the goal page. This is a simple solution, right?

  5. Jonathan Says:

    @Jeff — Is it possible that there’s a missing step in your funnel between /cart/shipping_method and order/XXX/complete? If, for example, someone gets a sign-in page or confirmation page or something else that’s a page that doesn’t appear in your funnel right before your goal step, they’ll all appear to enter the funnel at the goal page.

  6. Jonathan Says:

    Two additional followup suggestions:

    @Jeff Staub — One report available that I didn’t mention that might help you out in understand people who “skip” steps in a funnel is the Reverse Goal Path report. It lists the last few pages people visited before the goal page (up to five, I believe). They’re not limited to the pages you define in the funnel; whichever pages visitors went to before the goal. The report is kind of ugly and hard to read, but there is some additional information there you can’t get from the Funnel Visualization report.

    @Jeff Hogg — Another suggestion that my colleague John here at LunaMetrics made was to check the Match Type you’re using in your goal (Head Match, Exact Match, or Regular Expression), then take a careful look at the exact URLs of your funnel pages and the values you’ve put into the funnel steps to make sure they’re actually matching. If the funnel page expressions don’t match, but the goal page does, that would be an explanation for your 100% entry at the goal page.

  7. Jonathan Says:

    This comment seems to have evaporated into the ether somewhere, so I’m posting it (and a response below):

    Very Good Jonathan!

    I got that problem (100% conversion across steps). I read the negative lookaheads post but I am not whether I got it right…

    Would we sort problem out if we use the following reg expressions:

    Step 1: (?=/user)
    Step 2: (?=/user/registerentry)
    Step 3: (?=/user/register)

    ?

    Thanks again,
    Luciano.

    You’re on the right track, but that’s not quite what you’re looking for. What you want to do is, match the first part of the URL (”/user”) ONLY IF it’s not followed by the second part (”/register”). In that case, you want something like this:

    Step 1: /user(?!/register)
    Step 2: /user/registerentry
    Step 3: /user/register(?!entry)

    These use a *negative* lookahead (?!) which says, don’t match if this is what follows. Also note that you must have Regular Expression set as the match type to use these expressions.

  8. Daniel Waisberg Says:

    Great post Jonathan, very informative.

    You wrote “GA simply looks through the visit to see if the goal page was viewed, and if it was, the visit counts as a conversion. So if a visitor repeats the funnel within the same visit, you’ll only see one conversion.”

    One question: does GA looks the same for each step? For example, if I have a step that reloads if the user does not fill required information, will I see two views on this step or only one?

    Thank you very much.

  9. Jonathan Says:

    @Daniel –

    Although it’s not entirely clear from the way the report is labeled, the numbers in the Funnel Visualization report are numbers of visitors, not numbers of pageviews. So if there are reloads or a visitor goes to the same funnel page more than once, they’ll still only be counted once in this report.

  10. Bhagawat Says:

    Hi Jonathan,

    Great post! I was in trouble regarding GA goal setting and I got this link from one of my friend. I am greatful to her and you too.

    I am facing the same problems whatever you have mentioned above.

    I want to ask you that one little confirmation about goal setting.

    My current funnel steps are as follows :

    Step1: ^/purchase\.php
    Step2: ^/purchase\.php\?shipping
    Step3: ^/purchase\.php\?billing
    Goal : ^/purchase\.php\?confirm

    and I have modified by it by as follows :

    Step1 : ^/purchase\.php(?!(shipping|billing))
    Step2 : ^/purchase\.php\?(?=shipping)
    Step3 : ^/purchase\.php\?(?=billing)
    Goal : ^/purchase\.php\?(?=confirm)

    Any thoughts on this please!

    Thanks,
    Bhagawat.

  11. Jonathan Says:

    @Bhagawat –

    You’re on the right track, but that’s not quite right.

    Step 1: ^/purchase\.php(?!(shipping|billing|confirm)) < – you also want to exclude the goal step here (”confirm”)
    Step 2: ^/purchase\.php\?shipping
    Step 3: ^/purchase\.php\?billing
    Goal: ^/purchase\.php\?confirm <– none of steps 2, 3, or the goal need a lookahead because they don’t match the others anyway

  • Gerrin Says:

    Just to clarify, we aren’t required to define every step in our funnel definition, right? By designating a “required step” we should see data from any path that went through this step…even if we haven’t specifically defined every step in our funnel. The reason I ask is that we’ve gotten some odd data thus far :( Thanks!

  • Daniel Says:

    Great post

    We’re looking at the abandon rate of the shopping cart on an ecommerce site for a client. I set up 3 different goals as there are 3 different ways through the cart:
    1)New customer
    2)Existing customer
    3)Fast check out.

    Each one has different steps but they all start from the same page, “login.php” and end at the “checkout_success.php” page. I have set up in the funnel reports and used “required step” to differentiate between them. The problem I have is as the end page is the same for all of them my conversion rate is triple what it actually is. Is there any way around this?

    many thanks in advance

    Dan

  • Jonathan Says:

    Gerrin –

    If there are pages in your goal process that you don’t define as funnel steps, you’ll see visitors exit from the funnel to those pages and then re-enter the funnel at the next step you’ve defined that the visitor reaches. (I’m assuming that you’ve got Google Analytics tracking code on all the pages, including the ones you don’t have defined as part of the funnel — if not, your results will be different.)

  • Jonathan Says:

    Daniel –

    Since all three of your goals have the same goal page, the overall goal conversion rate will be triple your actual conversion rate. There’s no way around this aside from differentiating the goal page. You’d have to do this on the back end of your site — for example, you could use a query parameter and have “checkout_success.php?type=new”, “checkout_success.php?type=existing”, “checkout_success.php?type=fast”. Then you could differentiate the goal page among the different kinds of checkout and get a fuller picture of the different conversion rates.

  • Seeds Says:

    Great article! I was lookin for the answer to what happens if users skip a step in the funnel. Now I understand it completely.

  • Tammy Ablan Says:

    This is a great information! I think I’ve read it over 10+ times. Can you confirm whether or not I’ve got the hang of using negative lookaheads with funnels.

    There are 5 steps in the funnel. The final goal is when they reach the ‘/visit’ page. My original funnel was setup as follows, which incorrectly produced 100% conversion across all steps (only showed exits from the first step)

    /createwebsite
    /createwebsite/profile
    /createwebsite/website
    /createwebsite/template
    /createwebsite/privacy

    CHANGED TO USED NEGATIVE LOOKAHEAD:
    /createwebsite(?!(/profile|/website|/template|/privacy))
    /createwebsite/profile
    /createwebsite/website
    /createwebsite/template
    /createwebsite/privacy

    Is this correct way? I really appreciate any help you can provide.

  • Jonathan Says:

    Tammy — that looks good! One thing I’m not sure about is you mentioned the final goal step is “/visit”, but did you mean it’s like the others and “/createwebsite/visit”? If that’s the case, you’ll want to add it to your negative lookahead in step 1 as well. You can also save some keystrokes by moving the slash outside the lookahead:

    /createwebsite/(?!(profile|website|template|privacy|visit))

  • Tammy Ablan Says:

    I thought I would have received an email when you replied. I was actually re-reading something from the article and I saw your response!

    Thanks for the tip on putting the ‘/’ outside the lookahead. I ended up adding a virtual/fake pageview to our welcome message that displays only when a new website is creaetd (/createwebsite/welcome). The first step was modified to include it in the lookahead. The /visit didnt’t work because we have millions of users visiting personal CaringBridge websites - so the overal Goal Conversions were inflated.

    Things are working very well. The only remaining thing I’m tracking down is why we get what appears to be strange entrances into some of the funnel steps. I get that Google looks at the entire visitor’s session, but it still looks strange …

  • Rob Smith Says:

    Great post - helped me a lot thanks Jonathan

  • Tammy Ablan Says:

    Hi Jonathan, you responded to a previous post:

    @Daniel –

    Although it’s not entirely clear from the way the report is labeled, the numbers in the Funnel Visualization report are numbers of visitors, not numbers of pageviews. So if there are reloads or a visitor goes to the same funnel page more than once, they’ll still only be counted once in this report.

    If a page is reloaed due to an error, will the report track an exit and entrance to that step? My funnel report is showing exits to the same step and I’m trying to figure is due to page errors …

    Thanks!
    Tammy

  • Leave a Reply