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

谢谢

4

2 回答 2

5

我建议您看看 Universal Analytics 中的新Measurement Protocol:

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(分析)中创建一个新媒体资源,以便将其指定为 Universal Analytics。

于 2013-07-02T15:55:42.430 回答
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

我希望这可能对你有用。

于 2013-08-08T19:54:44.020 回答