monetization について
SaaSやデジタル製品のチーム向けに、Stripeの課金実装から価格設定、解約対策までを扱うスキルです。実装例に加え、価格設計の枠組み、収益指標、継続利用の施策を示します。
主な機能
- 01Stripeのサブスクリプションと決済例
- 02価格戦略とプラン設計
- 03解約の兆候と防止策
- 04ユニットエコノミクスと収益指標
- 05収益化タスク用の簡易コマンド
活用シーン
- 01サブスクリプション、決済、Webhookの設定
- 02SaaSの価格とプラン構成の検討
- 03解約リスクの特定と防止施策の立案
- 04LTV/CACの計算と収益の把握
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill monetizationインストール後、Claude Code で/monetizationを入力して読み込まれたか確認します。
詳細
マネタイゼーション - プロダクトからレベニューへ
概要
デジタルプロダクトのマネタイゼーション戦略と実装 - Stripe、サブスクリプション、価格実験、フリーミアム、アップグレードフロー、チャーン防止、レベニュー最適化、SaaS ビジネスモデル。以下で有効化します: Stripe の統合、サブスクリプションプランの作成、価格戦略、アップグレード/ダウングレード、決済 Webhook、無料トライアル、チャーン、LTV/CAC、ユニットエコノミクス、ビジネスモデル。
このスキルを使用する場面
- このドメインについて専門的な支援が必要なとき
このスキルを使用しない場面
- タスクがマネタイゼーションと無関係である
- よりシンプルで具体的なツールでリクエストを処理できる
- ユーザーがドメイン専門知識を必要とせず、汎用的な支援を求めている
仕組み
価格とはあなたが支払うもの。価値とはあなたが得るもの。 - ウォーレン・バフェット 完璧なマネタイゼーションは、提供した価値に比例した価値を取り込む。
黄金律
ユーザーが支払うのは次の場合です:
- プロダクトが実際の問題を解決する (ニーズ)
- ソリューションが代替案より優れている (差別化)
- 価格が妥当だと認識される (価値の認識)
- 課金のタイミングが自然である (タイミング)
典型的なミス
- 価値を示す前に課金する (アクティベーションを阻害)
- 価格が低すぎる (低品質を示唆)
- プランが多すぎる (選択麻痺)
- クレジットカードなしのトライアル (低コンバージョン)
- 見えないチャーン (解約間近のアラートがない)
初期セットアップ
pip install stripe
## Ou
npm install stripe
## Config.Py
import stripe
import os
stripe.api_key = os.environ["STRIPE_SECRET_KEY"]
STRIPE_WEBHOOK_SECRET = os.environ["STRIPE_WEBHOOK_SECRET"]
PLANS = {
"free": None,
"pro": os.environ["STRIPE_PRICE_PRO"],
"business": os.environ["STRIPE_PRICE_BIZ"],
}
顧客とサブスクリプションの作成
def create_customer(email: str, name: str, user_id: str) -> str:
customer = stripe.Customer.create(
email=email,
name=name,
metadata={"user_id": user_id}
)
return customer.id
def create_subscription(customer_id: str, price_id: str, trial_days: int = 14):
subscription = stripe.Subscription.create(
customer=customer_id,
items=[{"price": price_id}],
trial_period_days=trial_days,
payment_behavior="default_incomplete",
expand=["latest_invoice.payment_intent"],
)
return {
"subscription_id": subscription.id,
"client_secret": subscription.latest_invoice.payment_intent.client_secret,
"status": subscription.status
}
チェックアウトセッション (コンバージョンに推奨)
def create_checkout_session(
customer_id: str,
price_id: str,
success_url: str,
cancel_url: str,
trial_days: int = 14
) -> str:
session = stripe.checkout.Session.create(
customer=customer_id,
mode="subscription",
line_items=[{"price": price_id, "quantity": 1}],
subscription_data={"trial_period_days": trial_days},
success_url=success_url + "?session_id={CHECKOUT_SESSION_ID}",
cancel_url=cancel_url,
allow_promotion_codes=True,
)
return session.url
カスタマーポータル (セルフサービス)
def create_portal_session(customer_id: str, return_url: str) -> str:
session = stripe.billing_portal.Session.create(
customer=customer_id,
return_url=return_url,
)
return session.url
Webhook - イベントの処理
from fastapi import Request, HTTPException
import stripe
async def stripe_webhook(request: Request):
payload = await request.body()
sig_header = request.headers.get("stripe-signature")
try:
event = stripe.Webhook.construct_event(
payload, sig_header, STRIPE_WEBHOOK_SECRET
)
except ValueError:
raise HTTPException(status_code=400, detail="Invalid payload")
except stripe.error.SignatureVerificationError:
raise HTTPException(status_code=400, detail="Invalid signature")
handlers = {
"customer.subscription.created": handle_subscription_created,
"customer.subscription.updated": handle_subscription_updated,
"customer.subscription.deleted": handle_subscription_deleted,
"invoice.payment_succeeded": handle_payment_succeeded,
"invoice.payment_failed": handle_payment_failed,
"customer.subscription.trial_will_end": handle_trial_ending,
}
handler = handlers.get(event["type"])
if handler:
await handler(event["data"]["object"])
return {"status": "ok"}
サブスクリプションのステータス確認
def get_subscription_status(customer_id: str) -> dict:
subscriptions = stripe.Subscription.list(
customer=customer_id,
status="all",
limit=1
)
if not subscriptions.data:
return {"tier": "free", "status": "none"}
sub = subscriptions.data[0]
return {
"tier": get_tier_from_price(sub.items.data[0].price.id),
"status": sub.status,
"trial_end": sub.trial_end,
"current_period_end": sub.current_period_end,
"cancel_at_period_end": sub.cancel_at_period_end,
}
SaaS 向け価格設定フレームワーク
方法 1: バリューベース価格設定 (推奨)
1. Calcule o valor economico entregue ao usuario
Ex: produto economiza 2h/semana = R$ 200/mes de valor
2. Capture 10-30% do valor criado
Ex: R$ 29/mes = 14% do valor
3. Valide com pesquisa de willingness-to-pay
4. Teste 3 price points (A/B test)
方法 2: 競合アンカー
Referencia: ChatGPT Plus = $20/mes (R$ 100)
Anchor: Notion = R$ 32/mes
Posicao: Pro = R$ 29/mes (mais barato que ChatGPT, similar ao Notion)
Mensagem: Tudo que o ChatGPT faz, por voz no Alexa
価格の心理学
R$ 29/mes (nao R$ 30 - efeito do digito esquerdo)
Plano anual com desconto claro: R$ 249/ano (economize R$ 99)
Destaque no plano que voce quer vender (visual hierarchy)
Ancoragem: mostra o plano caro primeiro
Trial sem cartao para ativacao, com cartao para retencao
Badge Mais popular no plano middle
プラン構成 (3 が適切な数)
| 機能 | Free | Pro | Business |
|---|---|---|---|
| 価格 | 無料 | R$ 29/月 | R$ 99/月 |
| 月間会話数 | 50 | 無制限 | 無制限 |
| メモリ | 7 日間 | 1 年 | 永続 |
| 専門家ボード | いいえ | はい | はい |
| マルチユーザー | いいえ | いいえ | 最大 10 |
| API アクセス | いいえ | いいえ | はい |
| サポート | いいえ | メール | 優先 |
チャーン切迫のサイン
CHURN_SIGNALS = {
"high_risk": [
"nao logou nos ultimos 14 dias",
"uso caiu >70% em 2 semanas",
"abriu cancelamento mas nao concluiu",
"ticket de suporte aberto sem resolucao",
],
"medium_risk": [
"nao logou em 7 dias",
"uso caiu >40%",
"nao completou onboarding",
"nunca usou feature core",
]
}
チャーン防止シーケンス
Dia 0: Usuario nao usa por 7 dias
-> Email: Sentimos sua falta. O que aconteceu?
Dia 3: Sem resposta
-> Push/Email: case study de usuario similar com sucesso
Dia 7: Nao voltou
-> Email: oferta especial (20% off por 3 meses)
Dia 14: Trial expirando
-> In-app modal + email urgente: Sua conta vai dormir em 3 dias
Dia 30: Cancelou
-> Offboarding email: Lamentamos ver voce ir.
-> 3 meses depois: reativacao com novidades
エグジットサーベイ (必須)
CANCELLATION_REASONS = [
"Muito caro",
"Nao uso o suficiente",
"Falta funcionalidade X",
"Encontrei alternativa melhor",
"Problemas tecnicos",
"Outro"
]
## Falta Feature -> Roadmap + Notificacao Quando Lancar
必須の計算
def calculate_unit_economics(
mrr: float,
customers: int,
new_customers: int,
churned: int,
cac_total: float,
):
arpu = mrr / customers
churn_rate = churned / customers
ltv = arpu / churn_rate
cac = cac_total / new_customers
ltv_cac = ltv / cac
months_to_recover_cac = cac / arpu
return {
"ARPU": f"R$ {arpu:.2f}",
"Churn Rate": f"{churn_rate*100:.1f}%",
"LTV": f"R$ {ltv:.0f}",
"CAC": f"R$ {cac:.0f}",
"LTV/CAC": f"{ltv_cac:.1f}x",
"Payback": f"{months_to_recover_cac:.1f} meses",
"Status": "Saudavel" if ltv_cac > 3 else "Otimizar"
}
ブラジル B2C SaaS ベンチマーク
| 指標 | 悪い | 普通 | 良い | 優秀 |
|---|---|---|---|---|
| 月次チャーン | >7% | 5-7% | 2-5% | <2% |
| LTV/CAC | <1x | 1-3x | 3-5x | >5x |
| ペイバック | >18m | 12-18m | 6-12m | <6m |
| トライアル→有料への転換 | <3% | 3-8% | 8-15% | >15% |
| 前月比成長率 | <5% | 5-10% | 10-20% | >20% |
レベニューダッシュボード (日次指標)
MRR atual: R$ XX.XXX
New MRR (novos assinantes): +R$ X.XXX
Expansion MRR (upgrades): +R$ XXX
Contraction MRR (downgrades): -R$ XXX
Churned MRR (cancelamentos): -R$ XXX
Net New MRR: +/- R$ XXX
ARR (Annualized): R$ XX.XXX x 12
Churn Rate: X.X%
Net Revenue Retention: XXX% (meta: >100%)
Stripe によるレベニュー自動化
async def check_usage_and_upsell(user_id: str, usage: dict):
if usage["conversations_this_month"] >= 45:
await send_upgrade_prompt(
user_id=user_id,
message="Voce esta usando 90% do seu limite. Faca upgrade para Pro.",
cta_url=f"/upgrade?utm=usage-limit"
)
7. クイックコマンド
| コマンド | アクション |
|---|---|
| /stripe-setup | Stripe をゼロから設定する |
| /pricing-analysis | 現在の価格戦略を分析する |
| /churn-playbook | パーソナライズされたチャーン防止シーケンス |
| /unit-economics | LTV/CAC と財務健全性を計算する |
| /upgrade-flow | アップグレードフローの設計 |
| /revenue-dashboard | レベニューダッシュボードのテンプレート |
| /trial-optimization | トライアルのコンバージョンを最適化する |
ベストプラクティス
- プロジェクトと要件について、明確で具体的なコンテキストを提供してください
- 提案を本番コードに適用する前に、すべて確認してください
- 包括的な分析のために、他の補完的なスキルと組み合わせてください
よくある落とし穴
- このスキルの専門領域外のタスクに使用すること
- 具体的なコンテキストを理解せずに推奨事項を適用すること
- 正確な分析に十分なプロジェクトコンテキストを提供しないこと
関連スキル
analytics-product- 分析を強化するための補完的なスキルgrowth-engine- 分析を強化するための補完的なスキルproduct-design- 分析を強化するための補完的なスキルproduct-inventor- 分析を強化するための補完的なスキル
制限事項
- このスキルは、タスクが上記の範囲に明確に一致する場合にのみ使用してください。
- 出力を、環境固有の検証、テスト、または専門家によるレビューの代替として扱わないでください。
- 必要な入力、権限、安全境界、または成功基準が不足している場合は、作業を中断して確認を求めてください。
コメント
Markdown 対応