2013-06-30 61 views
2

我想爲我的Firefox插件使用Google Analytics事件跟蹤。我在我的popup.html中包含了這樣的ga腳本。在Firefox擴展中使用Google Analytics

<script src="http://www.google-analytics.com/ga.js"></script> 

而且還增加了:

<script > 
    var _gaq = _gaq || []; 
    _gaq.push(['_setAccount', 'UA-XXXXXXXX-X']); 
</script> 

我把下面的代碼事件:

_gaq.push(['_trackEvent', 'example', 'clickedit']); 

我沒有看到任何錯誤在Firefox的錯誤控制檯,也該事件不存在在分析頁面中。

有什麼想法? Firefox是否不允許這樣做?

感謝

回答

4

我建議你看一看在通用Analytics(分析)新的測量協議:

https://developers.google.com/analytics/devguides/collection/protocol/v1/

這可以讓你使用XHR POST簡單地直接發送GA事件。

這將與Firefox擴展更好地共存。

的代碼會是這個樣子:

var xhr = Cc["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance(Ci.nsIXMLHttpRequest); 
var url = "http://www.google-analytics.com/collect"; 
var params = "v=1"; 
params += "&tid=" + "GOOGLE ANALYTICS ID"; 
params += "&cid=" + UNIQUE IDENTIFIER 
params += "&t=" + "event"; 
if (category) { 
    params += "&ec=" + category; 
} 
if (action) { 
    params += "&ea=" + action; 
} 
if (label) { 
    params += "&el=" + label; 
} 
if (value) { 
    params += "&ev=" + value; 
} 
params += "&z=" + (1000000000 + Math.floor(Math.random() * (2147483647 - 1000000000))); 

xhr.open("POST", url, true); 
xhr.channel.loadFlags |= Components.interfaces.nsIRequest.LOAD_BYPASS_CACHE; 
xhr.send(params); 

請注意,您必須創建在谷歌Analytics(分析)的新屬性,以便您可以將其指定爲通用Analytics(分析)。

+0

如果有必要,您也可以使用https https。這有助於將多個請求合併到一個連接中。此外,數據更私密。 –

+0

@Mike Kaply我無法理解這個cid - > clientid。我在哪裏得到這個?你能解釋一下嗎? – ankitG

2

這是導致遺傳到面板模塊打破了錯誤:https://bugzilla.mozilla.org/show_bug.cgi?id=785914

即使這是固定的,Mozilla的將不允許的ga.js列入由於模糊的來源和安全問題。因此,如果您包含ga.js,則無法通過其addons.mozilla.org發佈您的加載項。

要解決這一切:

我創造了我的託管服務器上代理的iframe的分析請求通過。代碼是在github這裏:https://github.com/yelloroadie/google_analytics_proxy

我希望這可能對你有一些用處。