是否有一种优雅的方式来使用谷歌分析在单独的帐户下跟踪多个域?

时间:2012-06-11 18:48:32

标签: javascript google-analytics multiple-domains

我的情况是内容管理系统对具有不同域名的多个网站使用相同的模板,我不能为每个网站创建单独的模板。但是,需要使用Google Analytics(分析)单独跟踪每个网站。这是否适合通过输入一些条件代码来跟踪这样的每个域?这会足够强大而不会破坏吗?有更优雅的方式吗?

<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>

为了清楚起见,每个网站都是一个单独的域名,必须单独跟踪,而不是在一个分析配置文件中具有相同网页的不同域名。

1 个答案:

答案 0 :(得分:1)

传入ID地图可以删除丑陋的switch

var ids = {
    'www.aaa.com': 'UA-xxxxxxx-1',
    'www.bbb.com': 'UA-xxxxxxx-2'
}
_gaq.push(['_setAccount', ids[location.hostname]])