100
85

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

アクセス解析ツールのmixpanel導入してみた

Last updated at Posted at 2012-09-04

最近のいけてるサイトでよく使われているmixpanelを使ってみました。
やりたいことはWebサイトのイベント監視をシンプルにわかりやすくってだけです。

mixpanelの登録と料金

こちらから登録できます。
https://mixpanel.com

mixpanelはPVベースではなくイベントベースなので、課金もPVではなくイベント単位になります。イベントのことをデータポイントと呼んでいます。

データポイント数は、25,000まで無料となっています。
サイトにバナーを貼って申請すると、加えて175,000データポイント、合計200,000まで無料になります。

ちなみに無料プランの次は、500,000データポイントで$150です。ちょっと高いです。。

一見高すぎて使えねーや、と感じるかもしれませんが、PVではなくイベントでの課金なのですね。
なので本当に見たいイベントだけに絞って設定することで、無料の範囲内で使うのがいいと思います。
全体のPVとかはGoogle Analyticsを併用して見れば良いですね。

初期化スクリプトを埋め込む

mixpanelでデータを計測するためには、まずHTML内に初期化スクリプトを埋め込む必要があります。
以下の自動生成コード+init呼び出しの2つを連続して、ページロード時に走る場所に貼り付けます。

自動生成コード
(function(c,a){var b,d,h,e;b=c.createElement("script");b.type="text/javascript";
  b.async=!0;b.src=("https:"===c.location.protocol?"https:":"http:")+
    '//api.mixpanel.com/site_media/js/api/mixpanel.2.js';d=c.getElementsByTagName("script")[0];
  d.parentNode.insertBefore(b,d);a._i=[];a.init=function(b,c,f){function d(a,b){
    var c=b.split(".");2==c.length&&(a=a[c[0]],b=c[1]);a[b]=function(){a.push([b].concat(
      Array.prototype.slice.call(arguments,0)))}}var g=a;"undefined"!==typeof f?g=a[f]=[]:
    f="mixpanel";g.people=g.people||[];h=['disable','track','track_pageview','track_links',
    'track_forms','register','register_once','unregister','identify','name_tag',
    'set_config','people.set','people.increment'];for(e=0;e<h.length;e++)d(g,h[e]);
    a._i.push([b,c,f])};a.__SV=1.1;window.mixpanel=a})(document,window.mixpanel||[]);
init
mixpanel.init("token", {
  track_links_timeout: 2000
});

initの"token"の箇所は自分のアカウントのトークンを設定します。
トークンはこちらで確認できます。
https://mixpanel.com/account/

track_links_timeoutというのは、イベント記録の取りこぼし防止用のミリ秒設定です。
デフォルトは300msなのですが、実験中フォーム送信が記録されたりされなかったりで悩まされました。
とりあえず2秒くらいに設定してみました。

イベントを記録

イベントの記録はmixpanel.trackメソッドを呼び出します。

track
mixpanel.track("event name", {
  key: value
});

上の例のように任意のデータをイベントに追加できます。ここで設定したキーで集計データを絞り込みしたりできるので、かなり便利です。

フォーム送信を記録

記録したいイベントって単なるボタンクリックではなくフォーム送信であることが多いと思います。
フォーム送信のイベント記録はtrackでもできますが、専用のtrack_formsというメソッドが用意されています。

track_forms
mixpanel.track_forms('#formId', 'event name', function(form) {
  return {
    key: $("[name='key']", form).val()
  };
});

第1引数は対象フォームのCSSセレクタ表現です。第2引数はイベント名。第3引数は追加で記録する情報を返す関数になります。
この関数で自由にフォーム内のフィールドを引っ張ってきてデータを設定します。

まとめ

以上、コードベースでのざっくりmixpanel紹介でした。
mixpanelの良さはGUIのデータ集計画面にあるので、ぜひぜひ登録していじってみてください。

あとGoogle Analyticsにもイベント機能はあるのですが、いまいちわかりにくいです。
そこでPVベースの自動集計はGoogle Analytics、イベント監視はmixpanelというように役割を分けて、両方使うというのがいいんじゃないかと思っています。
多分皆さんそうしてるんじゃないかな。

100
85
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
100
85

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?