谷歌说
异步代码段应该出现在页面顶部 结束标签。
并且给出了这个:
<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>
我可以将其作为外部.js文件,还是必须在html页面中?
答案 0 :(得分:3)
可以以任何方式加载代码段。如果你想把它包含在一个外部文件中,那么就把自己搞得一团糟。 Google建议将其放在<head>
中以最大限度地提高跟踪的综合浏览量,但您可以轻松地在<body>
中轻松加载,或者从外部JavaScript文件加载,甚至动态加载注入JavaScript文件。所有需要发生的事情都是片段需要执行; ga.js
负责其余的工作。
即使您的浏览器本身缓存了代码,它仍会执行ga.js
(它本身可能会被缓存),但它发送给Google Analytics的数据会被高速缓存。即使在最严格的代理环境中,您的浏览器也无法缓存该请求。
分析数据“发送”到Google Analytics的方式是ga.js
,在收集环境中的所有分析数据,您的配置及其设置的Cookie后,将所有这些值连接到查询中动态图像请求上的字符串(通过JavaScript请求并且从未实际注入到DOM中。)这些请求包含缓存破坏参数,以及通常对每个请求唯一的数据。
此外,请求的图像专门指示浏览器通过设置这些标题来避免缓存它:
Cache-Control:private, no-cache, no-cache=Set-Cookie, proxy-revalidate
Expires:Wed, 19 Apr 2000 11:43:00 GMT
Pragma:no-cache
答案 1 :(得分:0)
该片段必须位于页面本身上。
如果该代码段位于外部JS文件中,则浏览器将缓存该文件,并且该代码段将仅生成来自您网站的第一个加载页面。
如果需要,还有更多精巧的方法可以从Javascript调用代码段API - 这些方法主要用于跟踪特殊事件,如按钮等。