2013-06-30 43 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

我希望这可能对你有一些用处。