analytics-product

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

ANALYTICS-PRODUCT — Decida com Dados

ANALYTICS-PRODUCT — 用数据决策

Overview

概述

Analytics de produto — PostHog, Mixpanel, eventos, funnels, cohorts, retencao, north star metric, OKRs e dashboards de produto. Ativar para: configurar tracking de eventos, criar funil de conversao, analise de cohort, retencao, DAU/MAU, feature flags, A/B testing, north star metric, OKRs, dashboard de produto.
产品分析——包含PostHog、Mixpanel、事件、漏斗、同期群、留存、北极星指标、OKR以及产品仪表盘相关内容。可用于:配置事件埋点、创建转化漏斗、同期群分析、留存分析、DAU/MAU分析、功能开关、A/B测试、北极星指标制定、OKR制定、产品仪表盘搭建。

When to Use This Skill

何时使用本技能

  • When you need specialized assistance with this domain
  • 当你需要该领域的专业协助时

Do Not Use This Skill When

请勿使用本技能的场景

  • The task is unrelated to analytics product
  • A simpler, more specific tool can handle the request
  • The user needs general-purpose assistance without domain expertise
  • 任务与产品分析无关
  • 有更简单、更针对性的工具可以处理请求
  • 用户不需要领域专业知识的通用协助

How It Works

使用规则

[objeto]_[verbo_passado]

Correto:   user_signed_up, conversation_started, upgrade_completed
Errado:    signup, click, conversion
[对象]_[过去式动词]

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

Analytics-Product — Decida Com Dados

产品分析——用数据决策

"In God we trust. All others must bring data." — W. Edwards Deming

「我们信仰上帝,其他人请带数据来。」—— W. Edwards Deming

Eventos Essenciais Da Auri

Auri核心事件

python
AURI_EVENTS = {
    # Aquisicao
    "user_signed_up":        {"props": ["source", "medium", "campaign"]},
    "onboarding_started":    {"props": ["step_count"]},
    "onboarding_completed":  {"props": ["time_to_complete", "steps_skipped"]},

    # Ativacao
    "first_conversation":    {"props": ["intent", "response_time"]},
    "aha_moment_reached":    {"props": ["trigger", "session_number"]},
    "feature_discovered":    {"props": ["feature_name", "discovery_method"]},

    # Retencao
    "conversation_started":  {"props": ["intent", "user_tier", "device"]},
    "conversation_completed":{"props": ["messages_count", "duration", "rating"]},
    "session_started":       {"props": ["days_since_last", "platform"]},

    # Receita
    "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"]},
}
python
AURI_EVENTS = {
    # 获客
    "user_signed_up":        {"props": ["source", "medium", "campaign"]},
    "onboarding_started":    {"props": ["step_count"]},
    "onboarding_completed":  {"props": ["time_to_complete", "steps_skipped"]},

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

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

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

Implementacao Posthog (Python)

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
    )
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
    )

Uso:

用法:

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

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

---

Funil De Ativacao Auri

Auri激活漏斗

Visita landing page          (100%)
    | [meta: 40%]
Clicou "Experimentar"         (40%)
    | [meta: 70%]
Completou cadastro            (28%)
    | [meta: 60%]
Fez primeira conversa         (17%)  <- AHA MOMENT
    | [meta: 50%]
Voltou no dia seguinte        (8.5%)
    | [meta: 40%]
Usou 3+ dias na semana        (3.4%)
    | [meta: 20%]
Converteu para Pro            (0.7%)
访问落地页          (100%)
    | [目标: 40%]
点击「试用」         (40%)
    | [目标: 70%]
完成注册            (28%)
    | [目标: 60%]
发起首次对话         (17%)  <- 啊哈时刻
    | [目标: 50%]
次日回访            (8.5%)
    | [目标: 40%]
周使用天数≥3        (3.4%)
    | [目标: 20%]
升级为Pro版本        (0.7%)

Otimizando O Funil

漏斗优化

Para cada drop-off > benchmark:
1. Identificar: onde exatamente o usuario sai?
2. Entender: por que? (session recordings, surveys)
3. Hipotese: qual mudanca poderia melhorar?
4. Testar: A/B test com amostra estatisticamente significante
5. Medir: 2 semanas minimo, p-value < 0.05
6. Aprender: mesmo se falhar, entende-se o usuario melhor

针对每一处高于基准的流失:
1. 定位:用户具体是在哪个环节离开?
2. 理解:为什么离开?(会话录屏、调研)
3. 假设:什么样的改动可以改善该情况?
4. 测试:具备统计显著性样本量的A/B测试
5. 测量:最少观察2周,p值<0.05
6. 总结:即使测试失败,也能加深对用户的理解

Analise De Cohort (Retencao Semanal)

同期群分析(周留存)

python
def calculate_cohort_retention(events_df):
    """
    events_df: DataFrame com colunas [user_id, event_date, event_name]
    Retorna: matriz de retencao [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
python
def calculate_cohort_retention(events_df):
    """
    events_df: DataFrame 包含列 [user_id, event_date, event_name]
    返回: 留存矩阵 [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

Benchmarks De Retencao (Assistentes De Voz)

留存基准(语音助手类产品)

SemanaPessimoOkBomExcelente
W1<20%20-35%35-50%>50%
W4<10%10-20%20-30%>30%
W8<5%5-12%12-20%>20%

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

Definindo A North Star Da Auri

制定Auri的北极星指标

Framework:
1. O que cria valor real para o usuario? -> Conversas que geram insight/acao
2. O que prediz crescimento de longo prazo? -> Usuarios com 3+ conv/semana
3. Como medir? -> "Weekly Active Conversationalists" (WAC)

North Star: WAC (Weekly Active Conversationalists)
Definicao: Usuarios com >= 3 conversas na semana que duraram >= 2 minutos

Meta Ano 1: 10.000 WAC
Meta Ano 2: 100.000 WAC
框架:
1. 什么能为用户创造真正的价值? -> 能产生洞见/行动的对话
2. 什么能预测长期增长? -> 每周发起3次以上对话的用户
3. 如何衡量? -> "Weekly Active Conversationalists" (WAC)

北极星指标:WAC (Weekly Active Conversationalists)
定义:每周发起≥3次、时长≥2分钟对话的用户

第1年目标:10.000 WAC
第2年目标:100.000 WAC

Dashboard North Star

北极星指标仪表盘

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

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

Feature Flags Com Posthog

基于Posthog的功能开关

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()
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()

Calculadora De Significancia Estatistica

统计显著性计算器

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)

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

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)

    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. Comandos

6. 命令

ComandoAcao
/event-taxonomy
Define taxonomia de eventos
/funnel-analysis
Analisa funil de conversao
/cohort-retention
Calcula retencao por cohort
/north-star
Define ou revisa North Star Metric
/ab-test
Calcula significancia de A/B test
/dashboard-setup
Cria dashboard de produto
/okr-template
Template de OKRs para produto
命令功能
/event-taxonomy
定义事件分类体系
/funnel-analysis
分析转化漏斗
/cohort-retention
计算同期群留存
/north-star
制定或修订北极星指标
/ab-test
计算A/B测试统计显著性
/dashboard-setup
创建产品仪表盘
/okr-template
产品OKR模板

Best Practices

最佳实践

  • Provide clear, specific context about your project and requirements
  • Review all suggestions before applying them to production code
  • Combine with other complementary skills for comprehensive analysis
  • 提供关于项目和需求的清晰、具体的上下文
  • 所有建议应用到生产代码前请先审核
  • 结合其他互补技能完成全面分析

Common Pitfalls

常见误区

  • Using this skill for tasks outside its domain expertise
  • Applying recommendations without understanding your specific context
  • Not providing enough project context for accurate analysis
  • 将本技能用于领域专业知识外的任务
  • 不结合自身具体场景直接套用建议
  • 未提供足够的项目上下文,无法得到准确分析结果

Related Skills

相关技能

  • growth-engine
    - Complementary skill for enhanced analysis
  • monetization
    - Complementary skill for enhanced analysis
  • product-design
    - Complementary skill for enhanced analysis
  • product-inventor
    - Complementary skill for enhanced analysis
  • growth-engine
    - 增强分析的互补技能
  • monetization
    - 增强分析的互补技能
  • product-design
    - 增强分析的互补技能
  • product-inventor
    - 增强分析的互补技能