所以这会奏效:
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-65432-1']);
_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.push(['_trackEvent', 'Videos', 'Play', 'Gone With the Wind']);
但是如果访问者可以通过http://example.com?autoPlay=Wind
之类的链接来访问该怎么办?那么视频已经被请求,并开始播放,生成:
var _gaq = _gaq || [];
_gaq.push(['_trackEvent', 'Videos', 'Play', 'Gone With the Wind']);
事件。但是常规跟踪代码仍然在页面底部运行,这就是为什么我们有异步:
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-65432-1']);
_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);
})();
所以我必须至少将_setAccount
移到顶部,或者在我呼叫ga.js
时它是否已经在队列中?或者我可以创建自己的队列......但是在这里,我发现they made sure如果_gaq
之前已经存在某些内容,则{{3}}不删除_setAccount
的线索。并且还有针对不同情境的多个跟踪器... 这是否意味着完全忽略该命令是完全合法的?对于这个简单的问题很抱歉,但是我对async允许的内容一无所知什么不是。
感谢您的帮助!
答案 0 :(得分:5)
在任何记录数据的命令之前,您必须拥有_setAccount
,例如_trackPageview
或_trackEvent
。
如果您查看_trackEvent
尚未运行时_setAccount
发送的跟踪像素,您会看到它会记录到默认帐户,例如UA-XXXXX-X
。
我在开发或临时系统上使用过这个,我希望运行分析代码,但不希望它污染生产跟踪数据。注释掉_setAccount
行,所有数据最终都会记录到不存在的帐户中。
假设您从未初始化名为“mumble”的跟踪器(使用_gaq.push(['mumble._setAccount', 'UA-65432-1'])
,则以下代码显示未启动的跟踪器的ID为“UA-XXXXX-X”:
echo(_gat.getTrackerByName('mumble')_getAccount())
答案 1 :(得分:2)
现在它确实:
var _gaq = _gaq || [];
if(_gaq.unshift){
_gaq.unshift(['_setAccount', 'UA-65432-1']);
} else {
_gaq.push(['_setAccount', 'UA-65432-1']);
}
_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);
})();
所以解决方案是,虽然push
附加到数组的末尾,而unshift
一直这样做。
问题可能是iframe ga 已加载,然后它不是数组,而是具有自定义push
方法的对象。在这种情况下,让我们回到原始代码。在您自己的主页中,帐户ID是相同的,无论如何都可以。