Uncover a visitor's entire navigation path in Google Analytics

If you've just launched your website I highly encourage you to set this up. You'll reap immediate benefits. This is also useful for advanced users who want to tie together hit level data differently than whats given in Google Analytics.

Which pages are the visitors visiting? And in what order?

A common frustration with Google Analytics is its inability to show the entire path of individual visitors. Some of the other analytics tools, however, have that advantage. They show exactly what time a user landed on a page, which pages they visited in what order, and where they exited at what time. And yet, the tools providing this level of detail aren’t as popular as Google Analytics. Take a look at the navigation path report from one such tool.  (If you are interested in free analytics tools that provide this information, ask me in the comments).

You might argue that thats too much information we’re never gonna use and we’ll come to that in a minute. But personally, I find this information extremely useful. I can know the exact path a user took to navigate my website which pages did he/she return to, how long they spent time on each page, and which page led to the exit or conversion or whatever. All of that, kind of like I am watching over the user’s shoulder. This is grand. It provides me with the knowledge and resource to dig deeper and start improving the pages. 

Coming back to the argument, I agree that these tools are good as long as you have few visitors and a lot of time. I’d recommend this if you have just launched your website and every visitor is a rich source of first-hand information providing you insights that you wouldn’t otherwise know. However, as your visitors start to grow in numbers you will soon reach your limit on individual analysis and would rather want an aggregate analysis. That’s where Google Analytics shines. Now GA offers navigation reports too but sometimes they may seem a bit vague or just hidden too deep to notice.

For example the behavior flow report. Information in this report is golden because you can see how your traffic flows through various pages on the website. It helps you spot engagement and/or potential content issues.

But time and again, we do want individual user journeys mapped out despite having a huge amount of traffic. Mapping individual users have a ton of advantages particularly when you want to tie the hits together differently in your own backend and not rely on the aggregation offered by GA.

Enter Client ID

In Google Analytics 101, you may have already studied what a client ID is. But if not, a client ID is a unique numeric ID that is placed by Google Analytics in a user’s browser via a cookie to recognize the user for repeat visits and all the interactions they have with your website. Basically, a user is identified through Client ID. 

Now, if you knew what client ID is, chances are that you have already set up a custom dimension to pull client ID into your reports. If you haven’t yet, you aren’t fully utilizing the resources at your disposal. If you want to get an individual user nav path from GA, you will have to segregate the aggregation. And Client ID unlocks that for you. When you pull Client ID in your GA reports, every hit that’s sent to the account will also send the Client ID along. Once you have all the hits from all the users, you are able to easily associate every hit ot a Client ID, or in other words to an individual. 

Note that you may have to change your terms of use, cookie policy and privacy policy when you do this. Check with your legal team on that or else the GDPR watchdog might come knocking on your door.

User Navigation Path – The one dimension we’ve ignored

Once you start capturing Client ID, we are going to utilize the “Previous Page Path” dimension which otherwise also gets aggregated.

So if I go to Site Content > All Pages report and add Prev Page path as a secondary dimension, I then get a beautiful report that tells me the page users have visited before any page. Some of the data (pages) will pertain to the entry so no previous page paths will be recorded.

With Client ID, you can build a custom report with the following dimensions:

And there you have it. One of the pages for each client ID will be an (entrance) page. And now all you have to do is tie the entire journey with the prev page path. It is more or less like connecting the dots in a zig-zag fashion. This might still be a bit tedious to join all the pages with their previous page paths because they might be sorted alphabetically. You will be able to stack rows with similar Client IDs together by sorting the table with Client ID but you would still have to individually tie the pages to figure out the path taken by the user.

Unless you are able to write a script and run it in your custom dashboard or write a Google sheets script or write a macro in Excel, this might just shatter your soul. 

Save your soul with another custom dimension

To make it easier, we will add another custom dimension called Hit Timestamp. By setting this up, you will also pull the time when a hit is sent to GA. You might ask – dont we have that information in GA? The answer is yes and no 🙂 (I normally hate that answer but really sometimes that is the answer). 

GA records the time of every hit but only accurate to the level of hour of the day. So you will know at what hour of the day a hit was sent but you will not know the exact time. Since within an hour a visitor may send multiple hits, we cannot sort user hits in their real order. And so our problem remains unsolved. Hit Timestamp can be made specific uptp milliseconds and therefore when you add another column to your custom report above

You can now sort the table first by Client ID and then by Hit Timestamp and there you will have the path of each user step by step with time.

Final notes of encouragement

If you’re thinking “oh that’s just too much customization” for a simple thing, I’d like you to think of all the benefits you’ll gain by adding Client ID and Hit Timestamp as custom dimensions. In fact, I would encourage you to add a session ID too. If you want to add all these dimensions and I highly highly encourage you to do so, there is a great article by Simo Ahava on how to set these up….. plus there is one more 🙂

We’ll help you set it up —

Need help setting up user navigation path in your Google Analytics account including Client ID, Hit Timestamp, User ID and/or Session ID ?

Contact Us →


    Leave a Reply