> ## Documentation Index
> Fetch the complete documentation index at: https://docs.encorekit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# User Management

> Identify the player, set attributes for offer targeting, set the language, and reset on logout in the Encore Unity package.

## Overview

Identify the player so Encore can trace a claim back to them, and set attributes so it can pick offers that suit them.

***

## Identify the player

Call `Identify` with your own stable player ID once you know it, for example after sign-in. Identity powers attribution: a claim is traced back to this player through it.

```csharp theme={null}
using EncoreKit;

Encore.Identify(playerId);
```

Call it after `Encore.Configure`. A call made before `Configure` is ignored. Contract: [`Identify()`](https://docs.encorekit.com/publishers/unity/sdk-reference/identify).

***

## Set attributes

Attributes help Encore pick offers that suit the player. Pass them with `Identify`, or later with `SetUserAttributes`:

```csharp theme={null}
Encore.Identify(playerId, new UserAttributes
{
    CountryCode = "US",
    Age = 29,
});

// Later, for example after the player picks a plan:
Encore.SetUserAttributes(new UserAttributes { SubscriptionTier = "pro" });
```

Gender is accepted only from a game rated 18+ in its store listing, so leave `Gender` out otherwise.

> [!WARNING]
>
> Only pass what you have a lawful basis to share, such as the player's consent. Pass the player's age in whole years as `Age`, or their date of birth as `DateOfBirth` (`YYYY-MM-DD`), whichever your game has. The package works the age out on the device and never sends the date; given both, it uses the lower age. If you hold only a range, send its lowest end as `Age`. A player under 18 is still served offers, from age-appropriate inventory only and with no per-user personalization. Encore's servers do this filtering, so your game doesn't filter offers itself. See [Sending an age](https://docs.encorekit.com/publishers/offers-api/reference/user-attributes.md#sending-an-age).

Contract: [`SetUserAttributes()`](https://docs.encorekit.com/publishers/unity/sdk-reference/set-user-attributes), and every field is on [`UserAttributes`](https://docs.encorekit.com/publishers/unity/sdk-reference/user-attributes).

***

## Set the language

Encore's copy follows the device language. To match a language the player picked in your game, pass a BCP 47 tag such as `es` or `pt-BR`, and clear it to go back to the device language:

```csharp theme={null}
Encore.SetLanguage("pt-BR");
Encore.ClearLanguage();
```

Contract: [`SetLanguage()`](https://docs.encorekit.com/publishers/unity/sdk-reference/set-language) and [`ClearLanguage()`](https://docs.encorekit.com/publishers/unity/sdk-reference/clear-language). How Encore picks a language is on [Localization](https://docs.encorekit.com/publishers/concepts/localization.md).

***

## Reset on logout

Call `Reset` when the player signs out, so the next player doesn't inherit their identity:

```csharp theme={null}
Encore.Reset();
```

Contract: [`Reset()`](https://docs.encorekit.com/publishers/unity/sdk-reference/reset).

***

## Next steps

> [card] [Present offers](https://docs.encorekit.com/publishers/unity/quickstart/present-offers.md)
>
> Show the reward sheet at a moment the player earned

> [card] [Gifts Button](https://docs.encorekit.com/publishers/triggers/gifts-button.md)
>
> Put a gift entry on a game screen


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.