firebase-analytics について
Flutter 開発者向けに Firebase Analytics の実装方法をまとめたスキルです。設定、イベントやユーザープロパティの記録、画面表示の追跡、データ収集の指針を扱います。
主な機能
- 01Firebase Analytics の設定
- 02定義済み・カスタムイベントの記録
- 03ユーザープロパティとデフォルトパラメータ
- 04画面表示の追跡
- 05DebugView による確認
活用シーン
- 01Flutter アプリへの分析機能の導入
- 02カスタムイベントとユーザー属性の記録
- 03GoRouter または Navigator での画面遷移追跡
- 04開発中の受信イベント確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ evanca/ flutter-ai-rules --skill firebase-analyticsインストール後、Claude Code で/firebase-analyticsを入力して読み込まれたか確認します。
詳細
Firebase Analytics スキル
このスキルでは、Flutter アプリケーションで Firebase Analytics を正しく実装する方法について、セットアップ、イベントのログ記録、ユーザープロパティ、データ収集のベストプラクティスを説明します。
使用するタイミング
以下のような場合にこのスキルを使用します。
- Flutter プロジェクトで Firebase Analytics をセットアップして構成する。
- 定義済みまたはカスタムの分析イベントをログに記録する。
- ユーザープロパティまたはデフォルトのイベントパラメーターを設定する。
- GoRouter または Navigator オブザーバーを使用して画面表示のトラッキングを実装する。
- コンバージョンファネルを構築する、またはユーザーのフローをトラッキングする。
1. セットアップと構成
flutter pub add firebase_analytics
flutter run
import 'package:firebase_analytics/firebase_analytics.dart';
// After Firebase.initializeApp():
FirebaseAnalytics analytics = FirebaseAnalytics.instance;
- Firebase Analytics の機能を使用する前に、Firebase を初期化してください。
- Analytics は一部のイベントとユーザープロパティを自動的にログに記録するため、これらには追加のコードは必要ありません。
- iOS でアプリが IDFA(広告識別子)を使用しない場合は、広告識別子に関する App Store の審査時の質問を避けるため、デフォルトの
FirebaseAnalytics依存関係の代わりに IDFA を使用しない Analytics の依存関係(Swift Package Manager ではFirebaseAnalyticsCore、CocoaPods ではFirebaseAnalytics/Core)を使用してください。- Swift Package Manager: ビルド時に
FIREBASE_ANALYTICS_WITHOUT_ADID=trueを設定します(FIREBASE_ANALYTICS_WITHOUT_ADID=true flutter build ios)。
- Swift Package Manager: ビルド時に
自動的な画面トラッキングのために Navigator オブザーバーを追加する
MaterialApp(
navigatorObservers: [
FirebaseAnalyticsObserver(analytics: FirebaseAnalytics.instance),
],
);
GoRouter の場合は、ルート変更時に画面表示を手動でログに記録します。
GoRouter(
observers: [FirebaseAnalyticsObserver(analytics: FirebaseAnalytics.instance)],
);
確認チェックリスト
FirebaseAnalytics.instanceにアクセスする前に、Firebase.initializeApp()が完了することを確認します。- アプリを実行し、Firebase DebugView コンソールで受信イベントを確認します。
- 自動イベント(
first_open、session_start)が追加のコードなしで表示されることを確認します。
2. イベントのログ記録
レポートで詳細な情報を得て、今後の Google Analytics の機能を利用できるようにするため、可能な場合は定義済みのイベントメソッドを使用します。
await FirebaseAnalytics.instance.logSelectContent(
contentType: "image",
itemId: itemId,
);
定義済みイベントとカスタムイベントの両方に、汎用の logEvent() メソッドを使用します。
await FirebaseAnalytics.instance.logEvent(
name: "select_content",
parameters: {
"content_type": "image",
"item_id": itemId,
},
);
カスタムイベントの例 — E コマースのカートへの追加
Future<void> logAddToCart(String productId, String productName, double price) async {
await FirebaseAnalytics.instance.logEvent(
name: 'add_to_cart',
parameters: {
'product_id': productId,
'product_name': productName,
'price': price,
'currency': 'USD',
},
);
}
- イベント名では大文字と小文字が区別されます。大文字と小文字だけが異なる名前は、別々のイベントとして扱われます。
- イベントタイプは最大 500 種類で、イベント総数に制限はありません。
- イベント名はアルファベットで始まり、英数字とアンダースコアのみを含み、40 文字以内である必要があります。
3. パラメーターとプロパティ
- パラメーター名は最大 40 文字で、アルファベットで始まり、英数字とアンダースコアのみを含む必要があります。
- 文字列のパラメーター値は最大 100 文字です。
firebase_、google_、ga_のプレフィックスは予約済みです。パラメーター名には使用しないでください。- 1 イベントにつき、カスタムパラメーターは最大 25 個です。
- レポートでディメンションまたは指標として使用するには、Analytics コンソールでカスタムパラメーターを登録してください。
今後のすべてのイベントに適用するデフォルトパラメーターを設定します(ウェブではサポートされていません)。
await FirebaseAnalytics.instance.setDefaultEventParameters({
'app_version': '1.2.3',
'environment': 'production',
});
デフォルトパラメーターをクリアするには、null を設定します。
4. ユーザープロパティ
await FirebaseAnalytics.instance.setUserProperty(
name: 'favorite_food',
value: favoriteFood,
);
デバイス間でイベントを関連付けるには、ユーザー ID を設定します。
await FirebaseAnalytics.instance.setUserId(id: 'user_12345');
- ユーザープロパティを使用する前に、Analytics コンソールでカスタム定義を作成してください。
- プロジェクトごとに設定できるカスタムユーザープロパティは最大 25 個です。
- オーディエンスのセグメンテーション、レポートのフィルタリング、または A/B テストのターゲティングには、ユーザープロパティを使用します。
5. ベストプラクティス
- ユーザーデータを収集する前に、特にプライバシー管理が厳格なプラットフォームでは、必要な権限をリクエストします。
- イベントやユーザープロパティに、機密情報や個人を特定できる情報を記録しないでください。
- カスタムイベントとパラメーターには、一貫した命名規則(snake_case)を使用します。
- 関連するイベントをグループ化し、ユーザーフローとコンバージョンファネルを追跡します。
- 開発中は Firebase コンソールの DebugView を使用します。物理デバイスで次のように有効にします。
- Android:
adb shell setprop debug.firebase.analytics.app <package_name> - iOS: Xcode のスキーム引数に
-FIRDebugEnabledを追加します。
- Android:
- DebugView にイベントが表示されることを確認し、実運用環境にデプロイする前にアナリティクスの実装をテストします。
参考資料
コメント
Markdown 対応