Python SDK
Python SDK 主要用于服务端 Python 应用,如 Python Web 应用的后台服务。集成前请先登录下载SDK
1. 集成准备
1.1 安装Python SDK模块
导入方式:下载源码,进入模块目录,通过以下命令安装模块:
python setup.py install1.2 导入 SDK
from analysyspythonsdk import *2. SDK 初始化
2.1 获取配置信息
需获取的配置信息为:
数据接收地址:
http://host:port或https://host:port
2.2 初始化接口
在程序启动时,调用AnalysysPythonSdk(Collecter) 初始化 Python SDK 实例。如下:
appkey:数据分析创建的项目appkey DefaultCollecter:为实时事件收集器 事件收集器还提供批量收集器,用户可以指定为实时收集和批量收集。
2.2.1 实时收集器
用户每触发一次上传,该收集器则立即上传数据至接收服务器:
server_url:数据接收地址
2.2.2 批量收集器
用户触发上传,该收集器将先缓存数据,直到数量达到用户设置的阈值或者用户设置的等待时间,才会触发真正的上传:
server_url:数据接收地址
max_interval_time:前后发送的间隔时间
queue_cache_max_size:队列缓存最大值,超过即发送
collecter_max_size:收集器单次请求最大发送值
queue_max_size:整个队列缓存最大值
request_timeout:请求超时时间
2.2.3 存储本地文件收集器
该收集器将用户调用接口的数据写入到本地文件,支持单条写入或批量写入:
log_path: 数据落文件目录
is_batch: 是否批量写入,默认为False
batch_num: 批量写入时,每次写入条数。默认为20条
general_rule: 文件存储规则。当传值为"day"时,文件按日写入数据(即每日生成一个文件),当传值为"hour"时,文件按小时写入数据(即每小时生成一个文件)。默认规则为按小时
至此 SDK 初始化完成,调用 SDK 提供的接口已可正常采集用户数据了。
说明:程序结束前需要调用 flush() 接口,该接口可以把本地缓存的尚未发送至数据接收服务器或未写入本地的数据发送到数据接收服务器或写入本地文件。
3. 基础接口介绍
3.1 appkey设置
appkey 用于唯一区分当前应用所传数据的ID,接口如下:
3.2 Debug 模式
Debug 主要用于开发者测试,接口如下:
debug:debug 模式,默认关闭状态。有以下三种值:
0:表示关闭 Debug 模式
1:表示打开 Debug 模式,但该模式下发送的数据仅用于查看数据是否正常回传,不计入平台数据统计
2:表示打开 Debug 模式,该模式下发送的数据计入平台数据统计
注意:发布版本时debug模式设置为0。
3.2 统计事件
事件跟踪,设置事件名称和事件详细信息。接口如下:
distinct_id:自定义设备身份标识,长度大于 0 且小于 255字符
event_name:自定义事件ID标识,以字母开头的字符串,必须由字母、数字、下划线组成,$ 开头为预置事件/属性,不支持乱码、中文、空格等,长度范围1-99字符
event_properties: 事件属性,最多包含 100条,且
key是以字母开头的字符串,必须由字母、数字、下划线组成,字母不区分大小写,不支持乱码、中文、空格等,长度范围1-99字符,value类型约束(String/Number/boolean/List),若为字符串,最大长度255字符data_platform:平台类型,建议内容范围:JS、WeChat、Android、iOS, 并且支持自定义
is_login:用户 ID 是否为登录 ID
xwhen:用户自定义数据产生时间(单位:毫秒,即13位时间戳) 注:xwhen自定义用于用户上传历史数据
示例:匿名用户浏览商品
3.3 用户关联
用户关联的主要作用是打通用户登录前后的行为,以及多屏登录后的行为。做过用户关联的用户在登录前后的行为在方舟系统里面会被认为是一个用户。方舟系统目前支持 一台设备只能绑定一个用户 ID,一个用户 ID 只能绑定一台设备。设备和用户 ID 绑定后,就无法再和其他用户或者设备进行绑定。例如一个用户的设备 ID 是 ABC 用户的登录 ID 是 123,绑定成功后会对应同一个 ID,这样在统计或者分析时会被认为是一个用户。如果注册成功或者登录事件在后端触发,后端 alias 接口的 distinctId 需要从前端获取匿名 ID 传给后端。建议埋点时观看下 方舟 SDK 接入视频 接口描述如下:
alias_id:用户注册 ID,长度大于 0,且小于 255字符
distinct_id:自定义设备身份标识,长度大于 0,且小于 255字符
data_platform:平台类型,建议内容范围:JS、WeChat、Android、iOS, 并且支持自定义
alias_properties:关联属性,默认为空。
xwhen:用户自定义数据产生时间(单位:毫秒,即13位时间戳) 注:xwhen自定义用于用户上传历史数据
示例:匿名用户浏览商品到注册会员
3.4 用户属性设置
SDK提供以下接口供用户设置用户的属性,比如用户的年龄/性别等信息。
用户属性是一个标准的K-V结构,K和V均有相应的约束条件,如不符合则丢弃该次操作。
参数约束:
属性名称
以字母开头的字符串,必须由字母、数字、下划线组成,字母不区分大小写,$ 开头为预置事件/属性,不支持乱码、中文、空格等,长度范围1-99字符
属性值
支持部分类型:
string/number/boolean/List; 若为字符串,则最大长度255字符; 若为List,则最多包含100条,且key约束条件与属性名称一致,value最大长度255字符
设置单个或多个属性,如用户所在城市,用户昵称,用户头像信息等。如果之前存在,则覆盖,否则,新创建。接口如下:
distinct_id: 自定义设备身份标识,长度大于0且小于255字符
profile_properties: 用户属性
data_platform: 平台类型,建议内容范围:JS、WeChat、Android、iOS, 并且支持自定义
is_login: 用户ID是否是登录 ID
xwhen:用户自定义数据产生时间(单位:毫秒,即13位时间戳) 注:xwhen自定义用于用户上传历史数据
示例:用户注册后设置用户的注册信息属性
4. 更多接口
4.1 用户属性
4.1.1 设置用户固有属性
只在首次设置时有效的属性。如:用户的注册时间。如果被设置的用户属性已存在,则这条记录会被忽略而不会覆盖已有数据,如果属性不存在则会自动创建。接口如下:
distinct_id: 自定义设备身份标识,长度大于0且小于255字符
profile_properties: 用户属性
data_platform: 平台类型,建议内容范围:JS、WeChat、Android、iOS, 并且支持自定义
is_login: 用户ID是否是登录 ID
xwhen:用户自定义数据产生时间(单位:毫秒,即13位时间戳) 注:xwhen自定义用于用户上传历史数据 示例:要统计用户注册时间
示例:要统计用户注册时间
4.1.2 设置用户属性相对变化值
设置用户属性的单个相对变化值(相对增加,减少),只能对数值型属性进行操作,如果这个Profile之前不存在,则初始值为0。接口如下:
distinct_id: 自定义设备身份标识,长度大于0且小于255字符
profile_properties: 用户属性
data_platform: 平台类型,建议内容范围:JS、WeChat、Android、iOS, 并且支持自定义
is_login: 用户ID是否是登录 ID
xwhen:用户自定义数据产生时间(单位:毫秒,即13位时间戳) 注:xwhen自定义用于用户上传历史数据
示例:用户注册初始积分为0,在用户购买商品后,用户的积分增加20,则调用该接口,用户的积分变为0+20=20了:
4.1.3 增加列表类型的属性
为列表类型的属性增加一个或多个元素,如:用户新增兴趣爱好,接口如下:
distinct_id: 自定义设备身份标识,长度大于0且小于255字符
profile_properties: 用户属性
data_platform: 平台类型,建议内容范围:JS、WeChat、Android、iOS, 并且支持自定义
is_login: 用户ID是否是登录 ID
xwhen:用户自定义数据产生时间(单位:毫秒,即13位时间戳) 注:xwhen自定义用于用户上传历史数据
示例:用户初始填写的兴趣爱好为["户外活动","足球赛事","游戏"],调用该接口追加["学习","健身"],则用户的爱好变为["户外活动","足球赛事","游戏","学习","健身"]
4.1.4 删除设置的属性
删除设置的属性值。接口如下:
distinct_id: 自定义设备身份标识,长度大于0且小于255字符
profile_properties_keys: 需删除的用户属性key,list类型
data_platform: 平台类型,建议内容范围:JS、WeChat、Android、iOS, 并且支持自定义
is_login: 用户ID是否是登录 ID
xwhen:用户自定义数据产生时间(单位:毫秒,即13位时间戳) 注:xwhen自定义用于用户上传历史数据
示例:
4.2 通用属性
如果某个事件的属性,在所有事件中都会出现,则这个属性可以做为通用属性,通过 registerSuperProperties() 将该属性设置为事件通用属性,则设置后每次发送事件的时候都会带有该属性。比如用户浏览/购买商品过程中的用户等级就可以作为通用属性。
通用属性是一个标准的 K-V 结构,K 和 V 均有相应的约束条件,如不符合则丢弃该次操作。
约束条件如下:
属性名称
以字母开头的字符串,必须由字母、数字、下划线组成,字母不区分大小写,$ 开头为预置事件/属性,不支持乱码、中文、空格等,长度范围1-99字符
属性值
支持部分类型:string/number/boolean/List;
若为字符串,则最大长度 255字符;
若为List,则最多包含 100条,且 key 约束条件与属性名称一致,value 最大长度 255字符
4.2.1 注册通用属性
以用户浏览/购买商品的过程中发生的事件为例,用户的级别/积分就可以作为通用的属性,通过把用户级别/积分注册为通用属性,就可以避免在每次收集事件属性的时候都要手工设置该属性值。接口如下:
super_properties:设置多个属性
示例:
4.2.2 删除通用属性
如果要删除某个通用属性或者删除全部的通用属性,可以分别调用 unregisterSuperProperty 或 clearSuperProperties 接口。具体接口定义如下:
super_properties_key:属性名称
示例:
4.2.3 获取通用属性
由属性名称查询获取单条通用属性,或者获取全部的通用属性。接口如下:
super_properties_key:属性名称
示例:
5. SDK 使用样例
最后更新于
这有帮助吗?