我想使用Google Analytic和本地存儲來跟蹤離線事件。 這是我的代碼:連續的GA點擊被丟棄
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-27966345-1']);
_gaq.push(['_setDomainName', 'none']);
_gaq.push(['_setSessionCookieTimeout',10]);
_gaq.push(['_setSampleRate', '400']);
_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);
})();
我只需保存在本地存儲,當事件用戶重新上線我嘗試將事件發送到谷歌在一份爲,但是當我比較我的計數器,我看到的網頁瀏覽量在實時模式(谷歌分析)我不明白他們爲什麼不同。我認爲是關於谷歌的採樣率或什麼的,因爲我多次測試,我看到不同的結果,有時結果是正確的,但有時有1000或更多的差異。
這裏是我的發送事件代碼:
while(ctr>0){
if(sd==0){
sd=1;
alert(ctr);
}
//
if(flag==0)break;
var name='tosend';
var tosend_action=localStorage.getItem(name+'action'+ctr);
var tosend_label=localStorage.getItem(name+'label'+ctr);
var tosend_value=localStorage.getItem(name+'value'+ctr);
_gaq.push(['_trackEvent',value,tosend_action,tosend_label+"_val:"+tosend_value,tosend_value]);
_gaq.push(['_trackPageview',name+'value'+ctr]);
localStorage.removeItem(name+'action'+ctr);
localStorage.removeItem(name+'label'+ctr);
localStorage.removeItem(name+'value'+ctr);
ctr=Number(ctr)-1;
localStorage.removeItem('counter');
localStorage.setItem('counter',ctr);
ctr=localStorage.getItem('counter');
}
}
P.S:標誌是我的變量,看看用戶是否在線。
_setSampleRate應該是一個百分比。將它設置爲比「100」更高的值是沒有意義的。順便說一句'100'是默認設置,所以你根本不需要設置 – Eduardo 2012-02-18 09:16:07
當用戶上線時,你最多發送給GA的點擊次數。你知道有10個連續命中的限制是正確的嗎? – Eduardo 2012-02-18 09:16:47
爲什麼您將會話cookie超時設置爲10ms?它很可能會在每個網頁瀏覽中進行一次新的訪問。這可能不是你想要的。 – Eduardo 2012-02-18 09:23:58