---
title: "Android SDKでユーザー属性を設定する"
description: "Adaptyでユーザー属性を設定してオーディエンスのセグメンテーションを改善する方法を学びます。"
---

メールアドレスや電話番号などのオプション属性をアプリのユーザーに設定できます。設定した属性を使って、ユーザーの[セグメント](segments)を作成したり、CRMで確認したりすることができます。

### ユーザー属性の設定 \{#setting-user-attributes\}

ユーザー属性を設定するには、`.updateProfile()` メソッドを呼び出します。

<Tabs groupId="current-os" queryString>
<TabItem value="kotlin" label="Kotlin" default>

```kotlin showLineNumbers
val builder = AdaptyProfileParameters.Builder()
    .withEmail("email@email.com")
    .withPhoneNumber("+18888888888")
    .withFirstName("John")
    .withLastName("Appleseed")
    .withGender(AdaptyProfile.Gender.OTHER)
    .withBirthday(AdaptyProfile.Date(1970, 1, 3))
  
Adapty.updateProfile(builder.build()) { error ->
    if (error != null) {
        // handle the error
    }
}
```

</TabItem>
<TabItem value="java" label="Java" default>

```java showLineNumbers
AdaptyProfileParameters.Builder builder = new AdaptyProfileParameters.Builder()
    .withEmail("email@email.com")
    .withPhoneNumber("+18888888888")
    .withFirstName("John")
    .withLastName("Appleseed")
    .withGender(AdaptyProfile.Gender.OTHER)
    .withBirthday(new AdaptyProfile.Date(1970, 1, 3));

Adapty.updateProfile(builder.build(), error -> {
    if (error != null) {
        // handle the error
    }
});
```
</TabItem>
</Tabs>

`updateProfile` メソッドで以前に設定した属性はリセットされませんのでご注意ください。

:::tip

Adapty SDK がモバイルアプリにどのように統合されているか、実際の例を見てみませんか？ペイウォールの表示、購入処理、その他の基本機能を含む完全なセットアップを実演している[サンプルアプリ](sample-apps)をご覧ください。

:::

### 使用可能なキーの一覧 \{#the-allowed-keys-list\}

`AdaptyProfileParameters.Builder` で使用できるキー `<Key>` と値 `<Value>` の一覧は以下のとおりです。

| キー | 値 |
|---|-----|
| <p>email</p><p>phoneNumber</p><p>firstName</p><p>lastName</p> | String |
| gender | Enum。使用可能な値: `female`、`male`、`other` |
| birthday | Date |

### カスタムユーザー属性 \{#custom-user-attributes\}

独自のカスタム属性を設定することもできます。カスタム属性は通常、アプリの使用状況に関連するものです。たとえば、フィットネスアプリなら週あたりの運動回数、語学学習アプリならユーザーの習熟度レベルなどが挙げられます。セグメントで活用してターゲットを絞ったペイウォールやオファーを作成したり、アナリティクスでどのプロダクト指標が収益に最も影響するかを把握したりすることができます。

<Tabs groupId="current-os" queryString>
<TabItem value="kotlin" label="Kotlin" default>
```kotlin showLineNumbers
builder.withCustomAttribute("key1", "value1")
```
</TabItem>
<TabItem value="java" label="Java" default>
```java showLineNumbers
builder.withCustomAttribute("key1", "value1");
```
</TabItem>
</Tabs>

既存のキーを削除するには、`.withRemoved(customAttributeForKey:)` メソッドを使用します。

<Tabs groupId="current-os" queryString>
<TabItem value="kotlin" label="Kotlin" default>
```kotlin showLineNumbers
builder.withRemovedCustomAttribute("key2")
```
</TabItem>
<TabItem value="java" label="Java" default>
```java showLineNumbers
builder.withRemovedCustomAttribute("key2");
```
</TabItem>

</Tabs>

これまでに設定されたカスタム属性を確認したい場合は、`AdaptyProfile` オブジェクトの `customAttributes` フィールドを使用してください。

:::warning
ユーザー属性は異なるデバイスからいつでも送信される可能性があるため、`customAttributes` の値は最新の状態ではない場合があります。最後の同期後にサーバー上の属性が更新されている可能性があります。
:::

### 制限事項 \{#limits\}

- ユーザーごとに最大30件のカスタム属性を設定可能
- キー名は最大30文字。キー名には英数字と以下の記号が使用可能: `_`  `-` `.`
- 値は文字列またはfloatで、最大50文字まで。