SaaS向けイベント追跡プラン:名称、プロパティ、導入初期の10ダッシュボード
このSaaS向けイベント追跡プランを使って、イベントとプロパティを一貫して命名し、アクティベーションとリテンションに必要な初期の10ダッシュボードを設定しましょう。

初期に理解しておくべきこと(そしてなぜ難しいのか)
最初のSaaSアプリの初期解析は混乱しがちです。理由は2つ同時に問題を抱えるからです:ユーザーが少ないことと、文脈が乏しいこと。少数のパワーユーザーがグラフを歪め、一方でサインアップしてすぐ離脱する“観光客”が全体を壊れて見せることがあります。
最も難しいのは、使用のノイズと本当のシグナルを分けることです。ノイズは忙しそうに見えても進捗を意味しない行動(設定を触る、ページをリフレッシュする、テストアカウントをいくつも作るなど)。シグナルは価値を予測する行動で、オンボーディング完了、チームメンバーの招待、最初の成功したワークフローの完了などです。
良いSaaS向けイベント追跡プランは、データチームなしでも最初の30日でいくつかの基本的な質問に答えられるように設計されているべきです。
速やかに答えられる必要があること
追跡がこれらに答えられれば、良い位置にいます:
- 新規サインアップはどの段階でファーストバリューに到達する前に離脱しているか?
- 24時間以内と7日以内に「ファーストバリュー」に到達するユーザーはどれくらいか?
- 翌週に戻ってくる人はどの機能を使っているか?
- 成功に至る最も一般的な経路(と最も多い行き止まり)は何か?
- リターンユーザーは同じ仕事を繰り返しているのか、それともただ触っているだけか?
わかりやすく言えば:アクティベーションはユーザーが初めて実際の成果を得る瞬間です。リテンションは、その成果を再び得るために戻ってくるかどうかです。初日から完璧な定義は必要ありませんが、明確な仮説とそれを測る方法は必要です。
もしKoder.aiのようなプラットフォームで素早く構築しているなら、すべてに計測を入れてしまうリスクがあります。イベントが増えるほど混乱を招くこともあります。まずは「最初の勝利」と「繰り返しの勝利」に対応する少数のアクションから始め、判断が必要になったときだけ拡張してください。
アクティベーションとリテンションを平易に定義する
アクティベーションは、新しいユーザーが初めて本当の価値を得る瞬間です。リテンションは、価値を継続的に得るために戻ってくるかどうかです。両方を簡単な言葉で言えないなら、追跡は意味のないイベントの山に変わります。
まずプロダクト内の2つの“人”を命名しましょう:
- コアユーザー:作業を行う人(クリックする、アップロードする、送る、構築する人)。
- アカウント:課金と請求を持つ顧客(個人または会社)。
多くのSaaSはチームを持つため、1つのアカウントに多くのユーザーがいることが普通です。だから、SaaS向けイベント追跡プランでは、ユーザー行動を測るのか、アカウントの健全性を測るのか、あるいはその両方なのかを常に明確にする必要があります。
アクティベーションを一文で書く
アクティベーションは、明確な行動と明確な成果を含む一文で書いてください。良いアクティベーションは「私はXをしてYを得た」のように感じられます。
例:「ユーザーが最初のプロジェクトを作成し、それを正常に公開する。」(Koder.aiのようなツールで構築しているなら、「最初の成功したデプロイ」や「最初のソースコードエクスポート」が製品の約束に応じた表現になります。)
その文を計測可能にするため、通常ファーストバリューの直前に起こる数ステップを列挙します。短く保ち、観測可能なことに集中してください:
- サインアップ
- 最初のワークスペース/プロジェクトを作成
- 重要な入力を追加(データ、コンテンツ、連携、設定)
- コアアクションを実行(送信、公開、生成、招待)
- 成功状態に到達(完了、配信、デプロイ)
あなたにとってのリテンションの意味
リテンションは、プロダクトに合ったスケジュールで「戻ってきたか」です。
デイリーで使われる製品なら日次で、週に数回使われる仕事ツールなら週次で、月次ワークフローなら月次で見ます。重要なのは「戻ってくる」ことが価値の継続を現実的に示す場合の頻度を選ぶことです。
ステップバイステップ:最初のイベント追跡プランを作る
ファーストバリューへの道筋から始める
SaaS向けイベント追跡プランは、新しい人がサインアップから最初の実際の勝利に至る物語を追うときに最もうまく機能します。
価値を生む最短のオンボーディング経路を書き出してください。例:Signup -> verify email -> create workspace -> invite teammate(オプション)-> connect data(またはプロジェクト設定)-> complete first key action -> see result。
次に、誰かが離脱したり詰まったりする瞬間をマークします。それらの瞬間が最初に追跡すべきイベントになります。
最小限のセットを定義してテストする
初版は小さく保ってください。通常必要なのは8〜15イベントで、80イベントではありません。狙いは「始めたか」「ファーストバリューに到達したか」「戻ってきたか」を答えられるイベントです。
実用的な構築順は:
- オンボーディングとファーストバリューの経路をマップする(1ページ、議論は不要)
- その経路をカバーする短いイベントリストを選ぶ
- 各イベントを小さな仕様で定義する(名前、発火条件、主要プロパティ)
- すべてのイベントに1つの安定したユーザーIDと1つのアカウント/ワークスペースIDを追加する
- 本番リリース前に実際のフローでイベントをテストする
イベント仕様はドキュメントの小さな表で十分です。含める項目:event name、トリガー(製品内で何が発生したら発火するか)、誰が発火できるか、常に送るプロパティ。
2つのIDが初期の混乱の多くを防ぎます:ユニークなuser_id(人)とaccountまたはworkspace_id(作業場所)。これで個人利用とチーム導入やアップグレードを分離できます。
出荷前に「新規ユーザーテスト」を行い、新しいアカウントを作成してオンボーディングを完了し、すべてのイベントが一回だけ発火するか(0回でも5回でもない)、正しいIDとタイムスタンプが付いているかを確認してください。Koder.aiのようなプラットフォーム上で構築している場合、このテストを通常のプレリリースチェックに組み込み、アプリが変わっても追跡が正しい状態に保たれるようにしましょう。
イベントの簡単な命名規則
命名規則は「正しいこと」ではなく、一貫性のためのものです。製品が変わってもチャートが壊れないようにします。
多くのSaaSに有効なシンプルルールは、verb_noun を snake_case で使うことです。動詞を明確に、名詞を具体的にしてください。
コピーできる例:
created_project,invited_teammate,uploaded_file,scheduled_demosubmitted_form(過去形は完了したアクションと読みやすい)connected_integration,enabled_feature,exported_report
完了を意味するイベントには過去形を好んでください。曖昧さが減ります。たとえば started_checkout は有用ですが、収益やリテンションのために欲しいのは completed_checkout の方です。
clicked_blue_button や pressed_save_icon のようなUI固有の名前は避けてください。ボタンやレイアウトは変わるため、追跡が古い画面の履歴になってしまいます。意図を示す名前にしましょう:saved_settings や updated_profile のように。
UIが変わっても名前は安定させてください。後で created_workspace を created_team に変えると、アクティベーションチャートが2つに分かれて連続性を失います。名前変更が必要な場合はマイグレーションとして扱い、旧名から新名へのマッピングを作り、決定を文書化してください。
予約プレフィックス(小規模で十分)
短いプレフィックスのセットがイベントリストを見やすくします。いくつか選んで守ってください。
例:
auth_(signup、login、logout)onboarding_(ファーストバリューへ導くステップ)billing_(trial、checkout、invoices)admin_(ロール、権限、組織設定)
Koder.aiのようなチャット駆動ビルダーでSaaSを作っている場合でも、この規約は有効です。今日作った機能が明日設計し直されても、created_project はUIに依らず意味を持ち続けます。
送るべきプロパティ(と一貫性の保ち方)
良いイベント名は何が起きたかを教えてくれます。プロパティは誰が、どこで、どんな結果だったかを教えます。小さく予測可能なセットを保てば、機能を増やしても読みやすさが保たれます。
まずは小さな「常時つける」コアを決める
ほとんどのイベントに現れるプロパティをいくつか選んでください。これにより後で顧客タイプ別にチャートを切るのが楽になります。
実用的なコアセット:
- user_id と account_id(誰がやったか、どのワークスペースに属するか)
- plan_tier(free, pro, business, enterprise)
- timestamp(可能ならサーバー側の時刻)
- app_version(リリース後の変化を見つけるため)
- signup_source(広告、紹介、オーガニックなどどこから来たか)
コンテキストは、そのイベントの意味を変える場合にのみ追加してください。例えば「Project Created」は project_type や template_id があるとずっと有用ですし、「Invite Sent」は seats_count があるとアクションの重みがわかります。
成果を追う(単なるアクションだけでなく)
アクションが失敗する可能性がある場合は、結果を明示してください。success: true/false のようなシンプルなものがよく効きます。失敗時は短い error_code(例:"billing_declined" や "invalid_domain")を付けると、ログを読まずに問題をグループ化できます。
現実的な例:Koder.aiでの「Deploy Started」だけでは混乱します。success と error_code を追加すれば、新規ユーザーがドメイン設定不足、クレジット不足、リージョン設定の問題で失敗しているかをすぐに見分けられます。
ダッシュボードを救う一貫性ルール
名前、型、意味を一度決めたら守ってください。plan_tier があるイベントで文字列にしたなら、別のイベントで数字にしないでください。類義語は避け(account_id と workspace_id など)、プロパティの意味を時間とともに変更しないでください。
より良いバージョンが必要なら新しいプロパティ名を作り、ダッシュボードが移行完了するまでは古いものも残してください。
データ衛生とプライバシーの基本
クリーンな追跡データは2つの習慣が鍵です:必要なものだけ送ること、間違いを直しやすくすること。
解析は行動のログであり、個人情報を保管する場所ではないと考えてください。生のメールアドレス、フルネーム、電話番号、ユーザーが自由入力するフィールド(サポートノート、フィードバック、チャットメッセージなど)は避けてください。自由テキストは予期せぬ機微情報を含むことがあります。
代わりに内部IDを使ってください。user_id、account_id、workspace_id のような識別子を追跡し、個人データとの紐付けは自社データベースやCRM内に保持します。イベントを人に紐付ける必要がある場合は、分析にPIIをコピーするのではなく内部ツール経由で行ってください。
IPアドレスや位置情報については事前に方針を決めてください。多くのツールはデフォルトでIPを取得しますし、「市/国」程度の粗い位置情報でも個人データとなり得ます。保存しない、国/地域のみ保存する、セキュリティのために一時的にIPを保持してから破棄する、などの方針を決めて文書化してください。
初期ダッシュボードと一緒に出荷する簡単な衛生チェックリスト:
- 送るプロパティのホワイトリストを定義する(それ以外はブロック)
- ユーザーのデータを削除する方法を用意する(
user_idとaccount_idで) - アクセス制御:生イベントを誰が見られるか、誰がエクスポートできるか、誰が追跡を変更できるか
- 「安全」なプロパティと「安全でない」プロパティの例を載せた短い追跡ドキュメント
Koder.aiのようなプラットフォームでSaaSを作る場合、システムログやスナップショットにも同じルールを適用してください:識別子を一貫させ、イベントペイロードにPIIを入れない、誰が何を見られるかを書き残す。
早期のアクティベーションとリテンションに必要な10ダッシュボード
SaaS向けイベント追跡プランは生のクリックを実行可能な答えに変えます。以下のダッシュボードは2つに集中しています:人々がファーストバリューに到達する方法、そして戻ってくるかどうか。
アクティベーションを説明するダッシュボード
- 1) 新規ユーザーの推移(日次/週次)+signup_source:新規アカウントをカウントし、広告、オーガニック、紹介、招待など来所元で分類します。アクティベートできないスパイクに注意。
- 2) アクティベーションファネル(離脱箇所):シンプルなファネル(Signup -> Email verified -> Project created -> First value action)。最大の離脱ステップをハイライトしてセッションを調査します。
- 3) ファーストバリュー到達時間(中央値、p75):ユーザーが最初の価値イベントに達するまでの時間を測ります。中央値は典型的な経路を、p75は苦戦している層を示します。
- 4) 機能の採用率(上位5つの価値アクション):実際の利用を示すアクション(設定クリックではない)を追ってください。上位5つに絞ると読みやすさが保てます。
- 5) signup_source別のアクティベーション率:同じアクティベーション定義を流入元で分割します。あるチャネルは興味本位の訪問者を、別のチャネルは購入者を集めます。
Koder.aiのようなプラットフォームで最初のバージョンを作っても、これらのダッシュボードは同じです。重要なのは一貫したイベントです。
リテンションを説明するダッシュボード
- 6) リテンションコホート(week 1, week 4):サインアップ週別のコホートで、主要アクションによるリテンションを測ります。製品が時間をかけて定着しているかがわかります。
- 7) リターンユーザーの推移(WAU):主要アクションに基づく週次アクティブユーザー。単なるログインと実際の利用を分けるのに有効です。
- 8) 繰り返し価値の頻度:ユーザーがコアアクションを週に何日行っているか。習慣化されているかが見えます。
- 9) 再アクティベーションファネル:非アクティブ -> 戻ってきた -> 主要アクション実行。リマインダーや新機能が人を戻すかを測るのに有効です。
- 10) フリクションダッシュボード(エラー・失敗アクション):
error_shown、payment_failed、integration_failedのようなイベントを追跡します。ここでの急増は静かにアクティベーションとリテンションを殺します。
例:サインアップからファーストバリューまでを追跡するシナリオ
想像してください:14日間の無料トライアルを持つシンプルなB2B SaaS。1人がサインアップし、チーム用ワークスペースを作り、プロダクトを試し、理想的にはチームメイトを招待します。あなたの目標は、人がどこで詰まるかを素早く学ぶことです。
「ファーストバリュー」を次のように定義します:ユーザーがワークスペースを作成し、製品が機能することを証明するコアタスクを1つ完了する(例:「CSVをインポートして最初のレポートを生成する」)。初期の追跡はすべてその瞬間に向かうべきです。
ローンチ日に出せる軽量なイベントのセット(名前は過去形の単純な動詞 + 対象)例:
- created_workspace
- completed_core_task
- invited_teammate
各イベントには「なぜ起きたか(または起きなかったか)」を説明するだけのプロパティを添えます。良い初期プロパティは:
- signup_source(google_ads, referral, founder_linkedin など)
- template_id(どの開始セットを選んだか)
- seats_count(チーム招待が重要な場合)
- success(true/false)と、失敗時は短い error_code
ダッシュボードを想像してください。アクティベーションファネルは signed_up -> created_workspace -> completed_core_task と表示されます。もし workspace 作成とコアタスクの間で大きな離脱があるなら、template_id と success でセグメントして調べてください。あるテンプレートが多く失敗している(success=false)とか、ある signup_source から来たユーザーが間違ったテンプレートを選び価値に到達していない、などがわかるかもしれません。
その後、チーム拡大ビュー(completed_core_task -> invited_teammate)は、人々が成功した後に招待するのか、招待は早期に行われるが招待先がコアタスクを完了しないのかを示します。
これがSaaS向けイベント追跡プランの目的です:すべてを収集することではなく、来週直せる最大のボトルネックを見つけること。
早期インサイトを台無しにする一般的なミス
ほとんどの追跡失敗はツールの問題ではありません。クリックは記録しているが、達成したことを伝えないときに起きます。データが「ユーザーは価値に到達したか?」に答えられないなら、イベント追跡は忙しく見えても結局は推測のままです。
ミス1:結果ではなくクリックを測る
クリックは追跡が簡単で読み間違いもしやすい。ユーザーが「Create project」を3回クリックしても失敗することがあります。進捗を表すイベントを優先してください:workspaceを作成した、チームメイトを招待した、データを接続した、公開した、最初の請求を送った、最初の実行を完了した、など。
ミス2:スプリントごとにイベント名を変える
最新のUIテキストに合わせて名前を変えると、トレンドが壊れて週次比較ができなくなります。安定したイベント名を選び、意味の進化はプロパティで表現してください(例:project_created を保ち、新しい入口ができたら creation_source を追加する)。
ミス3:B2Bの識別子を忘れる
user_id だけ送るとアカウント単位の質問に答えられません:どのチームがアクティベートしたか、どのアカウントが離脱したか、アカウント内の誰がパワーユーザーか。常に account_id(理想的には role や seat_type も)を含めて、ユーザーとアカウントの両方のリテンションが見られるようにしてください。
ミス4:プロパティを送りすぎる
多ければ良いというわけではありません。巨大で一貫性のないプロパティセットは空の値や表記ゆれを生み、誰も信頼しないダッシュボードになります。小さな「常にある」セットを保ち、特定の質問に答えるときだけ追加してください。
ミス5:エンドツーエンドのテストを忘れる
出荷前に確認すること:
- イベントは一度だけ発火するか(2回ではないか)と正しいタイミングか
- 必須IDがあるか(必要に応じて
user_id,account_id) - プロパティ値は合意されたリストに合っているか(想定外の文字列がないか)
- ダッシュボードは実データで更新されるか(テストデータだけでないか)
- ユーザージャーニーを順序通りに再生できるか
Koder.aiのようなプラットフォームでSaaSを作る場合、追跡も他の機能と同じように扱い、期待されるイベントを定義してフルユーザージャーニーを実行してから出荷してください。
出荷前のクイックチェックリスト
イベントを増やす前に、最初の週に本当に聞きたい質問に追跡が答えるか確認してください:人はファーストバリューに到達しているか、そして戻ってきているか。
主要フロー(サインアップ、オンボーディング、ファーストバリュー、リターン利用)から始め、それぞれのフローについて進捗を証明する1〜3のアウトカムイベントを選んでください。すべてのクリックを追うとノイズに溺れて、大事な瞬間を見逃します。
命名規則を一貫して使い、簡単なドキュメントに書き留めてください。目標は、2人が独立して同じイベント名を付けても同じ結果になることです。
事前チェックで多くの初期ミスを捕まえられます:
- Outcome first:各主要フローは多数のUIクリックイベントではなく小さなアウトカムイベントセットを持つ
- Names are consistent:イベントは同じ動詞+名詞スタイルに従い、意味は一箇所に文書化される
- Properties are typed:重要なプロパティはすべてのイベントで同じ型を保つ(例:planは常に文字列、seat_countは常に数値)
- Dashboards match definitions:アクティベーションダッシュボードはアクティベーションイベントを使い、リテンションダッシュボードはリテンションイベントを使う(任意の代理指標ではない)
- QA once like a user:アプリを通して動かし、イベントが一度、正しい時に、正しいプロパティで発火するか確認する
簡単なQAトリック:同じフルジャーニーを2回行う。一回目はアクティベーションを確認。二回目はログアウトして再ログインする、あるいは翌日戻ってきた設定にしてリテンション信号と二重発火のバグを防ぐ。
Koder.aiで構築しているなら、スナップショットやロールバックの後にも同じQAを行い、アプリが変わっても追跡が正しいままであることを確認してください。
次のステップ:軽量に保って繰り返す
最初の追跡セットアップは小さく感じるべきです。実装に数週間かかるなら、後で変更を避けるようになり、データはプロダクトに遅れます。
週次のシンプルなルーティンを決めてください:同じダッシュボードを見て、驚いたことを3つとフォローアップの質問を1つ書き、追跡はその質問を解くときだけ変更します。目標は「イベントを増やすこと」ではなく「より明確な答え」を得ることです。
良いルールは1〜2イベントずつ追加すること。それぞれが今日答えられない1つの質問に結びついていること。例:「チームを招待するユーザーはより高い確率でアクティベートするか?」 既に invite_sent を追っているが invite_accepted を追っていないなら、不足しているイベントとセグメントに必要な1つのプロパティ(例えば plan_tier)だけを追加します。出荷して1週間ダッシュボードを見てから次の変更を決めてください。
初期チームに合うシンプルな運用:
- 毎週同じ曜日・時間にアクティベーションとリテンションのダッシュボードをレビューする
- 3つの気づきと1つのフォローアップ質問を書く
- その質問を解くときだけ追跡を追加/調整する
- イベント名は安定させる;プロパティを追加してからイベントを追加する
- 未使用が確定するまで何も削除しない(削除はトレンドを壊す)
追跡更新の小さな変更ログを残して、後から誰もが数字を信頼できるようにしましょう。ドキュメントかリポジトリノートでよく、含めるべき項目:
- 日付とオーナー
- 何を変えたか(イベント/プロパティ名)
- なぜ変えたか(質問)
- 予想される影響(影響を受けるダッシュボード)
最初のアプリを作るなら、実装前にフローを設計してください。Koder.aiではPlanning Modeが、オンボーディングのステップを概説し、各ステップで必要なイベントを一覧化する実用的な方法になります。
オンボーディングを改善する際は、追跡の一貫性を守ってください。Koder.aiのスナップショットやロールバックを使うと、画面やステップを調整しつついつフローが変わったかの記録を残せるので、アクティベーションの急変を説明しやすくなります。
よくある質問
新しいSaaSで最初に追跡すべきイベントは何ですか?
登録から実際の成果に至るまでの最短経路を追跡します。まずは登録、ワークスペースまたはプロジェクトの作成、主要なアクション、成果の完了を追跡してください。必要な判断に答える場合にだけイベントを追加します。
アクティベーションはどのように定義すればよいですか?
アクティベーションは、観測できる1つの成功体験として定義します。ユーザーがアクションを行い、有用な結果を得た状態です。たとえば、プロジェクトを作成して公開する、またはデータをインポートしてレポートを生成することです。
SaaSアプリにおけるリテンションとは何ですか?
リテンションは、ユーザーが戻ってきて主要なアクションを再び完了するかどうかで測定します。顧客が自然に製品を使う頻度に合わせて、日次、週次、または月次の期間を設定してください。
分析イベントにはどのような名前を付けるべきですか?
created_project、connected_integration、completed_checkoutのように、完了したアクションをverb_noun形式のスネークケースで表します。ボタンや画面ではなく、ユーザーの意図に焦点を当てた名前にしてください。
すべてのイベントに含めるべきプロパティは何ですか?
該当する場合は、user_id、account_id、plan_tier、タイムスタンプ、アプリのバージョン、登録元を送信します。成果を説明するのに役立つ場合にだけ、機能固有のコンテキストを追加してください。
ユーザーIDとアカウントIDの両方が必要なのはなぜですか?
個人には安定した内部ユーザーIDを使い、顧客にはアカウントIDまたはワークスペースIDを使います。これにより、個人の行動をチームでの導入状況や請求アクティビティと比較できます。
失敗したアクションはどのように追跡すればよいですか?
結果はsuccess: trueまたはsuccess: falseで明示的に追跡します。アクションが失敗した場合は、未加工のメッセージを保存せずに原因をグループ化できるよう、短いerror_codeを含めてください。
最初の1か月で最も重要なダッシュボードはどれですか?
まずはアクティベーションファネル、初回価値実現までの時間、登録元別のアクティベーション、主要アクションに基づく週次アクティブユーザー、リテンションコホート、繰り返しアクションの頻度、エラーの傾向を確認します。これらのビューで、ユーザーがどこで行き詰まるか、価値を得るために戻ってくるかを把握できます。
分析データから除外すべきユーザーデータは何ですか?
明確な必要性と許可がない限り、メールアドレス、氏名、電話番号、IPアドレス、自由入力テキストは分析データに含めないでください。代わりに内部IDを送信し、イベントデータへのアクセスを制限し、削除リクエストに対応します。
リリース前にイベントトラッキングをテストするにはどうすればよいですか?
リリース前に、新しいアカウントで一連のユーザージャーニーを実行します。各イベントが1回だけ発火すること、想定どおりのIDとプロパティ型を含むこと、分析ツール内で正しい順序で表示されることを確認してください。