Open10
FlutterとFirebaseAnalyticsでイベントログ計測する
導入はすでに対応ずみ
class AnalyticsApplicationService {
static final FirebaseAnalytics firebaseAnalytics = FirebaseAnalytics();
static final FirebaseAnalyticsObserver observer =
FirebaseAnalyticsObserver(analytics: firebaseAnalytics);
}
このクラスを拡張する
firebaseAnalytics自体はpublicにする必要がなさそう
class AnalyticsService {
static final FirebaseAnalytics _firebaseAnalytics = FirebaseAnalytics();
static final FirebaseAnalyticsObserver observer =
FirebaseAnalyticsObserver(analytics: _firebaseAnalytics);
static Future<void> setUserId(int id) async {
await _firebaseAnalytics.setUserId(id.toString());
}
static Future<void> clickOrderListItem(int orderId) async {
_firebaseAnalytics.logEvent(
name: AnalyticsEventName.select_content.toString(),
parameters: {
AnalyticsEventParameter.content_type.toString():
AnalyticsEventSelectContentType.order.toString(),
AnalyticsEventParameter.id.toString(): orderId,
});
}
}
enum AnalyticsEventName {
select_content,
}
enum AnalyticsEventParameter {
content_type,
id,
}
enum AnalyticsEventSelectContentType {
order,
}
こんな感じかな
※firebaseAnalytics().logSelectContent
もあるけど、追加ののプロパティを設定するようなIFになっていなかったので生のlogEventを利用した
logSelectContent
内ではselect_content
を文字列で設定していたので、constant定義はなさそう。なので自分でenumを定義した
enumのtoString()
だとEnum名.要素名
として出力されるが、それだと Name must consist of letters, digits or _ (underscores)
とエラーメッセージが出力されてNGだった。
ライブラリ使ってEnum名は含めないように修正した