SensorsAnalyticsAPICloudSDK

立即使用

1. 概述

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

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

2. 模块添加

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

3. config.xml 配置

使用此模块需要在 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>
  • feature 名称:sensorsAnalyticsAPICloudSDK
    • param 参数
      • serverURL:(如果有特殊字符 & ,使用&) 数据接收地址 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:合规功能,是否禁止数据采集,默认 false;

  • disableSDK:关闭 SDK,默认 false;

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
        }
    });
    

========

setServerUrl

设置数据接收地址。

setServerUrl({params})

serverUrl:

  • 类型:字符串
  • 描述:数据接收地址

requestRemoteConfig:

  • 类型:boolean
  • 描述:是否请求远程配置
    var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
    sensorsApiCloudSdk.setServerUrl({serverUrl:'testURL', requestRemoteConfig:false});

getServerUrl

获取数据接收地址。

getServerUrl({params})

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

login

设置当前用户的 loginId

login({params})

loginId:

  • 类型:字符串
  • 描述:(必填项)用户的登录id,不能为空,且长度不能大于255

properties:

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

loginWithKey

设置当前用户的登录 IDKey 和 loginId

loginWithKey({params})

key:

  • 类型:字符串
  • 描述:(必填项)登录 IDKey

id:

  • 类型:字符串
  • 描述:(必填项)登录 loginId
    var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
    sensorsApiCloudSdk.loginWith({
         key: 'mobile',
         id:  '133XXXXXXXX'
    });

getLoginId

获取当前用户的 loginId

getLoginId()

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

logout

登出

logout()

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

registerSuperProperties

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

registerSuperProperties({params})

properties:

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

getDistinctId

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

getDistinctId()

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

identify

  • 设置当前用户的 distinctId。一般情况下,如果是一个注册用户,则应该使用注册系统内 的 user_id,如果是个未注册用户,则可以选择一个不会重复的匿名 ID,如设备 ID 等,如果 客户没有调用 identify,则使用SDK自动生成的匿名 ID

identify({params})

anonymousId

  • 类型:String
  • 描述:(必填项) 匿名 ID
    var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
    var distinctId = sensorsApiCloudSdk.identify({anonymousId:"anonymousId"});
    

getAnonymousId

  • 获取匿名 ID

getAnonymousId()

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

resetAnonymousId

  • 重置默认匿名 ID

resetAnonymousId()

    var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
    sensorsApiCloudSdk.resetAnonymousId();

trackTimerStart

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

trackTimerStart({params})

event:

  • 类型:字符串
  • 描述:事件名称

  • 返回值类型:交叉计时事件Id

    var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
    sensorsApiCloudSdk.trackTimerStart({event:'ApiCloudTrackTimer'});

trackTimerPause

暂停事件计时

trackTimerPause({params})

event:

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

trackTimerResume

恢复事件计时

trackTimerResume({params})

event:

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

trackTimerEnd

停止事件计时器,并触发事件

trackTimerEnd({params})

event:

  • 类型:字符串
  • 描述:事件名称或事件的 eventId

properties:

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

removeTimer

删除事件的计时器

removeTimer({params})

event:

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

clearTrackTimer

删除所有事件计时

clearTrackTimer()

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

getSuperProperties

获取公共属性

getSuperProperties()

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

trackAppInstall

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

trackAppInstall({params})

properties:

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

clearSuperProperties

删除当前所有的 superProperty

clearSuperProperties()

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

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});
      

getPresetProperties

返回预置属性

getPresetProperties()

  • 返回值类型:json 字符串
    var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
    var result = sensorsApiCloudSdk.getPresetProperties();
    
    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'}});
    

itemDelete

删除 item

itemDelete()

itemType:

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

itemId:

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

isAutoTrackEnabled

是否开启 AutoTrack

isAutoTrackEnabled()

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

profileSet

profileSet 设置用户属性。

profileSet({params})

properties:

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

profileSetOnce

profileSetOnce 设置用户首次属性。

profileSetOnce({params})

properties:

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

profileIncrement

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

profileIncrement({params}})

properties

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

profileAppend

给 Profile 增加一个元素

profileAppend({params})

property

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

value

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

profileUnset

函数,删除用户属性

profileUnset({params})

property

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

profileDelete

删除此用户所有用户属性

profileDelete

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

profilePushId

设置用户的 pushId

profilePushId({params})

pushTypeKey:

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

pushId:

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

profileUnsetPushId

删除用户设置的 pushId

profileUnsetPushId({params})

pushTypeKey:

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

enableNetWorkRequest

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

enableNetWorkRequest({params })

isRequest:

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

isNetworkRequestEnabled

(Android) 获取是否允许请求网络。

isNetworkRequestEnabled()

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

setSessionIntervalTime

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

setSessionIntervalTime({params})

sessionIntervlTime:

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

getSessionIntervalTime

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

getSessionIntervalTime()

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

enableDataCollect

(Android) 开启数据采集

enableDataCollect()

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

trackViewScreen

触发 $AppViewScreen 事件

trackViewScreen({params})

url:

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

properties

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

unregisterSuperProperty

删除特定静态公共属性

unregisterSuperProperty({params})

property

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

clearSuperProperties

清除静态公共属性

clearSuperProperties()

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

flush

强制发送数据到服务端

flush()

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

deleteAll

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

deleteAll()

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

enableLog

打印日志控制

enableLog({params})

enableLog

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

getIdentities

获取当前的 identities

getIdentities()

  • 返回值类型:json
      var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
      var identities = sensorsApiCloudSdk.getIdentities();
    

bind

绑定业务

bind({params}) key

  • 类型: String
  • 描述: 绑定的 key

value

  • 类型: String
  • 描述: 绑定的 value
    var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
    sensorsApiCloudSdk.bind({key:'mobile',value:'133XXXXXXXX');

unbind

解绑业务 unbind({params}) key

  • 类型: String
  • 描述: 解绑的 key

value

  • 类型: String
  • 描述: 解绑的 value
    var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
    sensorsApiCloudSdk.unbind({key:'mobile',value:'133XXXXXXXX');

unbind

解绑业务 unbind({params}) key

  • 类型: String
  • 描述: 解绑的 key

value

  • 类型: String
  • 描述: 解绑的 value
    var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
    sensorsApiCloudSdk.unbind({key:'mobile',value:'133XXXXXXXX');

setFlushBulkSize

设置本地缓存日志的最大条目数,最小 50 条

setFlushBulkSize({params}) flushBulkSize

  • 类型: int
  • 描述: 缓存日志的最大条目数
    var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
    sensorsApiCloudSdk.setFlushBulkSize({flushBulkSize:最大缓存条数});
    

getFlushBulkSize

获取本地缓存日志的最大条目数

getFlushBulkSize()

  • 返回值类型:int
    var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
    var flushBulkSize = sensorsApiCloudSdk.getFlushBulkSize();
    

setFlushInterval

设置本地缓存日志的最大条目数,最小 50 条

setFlushInterval({params}) flushInterval

  • 类型: int
  • 描述: 设置两次数据发送的最小时间间隔,单位毫秒
    var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
    sensorsApiCloudSdk.setFlushInterval({flushInterval:数据发送间隔});
    

getFlushInterval

获取两次数据发送的最小时间间隔

getFlushInterval()

  • 返回值类型:int
    var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
    var flushInterval = sensorsApiCloudSdk.getFlushInterval();
    

enableSDK

开启 SDK

enableSDK()

    var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
    sensorsApiCloudSdk.enableSDK();

disableSDK

关闭 SDK

disableSDK()

    var sensorsApiCloudSdk = api.require('sensorsAnalyticsAPICloudSDK');
    sensorsApiCloudSdk.disableSDK();