ふくふくHukuhuku Inc.
EP.10KPI 10分公開: 2026-05-10

ログ設計の基本:イベント名・プロパティ・粒度

ログは「後から細かくはできない、後から粗くはできる」。命名規則・必須プロパティ・粒度設計で、3 年後に泣かないログを作る。

#ログ設計#イベント
シェア

ログ設計は「後から細かくはできない、後から粗くはできる」という非対称性が支配する世界。3 年後の自分や後任を救う設計を、最初の 2 週間で固める価値があります。本記事では、命名規則・必須プロパティ・粒度の判断基準を共有します。

イベント名の命名規則

  • snake_case:`item_acquired`, `payment_completed`
  • verb_object 順:「動詞_目的語」が読みやすい(`acquired_item` ではなく `item_acquired`)
  • 過去形で完了イベント:`item_acquired`(取った後の事実)
  • 現在形で進行中イベント:`payment_initiating`(処理中)
  • 特殊接頭辞は使わない:`evt_`, `track_` のような prefix は冗長

必須プロパティ(最低限の 5 セット)

プロパティ用途
user_idstring / null誰が(匿名なら null)
session_idstring1 セッション = 30 分無活動で区切る
event_iduuid重複検出用、必ず一意
timestamp_msint64ミリ秒精度のサーバー受信時刻
app_versionstringv1.2.3 形式、バグ調査の起点
device_idstringプラットフォームによっては必須
client_timestamp_msint64クライアント時刻、サーバーとの差分監視

粒度の決め方

クリック単位 vs 集約単位の判断は 「後から再現したい疑問の最小単位」で決める。例:「ボタンを連打したか」を見たいなら 1 クリック単位、「セッション内の総クリック数」だけ見たいなら集約 OK。

迷ったら「細かい方」

ストレージはタダ同然 で 1TB あたり月 $20)。疑問が後から増えることは確実なので、最初は最小粒度で出して、必要なら集約。逆をやると詰む。

スキーマ進化のルール

  • 新フィールド追加は OK:既存クエリは壊れない
  • フィールド削除は NG:過去ログを再処理できなくなる、`deprecated` プロパティを付けて使わなくなるだけ
  • 型変更は NG:string → int で過去データが壊れる、新フィールド作って移行
  • イベント名変更は NG:旧名のまま残し、新名は別イベントとして並行

GA4 vs Mixpanel vs 直送

項目GA4MixpanelDWH 直送
イベント数上限500/プロジェクト無制限無制限
プロパティ数25 / event100無制限
BigQuery 連携ネイティブ別途有料そのまま
価格感無料(GA4 360 で有料)$1000/月〜BigQuery 利用料のみ
向く規模全規模(探索弱)中堅〜大手データチームが居る企業

ふくふくの進め方

ログ設計を最初から固めたい」というご相談には、事業要件のヒアリング → イベント設計書 → 命名規則・必須プロパティ・粒度を 2 週間で。設計書はそのままエンジニアの実装仕様になり、後で揉めません。

次回予告

EP.11 はログ実装:GA4 / Mixpanel / 自社 DWH 直送の使い分け。ツール選定の判断基準と、フロント実装パターン。

シェア

この記事の感想を教えてください

あなたの 1 クリックで、本当にこの記事は更新されます。「もっと詳しく」「続編希望」が一定数集まった記事は、 ふくふくが 実際に内容を拡充したり続編記事を公開 します。 送信したリアクションはお使いのブラウザに記録され、再カウントされません。

シリーズの外も探す:

まずは、現状を聞かせてください。

要件が固まっていなくて大丈夫です。現状診断と方針提案までを無料でお手伝いします。

無料相談フォームへ hello [at] hukuhuku [dot] co [dot] jp