adding-analytics について
このスキルは、Web アプリに PostHog の分析機能を追加する手順を示します。SDK の設定とページビューの計測に加え、カスタムイベント、フラグ、セッションリプレイにも対応します。
主な機能
- 01Web フレームワークの判別
- 02PostHog SDK のインストール
- 03プロバイダーまたはモジュールの初期化
- 04SPA のページビュー計測
- 05カスタムイベントと任意のフラグ追加
活用シーン
- 01Web アプリにページビュー分析を追加
- 02指定された登録や購入イベントを計測
- 03機能フラグやセッションリプレイを有効化
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ revitalb-port/ skills-registry-demo --skill adding-analyticsインストール後、Claude Code で/adding-analyticsを入力して読み込まれたか確認します。
詳細
アナリティクスの追加(PostHog)
ユーザーがウェブアプリケーションへのアナリティクス、イベントトラッキング、ページビュー、フィーチャーフラグ、またはセッションリプレイの追加を依頼した場合に、このスキルを使用します。
手順
-
フレームワークを特定する —
next.config.*、vite.config.*、package.jsonのスクリプト、またはindex.htmlを確認し、Next.js、React(Vite/CRA)、Vue、Svelte、またはプレーンな HTML のどれかを判別します。 -
SDK をインストールする
- Next.js / React:
npm install posthog-js - Next.js(サーバーサイド):
npm install posthog-js posthog-node - Python:
pip install posthog - Node.js バックエンド:
npm install posthog-node
- Next.js / React:
-
プロバイダー/初期化モジュールを作成する
-
Next.js App Router の場合は、
app/providers.tsxを作成します。"use client"; import posthog from "posthog-js"; import { PostHogProvider as PHProvider } from "posthog-js/react"; import { useEffect } from "react"; export function PostHogProvider({ children }: { children: React.ReactNode }) { useEffect(() => { posthog.init(process.env.NEXT_PUBLIC_POSTHOG_KEY!, { api_host: process.env.NEXT_PUBLIC_POSTHOG_HOST ?? "https://us.i.posthog.com", capture_pageview: false, // we capture manually for SPAs }); }, []); return <PHProvider client={posthog}>{children}</PHProvider>; } -
ルートレイアウトで
<PostHogProvider>を使って{children}をラップします。 -
Pages Router の場合は、
useEffect内で_app.tsxを初期化します。
-
-
ページビューのトラッキングを追加する — SPA の場合は、フレームワークのルーターイベントを使い、ルート変更時に
posthog.capture('$pageview')を呼び出すコンポーネントを作成します。 -
.env変数を追加する — PostHog プロジェクトの API キーとホストをユーザーに確認します。NEXT_PUBLIC_POSTHOG_KEY=phc_... NEXT_PUBLIC_POSTHOG_HOST=https://us.i.posthog.comこれらのキーを
.env.exampleにも追加します。 -
カスタムイベントを追加する — ユーザーがトラッキングするイベント(例:登録、購入)を指定した場合は、該当するハンドラーに
posthog.capture("event_name", { ...properties })の呼び出しを追加します。 -
フィーチャーフラグ(任意) — 依頼された場合は、
posthog.isFeatureEnabled("flag-name")またはuseFeatureFlagEnabledフックの使い方を示します。 -
セッションリプレイ(任意) — 依頼された場合は、初期化設定に
session_recording: { maskAllInputs: false }を追加して有効にします。
注意事項
- API キーをハードコードしないでください。必ず環境変数を使用します。
- プロジェクトに Content Security Policy が設定されている場合は、
posthog-jsを追加します。 - モノレポの場合は、ルートではなく UI をレンダリングするパッケージにインストールします。