◉RORK LABEN
●GPT-6.1 SOL — Rork のモデルメニューに追加(09-29)。Low/Medium/High を選べ、Pro・Max に含まれます●SONNET 5.5 — UI づくりが得意で、Sonnet 5 より出力が速いモデルが選べます(09-28)●SDK 58 — Beta が 09/15 から。stable の案内はまだなく、Expo Go でのプロジェクト実行は 09/03 からログインが必要です●WIDGET — iOS のウィジェットが本番ビルドだけ真っ黒になる原因を追った報告が出ています●OBSERVE — EAS Observe がネイティブクラッシュも記録します(SDK 57.0.21 以降・10/07)●NEW — 起動広告が、背面から戻った回にしか出ていませんでした。「前面に戻った」合図が、…●GPT-6.1 SOL — Rork のモデルメニューに追加(09-29)。Low/Medium/High を選べ、Pro・Max に含まれます●SONNET 5.5 — UI づくりが得意で、Sonnet 5 より出力が速いモデルが選べます(09-28)●SDK 58 — Beta が 09/15 から。stable の案内はまだなく、Expo Go でのプロジェクト実行は 09/03 からログインが必要です●WIDGET — iOS のウィジェットが本番ビルドだけ真っ黒になる原因を追った報告が出ています●OBSERVE — EAS Observe がネイティブクラッシュも記録します(SDK 57.0.21 以降・10/07)●NEW — 起動広告が、背面から戻った回にしか出ていませんでした。「前面に戻った」合図が、…
記事一覧/開発ツール
⬡ 開発ツール/2026-04-04中級

Rork × PostHog でユーザー行動を可視化する — 離脱地点が見えるまでの導入手順

RorkアプリにPostHog(プロダクトアナリティクス)を導入してユーザー行動を可視化する方法を解説。イベントトラッキング・ファネル分析・フィーチャーフラグの実装手順を初心者にもわかりやすくご紹介します。

PostHog3プロダクトアナリティクスユーザー行動分析Expo219React Native239イベントトラッキングファネル分析

ダウンロード数の先が見えないという問題

アプリをリリースした後、「どの画面でユーザーが離脱しているのか」「新機能は実際に使われているのか」といった疑問を持ったことはないでしょうか。App Store Connect のデータはダウンロード数や収益の把握には役立ちますが、アプリ内でのユーザーの行動を細かく追うには力不足です。

そこで活躍するのがプロダクトアナリティクスツールです。ここではオープンソースかつ高機能な PostHog を Rork アプリに導入し、ユーザー行動の可視化・分析を始める方法をステップバイステップで解説します。

この記事で学べること:

  • PostHog の特長と料金体系
  • Rork(React Native / Expo)プロジェクトへの SDK 導入手順
  • 基本的なイベントトラッキングの実装
  • ユーザー識別(identify)の設定
  • ファネル分析とフィーチャーフラグの活用

PostHog とは

PostHog は、製品チームがユーザー行動を理解するために必要な機能を一つのプラットフォームに集約した、オープンソースのプロダクトアナリティクスツールです。

主な機能は次の通りです。

  • イベント分析: 任意のユーザーアクションをトラッキングし、グラフやファネルで可視化できます
  • セッションリプレイ: ユーザーが実際にどのように画面を操作したかを録画して確認できます(モバイルでは対応プラットフォームに制限あり)
  • ファネル分析: 「登録→プロフィール設定→課金」といった複数ステップの完了率を把握できます
  • フィーチャーフラグ: コードを変更せずに特定のユーザーグループだけに新機能を公開できます
  • A/B テスト: 異なる UI や文言の効果を定量的に比較できます

料金は月間 100 万イベントまで無料(クラウド版)で、個人開発・スモールビジネスには十分な規模です。また、セルフホスト版(Docker)を利用すれば、データを自社サーバーで管理することも可能です。

類似ツールとして Mixpanel・Amplitude がありますが、PostHog はオープンソースである点と、フィーチャーフラグ・セッションリプレイ・A/B テストをすべて無料枠で使える点が大きな魅力です。


Step 1: PostHog アカウントの作成と API キーの取得

まず PostHog クラウド にアクセスし、アカウントを作成します。

アカウント作成後、プロジェクトを新規作成し、Project API key(phc_ で始まる文字列)を取得します。この API キーは後で使用するため、安全な場所に控えておきましょう。

API キーは PostHog ダッシュボードの「Settings → Project → Project API Key」から確認できます。


Step 2: SDK のインストール

Rork プロジェクトのターミナルで以下のコマンドを実行します。

# posthog-react-native SDK のインストール
npm install posthog-react-native
 
# Expo を使用している場合は追加パッケージも必要
npx expo install expo-file-system expo-application expo-device expo-localization

インストールが完了したら、アプリのエントリーポイント(App.tsx または _layout.tsx)に PostHog プロバイダーを追加します。

// app/_layout.tsx(Expo Router の場合)
import { PostHogProvider } from 'posthog-react-native';
 
export default function RootLayout() {
  return (
    <PostHogProvider
      apiKey="YOUR_POSTHOG_API_KEY"  // phc_ で始まるプロジェクトAPI キー
      options={{
        host: 'https://us.i.posthog.com',  // EU リージョンは https://eu.i.posthog.com
      }}
    >
      {/* 既存のレイアウトコンポーネント */}
      <Stack />
    </PostHogProvider>
  );
}

注意: YOUR_POSTHOG_API_KEY の部分は、環境変数(.env ファイルの EXPO_PUBLIC_POSTHOG_KEY)を使って管理することをおすすめします。コードに直接埋め込む場合でも、phc_ で始まる PostHog の公開 API キーは秘密情報ではなくクライアントサイド向けに設計されており、GitHub Secret Scanning の対象外です。


Step 3: 基本的なイベントトラッキング

SDK の設定が完了したら、ユーザーの行動を記録するイベントを実装します。usePostHog フックを使って、任意のコンポーネントからイベントを送信できます。

// components/SubscribeButton.tsx
import { TouchableOpacity, Text } from 'react-native';
import { usePostHog } from 'posthog-react-native';
 
export function SubscribeButton() {
  const posthog = usePostHog();
 
  const handlePress = () => {
    // イベントのキャプチャ(第2引数でプロパティを付与)
    posthog.capture('subscribe_button_tapped', {
      screen: 'HomeScreen',
      plan: 'pro',
    });
 
    // 実際の課金処理をここに実装
  };
 
  return (
    <TouchableOpacity onPress={handlePress}>
      <Text>Pro プランに登録する</Text>
    </TouchableOpacity>
  );
}

イベント名はスネークケース(subscribe_button_tapped)で統一することが推奨されています。プロパティには画面名・ユーザーの属性・セッション情報など、分析に役立つ情報を自由に追加できます。


Step 4: ユーザー識別(identify)の設定

匿名ユーザーとして記録されたイベントを、ログイン後に特定のユーザーに紐付けるには identify メソッドを使います。

// hooks/useAuth.ts
import { usePostHog } from 'posthog-react-native';
 
export function useAuth() {
  const posthog = usePostHog();
 
  const signIn = async (userId: string, email: string) => {
    // サインイン処理(Firebase Auth や Supabase Auth など)
    await performSignIn(userId);
 
    // PostHog にユーザー情報を紐付け
    posthog.identify(userId, {
      email: email,
      plan: 'free',            // ユーザーの属性情報
      created_at: new Date().toISOString(),
    });
  };
 
  const signOut = async () => {
    await performSignOut();
 
    // サインアウト時は reset() でセッションを切る
    posthog.reset();
  };
 
  return { signIn, signOut };
}

identify を呼び出すことで、サインイン前後のイベントが同一ユーザーの行動として結合され、より正確なユーザージャーニーの分析が可能になります。


Step 5: ファネル分析で離脱ポイントを把握する

ファネル分析は、複数ステップからなるユーザーフローの完了率を把握するための機能です。たとえば「オンボーディング → 会員登録 → 課金完了」というフローで、どのステップで最も離脱が起きているかを可視化できます。

実装は非常にシンプルで、各ステップでイベントをキャプチャするだけです。

// screens/Onboarding.tsx — オンボーディング画面の各ステップ
const handleStep1Complete = () => {
  posthog.capture('onboarding_step1_completed'); // プロフィール設定完了
  setStep(2);
};
 
const handleStep2Complete = () => {
  posthog.capture('onboarding_step2_completed'); // 通知設定完了
  setStep(3);
};
 
const handleOnboardingComplete = () => {
  posthog.capture('onboarding_completed');       // オンボーディング全体完了
  router.push('/home');
};

PostHog ダッシュボードの「Funnels」セクションでこれらのイベントを順番に並べると、各ステップの通過率と離脱率が自動的に算出されます。

より詳細なユーザー行動の分析手法については、Rork アプリ パフォーマンス最適化完全ガイド も参考にしてみてください。ユーザー体験の改善とパフォーマンス最適化は密接に関連しています。


Step 6: フィーチャーフラグで安全に新機能をリリースする

フィーチャーフラグを使うと、アプリをアップデートすることなく、特定のユーザーグループだけに新機能を公開できます。これにより、新機能が本当に効果的かどうかを小規模なグループで検証してからロールアウトすることが可能になります。

// components/NewFeatureBanner.tsx
import { useFeatureFlagEnabled } from 'posthog-react-native';
 
export function NewFeatureBanner() {
  // PostHog ダッシュボードで 'new-dashboard-ui' というフラグを作成しておく
  const isEnabled = useFeatureFlagEnabled('new-dashboard-ui');
 
  if (!isEnabled) return null;
 
  return (
    <View>
      <Text>✨ 新しいダッシュボードをお試しください!</Text>
    </View>
  );
}

PostHog ダッシュボードから、フラグを有効にするユーザーの割合(例: 全体の 10%)や、特定のユーザーグループ(例: plan = 'pro' のユーザー)を指定できます。


まとめ

PostHog を Rork アプリに導入することで、ユーザーの行動を定量的に把握し、改善の優先順位を根拠ある数字で判断できるようになります。

今回紹介した内容をまとめると次の通りです。

  • PostHog はイベント分析・ファネル・フィーチャーフラグを無料枠で利用できる強力なプロダクトアナリティクスツール
  • posthog-react-native SDK を使えば Rork(Expo)プロジェクトに数ステップで導入できる
  • capture でイベントを記録し、identify でユーザーに紐付けることで精度の高い分析が可能になる
  • ファネル分析で離脱ポイントを特定し、フィーチャーフラグで安全に新機能を検証できる

アプリの「感覚」ではなく「データ」に基づいた意思決定は、個人開発者が限られたリソースを最大限に活かすための重要なスキルです。ぜひ本記事を参考に、自分のアプリに PostHog を導入してみてください。

データ活用をさらに深めたい方には、Rork × RevenueCAT 課金完全実装ガイド もあわせておすすめします。収益データと行動データを組み合わせることで、より精度の高い改善施策が立てられます。

シェア

お読みいただきありがとうございます

Rork Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

⬡ 開発ツール2026-09-10
画面を暗くする機能を足したら、アプリを閉じたあとも iPhone が暗いままでした
expo-brightness の setBrightnessAsync は、Android では現在のアクティビティにだけ効き、iOS では端末の明るさそのものを変えます。戻す責任が片側にしかない理由と、AppState で後始末をするフックの実装をまとめました。
⬡ 開発ツール2026-09-04
EAS の secret は「アプリに入れない」設定ではありません — 接頭辞と可視性を別々に決める
EXPO_PUBLIC_ の接頭辞は成果物に入るかを決め、EAS の可視性は誰が読めるかを決めます。二つを重ねたときに OTA 更新でだけ値が消える筋道と、出荷前に自分の手で確かめる手順をまとめました。
⬡ 開発ツール2026-09-01
expo-paste-input で画像を貼り付けられる入力欄を作り、消える file:// を documents へ逃がす
チャット入力に画像やGIFを貼り付けられるようにする expo-paste-input の実装手順です。onPaste が返す file:// は一時ファイルで、送信までの間に消えることがあります。保存先を移す実装と、実機で確かめる順番をまとめました。