Fluttify一周一插件 之 极光统计 Flutter插件

2,512 阅读5分钟

Logo

Github仓库

github.com/fluttify-pr…

依赖

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个限制该事件将会被丢弃。

计数事件模型

该模型是自定义计数事件模型,可以设置参数进行数据上报。

参数名称参数类型参数说明
eventIdString事件Id(非空)
extMapMap<String, String>扩展参数

自定义计数事件模型中扩展参数中不能使用以下 key 值:event_id 此类 key 已被模型使用,如果使用则会导致统计到的数据不准确.

计算事件模型

该模型是自定义计算事件模型,计算事件会通过相同的事件不同的值进行累加,可以设置参数进行数据上报。

参数名称参数类型参数说明
eventIdString事件Id(非空)
eventValuedouble事件的值(非空)
extMapMap<String, String>扩展参数

自定义计算事件模型中扩展参数中不能使用以下 key 值:event_id event_value 此类 key 已被模型使用,如果使用则会导致统计到的数据不准确.

登录事件模型

该模型是登录事件模型,可以设置参数进行数据上报。

参数名称参数类型参数说明
loginMethodString登录方式(非空)
loginSuccessbool登录是否成功(非空)
extMapMap<String, String>扩展参数

登录事件模型中扩展参数中不能使用以下 key 值:login_method login_success 此类 key 已被模型使用,如果使用则会导致统计到的数据不准确.

注册事件模型

该模型是注册事件模型,可以设置参数进行数据上报。

参数名称参数类型参数说明
registerMethodString注册方式(非空)
registerSuccessbool注册是否成功(非空)
extMapMap扩展参数

浏览事件模型

该模型是浏览事件模型,可以设置参数进行数据上报。

参数名称参数类型参数说明
browseIdString浏览内容id
browseNameString内容名称(非空)
browseTypeString内容类型
browseDurationDuration浏览时长
extMapMap<String, String>扩展参数

浏览事件模型中扩展参数中不能使用以下 key 值: browse_content_id browse_name browse_type browse_duration 此类 key 已被模型使用,如果使用则会导致统计到的数据不准确.

购买事件模型

该模型是购买事件模型,可以设置参数进行数据上报。

参数名称参数类型参数说明
purchaseGoodsidString商品id
purchaseGoodsNameString商品名称
purchasePricedouble购买价格(非空)
purchaseSuccessbool购买是否成功(非空)
purchaseCurrencyCurrency货币类型,一个枚举类
purchaseGoodsTypeString商品类型
purchaseGoodsCountint商品数量
extMapMap扩展参数

账户维度模型

开发者可以为用户增加账户信息,使统计数据可以以账户维度做统计分析 现开发的属性有:

中文名英文名类型鉴权/备注
账号IDaccountIDString
账号创建时间creationTimeDateTime时间戳
姓名nameString
性别sexGender0未知 1男 2女/不能为其他数字,默认为0
是否付费paidPaid0未知 1是 2否/不能为其他数字,默认为0
出生年月birthdateDateTimeyyyyMMdd格式校验
手机号码phoneString手机号码校验
电子邮件emailString邮箱格式校验
新浪微博IDweiboIDString
微信IDwechatIDString
QQ IDqqIDString
自定义维度extrakey-valuekey只能为字符串,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/.