2011/06/17

Google AnalyticsのtrackEvent()でイベントを直接トラック

非同期版(2010年最新のコード)での解説はこちら。

Google Analytics
僕が今までtrackPageviewをいかに突っ込んだ使い方でイベントをカウントするか、ずっと考えたり提案したりしてきたんですが、ついに公式でtrackEventが追加されました。
メソッド自体は昔からあったんですが、中身がなかったので、今までは「今後追加予定」って感じでごまかされていた部分です。
で、これは何かというと、ページ内のボタンクリックやインタラクションを直接カウントできるようになったということ。
早速、使い方はこんな感じ↓ もちろん、ページ内にga.jsを読み込んだ上でね。
  1. _trackEvent(category, action, optional_label, optional_value)  
category(必須):トラックしたいイベントのグループ名。
action(必須):こういう名前でカウントしたい、というインタラクション名。
label(オプション):イベントデータに追加するディメンション。
value(オプション):数値データをカウントするときはここに数字を入れる。

使い方

  1. <a href="#" onClick="pageTracker._trackEvent('Videos', 'Play', 'Baby\'s First Birthday');">Play</a>  
こんな感じでonClickに乗せれば、リンクのクリックイベントを取れます。ただのページ遷移リンクはtrackPageviewでカバーされるから、このクリックはページ内での遷移とか、ボタンを押したとかで使います。
カテゴリを同じくして、イベントを変えると、こんな感じに。
  1. pageTracker._trackEvent("Videos""Play""Gone With the Wind");  
  2. pageTracker._trackEvent("Videos""Stop""Gone With the Wind");  
  3. pageTracker._trackEvent("Downloads""PDF""/salesForms/orderForm1.pdf");  
せっかくだからここにテスト用リンクを置いておきます。これを押すとカウントされます。
ビデオの再生ボタンを押したぜ!
ビデオの停止ボタンを押します。
俺はジャイアンガキ大将。

結果

Google Analytics
コンテンツ>イベントのトラッキング でカウント結果を確認できます。
上記の例だと、3番目の「俺はジャイアン」は日本語でイベントを設定してあるんですが、これもそのままカウントされました。
こりゃあグッと来ますね!!
カテゴリごとのアクションを比較する、という使い方が想定されます。まぁ、カテゴリの部分をページ名にするとか、見て分かりやすい形で設定しておけばいいだけですね。
Google Analytics

イベントって?

これが出来ると何がうれしいかというと、イベントってクリックイベントだけじゃない、ということなんですよね。
ぱっと思いつくのは、画面読 込み完了時、画面離脱時、ajax読込み完了時、みたいなタイミング(HTMLのDOMイベント)にハンドリングしてページ状態の詳細をトラッキングする こともできるし、スクロールや右クリック、画面リサイズみたいな操作にハンドリングしてもいいし、クリックした場所の座標を取得してヒートマップ的なこと もできそうですよね。

2011/06/10

サイト内のGAコードを外部JS化して一括管理すると便利

サイト内のGAコードを外部JS化して一括管理すると便利

GAコードは、ふつうサイト内の<head>タグ内にベタッと貼り付けますが、コード自体を外部ファイルとして<script>で取り込むようにすれば、コードが新しくなっても1か所修正するだけで全ページに対応できます。CMSのテンプレートだったら関係ないけど、これは地味に使えるテクなのでは。
  1. <script type="text/javascript" src="ga.include.js"></script>  
  2. //JSのファイル名はなんでもいい  
JSの中身はGAコードそのまんま。
  1. var _gaq_gaq = _gaq || [];  
  2. _gaq.push(['_setAccount', 'UA-12345-6']);  
  3. _gaq.push(['_trackPageview']);  
  4.   
  5. (function() {  
  6.     var ga = document.createElement('script'); ga.type = 'text/javascript'ga.async = true;  
  7.     ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';  
  8.     var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);  
  9. })();  
HTML内にコードが直接貼ってあるよりもスマートですね。