Google analytics 在Firefox扩展中使用Google Analytics

Google analytics 在Firefox扩展中使用Google Analytics,google-analytics,firefox-addon,firefox-addon-sdk,Google Analytics,Firefox Addon,Firefox Addon Sdk,我想对我的Firefox插件使用Google Analytics事件跟踪。我已经在popup.html中包含了这样的ga脚本 <script src="http://www.google-analytics.com/ga.js"></script> 我在firefox错误控制台中没有看到任何错误,而且分析页面中也没有该事件 有什么想法吗?firefox不允许这样做吗 谢谢我建议您看看环球分析的新测量协议: 这允许您使用XHR POST直接发送GA事件 这将更好地与Fi

我想对我的Firefox插件使用Google Analytics事件跟踪。我已经在popup.html中包含了这样的ga脚本

<script src="http://www.google-analytics.com/ga.js"></script>
我在firefox错误控制台中没有看到任何错误,而且分析页面中也没有该事件

有什么想法吗?firefox不允许这样做吗


谢谢

我建议您看看环球分析的新测量协议:

这允许您使用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);

请注意,您必须在Google Analytics中创建一个新属性,以便将其指定为Universal Analytics。

这是导致GA在面板模块中中断的错误:

即使修复了这一问题,Mozilla也不会允许包含ga.js,因为源代码和安全问题都很模糊。因此,如果您包含ga.js,则无法通过他们的addons.mozilla.org分发您的加载项

要解决所有这些问题:

我在服务器上创建了一个iframe,通过它代理分析请求。代码位于github上的以下位置:


我希望这可能对您有所帮助。

如有必要,您也可以使用
https
url。这有助于将多个请求合并到一个连接中。而且数据更私密。@Mike Kaply我无法理解这个cid->clientid。我从哪里得到这个?你能解释一下吗?
_gaq.push(['_trackEvent', 'example', 'clickedit']); 
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);