在Rails和Backbone上使用mixpanel进行复杂的跟踪实现

时间:2012-10-19 17:31:32

标签: javascript ruby-on-rails backbone.js tracking mixpanel

我的客户希望在他们的Rails 3.2应用程序上设置一个复杂的混合面板跟踪系统,该系统包含广泛的backbone.js功能。

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

其中一个要求是mixpanel调用在成功操作之前不会被触发,所以我认为我不能将mixpanel调用附加到DOM元素。

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

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

有任何想法或建议吗?

谢谢!

2 个答案:

答案 0 :(得分:7)

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

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

查看

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

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

答案 1 :(得分:1)

您当然可以使用Ruby librariesActiveRecord callback中的Observer之一,使用用户ID与identify()进行关联。

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