Flutter视觉追踪与分析插件visenze_tracking_sdk的使用
Flutter视觉追踪与分析插件visenze_tracking_sdk的使用
Visenze Analytics 是您分析解决方案的重要组成部分,允许您跟踪关键事件并查看由此产生的分析和性能数据。
ViSenze 跟踪 SDK 是一个开源软件,便于将 ViSearch 跟踪 API 集成到您的 Flutter 应用程序中。有关源代码和参考,请访问 GitHub 仓库。
目录
概述
Visenze Analytics 是您分析解决方案的重要组成部分,允许您跟踪关键事件并查看由此产生的分析和性能数据。
ViSenze 跟踪 SDK 是一个开源软件,便于将 ViSearch 跟踪 API 集成到您的 Flutter 应用程序中。有关源代码和参考,请访问 GitHub 仓库。
使用
安装
运行以下命令:
flutter pub add visenze_tracking_sdk
导入
import 'package:visenze_tracking_sdk/visenze_tracker.dart';
Future<void> init() async {
var tracker = await VisenzeTracker.create('MY_APP_KEY:MY_PLACEMENT_ID');
}
设置用户ID
userId
(用户标识符)驱动诸如 A/B 测试和个人化等功能。默认情况下,我们根据用户的浏览器/设备信息生成 userId
。但是,为了与您的内部记录更好地同步数据,您可以设置自己的 userId
。通过使用自己的 userId
,可以增强数据集成并与其系统对齐。这种灵活性使跟踪和分析无缝进行,最大化平台在现有基础设施中的效益。
要设置自己的 userId
,请使用以下代码:
tracker.userId = 'MY_UID';
获取跟踪数据
您还可以选择检索自动生成的用户ID和会话ID。要获取用户ID和会话ID,请使用以下代码:
String uid = tracker.userId;
String sid = tracker.sessionId;
发送事件
所有发送到 Visenze Analytics 服务器的事件都需要在搜索结果响应中找到的搜索查询ID(即 reqid
)作为请求参数的一部分。
某些事件(例如 product_click
或 product_view
)可能需要额外的参数,如 pid
(产品ID)。
单个事件
用户操作可以通过事件处理器发送。注册事件处理器以供用户交互的元素使用。
// 发送产品点击事件
tracker.sendEvent('product_click', {
'queryId': '<搜索 reqid>',
'pid': '<你的产品ID>', // 对于产品点击事件是必需的
'pos': 1, // 产品在搜索结果中的位置,从1开始
});
// 发送产品印象事件
tracker.sendEvent('product_view', {
'queryId': '<搜索 reqid>',
'pid': '<你的产品ID>', // 对于产品印象事件是必需的
'pos': 1, // 产品在搜索结果中的位置,从1开始
});
// 发送交易事件(例如订单购买300元)
tracker.sendEvent('transaction', {
'queryId': "<搜索 reqid>",
'transId': "<你的交易ID>",
'value': 300
});
// 发送添加到购物车事件
tracker.sendEvent('add_to_cart', {
'queryId': '<搜索 reqid>',
'pid': '<你的产品ID>',
'pos': 1, // 产品在搜索结果中的位置,从1开始
});
// 发送自定义事件
tracker.sendEvent('favourite', {
'queryId': '<搜索 reqid>',
'pid': '自定义事件标签',
'cat': '<产品类别>'
});
// 处理成功或错误
try {
await tracker.sendEvent('product_view', {
'queryId': '1234',
'pid': '产品ID',
'pos': 1
});
onRequestSuccess() // 处理成功情况
} catch (errResponse) {
onRequestError(errResponse) // 处理错误情况
}
批量事件
批量操作可以通过批处理事件处理器发送。
此批处理事件方法的一个常见用例是通过批量发送来组合所有交易。此 SDK 将自动生成一个 transId
来将交易分组为一个订单。
const transactions = [
{'queryId': '1234', 'pid': 'Pid 1', 'value': 50},
{'queryId': '1234', 'pid': 'Pid 2', 'value': 100}
];
tracker.sendEvents('transactions', transactions);
事件参数
有关事件参数的详细列表,请参阅此 文档。
示例
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:visenze_tracking_sdk/visenze_tracker.dart';
void main() => runApp(MyApp());
class MyApp extends StatefulWidget {
[@override](/user/override)
MyAppState createState() => MyAppState();
}
class MyAppState extends State<MyApp> {
String _trackerSid = '<未知>';
String _trackerUid = '<未知>';
String _requestResult = '<未知>';
final TextEditingController _eventController =
TextEditingController(text: 'product_click');
final TextEditingController _paramsController =
TextEditingController(text: '{"pid": "Test PID", "queryId": "1234"}');
late VisenzeTracker tracker;
[@override](/user/override)
void initState() {
super.initState();
initTracker();
}
// 工厂方法是异步的,所以我们将其放在异步方法中。
Future<void> initTracker() async {
tracker = await VisenzeTracker.create('APP_KEY:PLACEMENT_ID');
setState(() {
_trackerSid = tracker.sessionId;
_trackerUid = tracker.userId;
});
}
void onRequestSuccess() {
setState(() {
_requestResult = '请求成功';
});
}
void onRequestError(dynamic err) {
setState(() {
_requestResult = '请求失败: $err';
});
}
Future<void> sendEvent() async {
try {
await tracker.sendEvent(
_eventController.text, jsonDecode(_paramsController.text));
onRequestSuccess();
} catch (err) {
onRequestError(err);
}
}
Future<void> resetSession() async {
tracker.resetSession();
setState(() {
_trackerSid = tracker.sessionId;
});
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('跟踪SDK演示'),
),
body: SingleChildScrollView(
child: Container(
height: 800,
padding: EdgeInsets.all(15),
child: ListView(
children: <Widget>[
Text('会话ID: $_trackerSid'),
Text('用户ID: $_trackerUid'),
const Padding(padding: EdgeInsets.all(4)),
TextButton(
onPressed: resetSession,
child: const Text('重置会话')),
const Padding(padding: EdgeInsets.all(4)),
TextField(
decoration: const InputDecoration(
labelText: "事件名称",
),
controller: _eventController,
),
TextField(
decoration: const InputDecoration(
labelText: "事件参数",
),
controller: _paramsController,
),
const Padding(padding: EdgeInsets.all(4)),
TextButton(
onPressed: sendEvent, child: const Text('发送事件')),
Text(_requestResult),
],
)),
)),
);
}
}
更多关于Flutter视觉追踪与分析插件visenze_tracking_sdk的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter视觉追踪与分析插件visenze_tracking_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
visenze_tracking_sdk
是一个用于 Flutter 的视觉追踪与分析插件,主要用于跟踪用户的视觉行为并进行分析。以下是如何在 Flutter 项目中使用 visenze_tracking_sdk
的基本步骤:
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 visenze_tracking_sdk
的依赖:
dependencies:
flutter:
sdk: flutter
visenze_tracking_sdk: ^1.0.0 # 请根据最新版本号进行替换
然后运行 flutter pub get
来安装依赖。
2. 初始化 SDK
在应用程序启动时,你需要初始化 visenze_tracking_sdk
。通常可以在 main.dart
文件的 main
函数中进行初始化:
import 'package:visenze_tracking_sdk/visenze_tracking_sdk.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化 Visenze Tracking SDK
await VisenzeTrackingSdk.init(
appKey: 'YOUR_APP_KEY', // 替换为你的 App Key
endpoint: 'https://tracking.visenze.com', // 替换为你的跟踪端点
);
runApp(MyApp());
}
3. 跟踪用户行为
你可以使用 VisenzeTrackingSdk
来跟踪用户的视觉行为。例如,当用户查看某个产品时,你可以发送一个 view
事件:
import 'package:visenze_tracking_sdk/visenze_tracking_sdk.dart';
class ProductDetailPage extends StatelessWidget {
final String productId;
ProductDetailPage({required this.productId});
@override
Widget build(BuildContext context) {
// 当用户进入产品详情页时,发送 view 事件
VisenzeTrackingSdk.trackView(
productId: productId,
productName: 'Product Name',
price: 99.99,
currency: 'USD',
);
return Scaffold(
appBar: AppBar(
title: Text('Product Detail'),
),
body: Center(
child: Text('Product ID: $productId'),
),
);
}
}
4. 跟踪其他事件
你还可以跟踪其他类型的事件,例如点击、购买等。以下是一些常用的跟踪事件:
- 点击事件 (
trackClick
): 当用户点击某个产品时调用。
VisenzeTrackingSdk.trackClick(
productId: productId,
productName: 'Product Name',
price: 99.99,
currency: 'USD',
);
- 购买事件 (
trackPurchase
): 当用户完成购买时调用。
VisenzeTrackingSdk.trackPurchase(
productId: productId,
productName: 'Product Name',
price: 99.99,
currency: 'USD',
quantity: 1,
);
- 搜索事件 (
trackSearch
): 当用户进行搜索时调用。
VisenzeTrackingSdk.trackSearch(
query: 'blue shirt',
filters: {'category': 'clothing'},
);
5. 设置用户信息
你还可以设置用户信息,以便更好地分析用户行为:
VisenzeTrackingSdk.setUserInfo(
userId: '12345',
userName: 'John Doe',
email: 'john.doe@example.com',
);
6. 处理错误
在使用 SDK 时,可能会遇到一些错误。你可以通过 try-catch
块来捕获并处理这些错误:
try {
await VisenzeTrackingSdk.trackView(
productId: productId,
productName: 'Product Name',
price: 99.99,
currency: 'USD',
);
} catch (e) {
print('Error tracking view: $e');
}
7. 调试模式
在开发过程中,你可以启用调试模式来查看 SDK 的日志输出:
VisenzeTrackingSdk.setDebugMode(enabled: true);
8. 其他配置
根据你的需求,你还可以配置其他参数,例如自定义事件、会话管理等。请参考 visenze_tracking_sdk
的官方文档以获取更多信息。
9. 发布应用
在发布应用之前,请确保将调试模式关闭,并检查所有跟踪事件是否正确配置。
VisenzeTrackingSdk.setDebugMode(enabled: false);