第05章:ユーザープロパティで“層”を見る👥🔎
この章は「イベントは見えてきたけど、誰がやってるの?」を分けられるようになる回です📊✨ ざっくり言うと、ユーザープロパティはユーザーに付ける“タグ”🏷️で、同じイベントでも「初心者」「課金」「アバター設定済み」みたいに層別して見られます👀
1) ユーザープロパティって何?🏷️🙂

- ユーザーに紐づく属性(例:
plan/role/has_avatar)を送る仕組みです👤 - レポートの比較(Comparisons)や、オーディエンス(Audiences)の条件に使えます🎯
- ただし数に上限があり、プロジェクトあたり最大25個まで。名前は大文字小文字も区別されます(
Planとplanは別扱い)😇 - 使っちゃダメな予約語もあります(
Age/Gender/Interest)🚫 (Firebase)
2) 先に“設計のコツ”だけ押さえる🧠🧩
ここで雑にやると、あとで分析が地獄になります😇🌀
✅ コツA:値は「種類が少ない」ものにする

- 良い例:
plan = free | pro/has_avatar = true | false/role = admin | member👍 - ダメ例:
user_name = komiyamma(ユーザーごとにバラバラ)👎 → 値がバラけすぎると、分析が崩れます。
✅ コツB:個人情報は絶対に送らない🛑

メールアドレス・電話番号・氏名などのPII(個人を特定できる情報)は送らないルールです🙅♂️ (Google ヘルプ)
✅ コツC:名前は snake_case で短く統一🧼
- 例:
has_avatar/signup_method/ai_tier(命名ルールは運用の命です🧯)
おまけ:一般的に 名前は最大40文字などの制約があるので、長文は避けるのが安全です✂️ (Google ヘルプ)
3) 手を動かす①:Console側で「登録」する🖱️🧾

ユーザープロパティは、作っただけだとレポートで使えません。 まず Console の **Custom Definitions(カスタム定義)**で登録します🧾✨ (Firebase)
やることはシンプル👇
- Analytics の Custom Definitions を開く
- ユーザープロパティとして
planなどを追加 - 以後、比較やセグメント条件に使えるようになります🎛️
※反映は「すぐ」じゃないです。数時間かかることがあるので、焦らない😂 (Firebase)
4) 手を動かす②:Reactで user properties を付ける🧑💻🏷️

Web の場合は setUserProperties() を使います。公式の例はこんな感じ👇 (Firebase)
import { getAnalytics, setUserProperties } from "firebase/analytics";
const analytics = getAnalytics();
setUserProperties(analytics, { favorite_food: "apples" });
実戦:ミニアプリ向け「3つだけ付ける」🧩
例:
plan:free/pro(課金層)role:member/admin(権限層)has_avatar:true/false(プロフィール完成度)
Reactで「ログイン後にプロフィール読めたタイミング」で付けるのが楽です📌
import { getAnalytics, setUserProperties } from "firebase/analytics";
// 例:ログイン後に呼ぶ
export function applyUserProps(user: {
plan: "free" | "pro";
role: "member" | "admin";
hasAvatar: boolean;
}) {
const analytics = getAnalytics();
setUserProperties(analytics, {
plan: user.plan,
role: user.role,
has_avatar: user.hasAvatar ? "true" : "false",
});
}
👀ポイント
- boolean は
"true"/"false"の文字列にしておくと後で扱いやすいことが多いです🙂 - “いつ付ける?”は 1回でOK(ログイン直後 or プロフィール確定時)で十分👍
- 値が変わったら 同じキーで上書きすればOKです🔁
5) 手を動かす③:DebugViewで「本当に付いたか」見る🧯👀

Analytics は通常、イベントをまとめて送ります(約1時間単位のバッチ)⏳ でも DebugView を使うと ほぼリアルタイムに確認できます⚡ (Firebase)
Webでのデバッグ手順(いちばんラク)
- ブラウザに Google Analytics Debugger 拡張を入れて有効化 → リロード🔄
- その状態でアプリを操作
- DebugView を見ると、右側に Current User Properties が出ます👀 (Firebase)
※注意:デバッグモード中のイベントは、通常の集計や日次BigQueryエクスポートから除外されます(テスト汚染を防ぐため)🧼 (Firebase)
6) ミニ課題🎒✨
plan/role/has_avatarの3つを Custom Definitions に登録🧾- ログイン後に
applyUserProps()を1回呼ぶ🏷️ - DebugViewで Current User Properties をスクショ📸
- そのあと Explore/比較で「has_avatar=true の人だけ」みたいに切ってみる👥🔎
7) よくある詰まりポイント集🧯😇
-
Q. DebugViewに出ない! A. 拡張がONか、リロードしたか確認🔁(DebugViewはデバッグモードが鍵) (Firebase)
-
Q. レポートの比較条件に出てこない! A. Custom Definitions で登録した?🧾 さらに反映まで数時間かかることもあります⏳ (Firebase)
-
Q.
planとPlanが混ざった… A. 大文字小文字は別物として記録されます😇(運用ルールで固定!) (Firebase) -
Q. メールアドレス入れちゃダメ? A. ダメです🙅♂️(PII禁止) (Google ヘルプ)
8) AIで“設計”を一気に楽にする🤖🪄

「プロパティ何にする?」って悩むところ、AIにたたき台を出させるのが超効きます💡
- Gemini in Firebase:Console上での支援(設計・デバッグの相談に便利)🧠 (Firebase)
- Gemini CLI:ターミナルで「命名・イベント表・プロパティ表」を作らせやすい💻 (Google for Developers)
- Antigravity:エージェントで“調査→表→実装”をつなげやすい🛸 (Google Codelabs)
- Firebase AI Logic:アプリ側のAI機能と計測(例:AI整形を使った層)をつなげやすい🤝 (Firebase)
例:Gemini CLI に投げるお題(コピペ用)👇
あなたはGA4/Firebase Analyticsの設計者です。
メモ+画像+AI整形のミニアプリに適した「ユーザープロパティ」を最大5個提案してください。
条件:
- 値の種類が少ない(低カーディナリティ)
- PIIは含めない
- Remote Config/A-B/Performanceの改善に繋がる
各プロパティについて: key / 取りうる値 / 何が分かるか を表で。
まとめ🏁✨
この章でできたことはコレ👇
- ユーザープロパティで「層」を作る👥🏷️
- Reactで
setUserProperties()を入れる🧑💻 - DebugViewで“今の端末の属性”まで確認できる🧯👀 (Firebase)
次の章(第6章:ファネル🚪➡️🏁)に進むと、 「どの層が、どこで離脱してる?」が一気に見えるようになりますよ〜🔎📈