ビジネスによってリテンションの測り方が変わることを知らない人が多いので解説します

SaaSを始めとするクラウドサービスでは、継続してサービスを使ってもらうこと、言い換えればリテンションが重要です。

しかし、ビジネスによってはサブスク型ビジネスの毎月の課金ように、サービスの継続利用にあたって明確なイベントがないこともあります。

例えば、サービスの利用の度に費用が発生する従量課金型のビジネスや、広告で収益をあげるビジネスの場合、ユーザーのキャンセルといった明確なイベントがないため、顧客のリテンションをどのように測るかを決める必要があります。

そこで、自身のスタートアップをAirbnbに売却後、Airbnbのグロースを担当し、現在は米国のスタートアップ界隈で最も有名なニュースレター「Lenny’s Newsletter」を運営するLenny Rachitskyがビジネスのタイプに合わせたリテンションの測り方をまとめていたので、こちらに要訳として紹介します。

- How to measure cohort retention - [リンク](https://www.lennysnewsletter.com/p/measuring-cohort-retention)

---

ビジネスの話をするとき、多くの人がリテンションの話をしていますが、実際のリテンションの測り方については曖昧な話も多く、特にコホート（訳者注:サービスの利用開始時期で顧客を分けたグループ）のリテンションの話になると、正確かつ参考になるガイドはありません。

リテンションがビジネスの成長にとって非常に重要であることや、リテンションの測り方を間違えると多くのコストがかかることを考えると、これは大きな問題です。

そこで、この投稿ではリテンションの測り方やレポート作成の際のコツを紹介します。

# リテンションの測り方

初めに、リテンションは**長期にわたってユーザーにサービスを継続してもらえるプロダクトの力を測る指標**です。

また、リテンションの定義は以下のように、提供するビジネスによって異なります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/40f970e9-6fdf-80d6-7c0f-f48661b84d1a.png)

そこで、リテンションを測るための手順をステップごとに紹介します。

# 1. 「アクティブ」を定義する

上記の表のように、リテンションを測るときは、ほとんどの場合、「アクティブユーザー」に注目していますが、「アクティブ」とはどのような状態を指しているのでしょうか。

例えば、以下は「アクティブ」を定義するイベントの例ですが、それぞれに欠点や制約があります。

1. **訪問（ウェブサイト）:** 範囲が広すぎます。未認証のユーザーや未登録のユーザーが含まれるため、ユーザー数を過大にカウントしてしまいます。
2. **セッションの開始**: 未認証のユーザーが含まれることで、ユーザー数を過大にカウントする可能性があります。また、アプリのバックグラウンド更新や通知など、カウントすべきでないアクティビティが含まれるので、「セッションを開始した」と定義する時間の長さを製品に合わせて決める必要があります。
3. **ログインまたはアプリの起動:** 他のイベントと同様に、新規ユーザーによる初回起動や未認証のユーザーなどを除外する方法が必要です。
4. **ビュー（ウェブサイトやアプリの閲覧）:** 多くの場合、すべてのユーザー・タイプ （休眠ユーザー、失効ユーザー、新規ユーザー）をひとまとめにしてしまうため、アクティブなユーザー数を過大にカウントしてしまいます。
5. **主要なユーザーアクション**（ 特定コンテンツの閲覧、検索、エクササイズの記録、など）: 主要なアクションを取っていないものの、プロダクトを使い続けているアクティブユーザーを見逃す可能性があります。

ほとんどの企業は、「ログイン」または「アプリの起動」を、「アクティブユーザー」と定義するためのイベントとして利用しますが、私は**正確にリテンションを計測できる、「主要なユーザーアクション」を利用することをお勧めします。**

なお、以下は、様々なサービスの主要なユーザーアクションを参考例としてまとめたものです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/14e64646-a38b-ddcc-6af7-fc3483e5c523.png)


このアプローチには以下の長所があります。

1. ユーザーが最も頻繁に行う主要なアクションのみを使って「アクティブ」であることを定義するため、訪問、ビュー、ログインなどに含まれる「ノイズ」を無視できます。
2. 上記のように定義することで、本当にアクティブなユーザーの行動をモニター・検証できるようになります。
3. アプリの起動やWebサイトへの訪問と異なり、プラットフォームを越えて計測できるので、レポーティングやモニタリングがしやすくなります。

また、ビジネスモデルに関係なく、主要なユーザーアクションを使ってリテンションだけでなく、DAU、WAU、MAU、[DAU/MAU 比率](https://exploratory.io/note/BWz1Bar4JF/SaaS-3-Part-1-DAU-MAU-NgT7dry1dB?utm_campaign=cohort-retention&utm_medium=blog&utm_source=qiita)などの指標をモニターすることもお勧めします。 

# 2. 「ユーザー」と「顧客」を区別する

「アクティブ」の定義を決めたら、次は、アクティブユーザーを「無料ユーザー」と「有料ユーザー」に分け、これらのグループごとにリテンションを計測します。

このとき、「プロダクトやサービスにお金を払っている個人またはグループ」が「顧客」と定義される一方で、「プロダクトやサービスを利用する人」は「ユーザー」として定義されます。

例えば、サブスクリプション型のプロダクトでは、「一顧客」に複数人の「ユーザー」が紐付いていることがあります。そのため、リテンションを計測するときの分子は、ビジネスモデルに応じて以下のように厳密には定義されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/83bd122b-af8e-b0ef-8ce9-8ffa49577bf2.png)

アクティブな顧客やユーザーが誰か（例えば、運動の結果を記録した有料顧客や、記事を読んだ無料ユーザー）がわかると、彼らのリテンションを測ることができるようになるわけです。

SaaS企業がよく犯す間違いは、無料ユーザーと有料顧客が混在する「混合型」のリテンションを報告してしまうことです。なぜなら、製品にお金を払っている顧客は、無料ユーザーよりも頻繁にサービスやプロダクトを使用している可能性が高いからです。

両者を同じように扱うと、無料ユーザーの実態が隠れてしまいます。

# 3. リテンションのタイプ決める

次に、リテンションを測るときに、以下のどちらのアプローチを採用するかを決めます。

1. X日のリテンション
2. 無制限のリテンション

どちらを採用するかによって、その結果は大きく変わります。



## 1.X日のリテンション 

X日 （N日または 「bounded」とも呼ばれます）のリテンション は、「特定の日（例: 3日後）」にプロダクトに戻ってきたユーザーの割合を表します。例えば、「14 日目」にプロダクトに戻ったアクティブユーザーの割合は次の通りです。

![image-20221224195137398.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/27c83a5b-2f3e-98ae-b1ca-398ec7b41202.png)


上記の例では、1日目（ダウンロードから24時間後）にプロダクトに戻ってきたユーザーの割合は21.06%で、2日目にプロダクトに戻ってくるユーザーの割合は、16.82%になっています。

なお、この計測方法を採用した場合、リテンション率は基本的に低くなります。

## 2.無制限のリテンション

無制限のリテンションでは、 **特定の日「以降」** にどの程度のユーザーが戻ってきたかを計算します。例えば、プロダクトを使い初めてから14 日後以降 (必ずしも 14 日目とは限りません) にプロダクトを利用しているユーザーの割合が計算されるわけです。

リテンションと顧客のキャンセル（チャーン）を一致させたければ、こちらの計算方法を採用することになります。

以下のチャートはX日間のリテンションと無制限のリテンションを可視化したチャートですが、どちらのアプローチを採用するのがいいでしょうか。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/90a07d58-db59-1567-a659-9633c172b352.png)

リテンションと顧客のキャンセル（チャーン）が連動していて、レポートの信憑性が高まる点において、私のお気に入りは無制限のリテンションを使った計測方法ですが、分析の目的とユーザーのプロダクトの利用パターンに合わせた計測方法を選択する必要があります。

 例えば、

- **ユーザーがプロダクトを定期的に使用する場合**（例: 毎朝の食事の記録、運動の記録、ポッドキャストの視聴など）は、X日のリテンションを使用します。
- また、モニターしている他の**KPI が特定の時間範囲に紐付く場合、 （例: 30 日間の試用数、28 日間のアクティブユーザー数、7 日間の再購読者数）** 、X日のリテンションを使って、設定した期間内にプロダクトに戻ってくるユーザーのみをカウントする必要があります。
- 逆に**ユーザーが日/週/月などの単位でプロダクトに戻ってくることを期待しておらず**、利用パターンが複雑な場合は、制限なしの計測方法を利用します。  
- さらにX日のリテンションは、オンボーディングやマーケティング・キャンペーンの測定など、**短期的な分析に適しています。**
- 上記に加えて、無制限のリテンションは、ユーザーをプロダクトやサービスの継続期間 （6ヶ月、1年、2年）に分けて計測することで、 **長期的なユーザーのリテンションの測定に役立ちます。**

なお、私の経験上、SaaSプロダクトの場合、特定の時間の制限（例:有料サブスクリプションの長さ、試用期間など）を受けるので、X日のリテンションを利用することをお薦めします。

一方で、B2CまたはSNS関連のビジネスに携わっている場合は、より柔軟な無制限のリテンションを利用することをお薦めします。

# 4. データの取得

最終的には以下のようなデータを作ることになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/d7607184-2369-804b-6947-dbdc8e3fc1c7.png)

また、もし、[コホート分析](https://exploratory.io/note/exploratory/SaaS-Trial-Tour-4-uYi6eyt0?utm_campaign=cohort-retention&utm_medium=blog&utm_source=qiita)（ユーザーを、プロダクトやサービスの継続期間でグループに分けリテンション可視化する分析）を実施したいようであれば、以下のようなデータを用意することになります。（訳者注: UIツールの[Epxploratory](https://exploratory.io/?utm_campaign=cohort-retention&utm_medium=blog&utm_source=qiita)を使うと、こういった集計データを用意することなく、コホート分析を実行することが可能です）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/00cafd68-b5cf-ff56-9508-d344d90de6e3.png)

# 5. リテンションの可視化

採用するリテンションのタイプを決めてデータを取得したらリテンションを可視化します。

ユーザーを利用開始日あるいは利用期間（日、月、年など）でグループに分け、さらにユーザーをセグメント（例: 試用者、再購読者、パワー ユーザーなど）に分けてリテンションを可視化する[コホート分析](https://exploratory.io/note/BWz1Bar4JF/3-tNW7Mnd2qK?utm_campaign=cohort-retention&utm_medium=blog&utm_source=qiita)は強力です。

また、リテンションの可視化では、以下のようなラインチャートがよく利用されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/23e71447-2394-69e9-ce3a-35f7a3c86cfc.png)

ダッシュボードを使ってリテンションをモニターする場合、シンプルなナンバーを用意することもお薦めします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/677bde2d-91e6-9338-4454-be03edb68502.png)

さらに、リテンションの推移を報告するときに最もよく利用される方法の1つに、以下のようなテーブルを使った形式があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/226318/fc88f75d-27e7-f3ee-1d55-25bcfbdf49bb.png)

上記のチャートでは、週ごとの新規顧客数と、その後の週ごとにプロダクトやサービスの利用を継続した、言い換えれば、リテンションできている顧客の割合を表しています。

このチャートは「新規顧客」のみにデータをフィルターした結果ですが、アクティブユーザー、解約したユーザー、非アクティブなユーザー、再度サービスの利用を開始したユーザーごとにリテンションをレポートする方法もあります。

このようにセグメントに分けて、リテンションをモニターすると、セグメントごとに、リテンションが大きく変わることが予想され、どういった顧客がサービスやプロダクトを使い続けてくれるのかを理解できます。

そのため、可能であれば、ユーザーを常に異なる行動セグメントに分ける必要があります。

よりデータを活用できている企業では、プロダクトチームは特定のユーザーセグメントのみに刺さる新機能を見つけ、テストし、リリースするわけです。

# まとめ

- リテンションは、**長期にわたってユーザーにサービスを継続してもらえるプロダクトの力を測る指標**です。
- ビジネスモデルや業態によって、ユーザーは「顧客」、「無料ユーザー」、「購買を伴う無料ユーザー」などに分けられるため、それに応じて、リテンションの計算方法や定義は変わります。
- 「アクティブ」と定義できるイベントは複数ありますが、多くの場合、プラットフォームを超えて一貫性があり、明瞭なイベントを選ぶ必要があります。
- どのようなタイプのプロダクトなのかによって、「X日のリテンション」を採用するか、あるいは「無制限のリテンション」を採用するかを決める必要があります。
- ユーザーをコホートに分けて、リテンションを可視化することが、ユーザーの行動パターンを理解するためのベストプラクティスです。

---

以上、要約終わり。

# あとがき

今回はビジネスタイプに合わせた、リテンションの計測方法を紹介しました。

記事の中で紹介されていたコホート分析はリテンションが改善しているかを測れる有益な分析方法ですが、いざ自分達の持っているサービスやプロダクトの利用ログなどを使ってコホート分析をしようとすると、コードを書いたり複雑なデータの加工が必要になることがあります。

そこで、例えば、データの加工、可視化、分析、レポーティングのためのUIツールの[Epxploratory](https://exploratory.io/?utm_campaign=cohort-retention&utm_medium=blog&utm_source=qiita)を使うと、数クリックで簡単にコホート分析ができるだけでなく、記事の中で触れられていたセグメント別のコホート分析も簡単に実行できます。

ご自身のデータを使って、これらのチャートを作成したり、データ分析をしたい方は、下記のリンクより無料トライアルが可能ですので、ぜひお試しください！

https://exploratory.io/?utm_campaign=cohort-retention&utm_medium=blog&utm_source=qiita



# サブスクデータ分析: トライアルツアー

サブスクリプション型のビジネスに特有な指標の作成・可視化や分析の手法を、コードを書くことなく、ハンズオンを通して短時間で学んでいただけるコンテンツをまとめています。

https://exploratory.io/note/exploratory/nLD7eCO9?utm_campaign=cohort-retention&utm_medium=blog&utm_source=qiita

サブスクリプション型のビジネスのご担当者様は、ぜひご覧ください！

# サブスク型ビジネスデータ分析のためのページ

SaaSなどを始めとするサブスクリプション型ビジネスにとって重要なKPI、データの加工、可視化、統計・機械学習といった様々なデータサイエンスの手法やシリコンバレーなどでの事例を1つのページにまとめて公開しています。

![img](https://exploratory.io/note/exploratory/SaaS-1-GtE6edw7/note_content/libs/exploratory/images/p83.png)

こちらも、ぜひご覧ください！

https://exploratory.io/subscription-data-analysis?utm_campaign=cohort-retention&utm_medium=blog&utm_source=qiita