PII Viewer for Google Analytics

PII Viewer for Google Analytics is a Google Chrome extension which allows you to map the user ID stored in Google Analytics to locally stored personally identifiable information (PII) such as name and email address.

Mailchimp in GA - with PII

How it works

Sending personally identifiable information (PII) to Google Analytics is strictly prohibited, but sending a unique user ID is in a custom dimension is permitted. This extension allows you to map the user ID stored in Google Analytics to locally stored PII such as name and email address.

Rather than building your own custom integration to map this data together, you can simply reference a locally stored CSV file (or use the in-built Mailchimp integration) and let this Chrome extension do the hard work. This means that you full comply with the Google Analytics privacy policy, but get to understand your visitor data.

PII Viewer for Google Analytics now supports identifying users in Behaviour Flow and Mailchimp integration.



Compliance with Google Analytics Terms of Service

This extension uses PII which is locally stored only, therefore this extension is fully compliant with the Google Analytics Terms of Service.

Contacts at Google have confirmed that the extension is compliant with the terms of service.

If you found this Chrome extension useful, why not say thanks by buying me a pot of tea to contribute to its maintenance. I don’t do coffee.

41 comments on “PII Viewer for Google Analytics

  1. Phil Amery says:

    David, this is a very useful tool (extension) you built
    I’m more than confident that many of us in digital marketing will take advantage of all the benefits this tool can offer, a cheaper alternative compared to more robust but paid softwares/applications
    PS: I’ll mention your extension in a study I’m currently working on, will let you know when published/available

    1. Thanks Phil. It’s great to hear that this is being made use of by others too. I’ve tried to make this as simple to understand and use as possible. Feedback of any kind is always most welcome.

  2. Chandra Bhatt says:

    This is very useful write up. We recently started using GA and I was just searching for what all benefits user id feature can provide us and hit your website. Really great piece of Chrome extension to match pseudo user-id to user id and related data. Just wanted to say thanks to you!

  3. Dan Gang says:

    Thanks David it seems you develop very useful tool.
    I have a question to you. I am interested in tracking my Facebook custom audience users. Specifically, we need to associate to each of our users their clicks on ads during various campaigns – assuming clicking on ads lead to our web pages from Facebook site. Can we use your tool to get the information and store per each user what ads s/he clicked?

    Thanks in advance – Dan

    1. Provided the click from each ad has a unique ID that can be attributed to a particular user, and you can get the unique ID out of the advertising platform, then yes it’s possible.

      As an example, you should take a look at the new Mailchimp integration for PII Viewer. I’ve written a tutorial on how to do something very similar on this post – Displaying Mailchimp subscribers in Google Analytics

  4. does this extension work with Unviersal Analytics. I am reading that Google does not allow the extraction of UserID via the Universal Analytics API. Am I wrong? How do you get around this, if at all?

    1. This works with Universal Analytics and is has been confirmed to be permitted by Google – in fact it was confirmed personally to me by their Analytics Evangelist. You need to send a “universally unique identifier” which is known only to you as a custom user ID / custom dimension.

      Check the following posts:

  5. Joe Dube says:

    Thank you developing this plugin, and for the tutorial on how to get it working with analytic! I will hopefully being using this extensively.

    Everything is working great for me with smaller lists, as soon as I try to import a big list (70,000 users) it doesn’t work. It looks like the mailchimp API times out. When I try using a csv it crashes the browser.

    Any tips on how to get a bigger list working?

    1. Hmm. Big lists are likely quite a problem for this. For big lists to work, the plugin would likely need recoding to use SQLite rather than chrome.storage. Alternatively, I could try changing the extension to have unlimitedStorage permission. I’m not sure how well this would behave in your case though.

  6. Joe Dube says:

    Thank you for the quick reply.
    If you update the extension to have unlimitedStorage, I will happily be the guinea pig who tests performance.
    Maybe an option to import a SQL database can be included in future integrations?

    1. Damn, unlimitedStorage isn’t possible with the current setup as it doesn’t work with wildcard subdomains like I’m using for the Mailchimp integration.

      1. Scott Morrison says:

        Has a solution been found for this? I also have a rather large list that keeps crashing with the Mailchimp API. Any suggestions? Thanks!

        1. This will be addressed in the next release. It’s covered by the following issue:
          Convert user storage from chrome.storage to indexedDB

          This isn’t a small job though, so it’s going to take a little time.

  7. Purushoth says:

    Hi David,
    Thanks for the awesome chrome plugin its helping a lot. I am facing some issues with tool tips that is shown while hovering “custom user id”. The tool tip got stuck in the screen and its never disappearing. Please look into these issue.

    1. cube says:

      Yes, nice plugin, but I see this as well. The tooltip endures even after it loses focus. Any idea when this will be fixed?

      1. I’ve got this fixed in the next release. See the issue.

  8. Purushoth says:

    Hi David,
    Thanks for this useful chrome add-on, it’s really handy. But one quirky issue i am facing while hovering on custom user id column the tool tip which is showing user information not getting disappear and getting stacked up in the screen. Please fix this issue.

  9. Alessandro says:

    Hello, this is great!
    What’s the reason for using a custom dimension rather than the User ID feature?

    1. User ID is not exposed in the Google Analytics interface (or anywhere). Rather it is used for consolidating cross device usage. A custom dimension is an easy workaround to this problem.

  10. Jen says:

    Do you know if PII is permitted if someone sets their public facing profile to use a username like lisa_smith (obviously is PII) and the only way it makes it into GA Is if someone views that url /profiles/123-lisa_smith? Is having /profiles/123-lisa_smith appear in the Behavior section in GA permitted or no?


    1. If that URL is available for all users rather than just the logged in user, then it’s likely fine.

      If I browse to /profiles/123-lisa_smith and see here profile, I cannot be identified by a 3rd party as the user browsing the site. If however, the URL is only available to that person, then you are sending their PII to Google Analytics, so would need to prevent that URL from being sent to Google Analytics.

  11. Jen says:

    Thanks David. That makes sense.

  12. Justin Atkinson says:

    Hey David,

    Just wanted to say thanks for this great tool.

    I was able to leverage the information you provided and the newest version of Google Tag Manager to get this to work for tracking HubSpot users.

    Really appreciate the guidance.



    1. Justin, that’s great. I need to get up to speed on GTM as you’re not the first to ask me about it.

      I’m in the middle of a new update for PII Viewer that will allow 10,000s of users to be imported. Up until now, I’ve used chrome storage, but that has it’s limits. “Soon”, I’ll have swapped that out for IndexedDB, which will be a big improvement for “power users”.

      1. Justin Atkinson says:

        Hey David,
        That sounds great! I will definitely take advantage of the larger import numbers.
        Also, let me know if at some point you want to learn more about the HubSpot integration. I’d be happy to share/walk you through what was done via GTM.

        Thanks again,

  13. danhdung says:

    Thanks you, you make my job easier now.

  14. Avron says:

    David, looks like a great tool.

    However, I’m not seeing the PII Viewer for Google Analytics in my chrome browser (extension is installed, and no errors showing in console). Tried Incognito as well in case anything was blocking it, but no luck.

    Any thoughts?

    1. Are you using Google Analytics at http://www.google.com/analytics or analytics.google.com/analytics ? If its the former, you’re good. For the latter, I need to update the extension for the updated domain name.

      1. Avron says:

        Thanks David, that did it.

  15. Eric says:

    Hi David,

    Do you have an email address where I can contact you?

  16. Luke says:

    Hello David,
    Did you ever get around to updating the GA domain. Seems analytics.google.com is the only domain now and the plugin isn’t injecting the username.

    1. Hmm. Which version are you using? v0.0.11 should work ok.

  17. Luke says:

    My mistake :( Data Mapping ID column setting was not defined. Must have been rest when I imported new data.
    Thanks for the quick reply and the great plugin!

  18. Dmytro says:

    Hello, looks very interesting.

    Why extension asks for permission to access “google.com” ?

    1. This is because it’s adding information onto the Google Analytics user interface, which is located on the google.com domain.

  19. Pritam says:

    Hi David, I don’t get the toolbar that you have at the end of the Page

  20. Melissa says:

    Hi there – great plug in!

    Is there a file size limit for the import? My csv is 6.5MB large and wont show after it says its been successfully imported on the bottom (the green prompt). So I cant map my data.

    Thank you!

    1. Right now, there probably is. 6.5MB is probably too big.

      I have a story to update the extension to use IndexedDB instead which will solve the problem. I can’t give aan ETA I’m afraid though as paid work is getting in the way of this development.

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>