所以這將工作: 谷歌分析 - _trackAvent之前_setAccount?訂單是否重要?
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
,如果在_setAccount
之前已經有東西已經存在。而且還有不同背景下的多個追蹤器... 那麼這是否意味着完全忽略命令是完全合法的?對不起,這個簡單的問題,但我什麼也沒有發現什麼是允許與異步和什麼不是。
感謝您的幫助!
「註釋掉_setAccount行,並且所有數據都記錄到一個不存在的帳戶。」 - 不敢相信我不知道這一點! – TomFuertes
評論:是的,如果你沒有給它的帳戶,它如何登錄? 但更好:把它移動一行,你甚至不會注意到你的代碼中缺少一些東西。 –
@ZoltánMorvai:帳戶ID最終成爲發送的任何跟蹤像素的參數之一 - 跟蹤時沒有涉及登錄。 – mike