本文档详细介绍了SDK提供的用户属性上报功能,帮助开发者高效地收集、更新和维护用户画像数据。
通过本功能,您可以:
- 全面记录用户特征:存储用户基础信息(如昵称、性别)、行为偏好等关键数据
- 灵活更新用户画像:支持覆盖、追加、数值计算等多种更新方式
- 构建精准用户模型:通过属性组合分析,实现用户分群和个性化服务
目前支持的用户属性设置接口为 user_set
、user_set_once
、user_increment
、user_number_max
、user_number_min
、user_append
、user_uniqAppend
、user_unset
、user_delete
。
设置用户属性
对于一般的用户属性,您可以调用 user_set
来进行设置,使用该接口上传的属性将会覆盖原有的属性值,如果之前不存在该用户属性,则会新建该用户属性。
// 设置用户属性
//此时"username"为"GravityEngineUser"
[instance user_set:@{@"username": @"GravityEngineUser"}];
//此时"username"为"TestUserName"
[instance user_set:@{@"username": @"TestUserName"}];
初始化用户属性
对于只在首次设置时有效的属性,我们可以使用 user_set_once
记录这些属性。与 user_set
方法不同的是,如果被设置的用户属性已存在,则这条记录会被忽略而不会覆盖已有数据,如果属性不存在则会自动创建。因此,user_set_once
适用于为用户设置首次激活时间、首次注册时间等属性。例如:
//first_payment_time为2023-01-01 04:43:35.968
[instance user_set_once:@{@"first_payment_time": @"2023-01-01 04:43:35.968"}];
//first_payment_time仍然为2023-01-01 04:43:35.968
[instance user_set_once:@{@"first_payment_time": @"2018-12-31 01:23:45.678"}];
累加用户属性
对于数值型的用户属性,可以使用 user_increment
对属性值进行累加。常用于记录用户付费次数、付费额度、积分等属性。例如:
//此时$age为30
[instance user_increment:@{@"$age": @30}];
//此时$age为32
[instance user_increment:@{@"$age": @2}];
用户属性取最大值
对于数值型的用户属性,可以使用 user_number_max
用来比较数值大小,保存较大的,如果没有这个 key,则新增 key,value 取本次的值
//此时$age为30
[instance user_number_max:@{@"$age": @30}];
//此时$age仍为30
[instance user_number_max:@{@"$age": @27}];
用户属性取最小值
对于数值型的用户属性,可以使用 user_number_min
用来比较数值大小,保存较小的,如果没有这个 key,则新增 key,value 取本次的值
//此时$age为30
[instance user_number_min:@{@"$age": @30}];
//此时$age仍为30
[instance user_number_min:@{@"$age": @100}];
Array 追加
对用户喜爱的电影、用户点评过的餐厅等属性,可以调用 user_append
记录列表型属性,例如:
// 调用 user_append 为用户属性 Movies 追加元素。如果不存在,会新建该元素
[instance user_append:@{@"Movies": @[@"Interstellar", @"The Negro Motorist Green Book"]}];
Array 去重追加
调用 user_uniqAppend
用来对 Array 类型的用户数据去重追加元素,例如:
// 调用 user_uniqAppend 为用户属性 Movies 去重追加元素。如果不存在,会新建该元素
[instance user_uniqAppend:@{@"Movies": @[@"Interstellar", @"The Negro Motorist Green Book"]}];
清空用户属性
调用 user_delete
方法,将把当前用户属性清空,您将无法再查询该名用户的用户属性,但该用户产生的事件仍然可以被查询到
[instance user_delete];
重置用户属性
如果需要重置已设置的某个用户属性,可以调用 user_unset
进行取消: