[初心者ok] Flutter Google Analytics 攻略
Flutterで開発をしていて個人アプリでユーザの行動分析を行う場合や、マーケターからの要求でFirebase Analytics(Google Analytics) を使用するケースは多いのではないでしょうか。
本日は、その分析方法について記事を書きます。
こんな人におすすめ
・個人アプリで情報収集してマーケティングを行いたい
・マーケ側からの要求で適切に情報を収集したい
・Firebase Analyticsの使い方を知りたい
⭐️ 適切な方法で情報を収集し、Firebaseで分析できるようになります
最初に
まず、一度も使用したことがない場合はこちらをご覧ください。
自動的に収集されるイベントを把握しよう
Firebaseで、アナリティクスの使用を開始するとデフォルトで収集されるものと、
自分で収集するものに分けられます。
そのため、まず自動でどんなものが収集されるかみていきましょう!
以下のような情報が自動収集されている
-
first_open : ユーザーがアプリをインストールまたは再インストールした後に、初めて起動したときに発生するイベント
-
in_app_purchase : iTunesのApp StoreまたはGoogle Playで処理されるアプリ内購入をユーザーが完了したときに発生するイベント
-
notification_open : Firebase Cloud Messagingから送信された通知をユーザーが開いたときに発生するイベント
-
screen_view : スクリーンが移動したときに発生するイベント(条件あり)
💡 個人的にfirst_openでアプリがインストールされたことが確認できるので気に入っています。
アプリで推奨されるイベントを知ろう
こちらは、すべてのアプリで推奨されるイベント項目です。
とくに、課金系のアプリをだしている場合は、商品かごに入るタイミング。戻されるタイミングで
情報を追跡しA/Bテストなども交えながら、購入率をあげていきたいといった要望がでそうですよね!
ゲームやオンライン販売の推奨イベントもあるので以下をご参照ください。
⭐️ なんのログを取得したらいいんだって方の大きな味方になります
実装
それでは実装のほうに入っていきたいと思います。
その前に、今回紹介するよく使うメソット の全体像を抑えましょう!
💡よく使う メソット
だいたいプロジェクトでは以下のメソットをよく使ってます!
logEvent
ログ名を設定して イベント収集
setUserId
useridを取得して、特定のユーザに関連つけられたイベントの収集
setUserProperty
ユーザーの特定の属性を設定
setAnalyticsCollectionEnabled
アナリティクスデータの収集を有効または無効化
resetAnalyticsData
ユーザーデータをリセットします。これにより、ユーザーIDとすべてのユーザープロパティがクリアされる
logAppOpen
アプリが開かれたときにイベントを記録します。これはアプリの使用頻度を追跡する。
手順
それでは、実際にコードを書いていきます。
※ riverpodを使う前提で書いています。
直接インスタンス化する場合は以下です。
final FirebaseAnalytics analytics = FirebaseAnalytics.instance;
1. Firebase Analiticsの Providerを定義しよう。
import 'package:firebase_analytics/firebase_analytics.dart';
import 'package:riverpod_annotation/riverpod_annotation.dart';
part 'analytics_provider.g.dart';
@riverpod
FirebaseAnalytics firebaseAnalytics(FirebaseAnalyticsRef ref) {
return FirebaseAnalytics.instance;
}
2. DIする
final analitics = ref.read(firebaseAnalyticsProvider);
3. 活用事例
/// [logEvent]
/// 購入イベントで、ユーザが何を買ったか収集
analytics.logEvent(
name: 'purchase',
parameters: {
'item_id': '12345',
'item_name': 'widget',
'value': 15.99
}
);
/// [setUserId]
/// firebase authなどからuserIdを取得して設定
analitics.setUserId(id: "user0123");
/// [setUserProperty]
/// ユーザープロパティを設定
/// 事前に質問しておき、その結果を取得して設定する
/// 例)都道府県でTokyoの人を対象に情報収集するときなど
analitics.setUserProperty(
name: 'prefecture', value: 'tokyo');
/// [setAnalyticsCollectionEnabled]
収集の on offを切り替える
analitics.setAnalyticsCollectionEnabled(true);
/// [resetAnalyticsData]
/// ユーザーデータをリセット
/// ユーザーIDとすべてのユーザープロパティがクリア
analitics.resetAnalyticsData();
最後に
いかがだったでしょう。
あとは、Firebaseのコンソールで実際に確認ながらデータ収集をすると理解できると思います。
上記のほかに、Firebaseが推奨するイベントを追加した場合などは、適宜追加してください⭐️
次回は、 module化した router でのアナリティクスを挟む方法を紹介します。
一般的なこういうやり方とは異なるでぜひ期待してください!
return MaterialApp(
home: HomePage(),
navigatorObservers: [analyticsObserver],
);
}
Discussion
いい記事でした。ありがとうございます😀
こちらこそありがとうございます!