1. 集成神策分析 SDK Flutter 插件

1.1. 引入插件

在 Flutter 项目的 pubspec.yaml 文件中 dependencies 里面添加 sensors_analytics_flutter_plugin 依赖。

dependencies: 
  # 添加神策 flutter plugin
  sensors_analytics_flutter_plugin: ^3.0.1
CODE

执行 flutter pub get 命令安装插件。

flutter pub get
CODE

Flutter 插件与 Android 和 iOS 对应的 SDK 版本依赖关系:

Flutter 插件版本Android 可用 SDK 版本范围iOS 可用 SDK 版本范围
v2.3.0 <= Flutter 插件版本号v6.6.0 <= SDK 版本号v4.5.0 <= SDK 版本号
v2.2.0 <= Flutter 插件版本号 <=v2.2.2v6.5.1 <= SDK 版本号 <= v6.5.5v4.4.6 <= SDK 版本号 <= v4.4.8
v2.1.0 <= Flutter 插件版本号 <=v2.1.1v6.0.0 <= SDK 版本号 <= v6.5.0v4.0.0 <= SDK 版本号 <= v4.4.5
v1.0.5 <= Flutter 插件版本号 <=v2.0.4v4.4.0 <= SDK 版本号 <= v5.4.7v2.1.17 <= SDK 版本号 <= v3.1.9
v1.0.0 <= Flutter 插件版本号 <=v1.0.4SDK 版本号 <= v4.3.7SDK 版本号 <= v2.1.15

1.2. Flutter Web 支持

Flutter 插件 v3.0.0 版本以上支持 Flutter Web 端埋点。Web 端不仅需要引入 Flutter 插件,同时需要在 Flutter Web 项目中集成神策 Web JS SDK。步骤如下:

  1. 下载神策 sensorsdata.min.js,并放入到 Flutter 项目的 web 目录下。
  2. 在 web/index.html 文件的 head 标签中引用 Web JS SDK,代码如下:

     <script charset='UTF-8' src="sensorsdata.min.js "></script>
    CODE

2. Flutter 插件初始化

2.1. 获取项目数据接收地址

  • 每个项目都有单独的数据接收地址
  • 请使用管理员账户获取相应项目的数据接收地址

2.2. 初始化 SDK

自 Flutter 插件 v2.1.0 开始支持在 Flutter 端进行初始化。示例如下:

SensorsAnalyticsFlutterPlugin.init(
    serverUrl: "<#数据接收地址#>",
    enableLog: true,
    visualized: VisualizedConfig(autoTrack: true, properties: true),
    android: AndroidConfig(maxCacheSize: 32 * 1024 * 1024, jellybean: true, subProcessFlush: true),
    ios: IOSConfig(maxCacheSize: 10000));
CODE

注意:通常原生端和 Flutter 端只要初始化一次即可。若选择在 Flutter 端初始化,就不需要再在原生端初始化了。

2.2.1. init() 方法参数说明

参数名参数类型参数说明备注
serverUrlString?数据接收地址
enableLogbool是否显示日志
flushIntervalint设置两次事件上报的最小间隔默认 15 秒,最小 5 秒,单位毫秒
flushBulksizeint设置本地缓存触发 flush 的最大条目数默认 100,最小 50
networkTypesSet<SANetworkType>?设置上报网络情况TYPE_NONE, TYPE_2G, TYPE_3G, TYPE_4G, TYPE_WIFI, TYPE_5G, TYPE_ALL
encryptbool是否开启加密仅支持 RSA + AES
javaScriptBridgebool是否支持 H5 打通

默认 false

android

AndroidConfig?

Android 端特有配置

  • subProcessFlush:是否支持子进程上报数据
  • jellybean: 打通是否支持 API level 16 及以下的版本
  • maxCacheSize: 最大缓存数,单位 byte 默认为:32M,即 32* 1024 * 1024

android:{
  subProcessFlush:true,
  jellybean:true,   
  maxCacheSize:48  * 1024*1024
}

iosIOSConfig?

iOS 端特有配置

  • maxCacheSize: 最大缓存数,单位条。默认值:10000

ios:{
  maxCacheSize:10000   
}

webWebConfig?

Web 端特有配置

  • publicKey: 国密公钥

  • pkv:国密 pkv

开启 web 端国密加密

  1. 下载 sensorsdata.plugin.sm.js,并放在项目 web 目录下
  2. 在 web/index.html 文件的 head 标签里引入 sensorsdata.plugin.sm.js
  3. 在初始化里配置 encrypt: true,然后传入 web 国密参数如下:
    web: WebConfig(
      publicKey: 'xxx',
      pkv: 'xxx'
    )
globalPropertiesMap?配置全局公共属性其优先级低于静态公共属性
  1. 若 App 有合规需求,可参考 合规说明
  2. 以上是在 Flutter 代码中进行初始化。老版本的插件不支持这种初始化方式,若需要在原生端初始化,请参考 Android SDK 使用指南iOS SDK 使用指南


3. 配置 Scheme

3.1. 获取项目 Scheme

  • 项目的 Scheme 需要管理员账户进行获取
  • App 工程中可以同时配置多个项目的 Scheme

3.2. App 中添加 Scheme

在使用神策系统中的 Debug 实时查看、可视化全埋点等需要扫码的功能时,用于拉起页面。针对 Android 和 iOS 平台,配置方式不一样:

  • Android 平台配置 Scheme(此处需要配置链接)
  • iOS 平台配置 Scheme(此处需要配置链接)

4. SDK 基本配置

4.1. 用户关联

用户关联是为了对用户进行唯一标识,提高用户行为分析的准确性。目前神策提供了简易用户关联和全域用户关联分为用于支撑不同的业务场景。

4.2. 设置事件公共属性

对于所有事件都需要添加的属性,初始化 SDK 后,可以通过 registerSuperProperties() 将属性注册为公共属性。详细使用文档参见基础 API 功能介绍

4.3. 记录激活事件

可以调用 trackAppInstall() 方法记录激活事件,多次调用此方法只会在第一次调用时触发激活事件。详细使用文档参见渠道追踪与广告

4.4. 代码埋点追踪事件

SDK 初始化后,可以通过 track() 方法追踪用户行为事件,并为事件添加自定义属性。详细使用文档参见基础 API 功能介绍

5. 调试查看事件信息

可以在 init() 方法初始化时 enableLog 设置参数为 true。或者调用

import 'package:sensors_analytics_flutter_plugin/sensors_analytics_flutter_plugin.dart';
...
SensorsAnalyticsFlutterPlugin.enableLog(true/false) //方法来开启或关闭日志。
CODE

Logcat(Android)Xcode(iOS) 中筛选 SA. 关键词:

  • 埋点事件触发成功时,SDK 会输出 track event 开头的事件数据
  • 埋点事件触发失败时,SDK 会输出相应的错误原因
  • 事件数据上报成功时,SDK 会输出 valid message 字段开头的事件数据
  • 事件数据上报失败时,SDK 会输出 invalid message 字段开头的事件数据并输出错误原因