我应该在哪里放置Google Analytics异步代码段

时间:2011-09-26 01:26:16

标签: javascript performance google-analytics

谷歌说

  

异步代码段应该出现在页面顶部   结束标签。

并且给出了这个:

<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页面中?

2 个答案:

答案 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 - 这些方法主要用于跟踪特殊事件,如按钮等。