PII (Personally Identifiable Information) should never be sent to Google Analytics, not only it breaches GA Terms of Use, but you also leaking sensitive user data. So how to remove PII from URL, such as query string params (email, userId, ...) or even from location path when using Google Tag Manager (GTM) and Google Analytics 4 (GA4)?
How to remove PII from URL (GA4 w/ GTM)
3.5k Views Asked by petriq At
1
There are 1 best solutions below
Related Questions in GOOGLE-TAG-MANAGER
- Is it possible to access gmail anonymous profile for a logged in user?
- Google Tag manager code added with the help of DTM is not working
- Google Analytics duplicate transaction id multiple domains
- iOS Google Tag Manager crashing upon Launch with 'NSParseErrorException', reason: 'Last tag: 116 should be 124'
- How to implement google organic tag in google tag manager
- Crawler architecture: Avoid getting requests counted in Google Analytics
- Google Tag Manager External Links with Multiple Domains
- Redirect to mobile script on google tag manager
- Why isn't my Google Tag Manager event listener being installed?
- How can we check that Google Tag manager works
- Capturing link alt via Google Tag Manager
- Equivalent of dataLayer.push in Google Tag Manager PHP API
- Google tag manager Track page by content
- Flickering of webpage when gtm.js loads
- Google Tag Manager integration on Ionic Framework
Related Questions in GOOGLE-ANALYTICS-4
- How to update the old Google Analytics with New google analytic 4
- Cross-Domain tracking between website and app
- How to create view in Google Analytics 4
- What is the best option for sending multiple events in a single action to google analytics?
- I have no idea how to add new site to google analytics
- How to define goals at GA4 (new version)
- Google Analytics, missing a page in some parts of the reports
- Updating incorrect ecommerce data in GA4 Google Analytics
- Fetching data from Google analytics GA4 api in rails
- Google Measurement Protocol (GA4) events not showing on dashboard
- Events sent by measurement protocol are not fully received and reported by GA
- Are there limits on number of Google Analytics 4 dimension values?
- Shopify one page checkout tracking in GA4
- A/B testing straight via GA4
- Use gtag events as trigger for tags in tag manager
Related Questions in PII
- Use Powershell to find SSN's in Word and Excell Documents
- How to secure PII data in transit from REST API to browser
- PII Encryption problem on registration page
- How do you mask sensitive request params in gqlgen?
- How to fix this issue "identitymodeleventsource does not contain definition for showpii" in web api
- Python script to search PII
- Cleaning up URLs to remove personal information
- Google Cloud DLP Re-identify PII data using Deterministic encryption
- How to remove PII from URL (GA4 w/ GTM)
- With what key should personal information be encrypted?
- 3rd Party Services for storing PII
- Netsuite : personal information (PI) removal
- 2-way string encryption in PHP - which of these is more secure?
- How to fire like and range query on PII encrypted column in mysql
- Remove personal information from mixpanel javascript tracking call
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Let's assume you've got already set up GA4 property and GTM installed on your page.
So let's create new tag for GA4 configuration. As Measurement ID I use lookup table variable (it's perfect when you've got multiple environments like testing, staging, production - all those have separate Measurement ID, but uses same GTM install script), but you can just simply write your G-XXXXXXXXX Measurement ID here. Then expand Fields to Set section, add
page_locationas Field Name and click on lego button next to Value.Click on + (plus button) in upper right corner to add new variable.
As a Variable Type choose Custom JavaScript. In upper left corner write name of your new variable, I used
Redacted Page Location.And now we are getting closer to how to remove PII. In Custom JavaScript section insert JS function which should return redacted URL. Mine function uses regular expressions to replace PII from URL with some redacted text. Parameters I wanted to redact from url path are IDs of company, project, epic, and task; and userId from query params.
Let's say the URL of my page is
https://www.example.com/company/2247/projects/2114/epics/19258/tasks/19259?userId=1234567, this function redacts it tohttps://www.example.com/company/REDACTED_COMPANY_ID/projects/REDACTED_PROJECT_ID/epics/REDACTED_EPIC_ID/tasks/REDACTED_TASK_ID?userId=REDACTED_USER_ID.Select newly added custom variable, it's name should be in Value field, and save your GA4 tag.
.
Now let's test it. Switch to Preview mode and open your web site. In GA head to Debug View of your GA4 property, wait for page_view to pop up in timeline (maybe you will have to reload you page again), click on it and expand page_location variable. You should see your redacted URL.
That's all, enjoy!