Merge branch 'main' into release
This commit is contained in:
54
lib/services/analytics_service.dart
Normal file
54
lib/services/analytics_service.dart
Normal file
@@ -0,0 +1,54 @@
|
||||
import 'package:firebase_analytics/firebase_analytics.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
|
||||
/// Service wrapper for Google Analytics
|
||||
class AnalyticsService {
|
||||
final FirebaseAnalytics _analytics = FirebaseAnalytics.instance;
|
||||
|
||||
FirebaseAnalyticsObserver getAnalyticsObserver() =>
|
||||
FirebaseAnalyticsObserver(analytics: _analytics);
|
||||
|
||||
Future<void> logEvent({
|
||||
required String name,
|
||||
Map<String, Object>? parameters,
|
||||
}) async {
|
||||
try {
|
||||
await _analytics.logEvent(name: name, parameters: parameters);
|
||||
} catch (e) {
|
||||
debugPrint('Error logging analytics event: $e');
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> setUserProperty({
|
||||
required String name,
|
||||
required String? value,
|
||||
}) async {
|
||||
try {
|
||||
await _analytics.setUserProperty(name: name, value: value);
|
||||
} catch (e) {
|
||||
debugPrint('Error setting user property: $e');
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> setUserId(String? id) async {
|
||||
try {
|
||||
await _analytics.setUserId(id: id);
|
||||
} catch (e) {
|
||||
debugPrint('Error setting user ID: $e');
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> logScreenView({
|
||||
required String screenName,
|
||||
String? screenClass,
|
||||
}) async {
|
||||
try {
|
||||
await _analytics.logScreenView(
|
||||
screenName: screenName,
|
||||
screenClass: screenClass,
|
||||
);
|
||||
} catch (e) {
|
||||
debugPrint('Error logging screen view: $e');
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user