Flutter埋点SDK

GitHub Demo:https://github.com/growingio/flutter-growingio-track/tree/develop/example

App适配最低系统版本:iOS 8及以上、Android 4.2-10

1. 集成SDK

1. 环境配置

Flutter 插件运行在 Android 手机上时依赖于 GrowingIO Android SDK (可以是无埋点 SDK 也可以是埋点 SDK) 2.6.0 及以上, 原生部分请参考:

Android SDK > 无埋点 SDK集成

Android SDK > 埋点 SDK集成

2. Flutter SDK 集成

pubspec.yaml文件中添加依赖

dependencies:
  flutter_growingio_track:
    git:
      url: https://github.com/growingio/flutter-growingio-track.git
      ref: master

然后执行flutter pub get指令

3. 导入

在对应的 *.dart 文件,使用以下方式导入

import 'package:flutter_growingio_track/flutter_growingio_track.dart';

2. 自定义数据上传

1. track

发送自定义事件, 对应于 cstm 事件

调用示例:

GrowingIO.track('eventId');
GrowingIO.track('eventId', variable: {'testkey': 'testValue', 'testNumKey': 2333});

2. setEvar

发送转化变量, 对应于 evar 事件

函数原型为: setEvar(Map<String, dynamic> variable)

调用示例:

GrowingIO.setEvar({
  'testKey': 'testValue', 'testNumKey': 2333.0
});

3. setPeopleVariable

发送用户变量, 对应于 ppl 事件

函数原型为: setPeopleVariable(Map<String, dynamic> variable)

调用示例:

GrowingIO.setPeopleVariable({
  'testKey': 'testValue', 'testNumKey': 2333.0
});

4. setUserId

设置登录用户 ID, 对应于 cs1 字段

函数原型: setUserId(String userId)

调用示例:

GrowingIO.setUserId("testUserId");

5. clearUserId

清除登录用户 ID

函数原型: clearUserId()

调用示例:

GrowingIO.clearUserId();

6. setVisitor

设置访问用户变量, 对应于 vstr 事件

函数原型: setVisitor(Map<String, dynamic> variable)

调用示例:

GrowingIO.setVisitor({
      "visitorKey": 'key', "visitorValue": 34
});

3. 创建应用

添加代码之后,请先 Clean 项目,然后再进行编译,并在你的 App 安装了 SDK 后重新启动几次 App,保证行为采集数据自动发送给 GrowingIO,以便顺利完成检测。

在 GrowingIO 平台的应用创建页面继续完成应用创建的数据检测,检测成功后应用创建成功。

4. 验证SDK是否正常采集数据

了解 GrowingIO 平台数据采集类型请参考数据模型

GrowingIO 为您提供多种验证 SDK 是否正常采集数据的方式:

方式一:Mobile Debugger​​

方式二:在 SDK 中设置了 Debug 模式后,在 IDE 编译器控制台查看数据采集日志。

方式三:数据校验

常见问题

1. iOS :App Store 提供应用注意事项

如果您添加了库 AdSupport.framework, GrowingIO 则会启用 IDFA,所以在向 App Store 提交应用时,需要:

  • 对于问题 Does this app use the Advertising Identifier (IDFA),选择 YES。

  • 对于选项 Attribute this app installation to a previously served advertisement,打勾。

  • 对于选项 Attribute an action taken within this app to a previously served advertisement,打勾。

2. iOS:为什么 GrowingIO 使用 IDFA?

GrowingIO 使用 IDFA 来做来源管理激活设备的精确匹配,让你更好的衡量广告效果。如果你不希望跟踪这个信息,可以选择不引入 AdSupport.framework

3. 初始化 Android SDK 时,GrowingIO 类可能会报红色怎么处理?

这个应该是 Flutter 项目结构的问题,并不影响运行,可以放心编译. 不过需要手动 import。

import 'package:flutter_growingio_track/flutter_growingio_track.dart'; 

4. 为什么不在 Flutter 中单独初始化?

  • 因为 GrowingIO 需要获取 Android 的 Activity 生命周期,为了数据的准确性,需要在 Activity 出现前就初始化完成

  • 开发者相信很多用户都会使用 Flutter + Native 形式的进行开发,为了同时服务 Flutter 与 Native

最后更新于