SensorsAnalyticsAPICloudSDK 封装了 Sensors Analytics 数据统计 Android & iOS SDK,使用此模块可进行用户行为数据采集。
神策分析,是针对企业级客户推出的深度用户行为分析产品,支持私有化部署,客户端、服务器、业务数据、第三方数据的全端采集和建模,驱动营销渠道效果评估、用户精细化运营改进、产品功能及用户体验优化、老板看板辅助管理决策、产品个性化推荐改造、用户标签体系构建等应用场景。作为 PaaS 平台支持二次开发,可通过 BI、大数据平台、CRM、ERP 等内部 IT 系统,构建用户数据体系,让用户行为数据发挥深远的价值。
在模块库中搜索 SensorsAnalyticsAPICloudSDK 然后点击添加按钮。
初始化 SDK。
initSDK({params})
params:
- 类型:json 格式
- 描述:SDK 初始化配置属性
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk. initSDK({
server_url:'数据接收地址',
enable_log:false,//是否开启日志,默认 false
auto_track:false,//只支持 $AppStart $AppEnd 事件,默认 false
flush_interval:15000,//两次上报数据间隔,单位:毫秒,默认 15000 毫秒
flush_bulkSize:100,设置本地缓存日志的最大条目数,最小 50 条, 默认 100 条
encrypt:false,//是否开启加密,需后端支持,加密仅支持 RSA+AES,默认 false
});
track 事件。
track({params})
event:
- 类型:字符串
- 描述:(必填项)事件名称,名称需要满足一般变量的命名规则,即不能以数字开头,且只包含:大小写字母、数字、下划线和$
properties:
- 类型:json 格式
- 描述:(选填项)事件属性,名称需要满足一般变量的命名规则,即不能以数字开头,且只包含:大小写字母、数字、下划线和$
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.track({
event:'ViewProduct',
properties:{
ProductID:123456,
ProductCatalog:'Laptop Computer',
IsAddedToFav: false
}
});
设置数据接收地址。
setServerUrl({params})
serverUrl:
- 类型:字符串
- 描述:数据接收地址
requestRemoteConfig:
- 类型:boolean
- 描述:是否请求远程配置
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.setServerUrl({serverUrl:'testURL', requestRemoteConfig:false});
获取数据接收地址。
getServerUrl({params})
- 返回值类型:字符串
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
var serverUrl = sensorsApiCloudSdk.getServerUrl();
设置当前用户的 loginId
login({params})
loginId:
- 类型:字符串
- 描述:(必填项)用户的登录id,不能为空,且长度不能大于255
properties:
- 类型:json 格式
- 描述:(选填项)用户属性,名称需要满足一般变量的命名规则,即不能以数字开头,且只包含:大小写字母、数字、下划线和$
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.login({
loginId: '123456',
properties:{
age:18,
name:'sensors'
}
});
设置当前用户的登录 IDKey 和 loginId
loginWithKey({params})
key:
- 类型:字符串
- 描述:(必填项)登录 IDKey
id:
- 类型:字符串
- 描述:(必填项)登录 loginId
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.loginWith({
key: 'mobile',
id: '133XXXXXXXX'
});
获取当前用户的 loginId
getLoginId()
- 返回值类型:字符串
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
var loginId = sensorsApiCloudSdk.getLoginId();
登出
logout()
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.logout();
设置公共属性,设置之后,之后触发的事件会带上设置的公共属性
registerSuperProperties({params})
properties:
- 类型:json 格式
- 描述:(必填项)公共属性,属性名需要满足一般变量的命名规则
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.registerSuperProperties({properties:{ PlatformType:"Android"}});
getDistinctId 获取当前用户的 distinctId ,如果用户未登录时,返回值为 匿名 ID ;登录(调用login)后,返回值为 登录 ID 。
getDistinctId()
- 返回值类型:String 字符串
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
var distinctId = sensorsApiCloudSdk.getDistinctId();
- 设置当前用户的 distinctId。一般情况下,如果是一个注册用户,则应该使用注册系统内 的 user_id,如果是个未注册用户,则可以选择一个不会重复的匿名 ID,如设备 ID 等,如果 客户没有调用 identify,则使用SDK自动生成的匿名 ID
identify({params})
anonymousId
- 类型:String
- 描述:(必填项) 匿名 ID
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
var distinctId = sensorsApiCloudSdk.identify({anonymousId:"anonymousId"});
- 获取匿名 ID
getAnonymousId()
- 返回值类型:String 字符串
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
var anonymousId = sensorsApiCloudSdk.getAnonymousId();
- 重置默认匿名 ID
resetAnonymousId()
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.resetAnonymousId();
初始化事件的计时器,计时单位为秒。
trackTimerStart({params})
event:
-
类型:字符串
-
描述:事件名称
-
返回值类型:交叉计时事件Id
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.trackTimerStart({event:'ApiCloudTrackTimer'});
暂停事件计时
trackTimerPause({params})
event:
- 类型:字符串
- 描述:事件名称或事件的 eventId
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.trackTimerPause({event:'ApiCloudTrackTimer'});
恢复事件计时
trackTimerResume({params})
event:
- 类型:字符串
- 描述:事件名称或事件的 eventId
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.trackTimerResume({event:'ApiCloudTrackTimer'});
停止事件计时器,并触发事件
trackTimerEnd({params})
event:
- 类型:字符串
- 描述:事件名称或事件的 eventId
properties:
- 类型:json 格式
- 描述:(选填项)事件属性,名称需要满足一般变量的命名规则,即不能以数字开头,且只包含:大小写字母、数字、下划线和$
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.trackTimerEnd({
event:'ApiCloudTrackTimer'
properties:{
ProductID:123456,
ProductCatalog:'Laptop Computer',
IsAddedToFav: false
}
});
删除事件的计时器
removeTimer({params})
event:
- 类型:字符串
- 描述:事件名称或事件的 eventId
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.removeTimer({event:'ApiCloudTrackTimer'});
删除所有事件计时
clearTrackTimer()
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.clearTrackTimer();
获取公共属性
getSuperProperties()
- 返回值类型:json 字符串
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
var superProperties = sensorsApiCloudSdk.getSuperProperties();
记录 $AppInstall 事件,用于在 App 首次启动时追踪渠道来源,并设置追踪渠道事件的属性
trackAppInstall({params})
properties:
- 类型:json 格式
- 描述:追踪渠道事件的属性
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.trackAppInstall({
properties:{
testAppInstall:"testAppInstallValue"
}
});
删除当前所有的 superProperty
clearSuperProperties()
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.clearSuperProperties();
设置 flush 时网络发送策略,默认 3G、4G、WI-FI 环境下都会尝试 flush
setFlushNetworkPolicy({params})
networkPolicy:
- 类型:int 类型
- 描述:
-
TYPE_NONE = 0;//NULL
-
TYPE_2G = 1;//2G
-
TYPE_3G = 1 << 1;//3G 2
-
TYPE_4G = 1 << 2;//4G 4
-
TYPE_WIFI = 1 << 3;//WIFI 8
-
TYPE_5G = 1 << 4;//5G 16
-
TYPE_ALL = 0xFF;//ALL 255
-
例:若需要开启 4G 5G 发送数据,则需要设置 4 + 16 = 20
-
iOS 不支持 5G。
-
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.setFlushNetworkPolicy({networkPolicy:31});
返回预置属性
getPresetProperties()
- 返回值类型:json 字符串
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
var result = sensorsApiCloudSdk.getPresetProperties();
设置 item
itemSet({params})
itemType:
- 类型:字符串
- 描述:item 类型
itemId:
- 类型:字符串
- 描述:item Id
properties:
- 类型:json 格式
- 描述:item 相关属性
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.itemSet({itemType: 'itemType', itemId: 'itemId', properties: {itemProperty: 'itemPropertyValue'}});
删除 item
itemDelete({params})
itemType:
- 类型:字符串
- 描述:item 类型
itemId:
- 类型:字符串
- 描述:item Id
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.itemDelete({itemType: 'itemType', itemId: 'itemId'});
是否开启 AutoTrack
isAutoTrackEnabled()
- 返回值类型:布尔值
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
result = sensorsApiCloudSdk.isAutoTrackEnabled();
profileSet 设置用户属性。
profileSet({params})
properties:
- 类型:json 格式
- 描述:(选填项)用户属性,名称需要满足一般变量的命名规则,即不能以数字开头,且只包含:大小写字母、数字、下划线和$
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.profileSet({
properties:{
sex:"男"
}
});
profileSetOnce 设置用户首次属性。
profileSetOnce({params})
properties:
- 类型:json 格式
- 描述:(选填项)用户属性,名称需要满足一般变量的命名规则,即不能以数字开头,且只包含:大小写字母、数字、下划线和$
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.profileSet({
properties:{
firstCharge:100
}
});
给一个数值类型的 Profile 增加一个数值
profileIncrement({params}})
properties
- 类型:Map
- 描述:增加一组用户行,用户属性 value 只能为数值。
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.profileIncrement({properties:{chinese:60,math:70}});
给 Profile 增加一个元素
profileAppend({params})
property
- 类型:String
- 描述:用户属性名
value
- 类型: 数组
- 描述:用户属性值
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.profileAppend({property:'ArrayDesc',value:['SDK','后端','算法']});
函数,删除用户属性
profileUnset({params})
property
- 类型:String
- 描述:需删除的用户属性名
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.profileUnset({property:'ApiCloudAge'});
删除此用户所有用户属性
profileDelete
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.profileDelete();
设置用户的 pushId
profilePushId({params})
pushTypeKey:
- 类型:字符串
- 描述:pushId 的 key
pushId:
- 类型:字符串
- 描述:pushId 的值
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.profilePushId({pushTypeKey: 'pushTypeKey', pushId: 'pushId_'});
删除用户设置的 pushId
profileUnsetPushId({params})
pushTypeKey:
- 类型:字符串
- 描述:pushId 的 key
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.profileUnsetPushId({pushTypeKey: 'pushTypeKey'});
(Android) 设置是否允许请求网络,默认是 true。
enableNetWorkRequest({params })
isRequest:
- 类型:字符串
- 描述:是否允许请求网络,默认是 true。
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.enableNetWorkRequest({isRequest: false });
(Android) 获取是否允许请求网络。
isNetworkRequestEnabled()
- 返回值类型: boolean
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
var isEnable = sensorsApiCloudSdk.isNetworkRequestEnabled();
(Android) 设置 App 切换到后台与下次事件的事件间隔
setSessionIntervalTime({params})
sessionIntervlTime:
- 类型:int
- 描述:App 切换到后台与下次事件的事件间隔,单位:毫秒
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.setSessionIntervalTime({sessionIntervalTime:15000});
(Android) 获取 App 切换到后台与下次事件的事件间隔
getSessionIntervalTime()
- 返回值类型:int
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
var session = sensorsApiCloudSdk.getSessionIntervalTime();
触发 $AppViewScreen 事件
trackViewScreen({params})
url:
- 类型:String
- 描述:页面的 url 记录到 $url 字段中(如果不需要此属性,可以传 null
properties
- 类型:json 格式
- 描述:页面的属性
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.trackViewScreen({url:'url',properties:{$title:'title'}});
删除特定静态公共属性
unregisterSuperProperty({params})
property
- 类型:String
- 描述:需删除的静态公共属性 key
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.unregisterSuperProperty({property:'ApiCloudSuperKey'});
清除静态公共属性
clearSuperProperties()
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.clearSuperProperties();
强制发送数据到服务端
flush()
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.flush();
删除本地数据库的所有数据!!!请谨慎使用
deleteAll()
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.deleteAll();
打印日志控制
enableLog({params})
enableLog
- 类型: boolean
- 描述: 是否打印日志
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.enableLog({enableLog:true}});
获取当前的 identities
getIdentities()
- 返回值类型:json
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
var identities = sensorsApiCloudSdk.getIdentities();
绑定业务
bind({params}) key
- 类型: String
- 描述: 绑定的 key
value
- 类型: String
- 描述: 绑定的 value
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.bind({key:'mobile',value:'133XXXXXXXX');
解绑业务 unbind({params}) key
- 类型: String
- 描述: 解绑的 key
value
- 类型: String
- 描述: 解绑的 value
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.unbind({key:'mobile',value:'133XXXXXXXX');
解绑业务 unbind({params}) key
- 类型: String
- 描述: 解绑的 key
value
- 类型: String
- 描述: 解绑的 value
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.unbind({key:'mobile',value:'133XXXXXXXX');
设置本地缓存日志的最大条目数,最小 50 条
setFlushBulkSize({params}) flushBulkSize
- 类型: int
- 描述: 缓存日志的最大条目数
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.setFlushBulkSize({flushBulkSize:最大缓存条数});
获取本地缓存日志的最大条目数
getFlushBulkSize()
- 返回值类型:int
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
var flushBulkSize = sensorsApiCloudSdk.getFlushBulkSize();
设置两次数据发送的最小时间间隔
setFlushInterval({params}) flushInterval
- 类型: int
- 描述: 设置两次数据发送的最小时间间隔,单位毫秒
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.setFlushInterval({flushInterval:数据发送间隔});
获取两次数据发送的最小时间间隔
getFlushInterval()
- 返回值类型:int
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
var flushInterval = sensorsApiCloudSdk.getFlushInterval();
开启 SDK
enableSDK()
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.enableSDK();
关闭 SDK
disableSDK()
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.disableSDK();