Nei*_*ilD 30 javascript asynchronous google-analytics unobtrusive-javascript
我正在尝试将异步版Google Analytics跟踪代码添加到网站中.
我想将JavaScript保存在一个单独的文件中,并从那里调用它.
这是我目前在.js文件中得到的内容:
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
oldonload();
func();
}
}
}
function loadtracking() {
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXXX-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);
})();
}
addLoadEvent(loadtracking);
Run Code Online (Sandbox Code Playgroud)
这就是我在<head>母版页面标签中的内容:
<script type="text/javascript" src="js/google-analytics.js" ></script>
Run Code Online (Sandbox Code Playgroud)
然而,显然有一个问题,因为几天后,我没有得到统计数据!
我需要改变什么想法?
谢谢,尼尔
编辑:好的...在下面的一些反馈之后,我将添加我的.js文件的新的当前内容.我会保持更新,以便如果/当这个问题得到解决,它将有希望帮助其他人尝试做类似的事情.
var _gaq = _gaq || [];
function loadtracking() {
window._gaq.push(['_setAccount', 'UA-XXXXXXX-X']);
window._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);
})();
}
loadtracking();
Run Code Online (Sandbox Code Playgroud)
Bri*_*ian 23
您的变量定义var _gaq在函数内部.这意味着它在该函数内局部作用域并且不会全局存在.Google Analytics取决于全局变量_gaq.如果你想将它保存在这样的函数中,请将其引用为window._gaq.
gbl*_*zex 14
你完全忽略了异步跟踪代码的重点.不要把它放在外部文件中,因为这与包含旧的同步GA完全一样.
最重要的是,不要将跟踪代码推迟,window.onload因为它可能会触发太晚.
如果您使用异步GA,只需将其放在内联脚本标记中的文档顶部.这也是Google Analytics网站上的推荐.
在您的页面或模板可能使用的任何其他脚本之后,将异步代码段插入页面部分的 底部
<head>.
| 归档时间: |
|
| 查看次数: |
22996 次 |
| 最近记录: |