mcpField
G
growth-marketing

growth-marketing

github.com/dengineproblemマーケティング・グロース116 回インストール
リポジトリ

growth-marketing について

実験、ファネル最適化、データ分析を扱うグロースマーケティングの知識スキルです。テストの計画やコンバージョン・リテンションの分析を通じ、データに基づく成長施策を支援します。

主な機能

  1. 01成長実験と仮説の設計
  2. 02ICE による実験の優先順位付け
  3. 03ファネルとコンバージョンの最適化
  4. 04コホート・アトリビューション・セグメント分析

活用シーン

  1. 01成長実験の計画と優先順位付け
  2. 02登録・購入ファネルの離脱分析
  3. 03チャネル・リテンション・顧客セグメントの評価

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/dengineproblem/agents-monorepo --skill growth-marketing

インストール後、Claude Code で/growth-marketingを入力して読み込まれたか確認します。

詳細

グロースマーケティングのエキスパート

グロース実験、ファネル最適化、データ主導型マーケティングに関する専門知識。

主な能力

グロース実験
  • 仮説の立案
  • A/B テストと多変量テスト
  • 統計的有意性
  • 実験の優先順位付け(ICE/PIE)
  • 学びの記録
ファネル最適化
  • コンバージョン率最適化(CRO)
  • ランディングページの最適化
  • サインアップフローの最適化
  • アクティベーションの改善
  • リテンションの仕組み
アナリティクスとデータ
  • ファネル分析
  • コホート分析
  • アトリビューションモデリング
  • 予測分析
  • 顧客セグメンテーション

グロースフレームワーク

AARRR(海賊指標)
Acquisition:
  question: How do users find you?
  metrics:
    - Traffic by source
    - Cost per acquisition
    - Click-through rate
  tactics:
    - SEO & content marketing
    - Paid acquisition
    - Viral/referral
    - Partnerships

Activation:
  question: Do users have a great first experience?
  metrics:
    - Sign-up rate
    - Onboarding completion
    - Time to value
    - Feature adoption
  tactics:
    - Onboarding optimization
    - Progressive profiling
    - Quick wins
    - Personalization

Retention:
  question: Do users come back?
  metrics:
    - DAU/MAU ratio
    - Cohort retention curves
    - Churn rate
    - Feature stickiness
  tactics:
    - Email/push engagement
    - Feature releases
    - Community building
    - Habit loops

Revenue:
  question: How do you make money?
  metrics:
    - ARPU/ARPA
    - LTV
    - Conversion to paid
    - Expansion revenue
  tactics:
    - Pricing optimization
    - Upsell flows
    - Reduction of friction
    - Value demonstration

Referral:
  question: Do users tell others?
  metrics:
    - Viral coefficient (K-factor)
    - Referral conversion
    - NPS
    - Share rate
  tactics:
    - Referral programs
    - Social proof
    - Word of mouth
    - Product virality
グロースのレバー
def calculate_growth_impact(metrics):
    """Calculate impact of improving each growth lever."""

    levers = {
        'traffic': {
            'current': metrics['monthly_visitors'],
            'improvement': 0.20,  # 20% more traffic
            'impact': metrics['monthly_visitors'] * 0.20 * metrics['conversion_rate'] * metrics['arpu']
        },
        'conversion': {
            'current': metrics['conversion_rate'],
            'improvement': 0.25,  # 25% better conversion
            'impact': metrics['monthly_visitors'] * (metrics['conversion_rate'] * 0.25) * metrics['arpu']
        },
        'frequency': {
            'current': metrics['purchases_per_year'],
            'improvement': 0.15,  # 15% more frequent
            'impact': metrics['customers'] * (metrics['purchases_per_year'] * 0.15) * metrics['aov']
        },
        'aov': {
            'current': metrics['aov'],
            'improvement': 0.10,  # 10% higher AOV
            'impact': metrics['customers'] * metrics['purchases_per_year'] * (metrics['aov'] * 0.10)
        },
        'retention': {
            'current': metrics['retention_rate'],
            'improvement': 0.05,  # 5% better retention
            'impact': calculate_ltv_improvement(metrics, 0.05)
        }
    }

    return sorted(levers.items(), key=lambda x: x[1]['impact'], reverse=True)

実験プロセス

ICE優先順位付けフレームワーク
def calculate_ice_score(experiments):
    """Score experiments using ICE framework."""

    scored = []
    for exp in experiments:
        ice_score = (
            exp['impact'] *      # 1-10: potential business impact
            exp['confidence'] *  # 1-10: confidence in hypothesis
            exp['ease']          # 1-10: ease of implementation
        ) / 3

        scored.append({
            'name': exp['name'],
            'hypothesis': exp['hypothesis'],
            'ice_score': ice_score,
            'impact': exp['impact'],
            'confidence': exp['confidence'],
            'ease': exp['ease']
        })

    return sorted(scored, key=lambda x: x['ice_score'], reverse=True)
実験テンプレート
Experiment Name: Homepage CTA Button Color Test

Hypothesis:
  statement: "Changing the CTA button from blue to orange will increase clicks"
  reasoning: "Orange creates more urgency and stands out from our blue brand"

Metrics:
  primary: CTA click rate
  secondary:
    - Sign-up conversion
    - Time on page
    - Bounce rate

Test Design:
  type: A/B test
  control: Blue button (#3498db)
  variant: Orange button (#e67e22)
  traffic_split: 50/50
  sample_size_needed: 10,000 per variant
  duration: 14 days minimum

Success Criteria:
  minimum_detectable_effect: 10%
  statistical_significance: 95%

Segmentation:
  - New vs returning visitors
  - Mobile vs desktop
  - Traffic source
統計的有意性の計算ツール
import scipy.stats as stats
import numpy as np

def calculate_sample_size(baseline_rate, mde, alpha=0.05, power=0.80):
    """Calculate required sample size for A/B test."""

    effect_size = mde * baseline_rate

    # Z-scores for significance level and power
    z_alpha = stats.norm.ppf(1 - alpha/2)
    z_beta = stats.norm.ppf(power)

    # Pooled standard deviation
    p1 = baseline_rate
    p2 = baseline_rate * (1 + mde)
    pooled_var = p1*(1-p1) + p2*(1-p2)

    # Sample size per group
    n = (2 * pooled_var * (z_alpha + z_beta)**2) / (effect_size**2)

    return int(np.ceil(n))

def analyze_ab_test(control_visitors, control_conversions,
                    variant_visitors, variant_conversions):
    """Analyze A/B test results."""

    control_rate = control_conversions / control_visitors
    variant_rate = variant_conversions / variant_visitors

    # Lift calculation
    lift = (variant_rate - control_rate) / control_rate

    # Statistical test
    contingency = [[control_conversions, control_visitors - control_conversions],
                   [variant_conversions, variant_visitors - variant_conversions]]
    chi2, p_value, dof, expected = stats.chi2_contingency(contingency)

    return {
        'control_rate': control_rate,
        'variant_rate': variant_rate,
        'lift': lift,
        'lift_percent': f"{lift:.1%}",
        'p_value': p_value,
        'significant': p_value < 0.05,
        'confidence': 1 - p_value
    }

ファネル分析

コンバージョンファネルのトラッキング
-- Funnel analysis query
WITH funnel AS (
    SELECT
        user_id,
        MIN(CASE WHEN event = 'page_view' THEN timestamp END) as viewed,
        MIN(CASE WHEN event = 'signup_started' THEN timestamp END) as started,
        MIN(CASE WHEN event = 'signup_completed' THEN timestamp END) as completed,
        MIN(CASE WHEN event = 'first_purchase' THEN timestamp END) as purchased
    FROM events
    WHERE timestamp >= CURRENT_DATE - INTERVAL '30 days'
    GROUP BY user_id
)
SELECT
    COUNT(viewed) as step_1_viewed,
    COUNT(started) as step_2_started,
    COUNT(completed) as step_3_completed,
    COUNT(purchased) as step_4_purchased,

    -- Conversion rates
    ROUND(COUNT(started)::decimal / NULLIF(COUNT(viewed), 0) * 100, 2) as view_to_start,
    ROUND(COUNT(completed)::decimal / NULLIF(COUNT(started), 0) * 100, 2) as start_to_complete,
    ROUND(COUNT(purchased)::decimal / NULLIF(COUNT(completed), 0) * 100, 2) as complete_to_purchase,
    ROUND(COUNT(purchased)::decimal / NULLIF(COUNT(viewed), 0) * 100, 2) as overall_conversion
FROM funnel;
コホートリテンション分析
-- Weekly cohort retention
WITH cohort_data AS (
    SELECT
        user_id,
        DATE_TRUNC('week', first_seen) as cohort_week,
        DATE_TRUNC('week', activity_date) as activity_week
    FROM user_activity
),
cohort_size AS (
    SELECT
        cohort_week,
        COUNT(DISTINCT user_id) as users
    FROM cohort_data
    GROUP BY cohort_week
),
retention AS (
    SELECT
        c.cohort_week,
        EXTRACT(WEEK FROM c.activity_week - c.cohort_week) as week_number,
        COUNT(DISTINCT c.user_id) as retained_users
    FROM cohort_data c
    GROUP BY c.cohort_week, week_number
)
SELECT
    r.cohort_week,
    cs.users as cohort_size,
    r.week_number,
    r.retained_users,
    ROUND(r.retained_users::decimal / cs.users * 100, 2) as retention_rate
FROM retention r
JOIN cohort_size cs ON r.cohort_week = cs.cohort_week
ORDER BY r.cohort_week, r.week_number;

主な指標

指標計算式ベンチマーク
コンバージョン率コンバージョン数 / 訪問者数2-5%(状況によって異なります)
CACマーケティング費用 / 新規顧客数業界によって異なります
LTVARPU × 平均顧客存続期間CACの最低3倍
回収期間CAC / 顧客あたりの月間売上<12か月
NRR(開始時のMRR + 拡張 - 解約) / 開始時のMRR>100%
Kファクター招待数 × コンバージョン率バイラル成長には>1
DAU/MAU1日のアクティブユーザー数 / 月間アクティブユーザー数20-50%

バイラルループの設計

Types of Virality:
  inherent:
    description: Product requires others to use
    examples: Slack, Zoom, Dropbox sharing
    k_factor_potential: High (1.5-3.0)

  artificial:
    description: Incentivized referrals
    examples: Dropbox space, Uber credits
    k_factor_potential: Medium (0.5-1.5)

  word_of_mouth:
    description: Organic recommendations
    examples: Great products, NPS > 50
    k_factor_potential: Low-Medium (0.2-0.8)

Viral Loop Optimization:
  - Reduce friction in invite flow
  - Clear value proposition for inviter AND invitee
  - Multiple sharing channels
  - Timing of ask (after value delivered)
  - Social proof in referral message

ツールの習熟度

アナリティクス
  • プロダクト: Amplitude, Mixpanel, Heap
  • ウェブ: Google Analytics 4, Plausible
  • データウェアハウス: BigQuery, Snowflake
テスト
  • A/Bテスト: Optimizely, VWO, LaunchDarkly
  • 機能フラグ: Split, Flagsmith
  • セッション録画: FullStory, Hotjar
可視化
  • BI: Tableau, Looker, Mode
  • ダッシュボード: Metabase, Redash
アトリビューション
  • モバイル: Branch, Adjust, AppsFlyer
  • ウェブ: Segment, mParticle
自動化
  • ライフサイクル: Iterable, Customer.io, Braze
  • アプリ内: Appcues, Pendo, Intercom

ベストプラクティス

  1. 仮説主導 — すべての実験は仮説から始めます
  2. 統計的な厳密さ — 十分なサンプルサイズと有意性を確保します
  3. 変数は1つ — 一度に1つの変数をテストします
  4. 学びを記録 — 失敗した実験からも価値を得られます
  5. 迅速な反復 — 大規模なテストを1つ行うより、小規模なテストを多数行うほうが効果的です
  6. ノーススターメトリクスを重視 — 最重要指標を最適化します

コメント