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

![](https://3124430735-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M2rhnIRdtpnYwQL2kvm%2F-M92_2_0WGSc6CFQA0ix%2F-M92_qwMjXc_GxM05uxs%2F%E7%99%BB%E5%BD%95%E7%94%A8%E6%88%B7ID%E9%85%8D%E7%BD%AE.png?alt=media\&token=d145ff7a-ea63-425e-94fb-9de971a111c9)

**对应的代码**

此示例中的用户变量为登录用户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://3124430735-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M2rhnIRdtpnYwQL2kvm%2F-M92_2_0WGSc6CFQA0ix%2F-M92apaco76JUq2b58Ov%2F%E6%B5%81%E7%A8%8B1%20.png?alt=media\&token=a02d2887-c9f0-44e7-9d13-6b92f4ba1c1d)

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

* 未登录

![](https://3124430735-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M2rhnIRdtpnYwQL2kvm%2F-M92_2_0WGSc6CFQA0ix%2F-M92b7bo5nZ2P_UKAViW%2F%E6%B5%81%E7%A8%8B2.png?alt=media\&token=78056927-6683-4a63-9886-adf8c055f8c1)

* 已登录

![](https://3124430735-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M2rhnIRdtpnYwQL2kvm%2F-M92_2_0WGSc6CFQA0ix%2F-M92bEvBLkkGsnLj10bP%2F%E6%B5%81%E7%A8%8B3.png?alt=media\&token=c30c6b15-97ce-41ab-81ce-6b1c76e43001)

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

验证上传的除登录用户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://3124430735-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M2rhnIRdtpnYwQL2kvm%2F-M92_2_0WGSc6CFQA0ix%2F-M93EYHoqrdfRuLNRpYz%2Fppl%E6%A0%A1%E9%AA%8C.png?alt=media\&token=274f0a39-c4ab-43a2-a43c-ad898c8469cd)

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

![](https://3124430735-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M2rhnIRdtpnYwQL2kvm%2F-M92_2_0WGSc6CFQA0ix%2F-M93EgqaRmgAvP8TjRRA%2Fppl%E6%A0%A1%E9%AA%8C2.png?alt=media\&token=e8e44437-d066-42b3-8e47-3afbefe6d2e5)
