# Python SDK
Python SDK 主要用于服务端 Python 应用,如 Python Web 应用的后台服务。集成前请先登录下载SDK
>[info][Releases包下载及更新说明](https://github.com/analysys/ans-python-sdk/releases)
## 1. 集成准备
### 1.1 安装Python SDK模块
导入方式:下载源码,进入模块目录,通过以下命令安装模块:
```
python setup.py install
```
### 1.2 导入 SDK
```
from analysyspythonsdk import *
```
## 2. SDK 初始化
### 2.1 获取配置信息
需获取的配置信息为:
* 数据接收地址:`http://host:port` 或 `https://host:port`
### 2.2 初始化接口
在程序启动时,调用AnalysysPythonSdk(Collecter) 初始化 Python SDK 实例。如下:
```python
from analysyspythonsdk import *
#数据接收地址
server_url = "https://host:port"
#数据分析创建的项目appkey
appkey = "fangzhouargo"
#使用实时收集器
collector = DefaultCollecter(server_url)
#初始化python SDK实例
eguan = AnalysysPythonSdk(collector)
#设置数据分析项目所用appkey
eguan.setAppId(appkey)
```
appkey:数据分析创建的项目appkey DefaultCollecter:为实时事件收集器 事件收集器还提供批量收集器,用户可以指定为实时收集和批量收集。
#### 2.2.1 实时收集器
用户每触发一次上传,该收集器则立即上传数据至接收服务器:
```python
collector = DefaultCollecter(server_url)
```
* server_url:数据接收地址
#### 2.2.2 批量收集器
用户触发上传,该收集器将先缓存数据,直到数量达到用户设置的阈值或者用户设置的等待时间,才会触发真正的上传:
```python
collector = BatchCollecter(server_url,max_interval_time=15,queue_cache_max_size=10,collecter_max_size=100,queue_max_size=1000,request_timeout=None)
```
* server_url:数据接收地址
* max_interval_time:前后发送的间隔时间
* queue_cache_max_size:队列缓存最大值,超过即发送
* collecter_max_size:收集器单次请求最大发送值
* queue_max_size:整个队列缓存最大值
* request_timeout:请求超时时间
#### 2.2.3 存储本地文件收集器
该收集器将用户调用接口的数据写入到本地文件,支持单条写入或批量写入:
```python
collector = LogCollecter(log_path,is_batch=True,batch_num=10,general_rule="hour")
```
* log_path: 数据落文件目录
* is_batch: 是否批量写入,默认为False
* batch_num: 批量写入时,每次写入条数。默认为20条
* general_rule: 文件存储规则。当传值为"day"时,文件按日写入数据(即每日生成一个文件),当传值为"hour"时,文件按小时写入数据(即每小时生成一个文件)。默认规则为按小时
至此 SDK 初始化完成,调用 SDK 提供的接口已可正常采集用户数据了。
说明:程序结束前需要调用 flush() 接口,该接口可以把本地缓存的尚未发送至数据接收服务器或未写入本地的数据发送到数据接收服务器或写入本地文件。
## 3. 基础接口介绍
### 3.1 appkey设置
appkey 用于唯一区分当前应用所传数据的ID,接口如下:
```python
eguan.setAppId("fangzhouargo")
```
### 3.2 Debug 模式
Debug 主要用于开发者测试,接口如下:
```python
eguan.setDebugMode(1)
```
* debug:debug 模式,默认关闭状态。有以下三种值:
* 0:表示关闭 Debug 模式
* 1:表示打开 Debug 模式,但该模式下发送的数据仅用于查看数据是否正常回传,不计入平台数据统计
* 2:表示打开 Debug 模式,该模式下发送的数据计入平台数据统计
注意:发布版本时debug模式设置为0。
### 3.2 统计事件
事件跟踪,设置事件名称和事件详细信息。接口如下:
```python
def track(self,distinct_id,event_name,event_properties,data_platform="python",is_login=False,xwhen=_current_time()):
```
* 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自定义用于用户上传历史数据
示例:匿名用户浏览商品
```python
from analysyspythonsdk import *
server_url = "https://sdk.analysys.cn:4089/up"
python_sdk_platform = "android"
appkey = "fangzhouargo"
collector = DefaultCollecter(server_url)
eguan = AnalysysPythonSdk(collector)
#注意:此方法为必须调用方法。设置数据分析项目appkey,用户请填写在数据端新建的项目名,例如:
eguan.setAppId(appkey)
eguan.setDebugMode(1)
#记录用户登录事件
distinct_id = "ABCD123456"
commodity_properties = {
"commodity_name" : "跑步机",
"commodity_brand" : "zhonghua",
"commodity_price" : 5000,
"commodity_quality" : True,
"commodity_function" : ["run","记录心率"]
}
eguan.track(distinct_id,"SearchCommodity",commodity_properties,python_sdk_platform,is_login=False)
```
### 3.3 用户关联
用户关联的主要作用是打通用户登录前后的行为,以及多屏登录后的行为。做过用户关联的用户在登录前后的行为在方舟系统里面会被认为是一个用户。方舟系统目前支持 一台设备只能绑定一个用户 ID,一个用户 ID 只能绑定一台设备。设备和用户 ID 绑定后,就无法再和其他用户或者设备进行绑定。例如一个用户的设备 ID 是 ABC 用户的登录 ID 是 123,绑定成功后会对应同一个 ID,这样在统计或者分析时会被认为是一个用户。**如果注册成功或者登录事件在后端触发,后端 alias 接口的 distinctId 需要从前端获取匿名 ID 传给后端。**建议埋点时观看下 [方舟 SDK 接入视频](https://ark.analysys.cn/video-list.html) 接口描述如下:
```python
def alias(self,alias_id,distinct_id,data_platform="python",alias_properties=None,is_login=True,xwhen=_current_time()):
```
* alias_id:用户注册 ID,长度大于 0,且小于 255字符
* distinct_id:自定义设备身份标识,长度大于 0,且小于 255字符
* data_platform:平台类型,建议内容范围:JS、WeChat、Android、iOS, 并且支持自定义
* alias_properties:关联属性,默认为空。
* xwhen:用户自定义数据产生时间(单位:毫秒,即13位时间戳) 注:xwhen自定义用于用户上传历史数据
示例:匿名用户浏览商品到注册会员
```python
python_sdk_platform = "android"
#匿名ID
distinct_id = "12345"
#登录ID
alias_id = "xiaoming"
#调用alias方法,将用户登录前和登录后的ID进行关联
eguan.alias(alias_id,distinct_id,python_sdk_platform)
```
### 3.4 用户属性设置
SDK提供以下接口供用户设置用户的属性,比如用户的年龄/性别等信息。
> 用户属性是一个标准的K-V结构,K和V均有相应的约束条件,如不符合则丢弃该次操作。
参数约束:
* **属性名称**
以字母开头的字符串,**必须由**字母、数字、下划线组成,字母不区分大小写,$ 开头为预置事件/属性,**不支持**乱码、中文、空格等,长度范围1-99字符
* **属性值**
支持部分类型:`string`/`number`/`boolean`/`List`; 若为字符串,则最大长度255字符; 若为List,则最多包含100条,且key约束条件与属性名称一致,value最大长度255字符
设置单个或多个属性,如用户所在城市,用户昵称,用户头像信息等。如果之前存在,则覆盖,否则,新创建。接口如下:
```python
def profile_set(self,distinct_id,profile_properties,data_platform="python",is_login=False,xwhen=_current_time()):
```
* distinct_id: 自定义设备身份标识,长度大于0且小于255字符
* profile_properties: 用户属性
* data_platform: 平台类型,建议内容范围:JS、WeChat、Android、iOS, 并且支持自定义
* is_login: 用户ID是否是登录 ID
* xwhen:用户自定义数据产生时间(单位:毫秒,即13位时间戳) 注:xwhen自定义用于用户上传历史数据
示例:用户注册后设置用户的注册信息属性
```python
python_sdk_platform = "android"
alias_id = "zhangsan"
profile_properties = {
"sex" : "男",
"phonenumber" : "13966667777",
"email" : "xxx@163.com",
"hobby" : ["basketball","听音乐","mountain-climbing"],
"is_female" : False
}
eguan.profile_set(alias_id,profile_properties,python_sdk_platform,is_login=True)
```
## 4. 更多接口
### 4.1 用户属性
#### 4.1.1 设置用户固有属性
只在首次设置时有效的属性。如:用户的注册时间。如果被设置的用户属性已存在,则这条记录会被忽略而不会覆盖已有数据,如果属性不存在则会自动创建。接口如下:
```python
def profile_set_once(self,distinct_id,profile_properties,data_platform="python",is_login=False,xwhen=_current_time()):
```
* distinct_id: 自定义设备身份标识,长度大于0且小于255字符
* profile_properties: 用户属性
* data_platform: 平台类型,建议内容范围:JS、WeChat、Android、iOS, 并且支持自定义
* is_login: 用户ID是否是登录 ID
* xwhen:用户自定义数据产生时间(单位:毫秒,即13位时间戳) 注:xwhen自定义用于用户上传历史数据 示例:要统计用户注册时间
示例:要统计用户注册时间
```python
python_sdk_platform = "android"
alias_id = "zhangsan"
properties = {
"vipLevel" : 0,
"registerTime" : "1534249333700"
}
eguan.profile_set_once(alias_id,properties,python_sdk_platform,is_login=True)
```
#### 4.1.2 设置用户属性相对变化值
设置用户属性的单个相对变化值(相对增加,减少),只能对数值型属性进行操作,如果这个Profile之前不存在,则初始值为0。接口如下:
```python
def profile_increment(self,distinct_id,profile_properties,data_platform="python",is_login=False,xwhen=_current_time()):
```
* distinct_id: 自定义设备身份标识,长度大于0且小于255字符
* profile_properties: 用户属性
* data_platform: 平台类型,建议内容范围:JS、WeChat、Android、iOS, 并且支持自定义
* is_login: 用户ID是否是登录 ID
* xwhen:用户自定义数据产生时间(单位:毫秒,即13位时间戳) 注:xwhen自定义用于用户上传历史数据
示例:用户注册初始积分为0,在用户购买商品后,用户的积分增加20,则调用该接口,用户的积分变为0+20=20了:
```python
python_sdk_platform = "android"
alias_id = "zhangsan"
properties = {
"userPoint":20
}
eguan.profile_increment(alias_id,properties,python_sdk_platform,is_login=True)
```
#### 4.1.3 增加列表类型的属性
为列表类型的属性增加一个或多个元素,如:用户新增兴趣爱好,接口如下:
```python
def profile_append(self,distinct_id,profile_properties,data_platform="python",is_login=False,xwhen=_current_time()):
```
* distinct_id: 自定义设备身份标识,长度大于0且小于255字符
* profile_properties: 用户属性
* data_platform: 平台类型,建议内容范围:JS、WeChat、Android、iOS, 并且支持自定义
* is_login: 用户ID是否是登录 ID
* xwhen:用户自定义数据产生时间(单位:毫秒,即13位时间戳) 注:xwhen自定义用于用户上传历史数据
示例:用户初始填写的兴趣爱好为\["户外活动","足球赛事","游戏"],调用该接口追加\["学习","健身"],则用户的爱好变为\["户外活动","足球赛事","游戏","学习","健身"]
```python
alias_id = "zhangsan"
properties = {
"interest" : ["户外活动","足球赛事","游戏"]
}
eguan.profile_append(alias_id,properties,python_sdk_platform,is_login=True)
```
#### 4.1.4 删除设置的属性
删除设置的属性值。接口如下:
```python
def profile_unset(self,distinct_id,profile_properties_keys,data_platform="python",is_login=False,xwhen=_current_time()):
def profile_delete(self,distinct_id,data_platform="python",is_login=False,xwhen=_current_time()):
```
* distinct_id: 自定义设备身份标识,长度大于0且小于255字符
* profile_properties_keys: 需删除的用户属性key,list类型
* data_platform: 平台类型,建议内容范围:JS、WeChat、Android、iOS, 并且支持自定义
* is_login: 用户ID是否是登录 ID
* xwhen:用户自定义数据产生时间(单位:毫秒,即13位时间戳) 注:xwhen自定义用于用户上传历史数据
示例:
```python
# 要删除已经设置的用户爱好这一用户属性
python_sdk_platform = "android"
alias_id = "zhangsan"
eguan.profile_unset(alias_id,["hobby"],python_sdk_platform,is_login=True)
# 要清除已经设置的所有用户属性
eguan.profile_delete(alias_id,python_sdk_platform,is_login=True)
```
### 4.2 通用属性
如果某个事件的属性,在所有事件中都会出现,则这个属性可以做为通用属性,通过 registerSuperProperties() 将该属性设置为事件通用属性,则设置后每次发送事件的时候都会带有该属性。比如用户浏览/购买商品过程中的用户等级就可以作为通用属性。
> 通用属性是一个标准的 K-V 结构,K 和 V 均有相应的约束条件,如不符合则丢弃该次操作。
约束条件如下:
* **属性名称**
以字母开头的字符串,**必须由**字母、数字、下划线组成,字母不区分大小写,$ 开头为预置事件/属性,**不支持**乱码、中文、空格等,长度范围1-99字符
* **属性值**
* 支持部分类型:string/number/boolean/List;
* 若为字符串,则最大长度 255字符;
* 若为List,则最多包含 100条,且 key 约束条件与属性名称一致,value 最大长度 255字符
#### 4.2.1 注册通用属性
以用户浏览/购买商品的过程中发生的事件为例,用户的级别/积分就可以作为通用的属性,通过把用户级别/积分注册为通用属性,就可以避免在每次收集事件属性的时候都要手工设置该属性值。接口如下:
```python
def registerSuperProperties(self,super_properties):
```
* super_properties:设置多个属性
示例:
```python
#设置事件通用属性
superProperties = {
"member" : "VIP",
"userPoint" : 10
}
eguan.registerSuperProperties(superProperties)
```
#### 4.2.2 删除通用属性
如果要删除某个通用属性或者删除全部的通用属性,可以分别调用 unregisterSuperProperty 或 clearSuperProperties 接口。具体接口定义如下:
```python
def unregisterSuperProperties(self,super_properties_key):
def clearSuperProperties(self):
```
* super_properties_key:属性名称
示例:
```python
# 删除设置的用户积分属性
eguan.unregisterSuperProperties("member")
# 清除所有已经设置的通用属性
eguan.clearSuperProperties()
```
#### 4.2.3 获取通用属性
由属性名称查询获取单条通用属性,或者获取全部的通用属性。接口如下:
```python
def getSingleSuperProperties(self,super_properties_key):
def getAllSuperProperties(self):
```
* super_properties_key:属性名称
示例:
```python
# 查看已经设置的 member 通用属性
eguan.getSingleSuperProperties("member")
# 查看所有已经设置的通用属性
eguan.getAllSuperProperties()
```
## 5. SDK 使用样例
```python
# _*_coding:utf-8_*_
from __future__ import unicode_literals
from argoagent import *
'''
server_url为数据上传的地址
python_sdk_platform为数据来源平台。如:服务端收到从Android平台传来的数据后,若使用python SDK采集数据,此时platform字段填写Android,便于数据归类统计分析。
建议传入字段如:iOS/Android/JS/WeChat.(不区分大小写)。限传字符串类型。demo中假定该后台数据对应移动端Android数据。
python SDK使用场景示例如下:
'''
server_url = "https://sdk.analysys.cn:4089"
python_sdk_platform = "js"
appkey = "fangzhouargo"
class Demo():
def pythonsdkdemo(self):
# 默认方式发送数据,数据逐条发送
collector = DefaultCollecter(server_url)
# eguan = AnalysysPythonSdk(collector)
# 批量发送数据,数据达到一定条数或达到相应时间进行批量发送
# collector = BatchCollecter(server_url, 10, 2, 100, 1000, request_timeout=None)
eguan = AnalysysPythonSdk(collector)
# 注意:此方法为必须调用方法。设置项目名称,用户请填写在数据端新建的项目appkey,例如:
eguan.setAppId(appkey)
#设备debug模式,允许设置0,1,2.默认为0,不打印日志,数据进行统计分析。设置为1时打印日志,上传的数据不进行统计分析。设置为2时打印日志,上传的数据进行统计分析。例如:
eguan.setDebugMode(1)
#设置匿名ID,此ID为用户未登陆状态下使用的数据上传用户ID。此ID可以由用户自己定义,如果移动端接入Android SDK,此ID也可以从Android SDK端获取传到后台。
distinct_id = "ABCD123456"
'''
假定用户场景: 用户先将未登陆状态下的数据传到方舟后台进行统计。当发生登陆行为后,以登录的用户ID向方舟后台发送数据。
说明:
1、未登录状态下发送的数据,is_login参数必须设置为False
2、在集成SDK时,在登录位置需调用alias接口。在数据逻辑上形成登录状态,之后在方舟上可以看到该登录ID用户与之前匿名ID用户的数据为同一用户。
3、登录后发送数据,is_login参数必须设置为True
4、登录后发送数据,形参distinct ID应使用已登录的ID,而非匿名ID。
'''
#记录普通用户浏览商品详情,商品的属性随事件上传(用户未登录)
commodity_properties = {
"commodity_name" : "跑步机",
"commodity_brand" : "zhonghua",
"commodity_price" : 5000,
"commodity_quality" : True,
"commodity_function" : ["run","记录心率"]
}
eguan.track(distinct_id,"SearchCommodity",commodity_properties,python_sdk_platform,is_login=False)
# 记录普通用户点击注册按钮,注册事件未携带属性(用户未登录)
eguan.track(distinct_id,"register",None,python_sdk_platform,is_login=False)
#用户进行登录。假定alias_id为用户登录后的ID
alias_id = "zhangsan"
eguan.alias(alias_id,distinct_id,python_sdk_platform)
#用户登录后,需要将该用户的用户属性上传
profile_properties = {
"sex" : "男",
"phonenumber" : "13966667777",
"email" : "xxx@163.com",
"hobby" : ["basketball","听音乐","mountain-climbing"],
"is_female" : False
}
eguan.profile_set(alias_id,profile_properties,python_sdk_platform,is_login=True)
# 用户登录,且上传用户属性后,继续浏览APP,再之后用户进行购买、支付等操作。用户在购买、支付等行为追踪时,想带上该商品的属性。
# 注册通用属性(当通用属性设置后,之后的事件均携带该通用属性)
super_properties = {
"commodity_name" : "减肥药",
"commodity_brand" : "luomiou",
"commodity_price" : 1000,
"commodity_quality" : True,
}
eguan.registerSuperProperties(super_properties)
#获取已存在的通用属性
# eguan.getAllSuperProperties()
#获取单个通用属性
# eguan.getSingleSuperProperties("commodity_name")
#记录购买button被点击
purchase_properties = {
"Referer" : "gouwuche"
}
eguan.track(alias_id,"purchase",purchase_properties,python_sdk_platform,is_login=True)
#记录支付行为
payment_properties = {
"pay_usage" : "Wechat"
}
eguan.track(alias_id,"payment",payment_properties,python_sdk_platform,is_login=True)
#批量发送时,将队列中缓存的数据立即上传
eguan.close()
if __name__ == '__main__':
EG = Demo()
EG.pythonsdkdemo()
```
- 产品简介
- 快速上手
- Step 1 安装部署
- Step 2 激活系统创建项目
- Step 3 开启您的分析旅程
- 1. 集成 SDK
- 2. 可视化埋点
- 3. 创建分析模型
- 附:埋点方案设计
- 附:数据分析思路
- 产品更新日志
- V5.5 新增LTV分析功能等
- V5.3 UI 升级、分布分析重构、维度表动态更新、细节优化等
- V5.2 新增归因分析、消息中心、重构埋点方案、优化看数据体验……
- V5.1.0317 体验优化& Bug修复
- V5.1 升级可视化埋点、增强权限控制……
- Part I 产品功能说明
- 名词解释
- 指标说明
- 看板
- 5.3.3 看板 UI 重构
- 分析
- 事件分析
- 渠道分析
- 渠道相关名词解释
- 来源识别规则
- 搜索引擎
- 社交媒体
- 小程序场景值
- Session 分析
- Session 规则
- 实时分析
- 留存分析
- 转化漏斗
- 智能路径
- 归因分析
- 热图分析
- Web/H5 热图
- APP 热图
- 分布分析
- 间隔分析
- 属性分析
- LTV 分析
- 多主体分析
- 自定义查询
- 用户
- 用户分群
- 用户探查
- 用户标签
- 标签体系应用概览
- 标签体系
- 标签生命周期管理
- 标签加工
- 如何自定义SQL创建标签
- 单用户档案
- 运营
- 广告跟踪
- 微信小程序渠道追踪
- 预置广告媒介和渠道
- App 推广监测(Beta版本)
- 电子邮件(即将下线)
- 短信(即将下线)
- 消息通知(即将下线)
- 项目管理
- 项目概览
- 项目角色管理
- 项目成员管理
- 数据接入管理
- 埋点方案
- 可视化埋点
- 集成SDK接入数据
- 数据验证
- 用户数据导入
- 微信小程序全埋点事件定义
- 元数据管理
- 元事件
- 虚拟事件
- 事件属性
- 用户属性
- Session 管理
- 页面组管理
- 维度表
- 服务集成配置
- 监控告警
- 智能监控
- 自定义监控
- 平台管理
- 企业概览
- 项目管理
- 成员管理
- 安全设置
- 企业设置
- 日志管理
- 帐号设置
- Part II 技术文档
- 技术接入准备工作
- 部署环境检测工具
- 数据模型
- 数据格式
- 预置事件和属性
- App预置事件/属性
- JS 预置事件/属性
- 如何准确识别用户
- 如何设计埋点方案
- 分平台上报数据 vs 跨平台打通
- SDK 指南
- Android SDK
- 快速集成
- 全埋点模块
- 消息推送模块
- Android Hybrid模式
- SDK Gradle集成方式
- 多渠道打包
- 易观小工具
- 合规相关
- iOS SDK
- 快速集成
- 全埋点介绍
- iOS Hybrid模式
- 消息推送模块
- JS SDK
- 快速集成
- JS SDK基础版
- JS SDK插件
- uni-app SDK
- 快速集成
- 打包原生APP
- 开启移动端全埋点
- uni-app SDK标准版
- 微信小程序 SDK
- 快速集成
- 微信小程序标准版
- 微信小程序插件版
- 微信小程序通用框架版
- 支付宝小程序 SDK
- 支付宝小程序标准版
- 支付宝小程序通用框架版
- 字节跳动小程序 SDK
- 字节跳动小程序标准版
- 字节跳动小程序通用框架版
- 百度小程序 SDK
- 百度小程序标准版
- 百度小程序通用框架版
- 钉钉小程序 SDK
- 钉钉小程序标准版
- 钉钉小程序通用框架版
- QQ小程序 SDK
- QQ小程序标准版
- QQ小程序通用框架版
- 快应用 SDK
- 华为WeCode小程序
- WeCode SDK 标准版
- WeCode SDK插件
- PhoneGap SDK
- mPaaS SDK
- ReactNative SDK
- Flutter SDK
- Java SDK
- Python SDK
- PHP SDK
- C++ SDK
- C# SDK
- Node JS SDK
- Lua SDK
- Golang SDK
- SDK FAQ
- identify与alias的区别
- 爬虫数据如何识别?
- 页面停留如何获取时间?
- 如果获取SDK及更新日志
- 代码埋点和无埋点有什么区别
- Web页面中发现丢失某一个事件
- 自研 SDK 注意事项
- 页面时长统计功能
- 飞书小程序 SDK
- 飞书小程序标准版
- 飞书小程序通用框架版
- Unreal Engine SDK
- 数据验证
- 客户端埋点验证
- Debug 数据验证
- 数据入库验证
- 数据导入
- 接口导入
- JAVA工具包
- 标准json文件导入
- csv格式导入
- 数据导入FAQ
- 数据导出
- JAVA工具包
- 事件数据导出
- 用户数据导出
- 直接从Kafka中消费数据
- 使用程序访问数据库
- 脚本工具
- API
- 分析API
- 事件分析
- 留存分析
- 自定义查询
- 转化漏斗
- 属性分析
- Session分析
- 渠道分析
- 分布分析
- 用户API
- 分群查询
- 用户档案
- 分群管理
- 管理API
- 权限管理
- 元数据管理
- 埋点方案管理
- 维度表管理
- 运营API
- 广告跟踪
- APP推广监测
- 平台管理API
- 项目管理
- 成员管理
- 第三方登录
- OAuth2.0登录
- LDAP登录
- GDPR 合规
- Part III 常见问题
- License 许可
- 产品试用及采购
- 参与贡献