4

私のクライアントは、広範なbackbone.js機能を含む複雑なミックスパネル追跡システムをRails3.2アプリにセットアップしようとしています。

ミックスパネルの機能をある種のモジュールに抽象化したい(既存のコードベース全体に呼び出しを分散させるのではなく)。

要件の1つは、アクションが成功するまでmixpanel呼び出しが発生しないことです。そのため、mixpanel呼び出しをDOM要素にアタッチできないと思います。

私の追加の考えは、追跡する必要のあるさまざまなバックボーンイベントをサブスクライブするJavaScriptである種のメディエーターオブジェクトを作成することでした。ただし、追跡する必要のあるイベントの約半分だけがバックボーンにあるため、jsでmixpanelを使用できるとは思えません。

たぶん、railsモデルをリッスンするlibクラスですか?

何か考えやアドバイスはありますか?

ありがとう!

4

2 に答える 2

7

約6か月前に同じ問題が発生し、KISSmetrics、Google Analytics、Chartbeatなどを含むすべての分析サービスにわたってMixpanelの機能を抽象化するオープンソースのJavaScriptライブラリを構築することにしました。

http://segmentio.github.com/analytics.jsで確認できます

その結果、1行のコードでanalytics.track()またはanalytics.identify()を呼び出し、すべての異なるプロバイダーにデータを送信できるシンプルなAPIが得られます。

ライブラリには、analytics.trackLink()やanalytics.trackForm()などのヘルパー関数もあり、アウトバウンドクリックとフォーム送信の追跡を容易にします。これにより、通常、イベントが送信される前にページがリロードされます。これらの関数は、イベントを終了させるためにわずかな遅延を導入します。

于 2013-01-23T00:03:22.710 に答える
1

確かに、ActiveRecordコールバックまたはオブザーバーRubyライブラリの1つを使用して、ユーザーのIDを使用してそれらに関連付けることができます。identify()

もう1つのオプションは、クライアントでAJAXを介してアクションを実行してから、コールバックでmixpanelイベントをトリガーすることsuccessです。それらを別のページに送信する必要がある場合はwindow.location、タイムアウト後に設定できます。

于 2012-12-03T19:01:14.733 に答える