# ppl（用户变量）事件

### 场景一：用户变量之登录用户ID

验证上传的登录用户ID数据（因登录用户ID是主键，因此若未上传登录用户ID，其他任何上传的用户变量都是无效的。）

#### **登录用户ID配置方式** <a href="#deng-lu-yong-hu-id-pei-zhi-fang-shi" id="deng-lu-yong-hu-id-pei-zhi-fang-shi"></a>

登录GrowingIO平台，在主菜单中选择**数据中心**>**数据管理**>**变量**>**用户变量**，在用户变量下的**登录用户变量**页签下，打开登录用户ID的启动状态，即完成配置。

![](https://2602900487-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lo08UtW7H58ehFKeZ4g%2F-LrIORvLGDItxcVqwFex%2F-LrIOpCAXuonD3KMbvtX%2Fimage.png?alt=media\&token=59ce263a-860c-4cf5-8ee2-33f71bfca826)

**对应的代码**

此示例中的用户变量为登录用户ID，在用户登录时设置

| 平台          | 原型                                                                                                                                                    | 代码示例                                                                                                                                             |
| ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| JS SDK      | <p>// 用户登录时，设置登录用户ID</p><p>gio('setUserId', userId);</p><p>// 用户退出登录时，清除登录用户ID</p><p>gio('clearUserId');</p>                                          | <p>// 用户登录时，设置登录用户ID</p><p>gio('setUserId', '123456');</p><p>// 用户退出登录时，清除登录用户ID</p><p>gio('clearUserId');</p>                                   |
| Android SDK | <p>//用户登录时，设置登录用户ID</p><p>GrowingIO.getInstance().setUserId(String userId);</p><p>//用户退出登录时，清除登录用户ID</p><p>GrowingIO.getInstance().clearUserId();</p> | <p>//用户登录时，设置登录用户ID</p><p>GrowingIO.getInstance().setUserId("123456");</p><p>//用户退出登录时，清除登录用户ID</p><p>GrowingIO.getInstance().clearUserId();</p> |
| iOS SDK     | <p>//用户登录时，设置登录用户ID</p><p>+ (void)setUserId:(NSString \*)userId;</p><p>//用户退出登录时，清除登录用户ID</p><p>+ (void)clearUserId;</p>                              | <p>//用户登录时，设置登录用户ID</p><p>\[Growing setUserId:@"123456"];</p><p>//用户退出登录时，清除登录用户ID</p><p>\[Growing clearUserId];</p>                             |

**数据验证方法**

在对应的应用（网站、Android 或者 iOS App）中的进行登录、退出登录、切换账号登录的操作，通过 Debugger 工具验证数据准确性

按照如下流程图验证

![](https://2602900487-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lo08UtW7H58ehFKeZ4g%2F-LrMfdWifXCFhqq1oDmp%2F-LrMgWTdmxYyHguZ28s-%2Fppl1x2.png?alt=media\&token=0eb03ac9-39ca-4582-9d89-83437270ecef)

在本例中，如下图的数据请求说明打点代码生效

* 未登录

![](https://2602900487-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lo08UtW7H58ehFKeZ4g%2F-LrITFFtFsPnuVa3vWeF%2F-LrIU9LYj4pqb2Igsgr7%2Fppl%E6%9C%AA%E7%99%BB%E5%BD%95.png?alt=media\&token=ab784b9f-65f3-4fdb-a85a-31728a0dc960)

* 已登录

![](https://2602900487-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lo08UtW7H58ehFKeZ4g%2F-LrITFFtFsPnuVa3vWeF%2F-LrIUFvSnvhLDGbxLuz5%2Fppl%E7%99%BB%E5%BD%95.png?alt=media\&token=b2944ef8-13f8-4679-b001-ca40dc4310fd)

### 场景二：其他用户变量

验证上传的除登录用户ID之外的其他用户变量数据（因登录用户ID是主键，因此若未上传登录用户ID，其他任何上传的用户变量都是无效的，所以请确保已经上传登录用户ID）

本例中除登录用户ID之外，还上传了用户性别、用户年龄这两个用户变量

**其他用户变量配置方式示例**

| 标识符         | 名称   | 描述   | 归因              |
| ----------- | ---- | ---- | --------------- |
| gender\_ppl | 用户性别 | 用户性别 | 根据需求选择（不涉及数据验证） |
| age\_ppl    | 用户年龄 | 用户年龄 | 根据需求选择（不涉及数据验证） |

**对应的代码**

此示例中的用户变量为“用户性别（gender\_ppl）”、“用户年龄（age\_ppl）”，在用户登录或者变量值发生变化时进行设置

| 平台          | 原型                                                                                                                                                                                              | 代码示例                                                                                                                                                                                          |
| ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| JS SDK      | gio('people.set', key, value);或gio('people.set', customerVariables);                                                                                                                            | gio('people.set', {'gender\_ppl': '男', 'age\_ppl': 25});                                                                                                                                      |
| Android SDK | <p>GrowingIO.getInstance().setPeopleVariable(String key, String value);</p><p>或</p><p>GrowingIO.getInstance().setPeopleVariable(JSONObject peopleVariables);</p>                                | <p>JSONObject jsonObject = new JSONObject();</p><p>jsonObject.put("gender\_ppl", "男");</p><p>jsonObject.put("age\_ppl", 25);</p><p>GrowingIO.getInstance().setPeopleVariable(jsonObject);</p> |
| iOS SDK     | <p>+ (void)setPeopleVariableWithKey:(NSString \*)key andStringValue:(NSString \*)stringValue;</p><p>或</p><p>+ (void)setPeopleVariable:(NSDictionary\<NSString \*, NSObject \*> \*)variable;</p> | \[Growing setPeopleVariable:@{@"gender\_ppl":@"男", @"age\_ppl":@25}];                                                                                                                         |

**数据验证方法**

在对应的应用（网站、Android 或者 iOS App）中触发对应的用户变量，通过 Debugger 工具验证数据准确性

按照如下流程图验证

![](https://2602900487-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lo08UtW7H58ehFKeZ4g%2F-LrMfdWifXCFhqq1oDmp%2F-LrMhaw6JllCxjfDNm3s%2Fppl2x2.png?alt=media\&token=d3a898d8-c59e-416d-b8fc-0b5e43fc8dcb)

在本例中，如下图的数据请求说明打点代码生效

![](https://2602900487-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lo08UtW7H58ehFKeZ4g%2F-LrIURkS0hwaTB4GfwrF%2F-LrIVzGDUTdbR_U0X619%2Fppl2.png?alt=media\&token=bae14fc8-5e33-45c5-b0c1-5ca6e1aacf03)
