Flutter跟踪分析插件mytracker_sdk的使用

发布于 1周前 作者 phonegap100 来自 Flutter

Flutter跟踪分析插件mytracker_sdk的使用

概述

myTracker 是基于 Mail.ru Group 技术的多平台分析和归因系统。

最低要求

Android

  • Android API 级别 21 (Android 5.0)
  • 权限 android.permission.INTERNET
  • 权限 android.permission.ACCESS_NETWORK_STATE

自动添加的依赖项:

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

1 回复

更多关于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类监听路由变化,并在每次推送新路由时发送屏幕视图事件。

注意事项

  1. 确保你已经在MyTracker平台上创建了应用,并获取了正确的App ID。
  2. 在生产环境中,将debug参数设置为false
  3. 根据需要调整事件和屏幕视图的参数。

这个示例应该能帮助你在Flutter项目中集成和使用mytracker_sdk插件。如果有任何特定需求或问题,请参考MyTracker的官方文档。

回到顶部