分析产品

analytics-product
分类通用
作者Agentic Awesome Skills 社区
许可MIT
评分4.20/5
使用10.1K

ANALYTICS-PRODUCT — 用数据驱动决策

概览

产品分析 — PostHog, Mixpanel, 事件, 漏斗, 队列, 留存, 北极星指标, OKRs 和产品仪表盘。适用场景:配置事件追踪、创建转化漏斗、队列分析、留存分析、DAU/MAU、特性开关 (feature flags)、A/B 测试、北极星指标、OKRs、产品仪表盘。

何时使用此技能

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

何时不要使用此技能

  • 任务与产品分析无关时
  • 更简单、更具体的工具可以处理该请求时
  • 用户需要通用协助而不需要领域专业知识时

工作原理

code
[对象]_[过去式动词]

正确: user_signed_up, conversation_started, upgrade_completed
错误: signup, click, conversion

Analytics-Product — 用数据驱动决策

> "我们相信上帝。其他人必须提供数据。" — W. Edwards Deming

---

Auri 核心事件

python
AURI_EVENTS = {
    # 获取 (Acquisition)
    "user_signed_up":        {"props": ["source", "medium", "campaign"]},
    "onboarding_started":    {"props": ["step_count"]},
    "onboarding_completed":  {"props": ["time_to_complete", "steps_skipped"]},

# 激活 (Activation)
"first_conversation": {"props": ["intent", "response_time"]},
"aha_moment_reached": {"props": ["trigger", "session_number"]},
"feature_discovered": {"props": ["feature_name", "discovery_method"]},

# 留存 (Retention)
"conversation_started": {"props": ["intent", "user_tier", "device"]},
"conversation_completed":{"props": ["messages_count", "duration", "rating"]},
"session_started": {"props": ["days_since_last", "platform"]},

# 营收 (Revenue)
"upgrade_viewed": {"props": ["trigger", "current_tier"]},
"upgrade_started": {"props": ["target_tier", "trigger"]},
"upgrade_completed": {"props": ["tier", "plan", "revenue"]},
"subscription_canceled": {"props": ["reason", "tier", "tenure_days"]},
"payment_failed": {"props": ["attempt_count", "error_code"]},
}

Posthog 实现 (Python)

python
from posthog import Posthog
import os

posthog = Posthog(
project_api_key=os.environ["POSTHOG_API_KEY"],
host=os.environ.get("POSTHOG_HOST", "https://app.posthog.com")
)

def track(user_id: str, event: str, properties: dict = None):
posthog.capture(
distinct_id=user_id,
event=event,
properties=properties or {}
)

def identify(user_id: str, traits: dict):
posthog.identify(
distinct_id=user_id,
properties=traits
)

使用示例:

track("user_123", "conversation_started", {
"intent": "business_advice",
"device": "alexa",
"user_tier": "pro"
})

---

Auri 激活漏斗

code
访问落地页          (100%)
    | [目标: 40%]
点击 "立即体验"       (40%)
    | [目标: 70%]
完成注册            (28%)
    | [目标: 60%]
进行首次对话         (17%)  <- AHA MOMENT (惊喜时刻)
    | [目标: 50%]
次日留存            (8.5%)
    | [目标: 40%]
每周使用 3 天以上     (3.4%)
    | [目标: 20%]
转化为 Pro 用户
(0.7%)
code
## 优化漏斗
针对每个高于基准值的流失率 (drop-off): 1. 识别:用户具体在哪个环节流失? 2. 理解:原因是什么?(通过会话录屏、问卷调查) 3. 假设:什么样的改动可以改善? 4. 测试:进行具有统计学显著性样本的 A/B 测试 5. 衡量:至少运行 2 周,p-value < 0.05 6. 学习:即使失败,也能更深入地了解用户
code
---

同期群分析 (周留存)

python def calculate_cohort_retention(events_df): """ events_df: 包含 [user_id, event_date, event_name] 列的 DataFrame 返回: 留存矩阵 [cohort_week x week_number] """ import pandas as pd

first_session = events_df[events_df.event_name == "session_started"] \
.groupby("user_id")["event_date"].min() \
.dt.to_period("W")

sessions = events_df[events_df.event_name == "session_started"].copy()
sessions["cohort"] = sessions["user_id"].map(first_session)
sessions["weeks_since"] = (
sessions["event_date"].dt.to_period("W") - sessions["cohort"]
).apply(lambda x: x.n)

cohort_data = sessions.groupby(["cohort", "weeks_since"])["user_id"].nunique()
cohort_sizes = cohort_data.unstack().iloc[:, 0]
retention = cohort_data.unstack().divide(cohort_sizes, axis=0) * 100

return retention

code
## 留存基准 (语音助手)

| 周次 | 极差 | 一般 | 良好 | 优秀 |
|--------|---------|-----|-----|-----------|
| W1 | <20% | 20-35% | 35-50% | >50% |
| W4 | <10% | 10-20% | 20-30% | >30% |
| W8 | <5% | 5-12% | 12-20% | >20% |

---

定义 Auri 的北极星指标 (North Star)

框架: 1. 什么能为用户创造真实价值? -> 产生洞察/行动的对话 2. 什么能预测长期增长? -> 每周对话 3 次以上的用户 3. 如何衡量? -> “周活跃对话用户” (Weekly Active Conversationalists, WAC)

北极星指标:WAC (Weekly Active Conversationalists)
定义:每周对话次数 >= 3 次且单次对话时长 >= 2 分钟的用户

第一年目标:10,000 WAC
第二年目标:100,000 WAC

code
## 北极星指标仪表盘
python
def calculate_north_star(db):
wac = db.query("""
SELECT COUNT(DISTINCT user_id) as wac
FROM conversations
WHERE
created_at >= NOW() - INTERVAL '7 days'
AND duration_seconds >= 120
GROUP BY user_id
HAVING COUNT(*) >= 3
""").scalar()

return {
"wac": wac,
"wow_growth": calculate_wow_growth(db, "wac"),
"target": 10000,
"progress": f"{wac/10000*100:.1f}%"
}

code
---

使用 Posthog 实现功能开关 (Feature Flags)

python def is_feature_enabled(user_id: str, feature: str) -> bool: return posthog.feature_enabled(feature, user_id)

if is_feature_enabled(user_id, "new-onboarding-v2"):
show_new_onboarding()
else:
show_old_onboarding()

code
## 统计显著性计算器
python
from scipy import stats
import numpy as np

def ab_test_significance(
control_conversions: int,
control_visitors: int,
variant_conversions: int,
variant_visitors: int,
confidence: float = 0.95
) -> dict:
control_rate = control_conversions / control_visitors
variant_rate = variant_conversions / variant_visitors
lift = (variant_rate - control_rate) / control_rate * 100

_, p_value = stats.chi2_contingency([
[control_conversions, control_visitors - control_conversions],
[variant_conversions, variant_visitors - variant_conversions]
])[:2]

significant = p_value < (1 - confidence)

code
python
return {
"control_rate": f"{control_rate*100:.2f}%",
"variant_rate": f"{variant_rate*100:.2f}%",
"lift": f"{lift:+.1f}%",
"p_value": round(p_value, 4),
"significant": significant,
"recommendation": "Deploy variant" if significant and lift > 0 else "Keep control"
}
``

---

6. 命令

| 命令 | 操作 |
|---------|------|
|
/event-taxonomy | 定义事件分类法 |
|
/funnel-analysis | 分析转化漏斗 |
|
/cohort-retention | 计算同期群留存 |
|
/north-star | 定义或审查北极星指标 |
|
/ab-test | 计算 A/B 测试显著性 |
|
/dashboard-setup | 创建产品仪表盘 |
|
/okr-template | 产品 OKR 模板 |

最佳实践

  • 提供关于项目和需求的清晰、具体上下文
  • 在将建议应用于生产代码前进行审核
  • 结合其他互补技能进行全面分析

常见误区

  • 将此技能用于其专业领域之外的任务
  • 在不了解具体上下文的情况下直接应用建议
  • 未提供足够的项目上下文以进行准确分析

相关技能

  • growth-engine - 用于增强分析的互补技能
  • monetization - 用于增强分析的互补技能
  • product-design - 用于增强分析的互补技能
  • product-inventor` - 用于增强分析的互补技能

局限性

  • 仅在任务明确符合上述范围时使用此技能。
  • 不要将输出结果视为特定环境验证、测试或专家评审的替代方案。
  • 如果缺少必要的输入、权限、安全边界或成功标准,请停止并请求澄清。