🐡

FlutterアプリにFirebase Analyticsを導入する手順

2025/04/12に公開

Flutter × Firebase Analyticsでユーザー行動を把握しよう

現在、1440taskという「就寝時間までの残り時間を意識しながら、今日やることを可視化するアプリ」を開発しています。今回はFirebase Analyticsを導入する手順を公開します。

Firebase Analyticsとは?

Firebase AnalyticsはGoogleが提供する無料のアプリ分析ツールです。ユーザーの行動データを収集して、どの画面がよく使われているか、どの機能が人気なのかを把握できます。これにより、アプリ改善の方向性が見えてきます。

導入手順

1. Firebaseプロジェクトの作成

まずはFirebaseコンソール(https://console.firebase.google.com)にアクセスしてプロジェクトを作成します。

  • Firebaseコンソールで「プロジェクトを追加」をクリック
  • プロジェクト名を入力し、必要に応じてGoogle Analyticsを有効化
  • プラットフォーム(Android/iOS/Webなど)を選択して設定

2. 必要なパッケージのインストール

FlutterでFirebase Analyticsを利用するには以下のパッケージが必要です。ターミナルで以下のコマンドを実行します:

flutter pub add firebase_core
flutter pub add firebase_analytics

これでfirebase_core(Firebase全体の初期化用)とfirebase_analytics(Analytics用)がプロジェクトに追加されます。

3. Firebase初期化

main.dartファイルでFirebaseを初期化します。以下のコード例をご覧ください:

import 'package:firebase_core/firebase_core.dart';
import 'firebase_options.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(
    options: DefaultFirebaseOptions.currentPlatform,
  );
  runApp(MyApp());
}
  • firebase_options.dart はFlutterFire CLIで自動生成されるファイルです
  • Firebase.initializeApp() を呼び出すことでFirebaseが初期化されます

4. スクリーンイベント送信

画面遷移時にスクリーンイベント(どの画面が表示されたか)を送信するには、以下のコード例をご参考ください:

import 'package:firebase_analytics/firebase_analytics.dart';
import 'package:firebase_analytics/observer.dart';

class MyApp extends StatelessWidget {
  
  Widget build(BuildContext context) {
    return MaterialApp(
      navigatorObservers: [
        FirebaseAnalyticsObserver(analytics: FirebaseAnalytics.instance),
      ],
      home: HomePage(),
    );
  }
}

これで画面遷移時に自動的にスクリーンイベントが送信されます。

5. 動作確認

Firebase Analyticsが正しく動作しているか確認するために、意図的なイベント送信コードを追加します:

ElevatedButton(
  onPressed: () {
    FirebaseAnalytics.instance.logEvent(
      name: 'test_event',
      parameters: {'key': 'value'},
    );
  },
  child: Text('イベント送信'),
),

このボタンを押すと、Firebaseコンソールでイベントが確認できるはずです!

まとめ

Firebase Analyticsを導入することで、ユーザーの行動データを収集し、アプリの改善に役立てることができます。導入も比較的簡単なので、ぜひ試してみてください。


Discussion