SaaS

ひとりで運営する SaaS のために。収益を生んだのは、どのローンチ、投稿、検索か。

マイクロ SaaS は、作り手がひとりで回せるいくつかのチャネルで育ちます。ローンチ、何本かの投稿、ディレクトリへの掲載、検索。Tally はそのうちどれが有料の顧客を連れてきたのかを、売上ごとのレシートとともに示します。来週の作業を、お金が生まれたところに向けられます。

無料で始める

14 日間無料、カード登録は不要です。

01販売のしかた

  • サブスクリプション月額プランと割安な年額プラン。トライアルから始まることが多く、初回の支払いは、顧客を獲得した訪問の数日後になることもあります。
  • フリーミアムあとからアップグレードされる無料枠。アップグレードは新しい決済ですが、その訪問者の以前の訪問の流入元を引き継ぎます。
  • 単発購入ローンチ時のライフタイムディール。一度売れたら更新されず、1 か月分のサブスクリプションを大きく上回ることもあるため、分けて見るべきです。

02読み取る決済

  • Stripe定番の選択肢です。Checkout や Payment Links によるサブスクリプションを制限付きキーで読み取ります。更新とアップグレードも含みます。
  • Lemon Squeezy売上税の処理を避けるため、Merchant of Record として選ばれます。注文とサブスクリプションの請求書を、返金とあわせて読み取ります。
  • Paddleこちらも Merchant of Record で、多くの国の企業に販売するようになるとよく使われます。取引、更新、調整(adjustment)を読み取ります。
  • Polar開発者向けのプロダクトで選ばれています。注文、サブスクリプションの請求サイクル、敗れた異議申し立てを読み取ります。

Tally が読み取れないもの

  • マーケットプレイス独自のチェックアウトで販売したライフタイムディールは、あなたの決済サービスのアカウントに入らないため、読み取りません。
  • 併せて提供するモバイルアプリの収益のうち、アプリストアが回収するものは読み取りません。読み取るのはウェブのチェックアウトだけです。
  • まだ支払いのないトライアルは収益ではありません。初回の請求が成功したときにのみ、売上として表示されます。

03購入者の流入元

  • Product Huntローンチ当日は訪問者が急増します。初回流入元別の顧客生涯価値を見れば、その顧客がローンチ割引のあとも更新するのか、離れていくのかがわかります。
  • Hacker NewsShow HN は数時間で数千の訪問をもたらすことがありますが、その多くは、その場ではめったに買わない開発者です。訪問者あたりの収益を見れば、それがはっきりします。
  • AI アシスタントあなたのようなツールを ChatGPT や Claude に尋ねた人は専用のチャネルに入り、多くはすでに心を決めて来ています。
  • 検索比較記事や代替ツールの記事は、ゆっくりと着実に購入者を連れてきます。それは長い購入までの経路として表れます。

04Tally でわかること

  1. あの Hacker News での急増に、意味はありましたか?

    Sales ページには、各売上が帰属先の流入元とともに並びます。1 件開くとレシートに背後の訪問が表示されるため、どの決済が Show HN から来た人によるものかを正確に数えられます。

    レシート
  2. 流入元のないサブスクリプションがあるのはなぜですか?

    カバー率では、収益のうち訪問者に紐づいた割合と、紐づいていない売上ごとの理由がわかります。たとえば、コードが訪問者の ID なしで作成した Checkout Session などです。直すためのスニペットも示されます。

    カバー率
  3. ローンチで獲得した顧客は定着しますか?

    初回流入元別の顧客生涯価値は、すべての更新と返金を顧客の初回訪問の流入元に加算します。数か月後に、ローンチで獲得した顧客と検索から来た顧客を比べられます。

    顧客生涯価値
  4. AI アシスタントは、もう購入者を送ってきていますか?

    ChatGPT、Claude、Perplexity などのアシスタントから来た訪問者は、どの内訳でも専用のチャネルにまとまり、その背後の収益とともに表示されます。

    流入元ごとの収益
  5. 売上が発生するたびに知らせてもらえますか?

    売上アラートは、売上が紐づいた時点で、帰属先の流入元とともにメール、Slack、Discord、Telegram、Webhook に届きます。ローンチ当日も売上を 1 件ずつ追えます。

    アラートとダイジェスト

05注目すべき数字

カバー率
チャネルの数字を信じる前に、訪問者に紐づいた収益の割合を高く保ちましょう。metadata の 1 行が抜けているだけで、あるチェックアウトからの売上がすべて流入元なしになりかねません。
流入元別の収益
内訳に表示される流入元ごとの収益。チャネルを訪問数ではなく、稼いだ額で順位づけます。
初回流入元別の顧客生涯価値
初回の流入元別に見た、顧客 1 人あたりの平均生涯収益。どのチャネルにもう 1 週間かけるべきかを決める数字です。
購入までの時間(中央値)
初回訪問から初回の支払いまでの時間の中央値。トライアルを挟むなら、少なくともトライアルの期間以上になると考えてください。

06例

例

Lifetime value by first source

All time: every payment since 1 Nov 2025. The period above doesn't apply.

First sourceCustomersLifetime revenueAverage valueRenewalsRepeat rate
GoogleOrganic Search285$35,568$12574152%
ChatGPTAI Assistants110$18,396$16734161%
Direct156$15,964$10232844%
NewsletterEmail83$15,330$18531569%
Hacker NewsOrganic Social74$10,343$14020055%
x.comOrganic Social101$8,949$8914133%
RedditOrganic Social74$7,942$10714141%
PerplexityAI Assistants37$5,587$1518957%
Every source920$118,081$1282,29651%

A customer is a visitor linked to a sale, counted under the source of their first visit. Lifetime revenue is net of refunds and chargebacks; repeat rate is the share who paid more than once (a renewal, an upgrade or another purchase). $11,540 from 374 payments not linked to a visitor is in no row.

図 1サンプルサイトの初回流入元別の顧客生涯価値。マイクロ SaaS なら、どちらにも何度か更新が入った時点で、ローンチ由来の流入元の平均を検索の平均と比べてください。

07設定

  1. Next.jsNext.js アプリでは、タグをルートレイアウトに入れます。クライアント側のルート遷移もページビューとして数えます。
  2. Stripe訪問者の ID を Checkout Session と subscription_data に渡します。有料に移行したトライアルも、すべての更新も、流入元を保ちます。
  3. サインアップ後に tally('identify', { email }) を呼び出します。あとでアプリの請求ページから行われた支払いも、メールアドレスで紐づきます。

08よくある質問

  • 有料に移行したトライアルは、どこに帰属しますか?

    最初に支払われた請求書が売上になり、それより前に購入者が Direct 以外から来た最後の訪問に帰属します。subscription_data.metadata に訪問者の ID を入れておけば、支払いが訪問の数週間後でも、高い確度で紐づきます。

  • すべての決済サービスを接続する必要がありますか?

    いいえ。販売に使っているものを接続してください。たとえば古いプロダクトは Stripe、新しいプロダクトは Polar という場合のように、1 つのサイトに複数を接続することもできます。自前の課金システムは、代わりに Payments API に送信できます。

  • 開発中の自分の訪問も Tally に数えられますか?

    タグに data-allow-localhost がない限り、localhost からの訪問は数えません。また、localStorage.datafast_ignore を true にしたブラウザーは完全に除外されます。