Flutter数据分析插件eanalytics的使用
Flutter数据分析插件eanalytics的使用
初始化
在您的应用的顶层调用Eulerian.init
方法以进行初始化。这将尝试同步任何本地存储的失败跟踪请求。
await Eulerian.init('test.domain.dev');
注意:对于iOS设备,您可以选择性地通过传递requestTrackingAuthorization
标志来请求跟踪授权。
跟踪事件
要跟踪EAProperties
,可以在Flutter应用的任何地方调用Eulerian.track
方法。如果POST请求失败,它将被存储在本地存储中以供将来重试。
Eulerian.track([
EAProducts(path: '/add/products')
..addProduct(Product(ref: 'p1', name: 'Product 1', group: 'test_group'))
]);
EAProperties 包括 EACart
, EAEstimate
, EAOrder
, EAProducts
, EASearch
。还有一些辅助模型用于构建 EAProperties
:Action
, Params
, Product
, Search
, SiteCentric
。
iOS设置
如果您计划使用广告标识符(advertising identifier),请确保更新您的Info.plist
文件,并添加NSUserTrackingUsageDescription
键,描述您的使用方式。
<key>NSUserTrackingUsageDescription</key>
<string>请求跟踪...</string>
在初始化EAnalytics时,传递requestTrackingAuthorization
标志以提示用户进行跟踪授权。
[@override](/user/override)
void initState() {
Eulerian.init('domain.name', requestTrackingAuthorization: true);
super.initState();
}
全局EAnalytics属性
EAnalytics会根据您的平台内部处理设置以下属性:
属性名称 | EAPropertyKey | iOS | Android | Web |
---|---|---|---|---|
ehw | EAPropertyKey.EHW | ✔ | ✔ | ✔ |
eos | EAPropertyKey.EOS | ✔ | ✔ | ✔ |
euidl | EAPropertyKey.EUIDL | ✔ | ✔ | ✘ |
ea-appname | EAPropertyKey.APPNAME | ✔ | ✔ | ✔ |
ea-appversion | EAPropertyKey.APP_VERSION | ✔ | ✔ | ✔ |
url | EAPropertyKey.URL | ✔ | ✔ | ✔ |
ea-ios-idfv | EAPropertyKey.IOS_IDFV | ✔ | ✘ | ✘ |
ea-ios-idfa | EAPropertyKey.IOS_ADID | ✔ | ✘ | ✘ |
ea-android-adid | EAPropertyKey.ANDROID_ADID | ✘ | ✔ | ✘ |
ereplay-time | EAPropertyKey.EPOCH | ✔ | ✔ | ✔ |
ea-flutter-sdk-version | EAPropertyKey.SDK_VERSION | ✔ | ✔ | ✔ |
(*) url属性在iOS上映射到bundleIdentifier,在Android上映射到getPackageName,在Web平台上映射到当前URL路径。
( ) ea-ios-idfv需要在iOS上初始化eanalytics时传递requestTrackingAuthorization
标志。
Flutter SDK版本
>=2.12.0 <3.0.0
示例代码
以下是一个完整的示例代码,展示了如何使用eanalytics
插件进行事件跟踪。
import 'package:eanalytics/eanalytics.dart' as EAnalytics;
import 'package:flutter/material.dart';
void main() {
runApp(MaterialApp(home: Home('EAnalytics Integration')));
}
class Home extends StatefulWidget {
Home(this.title) : super();
final String title;
[@override](/user/override)
_HomeState createState() => _HomeState();
}
class _HomeState extends State<Home> {
[@override](/user/override)
void initState() {
EAnalytics.Eulerian.init('et.eulerian.net',
requestTrackingAuthorization: true, enableLogger: true);
super.initState();
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Eulerian Analytics TRACKERS'),
),
body: GridView.count(
primary: false,
padding: const EdgeInsets.all(20),
crossAxisSpacing: 10,
mainAxisSpacing: 10,
crossAxisCount: 2,
children: [
OutlinedButton(
onPressed: () => EAnalytics.Eulerian.track([
EAnalytics.EAProperty(path: '/home')
..setLabel('lbl1,lbl2,,lbl4')
..setCustomParam('cpvKey', 'cpvTest')
..setEmail('johndoe@eulerian.dev')
..setProperty(EAnalytics.SiteCentric()
..addParam('prop', ['foo', 'baz']))
..setCFlag(
EAnalytics.SiteCentric()..addParam('cflag_', ['foo']))
]),
child: Text('EAProperty'),
),
OutlinedButton(
onPressed: () => EAnalytics.Eulerian.track([
EAnalytics.EAProducts(path: '/add/product')
..addProduct(EAnalytics.Product(
ref: 'p1',
name: 'Product 1',
group: 'group_of_doom',
parameters: EAnalytics.Params()
..addParam('foo', 'bar')
..addParam('baz', [1, 2, 3])))
]),
child: Text('Single product'),
),
OutlinedButton(
onPressed: () => EAnalytics.Eulerian.track([
EAnalytics.EAProducts(path: '/add/products')
..setLocation(latitude: 1.234543, longitude: 54.35322)
..setAction(
EAnalytics.Action(name: 'test', mode: 'in'))
..addProduct(EAnalytics.Product(
ref: 'p1', name: 'Product 1', group: 'group_of_doom'))
..addProduct(EAnalytics.Product(
ref: 'p2',
name: 'Product 2',
group: 'group_of_doom',
parameters: EAnalytics.Params()
..addParam('foo', {'baz': 'bar'})))
]),
child: Text('Multiple products'),
),
OutlinedButton(
onPressed: () => EAnalytics.Eulerian.track([
EAnalytics.EAActions(path: '')
..setStandalone()
..addAction(
EAnalytics.Action(
name: 'button1', mode: 'in'))
..addAction(
EAnalytics.Action(
name: 'lbldisplay', mode: null, label: 'label1,,label3' )
..setParams(
EAnalytics.Params()
..addParam('input', 'test')
..addParam('select', 'val1')
)
)
]),
child: Text('StandAloneAction'),
),
],
),
);
}
}
更多关于Flutter数据分析插件eanalytics的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter数据分析插件eanalytics的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是一个关于如何在Flutter项目中使用eanalytics
插件进行数据分析的代码示例。eanalytics
是一个假设的数据分析插件,用于说明如何在Flutter中进行集成和使用。实际使用时,你需要参考具体插件的官方文档和API。
首先,确保你的Flutter项目已经创建,并且在pubspec.yaml
文件中添加了eanalytics
依赖项(注意:以下代码中的eanalytics
是假设的,实际使用时请替换为真实插件名称):
dependencies:
flutter:
sdk: flutter
eanalytics: ^latest_version # 替换为实际插件的最新版本
然后,运行flutter pub get
来获取依赖项。
接下来,在Flutter项目的代码中集成eanalytics
插件。以下是一个简单的示例,展示如何初始化插件并进行事件追踪:
import 'package:flutter/material.dart';
import 'package:eanalytics/eanalytics.dart'; // 导入eanalytics插件
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Analytics Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
EAnalytics? analytics;
@override
void initState() {
super.initState();
// 初始化eanalytics插件
analytics = EAnalytics(
apiKey: 'your_api_key_here', // 替换为你的API密钥
);
// 配置插件(如果需要)
analytics?.configure(
flushInterval: 60, // 设置数据发送间隔(秒)
// 其他配置参数...
);
// 开始会话(如果需要)
analytics?.startSession();
}
@override
void dispose() {
// 结束会话(如果需要)
analytics?.endSession();
super.dispose();
}
void _trackEvent() {
// 追踪一个自定义事件
analytics?.trackEvent(
eventName: 'button_clicked',
properties: {
'button_name': 'submit',
'category': 'user_action',
},
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Flutter Analytics Demo'),
),
body: Center(
child: ElevatedButton(
onPressed: _trackEvent,
child: Text('Track Event'),
),
),
);
}
}
在这个示例中,我们完成了以下步骤:
- 在
pubspec.yaml
文件中添加了eanalytics
依赖项。 - 在
MyApp
的home
页面中初始化了EAnalytics
实例,并配置了必要的参数(如API密钥和发送间隔)。 - 提供了一个按钮,当用户点击该按钮时,会调用
_trackEvent
方法追踪一个自定义事件。
请注意,EAnalytics
类及其方法(如trackEvent
、configure
、startSession
和endSession
)是假设的,实际使用时请参考具体插件的API文档。
此外,确保你遵循插件的隐私政策和最佳实践,以保护用户数据的安全和隐私。