LoginSignup
0
0

【Flutter】Firebase Analytics を導入する

Posted at

概要

この記事では、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/ 以下に配置しています。

analytics.dart
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ダッシュボードで確認可能です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0