はじめに
リンクアンドモチベーションでエンジニアをやっております。間嶋です。
ストレッチクラウドというサービスをローンチして1年が経とうというタイミングで、お客さんの利用データが溜まってきたのでダッシュボードを作って可視化してみました。
今回は作るにあたっての流れや仕組みについて紹介します。
↓イメージこんなものを作りました。
なぜやりはじめたか
では早速作り方を…と行きたいところですが、なぜやり始めたかを簡単に触れておきたいと思います。目的としては2つあります。
1. ユーザーからのフィードバックを明確にするため
2. CSのオペレーション負荷を下げるため
それぞれ説明していきます。
1つ目は、サービスで新しくリリースした新機能がちゃんと使われてるのか、使われていないとしたらどこがブロックになっているのか を可視化することでファクトをもとにプロダクトの改善を図ることができます。
ダッシュボードを作成することにより、チーム全体が同じ視点を持ちやすくなります。また、プロダクトの利用において「風が吹けば桶屋が儲かる」というような表面的な因果関係ではなく、各機能の目的や狙いを明示してチーム内で共有することができるため副次的にやってみてよかったです。
2つ目は、カスタマーサクセスのオペレーション負荷低減です。
サービスをローンチしてから導入社数やユーザー数が増えている中で、手入力の管理帳票に頼らないソリューションに切り替えられました。
開発チーム外のメンバーもダッシュボードを参照するのでアクセシビリティを上げる設計としました。
どうやって実現したか
最終的な描画の部分は、見栄えとアクセシビリティとセキュリティ面を考慮してLooker Studioを採用しました。(GAuthのメリットがデカい)
描画の前段となるデータソースは、一旦スプレッドシートにローデータとして吐き出してLooker Studioから参照するようにしました。
DBデータを抜くための構成はこんな感じです。
ざっくりとした流れ。
- RDSのmask処理してスナップショット取得
- S3にexportしてデータ分析基盤と共有
- GASからAthenaのクエリを叩いてスプシにローデータを落とす
- Looker Studioからスプシをデータソースとして参照
RDSのmask処理してスナップショット取得
機密情報にあたるユーザー情報や個人の入力データは秘匿化しています。
分析する際の足枷になることもありますが、ダッシュボードをオープンにして社内の多くのメンバーが見て分析できるようにする方がメリットが大きいと判断したのでこのような形にしました。
一連の処理はCodePipelineに登録し、EventBridgeから定期実行させています。
S3にexportしてデータ分析基盤と共有
弊社ではデータ分析基盤を構築し、社内の様々なデータを集約し、アドホックなデータ分析やプロダクト改善のためのデータソースとして活用できるようにしています。(気になる方はこちらの記事)
ここの処理まで上記のCodePipelineに登録しています。
GASからAthenaのクエリを叩いてスプシにローデータを落とす
上記でデータ分析基盤に置いたデータをGoogle側から取得しています。Google App Scriptにてクエリを作成し、AthenaのAPIを叩いて返ってきたレスポンスをGoogleスプレッドシートに吐き出しています。
こちらもトリガー登録して定期実行しています。
Looker Studioからスプシをデータソースとして参照
先ほどのスプレッドシートをLooker Studioのデータソースに指定すればあとは描画するだけです。描画するだけといっても何をどのように表示するかはCS、PM、CREなどいろんなメンバーを巻き込みながら試行錯誤しましたが、一旦作ってみてどう?でフィードバックもらいながら進めるのが一番早いと思います。
DB以外のデータも同様にスプレッドシートにデータを吐き出しておけば、Looker Studio側でデータソースにして使えます。スプレッドシート以外にもGoogle AnalyticsやGCPをデータソースにできるのでデータを掛け合わせると分析できる幅が広がります。
ダッシュボードに表示しているもの
- 企業全体を俯瞰した利用データ
- 企業ごとの詳細情報
- リリースした機能ごとのアウトカム測定指標
今後はCSの運用に合わせてお客さんへアクションするタイミングが一目でわかるようにしたいですし、ヘルススコアのように利用状況が芳しくないお客さんに先回りしてアプローチできるようなモデルを載せられたらと思っています。
さいごに
いかがだったでしょうか。
分析したいデータは山ほどありますが、Googleアカウントさえあれば誰でも分析できるように民主化できたことが大きかったと思います。開発チームの中でもパッとお客さんの状況を確認したい時の役立てツールとしても活躍しています。
もしよかったら参考にしてみてください!