Github仓库
依赖
dependencies:
flutter:
sdk: flutter
janalytics_fluttify: ^x.x.x
配置
Android
在 module 的 gradle 中添加依赖和AndroidManifest的替换变量。
android {
......
defaultConfig {
applicationId "com.xxx.xxx" // 你应用的包名.
......
manifestPlaceholders = [
JPUSH_APPKEY : "你的appkey", //JPush上注册的包名对应的appkey.
JPUSH_CHANNEL : "developer-default", //暂时填写默认值即可.
]
......
}
......
}
导入
import 'package:janalytics_fluttify/janalytics_fluttify.dart';
使用
上报策略
JAnalytics Android SDK采用了数据记录与数据上报分离的策略,数据实时记录,按照上报策略上报数据。
- 打开应用上报
- 关闭应用上报 备注:如遇到极端情况导致数据上报不成功,数据不会被清除,等待下一次上报策略触发再上报。
初始化
初始化代码为:
JAnalytics.init(iosKey: 'xxxx');
建议在main方法中进行初始化。
是否打开debug日志
JAnalytics.setDebugEnable(enable);
设置是否开启debug模式。true则会打印更多的日志信息。建议在init接口之前调用。
打开奔溃日志上报
JAnalytics.startCrashHandler();
设置统计上报的自动周期
JAnalytics.setReportPeriod(Duration(second: 60));
最小10秒,最大1天,超出范围会打印调用失败日志。传0表示统计数据即时上报。
自定义事件
通过传入不同的事件模型来进行各种事件的统计。
关于自定义事件做如下说明:
字符串字段(key与 value)限制大小不超过256字节,超过限制的key或value该事件将会被丢弃。
自定义键值对数目不能超过10个,超过10个限制该事件将会被丢弃。
计数事件模型
该模型是自定义计数事件模型,可以设置参数进行数据上报。
参数名称 | 参数类型 | 参数说明 |
---|---|---|
eventId | String | 事件Id(非空) |
extMap | Map<String, String> | 扩展参数 |
自定义计数事件模型中扩展参数中不能使用以下 key 值:event_id
此类 key 已被模型使用,如果使用则会导致统计到的数据不准确.
计算事件模型
该模型是自定义计算事件模型,计算事件会通过相同的事件不同的值进行累加,可以设置参数进行数据上报。
参数名称 | 参数类型 | 参数说明 |
---|---|---|
eventId | String | 事件Id(非空) |
eventValue | double | 事件的值(非空) |
extMap | Map<String, String> | 扩展参数 |
自定义计算事件模型中扩展参数中不能使用以下 key 值:event_id
event_value
此类 key 已被模型使用,如果使用则会导致统计到的数据不准确.
登录事件模型
该模型是登录事件模型,可以设置参数进行数据上报。
参数名称 | 参数类型 | 参数说明 |
---|---|---|
loginMethod | String | 登录方式(非空) |
loginSuccess | bool | 登录是否成功(非空) |
extMap | Map<String, String> | 扩展参数 |
登录事件模型中扩展参数中不能使用以下 key 值:login_method
login_success
此类 key 已被模型使用,如果使用则会导致统计到的数据不准确.
注册事件模型
该模型是注册事件模型,可以设置参数进行数据上报。
参数名称 | 参数类型 | 参数说明 |
---|---|---|
registerMethod | String | 注册方式(非空) |
registerSuccess | bool | 注册是否成功(非空) |
extMap | Map | 扩展参数 |
浏览事件模型
该模型是浏览事件模型,可以设置参数进行数据上报。
参数名称 | 参数类型 | 参数说明 |
---|---|---|
browseId | String | 浏览内容id |
browseName | String | 内容名称(非空) |
browseType | String | 内容类型 |
browseDuration | Duration | 浏览时长 |
extMap | Map<String, String> | 扩展参数 |
浏览事件模型中扩展参数中不能使用以下 key 值:
browse_content_id
browse_name
browse_type
browse_duration
此类 key 已被模型使用,如果使用则会导致统计到的数据不准确.
购买事件模型
该模型是购买事件模型,可以设置参数进行数据上报。
参数名称 | 参数类型 | 参数说明 |
---|---|---|
purchaseGoodsid | String | 商品id |
purchaseGoodsName | String | 商品名称 |
purchasePrice | double | 购买价格(非空) |
purchaseSuccess | bool | 购买是否成功(非空) |
purchaseCurrency | Currency | 货币类型,一个枚举类 |
purchaseGoodsType | String | 商品类型 |
purchaseGoodsCount | int | 商品数量 |
extMap | Map | 扩展参数 |
账户维度模型
开发者可以为用户增加账户信息,使统计数据可以以账户维度做统计分析 现开发的属性有:
中文名 | 英文名 | 类型 | 鉴权/备注 | |
---|---|---|---|---|
账号ID | accountID | String | ||
账号创建时间 | creationTime | DateTime | 时间戳 | |
姓名 | name | String | ||
性别 | sex | Gender | 0未知 1男 2女/不能为其他数字,默认为0 | |
是否付费 | paid | Paid | 0未知 1是 2否/不能为其他数字,默认为0 | |
出生年月 | birthdate | DateTime | yyyyMMdd格式校验 | |
手机号码 | phone | String | 手机号码校验 | |
电子邮件 | String | 邮箱格式校验 | ||
新浪微博ID | weiboID | String | ||
微信ID | wechatID | String | ||
QQ ID | qqID | String | ||
自定义维度 | extra | key-value | key只能为字符串,value只能为字符串或数字类型或null类型; 当value设置为空类型时,将该key从服务器上删除 key不能使用极光内部namespace(符号$ | ) |
使用方法
JAnalytics.identifyAccount(Account(...需要设置的参数));
也可以只设置部分属性,再次调用identifyAccount修改账户信息。 如果要解绑当前用户信息,调用
JAnalytics.detachAccount();
页面流统计
页面开始
JAnalytics.onPageStart('页面名称');
页面启动接口。在页面(widget)的相关生命周期内调用,和onPageEnd需要成对调用;
页面结束
JAnalytics.onPageEnd('页面名称');
页面结束接口。在页面(widget)的相关生命周期内调用,和onPageStart需要成对调用;
自动收集页面信息
MaterialApp(
navigatorObservers: [
PageAnalyzer(),
],
)
社区
QQ群 938842596
LICENSE
Copyright (C) 2020 yohom
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see www.gnu.org/licenses/.