Flutter跟踪分析插件mytracker_sdk的使用
Flutter跟踪分析插件mytracker_sdk的使用
概述
myTracker 是基于 Mail.ru Group 技术的多平台分析和归因系统。
最低要求
Android
- Android API 级别 21 (Android 5.0)
- 权限
android.permission.INTERNET
- 权限
android.permission.ACCESS_NETWORK_STATE
自动添加的依赖项:
- Google Play Services (模块
com.google.android.gms:play-services-ads-identifier
) - Google Play Install Referrer (模块
com.android.installreferrer:installreferrer
)
iOS
- 最低支持的 iOS 版本为 12.4
如果需要在 iOS 14+ 上获取 IDFA/IDFV 信息,则需要用户授权。可以使用 App Tracking Transparency Plugin 或者自行实现权限请求。
位置数据
如果需要收集位置数据,也需要添加位置权限并请求这些权限。可以使用 Location Permission Plugin 或者自行实现权限请求。
华为应用商店的应用
如果您正在构建一个针对 华为应用商店 的应用,那么必须在项目中包含 Huawei Media Services (模块 com.huawei.hms:hms-ads-identifier
) 库,以便 myTracker 可以获得 OAID。
添加依赖
使用 pub.dev
使用 Flutter 在 pubspec.yaml
文件中添加依赖项:
flutter pub add mytracker_sdk
或者手动添加到 pubspec.yaml
文件中:
dependencies:
...
mytracker_sdk:
...
手动添加
下载 SDK,将其添加到您的项目中的某个路径(例如 PATH_TO_SDK
),并在 pubspec.yaml
文件中指定该路径作为依赖项:
dependencies:
...
mytracker_sdk:
path: PATH_TO_SDK
...
初始化
在初始化追踪器时,需要指定您的 appId。在初始化之前,可以根据需要配置追踪器参数。应用程序的活动(启动、会话)将自动跟踪。
// 如果需要,可以自定义参数
MyTrackerParams trackerParams = await MyTracker.getTrackerParams();
MyTrackerParams trackerConfig = await MyTracker.getTrackerConfig();
// 配置追踪器参数
// ...
// 初始化实例
await MyTracker.init(SDK_KEY);
可配置参数
可以通过 MyTrackerConfig
类的实例进行配置,该实例通过 MyTracker.getTrackerConfig()
方法获取。追踪器的参数可以通过 MyTrackerParams
类的实例进行配置,该实例通过 MyTracker.getTrackerParams()
方法获取。
MyTrackerConfig
该类负责配置追踪器,并提供了以下方法:
Future<MyTrackerConfig> setTrackingLaunchEnabled(bool trackingLaunchEnabled)
是否启用应用启动跟踪,默认为 true
。
Future<MyTrackerConfig> setLaunchTimeout(int seconds)
设置新启动和会话中断的间隔时间(秒)。默认值为 30 秒,范围在 30-7200 秒之间。
Future<MyTrackerConfig> setBufferingPeriod(int seconds)
事件缓冲期(秒)。默认值为 900 秒,范围在 1-86400 秒之间。
Future<MyTrackerConfig> setForcingPeriod(int seconds)
设置强制发送事件的时间间隔(秒)。默认值为 0 秒(禁用立即发送),范围在 0-432000 秒(5 天)之间。
Future<MyTrackerConfig> setAutotrackingPurchaseEnabled(bool autotrackingPurchaseEnabled)
是否启用自动跟踪应用内购买,默认为 true
。
Future<MyTrackerConfig> setTrackingLocationEnabled(bool trackingLocationEnabled)
是否启用位置跟踪,默认为 true
。
Future<MyTrackerConfig> setRegion(MyTrackerRegion region)
设置接收数据的服务器区域。可用值包括:
MyTrackerRegion.EU
- 欧洲。MyTrackerRegion.RU
- 俄罗斯。
Future<MyTrackerConfig> setProxyHost(@Nullable String proxyHost)
设置接收数据的服务器代理主机。
MyTrackerParams
该类用于配置用户自定义参数。
用户自定义参数可以在应用程序运行的任何时刻设置。
Future setUserInfo() async {
MyTrackerParams trackerParams = await MyTracker.getTrackerParams();
// 设置性别
await trackerParams.setGender(MyTrackerGender.FEMALE);
// 设置年龄
await trackerParams.setAge(22);
// 设置自定义用户 ID
trackerParams.setCustomUserIds(["user_id_0", "user_id_1"]);
// 设置电子邮件地址
trackerParams.setEmails(["address1@example.com", "address2@example.com"]);
// 设置电话号码
trackerParams.setPhones(["84953332211", "84953332212", "84953332213"]);
}
开启/关闭调试模式
通过 MyTracker
类的静态方法来开启或关闭调试模式。
Future setDebugMode(bool debugMode)
开启或关闭调试模式,默认为 false
。
事件跟踪
可以通过 MyTracker
类的静态方法发送事件。以下是几种不同类型的事件跟踪方法:
Future trackLoginEvent(String userId, String? vkConnectId, Map<String, String>? eventParams)
登录事件。userId
参数是必需的,用于标识用户。vkConnectId
参数可选,用于标识 VK 用户。eventParams
参数允许设置任意键值对事件参数。键和值的最大长度为 255 个字符。
Future trackRegistrationEvent(String userId, String? vkConnectId, Map<String, String>? eventParams)
注册事件。userId
参数是必需的,用于标识用户。vkConnectId
参数可选,用于标识 VK 用户。eventParams
参数允许设置任意键值对事件参数。键和值的最大长度为 255 个字符。
Future trackEvent(String name, Map<String, String>? eventParams)
带有指定名称的自定义事件。eventParams
参数允许设置任意键值对事件参数。键和值的最大长度为 255 个字符。例如:
MyTracker.trackEvent("name", {"key_0": "value_0", "key_1": "value_1"});
Future flush()
更多关于Flutter跟踪分析插件mytracker_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter跟踪分析插件mytracker_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是一个关于如何在Flutter项目中使用mytracker_sdk
插件进行跟踪分析的示例代码。请注意,具体实现可能会根据mytracker_sdk
的版本和Flutter环境的更新而有所变化。因此,在实际项目中,请参考官方文档和插件的最新版本。
首先,确保在pubspec.yaml
文件中添加mytracker_sdk
依赖:
dependencies:
flutter:
sdk: flutter
mytracker_sdk: ^最新版本号 # 请替换为实际最新版本号
然后,运行flutter pub get
来安装依赖。
接下来,我们需要在Flutter项目的适当位置初始化并使用mytracker_sdk
。以下是一个简单的示例,展示了如何初始化跟踪器并在应用中的不同位置发送事件。
1. 初始化MyTracker SDK
通常在应用的入口文件(如main.dart
)中初始化MyTracker SDK。
import 'package:flutter/material.dart';
import 'package:mytracker_sdk/mytracker_sdk.dart';
void main() {
// 初始化MyTracker SDK
MyTracker.init(
androidAppId: '你的Android App ID',
iosAppId: '你的iOS App ID',
debug: true // 仅在开发时设置为true,生产环境应设置为false
);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter MyTracker Example',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
2. 发送跟踪事件
在你的应用逻辑中,可以在需要跟踪用户行为的地方调用MyTracker SDK的方法。例如,在按钮点击时发送一个事件:
import 'package:flutter/material.dart';
import 'package:mytracker_sdk/mytracker_sdk.dart';
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
void _sendEvent() {
// 发送自定义事件
MyTracker.trackEvent(
eventName: 'button_click',
parameters: {
'button_id': '123',
'button_name': 'My Button'
}
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Flutter MyTracker Example'),
),
body: Center(
child: ElevatedButton(
onPressed: _sendEvent,
child: Text('Click Me'),
),
),
);
}
}
3. 处理屏幕视图跟踪(可选)
如果你希望自动跟踪屏幕视图的切换,可以在每个路由被打开时调用MyTracker SDK的相关方法。例如,使用Flutter的NavigatorObserver
来监听路由变化:
import 'package:flutter/material.dart';
import 'package:mytracker_sdk/mytracker_sdk.dart';
class MyRouteObserver extends NavigatorObserver {
@override
void didPush(Route<dynamic> route, Route<dynamic>? previousRoute) {
super.didPush(route, previousRoute);
// 获取当前路由的名称或其他标识符
String screenName = route.settings.name ?? 'unknown_screen';
// 发送屏幕视图事件
MyTracker.trackScreenView(screenName: screenName);
}
}
// 在MaterialApp中使用该Observer
void main() {
MyTracker.init(
androidAppId: '你的Android App ID',
iosAppId: '你的iOS App ID',
debug: true
);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter MyTracker Example',
theme: ThemeData(
primarySwatch: Colors.blue,
),
navigatorObservers: [MyRouteObserver()],
home: MyHomePage(),
routes: {
// 定义其他路由
'second_screen': (context) => SecondScreen(),
},
);
}
}
在上面的代码中,MyRouteObserver
类监听路由变化,并在每次推送新路由时发送屏幕视图事件。
注意事项
- 确保你已经在MyTracker平台上创建了应用,并获取了正确的App ID。
- 在生产环境中,将
debug
参数设置为false
。 - 根据需要调整事件和屏幕视图的参数。
这个示例应该能帮助你在Flutter项目中集成和使用mytracker_sdk
插件。如果有任何特定需求或问题,请参考MyTracker的官方文档。