User-id tracking is the feature of Universal Analytics that many businesses implement. This is not a laborious process to implement User-Id tracking in case you have the unique identifier for each user available at front-end. But in real life few get any benefits from it.

Universal Analytics claims there are four main benefits of the User ID.

A more accurate user count

User-ID can associate multiple sessions (and any activity within those sessions) with a unique ID. When you send an unique ID and any related engagement data to Analytics, all activity is attributed to one user in your reports.

When someone implements User-ID tracking they hope to get a more accurate user count. But Google Analytics does not consolidate sessions from different clientIDs (i.e. sessions from different devices with the same UserID) in normal view where User-ID reports are not enabled.

It means a user on multiple devices with the same UserID will be counted as one user only in the views with enabled User-ID Reports. On the other hand, a view with enabled User-ID reports will ignore all the users that do not have UserID set.

Normally a site has a mixture of authenticated and non-authenticated visitors. Authenticated will be accurately counted in the view with enabled User-ID reports. But normally you will be more interested in non-authenticated users. However UserID tracking will not improve the accuracy for the views which track non-authenticated users.

Analyze the signed-in user experience

You can implement User-ID in conjunction with your authentication system, so the unique ID that is used to identify a user account is sent to Analytics as the User ID. Any activity that happens when an account is signed-in can all be associated with that ID.

This is what you can get in the User-ID reports but the picture is not going to be full.

Even in case session unification is enabled some hits from the sessions of such users will be lost:

  • All the sessions that happen before registration will be lost
  • All the sessions during which the user did not log in will be lost
  • Hits in logged-in sessions that happen after logout will be lost.

  • Session 1: User visits your website, but there’s no account sign in. The user ID is not assigned, and no hits are associated with an ID.
  • This session will not be tracked with the view which has UserID reports enabled.

  • Session 2: User visits your website, and signs in to an account halfway through the session. A specific ID is assigned. All hits from this session are associated with the ID.
  • Session 3: User is signed in for the entire length of the session. The user ID is assigned, and all hits from the session are associated with the ID.
  • Session 4: User is signed in when the session begins, but signed out halfway through. All hits collected while the user was signed in are associated with the ID. All hits collected after the sign out are not associated with the ID.
  • Hits after user logout will not be tracked with the view which has UserID reports enabled.

  • Session 5: User is signed out for the entire session. No User ID is assigned, and no hits are associated with the ID.
  • This session will not be tracked with the view which has UserID reports enabled.

  • Session 6: User is signed in for the entire length of the session. The User ID is assigned, and all hits from the session are associated with the ID.

Access special tools and reports in your Analytics account

When you set up User-ID, you can access User-ID reporting views and the Cross Device reports.

I have already covered some drawbacks of the User-ID reporting views (only logged-in users get track by these views and even for those users many hits do not get tracked).

That’s true. You will not get any useful data on Cross device reports before you have configured User ID tracking. In case you are interested in the information on how users migrate between devices before they make transaction you have to implement User ID tracking. However you should keep in mind that data from Cross device reports cannot be queried with Google Analytics reporting API and these reports cannot be reproduced in Data Studio.

Find relationships between your acquisitions, engagement, and conversions

The truth is that for most businesses a registration is one hit away from a conversion. On an ecommerce site a user registers an account just before making a transaction. There is not much to analyze in between. For other online businesses registration means conversion.

However in case you are a subscription business that provides some trial before a user finalizes a paid subscription to your product it might be interesting for you to analyze what is going between initial registration and payment. But you need to keep in mind that some hits of the registered users will not be displayed to you.

User-ID Reports enabled User-ID Reports disabled
Authenticated users with UserID set They will be tracked as 1 user even on multiple devices Google Analytics cookie and cid field will be used to identify users. It means a user will not be identified on multiple devices even after login
Non-authenticated users without UserID set These users will be filtered out These users will be tracked. Multiple sessions will be identified as
A hit with uid field and without cid field is sent with the measurement protocol This hit will be tracked This hit will be ignored

Using User ID for User Data Import

It is possible and recommended to use User ID for user data import (it's possible to import data such as customer segment, lifetime value, or contract renewal month). However you need to keep in mind that in the free version of Google Analytics you will not be able to import any user data retroactivly (even for the paid Universal Analytics 360 it is possible to import the user data for the last 30 days only with the help of Query Time import feature It means that user data import makes very little sense for typical eCommerce businesses because extra user parameters can be generated only after a user made a transaction but they can only be imported in case the same user visits the site after the user data has been uploaded to Google Analytics.

It means that any specific user parameters are generated during the order processing you will not be able to upload these user parameters back to Google Analytics. If you want to make some analysis using the parameters generated later you need to export Google Analytics data to spreadsheets or BigQuery and merge it with your generated parameters there.

User ID and User-scope Custom Dimensions Case Study

Recently I’ve been working on a tracking solution for a client of mine who has a lead generation site. The conversion funnel is pretty simple:

  1. A user lands on the site
  2. A user fills the forms and submits it
  3. Form submission is registered in the CRM and conversion event is sent back to Google Analytics

It happens that a user after some timeout comes to the site for the second time and fills the form again with slightly different parameters.

UserID tracking has been implemented for the client and some user-scope custom dimensions were created in order to analyze the parameters of leads later and custom metrics to track numeric parameters.


Custom Metrics

The first challenge we faced was custom metrics tracking. It’s only possible to have hit or product scope for a metric. But for this project, it was necessary to have some numeric parameters associated with users.

In case a user submitted a form twice the metric got duplicated for the user. It was too tricky to calculate actual averages. In order to get the correct average value it was necessary to divide the metrics to the total number of events of the form submission category. This is not possible to do with Google Analytics calculated metrics and is a complicated calculation for Data Studio which we used for reporting on this project.

Because of all these issues we’ve decided to switch to dimensions for all our numeric parameters.

Users on Different Devices

We have configured to sending UserId with every form submission hit. It was the step at which a user got assigned a lead id in the CRM system. And actually the only type of hit for which we could get this id.

On the backend there as a script that analyzed the form submissions from all the users and matched them in if some parameters in the form like email and phone number were same. This way we could identify same user on multiple devices at the backend and send proper UserId parameter to Google Analytics.

UserId was sent also as a custom dimension to make it easier to analyze and segment users later.

In Google Analytics 2 different views were created for analysis:

  1. All Web Site Data is the view where User-ID reports are disabled
  2. UserID is the view where User-ID reports are enabled and sessions unification is ON.

The total number of users and sessions in these 2 views is very different. Both numbers are much lower in UserID view than in All Web Site Data. This is not surprising because the UserIDview counts only users who have an associated UserID value. UserID is sent only on form submission event and not many users do this. The site has many bounce sessions and sessions without form submission as well.  

But let’s dive a bit deeper in the data. Here is what a segment that includes only one UserID value of a user who submitted a form from 2 different devices looks like:

The view with User-ID reports disabled shows 2 different users. Google Analytics does not merge users bases on User-ID in such reports.

In the view with User-ID reports enabled there is only 1 user. This is correct.

Hits in the Sessions for User-Id enabled and User-ID disabled reports

In the view where User-ID reports are disabled, there are 2 clients with 2 sessions for each of them.

Client 1 submitted the form in the first sessions and also made some other interactions during the second session.

Client 2 also submitted the form in the first session and made some interactions during the second session.

In the view with User-ID reports enabled there are also 2 sessions. The first one is session 1 from client 1 fully included. The second session is the last hit from the first session of the second client.


What about correct and accurate user tracking? UserID feature is implemented and UserID values are bring sent to Google Analytics whenever possible. Why did we end with having such trash instead of accurate user and session values?

All user and session values are calculated as described in Google Analytics documentation.

The All Web Site Data view does not take into account UserID parameter. Even if you send the UserID parameter it does not merge multiple Google Analytics clients based on it. Moreover in case you send a hit where uid field is set but cid field is missing (here it is written that only 1 of these 2 parameters is required the view which does not have User-ID reports enabled will totally ignore these hits.

On the other hand, the view with enabled User-ID reports will ignore the hits that do have uid field. Yes, you can turn the session unification on and all the hits without UserID that come before the first hit with UserID will be merged to the session.

But all the hits without uid field that are sent after the first hit with uid will still be ignored. This is what we saw in the example above:

The first session was fully attached but from the second session only 1 hit was registered in the UserID view. Next sessions that did not have any hits with uid field were fully ignored.

Sessions that do not have a hit with uid field will be always ignored by the view with UserId reports regardless of their position in the flow.


For this particular case, there is no way to get an accurate number of users in either of the views. The total number of leads is very inaccurate because a relatively large number of leads submit forms with multiple devices. On the one hand, it is possible to use the UserID view to analyze the leads but it’s not really good for analyzing the sources of leads because the initial sessions are often missing and there is a lot of direct traffic in the view.

Although there are still many opportunities to use All Web Site view for traffic sources analysis it is not accurate enough to be used for building a lead scoring system on the top of it.

Universal Analytics from Google has very-very many useful features but… there are still cases when it’s not powerful enough.

Currently I am working on a better data-analysis system for this client and Google Analytics is going to be just a part of that system.

To be continued.

Leave a comment

Filtered HTML

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.