概要
この記事では、Firebase Analytics 10系を利用したFlutterアプリケーションへの導入方法を解説します。
Firebaseの基本設定に関しては触れませんので、予め設定を完了していることを前提とします。
準備
Firebase Analytics のパッケージを追加
flutter pub add firebase_analytics
パッケージの詳細は以下で確認できます。
10系の書き方は少し違う部分があるので古い記事を参考にされる方は気をつけてください。
https://pub.dev/packages/firebase_analytics
実装
Firebase Analytics クラスの作成
Firebase Analyticsのインスタンスをシングルトンパターンで生成するためのクラスを定義します。
このようなシングルトンパターンの利点は、アプリ全体で一つのインスタンスのみが生成され、リソースを節約できることに加え、どこから呼び出しても一貫した状態管理を実現できることです。
自分はこのようなファイルは lib/service/
以下に配置しています。
import 'package:flutter/foundation.dart';
import 'package:firebase_analytics/firebase_analytics.dart';
class AnalyticsService {
AnalyticsService._();
static final AnalyticsService instance = AnalyticsService._();
final FirebaseAnalytics _analytics = FirebaseAnalytics.instance;
AnalyticsService() {
// デバッグモードでは有効化しない
if (kDebugMode) {
_analytics.setAnalyticsCollectionEnabled(false);
}
}
// Getter for Firebase Analytics instance
FirebaseAnalytics get analytics => _analytics;
}
イベントの送信
イベント名のみで送信
次の例では、イベント名のみをFirebase Analyticsに送信します。
AnalyticsService.instance.analytics.logEvent(
name: 'sort_option_selected',
)
パラメータ付きイベントの送信
parameters 引数にマップ形式でデータを指定することで、イベントに詳細なパラメータを追加できます。
AnalyticsService.instance.analytics.logEvent(
name: 'sort_option_selected',
parameters: <String, dynamic>{
'sort_option': thisSortBy.title,
},
);
このように parmaeters
引数にmap形式でデータをいれることでイベントの詳細なパラメータを設定することができます。
特定の主要なイベント(例:AddToCart、AppOpen)には、Firebase Analyticsが提供する専用の関数があります。詳細はFirebaseAnalyticsクラスのドキュメントを参照してください。
測定結果はタイムラグがありますが、通常は翌日にFirebaseダッシュボードで確認可能です。