marketing-product-analytics について
プロダクト、グロース、データチーム向けに、イベント設計、計測実装、品質確認、指標分析を扱うスキルです。North Star のアクティベーションイベントと最小限のイベント設計を軸に、複数の分析プラットフォーム向けの手順とテンプレートを提供します。
主な機能
- 01North Star アクティベーションイベントの定義
- 02イベント名・プロパティ・計測計画の設計
- 03PostHog などを使った計測実装
- 04イベント品質・プライバシー・本番運用の確認
- 05ファネル・継続率・アトリビューション分析の資料
活用シーン
- 01SaaS プロダクトのイベント計測計画の作成
- 02イベントの欠落や重複送信の調査
- 03アクティベーション指標の定義と継続率分析
- 04計測変更のリリース前品質チェック
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ vasilyu1983/ ai-agents-public --skill marketing-product-analyticsインストール後、Claude Code で/marketing-product-analyticsを入力して読み込まれたか確認します。
詳細
プロダクト分析 - 計測と測定の OS
最新のベストプラクティス(2026 年 1 月):PostHog を優先し、セッションコンテキストを登録し、イベント命名を厳格化し、North Star アクティベーションイベントを定め、プライバシーを優先したアトリビューションを行います。
主な情報源は data/sources.json にあります。ウェブ検索が利用できる場合は、確定的なアドバイスを行う前に、公式ドキュメントで最新情報を確認してください。
無駄な説明は不要です。実行可能な手順、テンプレート、チェックリストのみを記載してください。
このスキルを使用する場面
- イベント分類の設計:命名規則、イベント階層、プロパティ構造
- トラッキング計画の作成:何を、どこで、なぜ追跡するか
- マーケティングアトリビューション:UTM の取得、キャンペーンの追跡、流入元のアトリビューション
- アクティベーション指標:ユーザーアクティベーションの定義と測定
- リテンション分析:コホート分析、チャーン予測、エンゲージメントスコアリング
- プラットフォームの設定:PostHog、Pendo、Amplitude、Mixpanel、Heap の設定
- データ品質:イベントの検証、デバッグ、ガバナンス
デフォルトのワークフロー(ユーザーから変更の指示がない限り使用)
- 目標と制約を明確にする:ビジネス上の課題、ライフサイクルの段階、ID モデル、プライバシー/同意の要件、プラットフォーム(ウェブ/モバイル/バックエンド)。
- North Star バリューイベントを定義する:受け取った価値を表す単一の標準イベント(および最小限の補助イベント群)。
- トラッキング計画を作成する:出発点のテンプレートとして
assets/tracking-plan-saas.mdを使用し、必須プロパティと担当者を定義します。 - 計測を実装する:クイックリファレンスのプラットフォームガイドを選択します(PostHog/Pendo/Amplitude/Mixpanel/Heap。必要に応じてサーバーサイドを使用)。
- QA と堅牢化を行う:
assets/analytics-qa-checklist.md+references/event-quality-rules.md+references/production-hardening.mdを使用します。
基本原則
1. North Star バリューイベント(必須)
すべてのプロダクトに、標準となるアクティベーションイベントを 1 つ定める必要があります。これは「ユーザーが実際の価値を受け取った」ことを示す唯一のイベントです。
| プロダクトの種類 | North Star イベント | 発生タイミング |
|---|---|---|
| コンテンツ/メディア | content_consumed | コンテンツが完全に読み込まれ、表示されたとき |
| SaaS ツール | workflow_completed | ユーザーが主要なワークフローを完了したとき |
| Eコマース | purchase_completed | 取引が成功したとき |
| 開発者向けツール | integration_working | 最初の API 呼び出しが成功したとき |
ルール:すべての機能イベントは、次のプロパティを持つ 1 つのアクティベーションイベントに集約できるようにします。
// PASS CORRECT: One event, differentiated by property
posthog.capture('value_delivered', { value_type: 'report', value_id: 'rpt_123' });
posthog.capture('value_delivered', { value_type: 'integration', value_id: 'int_456' });
// FAIL WRONG: Fragmented "value" events (harder to unify in retention/funnels)
posthog.capture('report_generated');
posthog.capture('integration_working');
2. 最小限の実用的な分析(MVA)
**イベントは 200 個ではなく、5~15 個から始めてください。**必要に応じていつでも追加できます。
| レイヤー | 必須イベント | 任意 |
|---|---|---|
| 獲得 | page_viewed、signup_completed | campaign_landed |
| アクティベーション | アクティベーションイベント(最大 1~2 個) | onboarding_step_completed |
| エンゲージメント | エンゲージメントシグナル(最大 1~2 個) | feature_used |
| コンバージョン | purchase_completed | checkout_started |
認証の比重が高いプロダクトでは、早い段階でメールの到達性計測を追加します。
auth_email_requested(タイプ:signup_confirm、magic_link、reset_password)auth_email_delivered/auth_email_bounced/auth_email_complained(プロバイダーのウェブフックから取得)auth_email_link_clicked(完了品質のシグナルであり、送信量だけではありません)
3. セッションコンテキストの登録
posthog.register() を使用して、セッションごとに標準コンテキストを 1 回登録します。
posthog.register({
app_env: 'prod',
platform: 'web',
landing_path: window.location.pathname,
traffic_source: deriveTrafficSource(),
utm_source, utm_medium, utm_campaign
});
4. イベント命名規則
| ルール | 正しい例 | 誤った例 |
|---|---|---|
| 小文字のみ | user_signed_up | User_Signed_Up |
| スネークケース | button_clicked | buttonClicked |
| オブジェクト_アクション形式 | project_created | createProject |
クイックリファレンス
| タスク | リファレンス |
|---|---|
| PostHog のセットアップ | references/posthog-implementation.md |
| Pendo のセットアップ | references/pendo-implementation.md |
| Amplitude のセットアップ | references/amplitude-implementation.md |
| Mixpanel のセットアップ | references/mixpanel-implementation.md |
| Heap のセットアップ | references/heap-implementation.md |
| サーバーサイドトラッキング | references/server-side-tracking.md |
| プライバシーコンプライアンス | references/privacy-compliance.md |
| イベント品質ルール | references/event-quality-rules.md |
| 本番環境向けパターン | references/production-hardening.md |
| ファネル分析 | references/funnel-analysis.md |
| コホート維持率 | references/cohort-retention-analysis.md |
| 実験 | references/experimentation-framework.md |
| ユーザーセグメンテーション | references/user-segmentation.md |
| データガバナンス | references/data-governance.md |
| セッションリプレイとヒートマップ | references/session-replay-heatmaps.md |
| アトリビューションモデリング | references/attribution-modeling.md |
| トラッキングプランのテンプレート | assets/tracking-plan-saas.md |
| UTM 規約 | assets/utm-naming-standards.md |
実装チェックリスト
### Event Correctness
- [ ] Activation event fires only when value is **visible** (not on mount)
- [ ] Event includes required properties defined in the tracking plan (e.g., `object_type`, `object_id`, `surface`, `flow`)
- [ ] Dedupe guard used where re-renders can double-fire (see `references/production-hardening.md`)
- [ ] Event fires in **exactly one place** per feature
### Session Context
- [ ] `registerSessionContext()` called on app init
- [ ] Includes: `app_env`, `platform`, `landing_path`, `traffic_source`, UTMs
### Type Safety
- [ ] `TrafficSource` uses TypeScript enum, not free string
- [ ] All properties use `snake_case`
### Privacy
- [ ] Person properties contain **no PII** by default
- [ ] Email only stored with explicit consent
判断ツリー
### Not seeing expected events?
├─ PostHog default events visible? ($pageview, autocapture)
│ ├─ Yes -> Custom event bug -> Check component, guards, dedupe
│ └─ No -> SDK issue -> Check env vars, consent, ad blockers
├─ Check DevTools Network -> verify /e/ calls
└─ Check PostHog Live Events (not Activity)
### Can't answer business questions?
├─ Missing events -> Add custom events for key moments
├─ Missing properties -> Enrich with context
├─ No user ID -> Implement identify() calls
└─ Attribution gaps -> Capture UTMs, persist through signup
アンチパターンの概要
| アンチパターン | 代わりに |
|---|---|
| North Star イベントがない | 基準となるアクティベーションイベントを 1 つ定義します |
*_viewed イベントが多すぎる | プロパティを含む 1 つのイベントにまとめます |
| identify() に PII を含める | 状態ベースの識別のみを行います |
| 再レンダリングによるイベントの過剰送信 | isPostHogReady() ガードと重複排除を使用します |
自由入力の source | TrafficSource に TypeScript の enum を使用します |
| 一意でない ID | 安定したドメイン ID(*_id)または action_instance_id を使用します |
| あらゆるものをトラッキングする | 5~15 個の主要イベント(MVA)に集中します |
| 一貫性のない命名 | 小文字の snake_case を厳格に適用します |
詳しい例については、references/event-quality-rules.md を参照してください。
メトリクスとベンチマーク
社内のベースラインとトレンドラインを基本とし、外部ベンチマークは、条件と定義が同等のセグメントを比較する場合にのみ使用します。
外部の参考情報が必要な場合は、data/sources.json -> benchmarks_research を参照してください。
テンプレート
| テンプレート | 目的 |
|---|---|
| tracking-plan-saas.md | SaaS の完全なトラッキングプラン |
| marketing-event-library.md | マーケティングアトリビューションイベント |
| utm-naming-standards.md | UTM パラメーターガイド |
| activation-metrics-template.md | アクティベーション指標の定義 |
| analytics-qa-checklist.md | データ品質チェックリスト |
国際市場
このスキルでは、米国/英国の市場設定がデフォルトで使用されます。国際的なプロダクト分析については、以下を参照してください。
| 必要な項目 | 参照するスキル |
|---|---|
| 地域ごとのコンプライアンス(GDPR、PIPL、LGPD) | marketing-geo-localization |
| 地域ごとの分析プラットフォーム(Baidu Analytics) | marketing-geo-localization |
| 地域ごとのプライバシー要件 | marketing-geo-localization |
| 法域ごとの Cookie 同意 | marketing-geo-localization |
クエリの主な対象が GDPR/PIPL/LGPD または同意設定の場合は、このスキルとあわせて marketing-geo-localization を使用してください。
関連するスキル
- marketing-cro - A/B テスト、コンバージョン最適化
- marketing-leads-generation - リードファネル、B2B アトリビューション
- qa-agent-testing - LLM エージェントのテスト(AI 分析を補完)
- data-sql-optimization - 分析クエリ向け SQL
データソース
公式ドキュメントへのリンクは data/sources.json を参照してください。
運用ランブック:インストルメンテーションゲート(PR 前)
分析関連の変更を本番環境で安全に実行でき、クエリ可能な状態に保つために使用してください。
PR 前のコマンド
# 1) Find changed tracking calls
rg -n "capture\(|track\(|analytics\.|posthog\." src app lib
# 2) Enforce event/property naming policy
rg -n "[A-Z]" src | rg "capture\(|track\(" # quick camelCase/PascalCase smell
# 3) Validate tracking plan coverage
# (keep a single source of truth file; fail if event is missing)
rg -n "signup_started|signup_completed|checkout_started|trial_started" docs src
# 4) Run analytics gate test (if project defines one)
npm run test:analytics-gate
デプロイ後のスモーククエリテンプレート
-- Replace table names for your warehouse/provider
select event,
count(*) as events,
count(distinct distinct_id) as users
from events
where timestamp >= now() - interval '24 hour'
and event in ('signup_started','signup_completed','checkout_started','trial_started')
group by event
order by events desc;
イベント契約の最低要件
各重要イベントには、以下を含める必要があります。
- 安定したイベント名(snake_case)
- アクター ID(
user_idまたはdistinct_id) - オブジェクト ID(
*_id) - ソースコンテキスト(該当する場合は
surface、entry_point、utm_*) - サーバーまたは信頼できるクライアントクロックによるタイムスタンプ
ゲート失敗時のポリシー
- 重要イベントまたは必須プロパティが欠落している場合:マージをブロックします。
- 重要でないプロパティに差異がある場合:フォローアップの課題を作成する場合に限り、マージを許可します。
- イベント名を通知なく変更した場合:ダッシュボード/クエリの移行準備が整うまでマージをブロックします。