1. 概述

SensorsAnalyticsAPICloudSDK 封装了 Sensors Analytics 数据统计 Android & iOS SDK,使用此模块可进行用户行为数据采集。

神策分析,是针对企业级客户推出的深度用户行为分析产品,支持私有化部署,客户端、服务器、业务数据、第三方数据的全端采集和建模,驱动营销渠道效果评估、用户精细化运营改进、产品功能及用户体验优化、老板看板辅助管理决策、产品个性化推荐改造、用户标签体系构建等应用场景。作为 PaaS 平台支持二次开发,可通过 BI、大数据平台、CRM、ERP 等内部 IT 系统,构建用户数据体系,让用户行为数据发挥深远的价值。

2. 模块添加

在模块库中搜索 SensorsAnalyticsAPICloudSDK 然后点击添加按钮。

3. 使用此模块需要在 config.xml 文件中配置相应的 feature

配置示例:

<feature name="sensorsAnalyticsAPICloudSDK">
	<param name="serverURL" value="数据接收地址URL"/>
	<param name="enableAutoTrack" value="true"/>
	<param name="downloadChannel" value="App Store"/>
	<param name="enableLog" value="false"/>
</feature>
XML


配置说明:

  • feature 名称:sensorsAnalyticsAPICloudSDK
  • param 参数
    • serverURL:(如果有特殊字符 & ,使用&amp;) 数据接收地址 URL。
    • enableAutoTrack:(可选项) 是否采集 App 启动、App 退出事件,传入字符串 true 表示采集启动、退出事件
    • downloadChannel:(可选项) App 的下载渠道,配置此参数时,会触发 App 安装激活事件(AppInstall),下载渠道会存储在 DownloadChannel 字段中
    • enableLog:(可选项) 是否开启调试日志,传入字符串 true 表示开启调试日志。
  • 更多参数配置

    • flushInterval:两次数据发送的最小时间间隔,单位毫秒

    • flushBulkSize:本地缓存的最大事件数目,当累积日志量达到阈值时发送数据

    • maxCacheSizeAndroid:Android 端设置本地缓存最大值,单位 MB,默认 32 MB
    • maxCacheSizeIOS:iOS 端设置本地缓存最多事件条数,默认为 10000 条事件

    • minRequestInterval:远程配置请求最小间隔时长,单位:小时,默认 24

    • maxRequestInterval:远程配置请求最大间隔时长,单位:小时,默认 48

    • disableRandomTimeRequestRemoteConfig:禁用随机时间请求远程配置

    • encrypt:是否开启加密,默认 false

    • disableDataCollect:合规功能,是否禁止数据采集,默认 fasle;

注意

请注意:Debug 模式是为方便开发者调试而设置的模式,该模式会逐条校验数据并在校验失败时抛出异常,性能远低于正常模式。线上环境使用 Debug 模式会严重影响性能并存在崩溃风险,产品上线前请务必替换掉/关闭 Debug 模式。

4. 功能接口

4.1. setServerUrl

设置数据接收地址。

setServerUrl({params})

serverUrl: 

  • 类型:字符串
  • 描述:数据接收地址
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.setServerUrl({serverUrl:'testURL'});
JS

4.2. login

设置当前用户的 loginId

login({params})

loginId:

  • 类型:字符串
  • 描述:(必填项)用户的登录id,不能为空,且长度不能大于255
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.login({
	loginId: '123456'
});
JS

4.3. registerSuperProperties

设置公共属性,设置之后,之后触发的事件会带上设置的公共属性

registerSuperProperties({params})

properties:

  • 类型:json 格式
  • 描述:(必填项)公共属性,属性名需要满足一般变量的命名规则
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.registerSuperProperties({properties:{ PlatformType:"Android"}});
JS

4.4. track

track 事件。

track({params})

event:

  • 类型:字符串
  • 描述:(必填项)事件名称,名称需要满足一般变量的命名规则,即不能以数字开头,且只包含:大小写字母、数字、下划线和$

properties:

  • 类型:json 格式
  • 描述:(选填项)事件属性,名称需要满足一般变量的命名规则,即不能以数字开头,且只包含:大小写字母、数字、下划线和$
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.track({
	event:'ViewProduct',
	properties:{
		ProductID:123456,
		ProductCatalog:'Laptop Computer',
		IsAddedToFav: false
	}
});
JS

4.5. getDistinctId

getDistinctId 获取当前用户的 distinctId ,如果用户未登录时,返回值为 匿名 ID ;登录(调用login)后,返回值为 登录 ID 。

getDistinctId()

  • 返回值类型:String 字符串
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
var distinctId = sensorsApiCloudSdk.getDistinctId();
JS

4.6. trackTimerStart

初始化事件的计时器,计时单位为秒。

trackTimerStart({params})

event: 

  • 类型:字符串
  • 描述:事件名称或事件的 eventId
  • 返回值类型:交叉计时事件名称
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.trackTimerStart({event:'ApiCloudTrackTimer'});
JS

4.7. trackTimerPause

暂停事件计时

trackTimerPause({params})

event: 

  • 类型:字符串
  • 描述:事件名称或事件的 eventId
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.trackTimerPause({event:'ApiCloudTrackTimer'});
JS

4.8. trackTimerResume

恢复事件计时

trackTimerResume({params})

event:

  • 类型:字符串
  • 描述:事件名称或事件的 eventId
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.trackTimerResume({event:'ApiCloudTrackTimer'});
CODE

4.9. clearTrackTimer

删除所有事件计时

clearTrackTimer()

var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.clearTrackTimer();
CODE

4.10. getSuperProperties

获取公共属性

getSuperProperties()

  • 返回值类型:json 字符串
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
var superProperties = sensorsApiCloudSdk.getSuperProperties();
CODE

4.11. trackAppInstall

记录 $AppInstall 事件,用于在 App 首次启动时追踪渠道来源,并设置追踪渠道事件的属性

trackAppInstall({params})

properties:

  • 类型:json 格式
  • 描述:追踪渠道事件的属性
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.trackAppInstall({
							properties:{
								testAppInstall:"testAppInstallValue"
								}
							});
CODE

4.12. clearSuperProperties

删除当前所有的 superProperty

clearSuperProperties()

var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.clearSuperProperties();
CODE

4.13. setFlushNetworkPolicy

设置 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});
CODE

4.14. getPresetProperties

返回预置属性

getPresetProperties()

  • 返回值类型:json 字符串
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
var result = sensorsApiCloudSdk.getPresetProperties();
CODE

4.15. logout

登出

logout()

var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
var result = sensorsApiCloudSdk.logout();
CODE

4.16. getLoginId

获取当前用户的 loginId

getLoginId()

  • 返回值类型:字符串
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
var loginId = sensorsApiCloudSdk.getLoginId();
CODE

4.17. itemSet

设置 item

itemSet()

itemType:

  • 类型:字符串
  • 描述:item 类型

itemId:

  • 类型:字符串
  • 描述:item Id

properties:

  • 类型:json 格式
  • 描述:item 相关属性
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.itemSet({itemType: 'itemType', itemId: 'itemId', properties: {itemProperty: 'itemPropertyValue'}});
CODE

4.18. itemDelete

删除 item

itemDelete()

itemType:

  • 类型:字符串
  • 描述:item 类型

itemId:

  • 类型:字符串
  • 描述:item Id
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.itemDelete({itemType: 'itemType', itemId: 'itemId'});
CODE

4.19. isAutoTrackEnabled

是否开启 AutoTrack

isAutoTrackEnabled()

  • 返回值类型:布尔值
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
result = sensorsApiCloudSdk.isAutoTrackEnabled();
CODE

4.20. profileSet

profileSet 设置用户属性。

profileSet({params})

properties:

  • 类型:json 格式
  • 描述:(选填项)用户属性,名称需要满足一般变量的命名规则,即不能以数字开头,且只包含:大小写字母、数字、下划线和$
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.profileSet({
properties:{
sex:"男"
}
});
CODE

4.21. profileSetOnce

profileSetOnce 设置用户首次属性。

profileSetOnce({params})

properties:

  • 类型:json 格式
  • 描述:(选填项)用户属性,名称需要满足一般变量的命名规则,即不能以数字开头,且只包含:大小写字母、数字、下划线和$
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.profileSetOnce({
	properties:{
	firstCharge:100
	}
});
CODE

4.22. profileIncrement

给一个数值类型的 Profile 增加一个数值

profileIncrement({params}})

properties

  • 类型:Map
  • 描述:增加一组用户行,用户属性 value 只能为数值。
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.profileIncrement({properties:{chinese:60,math:70}});
CODE

4.23. profileAppend

给 Profile 增加一个元素

profileAppend({params})

property

  • 类型:String
  • 描述:用户属性名

value

  • 类型: 数组
  • 描述:用户属性值
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.profileAppend({property:'ArrayDesc',value:['SDK','后端','算法']});
CODE

4.24. profileUnset

函数,删除用户属性

profileUnset({params})

property

  • 类型:String
  • 描述:需删除的用户属性名
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.profileUnset({property:'ApiCloudAge'});
CODE

4.25. profileDelete

删除此用户所有用户属性

profileDelete

var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.profileDelete();
CODE

4.26. profilePushId

设置用户的 pushId

profilePushId({params})

pushTypeKey:

  • 类型:字符串
  • 描述:pushId 的 key

pushId:

  • 类型:字符串
  • 描述:pushId 的值
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.profilePushId({pushTypeKey: 'pushTypeKey', pushId: 'pushId_'});
CODE

4.27. profileUnsetPushId

删除用户设置的 pushId

profileUnsetPushId({params})

pushTypeKey:

  • 类型:字符串
  • 描述:pushId 的 key
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.profileUnsetPushId({pushTypeKey: 'pushTypeKey'});
CODE

4.28. enableNetWorkRequest

设置是否允许请求网络,默认是 true。

enableNetWorkRequest({params })

isRequest:

  • 类型:字符串
  • 描述:是否允许请求网络,默认是 true。
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.enableNetWorkRequest({isRequest: false });
CODE

4.29. isNetworkRequestEnable

获取是否允许请求网络。

isNetworkRequestEnable()

  • 返回值类型: boolean
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
var isEnable = sensorsApiCloudSdk.isNetworkRequestEnable();
CODE

4.30. setSessionIntervalTime

设置 App 切换到后台与下次事件的事件间隔

setSessionIntervalTime({params})

sessionIntervalTime:

  • 类型:int
  • 描述: App 切换到后台与下次事件的事件间隔,单位:毫秒
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.setSessionIntervalTime({sessionIntervalTime:15000});
CODE

4.31. getSessionIntervalTime

获取 App 切换到后台与下次事件的事件间隔

getSessionIntervalTime()

  • 返回值类型:int
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
var session = sensorsApiCloudSdk.getSessionIntervalTime();
CODE

4.32. enableDataCollect

开启数据采集

enableDataCollect()

var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.enableDataCollect();
CODE

4.33. trackViewScreen

触发 $AppViewScreen 事件

trackViewScreen({params})

url:

  • 类型:String
  • 描述: 页面的 url 记录到 $url 字段中(如果不需要此属性,可以传 null

properties

  • 类型:json 格式
  • 描述:页面的属性
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.trackViewScreen({url:'url',properties:{$title:'title'}});
CODE

4.34. unregisterSuperProperty

删除特定静态公共属性

unregisterSuperProperty({params})

property

  • 类型:String
  • 描述:需删除的静态公共属性 key
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.unregisterSuperProperty({property:'ApiCloudSuperKey'});
CODE

4.35. clearSuperProperties

清除静态公共属性

 clearSuperProperties()

var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.clearSuperProperties();
CODE

4.36. flush

强制发送数据到服务端

  flush()

var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.flush();
CODE

4.37. deleteAll

删除本地数据库的所有数据!!!请谨慎使用

  deleteAll()

var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.deleteAll();
CODE

4.38. enableLog

打印日志控制

   enableLog({params}})

enableLog

  • 类型: boolean
  • 描述: 是否打印日志
var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
sensorsApiCloudSdk.enableLog({enableLog:true}});
CODE