4

我的客户希望在他们的 Rails 3.2 应用程序上设置一个复杂的 mixpanel 跟踪系统,其中包含大量的主干.js 功能。

我想将 mixpanel 功能抽象到某种模块中(而不是让调用散布在整个现有代码库中)。

要求之一是在成功操作之前不会触发 mixpanel 调用,因此我认为我不能将 mixpanel 调用附加到 DOM 元素。

我的另一个想法是在 javascript 中创建某种中介对象,以订阅需要跟踪的各种主干事件。但是,我需要跟踪的事件中只有大约一半在主干中,这让我觉得我根本不认为我可以在 js 中使用 mixpanel。

也许是一个听 Rails 模型的 lib 类?

有什么想法或建议吗?

谢谢!

4

2 回答 2

7

大约六个月前,我们遇到了同样的问题,并决定构建一个开源 JavaScript 库,将 Mixpanel 的功能抽象到我们使用的所有分析服务中,包括 KISSmetrics、Google Analytics、Chartbeat 等。

您可以在http://segmentio.github.com/analytics.js查看

结果是一个简单的 API,您可以在其中在一行代码中调用 analytics.track() 或 analytics.identify(),并将数据发送到所有不同的提供者。

该库还具有analytics.trackLink() 和analytics.trackForm() 等辅助函数,可以更轻松地跟踪出站点击和表单提交,这通常会导致页面在事件发送之前重新加载。这些功能会引入轻微的延迟以让事件消失。

于 2013-01-23T00:03:22.710 回答
1

您当然可以在ActiveRecord 回调Observer中使用其中一个Ruby 库,使用用户 ID 将其与它们相关联。identify()

success另一种选择是通过客户端上的 AJAX 执行操作,然后在回调中触发 mixpanel 事件。如果您需要将它们发送到不同的页面,您可以设置window.location超时后。

于 2012-12-03T19:01:14.733 回答