Mobile Feature
Overview
アプリ開発にて必要となる要件をまとめているセクション。
🔄 Firebase SDK → AWS構成 変換ガイド
イベント追跡の設計変換表
Firebase SDK の内容 | AWSでの置き換え方 | 備考 |
---|---|---|
logEvent("screen_view", ...) | アプリでイベント発火 → Fargate API → Kinesis Firehose | 画面表示イベントを自前で定義し POST。名前付け自由。 |
logEvent("purchase", { value: 120 }) | 同上 → カスタムイベント名で送信(e.g. purchase_event ) | イベント構造を自分で自由に設計可 |
ユーザー属性の設定(setUserProperty ) | ユーザーテーブルを DynamoDB 等に分離して保持 | 属性に基づく分析は Athena/Redshiftで実施 |
自動収集イベント(first_open など) | アプリ初回起動時に独自イベント送信 | アプリ起動時に一度だけ送るイベントとして定義 |
setUserId(uid) | Authorization 層で user_id を常に付与 | JWTなどを使い、user_idを API経由で一貫して保持 |
デフォルトSDKパラメータ(os, app_verなど) | クライアント側で明示的に送信 | 必要に応じて header や body に含める |
🎯 実装観点(イベント設計)
- イベント名の命名規則:
screen_view_top
,button_click_login
,purchase_complete
などcategory_action_object
形式にすると集計しやすい。
- 属性(parameters)の粒度:
- Firebase 同様に
item_id
,amount
,screen_name
などを JSON に含める。
- Firebase 同様に
- トラッキング送信の方法:
POST /analytics/event
のような統一エンドポイントを Fargate 側に設け、全イベントはそこに送信。- API Gateway → Lambda → Kinesis にしてもOK(サーバーレス構成)。
📊 分析・可視化パイプライン
アプリ SDK
↓ POST
Fargate (Node.js / Go 等で API 実装)
↓
Kinesis Firehose
↓
S3 (Parquet or JSON Lines)
↓
Athena もしくは Redshift (SQL 分析)
↓
QuickSight (ダッシュボード)
- S3 に溜まる JSON 構造の設計がキモ。
- Firebase のイベントビュー相当の分析は、Athena のビューと QuickSight で代替可能。
💡 Tips
- デバッグ用に CloudWatch Logs にも流す設計を入れておくとトラブルシュートしやすい。
- Kinesis のスキーマを意識した JSON 設計を行うと Athena が爆速になる。
- IAM周りが複雑になるので、ロール分離をしっかり設計する。
📱 クライアントSDK実装例(Flutter)
Firebase SDK の代替として、アプリ側では以下のように独自イベント送信を実装する:
await http.post(
Uri.parse('https://your-api.com/analytics/event'),
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer $jwtToken',
},
body: jsonEncode({
'event': 'screen_view_top',
'user_id': userId,
'timestamp': DateTime.now().toIso8601String(),
'params': {
'screen_name': 'Home',
'os': 'iOS',
'app_version': '1.0.0',
}
}),
);
🧬 イベントスキーマ設計ガイドライン • event(string): イベント名(snake_caseで統一) • user_id(string): ユーザーID(匿名化含む) • timestamp(ISO8601): イベント発生時刻 • params(object): イベントパラメータ
推奨例:
{
"event": "purchase_complete",
"user_id": "abc123",
"timestamp": "2025-06-08T12:34:56Z",
"params": {
"item_id": "sku_001",
"amount": 1200,
"currency": "JPY"
}
}
🧪 テスト・モニタリング • CloudWatch Logs に流して動作確認ログを出す • Athena で下記のようなクエリを定義しておくと便利:
SELECT event, COUNT(*) FROM mobile_events WHERE event_time >= current_date - interval '1' day GROUP BY event;
• 異常系は Lambda の DLQ や API 側のログで監視・アラート設計を
なぜ Firebase はアプリ領域で強いのか? • SDK導入だけで即使える:Firebase SDK を数行追加すればイベント計測開始 • Google製で Android との親和性が高い:特に Android アプリでは圧倒的な標準感 • 無料枠が手厚い:スタートアップ・検証段階での導入障壁が極めて低い • 機能が一体化されている:認証・通知・分析・設定変更・クラッシュログなどが1つのサービスに • UI/UXが良い管理コンソール:マーケターやPMでも自走しやすい管理画面
もし再度追記したい場合は、編集ができるようになったらもう一度教えてください。コピペで済ませたい場合は、このまま貼り付けてOKです!