Flutter跟踪与数据分析插件leiratech_trackzero的使用
Flutter跟踪与数据分析插件leiratech_trackzero的使用
Usage
Initialization
在使用任何方法之前,初始化TrackZeroClient
实例并传入您的API密钥。
var instance = new TrackZeroClient("API-KEY");
Getting Started
TrackZero Instance
初始化TrackZero
实例后,可以在项目的任何地方获取该实例。
var instance = TrackZeroClient.getInstance();
Entity
实体是包含数据的对象。它可以代表现实世界中的任何对象。每个实体由其类型和ID定义。
创建一个实体对象
/// 初始化实体对象
///
/// [type] - 实体的类型
/// [id] - {String | int} - 实体的ID
Entity entity = new Entity("type", "id");
添加属性
/// 向实体添加自定义属性
///
/// [attribute] - 实体的属性名
/// [value] - 实体的属性值
entity.addAttribute("attribute", "value");
添加引用其他实体的属性
/// 向实体添加与另一个实体相关的自定义属性
///
/// [attribute] - 实体的属性名
/// [referenceType] - 相关实体的类型
/// [referenceId] - {String | int} - 相关实体的ID
entity.addEntityReferencedAttribute(
"attribute",
"referenceType",
"referenceId"
);
跟踪实体
/// 创建/更新实体
await instance.upsertEntity(entity);
注意:
Upsert(更新/插入)会在发送实体时应用。因此,如果类型为X且ID为Y的实体已经存在,则会更新它;否则将创建一个新的实体。这同样适用于addEntityReferencedAttribute
中的引用属性。
完整的实体示例
Entity user = new Entity("User", "USER_ID")
.addAttribute("Name", "Sam Smith")
.addAttribute(
"Date Of Birth",
DateTime.utc(1990, 12, 23).toIso8601String()) // 确保日期为ISO8601字符串格式
.addEntityReferencedAttribute("Location", "Country", "US");
await instance.upsertEntity(user);
删除实体
注意:
删除操作是永久性的,无法撤销。
/// 删除实体
///
/// [type] - 要删除的实体类型
/// [id] - {String | int} - 要删除的实体ID
await instance.deleteEntity("type", "id");
Analytics Spaces
每个分析空间代表一个独立的数据库,存储与特定主题/实体相关的分析数据(用户定义)。
每个分析空间都能够构建TrackZero空间门户中的报告和仪表板。
获取空间门户会话
/// 创建空间门户会话
///
/// [analyticsSpaceId] - 分析空间ID
/// [ttl] - (以秒为单位,默认设置为3600) - 时间至过期
await instance.getSession(analyticsSpaceId, ttl);
Resources
License
MIT
示例代码
以下是完整的示例代码,展示了如何使用leiratech_trackzero
插件。
import 'package:leiratech_trackzero/leiratech_trackzero.dart';
void main() {
//--------------- TrackZero Client ---------------//
// 创建TrackZero实例
TrackZeroClient instance = new TrackZeroClient("API-KEY");
// 在创建实例后,可以通过以下方式获取实例
instance = TrackZeroClient.getInstance();
//--------------- Entity ---------------//
// 创建实体
Entity user = new Entity("User", 1)
.addAttribute("Name", "Sam Smith")
// 确保日期字符串为ISO8601格式
.addAttribute(
"Date Of Birth", DateTime.utc(1990, 12, 23).toIso8601String())
.addEntityReferencedAttribute("Location", "Country", "US");
// 创建/更新实体
setEntity() async {
Response res = await instance.upsertEntity(user);
print(res.toString());
}
setEntity();
// 删除实体
deleteEntity() async {
Response res = await instance.deleteEntity("User", 1);
print(res.toString());
}
deleteEntity();
//--------------- Analytics Space ---------------//
// 获取空间门户会话
getSession() async {
Response res = await instance.getSession(123);
print(res.toString());
}
getSession();
}
更多关于Flutter跟踪与数据分析插件leiratech_trackzero的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter跟踪与数据分析插件leiratech_trackzero的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
leiratech_trackzero
是一个用于 Flutter 应用的跟踪与数据分析插件。它可以帮助开发者收集用户行为数据,进行事件跟踪,并将数据发送到服务器进行分析。以下是如何在 Flutter 项目中集成和使用 leiratech_trackzero
插件的步骤:
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 leiratech_trackzero
插件的依赖。
dependencies:
flutter:
sdk: flutter
leiratech_trackzero: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
来安装依赖。
2. 初始化插件
在你的 Flutter 应用的入口文件(通常是 main.dart
)中初始化 leiratech_trackzero
插件。
import 'package:flutter/material.dart';
import 'package:leiratech_trackzero/leiratech_trackzero.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化 TrackZero
await TrackZero.initialize(
apiKey: 'YOUR_API_KEY', // 替换为你的 API Key
enableLogging: true, // 是否启用日志
);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
3. 事件跟踪
你可以在应用的不同部分使用 TrackZero
来跟踪用户行为。例如,当用户点击一个按钮时,你可以发送一个事件。
import 'package:flutter/material.dart';
import 'package:leiratech_trackzero/leiratech_trackzero.dart';
class MyHomePage extends StatelessWidget {
void _trackButtonClick() {
TrackZero.trackEvent(
eventName: 'button_click',
properties: {
'button_id': 'my_button',
'timestamp': DateTime.now().toString(),
},
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('TrackZero Example'),
),
body: Center(
child: ElevatedButton(
onPressed: _trackButtonClick,
child: Text('Click Me'),
),
),
);
}
}
4. 用户属性设置
你还可以设置用户属性,以便在分析时更好地识别用户。
void _setUserProperties() {
TrackZero.setUserProperties(
properties: {
'name': 'John Doe',
'email': 'john.doe@example.com',
'age': 30,
},
);
}
5. 用户标识
如果你有用户的唯一标识(如用户ID),你可以设置用户的唯一标识。
void _setUserId() {
TrackZero.setUserId('123456');
}
6. 调试与日志
在开发过程中,你可以启用日志来查看 TrackZero
的操作日志。
await TrackZero.initialize(
apiKey: 'YOUR_API_KEY',
enableLogging: true, // 启用日志
);
7. 数据发送与同步
TrackZero
会自动将收集的数据发送到服务器。你也可以手动触发数据同步。
void _flushEvents() {
TrackZero.flush();
}
8. 处理隐私与合规性
确保在使用 TrackZero
时遵守相关的隐私政策和法律法规。你可以根据需要启用或禁用数据收集。
void _disableTracking() {
TrackZero.disableTracking();
}
void _enableTracking() {
TrackZero.enableTracking();
}