Analyzing Visitor Paths Using Google Analytics

Are you able to answer the following questions precisely:

  • What is the exact trail each and every visitor goes through on your site prior to completing a goal?
  • How many visits, pageviews or minutes are required until the average visitor converts?

A few months ago I published a post about Goal Analysis and Distance to Goal Completion (Goal Analysis (Part II) – Measuring Distances to Goal Completion), where I discussed the length of time, number of visits, pageviews, and traffic sources that an average visitor goes through before converting. I ended the post by writing that I would later publish a separate post about migrating the marketing suite goal analysis report to work with Google Analytics (via GA API) – so here goes.


Some of the important information that we require can be obtained using tools such as KISSmetrics, Performable or Mixpanel. My proposed Goal Analysis Report – on top of Google Analytics – will provide you with everything you need, and it’s completely free!


I will later publish a separate post with step-by-step instructions on how to implement the report, but the aim of this post is to explain why the report is important and what it can achieve. If you don’t want to wait, just send me an email and I’ll help you set up the report (or visit this page). I already sent emails to those who contacted me over the past few months regarding this report, so if you didn’t receive this email but wish to, please let me know.


Why do we need a new and improved Goal Analysis Report?

The report I’m suggesting can help us understand three important questions that cannot be fully addressed using the standard Google Analytic reports:


Now let’s take a look at how the report can provide this important information:


How many unique visitors completed a certain goal and what is the more precise conversion rate?


When you look at the GA Goal Completion Report you can view the number of goal completions during a specific date range. This metric, however, tells you during how many visits your visitors complete the goal, and not how many unique visitors completed the goal. The same goes for the Conversion Rate metric.


It is easy to interpret these metrics incorrectly if the difference between the two is not clear. You can look back at an earlier post (Constant Decrease in Conversion Rate Over Time) for more information. It’s a bit technical but it is important to understand how the standard goal completion metrics might give you the wrong impression about your conversion rate.


My Goal Analysis Report presents the amount of unique visitors who completed a certain goal within the specified date range, which together with the number of total unique visitors, will give you a more precise conversion rate.


The above screenshot from the report shows a total of 1,475 download completions (i.e., visits during which visitors performed the “Download” goal). The Goal Analysis Report reveals that these 1,475 visits were performed by 267 unique visitors, and the conversion rate was 2.91% (i.e., 267 unique visitors who completed the goal out of 9,159 unique visitors who visited the site).


To emphasize why this metric is so important, let’s take a look at the equivalent GA goal report:


Goal Analysis Report Google Analytics
Download completions 267 completions 1,475 completions
Conversion rate 2.91% 12.21%

The reason the conversion rate according to GA is 12.21% is because GA calculates the conversion rate by dividing the amount of visits in which this goal was completed (1,475) by the total amount of visits for this period (you can’t see it on this screenshot but there were 12,084 visits).


It’s important to note that depending on the goal you’re measuring, the GA conversion rate will either be higher (as in this example) or lower (for example, when measuring “Signups” on a site that serves both new and registered visitors) than the conversion rate presented in the report I am suggesting.

How long does it take for a user to convert? How many visits and pageviews are required? How many different traffic sources does an average visitor use to convert?


The first part of my report tells us all about distances: How long it takes from the first arrival to the goal completion, how many visits, how many pageviews and how many different traffic sources on average.


Clicking on the “Avg. Pageviews to Completion” tab will present the following chart:


This chart presents the percentage of total converted visitors (axis Y) and the amount of pageviews (axis X), showing that more than 90% of all converted visitors converted within 5 pageviews.


Now how do I exclude exceptional behavior that affects the distances?


From the screenshot above, you can tell that on average, it took visitors 11.4 days and 7.55 visits to download from the site. However, it should not take this long – as the call for action on the landing pages is to download the software. I can therefore infer that exceptional behavior should be excluded in order to obtain more precise data.


By sorting the results according to number of visits to goal completion, we can see that it took 2 visitors more than 100 days and 250 visits to convert:



Although it may be important to understand why these 2 visitors only converted after 100 days and +250 visits, it is not relevant to my present objective, and therefore I will exclude them from the list as follows:


By clicking on the filter button (i.e., the magnifying glass icon on the toolbar), I can specify the time range to completion that I want to include. What is good is that this will show the percentage of visitors both included and excluded from the report, as shown in the following screenshot:


Before changing the range:


After changing the rage:


By reducing the time to completion to up to 2.2 hours (by simply dragging the right handle), we still have 80% of the visitors included in the report, which is good enough for now. And more importantly, we now have more precise information.


The numbers make much more sense now, with 2.8 minutes to download and slightly more than one visit on average to goal completion:



Remember: This filter screen allows you to exclude visitors by time, number of visits, number of pageviews and number of channels, and you can even filter specific traffic channel (in case you want to check for different behavior across different traffic sources). Take a look at the following example:



How are the distances calculated?


The distances are calculated by all goal completions. Take a look at the following numbers:



There were 132 unique visitors who downloaded. However, the distances were calculated based on 138 goal completions – according to the number of times your visitors completed that goal. Therefore, if a visitor converted twice – after 1 day, and then again after 2 days – the distance will be an average 1.5 days.


(If you only want to obtain the distance for the first goal completion, don’t worry – it is possible, but you have to use a custom JavaScript code that will only send the goal to Google Analytics once. And I will, of course, provide details how to do so in a separate post.)


It’s important to note that in the above screenshot there are 3 different numbers for the goal completion:

  • Unique Goal Completions (visitor level) – 132 unique signups
  • Goal Completions (visit level) – 143 goal completions, as reported by Google Analytics
  • “Documented” Goal Completions (visit level) – 138 goal completions, documented by my tracking mechanism

There is a long and detailed explanation as to this discrepancy, but to make a long story short, the gap between the GA goal completions and the “Documented” goal completions starts out large, but gets smaller with time. (I will also post a detailed explanation about this in a later article).


What is the exact path the visitors go through before and after they convert?

My Goal Analysis Report provides a list of all converted visitors, as follows:



You can sort this list according to the time it took them to convert (time to completion), the number of visits, pages and traffic sources, and when they were first seen on your site.


Clicking on a user will pop up the activity report, which will show you all the pages this specific user visited before and after completing the goal:



In addition to general user information (such as their location, browser type and operating system) you can see when the user was first seen on your site and all the pages they viewed grouped into visits. For example, in the screenshot above you can see that the visitor came to the site 3 times and viewed 13 pages. The sign up goal occurred during the second visit and after signing up, the visitor also made a purchase through the site.


A green box with the name of the goal will appear next to each page that matches the goal definition (as defined in Google Analytics). If you use engagement goals, they will appear in a red box next to the page that triggered the goal.



Additional information about this report

How does it work?

In order to be able to produce the report, you have to collect additional information and send it to Google Analytics. There are two basic actions you have to perform before the pageview event is sent to GA:

  • For each new visitor, set a random ID and the current time and store them in a custom variable (on a visitor level)
  • For each pageview, set the current time and number of pages, visits and channels in a custom variable (on a page level)

These two custom variables will later be used to group and filter the data received from GA API.


The JavaScript code responsible for performing the above, plus instructions on how to implement the code on your site, are available here.

How can I see the report in action?

You can see the report with sample data here. After you add the necessary JavaScript code to your site, you will be able to see the actual data for your site usage.



There are two limitations you should take into account before implementing this report on your site:

  • As the report is implemented in JavaScript (for both accessing the API and manipulating the data), if you have more than a few thousand completions per day, this might cause performance issues when viewing the report.
  • The free version of Google Analytics only allows up to 50,000 custom values per day. Therefore, if you have more than 30-40K pageviews per day, and at least one custom variable is set for each pageview, you should set the code to only track some of your visitors (i.e., a sample).

In any case, the code you add to your pages (which sends the relevant data to Google Analytics) does not affect your site’s performance in any way .


Visitor privacy and Google Analytics terms and condition

There are two questions I am asked frequently when presenting this solution:

  • How will this solution affect my visitors’ privacy?
  • Does this solution violate any Google Analytic terms and conditions?

Before addressing these issues, I must point out that I am not a legal consultant and I just used my common sense when designing this solution. From what I understand, the Google Analytic Terms and Conditions forbid storing personal identifiable information (PII) – which is not the case here. The code does not store anything that can later identify a specific user on Google Analytics with any external repository. The same goes for visitor privacy. This solution does not store new types of information that is not already stored by Google Analytics.


If you have any comments or feedback regarding privacy or terms and conditions, I would be happy to hear from you.


Documented vs. Undocumented visitors

When you set up the code on your site, you can divide your visitors into two groups:

  • Visitors who visited the site for the first time before the code was added
  • Visitors who visited the site for the first time after the code was added

The problem with visitors who visited the site prior to the code being added is that those visits do not include all the necessary information required for this report. We call these visits undocumented visits, and the visitors – undocumented visitors, and they do not enable us to calculate the distance properly. They also usually affect the overall distances. In addition, undocumented visits will not appear in the Visitor Path Report (so you might see a visitor path that starts from visit number 3, which actually means that this visitor had 2 undocumented visits before the code was added to the site).


In order to work with undocumented visits, the report provides you with the following tools:

  • You can filter out undocumented visitors from the filter popup.
  • You can identify undocumented visitors in the converted visitors table, based on the color of the user ID: Documented visitors appear in dark blue while undocumented visitors appear in light blue.

Please feel free to contact me with any questions, comments or suggestions.