Nodejs 为什么我从 Google 统计上创建 Profile 获得的代码和文档上不一样
Nodejs 为什么我从 Google 统计上创建 Profile 获得的代码和文档上不一样
我得到的代码是这样的, 中间步骤似乎没有其他的选项的:
<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-省略', 'jiyinyiyong.github.io');
ga('send', 'pageview');
</script>
而 Google 文档上给的是:
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXX-Y']);
_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的两种不同的实现方式。一种是旧版的_gaq
方法,另一种是新版的gtag.js
或analytics.js
方法。这两种方法的主要区别在于它们如何初始化和发送数据到Google Analytics。
为什么会有不同的代码?
-
版本差异:Google Analytics有多个版本,包括经典版(使用
_gaq
)和新的Universal Analytics(使用gtag.js
或analytics.js
)。如果您从Google Analytics界面获取的代码是旧版的_gaq
代码,那么它可能是因为您使用的是较旧的设置或配置。但是,现在推荐使用的是gtag.js
或analytics.js
。 -
文档更新:Google可能会根据其服务的变化不断更新文档。因此,您看到的文档上的代码可能已经是最新的推荐做法。
示例代码
使用 gtag.js
<script async src="https://www.googletagmanager.com/gtag/js?id=GA_MEASUREMENT_ID"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'GA_MEASUREMENT_ID');
</script>
使用 analytics.js
<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','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-省略', 'jiyinyiyong.github.io');
ga('send', 'pageview');
</script>
解释
-
gtag.js
:- 使用
gtag
函数来初始化和配置跟踪。 - 更加简洁且易于管理多个Google Analytics账户。
- 使用
-
analytics.js
:- 使用
ga
函数来创建和发送跟踪事件。 - 需要手动插入脚本并调用
ga
函数。
- 使用
总结
建议您使用最新推荐的方法(如gtag.js
),因为Google通常会停止支持旧的API,并推荐使用新功能。确保您的代码与当前的最佳实践保持一致,以获得最佳性能和兼容性。
第一个代码优化过,账户名也不一样了。是Google Analytics的新接口吧。
照说文档上应该有才对, 如果是新接口那也应该很容易找到的
这个问题主要是由于Google Analytics不同版本之间的差异导致的。你从Google统计中获取的代码是基于新的Google Analytics(Universal Analytics)的实现方式,而文档上的代码则是基于旧版本(经典Google Analytics)的实现方式。
以下是两种实现方式的简要说明:
Universal Analytics (你的代码)
(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-省略', 'jiyinyiyong.github.io');
ga('send', 'pageview');
这里使用了ga
函数来创建和发送跟踪数据。这是一套全新的API,适用于更现代的应用场景,包括单页应用等。
Classic Google Analytics (文档中的代码)
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXX-Y']);
_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);
})();
这里使用了一个全局变量_gaq
来存储跟踪命令,然后通过加载一个脚本来执行这些命令。
结论
这两种方法都有效,但Universal Analytics更为现代,提供了更多功能。如果你需要兼容旧版浏览器或有特殊需求,可以选择Classic版本。如果你的应用是现代的Web应用或者单页应用,建议使用Universal Analytics。