応用KPI分析: パス分析とは
前回までは、Webページ全体やページ単体のように点で捉える分析を基本KPI分析として定義していました。そのため、基本KPI分析では、そのページにアクセスしたユーザがどのような経路をたどってそこに辿りついたのかを焦点にせず、全てのアクセスを同等に扱っていました。
しかし、各ユーザはそれぞれ異なった目的を持って、異なったページを辿って同じ場所に辿り着いています。そこでユーザのパス情報を加味することでよりユーザに焦点を当てた分析ができると考えられます。このようなパスについての分析を、応用KPI分析として今回と次回で紹介していきます。ここでのパスとは、ユーザが自社のWebサイトに流入してから辿り着かせたいコンテンツに至るまで一連の経路を指します。
応用KPI分析をするためには、アクセスログのみではなく、複数の情報を組み合わせることで分析することができます。そのため、幾つかのテーブルを結合し、中間テーブルを作ることも必要になってきます。こうしたクエリの書き方の複雑さだけではなく、クエリ同士に順序関係や依存関係が発生してきてしまう分析だからこそ応用KPI分析と言えるでしょう。
そして、応用KPI分析の中のひとつであるパス分析では、ユーザのサイト上の遷移というパスを見ることによって、下記のような新たな概念がいくつも生まれてきます。PVやUUといった基本KPI分析のみを行ってきたユーザにとっては、まさに分析の新境地となることしょう。以下にいくつか例を挙げてみます。
- パス平均長
- コンバージョンまでにいくつのページを遷移したのかを算出します。これにより、コンバージョンの効率に関して理解することができます。
- コンバージョン時間
- Webサイトにきてからコンバージョンに至るまでの時間を算出します。これも同様にコンバージョンの効率に関して理解することができます。
- パス類型
- 長さや組み合わせが膨大なパスに対して、特定のルールに従ってパスを分類し、その分類の中でどのパス類型がコンバージョンに寄与しているかを知ることができます。
- スコアリング
- パスの概念をもって改めてページを評価するには、パスの中でどの位置に出現するかによって重みを変えることによってパスの中でも重要度を発見できます。
パス分析をするためのテーブル情報
パス分析をするにあたり、2つのテーブルを分析エンジン上に用意します。
- アクセスログ
- コンバージョンマスタ
アクセスログは基本KPI分析で使ったテーブルです。コンバージョンマスタは、アクセスログ内のパス項目の中でコンバージョンに当たるレコードを抽出したもので、後付けでいくらでも再定義することが可能です。ここでのコンバージョンとは、自社のWebサイトに来たユーザにたどり着かせたいページを指します。今回は、トレジャーデータのWebページを回遊しているユーザを対象としたログデータとするため、ユーザがサインアップをしたことをコンバージョンと呼びます。
下記のテーブルの例は、「サインアップ」「リソースダウンロード」「ラーニングページ」「製品紹介ページ」を擬似的にコンバージョンポイントとして定義したコンバージョンマスタになっています。また、コンバージョンのページの他に、コンバージョンごとにレベルの設定を行い、重要度の管理もしておきましょう。
cv_level | cv_path | description |
3 | /treasuredata.com/en/press-releases | プレスリリース参照 |
3 | /treasuredata.com/jp/press-releases | プレスリリース参照 |
3 | /treasuredata.com/en/success-stories | サクセスストーリ閲覧 |
3 | /treasuredata.com/jp/success-stories | サクセスストーリ閲覧 |
3 | /treasuredata.com/en/case-studies | ケーススタディ閲覧 |
3 | /treasuredata.com/jp/case-studies | ケーススタディ閲覧 |
4 | /treasuredata.com/en/whitepapers | ホワイトペーパーDL |
4 | /treasuredata.com/jp/whitepapers | ホワイトペーパーDL |
4 | /treasuredata.com/jp/webinars | webinar参加 |
5 | /treasuredata.com/en/signup | サインアップ |
5 | /treasuredata.com/jp/signup | サインアップ |
5 | /treasuredata.com/en/tryal | トライアル登録 |
5 | /treasuredata.com/jp/tryal | トライアル登録 |
これらのテーブルを見てわかる通り、応用KPI分析の一つであるパス分析を行うために必要な要素はたった2つの緩い条件のみとなります。
- ユーザIDやCookieなどの個人を分別できるローデータをもっていること
- ローデータの中でコンバージョンとなるIDやURLを時系列情報とともにもっていること
つまりここでのコンバージョンマスタは、コンバージョンの定義以外でもユーザ情報を持つ会員DBがあればそれでもいいですし、いろいろな社内の資産が使えます。それらをデータインポートで紹介したEmbulkを利用して分析エンジン上にインポートしましょう。
さて、今回は分析エンジン上でコンバージョンマスタを直接作成します。
コンバージョンパステーブルを作る
さきほどの2つのテーブルから、以下の手順でコンバージョンパステーブルを作成します。
- cookieでグルーピングして、時系列にソート
- コンバージョンページで区切ってコンバージョン1回目、2回目、…と設定
上記のコンバージョンパステーブルは、URLをノードにしたテーブルとなっていますが、ローデータに存在する項目なら何でもノードにすることが可能です。
全要素を結合したテーブルを作った方が便利ですが、今回は必要なカラムのみ抽出しています。また、分析エンジンとして利用しているMySQLではWindow関数のrow_number関数が使えないため、相関サブクエリで順番付けを行っています。
それではそのためにいくつかの中間テーブルを作っていきます。
コンバージョンの履歴テーブルの作成
まずは、コンバージョンをしたレコードの一覧を作成します。
次に、コンバージョンをした順番をつけます。
コンバージョンテーブルの作成
次に、アクセスログとコンバージョンの履歴を結合します。ここでは 2015-01-01 の1日を分析対象としています。
各コンバージョンと各ユーザを1つのパスとして、各レコードに順番をつけていきます。これによりコンバージョンパステーブルを作成することができます。
cookie | 44dc29b9-6b43-493b-a96d-fa7d04ebf292 | 44dc29b9-6b43-493b-a96d-fa7d04ebf292 | 44dc29b9-6b43-493b-a96d-fa7d04ebf292 |
cv_id | 1 | 1 | 1 |
cv_flag | 1 | 0 | 0 |
cv_level | 5 | 5 | 5 |
path | /treasuredata.com/jp/signup | /treasuredata.com/jp/home | /treasuredata.com/jp/products |
time | 2015-01-01 19:51:46 | 2015-01-01 19:51:37 | 2015-01-01 19:51:35 |
cv_time | 2015-01-01 19:51:46 | 2015-01-01 19:51:46 | 2015-01-01 19:51:46 |
node_id | 2826 | 2825 | 2824 |
非コンバージョンテーブルの作成
先ほどコンバージョンパスからは失われてしまった重要な情報があります。それは、コンバージョンに至らなかった非コンバージョンパスです。コンバージョンしなかったユーザの非コンバージョンパスは非常に巨大であったため、これまでのデータ分析では扱われずに捨てられてしまっていました。しかし、各々のパスのコンバージョン率を計算するためには、この非コンバージョンパスが不可欠となります。
まずは、非コンバージョンユーザのパスの一覧を作成します。
パスの一覧から時系列に順番付けをしていくことで完成です。
cookie | 0273fb37-6ce0-42c0-923a-519408914486 | 0273fb37-6ce0-42c0-923a-519408914486 | 0273fb37-6ce0-42c0-923a-519408914486 |
path | /treasuredata.com/jp/home | /treasuredata.com/jp/home | /treasuredata.com/jp/home |
time | 2015-01-01 19:51:02 | 2015-01-01 19:51:08 | 2015-01-01 19:51:14 |
node_id | 1 | 2 | 3 |
次回は、今回作ったコンバージョンテーブルを使って実際に応用KPI分析を行う方法を紹介します。