所以这将有效:
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
?或者我可以自己创建队列...但是在这里我看到了一个线索,即如果之前已经存在某些内容,他们确保不会删除.并且还有针对不同情境的多个跟踪器...... 这是否意味着完全忽略该命令是完全合法的?很抱歉这个简单的问题,但是我可以找到与async允许的内容完全无关,什么不是._gaq
_setAccount
感谢帮助!
您必须拥有_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())