All About Google Analytics Goals

Goal!Google Analytics Goals are a way to measure conversions on your website. A conversion occurs when a visitor does something you want them to do. This could be completing some type of high value process or viewing a specific page on your website.

Setting up goals is one of the most important steps when configuring Google Analytics. Without goals, there is no easy way to measure conversions. If you’re unfamiliar with conversion, or the related metric conversion rate, please take a moment to read about why both of these metrics matter. In general, counting the number of conversions and tracking the conversions rate is a good way to measure the success of your website.

During this post I’m only going to cover how goals work and how to set them up. I’ll discuss how to use goals in my next post.

What’s A Goal (Technical)?

At its core, a goal is just a pageview. It’s could be a specific page on your website that you want the visitor to see or the page that is displayed when a visitor has completed a process. A goal is literally defined by the URL of said page. As GA processes site data, it increments the goal counter each time a pageview for the ‘goal’ page is found. It should be noted that if the goal page is found multiple times in a single visit then goal counter is only incremented once.

I’ll explain a little bit more about how goals work, at a technical level, at the end of this post. There’s a few things I need to cover before we get into the nitty-gritty tech stuff.

Creating A Goal

There are multiple ways to define a goal. The method you choose depends on the complexity of your website. The easiest way to create a goal is to copy the URL of your goal page from a browser into the Goal URL text field. So, if the process ends with, enter in the Goal URL field. Here’s another example. If the URL of the goal page is then enter into the Goal UL field.

Goal Settings

A goal can also be defined using a regular expression. Rather than enter an exact URL in the Goal URL field you can enter a regular expression. This is particularly helpful if the website is dynamic. If the goal page contains a unique identifier then you can’t copy and paste a URL into the Goal URL field. Every goal URL will be different. You need to use a regular expression for the Goal URL. I’ll discuss this below in the Additional Settings section.

Goal Name
When defining a goal you also need to give the goal a name. There’s nothing special here. The Goal name will be used to identify the goal in the Google Analytics reports. Don’t use anything too long, it can make the reports difficult to read.

Activate Goal
The Activate Goal setting is an on-off switch. Switching the setting to ‘Off’ will stop tracking for the goal. Why would you want to turn a goal off? Google Analytics will calculate an overall website conversion rate using all of the goals you define for the site. If you create a goal that is temporary, say for a specific campaign, then it could artificially skew the overall site conversion rate if you leave the goal on after the campaign, ends.

Additional Settings

Each goal has an Additional Settings section that can help configuration in unique situations. It’s located at the bottom of the page under the Funnel settings. By the way, you do not need to create a funnel when you create a goal. Defining a funnel is optional.

Additional Settings

Case Sensitive
The Case sensitive setting can be used with websites that have mixed-case URLs. So, if your Goal URL value is case sensitive then click the Yes radio button. However, profile filters can affect this setting. I’ll explain more at the end of this post.

Match Type
The Match Type setting is a powerful setting that can aid in goal tracking. For example, if each goal page contains a unique customer identifier then it will be impossible to paste a single URL into the Goal URL field without the use of the more sophisticated match types. Google Analytics has three different match types that can be used for Goals and Funnels.

Exact Match
When you choose Exact Match the value in the Goal URL field must exactly match the URL of the goal page displayed in the location bar of the visitor’s browser. This is the setting you want to choose if you copy the URL from the browser and paste it into the Goal URL field. If your website uses a unique identifier in the goal URL (like a visitor ID number or an order ID number) do NOT use an Exact Match. Use a Head Match or a Regular Expression.

Head Match
The Head Match is like a light-weight regular expression. You should use a head match when a small part of the goal URL differs from one visitor to another. With a head match, if the value entered into the Goal URL matches any part of the URL in the visitor’s browser then the goal will be counted. The Head Match will match both path data and query string variables.

For example, if there is a unique identifier in the goal URL then you can use the head match to define the goal. Let’s say the Goal URL for a visitor is The id query string parameter is a unique identifier that will change from one visitor to the next. So, I could use a HEad Match and enter the following into the Goal URL: Because the Goal URL matches PART of the actual URL for the goal page, GA will count this goal.

Regular Expression
This setting defines a goal using a regular expression. If the regular expression entered into the Goal URL matches any part of the goal URL then the goal counter is incremented. Using a regular expression is particularly useful because it let’s ‘wrap up’ goal tracking so you track multiple goals in a single goal. You can track multiple goals using a single goal because a regular expression can match multiple URLs. For example, let’s say you want to create a goal that tracks and PDF file download. You could enter \.pdf into the Goal URL field. I actually wrote about using regular expressions to get more out of goals last year.

Goal Value

The final option in the Additional Settings section is Goal Value. Use this field to monetize non-e-commerce goals. For example, if each Contact Form submitted by a user is worth $100, enter 100 in the Goal Value field. Google Analytics will use 100 to calculate return on investment (ROI) and other revenue based calculations. If e-commerce tracking is active for a profile, and you would like to use e-commerce data for your goals, simply leave the goal value field blank. Google Analytics will pull in the e-commerce data.

One thing to note is that the Additional Settings are applied to both the values in the Goal URL and Funnel steps. I know I’m not covering funnels in this post, but this is a common mistake. It is not possible to use an Exact Match for your funnel steps and a Regular Expression for the Goal URL.

Tips, Gotchas & More

Let’s dig a bit deeper and learn how GA actually counts goals. During data processing the value you use to define a goal is compared to the Request URI value. You remember the Request URI, right? It’s part of the URL (everything after the .com, .net or .org). I know this seems strange especially because a goal can be defined by a complete URL, but this is how the data processing works.

It is important to understand that the Request URI is used during goal processing because if you create a filter that modifies the Request URI then it might break your goals.

Here’s an example. Let’s say the Request URI, in its original form, is /pages/html/index.html. You decide to modify this value using an advanced filter and it becomes /pages/index.html. If you define a goal using /pages/html/index.html then the goal will not work. The reason is that the Request URI (/pages/index.html), which was changed by the advanced filter, no longer matches the value entered as a goal (/pages/html/index.html).

How about another example? If you force the case of the Request URI to lowercase, and then define a filter using all uppercase characters AND specify that the goal is case sensitive, then the goal will not work. Get it?

I know this seems strange, especially when most people use an exact match to define their goals. But that’s the way goals work, honest! Don’t be alarmed by this. Using an Exact Match is a perfectly fine way to define a goal.

Here’s a tip. You can also define goals based on data created by urchinTracker(). Remember, if you pass a value to urchinTracker() then that data becomes a pageview in Google Analytics. These pageviews can then be defined as goals. You can read more about urchinTracker() in this series of posts. I’m using this technique to track RSS subscriptions on my blog.

And finally… A great way to debug goals is to use the Top Content report. Remember, a goal is just a pageview. If GA is reporting 0 goals, then check the top content report. Does the goal page appear in the Top Content report? If it’s missing, then there is probably an issue with your page tags. But, if the goal page is present in the Top Content report then there is probably an issue with your goal setup.

Wow… that’s a long post. Does it all make sense? Leave a comment and let me know!

Be Sociable, Share!

    Like this post? Sign up to get posts delivered to your inbox.


    1. says


      You need to create a virtual pageview. This is done by manually manipulating the JS at the server level. You need to add some server level code that adds a value to urchinTracker(), or trackPageview(). This value, which is placed in the parens, will become a “virtual” pageview in GA. The result is the URL will remain the same, but you will get a different pageview in GA. You can then use this pageview as a goal URL.

      This post on tracking clicks in GA may help.


    2. says

      Hi, Justin

      we have a problem with goals management. We use regular expressions as match type: the page marks appers in contents table indeed, even when the reg exp is provided in “looking for a page that contains”, but not every view pages has relation as goal, how is it possible?

      Thanks in advance.

    3. says


      GA only counts one goal per visit. This means that the number of conversions will not match the number of pageviews. Rather it will match the number of unique pageviews.

      Why does Google do it this way? I’m not sure, but I think it’s due to their long term focus on commerce, and people usually only submit one transaction per visit.

      Thanks for the question,


    4. says

      Hi Justin,

      I have already successfully set up a goal for our company website but I have a second goal I would like to add entirely separate from the first. Is that a possibility?


    5. says

      Hi, great article and very informative. I’m new to GA and tasked with getting some goals set up, so I’m doing lots of research.

      One thing I’m wondering, and I don’t really see this touched on a lot in my reading (at least haven’t seen it so far) is how AdWords ties in with Analytics Goals…or if it even does. Just trying to put a picture together. Any thoughts?

    6. says

      Hi Amy,

      To connect a conversion to AdWords requires link tagging. Conversion tracking and campaign racking are actually two very difference configuration steps and both are critical. Once you set up goals and tag all of your campaign links then GA wil link conversions to your marketing (ie AdWords) campaigns.

      You can read more about campaign tracking in this series of posts.

      Hope that helps,


    7. says


      You can set up 4 goals per profile in Google Analytics. Check your profile settings, Goals section. You should see 4 line items to add goals.

      Hope that helps,


    8. says

      Thanks for the reply re: goals and AdWords. However, I would love some clarification…does this apply even if your goals are NOT advertising campaigns? I’d think the answer would be no.

      Also…re: link tracking. We already track our campaigns in a 3rd party tool that basically tracks things in exactly the same way…is it really necessary to also do Google link tagging? It seems redundant to what we’re already doing.

    9. says


      Goals are completely independant of advertising campaign. Google links a conversion to a visitor’s source based on the value in the tracking cookies. If the cookie says campaign, then the conversion gets attributed to the campaign. If the cookie says referral then the conversion goes to the referral.

      If you’ve already tagged your links with another tool’s campaign parameters you can tweak GA to use those parameters. Heck out some of this info from the GA Code site.



    10. says

      Unfortunately, the links are not tagged…the way it works is, I pass a campaign ID value through to our product as a hidden form field. The campaign is set up within the product with the parameters of vendor, medium, etc. so the reporting on that stuff has to be done within that tool. :-/

    11. says

      Amy, sounds like you’re SOL. If there are no parameters in the URL when the visitor lands on the site then GA can’t identify where the visitor came from. Even if you have a single ID number in the URL we need more info.

      Hope that clarifies things…


    12. says

      Good Post. I have one question. Is it possible to count the same goal during the same visit more than once? I have a site that requires users to search for information and then they have the option to modify their search. The search button is my goal. I would like to count multiple searches more than once. At the moment Google Analytics counts multiple searches as one conversion. Thank you

    13. says

      Hi Justin,

      I am trying to use Goals with Protx eccomerce on our site, but so far, there have been no completed goals recorded (there have been sales so this there should be goals reported), I am using “/store/order-complete/?crypt=” head match for the following unique (example) url:


      now, as I was getting no data back I checked in Top Content reporting as you suggested, and noticed that the goal pages were coming up, but as the following:


      Notice how google analytics is picking up // (double slash) instead of a single /.

      Why would it be doing this? I have gone through all the steps on our site, and all the URLs only ever exhibit 1 slash.

      Many thanks for your time

    14. says


      Interesting, not sure why there is a double slash. Are you using some type of filter to modify the Request URI?

      My suggestion would be to use a head match on the following value:


      Thanks for the comment and thanks for reading the blog.


    15. says


      No. GA will only count one conversion per goal, per visit. What you may want to do is manually calculate conversion rate using pageviews OR configure GA to count an e-commerce transaction when the button is clicked. GA will count multiple transactions per visit.

      Thanks for the question,


    16. says

      I am trying to set a goal of captured email address. The visitor fills out a 4 step form that is powered by a data base. The URL doesn’t change as a visitor goes from step to step so I’m not sure how to track the goal of submitted email address.

      Can this be done?

      • says

        Hi Doug,

        Yes, you can track that process and create a goal when the process is complete. The key is you need to add some server level code that manipulates the GA code. Every time the server completes a step, it must manipulate the GA code before sending it back to the browser. Specifically, the new server side code must place a value in the _trackPageview() method. Place a different value in the parens for each “logical” step of the process. Here’s an example:


        Thanks for the question!


    17. hostmaster says

      Hi: I have a website with more than 4 goals that I need to track. I’m already creating funnels using _trackPageView() to assign unique goals, but I need more than 4.

      If I set up a second profile for that domain, a new tracking code is generated…but I still want to track overall pageviews for the domain. Do I need to have both tracking codes on the pages with the additional goals, or is there a different way to configure GA?

      • says


        You can create a duplicate profile from an existing domain. In this scenario Google uses the current tracking code and then “copies” the raw data into the new profile. Note that Google does not copy the settings for the profile, you’ll need to configure the profile. It just copies the raw data.

        Thanks for the question,


    18. says

      I am thoroughly confused although it seems to make sense.But I haven’t the slightest cue as to what words I should or can use. Is the goal page the article page. I seed alot of links.. Let me know if this makes sense if it doesn’t I would love to send you a pic of the page I am referring to.. Thank you, I really hope I didn’t confuse you, but I am new to this and all web jargon.

      • Justin Cutroni says

        @Kane: The goal page should be the page that best represents a goal on your site. So if you are trying to get people to view a specific article on your site then you should use the URL of that article for the goal URL. Hope that helps!


    19. says

      What should I do if I need to setup multiple goals but have a single goal URL. For example, on my e-commerce site, I have multiple products for which I need to setup goals separately, but the final page after sales (Thank you) is common for all products. So if I set that as the Goal URL it counts for every goal and not just for the particular product.

      • says

        @ Tanz: That is a challenge. But if your site is an ecommerce site, can’t you just track the products with the ecommerce tracking code? Why do you need a separate goal for each product?


    1. […] Instead of wasting your time by writing out all the capabilities and features of Google Analytics, I highly recommend viewing this set of five tutorial videos. Each video covers a different topic, including Basics, Essential Stats, Digging Deeper, Goals (goals are a method for measuring conversions. You can define anything from viewing a specific page to completing an action as a goal. You can continue reading about goals here.) and Search Analytics. […]

    2. […] If your using Google analytics then tracking 404’s are easy enough to do, Blogstorm has a great analytics tutorial which includes a section on 404 tracking. <script type=”text/javascript” src=””&gt; </script> <script type=”text/javascript”> _uacct = “xxxxx-x”; urchinTracker(”/404.html?page=” + _udl.pathname +; </script> Replacing the xxxxx-xx with your own analytics code We have discussed following outgoing clicks before but to quickly recap, <a href=”outgoinglink” onClick=”javascript:urchinTracker (‘/404/outgoing’); “> With a little work we can gain a vast amount of information and with a combination of filters and email reports we can be notified of errors that are occuring. If you are not already doing so I strongly recommend setting up goals for content on your site and this includes conversion tracking on a 404. […]

    3. […] Analytics, depending on how they are presented, are rich sources of valuable information about these points. If you don’t know what the opinions of your visitors are when they arrive at your site, analytics tell you, for instance, which pages are receiving the most visitors, from where they came, and whether they stayed on the page or made a purchase or read the article or whatever. From this you can determine quite accurately how generally effective your content has been in its function. Google Analytics have “goals”, which are pages that are visited when someone makes a purchase or does something you want them to. Google Analytics use goals to measure how many people purchased from your website or what audience a press release has had, and such things. […]

    4. […] Up until the most recent release of Google Analytics, and much to the chagrin of analysts the world over, Google Analytics events could not be set as “goals,” and goals in Google Analytics — configured by a Google Analytics admin user rather than anywhere in the page tag — are the closest that Google Analytics comes to the concept of a Sitecatalyst “event.” Did you catch that? If you’re looking to implement something akin to a “Sitecatalyst event” in Google Analytics, read up on Google Analytics goals. […]

    Leave a Reply

    Your email address will not be published. Required fields are marked *

    You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>