サービスを成長させるためには、機能追加や削除、デザイン変更、広告など、様々な施策によって新たなユーザーを集客する必要がある。ある施策によって集客したユーザーの集団(コホート)の動向を時系列で分析する「コホート分析」により、その施策の有効性を検証することができる。
例えば、獲得ユーザーを月ごとに分け、再訪問者数をプロットしている(How to do Cohort Analysis in Google Analyticsより引用)。獲得した次の月になると、再訪問者は大幅に下がる様子がわかる。9月と11月の獲得ユーザーで比べると、11月の方が月を再訪問者数を保持できており、改善効果が見て取れる。
以下では、Google Analyticsを使い「初訪問した時期」でコホート分析するための具体的な手続きを紹介する。
(1) トラッキングコードの設置
Google Analyticsのトラッキングコードが以下だとして、
<script type="mce-text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-XXXXXXXX-X']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script>
次のようなコードを追加して、ユーザーの初訪問日をyyyymmdd形式でカスタム変数に保存する。具体的には、2013年3月28日に初訪問していたユーザーは、カスタム変数名「FirstVisit」に、値「20130328」を保存する。
<script type="mce-text/javascript"> var _gaq = _gaq || []; try { var f = function (d) { return d.getFullYear() + ("0" + (d.getMonth() + 1)).slice(-2) + ("0" + d.getDate()).slice(-2); }; var c = document.cookie; var i = c.indexOf('__utma'); var s = null; if (i < 0) { s = f(new Date()); } else { var utma = c.substring(i, c.indexOf(';', i)); if (utma) { var v = utma.split('.'); if (v[2]) { var date = new Date(); date.setTime(v[2] * 1000); s = f(date); } } } if(s) { _gaq.push(['_setCustomVar', 1, 'FirstVisit', s, 1]); } } catch (e) { } _gaq.push(['_setAccount', 'UA-XXXXXXXX-X']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script>
trackPageviewを実行するより前に、setCustomVarを実行する点に注意する(Recommended Practiceを参照のこと)。
(2) アドバンスセグメントを使った分析
Google Analyticsの左側ペインで、ユーザー>カスタム>カスタム変数、を選択し、カスタム変数 FirstVisit が取得できていることを確認する。もし、取得できていない場合は、Google Analyticsで閲覧している日付に間違いがないか、埋め込んだトラッキングコードに間違いがないか(正しく実行できていれば、__utmvというクッキーが作成されている)などを見直す。
以下、「2013年3月に初訪問した人」の集団について分析するため、「FirstVisit の値が 201303 になっている人」を抽出するカスタムセグメントを作る。
右側ペインの上部の「アドバンスセグメント」を選択し、右下の「新しいカスタムセグメント」を押下する。
下図のように「カスタム変数(キー1)」は「FirstVisit」と「完全一致」、さらに、「カスタム変数(値01)」は、「201303」と「前方一致」させる。
これで、2013年3月に初訪問した人たちが、サイトにどれだけ再訪問し、どう利用しているかを把握できるようになる。
参考にしたサイト:
アクセス分析の有意性を高めるためにKISSmetricsがコホート分析を導入 | TechCrunch Japan
http://jp.techcrunch.com/2011/09/24/20110923kissmetrics-helps-you-hone-in-on-stats-that-actually-matter-with-cohort-reports/
How to do Cohort Analysis in Google Analytics | Jonathon Balogh
http://jonathonbalogh.com/2012/04/01/how-to-do-cohort-analysis-in-google-analytics/
How to do Cohort Analysis in Google Analytics | Jonathon Balogh
http://jonathonbalogh.com/2012/04/01/how-to-do-cohort-analysis-in-google-analytics/
Google Analyticsで、新規訪問の日を記録するには? – QA@IT
http://qa.atmarkit.co.jp/q/2274
Custom Variables – Web Tracking (ga.js) – Google Analytics — Google Developers
https://developers.google.com/analytics/devguides/collection/gajs/gaTrackingCustomVariables
カスタム変数を作るコードは、Gistにもあげておいた。
try { | |
var f = function (d) { | |
return d.getFullYear() + ("0" + (d.getMonth() + 1)).slice(-2) + ("0" + d.getDate()).slice(-2); | |
}; | |
var c = document.cookie; | |
var i = c.indexOf('__utma'); | |
var s = null; | |
if (i < 0) { | |
s = f(new Date()); | |
} else { | |
var utma = c.substring(i, c.indexOf(';', i)); | |
if (utma) { | |
var v = utma.split('.'); | |
if (v[2]) { | |
var date = new Date(); | |
date.setTime(v[2] * 1000); | |
s = f(date); | |
} | |
} | |
} | |
if(s) { | |
_gaq.push(['_setCustomVar', 1, 'FirstVisit', s, 1]); | |
} | |
} catch (e) { | |
} |