4

I have a situation where a content management system uses the same template for multiple websites with different domain names and I can't make a separate template for each. However, each website needs to be tracked with Google Analytics. Would this be appropriate to track each domain like this by putting in some conditional code? And would this be robust enough not to break? Is there a more elegant way to do this?

<script type="text/javascript">
  var _gaq = _gaq || [];
  switch (location.hostname){
    case 'www.aaa.com':
        _gaq.push(['_setAccount', 'UA-xxxxxxx-1']);
        break;
    case 'www.bbb.com':
        _gaq.push(['_setAccount', 'UA-xxxxxxx-2']);
        break;
    case 'www.ccc.com':
        _gaq.push(['_setAccount', 'UA-xxxxxxx-3']);
        break;
  }

  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ga);
  })();

</script>

Just to be clear, each website is a separate domain name and must be tracked separately, NOT different domains with same pages on one analytics profile.

3 Answers 3

1

You can use one tracking code and setup segments within analytics to seperate the sites based on domains.

4
  • You can do this, but it's a major headache, any url based report filtering is a mine field, and you're never sure if you're seeing the right data. Better to have multiple accounts. Jun 13, 2012 at 19:07
  • @toomanyairmiles The company I work for employed your method at first, but traffic comparison had to done manually. With the method I've described we didn't see significant change in the result values, but comparison was available, and setting up 3 segments is a simple task in GA. Try managing 18 or more domains.
    – Meki
    Jun 18, 2012 at 14:16
  • 1
    If you're trying to run that many domains then you should be using a pay to play solution. GA was never designed for this kind of stuff. Just because it can doesn't mean you should. Jun 18, 2012 at 14:33
  • @toomanyairmiles We could go on and on about this, but my hands are tied. My company, my clients all require GA and don't want to hear about other solutions, free or paid. Only my employer reuqires the type of tracking mentioned above, but GA handles it greatly with segments, or with profile/directory filter structure (where it can be used...).
    – Meki
    Jun 19, 2012 at 7:23
1

Do the switch statement for your GA code server side - so instead of using location.hostname, use $_SERVER['SERVER_NAME'] (if it's PHP).

That way only one profile will be on your multiple sites, however with different profile ids. Putting this code in JS could be confusing and may break.

0

Your solution of using the location.hostname in JavaScript is good enough. Google analytics relies on JavaScript to work. Your solution won't be any more fragile than the rest of the Google Analytics tracking.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.