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

1 回复

更多关于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();
}
回到顶部