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 and Enjoy:
  • Print
  • Digg
  • del.icio.us
  • email
  • Facebook
  • Google Bookmarks
  • Reddit
  • Twitter

Related posts:

  1. If you've never tried Google Analytics….
  2. How To Identify Query Parameters With Google Analytics
  3. Linking AdWords & Analytics: a Troubleshooting Guide
  4. Reading reports in Google Analytics: Recency
  5. Site Overlay Issues in Google Analytics

38 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

  • Kathryn Whitenton Says:

    Wonderful article — thank you so much for writing this, best explanation of funnels I’ve been able to locate.

    I noticed in many of the examples above, the character ? is used without a preceding escape slash — however I noticed the google help advises including an escape slash before each ? as it is a special character in regular expressions:

    http://www.google.com/support/analytics/bin/answer.py?hl=en&answer=55582

    Just wanted to make sure I’m understanding this correctly. Are the escape slashes omitted in the examples because they are assumed to be exact or head matches rather than regex matches?

  • Jonathan Says:

    Kathryn — Those question marks you see aren’t intended as literal question marks in a URL, they’re what’s called a “lookahead” in regular expressions. Unfortunately, since this post was written, lookaheads in Google Analytics regular expressions have been temporarily (I hope?) disabled.

    If you have an actual ? in your URL, like this:

    http://www.example.com/index.html?param=yes&blah=true

    Then yes, to match that using a regular expression, you absolutely need to backslash-escape it: \?

  • Chris Says:

    Johnathan – I suffer from the 100% exit the first step problem and it seems to be because all the pages begin with “/shop/”. I am interested in learning more about the negative lookaheads to see if they can solve my problem; however, later in the funnel, many of the pages begin “/shop/checkout/”. In theory, will the funnel work if insert the negative lookahead for the next steps for each step of the funnel?

    Also, for the exits, not everyone shows up in the table (17 are missing) – do you know the reason for this and how I can find where the missing 17 went?

    I appreciate it.

  • Rob Says:

    My goals are tracking, but I cannot get the funnel visual report to work. I’ve tried several things but nothing produces results. Has anyone else had this problem?

  • Rob Says:

    One more question: I have a search and replace filter on my site that cleans up dynamic URL’s so that they can be easily read in reports. The filter removes the dynamic portion after the question mark in the URL and replaces it with nothing. This is very useful – the search portion of the filter looks like this: ^([^\?]+)\?.*

    Can anyone explain to me what ^([^\?]+)\?.* actually means? I’ve done alot of reading about RegEx, but I can’t understand the first part, in particular ^([^\?]+).

  • Robbin Says:

    Rob, there may be easier or different ways to do this, but it means, I believe, start at the beginning of the request URI, match everything that is not a question mark until you get to a real question mark, after which, match everything.

    The specific part you asked about meant, match everything that is a not a question mark.

    WRT your funnel question, you probably have to add a little more detail, and Jonathan will be a good one to answer when he is back on Monday. He is the Funnel Pro.

  • Hans Says:

    Quick question:
    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.”

    Can I conclude from this that if a visitor repeats the funnel in a next visit (not the same day) it will be counted as another conversion? I’m trying to clear up a debate at our office whether the funnel report is displaying Unique visitor metrics (which would imply that for any reporting period a maximum of one conversion would be counted for every visitor)

    Thanks!

  • Jonathan Says:

    Hans — Yes, goals and funnels are reports on visits, not visitors. If a visitor repeats a conversion on a subsequent visit, it gets counted again. (The text “X visitors finished” on the funnel report is REALLY misleading.)

  • Fraser Says:

    Hi Jonathan,

    This post has been an incredible resource for identifying just what’s happening with the goals and funnels that I set up in Google Analytics. Thank you for taking the time to share the insight.

    Question for you about a regular expression I’m trying to use for my goals.

    I am using Facebook Connect, Twitter oAuth, etc. as sign in options. Each one returns a slightly different url that looks like:

    mydomain.com/signup/differentTOKEN

    As a step in the analytics funnel I am using this regular expression to try to capture anyone who advances to that step:

    /signup/.+

    However, it looks like this is not functioning correctly within the funnels (I have 3 different ones set up for different paths).

    Any idea what I could be doing wrong? When I enter that regular expression into the Top Content section it filters the pages and the ‘correct’ ones are shown.

    Any help is greatly appreciated!

    Fraser

  • nivi Says:

    hi,

    I face a similar scenario in the funnels where all the steps after a particular step have the same numbers and no fallouts.

    However I use headmatch for URL matching.

    could anything be happening there?

  • Ivan Says:

    Hi Jonathan,

    Thank you for the post, that exactly what I was looking for. One question though, why something like this doesn’t work:

    /product/$
    /product/step1
    /product/step2

    Goal URL: /product/complete

    If you search for “/product/$” in the top content report it will only return “/product/” page and not “/product/step1″, “/product/step2″ or “/product/complete”.

  • Robbin Says:

    If you search for /product/$ in the top content report, that’s like saying, search for all pages that have /product/ in them but don’t have anything after the second slash. You force the Google analytics to exclude those other examples. That is what the dollar sign does, it says, “end here.”

  • Mark Says:

    What happens if a visitor makes more than one conversion/purchase per visit?

    Say they buy something, complete the transaction process and then decide they want to buy something else.

    Will that be counted as one conversion or two within the same visit?

  • Robbin Says:

    In the example you gave, that will be treated like one conversion.

  • Bob Says:

    Thanks, this really helped me!

  • Doug Says:

    yes, thank you for answering a few questions for me. I have searched for a coupel days and still not found a clear answer for this one, so perhaps oyu can help me (or someone)

    we have a conversion flow where some of the pages are the same for different funnels:

    FUNNEL 1
    pageA -> pageB -> pageC -> pageD(goal)

    FUNNEL 2
    pageA -> pageX -> pageC -> pageZ(goal)

    my question is, both funnels converge again on pageC – will this affect funnel counts? that is, will i see cumulative numbers for dropoff from pageC on both funnels?

  • Jonathan Says:

    Doug — Yes, even with if you check the “required first step”, in this case, the first step is the same. So you’re going to see aggregate numbers for both funnels for pageA and pageC since those are shared between both funnels. In Funnel 1, you’ll see funnel exits to pageX and pageZ in Funnel 2, and vice versa.

  • Leave a Reply