2011-04-11 36 views
2

好了,第一關,對不起,如果標題沒有多大意義......我不知道怎麼回事總結吧!谷歌分析接收數據與轉向導致NS_BINDING_ABORTED

所以這裏的問題:

我使用jQuery click事件附加到我的表單的提交按鈕。 jQuery click事件觸發了一些GA代碼來跟蹤虛擬頁面視圖,因此我可以將它用作目標渠道中的一個步驟。

但發生的事情是有遺傳算法的代碼執行和提交之間沒有延遲,所以我擔心GA實際上沒有得到數據。

當我看着firebug或httpfox(查看請求/響應的瀏覽器插件)與charles proxy(外部嗅探器,與瀏覽器分開)發生了什麼時,我看到兩件不同的事情。

Firebug的/是HttpFox我看到GET請求GA但狀態的0,它是顯示爲 (中止)NS_BINDING_ABORTED

...儘管它已被送到節目的字節等..只是什麼作出迴應。

但與charles代理,我看到狀態爲200和1x1像素響應相同的GET請求。

所以我理論這裏是GA 接收數據,但該瀏覽器在移動它得到實際的響應之前 - 這我可以接受,只要GA是獲取數據,我對此很好。但是,這只是我的理論,我不知道......

我知道我可以編寫代碼來簡單地延遲執行由500毫秒或提交的任何保險,但我不想要做如果它沒有必要..

而且我知道,如果沒有別的我可以看到,如果數據顯示GA起來,但GA對數據進行24-48小時的延遲,所以很難給QA。

有誰知道或有從經驗中任何建議...有其他人經歷過這樣的「中止」的東西,可以說一種方式或其他,如果有必要推遲提交或什麼?

+0

什麼是GA代碼你正在使用? – 2011-04-11 17:44:12

回答

2

HTTPFox不是一個真正的嗅探器。它只是試圖模仿一個。所以你看到的數據並不總是在後臺發生的事情。查爾斯應該給你更好的照片。如果你在查爾斯看到200碼。所以有可能是這一打擊正在經歷。

壞消息是,當您在頁面卸載時觸發命中時。 (出站點擊,鏈接點擊,表單提交,window.unload等),他們現在不會經過。發生這種情況是因爲Google Analytics(分析)JS調用基本上將GIF附加到頁面上。之後它會回來。比瀏覽器會加載gif。當代碼返回時,瀏覽器可以自由使用,如果它離開頁面,它將取消它可能有的任何未決請求,包括那個小的GIF圖像。所以瀏覽器可能沒有發送跟蹤代碼,或者可能已經發送了,但是TCP連接沒有通過,瀏覽器需要重新發送包,但他不願意再這樣做。

所以如果準確性是您的需要,您應該添加一個200-500毫秒的延遲。但請記住,谷歌分析不是一個精確度工具,如果一些事件沒有經過,它不會影響分析的最終結果。

0

根據此頁面上的informatin:

Sending Data to Google Analytics

有你的數據不被髮送的可能性(這個壞消息,因爲愛德華多說)。抄寫該頁面的最重要的信息,涉及到你的疑惑:

許多瀏覽器停止一旦頁面執行JavaScript啓動 卸載,這意味着你的analytics.js命令發送的匹配可能 永遠不會運行。

一個例子是當你想發送一個事件到Google 分析記錄用戶點擊了一個表單的提交按鈕。在大多數情況下,點擊提交按鈕將立即開始加載 下一頁,並且任何ga('send',...)命令都不會運行。

解決此問題的方法是攔截事件以停止從 卸載頁面。然後,您可以像往常一樣將您的點擊發送給Google Analytics, ,一旦發送完畢,您可以以編程方式重新提交表單 。

所以,在我看來,這是審慎總是用很短的延遲預防,而不是最終用戶,當卸載當前頁面的事件被髮送到GA感知。在我的具體情況中,我注意到關鍵延遲值大約爲50毫秒(有時我得到了「中止」消息;有時我沒有),所以我選擇了200毫秒的延遲。

但是,如果出於任何理由,您確實需要抓住所有事件,那麼更大的延遲或更復雜的解決方案(如引用頁面上建議的解決方案)可能更適合您。

如何截獲該事件(對於那些誰不知道我們正在談論的),使用jQuery事件監聽一個簡單的例子,可以在這裏找到:

Jquery Analytics tracking onclick NS_BINDING_ABORTED