パルカワ2

最近はFlutterをやっています

TreasureData JS SDKを使ってTDに情報をおくるRack Middlewareを書いた。

先日も書いたけど、TDのJavaScript SDK、面白い。
http://hisaichi5518.hatenablog.jp/entry/2014/11/30/175613

var td = new Treasure({...});
td.trackPageview('pageviews');

とかやるとGoogle Analyticsにデータを送るみたいにTDにデータを送ってくれる。

更に詳しい使い方は、以下を見れば分かる。

しかしまあ、いちいち全アプリケーションにpageviewタグを追加していくのもだるいので、rack middlewareとして書いてみた。
ペパボ社内にはTDに情報を送るCastanetという仕組みがあって、それも同じようなrack-middlewareがある。それをパクりました。

使い方は簡単で、3つのステップで導入出来る。

1. Gemfileにrack-td_js_sdkを追加する

gem "rack-td_js_sdk"

2. config/application.rbにミドルウェアの設定を書く

...
module Example
  class Application < Rails::Application
    config.middleware.use Rack::TdJsSdk, database: "foo", write_key: "..."
  end
end

write_keyは、TDで取得出来るキー
databaseは、自動で作られるので、自分で作る必要はない。

3. サーバを立ち上げる

rails s

これだけでアクセスするとTDに情報が送られるようになる。便利。