我在许多消息来源中都看到,谷歌推荐的添加GA代码(link)的方法可能会减慢页面加载速度。 StackOverflow本身不会将其放在标题上(如Google建议的那样),而是放在页面底部。
我应该选择Google,StackOverflow,还是应该使用jQuery的getScript?
答案 0 :(得分:6)
</head>
标记之前的Google Analytics recommends placing the asynchronous摘要。
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXX-X']);
_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>
在异步语法之前的几天,建议将其放在结束</body>
标记之前,以防止页面加载阻塞。这不再是一个严重的问题。
此脚本以阻塞方式执行的唯一操作是它将创建一个简单的JavaScript数组,插入一些基本值,然后执行匿名函数。浏览器将继续并继续加载,而在后台,浏览器将从Google服务器请求ga.js
,然后使用跟踪信息向Google的服务器执行__utm.gif
请求。
因为这个script is inserted in a non-blocking, asynchronous way,它不会阻止您的内容按时加载。尽早安排它将允许您跟踪更大比例的人,包括那些只在身体的一部分被装载时点击的人。此外,如果您在页面中有事件驱动的跟踪,它可以减少出错的可能性。
此外,由于Google Analytics几乎总是来自两个网址之一(Google的HTTP和HTTPS版本),因此该文件可能基本上缓存在您的用户所拥有的任何浏览器上,这意味着该脚本本身不必转移。
简单地说,如果您将该代码段放在</head>
代码的末尾,则可以保证获得最佳结果。
答案 1 :(得分:2)
最好的方法是使用异步分析。 为了跟踪每次点击,下载等...
你可以在这里找到所有的信息: http://code.google.com/apis/analytics/docs/tracking/asyncTracking.html
编辑: 始终遵循谷歌代码建议,这是最好的做法。
答案 2 :(得分:1)
Stack Overflow使用较旧的“传统”版Google跟踪代码,该代码同步运行。 Google recommends此版本紧接</body>
之前放置。
您链接到的分页是针对更新后的跟踪代码,该代码以异步方式运行,应放在<head>
因此,您应该在自己网站的<head>
中使用Google的最新(异步)代码段。
答案 3 :(得分:1)
我最近发布了一个小型jQuery插件来处理这个问题。它实现了谷歌关于异步跟踪的建议,但带有一点jQuery魔力。你可以找到它:
用于jQuery的微小的,无模糊的异步Google Analytics插件 https://github.com/mekwall/jquery-ga
答案 4 :(得分:1)
<body>
。
即:
<script>
var _gaq = [['_setAccount', 'UA-xxxxxxx-1'], ['_trackPageview']];
(function(d, t) {
var g = d.createElement(t),
s = d.getElementsByTagName(t)[0];
g.async = true;
g.src = ('https:' == location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
s.parentNode.insertBefore(g, s);
})(document, 'script');
</script>
</body>
答案 5 :(得分:1)
$。getScript,默认情况下会将当前时间戳附加到网址以避免缓存。因此,如果您使用它,应该关闭它。 (打开“缓存”。)
http://blog.yjl.im/2010/09/jquerify-google-analytics-tracking-code.html
这样的事可能有用。它的代码少于谷歌的javascript。
$.ajax(('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js', {dataType: 'script', cache: true})
另请注意,很快就会将其替换为“isogram”通用分析代码。
答案 6 :(得分:0)
如下所述:
https://developers.google.com/analytics/devguides/collection/gajs/#SplitSnippet
如果您的网页加载速度较慢(我当然是这样),您可以将代码拆分为两部分,将第一部分放在&lt; HEAD&gt;
中<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXX-X']);
_gaq.push(['_trackPageview']);
</script>
和脚下的第二个,正好在&lt; / body&gt;
之上<script type="text/javascript">
(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>
执行此操作后,我的页面将一如既往地加载。