DMMグループの一番深くておもしろいトコロ。
テクノロジー

アクセス解析ツールで収集したデータをQuickSightで見る

DMMグループの一番深くておもしろいトコロ。

アクセス解析ツールで見えないもの

合同会社EXNOAのプレイヤーPF部の知久です。

本稿では私のチームで行っているユーザ行動解析の一部を紹介したいと思います。

 

ユーザの行動を解析する際には、ユーザがWebサイトやアプリ上でどのような行動をとっているのかを知る必要があります。

その際に利用するのがアクセス解析ツールで、非常に有名な「Google Analytics」やオープンソースの「matomo」等があります。

 

アクセス解析ツールは、Webサイトなどのサービスアプリケーションに計測ポイントを設置し、その計測ポイントで発生するイベントを収集して表示もできるツールです。

例えばアクセス解析ツールの計測ポイントが設置されたWebサイトでは、サイト内のボタンを押したりページを遷移したりするとそれが統計情報として保存され、アクセス解析ツールの管理画面上でその動向を見ることができます。

matomoのイベントグラフ表示

 

 

Google Analyticsのイベントグラフ表示

 

アクセス解析ツールは非常に便利で、ユーザが「いつ」「何を」したかを統計的に見ることができます。

弊社のサイトもこれらの情報を、ユーザが活発にサイトを利用している時間帯の調査や、サイトの構成などを変更したときのユーザの挙動の変化を追うことに利用しています。

これだけでもとても便利なのですが、実際にサービスを提供していると「この機能を使ってるユーザ層は偏ってるんじゃないだろうか?」とか、「どういうユーザ層がバナーをクリックしているのか」などを知りたくなってきます。つまり「いつ」「何を」だけでなく、「誰が」についてもより高い解像度で見たくなってくるのです。

アクセス解析ツールは群体としてのユーザの統計的な情報、例えばWebサイト上でどのような行動をとるユーザが多いかといったフローやサイトを改善したときの変化は分かるのですが、その行動を取ったユーザの詳細な属性は分かりません。また、アクセス解析ツールの管理画面では基本的に自身が収集した情報しかグラフ化して表示してくれません。

ユーザの行動分析をする際に視覚化することで、分かりやすくユーザの属性(=「誰が」)も示すことができれば、サービス向上のための改善提案などに役立ちます。

情報収集と視覚化の機能を分割する

私のチームでは後述する理由で Google Analytics と同種のアクセス解析ツール「matomo」を利用しています。

matomoはオープンソースのアクセス解析用サーバアプリケーションです。Google Analyticsの方が有名なので、それとほぼ同等の機能を持つサーバアプリケーションと捉えていただいていいと思います。

https://matomo.org/

私のチームでのmatomoの運用方法は、弊社のサーバ上にmatomoをインストールし、データベースも自前のものを用意して運用しています(matomoにもGoogle Analyticsと同じSaaS方式の使い方もありますが利用していません)。

Google Analyticsは個人情報と紐づけることができる情報の送信を厳しく制限しており、弊社としても他社のSaaSにユーザ個人を特定するような情報を送信できないため、というのが理由の一つです。

matomoならば、弊社で用意したサーバとデータベースで構成されているため、利用規約で明示している範囲で自社の持っているユーザの属性と紐づけて分析することが可能です。matomoの公式サイトで述べられている通り、全ての情報を社内で持てるため安心ということです。

matomo以外のデータソースとして、弊社はゲームプラットフォームの会社なので、ユーザの属性としては利用しているPCのスペック・課金額・ゲームのログイン履歴・プレイ履歴等をデータベース上に持っています。

これをmatomoで収集したデータと合わせると、「ゲームAを利用するユーザはゲームCを、ゲームBを利用するユーザはゲームDを遊ぶことが多い」「PCスペックが低いユーザはブラウザゲーム、高いユーザはインストール型クライアントゲームで遊ぶ」といったデータ同士による相関が見えてくることがあります。つまり、ユーザの行動分析のための情報のうち「誰が」の解像度を上げることができるようになるのです。

なお、本当にセンシティブな個人情報にあたるデータ(メールアドレス・カード情報等)は開発や分析の担当者では直接扱えないようになっているため、チームの幅広いメンバーが安心してデータを分析し、改善案などを提案できるようになっています。

実際、私の所属チームではデザイナーが自らデータ分析して、新規のインターフェースの改善案を提案したりすることがあります。

 

これで自社のデータベースにアクセス解析ツールやユーザ属性の情報が集まるようになりました。しかし、matomoには存在しないデータソースも扱うようになるため、matomoのアプリ単体では視覚化できません。

そこで、視覚化にはQuickSightという別のツールを使っています。

QuickSight とはデータソースから取ってきたデータをグラフィカルに表現することに特化したビジネスインテリジェンスツールです。このサービスを利用してグラフの表現力を向上したり、他のDBとの連携を図っていきます。

 

matomoからQuickSightへのデータの流れを大雑把に示すと以下のようになります。

matomoが持つ集計情報と既存のサービスが持っているユーザ属性を紐づけてQuickSightで利用できるようにしています。

AWSのマネージドサービスであるQuick Sightはデータセット(DBなどから持ってきたデータ)に対して軸を設定するだけでグラフ化してくれるデータ可視化ツールです。

詳しくは公式サイトにありますので、知りたい方はご参照ください。

このQuick Sightで利用できるデータソースとして、matomoのデータベースと他のサービスで利用しているサービス用のデータベース等を登録します。

Quick Sightのデータセットの設定画面で、登録したデータベースのテーブル同士を結合することができます。

そのため、ユーザIDなどのような共通の項目を持つテーブル同士で結合させて、他サービスで持っているユーザ属性も利用した分析が可能になります。

収集したデータと視覚化の実践

下図はQuickSightのコンソールから撮った、複数のテーブルを結合してデータセットとして設定している様子です。

結合するカラムは自由に選べるため、物理的に別である通常のSQLでJOINできないテーブル同士であっても結合することができます。

 

上記の設定を行って作ったデータが下記になります。

これはあるサービスの連続ログイン日数のデータとmatomoが収集している滞在時間(total_visit_time)をQuickSightのヒートマップと垂直積み上げ棒グラフで表現したものです。

同一のデータから2つのグラフを作っています。QuickSightではデータセットが揃っていれば表現方法を簡単に変更することができ、matomoのコンソールでは難しいグラフの細かい調整やフィルタリングも自由に行うことができます。

 

ログイン日数と滞在時間

ヒートマップ

垂直積み上げ棒グラフ

 

どちらの方が見やすいか、というのは人によるのですが、このデータから主張したいことによって表示を使い分けるのが良いかと思います。

例えばこれは著者の主観ですが、サービスの利用初日は10分以上利用しているもののその後はほぼ1分以内にサービス利用が完了するので「初回のサービス利用までのコストが高い」という主張をするのであれば初日の10分以上の濃色が目立っているヒートマップを使い、毎日10分以上利用するユーザは最初の2週間を過ぎればその後は絶対数があまり減らないことから「ヘビーユーザは2週間でサービス利用が習慣化する」という主張をするには垂直積み上げ棒グラフが良いと思います。

このように表現方法を選んだりフィルタ等を入れることで調整された可視化表現を利用することにより、アクセス解析ツール単体以上の表現力で見せることができます。

 

もう一件サンプルとなるデータ分析の実践例を紹介します。

今回はWebサイト等でよくある、バナー広告をクリックしたユーザをmatomoで収集し、それとサービスで取得し別のDBに保存されているログイン情報とゲームの起動情報を紐づけてみようと思います。

バナーの内容はゲームのプラットフォームなので特定のゲームタイトルの広告です。

データセットとしては下記のように複数のデータソースをmatomoで取ったレコードのユーザIDと紐づけています。matomoのデータはSQLクエリによってバナーをクリックしたユーザのみに絞り込まれています。

matomo単体でもどのバナーがクリックされた回数が多いか、その後ユーザの行動はどうなったかを追えますが、さらにログイン情報やゲームの起動情報を追加することによって、より多方向からの分析が可能になります。

特定の期間にバナーをクリックしたユーザがどのようなゲームで遊んでいるかを上記のデータセット(matomoとDBを結合した集合)から可視化したグラフが下記になります。

バナーをクリックしたユーザの中から、ログイン履歴によるサービスの継続利用期間で円グループを分け、ユーザのゲーム起動履歴を使ってプレイしたゲームタイトルの起動回数の比率で円グラフにしました。

 

ゲームタイトルは実際は100以上あるのですが、ここでは分かりやすいように上位数個に絞っています。

円グラフを見るとサービスログイン日数10日以内から60日以内までのゲームの起動回数の比率が明らかに変わっていっているのが分かります。

ログイン日数が10日以内のユーザはかなりゲームが分散しているのに対し、30日以内・60日以内の円グラフでは特定のゲームの比率(図中のピンクや青)が10日以内の時の円グラフに対して大幅に増えています。

弊社のサイトのバナーの内容はゲームの広告なので、バナーをクリックするということは何らかのゲームに興味を示しているという指標になります。

 

このことから

  • ログイン日数が少ないユーザはバナーを見て新しく遊ぶゲームを探している
  • 時間と共に比率が上がっていっているゲームはユーザは別のゲームに興味を示し始めている
  • 時間と共に比率が下がっていっているゲームはユーザは別のゲームに興味を示さない

などの仮説を立てることができると思います。

(それが本当であるかどうかは、さらに計測地点を増やしたりデータを見て検証しなければなりません)

 

このように、アクセス解析にサービスが持っているデータも合わせて調査し視覚化することによって、容易にユーザの属性や行動履歴による傾向も調査できるようになりました。

このような複数データソースによる可視化はアクセス解析ツール単体ではほとんど実現することはできません。

 

複数のデータソースからデータを集めるといえばBig QueryAthenaなどのデータウェアハウスが有名です。

Quick Sightはそういったデータウェアハウスからもデータを集めてグラフ表示できるため、先ほど紹介したようなデータセットで複数のデータソースからのデータを合体・グラフ化することが可能です。

最初のデータセットの登録の手間はありますが、一度登録してしまえばグラフ化はコンソール画面で然るべき項目を選択していくだけです。

このようにデータを収集するサービスと表示・分析するサービスを分けることで、アクセス解析ツールだけではできない細かな分析が可能になり、さらにデータベースの内部データの意味を知らない専門外のメンバーであってもサービスの状況を知ることができ、私のチームでは仮説・検証作業に大いに役立っています。

まとめ

今回やったことは以下の通りになります。

  • ユーザ行動分析に必要なデータを自分のチームで収集
  • アクセス解析ツールは情報収集のツール割り切り、可視化のツールと分業させる
  • アクセス解析ツールのDBと他のサービスのDBと連結させる
  • 自分たちに必要な各種数値指標を可視化

 

前述のように「アクセス解析ツールで収集した情報を可視化ツールを利用して表示する」という役割分担は、昨今の流行であるAIを利用したビジネスインテリジェンスツールの登場などで一層重要になってくるかと思います。一層の分業が進んで収集・分析・可視化で別のツールを使うことが主流になるかもしれません。

その時のためにも自分たちの持っているデータを理解し、他の情報と紐づけし、上手く可視化するというスキルは、サービスの質を上げるための仮説・検証作業などにおいて非常に重要になってくると思われます。

本稿がサービスの仮説・検証の能力を充実させたいという人の手助けになれば幸いです。

シェア

一緒に働く仲間を募集しています!

関連する記事

関連する求人

関連するサービス