# 用户属性

> 设置用户级属性（例如用户等级、ID 或自定义参数），以便在 Tapjoy 后台中获得实用的分析洞察。

通过设置各种用户属性（例如用户等级和用户 ID），您可以自动从 Tapjoy 后台获得强大的分析洞察功能。例如，通过在用户升级或过关时设置用户等级，您可以了解用户在整个游戏各关卡中的分布情况：

```java
Tapjoy.setUserLevel(1); // Set the user level to 1

int level = Tapjoy.getUserLevel(); // Get the user level
```

因此，您将在 Analytics（分析）后台的“Game Trend（游戏趋势）”部分中看到图表。

## 用户 ID##user-id

您可以设置用户 ID。

> **Note:**
>
> 有些 Offerwall SDK 集成不需要执行此操作。

Tapjoy SDK 将自动为您生成用户 ID。但是，在某些情况下，您需要自行指定用户 ID：

1. 如果要在 Tapjoy 中使用[自管货币](/grow/offerwall/monetization/virtual-currency/self-managed-currency.md)，您必须指定用户 ID。这样，当 Tapjoy 服务器向您的服务器发送某个用户已获得货币的消息时，就能知道要将奖励发放给哪位用户。
2. 如果使用[托管货币](/grow/offerwall/monetization/virtual-currency/tapjoy-managed-currency.md)并希望用户能够在多个设备之间保持货币余额不变，您必须指定自己的用户 ID，并确保具体用户的 ID 在所有设备上相同。

如果未能正确设置用户 ID（或在 Tapjoy SDK 可以自动设置的情况下手动设置），可能导致用户无法获得 Tapjoy 活动的奖励，或者用户余额出现异常（莫名增减）。

如果您计划使用 Push to Earn（用户通过推送通知或消息完成任务来获得奖励）广告系列，则需要在 connect 调用前进行此设置。

> **Note:**
>
> 出于数据隐私和 GDPR 合规的原因，通过此调用设置的用户 ID 中不能包含电子邮件地址、电话号码、真实姓名或任何其他个人身份信息。

如需设置用户 ID，可使用以下代码进行设置（无需后台设置）：

```java
Tapjoy.setUserId("your-user-id"); // Set the user id

String userid = Tapjoy.getUserId(); // Get the user id
```

## 自定义参数##custom-parameters

可按如下方式设置自定义参数：

```java
Tapjoy.setCustomParameter("[PARAMETER]");
```

如需了解自定义参数的更多信息，请联系支持团队。

## 注意##notes

仅在进行初始化或更改用户等级时调用一次 `setUserLevel`。

要重置关卡信息，请传递负整数来取代用户等级值，如 `Tapjoy.setUserLevel(-1);`。
