Javascript 为什么谷歌分析';s代码这么复杂?
当一个人想要在他的网站中包含谷歌分析时,以下是他必须包含的代码:Javascript 为什么谷歌分析';s代码这么复杂?,javascript,google-analytics,Javascript,Google Analytics,当一个人想要在他的网站中包含谷歌分析时,以下是他必须包含的代码: <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-XXXXXX-1', 'auto');
ga('send', 'pageview');
</script>
(函数(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]| |函数(){
(i[r].q=i[r].q | |[]).push(参数)},i[r].l=1*新日期();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(窗口,文档,“脚本”,“www.google-analytics.com/analytics.js”,“ga”);
ga(“创建”、“UA-XXXXXX-1”、“自动”);
ga(‘发送’、‘页面浏览’);
为什么这不简单
<script src="http://www.google-analytics.com/analytics.js?id=UA-XXXXXX-1" async></script>
因为它是非阻塞的。浏览器加载页面时,将加载所有资源和脚本 使用google的内联功能,它在页面加载后插入脚本,这样页面加载时间就不会增加 另外,并非所有浏览器都支持
async
属性
来源:因为它做的不止这些。但事实上,你可以使用
<script>
window.GoogleAnalyticsObject = "ga";
window.ga = window.ga || function() {
if (!window.ga.q) window.ga.q = [];
window.ga.q.push(arguments)
}
window.ga.l = +(new Date);
ga('create', 'UA-XXXXXX-1', 'auto');
ga('send', 'pageview');
</script>
<script src="http://www.google-analytics.com/analytics.js?id=UA-XXXXXX-1" async></script>
window.GoogleAnalyticsObject=“ga”;
window.ga=window.ga | |函数(){
如果(!window.ga.q)window.ga.q=[];
window.ga.q.push(参数)
}
window.ga.l=+(新日期);
ga(“创建”、“UA-XXXXXX-1”、“自动”);
ga(‘发送’、‘页面浏览’);
因为这是两个脚本而不是一个,所以它们不会这样做,动态创建脚本可以确保异步加载,即使在不理解
async
属性的浏览器中也是如此。但是第一个脚本可能在第二个脚本中,不是吗?@Arnaud:如果您打算调用ga()
在加载脚本之前同步。实际上,这两个create
和send
调用并不需要,但是IIRC在一些站点中使用了各种ga()
调用,它们正好位于include脚本的下方ga
需要立即声明才能开始注册呼叫。好的,那么唯一的目的就是允许网站对Google Analytics进行自定义呼叫?(并且支持10%不懂异步的浏览器)基本上是的。此外,ga.l
似乎在加载脚本之前立即用时间戳初始化,这样ga就可以基于它来度量一些事情。它的支持率为90%()。如果是100%,谷歌切换到我的解决方案是不是一个好主意?不一定,你仍然需要一个脚本来发送页面视图。许多人自定义他们的页面视图以附加附加数据,例如用户类型。