2014-04-09 16 views
2

Ghostery實現了模擬腳本(代理),以便頁面在邏輯上不會失敗,從而預計跟蹤代碼。Ghostery surrogates

在我的情況下,我不得不編寫跟蹤資產和出站點擊的代碼。通常的做法是檢查跟蹤代碼是否已加載(在我的案例中,由ga.js公開的_gat),但是此檢查會通過代理。

對於一些使用情況很好,但我們正在處理鏈接。爲了確保該鏈接實際記錄到GA,我將一個函數推送到_gaq,並將其執行(假設ga.js已正確加載)。與012不一樣的情況下,我得到的鏈接不會觸發,因爲window.location.href = url不會被執行。

當我看到代理時,我發現它可以改變我的位置,但我必須做_gaq.push(['_link', url])

我發佈了一個issue並得到了一個響應,開發人員不應該將功能綁定到第三方腳本。我明白了,這就是爲什麼在這之前我檢查了是否存在_gat

最後,我不得不爲Ghostery製作一個特殊的例子,並附上他們的bizzare推動鏈接來處理它。

你可以看看這個gist的完整實現。如果你想重新使用它並與IE8兼容,請確保包含String.trim()的polyfill。

我該如何編寫不依賴於跟蹤代碼的自定義跟蹤邏輯?

使用timeout更改網址是不可能的,因爲它可能會破壞緩慢連接中的點擊。

此外,戳_gat對象不是一個可靠的方法,因爲它依賴於第三方腳本是不好的。目前

+0

你可以快速看看[我的實現](https://github.com/timver/jquery-ga/blob/master/jquery.analytics.js)嗎?如果你完全否認'_gaq'對象,你仍然可以跟蹤/記錄任何你喜歡的東西......如果不是,很高興聽到原因。 –

+0

這將解決代理問題,但它不能確保命中get的記錄,如果它導航到出站網站。我偶然發現了這個http://www.axllent.org/docs/programming-tips/google-analytics/#automatically-track-outbound-links-using-async,這是有道理的。在該實現中,記錄事件不會干擾任何其他功能。 – zamber

回答

相關問題