I have a multi-user system and need to show google analytics data to user for content that they own. So, I need to classify, store and use analytics data related to my user id's.
What is the best way to do this, or is this possible via Google analytics?
You can't retrieve UID the data if you have not stored it, because the user id is hashed on the Google Analytics servers.
The easiest solution is store the user id in a custom var and extract them latter to be classified
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-xxxxx-x', 'auto');
ga('set', 'dimension1', ga.getAll()[0].get('clientId'));
ga('send', 'pageview');
</script>
Take care, this solution can be considered as a privacy policie violation, becuase it's on a gray area, use under your own risk
Related
I wonder why GA is tracking this link:
/de/shop/pizza.html?tx_pizza_basket[action]=addToCart&tx_pizza_basket[controller]=Basket&cHash=fae9b7812f842f543hgf0ac374e9a978ca0
This URL (domain is removed here so it's not the full path) opens the basket with some pizzas added to it :)
I wonder why GA is tracking this exact path and how to stop GA from tracking this sort of form submit URLs.
Here is my GA Code:
# JavaScript für Google Analytics
temp.google.analytics = TEXT
temp.google.analytics.value (
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-87654123-1', 'auto');
ga('send', 'pageview');
</script>
)
Regards,
M.
By default, Google Analytics records the value of document.location.href when it is executed. If you don't wish to record the URL parameters for this page, you have 2 options:
Create a set of advanced filters for the reporting view that excludes parameters tx_pizza_basket[action] and tx_pizza_basket[controller]. Additionally set your view's Exclude URL Parameters setting to include cHash
For this particular page, change ga('send', 'pageview') to ga('send','pageview', document.location.pathname)
This is a two part question:
1) Is my new Google Analytics tracking code correct?
2) With the new code, I noticed a HUGE drop in reported sessions. Is this because the tracking code is more accurate or because my tracking code is wrong.
My Domains (example):
www.domain.org
abc.domain.org
cde.domain.org
www.domain.info
abc.domain.info
cde.domain.info
My OLD Google Analytics Tracking Code:
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-99999999-9', 'domain.org');
ga('send', 'pageview');
</script>
My NEW Google Analytics Tracking Code:
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-99999999-1', 'auto', {'allowLinker': true});
ga('require', 'linker');
ga('linker:autoLink', [/^domain\.(org|info)$/]);
</script>
Note: I see my second script doesn't have "ga('send', 'pageview');" could that be the reason for the HUGE drop in reported sessions?
Thanks in advance
Answer to your second question, a huge YES! If you don't have a pageview, then you don't have a way to indicate the start of a session.
Your setup looks correct - just might want to check to see if the auto-link domains accepts regex as I have a feeling it doesn't, ie.:
ga('linker:autoLink', [domain.org, domain.info]);
You might have to list them all out.
Don't forget to add your different domains to the referral exclusion list.
New code is better.
You have drop in number of sessions because now your sessions count in a right way.
Now if user jump from domain.org to domain.info it will be 1 session.
With old code it will be 2 sessions.
i have the following GA code added to my website
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-67265472-1', 'auto');
ga('send', 'pageview');
</script>
I created a different property to filter my own ip address from being tracked in Google analytics. The only difference in the tracking code is the below
ga('create', 'UA-67265472-2', 'auto');
Can i simply append this code to the end of the existing GA code or would i need to copy the entire new tracking code into the webpage.
Thanks in advance for your replies
You do not need to include the part that loads the analytics.js file multile times.
However if you simply call create with a different account id a second time you will overwrite the existing tracker and all call will be logged to the second account id.
If you need multiple trackers per page you need to create a named tracker, and send a second pageview call (and events etc.) there:
ga('create', 'UA-67265472-2', 'auto' , 'myTrackerName');
ga('myTrackerName.send', 'pageview');
You can this after your existing code:
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
// default tracker
ga('create', 'UA-67265472-1', 'auto');
ga('send', 'pageview');
// custom name
ga('create', 'UA-67265472-2', 'auto' , 'myTrackerName');
ga('myTrackerName.send', 'pageview');
</script>
To add to the contribution of Eike Pierstorff. When using multiple trackers, it is recommended to start using Google Tag Manager. This will make tracking with multiple trackers much easier.
Especially when you want to track events, custom dimensions, virtual pageviews, ecommerce, etc.
I've set up a rollup account for several off my other domains (Like; mydomain.com, mydomain.org, mydomain.net)
When I look at the rollup account I can see the reports but they all come from "/" instead of "mydomain.org" or "mydomain.net", is it possible to see this somehow? or track it?
Code Im running on the subsites:
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-xxxxxxxx-1', 'auto');
//roll up account
ga('create', 'UA-xxxxxxxx-2', {'name':'rollupProperty'});
ga('send', 'pageview');
ga('rollupProperty.send','pageview');
</script>
I had similar case for one of my clients,
Google Analytics by default shows only page pathe (like /mypage.php instead of mydomain.com/mypage.php, mydomain.org/mypage.php, etc.).
If you want just temporary solution, go to "Behavior -> Site Content -> All Pages" in GA reports and choose "Hostname" as secondary dimension:
If you want always see hostname in your GA reports, then you should create Advanced filter for rollup GA property:
This filter may allow you to extract Hostname(mydomain.org) and Ruquest URI(/mypage.php) and rewrite Request URI by combination "mydomain.org/mypage.php" in GA reports.
Recommend you to test this approach.
I am just looking for some help setting up a single view of all the sites we have. I can find lots of help for the old analytics tracking code but not for the new universal analytics.
I've got 5 sites each with their own tracking code in place but i'd like to create a roll up account that allows me to look at an overview of all the sites in a single view. Just wondering what i need to add to the code to do this?
It's currently;
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-XXXX', 'auto');
ga('require', 'linkid', 'linkid.js');
ga('require', 'displayfeatures');
ga('send', 'pageview');
</script>
And I would just like to know what i need to add in to be able to include the numbers in a roll up account too? I think it's possible to simply edit this code with the UA of the roll up account but I'm not sure of the correct way to format this.
Any help would be appreciated,
Thanks
Roxi
It works rather like it did with asynchronous analytics, only you pass the name of the tracker in the (optional) configuration object:
ga('create', 'UA-XXXXX-X', {
'name': 'firstTracker',
});
ga('create', 'UA-XXXXX-Y', {
'name': 'secondTracker',
});
ga('firstTracker.send', 'pageview');
ga('secondTracker.send', 'pageview');
Any other options (e.g cookie domain, which is the third parameter if you don't use a configuration object) are set as key-value pairs in the configuration object. You find this in the documentation under Advanced Configuration.