Installing Google Analytics on a site that uses multiple sub-domains requires some custom configuration to the tracking code.
For example, if you are installing GA on a site that has the following structure:
Main site: www.mydomain.com
Store: store.mydomain.com
Blog: blog.mydomain.com
If you install the default code that Google provides, you will not get accurate metrics. This is because, by default Google sets a first party cookie that is specifically for the domain that you're on. Metrics that can be affected include:
Visitors
Visits
Referrers -you'll get your own sub-domains being recorded as referrers.
The above site uses sub-domains for different areas of the site, so every time someone moves from www.mydomain.com to store.mydomain.com a new cookie will be set and the user will be counted as a new visitor.
Google has a way around this, you just need to tell it to set the cookie on the root domain. In this case: mydomain.com
For example, the default code that Google provides is something like the following.
If you are using urchin.js, the default code is as follows:
]]>
If you are using ga.js, the default code is as follows:
var gaJsHost = ((“https:” == document.location.protocol) ? “https://ssl.” : “https://www.”);
document.write(unescape(“%3Cscript src='” + gaJsHost + “google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E”)); ]]>
To allow this code to track a single user across sub-domains in a single Google Analytics profile, you need to add an entry to specify the root domain.
For urchin.js, you'll update the code to something similar to below. See the addition of the _udn variable where the domain is being set.
]]>
For the ga.js code, your code would look like the following. See the addition of the pageTracker._setDomainName() function:
var gaJsHost = ((“https:” == document.location.protocol) ? “https://ssl.” : “https://www.”);
document.write(unescape(“%3Cscript src='” + gaJsHost + “google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E”)); ]]>
In another post, we'll talk about how to track users between different domains.