SaaSアナリティクス：エンゲージメントKPI - DAU / MAU 比率の計算と可視化

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/6353bd9c-ae37-4d1c-152c-8cfb050ad4ce.png)

# SaaSアナリティクス：エンゲージメントKPI - DAU / MAU 比率の計算と可視化

SaaS/サブスクリプション型のビジネスの成長のためにはリテンション率を上げる、そしてチャーン率を下げることが重要になりますが、そのためには顧客がいかにプロダクトを頻繁に使っているかを測る指標であるエンゲージメントを上げる必要があります。

このエンゲージメントの指標の出し方はそれぞれの企業によって異なりますが、そのうちの1つにFacebookが使い始めたことで有名になった、DAU/MAU 比率という指標があり、現在も多くの企業で使われています。

今回はこちらの指標を、その計算の仕方と可視化の仕方と一緒に紹介します。

# DAU / MAU 比率

DAUとはDaily Active Userの略で、1日単位で何人のユーザーがプロダクトを使ったかという指標です。

MAUはMonthly Active Userの略で、1ヶ月単位で何人のユーザーがプロダクトを使ったかという指標です。

DAU / MAU 比率は、このDAUをMAUで割ったものです。

例えばMAUが100人で、そのうちの全員が毎日プロダクトを使っていたら、DAU / MAU 比率は1、つまり100%になります。逆にみんなが1ヶ月に1回しか使わないようなプロダクト（例えば、月末の給料の支払い処理のサービスなど）だとほぼ毎日のDAU / MAU 比率はゼロに近くなっていきます。

そこで、このDAU / MAU 比率を見ることで、どれだけ多くの人が頻繁にプロダクトを使っているのかが分かるのです。もちろん頻繁に使われているプロダクトのほうが、この先も長く使われるだろうと推測することができます。

# 準備

今回は[Exploratory](https://ja.exploratory.io/?utm_campaign=dau_mau&utm_medium=blog&utm_source=qiita)を使って、簡単にDAU / MAU 比率を作成・モニターする方法を見ていきます。Exploratoryは30日間フル機能の試用ができますので興味があれば、お試しください！

Exploratory無料トライアル - [リンク](https://exploratory.io/pricing/?utm_campaign=dau_mau&utm_medium=blog&utm_source=qiita)

# 使用データ概要

では早速、MAU / DAU比率を計算していきましょう。今回は以下のような1行が時間・顧客ごとのサービスの利用ログを表すデータを使っていきます。

![p2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/27c2ba59-882c-4669-d336-61aa98e1b912.png)

データは[こちら](https://exploratory.io/data/BWz1Bar4JF/Access-Log-aGy8rEZ7Cq?utm_campaign=dau_mau&utm_medium=blog&utm_source=qiita)からダウンロードできます。

**データ項目**

-  timestamp（ユーザーがサービスにアクセスした日時）
-  user_id（ユーザーごとに一意なID）

# 計算の手順

以下の手順でサービス・ログを集計します。

1. 元データからDAUを集計する
2. 元データからブランチを作成してMAUを集計する
3. timestamp_month列を作る
4. MAUを元データに結合する
5. DAU / MAU 比率を計算する

![p3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/705b2b8b-e43c-b82b-78eb-da80d54123de.png)

# DAUを計算する

まずはDAUから計算していきます。「user_id」の列ヘッダーメニューからユーザー数を集計できるように、「一意な値の数（unique）」を選択します。

![p4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/c31e2e29-cf08-af64-3b11-a3fee6bb5533.png)

集計（Summarize）ダイアログが表示されるので、グループ化に「timestamp」列を選択します。

![p5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/a3d98c64-d3b9-512e-3e3d-61e0219a632b.png)

この時、スケールに「年に切捨て」が設定されているので、このままだと1年単位で何人のユーザーがプロダクトを使ったかが集計されてしまいます。

![p6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/57709c3f-525d-fe14-7500-4c4fd27f278b.png)

今は1日単位で何人のユーザーがプロダクトを使ったか、つまりはDAUを集計したいので、「グループ化」のスケールで「日に切捨て」を選択します。

![p7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/812b2c82-a4ee-2c60-fe6c-526ab9e29e87.png)

DAUが集計できました。

![p8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/e112068d-c6f2-4c38-85e1-d879ce86e5b7.png)

列名が「user_id」のままだと、ややこしいので列名を変更しましょう。列ヘッダーメニューから「列名を変更」を選択します。

![p9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/d9957c5b-eb8f-ec64-57d9-32b9e1b62c8e.png)

「user_id」を「DAU」に変更します。

![p10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/e1162a3f-3f10-e63b-58b1-50ecc866c561.png)

これで分かりやすくなりました。

![p11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/367fdaa5-ed65-5d6d-d2f9-82f8e7226faa.png)

# MAUを計算する

次はMAUを集計します。元のデータフレームをDAUの集計用に利用したことで、MAUを集計するために必要な「user_id」が消えてしまいました。

![p12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/674fce1b-43db-e3da-826e-a28569a4d1fe.png)

そこで「ブランチ」機能を利用してMAUを計算します。

![p13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/e7a1a5b6-43ef-5de4-3b15-8caa6a4be6e9.png)

最初のステップを選択し、「ブランチの作成」アイコンをクリックして新しいブランチを作成します。

![p14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/5e81ef09-15c9-bd1f-a066-39ad6d90f54d.png)

「MAU」というブランチ名にします。

![p15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/88c780fb-34f6-ac19-13c9-ce92c64fc950.png)

ブランチが作成され、元のデータフレームの最初のステップと同じ内容のデータフレームが表示されました。

![p16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/c525208e-306a-05fb-c8fa-0b41bd440128.png)

それではMAUを集計していきましょう。DAUを集計したときと同様に「user_id」の列ヘッダーメニューから「一意な値の数（unique）」を選択します。

![p17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/cb7d9ee4-b8eb-3a1c-46c2-1384689c095d.png)

今回は1ヶ月単位でのユーザーの数を集計をしたいので、「グループ化」に「timestamp」を選択し、スケールに「月に切り捨て」を選択します。

![p18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/32d7a06b-e7ea-cfd3-883b-0a01a278f7cf.png)

MAUが集計できました。ただ列名が「user_id」のままだと、ややこしいので列名を変更しましょう。列ヘッダーメニューから「列名を変更」を選択します。

![p19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/9159ee23-de54-ee4e-3331-8191e3050612.png)

「user_id」を「MAU」に変更します。

![p20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/f6b1da6f-abbd-a7a8-bc8e-180356329f3b.png)

これで分かりやすくなりました。

![p21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/08f419a7-5ee0-7da4-d5b1-e17c08ff120b.png)

# 「timestamp_month」列をDAUのデータフレームに作る

ただ今はDAUとMAUが別のデータフレームで集計されているので、DAU / MAU 比率が計算できるように1つのデータフレームにDAUとMAUをまとめる必要があります。

![p22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/d3b1f9b1-ea33-7330-b170-20b0cb0a91d0.png)

そこで2つのデータフレームがJoin（結合）できるようにDAUのデータフレームに「月」で切り捨てされた日付列を作ります。

![p23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/8ef98334-7ed3-8c4f-8612-5e4deed6e7f3.png)

まずは「DAU」を集計したデータフレームに移動します。

![p24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/fc57cccd-ed65-4b0a-2923-f1f085ff6301.png)

続いて最新のステップに移動します。

![p25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/ef56e2af-9216-373c-4d45-100295eef1ee.png)

最新のステップに移動したら、「timestamp」の列ヘッダーメニューから「丸め処理」 -> 「日付の切り捨て」 -> 「月」を選択します。

![p26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/a8ff903d-1491-23cb-849d-d48b0036190d.png)

計算を作成（Mutate）ダイアログが表示されるので「新しく列を作成」を選択し、列名を「timestamp_month」として、計算を実行します。

![p27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/a3801dce-e78a-feea-70b1-f4f5a33e0128.png)

これで「MAU」のデータフレームと結合可能な「キー」列が追加できました。

![p28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/1acf0dea-0b0a-3bfa-a85a-0eaf6a0a2b35.png)

# DAUのデータフレームにMAUを結合する

いよいよ「DAU」のデータフレームに「MAU」のデータフレームを結合していきます。

「timestamp_month」の列ヘッダーメニューから「結合（列を追加する / Join）…」を選択します。

![p29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/069fdd71-f299-f843-90b3-9a4dd029310e.png)

結合（列を追加する / Join ）ダイアログが表示されるので、「結合先データフレーム」に「MAU」、「キー列」に「timestamp_mon」を選択し、実行します。

![p30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/f4696e0e-acce-a7b8-c482-6d331998a39b.png)

MAUが追加されました。

![p31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/c0e08df4-aa51-cf3a-5d84-0f608a7f8183.png)

# DAU / MAU 比率を計算する

いよいよDAU / MAU 比率の計算です。「DAU」の列ヘッダーメニューから「計算を作成（Mutate）」を選択します。

![p32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/ad0afd57-cdbc-5304-9e3b-b4bf9819b4cc.png)

計算を作成（Mutate）のダイアログが表示されるので、「新しく列を作成」を選択、列名を「Engagement」とし、計算エディタに以下のように入力し、「DAU」を「MAU」で割ります。

`DAU / MAU`

![p33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/b3e597b4-8cbb-bd03-9ad8-06b13236a1f1.png)

Engagement（DAU / MAU 比率）が集計できました。

![p34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/f9062886-26d0-cab8-7990-d79d3b0bc48e.png)

# DAU / MAU 比率を可視化する

Engagement（DAU / MAU 比率）が求められたので、チャート・ビューに移動して可視化していきます。

チャートのタイプで「ライン」を選択し、X軸に「timestamp_day」、Y軸に「Engagement」を選択します。

![p35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/66d11031-65e2-0b80-d4aa-3fd9f31d9664.png)

続いてX軸に「timestamp_day」のスケールを「日に切り捨て」に変更します。

![p36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/8bf33d7e-2023-5ef2-d700-917ff7bd847a.png)

これで日毎のDAU / MAU比率が可視化されました。

![p37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/89318964-b932-3e06-6229-596398194630.png)

# ダッシュボードでモニターする

さらにこういった定点観測するようなチャートはダッシュボードにまとめて、スケジュール機能を使って更新をしていくと良いかと思います。

![p38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/b58e6c60-b198-dac7-aadb-8291a41b292e.png)

* Exploratoryダッシュボードの紹介 - [Link](https://exploratory.io/note/2ac8ae888097/2211291771961907?utm_campaign=dau_mau&utm_medium=blog&utm_source=qiita)

---

# 自分のデータで実際に試してみる

[Exploratory](https://ja.exploratory.io?utm_campaign=dau_mau&utm_medium=blog&utm_source=exploratory)では30日間の無料トライアルができます。実際に自分達のデータを使って試してみたい方は下記より無料トライアルをご利用ください！

![p39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/8bbd735d-cbd4-fecd-9465-303f66d05753.png)

なおExploraotryではSaaSビジネスに役立つ情報を他にもまとめています。ご興味ある方は是非ご参考ください。

![p40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/af9de0ab-e20a-5ba7-ccc6-e05c47302960.png)

詳細は[こちら](https://exploratory.io/tag/?q=tag:saas&utm_campaign=dau_mau&utm_medium=blog&utm_source=qiita)のページにあります。


---

# データサイエンス・ブートキャンプ、11月開催！

データサイエンス、データ分析の手法を一から体系的に学び、現場で使える知識とスキルを身につけていただくためのトレーニング、[データサイエンス・ブートキャンプ](https://ja.exploratory.io/training-jp?utm_campaign=dau_mau&utm_medium=blog&utm_source=qiita)を11月に開催します。

データを使ってビジネスを成長させたい、または問題を解決したいという方は、ぜひこの機会に参加をご検討ください！

詳細は[こちら](https://ja.exploratory.io/training-jp?utm_campaign=dau_mau&utm_medium=blog&utm_source=qiita)のページにあります。