---
title: "React Native SDKでユーザー属性を設定する"
description: "Adapty SDKを使ってReact Nativeアプリのユーザーデータとプロファイルデータを更新する方法を学びましょう。"
---

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

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

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

```typescript showLineNumbers
// Only for TypeScript validation

const params: AdaptyProfileParameters = {
    email: 'email@email.com',
    phoneNumber: '+18888888888',
    firstName: 'John',
    lastName: 'Appleseed',
    gender: 'other',
    birthday: new Date().toISOString(),
};

try {
    await adapty.updateProfile(params);
} catch (error) {
    // handle `AdaptyError`
}
```

なお、`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> | 文字列 |
| gender | 列挙型。使用できる値は `female`、`male`、`other` |
| birthday | 日付 |

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

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

```typescript showLineNumbers
try {
  await adapty.updateProfile({
    codableCustomAttributes: {
      key_1: 'value_1',
      key_2: 2,
    },
  });
} catch (error) {
    // handle `AdaptyError`
}
```

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

```typescript showLineNumbers
try {
  // to remove a key, pass null as its value
  await adapty.updateProfile({
    codableCustomAttributes: {
      key_1: null,
      key_2: null,
    },
  });
} catch (error) {
    // handle `AdaptyError`
}
```

事前にどのカスタム属性が設定済みかを確認したい場合は、`AdaptyProfile` オブジェクトの `customAttributes` フィールドを使用してください。

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

### 制限 \{#limits\}

- ユーザーごとに最大30件のカスタム属性
- キー名は最大30文字。キー名には英数字および以下の文字を使用できます：`_`  `-` `.`
- 値は文字列または浮動小数点数で、最大50文字。