> For the complete documentation index, see [llms.txt](https://growingio.gitbook.io/v3/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://growingio.gitbook.io/v3/developer-manual/debugging/verification/ppl.md).

# 对 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的启动状态，即完成配置。

![](/files/-M92_qwMjXc_GxM05uxs)

**对应的代码**

此示例中的用户变量为登录用户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 工具验证数据准确性

按照如下流程图验证

![](/files/-M92apaco76JUq2b58Ov)

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

* 未登录

![](/files/-M92b7bo5nZ2P_UKAViW)

* 已登录

![](/files/-M92bEvBLkkGsnLj10bP)

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

验证上传的除登录用户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 工具验证数据准确性

按照如下流程图验证

![](/files/-M93EYHoqrdfRuLNRpYz)

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

![](/files/-M93EgqaRmgAvP8TjRRA)
