qtAnalytics 原生插件概述
qtAnalytics原生插件封装了QuickTracking APP统计SDK,实现QuickTracking统计功能包括启动次数、事件、页面等APP数据的统计。
原生插件使用攻略
1.使用之前须从QuickTracking申请账号并创建应用,获取 appkey 和收数域名。
2.配置 config.xml 文件,配置完毕,需通过云端编译生效,配置方法如下:**
<feature name="qtAnalytics">
<param name="ios_appkey" value="YOUR_IOS_APP_KEY"/>
<param name="ios_channel" value="YOUR_IOS_CHANNEL"/>
<param name="android_appkey" value="YOUR_ANDROID_APP_KEY"/>
<param name="android_channel" value="YOUR_ANDROID_CHANNEL"/>
<param name="primaryDomain" value="YOUR_primaryDomain"/>
<param name="standbyDomain" value="YOUR_standbyDomain"/>
</feature>
原生插件初始化接口
logEnabled:
ret:
{
status:true //布尔类型;SDK是否初始化成功
}
err:
{
msg:'错误信息' //字符串类型;错误信息
}
var qtAnalytics = api.require('qtAnalytics');
qtAnalytics.init(
{logEnabled:true},
function(ret, err) {
if (ret.status) {
api.alert({
msg: JSON.stringify(ret)
})
} else {
api.alert({
msg: JSON.stringify(err)
})
}
}
);
iOS系统,Android系统
可提供的1.0.0及更高版本
关闭采集
var qtAnalytics = api.require('qtAnalytics');
qtAnalytics.disableSDK();
iOS系统,Android系统
可提供的1.0.0及更高版本
开启SDK
var qtAnalytics = api.require('qtAnalytics');
qtAnalytics.enableSDK();
iOS系统,Android系统
可提供的1.0.0及更高版本
路径设置
需要检查目前是否已经使用了友盟+SDK,如果已经使用,请及时点击查看文档:
需要注意,一定更改SDK文件路径:
var qtAnalytics = api.require('qtAnalytics');
qtAnalytics.resetStorePath();
iOS系统,Android系统
可提供的1.0.0及更高版本
SDK实现了默认的设备标识符采集,此默认实现类默认会采集如下标识。
设备标识或设备信息 | 采集方法 | 备注 |
---|---|---|
AndroidID | String getAndroidID(Context context) | Android ID |
Serial | String getSerial() | Android手机设备序列号 |
IMEI | String getImei(Context context) | IMEI |
IMSI | String getImsi(Context context) | IMSI |
WiFiMac | String getWifiMac(Context context) | WiFiMac |
OAID | String getOaid(Context context) | OAID |
GAID | String getGaid(Context context) | Google广告ID |
MCCMNC | String getMCCMNC(Context context) | MCC:移动国家编码 MNC:移动网号 接口返回值:MCC值和MNC值拼接结果,MCC是3位整数,MNC为两位整数。例如:46011 |
如果开发者希望针对上表中的某几个设备标识符采集行为做控制,如:不采集IMEI字段和Serial字段,自行实现OAID的采集方法。就可以自定义这几个字段
AndroidID:
Serial:
IMEI:
IMSI:
WiFiMac:
OAID:
GAID:
MCCMNC:
var qtAnalytics = api.require('qtAnalytics');
qtAnalytics.setAndroidDeviceInfo({
IMEI:null,
Serial:null,
OAID:"custom_oaid"
});
qtAnalytics.init(
{logEnabled:true},
function(ret, err) {
if (ret.status) {
api.alert({
msg: JSON.stringify(ret)
})
} else {
api.alert({
msg: JSON.stringify(err)
})
}
}
);
Android系统
可提供的1.0.0及更高版本
自定义设置idfa,不采集可返回@""
idfa:
var qtAnalytics = api.require('qtAnalytics');
qtAnalytics.customSetIdfa({
idfa: ''
});
iOS系统
可提供的1.0.0及更高版本
自定义设置idfv,不采集可返回@""
idfv:
var qtAnalytics = api.require('qtAnalytics');
qtAnalytics.customSetIdfv({
idfv: ''
});
iOS系统
可提供的1.0.0及更高版本
自定义设置openUdid,不采集可返回@""
openUdid:
var qtAnalytics = api.require('qtAnalytics');
qtAnalytics.customSetOpenUdid({
openUdid: ''
});
iOS系统
可提供的1.0.0及更高版本
自定义设置utdid,不采集可返回@""
utdid:
var qtAnalytics = api.require('qtAnalytics');
qtAnalytics.customSetUtdid({
utdid: ''
});
iOS系统
可提供的1.0.0及更高版本
自定义设置mcc,不采集可返回@""
mcc:
var qtAnalytics = api.require('qtAnalytics');
qtAnalytics.customSetMcc({
mcc: ''
});
iOS系统
可提供的1.0.0及更高版本
自定义设置mnc,不采集可返回@""
mnc:
var qtAnalytics = api.require('qtAnalytics');
qtAnalytics.customSetMnc({
mnc: ''
});
iOS系统
可提供的1.0.0及更高版本
deviceId:
var qtAnalytics = api.require('qtAnalytics');
qtAnalytics.setCustomDeviceId({
deviceId: ''
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设备ID的获取
var qtAnalytics = api.require('qtAnalytics');
var umidStr = qtAnalytics.getUMIDString();
iOS系统,Android系统
可提供的1.0.0及更高版本
在统计用户时以设备为标准,如果需要统计应用自身的账号,请使用以下接口:
userId:
var qtAnalytics = api.require('qtAnalytics');
qtAnalytics.onProfileSignIn({userId:"custom_userId"});
iOS系统,Android系统
可提供的1.0.0及更高版本
账号登出时需调用此接口,调用之后不再发送账号相关内容
var qtAnalytics = api.require('qtAnalytics');
qtAnalytics.onProfileSignOff()
iOS系统,Android系统
可提供的1.0.0及更高版本
设置用户属性
在上报用户属性之前,需要先设置userId上报用户账号,否则QuickTracking流量分析对用户属性不会进行关联计算。确认上报用户的账号ID后,上报用户属性示例如下
properties:
var qtAnalytics = api.require('qtAnalytics');
qtAnalytics.setUserProfile({
properties:{
sex:"girl", //性别
age:"8"//年龄
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
注册一个全局属性
注册全局属性后,后续触发的所有事件都将自动包含这些属性;且这些属性及属性值存入缓存,APP退出后清除。在分析数据时,可根据此属性进行查看和筛选。
properties:
var qtAnalytics = api.require('qtAnalytics');
var param = {properties:{a:"1",b:"2"}};
qtAnalytics.registerGlobalProperties(param);//当前globalproperty为a:1和b:2
var param = {properties:{b:"3",c:"4"}};
qtAnalytics.registerGlobalProperties(param);//当前globalproperty为a:1、b:3和c:4
iOS系统,Android系统
可提供的1.0.0及更高版本
删除一个全局属性
propertyName:
var qtAnalytics = api.require('qtAnalytics');
var param = {propertyName:"lnch_Source"};
qtAnalytics.unregisterGlobalProperty(param);
iOS系统,Android系统
可提供的1.0.0及更高版本
根据Key获取单个全局属性
propertyName:
var qtAnalytics = api.require('qtAnalytics');
var param = {propertyName:"lnch_Source"};
var gp = qtAnalytics.getGlobalProperty(params);
iOS系统,Android系统
可提供的1.0.0及更高版本
获取所有全局属性
var qtAnalytics = api.require('qtAnalytics');
var allgp = qtAnalytics.getGlobalProperties();
iOS系统,Android系统
可提供的1.0.0及更高版本
清除所有的全局属性
var qtAnalytics = api.require('qtAnalytics');
qtAnalytics.clearGlobalProperties();
iOS系统,Android系统
可提供的1.0.0及更高版本
页面手动采集
开发者如果希望对页面路径和页面停留时长进行采集和统计。可以通过调用onPageStart/onPageEnd这组接口进行手动埋点。
注意:
pageName:
var qtAnalytics = api.require('qtAnalytics');
qtAnalytics.onPageStart({pageName:"MainScreen"});
iOS系统,Android系统
可提供的1.0.0及更高版本
页面手动采集
pageName:
var qtAnalytics = api.require('qtAnalytics');
qtAnalytics.onPageEnd({pageName:"MainScreen"});
iOS系统,Android系统
可提供的1.0.0及更高版本
页面属性上传
支持给当前页面附加自定义属性。
pageName:
properties:
var qtAnalytics = api.require('qtAnalytics');
qtAnalytics.onPageStart({pageName:"MainScreen"});
qtAnalytics.setPageProperty({
pageName:"MainScreen",
properties:{
home_param_1:"value11" // 当前页面相关属性设置
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
给下一个页面附加自定义属性,必须在下一个页面onPageStart之前调用
properties:
var qtAnalytics = api.require('qtAnalytics');
qtAnalytics.setNextPageProperty({
properties: {
nextPageProperty: "secondPageProperty"
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
事件埋点
自定义事件可以用于追踪用户行为,记录行为发生的具体细节。
eventId:
pageName:
properties:
var qtAnalytics = api.require('qtAnalytics');
qtAnalytics.onEventObject({
eventId:"play_music",
pageName:"MainScreen",
properties:{
music_type:"popular", //自定义参数:音乐类型,值:流行
singer:"JJ", //歌手:(林俊杰)JJ
song_name:"A_Thousand_Years_Later", //歌名:一千年以后
song_price:100 //价格:100元
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
特殊场景
如果开发者调用kill或者exit之类的方法杀死进程,请务必在此之前调用onKillProcess,用来保存统计数据。
var qtAnalytics = api.require('qtAnalytics');
qtAnalytics.onKillProcess();
Android系统
可提供的1.0.0及更高版本