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

# インポート

> CSVアップロード、REST API、または手動入力を使用してOneSignalでユーザーをインポートまたは更新します。シームレスなユーザーオンボーディングまたは移行のために、メール、SMS、タグなどをサポートします。

CSVファイルまたは手動入力を使用して、OneSignalダッシュボードでユーザーを一括でインポートまたは更新します。一般的なユースケースには、別のプラットフォームからのユーザー移行、ユーザー詳細の更新、[タグ](./add-user-data-tags)や[セグメント](./segmentation)を使ったユーザーの整理などが含まれます。

<Note>
  [REST API](/reference/create-user)を使用してユーザーを更新または作成することもできます。
</Note>

## CSVインポート

CSVファイルを使用してメールアドレス、電話番号、外部ID、[タグ](./add-user-data-tags)、言語、タイムゾーン、国などをインポートまたは更新します。

### CSV要件

`.csv`ファイルが次の要件を満たしていることを確認してください：

* UTF-8エンコーディング（BOMなし）
* 印字不可能な文字がないこと（特殊文字や非ASCII文字を含まない）
* クリーンで一意の列ヘッダー
* ファイルサイズが150MB未満（約200万行）
* 次のうち少なくとも1つの識別子：
  * `external_id` — 推奨。すべての[サブスクリプション](./subscriptions)にわたって[ユーザー](./users)を識別します。
  * `email` — 新しいメールサブスクリプションの作成に必要です。詳細については、[メールアドレス検証](./email-address-validation)を参照してください。
  * `phone_number` — 新しいSMSサブスクリプションの作成に必要です。
  * `subscription_id` — バックエンドでOneSignalの[サブスクリプションID](./subscriptions)をすでに追跡している場合にのみ推奨されます。

<Warning>
  各タイプの識別子は行ごとに1つのみ許可されます。同じユーザーに複数のメールアドレスまたは番号を関連付けるには、同じ`external_id`を共有する別の行を使用します。
</Warning>

<Tip>
  * ユーザーを重複排除するために`external_id`を含めてください。SDK `login`メソッドで使用されるIDと一致することを確認してください — そうでないと、ユーザーがアプリを開いたときにリセットされます。
  * サブスクリプションステータスを変更するには、行に`email`、`phone_number`、または`subscription_id`が含まれている必要があります。`external_id`だけでは不十分です。
  * `subscription_id`はサブスクリプションをリンクまたはマージしません。既存のユーザーに新しいメールアドレスや電話番号を追加するには`external_id`を使用してください。
</Tip>

### 利用可能なCSV列

<ParamField path="external_id" type="Any unique alphanumeric value">
  詳細については[外部ID](./users#external-id)を参照してください。
</ParamField>

<ParamField path="email" type="Valid email addresses">
  メール[サブスクリプション](./subscriptions)を作成します。すでに存在する場合は重複排除されます。
</ParamField>

<ParamField path="phone_number" type="Valid phone numbers">
  `+15555551234`のように[E.164形式](https://en.wikipedia.org/wiki/E.164)を使用します。SMS[サブスクリプション](./subscriptions)を作成します。
</ParamField>

<ParamField path="subscription_id" type="UUID v4 assigned by OneSignal">
  バックエンドですでにOneSignal[サブスクリプションID](./subscriptions)を追跡している場合にのみ推奨されます。
</ParamField>

<ParamField path="subscribed" type="`yes`, `no`">
  サブスクリプションステータスを設定します。同じ行に`email`、`phone_number`、または`subscription_id`が必要です — `external_id`のみでは使用できません。
</ParamField>

<ParamField path="suppressed" type="`true`, `false`">
  `false`は抑制リストからメールを削除します。
</ParamField>

<ParamField path="timezone_id" type="IANA TZ formatted time zones">
  [IANA TZ](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)を参照してください。
</ParamField>

<ParamField path="country" type="2-character ISO 3166-2 codes">
  [ISO 3166-2](https://www.iso.org/obp/ui/)を参照してください。
</ParamField>

<ParamField path="language" type="2-character ISO 639-1 codes">
  [ISO 639-1](./multi-language-messaging#supported-languages)を参照してください。
</ParamField>

<ParamField path="Tags" type="Alphanumeric values">
  最大1,000個のタグ。列ヘッダーをキーとして使用します。[タグ](./add-user-data-tags)を参照してください。
</ParamField>

#### タグの制限と制約

タグの[プラン制限](https://onesignal.com/pricing)はアプリごとではなく、ユーザーごとに適用されます。例えば、プランでユーザーごとに20個のタグが許可されていて、ユーザーがすでに19個持っている場合、アプリ自体には無制限のタグキーを持てますが、追加できるのは1個だけです。

* [一括タグ更新](#bulk-tag-updates)ワークフローを使用して、ユーザーをエクスポートし、不要なタグ値をクリアし、削除オプションを有効にして再インポートします。
* タグキーにスペースを使用しないでください — 代わりにアンダースコアを使用してください。

**予約済みおよび制限されたタグキー**

以下のタグキーは予約済みのため使用しないでください：

* "user"
* "subscription"
* "message"
* "template"
* "app"
* "org"
* "custom\_data"
* "dynamic\_content"

誤ってこれらをタグキーとして設定した場合は、[ユーザー更新API](/reference/update-user)から削除してください。

**タグの上書きと削除**

CSVインポート中：

* CSVに含まれるタグは提供された値で上書きされます。
* CSVに含まれていないタグはユーザーレコードで変更されません。

インポート後もタグが残っている場合は、以下を確認してください：

* ヘッダー列にタグキーが含まれていること。
* 行に値が含まれていないこと。
* [レビュー画面](#review-and-confirm)で「空白値のタグを削除」オプションを選択したこと。

**他のソースによって追加されているタグ**

削除したタグがインポート後に再表示される場合、インテグレーションが自動的に書き戻している可能性があります。一般的なソースには以下が含まれます：

* Segment
* HubSpot
* Journeys
* SDKタグメソッド
* カスタムAPIまたはETLパイプライン

インテグレーションのマッピングとイベントトリガーを確認して、CSVの変更を上書きしていないことを確認してください。

#### 単一の列からタグをインポートする

各タグキーに個別の列ヘッダーを使用する代わりに、単一の`tags`ヘッダーを設定し、各ユーザー行に引用符で囲まれたすべてのキーと値のペアのJSONマップを含めることができます。これは、以前にタグ付きのCSVをエクスポートし、再フォーマットせずに再インポートしたい場合に特に便利です。

ヘッダーの例：

```csv theme={null}
external_id,email,tags
```

行の例：
タグは引用符で囲まれたJSONオブジェクトとしてフォーマットする必要があります。

```csv theme={null}
userA,example@email.com,"{""level"":""30"",""Color"":""teal""}"
```

インポートされると、OneSignalは各キーと値のペアをサブスクリプションレコードの個別のタグに自動的に変換します。

**例：一括タグ削除**

一括でタグを削除するには、現在のデータをエクスポートし、タグ値を空白にして、削除オプションを有効にしてCSVを再インポートします。

<Steps>
  <Step title="データをエクスポートする">
    * OneSignalダッシュボードで**オーディエンス > サブスクリプション**に移動します。**外部ID**、**サブスクリプションID**、**タグ**列のみを有効にします（オプションで**メール**または**電話番号**も可）。
    * **エクスポート**をクリックしてCSVをエクスポートします。

    <Frame caption="エクスポート用の表示可能な列を選択">
      <img src="https://mintcdn.com/onesignal/V_t1Yu0NBNBFj-6D/images/dashboard/audience-displayable-columns.png?fit=max&auto=format&n=V_t1Yu0NBNBFj-6D&q=85&s=bd8b42aeeff64d1be1e24b6f1ada1aeb" alt="エクスポート用の表示可能な列を選択" width="1854" height="996" data-path="images/dashboard/audience-displayable-columns.png" />
    </Frame>
  </Step>

  <Step title="削除したいタグ値をクリアする">
    エクスポートしたCSVをテキストエディタで開き、削除したい各タグの値を空の文字列に設定します。

    例：編集前のタグ値を含む行：

    ```text 編集前の行 theme={null}
    userA,example@email.com,"{""level"":""30"",""color"":""teal""}"
    ```

    タグ値をクリアした後の同じ行：

    ```text タグ値クリア後の行 theme={null}
    userA,example@email.com,"{""level"":"""",""color"":""""}"
    ```

    これによりユーザーからタグ`level`と`color`が削除されます。
  </Step>

  <Step title="削除オプションを使用してCSVを再インポートする">
    * 編集したCSVをインポートします。
    * [レビュー](#レビューと確認)画面で、**空白値のタグを削除**に対して**はい**を選択します。OneSignalはインポート中に空白値のタグを削除します。

    <Frame caption="空の値のタグを削除するオプションが表示されたレビュー画面">
      <img src="https://mintcdn.com/onesignal/V_t1Yu0NBNBFj-6D/images/dashboard/audience-import-review-remove-tags-with-empty-values.png?fit=max&auto=format&n=V_t1Yu0NBNBFj-6D&q=85&s=8cca408cf4ebf889dfbf67359ae7fdc9" alt="空の値のタグを削除するオプションが表示されたレビュー画面" width="2316" height="1122" data-path="images/dashboard/audience-import-review-remove-tags-with-empty-values.png" />
    </Frame>
  </Step>
</Steps>

<Tip>
  特定のタグのみを削除するには、それらのタグの値をクリアし、その他は変更しないままにします。削除オプションが有効な場合、空白値のみが削除されます。
</Tip>

<Note>
  ヘルプが必要ですか？

  * 上記の[インポート前にAIを使用してCSVを確認する](#use-ai-to-check-your-csv-before-import)セクションをお試しください。
  * `support@onesignal.com`に連絡して、アップロードしたCSVファイルと確認メールのスクリーンショットを共有してください。喜んで確認させていただきます！
</Note>

#### メールアドレス検証

メールアドレス検証は、メールがオーディエンスに届く前にメールアドレスの一般的な問題を検出します。バウンス率を高めたり、送信者の評判を傷つけたりする可能性のあるタイプミス、無効なドメイン、役職ベースのアドレス、および使い捨てメールサービスにフラグを立てます。

<Card title="メールアドレス検証" icon="circle-check" href="./email-address-validation">
  CSVインポート時および一括でメールアドレスを検証し、バウンスを減らして送信者の評判を保護します。
</Card>

#### インポート前にAIを使用してCSVを確認する

CSVフォーマットにエラーや疑問がある場合は、AIツール（Claude、ChatGPTなど）にCSVの問題を説明して、再度インポートする前にファイルを自動的にクリーンアップまたは再構築できます。

<Warning>数千のレコードをインポートする前に、必ず小さなサンプル（5〜10行）でテストしてください。</Warning>

<Accordion title="一般的な CSV の問題に対する AI プロンプトの例">
  <Tabs>
    <Tab title="タグの削除">
      ```text 不要なタグを削除するためのAIプロンプトの例 theme={null}
      このCSVから"user_name"以外のすべてのタグを削除したいです。

      以下を実行してください：
      1. "user_name"タグ列のみを保持してください。
      2. 他のすべてのタグ列を削除してください。
      3. このドキュメントのOneSignalインポート要件に一致するようにCSVをフォーマットしてください：
         https://documentation.onesignal.com/docs/en/import

      これが私のCSVです：
      [CSVを貼り付け]

      ```
    </Tab>

    <Tab title="タグフォーマット">
      ```text 複数のタグ列フォーマットを修正するAIプロンプトの例 theme={null}
      tag_first_name、tag_last_name、tag_cityなどの複数のタグ列があります。

      OneSignalインポートドキュメントによると、各タグは以下を満たす必要があります：
      - tag_プレフィックスを使用する
      - 英数字とアンダースコアのみを含む
      - サポートされているデータ型に従う

      私のCSVを確認し、正しくフォーマットされていない部分を特定し、これらの要件を満たす修正版を返していただけますか？

      ドキュメントリンク：
      https://documentation.onesignal.com/docs/en/import

      ```
    </Tab>

    <Tab title="無効なフォーマットの特定">
      ```text 欠落または無効なフォーマットを特定するAIプロンプトの例 theme={null}
      OneSignalがインポート中にCSVを拒否しました。

      以下を実行してください：
      1. CSV構造を検証してください。
      2. フォーマットの問題（ヘッダー、ID列、タグフォーマット、引用符）を特定してください。
      3. このドキュメントの要件に従った修正版を返してください：
         https://documentation.onesignal.com/docs/en/import#prepare-your-csv

      これがファイルです：
      [CSVを貼り付け]

      ```
    </Tab>

    <Tab title="電話番号を修正する">
      ```text 無効な電話番号フォーマット（E.164）を修正するAIプロンプトの例 theme={null}
      電話番号がE.164形式ではないため、インポートが失敗しています。

      以下を実行してください：
      1. すべての電話番号をE.164形式に変換してください。
      2. 他のすべてのフィールドを変更しないでください。
      3. CSVがOneSignalの必要な構造と一致することを確認してください：
         https://documentation.onesignal.com/docs/en/import

      現在のフォーマットの例：(555) 555-1234

      これが私のCSVです：
      [CSVを貼り付け]

      ```
    </Tab>

    <Tab title="他のプラットフォームから移行する">
      ```text 他のプラットフォームから移行するためのAIプロンプトの例 theme={null}
      [プラットフォーム名]からOneSignalに移行しています。

      このCSVをOneSignalのインポート形式に一致するように変換していただけますか？
      以下を含めてください：
      - `external_id`
      - `tag_`プレフィックスで変換されたタグ（必要な場合）
      - E.164形式の電話番号（該当する場合）

      参考ドキュメント：
      https://documentation.onesignal.com/docs/en/import

      これが私のCSVです：
      [CSVを貼り付け]

      ```
    </Tab>
  </Tabs>
</Accordion>

### インポートの手順

**オーディエンス > インポート**に移動し、**CSVインポーターを起動**をクリックします。

<Steps>
  <Step title="CSVをアップロードする">
    準備したCSVファイルを選択します。

    <Frame caption="CSVインポート画面">
      <img src="https://mintcdn.com/onesignal/ZiYMeMG9Jy-RGXDM/images/dashboard/audience-import-csv.png?fit=max&auto=format&n=ZiYMeMG9Jy-RGXDM&q=85&s=34465e4a19791b38f1edaef4239d7e89" alt="OneSignalダッシュボードのCSVファイルアップロード画面" width="2230" height="1242" data-path="images/dashboard/audience-import-csv.png" />
    </Frame>
  </Step>

  <Step title="フィールドをマッピングする">
    OneSignalはCSVヘッダーを既知のプロパティに自動的にマッピングします。確認する前にマッピングを確認してください — `external_id`、`email`、`phone_number`、および/または`subscription_id`を**識別子**として使用し、タグとして使用しないでください。

    <Warning>
      既存のユーザーに新しいメールアドレスまたは電話番号を追加するには、`external_id`を**使用する必要があります**。`subscription_id`は**使用しないでください** — サブスクリプションをリンクまたはマージしません。
    </Warning>

    <Frame caption="CSVインポートフィールドマッピング画面">
      <img src="https://mintcdn.com/onesignal/ZiYMeMG9Jy-RGXDM/images/dashboard/audience-import-map-fields.png?fit=max&auto=format&n=ZiYMeMG9Jy-RGXDM&q=85&s=f560f16f8bb3a8d93012c311e0edeb11" alt="OneSignalのプロパティにマッピングされた列ヘッダーを示すフィールドマッピング画面" width="2190" height="1242" data-path="images/dashboard/audience-import-map-fields.png" />
    </Frame>

    OneSignalがフォーマットの問題を検出した場合は、CSVを修正して再アップロードするか（推奨）、影響を受けた列のチェックを外してスキップしてください。
  </Step>

  <Step title="確認してインポートする">
    レビュー画面では以下のことができます：

    * **セグメントを自動的に作成** — インポートされた各ユーザーにタグを追加し、一致する[セグメント](./segmentation)を作成します。[プランの制限](https://onesignal.com/pricing)に注意してください。
    * **空白の値を持つタグを削除** — CSVで値が空白のタグを削除します。不要なタグをクリーンアップしてプランの制限内に収めるのに役立ちます。
    * **メールアドレス検証の設定** — バウンスを減らして送信者の評判を守るために[メールアドレス検証](./email-address-validation)設定を構成します。

    例えば、次のCSVを使用した場合：

    ```csv theme={null}
    external_id,tag1,tag2
    UserA,,"tag2value"
    UserB,"tag1value",
    ```

    「空白の値を持つタグを削除」を有効にした場合、UserAから`tag1`が削除され、UserBから`tag2`が削除されます。

    <Frame caption="CSVインポートレビュー画面">
      <img src="https://mintcdn.com/onesignal/ZiYMeMG9Jy-RGXDM/images/dashboard/audience-import-review.png?fit=max&auto=format&n=ZiYMeMG9Jy-RGXDM&q=85&s=cf54490a35d4562380cd30baa03ee143" alt="セグメントを作成し、空のタグ値を削除するオプションを示すレビュー画面" width="2212" height="1242" data-path="images/dashboard/audience-import-review.png" />
    </Frame>

    **確認してインポート**をクリックします。ステータス画面に進行状況が表示されます。
  </Step>
</Steps>

<Check>
  インポートが開始されました。完了したら`contact@onesignal.com`から確認メールが届きます。
</Check>

### メール確認

インポートが完了すると、`contact@onesignal.com`から確認メールが届きます。一人の[ユーザー](./users)が複数の[サブスクリプション](./subscriptions)（例：メール + プッシュ）を持つことができるため、サブスクリプション数が行数より多くなる場合があります。

**追加されたサブスクリプションレコード** — 新しく作成されたメールまたはSMS[サブスクリプション](./subscriptions)。`0`は一意の`email`または`phone_number`識別子が見つからなかったことを意味します。

**変更されたサブスクリプションレコード** — データが変更された[サブスクリプション](./subscriptions)（タグ、プロパティなど）。例：10個の外部IDそれぞれが20個のサブスクリプションに関連付けられている場合 = `200`件のレコードが変更。

**スキップされたサブスクリプション更新** — 記載された理由によりスキップされた[サブスクリプション](./subscriptions)。理由が「アプリのタグ制限を超えているため」の場合は、タグを削除して再インポートするかプランをアップグレードしてください。

**インポートされなかった** — 更新またはインポートされなかった行。よくある原因：`external_id`が既存のサブスクリプションと一致しない、または`email`/`phone_number`がすでに存在していて設定する新しいデータがない。

**作成された新しいセグメント** — セグメント名（そのオプションを選択した場合）。

<Frame caption="メール確認の例">
  <img src="https://mintcdn.com/onesignal/6v_cVPknFpo5qSVB/images/docs/0e25f863a4e6728ade07eae4d3f69ee4b42acd3e44e940035d8278d1e24a5882-Screenshot_2025-04-25_at_10.25.05_AM.png?fit=max&auto=format&n=6v_cVPknFpo5qSVB&q=85&s=13bf4c01e085ca95e890683d280e8691" alt="追加、変更、スキップ、未インポートのサブスクリプション数を示すメール確認" width="639" height="558" data-path="images/docs/0e25f863a4e6728ade07eae4d3f69ee4b42acd3e44e940035d8278d1e24a5882-Screenshot_2025-04-25_at_10.25.05_AM.png" />
</Frame>

以上の例では：

* 一意のメールアドレスまたは電話番号（アプリに存在しなかったもの）から`100`個のサブスクリプションが作成されました。
* `37,814`個のサブスクリプションが更新されました（ユーザー数ではありません — 各ユーザーは複数のサブスクリプションを持つことができます）。
* `621,852`行がインポートされませんでした。外部IDが既存のユーザーと一致しなかったか、メール/電話番号がすでに存在していて新しいデータがなかったためです。

<Warning>
  [セグメント](./segmentation)は**サブスクライブ済み**の[サブスクリプション](./subscriptions)のみをカウントします。サブスクライブ解除されたサブスクリプションはインポートによって更新されますが、セグメント数には反映されません。セグメンテーションの改善が進行中です。
</Warning>

***

## 手動入力

OneSignalダッシュボードから**オーディエンス > ユーザー > ユーザーの更新/インポート > ユーザーを手動で追加**に移動して、ユーザーのメールアドレスと電話番号のサブスクリプションを手動で追加できます。

<Frame caption="ユーザーを手動で追加する画面">
  <img src="https://mintcdn.com/onesignal/ZiYMeMG9Jy-RGXDM/images/dashboard/audience-import-manual.png?fit=max&auto=format&n=ZiYMeMG9Jy-RGXDM&q=85&s=80cd5bf606f7e1e5c2ff95ece0620c63" width="2186" height="1242" data-path="images/dashboard/audience-import-manual.png" />
</Frame>

**新しいユーザー**画面で、必要なデータを含めて**ユーザーを作成**を選択します。

***

## よくある質問

### CSVのインポートにはどのくらいかかりますか？

所要時間はファイルサイズによって異なります。ほとんどのインポートは数分以内に完了します。インポートが完了すると`contact@onesignal.com`からメールが届きます — そのアドレスを連絡先に追加して確実に受信できるようにしてください。

### CSVインポートを元に戻すことはできますか？

いいえ。CSVインポートには組み込みの元に戻す機能はありません。変更を元に戻す必要がある場合は、正しい値で新しいCSVを準備して再インポートしてください。タグの削除については、[一括タグ削除](#例一括タグ削除)ワークフローを使用してください。

### セグメントのカウントがCSVの行数と一致しないのはなぜですか？

[セグメント](./segmentation)は**購読済み**の[サブスクリプション](./subscriptions)の数のみをカウントします。購読解除されたサブスクリプションはインポートによって更新されますが、セグメントのカウントには反映されません。

### 一部の行でインポートが「インポートされていません」と表示されるのはなぜですか？

`external_id`がアプリの既存のサブスクリプションと一致しない場合、または`email`や`phone_number`がすでに存在していて設定する新しいデータがない場合、行はスキップされます。各ステータスの詳細については[メール確認](#メール確認とトラブルシューティング)セクションを確認してください。

### 削除したタグが戻ってくるのはなぜですか？

インポート後に統合またはSDKの呼び出しがタグを再追加している可能性があります。一般的なソースには、Segment、HubSpot、Journeys、SDKタグ付けメソッド、カスタムAPIが含まれます。[統合マッピング](#タグが追加される他のソース)とイベントトリガーを確認してください。

***
