Flutter追踪分析插件wisetrack_sdk的使用

Flutter追踪分析插件wisetrack_sdk的使用

在本文中,我们将详细介绍如何在Flutter项目中集成和使用wisetrack_sdk插件。该插件主要用于追踪用户行为和事件,并提供丰富的回调功能来监控会话和事件的成功或失败情况。


环境配置与初始化

首先,确保您的Flutter环境已正确配置,并在pubspec.yaml文件中添加wisetrack_sdk依赖:

dependencies:
  wisetrack_sdk: ^版本号

运行以下命令以安装依赖:

flutter pub get

接下来,在应用启动时进行初始化。以下是完整的初始化代码示例:

import 'package:wisetrack_sdk/wisetrack.dart';
import 'package:wisetrack_sdk/wisetrack_config.dart';

void initPlatformState() async {
  // 初始化配置对象
  WiseTrackConfig config = new WiseTrackConfig(
    "your_app_token", // 替换为您的App Token
    WiseTrackEnvironment.sandbox, // 使用沙箱环境
  );

  // 设置其他参数(如默认跟踪器、包名等)
  config.defaultTracker = "your_default_tracker";
  config.packageName = "com.example.yourapp";
  config.storeName = "Your Store Name";

  // 设置回调函数
  config.attributionCallback = (WiseTrackAttribution attributionChangedData) {
    print('[WiseTrack]: Attribution changed!');
    print('[WiseTrack]: Tracker token: ${attributionChangedData.trackerToken}');
  };

  // 启动SDK
  WiseTrack.initSdk(config);
}

跟踪事件

wisetrack_sdk允许您通过WiseTrackEvent类记录自定义事件。以下是一个完整的事件跟踪示例:

import 'package:wisetrack_sdk/wisetrack_event.dart';
import 'package:wisetrack_sdk/wisetrack_currency.dart';

void trackCustomEvent() {
  // 创建事件对象
  WiseTrackEvent event = WiseTrackEvent("custom_event_token");

  // 设置事件名称
  event.setEventName("Purchase Completed");

  // 设置事件价格和货币类型
  event.setRevenue(100, WiseTrackCurrency.USD);

  // 跟踪事件
  WiseTrack.trackEvent(event);
}

处理生命周期事件

为了确保SDK正常工作,您需要监听应用的生命周期事件并在适当的时候调用相应的SDK方法。例如:

[@override](/user/override)
void didChangeAppLifecycleState(AppLifecycleState state) {
  switch (state) {
    case AppLifecycleState.resumed:
      WiseTrack.onResume();
      break;
    case AppLifecycleState.paused:
      WiseTrack.onPause();
      break;
    default:
      break;
  }
}

完整示例代码

以下是一个完整的Flutter应用示例,展示了如何配置和使用wisetrack_sdk插件:

import 'package:flutter/material.dart';
import 'package:wisetrack_sdk/wisetrack.dart';
import 'package:wisetrack_sdk/wisetrack_config.dart';
import 'package:wisetrack_sdk/wisetrack_event.dart';
import 'package:wisetrack_sdk/wisetrack_currency.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  [@override](/user/override)
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  final _formKey = GlobalKey<FormState>();
  final _eventTokenController = TextEditingController();
  final _eventNameController = TextEditingController();
  final _eventPriceController = TextEditingController();
  final _eventCurrencyController = TextEditingController();

  [@override](/user/override)
  void initState() {
    super.initState();
    initPlatformState();
  }

  void initPlatformState() async {
    WiseTrackConfig config = new WiseTrackConfig(
      "your_app_token",
      WiseTrackEnvironment.sandbox,
    );
    config.defaultTracker = "your_default_tracker";
    config.packageName = "com.example.yourapp";
    config.storeName = "Your Store Name";

    config.attributionCallback = (WiseTrackAttribution attributionChangedData) {
      print('[WiseTrack]: Attribution changed!');
      print('[WiseTrack]: Tracker token: ${attributionChangedData.trackerToken}');
    };

    WiseTrack.initSdk(config);
  }

  void trackEvent() {
    if (_formKey.currentState!.validate()) {
      WiseTrackEvent event = WiseTrackEvent(_eventTokenController.text);
      event.setEventName(_eventNameController.text);
      event.setRevenue(
        int.parse(_eventPriceController.text),
        WiseTrackCurrency[_eventCurrencyController.text],
      );
      WiseTrack.trackEvent(event);
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Wisetrack Example'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Form(
          key: _formKey,
          child: Column(
            children: <Widget>[
              TextFormField(
                controller: _eventTokenController,
                decoration: InputDecoration(labelText: 'Event Token'),
                validator: (value) {
                  if (value == null || value.isEmpty) {
                    return 'Please enter event token';
                  }
                  return null;
                },
              ),
              TextFormField(
                controller: _eventNameController,
                decoration: InputDecoration(labelText: 'Event Name'),
                validator: (value) {
                  if (value == null || value.isEmpty) {
                    return 'Please enter event name';
                  }
                  return null;
                },
              ),
              TextFormField(
                controller: _eventPriceController,
                decoration: InputDecoration(labelText: 'Event Price'),
                keyboardType: TextInputType.number,
                validator: (value) {
                  if (value == null || value.isEmpty) {
                    return 'Please enter event price';
                  }
                  return null;
                },
              ),
              DropdownButton<String>(
                value: "USD",
                items: ["USD", "EUR", "JPY"]
                    .map((currency) => DropdownMenuItem(
                          value: currency,
                          child: Text(currency),
                        ))
                    .toList(),
                onChanged: (value) {
                  _eventCurrencyController.text = value!;
                },
              ),
              ElevatedButton(
                onPressed: trackEvent,
                child: Text('Track Event'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

更多关于Flutter追踪分析插件wisetrack_sdk的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter追踪分析插件wisetrack_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


WiseTrack SDK 是一个用于 Flutter 应用的跟踪和分析插件,通常用于收集用户行为数据、设备信息、应用使用情况等,以便进行数据分析、用户行为分析、性能监控等。以下是如何在 Flutter 项目中使用 WiseTrack SDK 的基本步骤:

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 wisetrack_sdk 插件的依赖。

dependencies:
  flutter:
    sdk: flutter
  wisetrack_sdk: ^1.0.0  # 请根据实际情况选择合适的版本

然后运行 flutter pub get 来安装依赖。

2. 初始化 SDK

在你的 Flutter 应用中初始化 WiseTrack SDK。通常你可以在 main.dart 文件中进行初始化。

import 'package:flutter/material.dart';
import 'package:wisetrack_sdk/wisetrack_sdk.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  // 初始化 WiseTrack SDK
  await WiseTrackSDK.initialize(
    appKey: 'YOUR_APP_KEY',  // 替换为你的 App Key
    enableLogging: true,     // 是否启用日志
  );

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'WiseTrack SDK Example',
      home: HomeScreen(),
    );
  }
}

3. 设置用户信息(可选)

如果你需要跟踪特定用户的行为,可以设置用户信息。

WiseTrackSDK.setUserInfo(
  userId: 'USER_ID',  // 用户唯一标识
  userName: 'USER_NAME',  // 用户名
  userEmail: 'USER_EMAIL',  // 用户邮箱
);

4. 跟踪事件

你可以使用 WiseTrack SDK 来跟踪用户行为事件。例如,当用户点击某个按钮时,你可以记录一个事件。

WiseTrackSDK.trackEvent(
  eventName: 'button_click',  // 事件名称
  properties: {'button_id': 'login_button'},  // 事件属性
);

5. 跟踪页面浏览

你可以跟踪用户浏览的页面,以便分析用户在不同页面之间的行为。

WiseTrackSDK.trackPageView(
  pageName: 'HomeScreen',  // 页面名称
  properties: {'category': 'main'},  // 页面属性
);

6. 设置自定义属性(可选)

你可以设置一些自定义属性,这些属性会附加到所有的事件和页面浏览记录中。

WiseTrackSDK.setCustomProperties(
  properties: {'app_version': '1.0.0', 'platform': 'Android'},
);

7. 处理用户退出(可选)

当用户退出应用时,你可以调用 WiseTrack SDKlogout 方法来清除用户信息。

WiseTrackSDK.logout();

8. 调试与日志

在开发过程中,你可以启用日志来查看 WiseTrack SDK 的输出信息,以便调试。

WiseTrackSDK.setLogLevel(LogLevel.verbose);

9. 发布应用

在发布应用之前,确保你已经禁用了调试日志,并且所有的事件跟踪代码都已经正确配置。

WiseTrackSDK.setLogLevel(LogLevel.none);
回到顶部