新的Google Analytics代码如下所示:
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-0000000-00']);
_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>
如何将全新的Google Analytics异步跟踪代码移动到外部JavaScript文件中?
我特别要问“var _gaq = _gaq || []; [...]”因为我知道可以移动其余部分,例如。
的index.html
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-0000000-00']);
_gaq.push(['_trackPageview']);
</script>
<script src="include.js" type="text/javascript"></script>
include.js
function includeGA()
{
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);
}
$(document).ready(function()
{
includeGA();
});
我已经尝试将“var _gaq = _gaq || []; [...]”代码放到不同的位置,但没有任何效果。
答案 0 :(得分:17)
您不应将GA代码置于功能中,原因有两个:
批评使用外部JS进行GA代码的人在这里有点不对。通过在js embed中引入 async 属性,它是有道理的。我将这个GA代码保存在外部js中,并将其异步嵌入到文档的头部。两个好处:
所以HTML会变成:
<head>
<script type="text/javascript" src="static/scripts.js" async></script>
</head>
和scripts.js
将有:
var _gaq=_gaq||[];
_gaq.push(['_setAccount','UA-XXXXXXXX-1']);
_gaq.push(['_setDomainName','.domain.net']);
_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)
})();
答案 1 :(得分:8)
然后再次:不将您的Google Async代码段放在外部文件中,因为它会阻止下载其他内容。拥有异步跟踪代码的要点是使其并行。
如果您使用异步GA,只需将其放在内联脚本标记中的文档的顶部中。这也是Google Analytics website上的推荐:
将异步代码段插入 您的
<head>
部分的底部 页面,在你的任何其他脚本之后 页面或模板可能会使用。
答案 2 :(得分:6)
这似乎与此问题类似:Using Google Analytics asynchronous code from external JS file
似乎将代码推送到外部文件中会消除新的异步代码的好处。
答案 3 :(得分:2)
我不明白为什么你不能把它放在include.js中的“function includeGA()”之上。实际上,我不明白为什么你不能将整个谷歌脚本直接复制到include.js(没有$ workaround)。这应该由script-include标记内联,对吧?