在Firefox扩展中使用Google Analytics

3

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

<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不允许这样做吗?

谢谢

2个回答

5
我建议您看一下Universal 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);

请注意,您需要在Google Analytics中创建一个新属性,以便将其指定为通用分析。

如果需要,您也可以使用 https URL。这有助于将多个请求合并为一个连接。此外,数据更加私密。 - Roland Pihlakas
@Mike Kaply,我不理解这个cid -> clientid。我应该从哪里获取它?你能解释一下吗? - discoverAnkit

3
这是导致GA在面板模块中出现故障的错误: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 希望这对您有所帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接