mcpField
M
monetization

monetization

github.com/sickn33营销与增长48.7k42 次安装1 天前更新
代码仓库

关于 monetization

面向 SaaS 和数字产品团队的变现技能,涵盖 Stripe 计费实现、定价与客户流失管理,并提供实践示例、营收指标及留存方案。

主要功能

  1. 01Stripe 订阅与结账示例
  2. 02定价策略与套餐设计
  3. 03流失信号与挽留流程
  4. 04单位经济效益与营收指标
  5. 05变现任务快捷命令

适用场景

  1. 01配置订阅、结账和支付 Webhook
  2. 02评估 SaaS 定价与套餐结构
  3. 03识别流失风险并规划挽留沟通
  4. 04计算 LTV/CAC 并监测营收

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill monetization

安装后在 Claude Code 中输入/monetization确认已加载。

详细介绍

变现 - 从产品到收入

概述

数字产品变现的策略与实施 - Stripe、订阅、定价实验、免费增值、升级流程、流失预防、收入优化以及 SaaS 商业模式。在以下情况启用:集成 Stripe、创建订阅计划、定价策略、升级/降级、支付 webhook、免费试用、流失、LTV/CAC、单位经济模型、商业模式。

何时使用此技能

  • 当你需要此领域的专业协助时

何时不要使用此技能

  • 任务与变现无关
  • 更简单、更具体的工具可以处理该请求
  • 用户需要通用协助,无需领域专业知识

工作原理

价格是你付出的,价值是你得到的。- 沃伦·巴菲特 完美的变现能够获取与所交付价值成比例的价值。


黄金法则

用户在以下情况下付费:

  1. 产品解决了真实问题(需求)
  2. 解决方案优于替代方案(差异化)
  3. 价格被感知为公平(价值感知)
  4. 收费时机自然(时机)

经典错误

  • 在展示价值之前收费(扼杀激活)
  • 价格太低(暗示低质量)
  • 计划太多(选择瘫痪)
  • 无需信用卡的试用(低转化率)
  • 隐形流失(没有即将取消的警报)

初始设置

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"],
}

创建 Customer 和 Subscription

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
    }

Checkout Session(推荐用于转化)

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

Customer Portal(自助服务)

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"}

验证 Subscription 状态

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 是正确的数字)

FeatureFreeProBusiness
价格免费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"
    }

巴西 SaaS B2C 基准

指标差一般好优秀
月度流失率>7%5-7%2-5%<2%
LTV/CAC<1x1-3x3-5x>5x
回收期>18m12-18m6-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