The User-Centric Approach – Google Universal Analytics vs. Mixpanel

About 6 months ago, Google released Universal Analytics, which – in a nutshell – offers 4 new key features:

  • Measurement Protocol – an API that can be used for multi-platform tracking
  • Improved Feature Configuration Management – through the GA admin screens, rather than the JavaScript agent
  • Custom Dimensions and Metrics – very similar to the GA Custom Variables feature, but with some admin control and improved support for the built-in GA features
  • Dimension Widening – which allows you to load dimensions via data upload, rather than having to do so one at a time via JavaScript (and exposing data you would prefer not to be exposed)

Since its release, I have often been asked about Universal Analytics. Now, after having had the chance to try it out for a while, my answer is as follows: From a market point of view, this release offers nothing new for the end customer. Google is now aligned with the rest of the industry, with their new features being old news for other existing tools.


What is unique about these new Google features, however, is that they are free, and definitely suffice for the needs of about 80% of website owners worldwide. Take for example the GA Real Time Reports that were released more than a year ago, which may be inferior to Mixpanel or ChartBeat, but are definitely good enough for most companies, and are free!


And what about Google Universal being more User-Centric?

At first, after reading the great reviews, I was sure that Google now recognizes the importance of placing the focus on the customer, rather than on the visit. I even believed, from what I had read, that this was the most significant change in this release. However, after working with Google Universal Analytics for the past 6 months, I can honestly say that GA has not changed its approach. (In Google’s defense, I don’t think they ever claimed to having made such a focus change and I don’t remember having seen an official document talking about such a change in approach.)


The funny thing is that looking back, despite there being such a buzz about this focus change (including how easy it is to link users across devices and use your own ID), no one ever explained the actual procedures. Even trying to figure out how their user identification actually works is almost impossible, without digging into the Measurement and Analytics Modules’ documentation.


In order to examine whether or not Google had in fact become more user-centric, I had to find the answer to the following 2 questions:

  1. Does Google Universal Analytics offer an equivalent to Mixpanel’s identify and alias methods?
  2. Which aspects of the updated Google Universal Reports make it user-centric?

60 Seconds on a User-Centric Approach

A user-centric / customer-centric tool (such as Mixpanel) needs to provide the following 2 aspects:

  1. A way to identify and link a user across devices and platforms
  2. The option for tying all activities together and providing data per visitor


Mixpanel provides two methods for identifying and linking activities across devices:

  • The “alias” Method, which allows you to add your own unique identifier to the current user
  • The “identify” Method, which can be used when replacing the current user on a device with an existing user in Mixpanel.

Here is a link to a great explanation about the differences between these 2 methods, but if you are looking for a way to remember it, try to memorize this:

  • “alias” should be used on the thank you page of your registration page
  • “identify” should be used on the thank you page of your login page


As for tying activities together and providing data per visitor, Mixpanel definitely does so, by providing reports that are focused on visitors (customer-centric) rather than on visits (visit-centric):

  • The Trends Report – The number of visitors/unique visitors who performed a specific event.
  • The Funnel Report – The number of unique visitors who performed a specific step in the funnel.
  • The Cohort Reports – The number of visitors who carried out specific events.
  • The People Report – What each and every user did within the tracked environment.

Maybe I shouldn’t say that Google has not changed its approach at all…

If the distance from visit-centric to user-centric is 1,000 miles, then Google has just made its first step. But truthfully, Google Universal is not even close to being a sufficient solution.


The only user-centric feature that Google added in Google Universal is a way to link events to a specific user both in the measurement protocol and the JavaScript agent (Analytics.js). You can see an example of how to do so in my previous post


This feature contains two changes: 1) It is easier to update the client ID (instead of updating the cookie) and 2) events sent via the measurement protocol will be part of the same session if they are all sent during the time the session exists (30 minutes as default but you can change that if you want).


Google Universal Analytics and Mixpanel Sample flow

So now let’s get back to comparing Google Universal to Mixpanel, with an emphasis on a user-centric approach. In this example, the site contains pages that are accessible for both guests and registered users, and is accessible by PC, tablet and mobile phone users.


Let’s take the following scenario:

  1. User1 comes to the site for the first time, from her PC, and visits pages A and B. At this stage she is a guest.
  2. She then registers on the site and visits page C
  3. A few days later, user1 visits the site again, this time from her mobile phone
  4. She then visits page A, logs in and visits page C

At this stage, we know that there was only one person (user1) who viewed 5 pages in 2 visits/sessions. However, Google Universal Analytics and Mixpanel will each give us different information.



Due to the “alias” method that was called upon during the User1 registration (as explained above), Mixpanel will credit all 3 page views during the first visit to the same user: User1. And this is correct.


During the User1 second visit to the site, the first page view (page A) will be counted as a separate user in Mixpanel – which make sense, as at that point Mixpanel has no way of knowing who this user is, since she came through a different browser.


The “identify” method that was called upon during the User1 login will tell Mixpanel that this user is linked to User1 and will credit the next page view (page C) to User1. The problem is, however, that Mixpanel does not go back and credit the view of page A in the beginning of this 2nd visit (prior to logging in) to User1. I would expect the “identify” method to work like the “alias” method, which ties both past and future events to the user.


Therefore, the end result is Mixpanel will report 2 unique users: one (User1) with 4 page views (pages A, B, C and C), and one user with 1 page view (page A).


Mixpanel will report 2 unique users, one (User1) with 4 pageviews and one user with 1 pageview


There is some sense in the way Mixpanel works but I think it is not trivial and should be configurable by the customer. When I asked 5 people who are familiar with Mixpanel, 4 out of 5 of them thought the expected behavior should be 1 unique user with 5 page views.


One more thing I found with Mixpanel, which is kind of strange, is that calling “alias” after registration on a specific browser onto which a different user was previously logged into will cause Mixpanel to “hijack” the first user and tie all their events to the new registered user. I can understand the way in which Mixpanel implemented the “alias” method, but if my site is accessible from a public/shared PC or tablet, this could cause serious data collection issues. (I wonder if there is a solution for this, such as automatically clearing cookies upon logout or at the end of each session, perhaps?)


The main difference between Google Universal Analytics and Mixpanel, and probably the best example of how far Google is from services such as Mixpanel, is the fact that with Mixpanel you can actually see a list of all pages and activities that a specific user performed on your site – without any customization whatsoever. Google, on the other hand, requires massive customization and a lot of coding.


The People Report, offered by Mixpanel, shows the activities and attributes of each and every visitor on the site:


Mixpanel's people report shows the activities and attributes of each and every visitor on the site


Google Universal Analytics

Let’s go back now to the sample flow:

  1. User1 comes to the site for the first time, from her PC, and visits pages A and B.
  2. She then registers on the site and visits page C
  3. A few days later, user1 visits the site again, this time from her mobile phone
  4. She then visits page A, logs in and visits page C

Google will now report 3 unique users:

  1. User with 2 page views – page A and page B during the first visit.
  2. User with 1 page view – page A during the second visit.
  3. User with two page views – page C twice – once on the first visit after registration and once on the second visit after login.
3 unique visitors and the last page they saw according to Google Universal Analytics

Google Universal detects 3 unique users because unlike Mixpanel, it does not have an alias method. Mixpanel attaches the ID to the internal user ID, thereby ensuring that ALL events (past and future) will appear under the same user. Google Universal Analytics does not.


With Google, when you define a different client ID, you have to tell Google to override their internal user ID and start using yours. But once you do that, Google treats it as a different user. And this is the same behavior as the Mixpanel “identify” method, where only future events are sent on behalf of the user ID that you passed to the identify method.


There are rumors of a Google “User ID” field, which unfortunately is not yet supported. This field will probably provide the same functionality as the alias method and let you set your own ID without overriding Google’s unique ID.


So for now I recommend the following flow upon registration:

  1. Add a hidden field to the registration form which will hold the clientId:

    ga(function(tracker) {
    var clientId = tracker.get("clientId");

  2. Store the clientId sent with the registration form
  3. Instead of returning your own user ID upon login, reinstate the clientId from the registration stage and use that ID when creating the tracker.

This will give you exactly the same results for both Google Universal Analytics and Mixpanel.


But now that we found a way to keep the data accurate, let’s talk about the real problem with Google Universal Analytics: There is not even one report that provides data on a user level. There is no way to obtain the amount of visitors who completed a specific goal. There is no way to define a real funnel (as here too Google looks at visits rather than visitors), as you can only define funnels on a visit level, which in some cases is absolutely useless. There is no way to see what a specific user did. And the list goes on…


So if I go back to my original question, has Google really become more user-centric, my answer is no. Google Universal Analytics cannot, in my opinion, be considered an alternative to Mixpanel or other similar services.