数据统计功能接入(选接)
数据统计服务是通过收集用户在应用使用过程中,启动、关闭、页面打开、页面关闭等行为事件,以及App开发者上报的自定义事件,提供统一的数据统计服务的产品。
报表查看
数据部门提供统一报表服务。报表平台地址:report.lianmeng.link(掌门集团内网)、sdk.lianmeng.link(掌门集团外部公网访问)。
报表权限申请:邮件至数据部门接口人(chenguangquan@wifi.com),抄送APP负责人,说明:姓名、邮箱地址、公司/部门、申请缘由。 报表平台目前提供日活、新增、留存、自定义事件统计等基础统计,未来将根据需求提供更丰富的数据服务。
页面统计
页面统计集成正确,才能获得各个页面的访问统计。Activity页面和Fragment页面的集成方法类似,集成代码如下:
public void onResume() {
super.onResume();
WKData.onPageStart("Home"); //统计页面,"Home"为页面名称,可自定义
...
}
public void onPause() {
WKData.onPageEnd("Home");
...
super.onPause();
}
注意:每个onPageStart都有一个相同名称onPageEnd配对。这样才能保证每个页面统计的正确。
多进程支持
如果APP需要对非主进程埋点进行统计,需要在manifest中额外配置WKDataMultiprocessService,如果未配置非该Service会导致非主进程的打点无法正常上报。
<manifest … >
<application …>
<!-- wkdata 多进程接入;这个Service必须放在主进程中,如果加到非主进程将不能正常工作。 -->
<service android:name="com.wifi.data.open.WKDataMultiprocessService" />
…
</application>
</manifest>
自定义事件统计
自定义事件可以实现在应用程序中埋点来统计用户的点击行为。
自定义事件接口说明
WKData.onEvent(funId)
WKData.onEvent(funId, extMap)
WKData.onEvent(funId, extMap, duration)
- funId: 事件名,最好以用户完成的某个操作或者进行了某个动作,比如:完成登录、完成分享、点击了详情等等;funId可用英文或数字,不要使用中文和特殊字符且不能使用英文句号“.”您可以使用下划线“_”
- extMap: 事件额外的参数,以key-value形式传入; key,value的命名不能包含换行字符’ ’,否则会影响统计
- duration: 具体耗时,单位毫秒
【注】默认情况下应用上的自定义事件是不会进行统计的,自定义事件如果需要被统计,需要在报表中配置相应的funId才可以使用
账号统计
数据SDK在统计用户时以设备为标准,如果需要统计应用自身的账号,请使用账号统计接口类WKDataExt。
新增用户
/**
* 成功注册一个账号时调用,方便服务端统计新增账号
* @param provider 账号来源
* @param userId 账号ID
*/
public static void onRegister(String provider, String userId);
用户注册成功时调用此接口,方便服务端统计新增账号。示例:WKDataExt.onRegister("weibo","13323");
用户登录成功
/**
* 用户登录成功时调用,此后的所有事件都会携带账号ID,登录状态会保存到文件中直到用户退出或者文件被清除,应用重启不会丢失。
* @param provider 账号来源
* @param userId 账号ID
*/
public static void onProfileSignIn(String provider, String userId)
用户登录成功后调用此接口,此后所有事件都会携带对应的userId。示例:WKDataExt.onProfileSignIn("weibo","13323");
用户登出
/**
* 用户注销时调用
* 清除当前用户的所有状态包括区服、角色、账号ID
*/
public static void onProfileSignOff()
账号登出时需调用此接口,调用之后所有事件不再携带userId。示例:WKDataExt.onProfileSignOff();
现金消费统计
这部分API用来统计用户(或者玩家) 在应用内付费的统计,比如用现金购买道具或者充值。
开始支付
/**
* 开始用现金购买商品,当通过现金直接购买道具时使用此接口
*
* @param orderId 订单ID
* @param currency 现金金额(单位分)
* @param currencyType 现金类型(CNY, USD, HKD, EUR等3字母)
* @param item 商品名称
* @param itemNumber 商品数量
* @param source 支付类型
*/
public static void onPayStart(final String orderId, final int currency, final String currencyType, final String item, final int itemNumber, int source)
示例:WKDataExt.onPayStart("2fb2f198a2a5acaa722094bdb654671d", 60000, "CNY", "屠龙刀", 1, WKDataExt.PaySource.Alipay);
支付类型
支付类型名称 | 常量 | 数值 |
---|---|---|
Google Play | WKDataExt.PaySource.GooglePlay | 1 |
支付宝支付 | WKDataExt.PaySource.Alipay | 2 |
银联支付 | WKDataExt.PaySource.Unipay | 3 |
财付通(包括微信,QQ) | WKDataExt.PaySource.Tenpay | 4 |
移动支付 | WKDataExt.PaySource.ChinaMobile | 5 |
联通支付 | WKDataExt.PaySource.ChinaUnicom | 6 |
电信支付 | WKDataExt.PaySource.ChinaTelecom | 7 |
Paypal支付 | WKDataExt.PaySource.Paypal | 8 |
盛付通支付 | WKDataExt.PaySource.Shengpay | 9 |
预留 | (10~20为预留支付渠道,如果支付要自定义可以用21以后的数值) | 10-20 |
应用自定义 | >=21 |
支付成功
/**
* 客户端获得支付成功
*
* @param orderId 订单号
*/
public static void onPaySuccess(final String orderId)
示例: WKDataExt.onPaySuccess("2fb2f198a2a5acaa722094bdb654671d");
支付取消
/**
* 客户端获得支付取消
*
* @param orderId 订单号
*/
public static void onPayCancel(final String orderId)
示例: WKDataExt.onPayCancel("2fb2f198a2a5acaa722094bdb654671d");
支付失败
/**
* 客户端获得支付失败
*
* @param orderId 订单号
* @param label 失败原因
*/
public static void onPayError(final String orderId, final String label)
示例: WKDataExt.onPayError("2fb2f198a2a5acaa722094bdb654671d", "network_error");