<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-123-2']);
_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';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
除了缓存问题(如果我更改跟踪ID),还有什么我需要注意的吗?它还能运作吗?它建议把它放在</head>
之前,我所有的其他JS都在</body>
之前,是否可以把它放在那里?
答案 0 :(得分:5)
除了可能需要更改跟踪代码之外,我能想到的唯一潜在问题是,在该方案中,不会跟踪在请求该文件和何时到达之间的访问者。或者,如果由于某些奇怪的原因,外部脚本无法加载,您将无法跟踪该用户。除此之外,您可以安全地将其包含在外部脚本中。
答案 1 :(得分:2)
所有这些代码确实是找到DOM中的第一个脚本元素,并在它之前放置一个新的脚本元素。新的脚本元素几乎等同于:
<script type="text/javascript" async src="https://ssl.google-analytics.com/ga.js">
在HTTPS页面上,并且:
<script type="text/javascript" async src="http://www.google-analytics.com/ga.js">
在HTTP页面上。
它可以在页面的任何位置,头部和身体中正常工作。此外,它不会减慢你的页面渲染速度,如果它在头部,所以你放在哪里并不重要。
唯一的区别是,当您将其纳入头部时,您可以轻松地将Google Analytics帐户与该网页的Google网站站长工具相关联,如果它在正文中,那么您必须使用其他形式的验证来证明它是你的网站。
将它放在一个外部文件中,如果它不在缓存中,则意味着再多一个HTTP请求,如果它在缓存中,可能只会保存几行代码,但是你不能轻易地改变跟踪ID任何给定的页面。
除此之外,我会小心将它放在外部脚本中,因为它可能违反了服务条款。