2013-05-14 56 views
1

我不覺得在我的網站上嵌入外部JavaScript以執行各種跟蹤,但實際上並不需要。JavaScript:將Google Analytics/Yandex.Metrica減少爲引用者和屏幕大小

我所需要的是引用和屏幕大小,單獨使用靜態HTML img標記無法實現。

什麼是最符合標準,瀏覽器支持和呈現友好的方式來加載不可見的圖像,1 × 1 gif,引用和屏幕尺寸作爲URL的一部分?

我在尋找一個通用的答案,雖然你總是可以用Google Analytics GIF Request Parameters來形容它。

回答

1

document.referrer將爲您提供推薦人。

window.screen.widthwindow.screen.height會給你屏幕分辨率。

您可以使用這些與new Image()讓瀏覽器請求跟蹤像素。使用encodeURIComponent在將值附加到URL之前對其進行消毒。

var r = encodeURIComponent(document.referrer), 
    x = window.screen.width, 
    y = window.screen.height, 
    img = new Image(); 
img.src = '/tracking.gif?x=' + x + '&y=' + y + '&r=' + r; 

請注意,在後續請求,這將被緩存,所以你不會得到瀏覽量(儘管你沒有說你想這個)。這可能是理想的行爲,因爲您會得到隱式的獨特訪客跟蹤。但是,爲了規避緩存,您可以通過new Date().getTime();添加類似當前時間戳的內容作爲附加參數。

+0

'new Image()'會導致渲染延遲? – cnst 2013-05-14 16:04:20

+0

不,不應該(雖然我想它會依賴於瀏覽器)。例如,人們總是習慣使用這種方法在後臺預加載大圖像。 – pauljz 2013-05-14 16:06:43

+0

因此,它將作爲Image對象加載,但不會插入實際渲染的任何位置,就像人們想要的那樣?是否有任何瀏覽器試圖在這裏作弊,並且根本不加載對象,直到它實際被引用爲止? – cnst 2013-05-14 16:09:28