Skip to main content

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 に含める。
  • トラッキング送信の方法
    • 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周りが複雑になるので、ロール分離をしっかり設計する。

Firebaseがサポートしている機能

📱 クライアント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です!