0

我有一种情况,内容管理系统对具有不同域名的多个网站使用相同的模板,而我无法为每个网站制作单独的模板。但是,每个网站都需要使用谷歌分析单独跟踪。通过放入一些条件代码来跟踪每个域是否合适?这是否足够强大而不会破坏?有没有更优雅的方法来做到这一点?

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

需要明确的是,每个网站都是一个单独的域名,必须单独跟踪,而不是在一个分析配置文件上具有相同页面的不同域。

4

1 回答 1

1

传入一个 id 映射可以让你移除丑陋的switch

var ids = {
    'www.aaa.com': 'UA-xxxxxxx-1',
    'www.bbb.com': 'UA-xxxxxxx-2'
}
_gaq.push(['_setAccount', ids[location.hostname]])
于 2012-06-11T18:52:35.253 回答