メインコンテンツへスキップ

概要

このガイドでは、OneSignalにユーザーデータをインポートするさまざまな方法について説明します。別のプラットフォームから移行する場合でも、新しいサブスクライバーを追加する場合でも、次の方法を使用してユーザーとそのサブスクリプションをインポートまたは更新できます:
  • SDK — 新しいユーザーとプッシュサブスクリプションを自動的に追加するために推奨されます。
  • CSVインポーター — ユーザーの一括インポートと更新に最適です。
  • REST API — プログラマティックまたは自動化された更新に最適です。
  • 手動入力 — 個々のユーザーの追加または編集に最適です。

オーディエンスセクション内のページ


CSVインポート

メールと電話番号のサブスクリプションを、それらのタグ、言語、タイムゾーン、国、サブスクリプションステータス(メール/SMS)、および抑制ステータス(メールのみ)とともにインポートまたは更新します。

CSVインポート画面

CSVを準備する

ファイルが次の基準を満たしていることを確認してください:
  • UTF-8エンコーディング(BOMなし)
  • 印字不可能な文字がないこと
  • クリーンで一意の列ヘッダー
  • ファイルサイズが150MB未満
VS CodeやSublimeなどのプレーンテキストエディターでファイルを開きます。UTF-8エンコーディングで再度開き、文字が正しく表示されることを確認してください。
ファイルには次のうち少なくとも1つが含まれている必要があります:
  • external_id — 推奨。すべてのサブスクリプションにわたってユーザーを識別します。
  • email — メールサブスクリプションに必要です。
  • phone_number — SMSサブスクリプションに必要です。
  • subscription_id — 既存のサブスクリプションに外部IDを追加する場合にのみ使用することをお勧めします。
subscription_idは、レガシーケースや、バックエンドがこの一意のサブスクリプションIDを追跡している場合に識別子として使用できます。プロパティの追加または更新の識別子として使用することはお勧めしません。
各タイプの識別子は行ごとに1つのみ許可されます。同じユーザーに複数のメールアドレスまたは番号を関連付けるには、同じexternal_idを共有する別の行を使用します。
  • external_idを含めると、ユーザーの重複排除が容易になり、チャネル間での更新がサポートされ、今後のインポートが可能になります。
  • external_idが各ユーザーに対して一意であり、SDK loginメソッドを介して設定された同じIDであることを確認してください。そうしないと、ユーザーがアプリを開いたときにリセットされます。

利用可能なCSV列

external_id
Any unique alphanumeric value
詳細については外部IDを参照してください。
email
Valid email addresses
メールサブスクリプションを作成します。すでに存在する場合は重複排除されます。
phone_number
Valid phone numbers
+15555551234のようにE.164形式を使用します。SMSサブスクリプションを作成します。
subscription_id
UUID v4 assigned by OneSignal
レガシー用途のみ。OneSignalサブスクリプションIDを追跡する場合に使用します。
subscribed
`yes`, `no`
emailphone_number、およびsubscription_idのサブスクリプションステータスを設定します。
suppressed
`true`, `false`
falseは抑制リストからメールを削除します。
timezone_id
IANA TZ formatted time zones
IANA TZを参照してください。
country
2-character ISO 3166-2 codes
ISO 3166-2を参照してください。
language
2-character ISO 639-1 codes
ISO 639-1を参照してください。
data tags
Alphanumeric values
最大1,000個のタグ。列ヘッダーをキーとして使用します。タグを参照してください。

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

各タグキーに個別の列ヘッダーを使用する代わりに、単一のtagsヘッダーを設定し、各ユーザー行に引用符で囲まれたすべてのキーと値のペアのJSONマップを含めることができます。これは、以前にタグ付きのCSVをエクスポートし、再フォーマットせずに再インポートしたい場合に特に便利です。 ヘッダーの例:
external_id,email,tags
行の例: タグは引用符で囲まれたJSONオブジェクトとしてフォーマットする必要があります。
userA,example@email.com,"{""level"":""30"",""Color"":""teal""}"
インポートされると、OneSignalは各キーと値のペアをサブスクリプションレコードの個別のタグに自動的に変換します。

CSVインポーターにアクセスする

  1. オーディエンス > インポートに移動します
  2. CSVインポーターを起動をクリックします
  3. CSVをアップロードします(ドラッグ&ドロップまたはファイルセレクターを使用)

フィールドをマッピングする

アップロード後:
  • OneSignalはヘッダーを既知のプロパティに自動的にマッピングします。
  • 確認する前にマッピングを確認してください。

プロパティを更新する

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

警告を処理する

OneSignalがフォーマットの問題を検出した場合:
  • CSVを修正して再アップロードします(推奨)
  • または、影響を受けた列のチェックを外してインポートをスキップします

不正にフォーマットされた電話番号のエラーメッセージを表示しています

レビュー

レビュー画面で:
  • オプションで、このインポートのためのセグメントを作成します
  • オプションで、空白の値を持つタグを削除します:
external_id,tag1,tag2
2349-wefh-h34a,,"tag 2 value"
セグメントを作成すると、これらのユーザーにすぐにメッセージを送信するのが迅速かつ簡単になります。ただし、CSVにすでに一意のタグが含まれている場合は、ここでセグメントを作成する必要はありません。すでに設定したタグを使用してセグメントを作成するだけです。

セグメントを作成し、空のタグ値を削除するオプション

確認してインポートをクリックすると、ステータス画面に進行状況が表示されます。インポートが完了すると、メールが届きます。

ステータスとレコード数を含むインポート確認

インポート時間はファイルサイズによって異なります。完了メールを確実に受信するために、contact@onesignal.comをメール連絡先に追加してください。

メール確認とトラブルシューティング

CSVのアップロードが完了すると、次のデータを含む確認メールが届きます:
  • 追加されたサブスクリプションレコード
    • CSVアップロードを介して作成された新しいメールおよび/またはSMSサブスクリプションの数。
    • 0は、リストにサブスクリプションを作成するための一意のemailおよび/またはphone_number識別子が含まれていなかったことを意味します。
  • 変更されたサブスクリプションレコード
    • タグの設定やその他のプロパティなど、一部のデータが変更されたサブスクリプションの数。
    • ユーザーは複数のサブスクリプションを持つことができることを忘れないでください。たとえば、10個の外部IDのリストをアップロードし、それぞれが20個のサブスクリプションに関連付けられている場合、200個のサブスクリプションレコードが変更されたことになります。
  • スキップされたサブスクリプション更新
    • 提供された理由によりスキップされたサブスクリプションの数。
    • emailおよび/またはphone_numberのCSVをアップロードした場合、それらのサブスクリプションはおそらく作成されました。
    • 理由が「アプリのタグ制限を超えているため」の場合は、タグを削除して再度アップロードする必要があります。またはプランをアップグレードしてください。
  • インポートされなかった
    • 更新またはインポートされなかった行の数。
    • 通常、次の場合に発生します:
    1. CSVで設定したexternal_idがOneSignalアプリのどのサブスクリプションにも存在しない
    2. emailおよび/またはphone_numberサブスクリプションがすでにOneSignalアプリに存在している。
  • 作成された新しいセグメント
    • 該当する場合に作成したセグメントの名前。

メール確認の例

例の説明:
  • 100個のサブスクリプションが作成されました。これは、emailおよび/またはphone_number列に、現在OneSignalアプリに存在していない一意のメールアドレスおよび/または電話番号が含まれていたためです。
  • 37814個のサブスクリプションが更新されました。これはユーザーの数ではありません。ユーザーは複数のサブスクリプションを持つことができることを忘れないでください。
  • CSVの621852行がインポートされませんでした。OneSignalアプリのユーザーにマッピングされる外部IDがなかったか、メールアドレスおよび/または電話番号がすでに存在しており、設定する一意のデータがなかったためです。
現在、セグメントサブスクライブ済みサブスクリプションの数のみをカウントします。サブスクライブ解除されたサブスクリプションはカウントされませんが、それらのデータは更新されています。セグメント数がCSVと一致しない場合、セグメントが現時点でサブスクライブ解除されたサブスクリプションをカウントしていないためです。これは現在取り組まれています。新しく改善されたセグメンテーションは2025年後半に利用可能になります。
まだ問題が解決しませんか?support@onesignal.comに連絡して、アップロードしたCSVファイルと確認メールのスクリーンショットを共有してください。喜んで確認させていただきます!

CSVインポート履歴

オーディエンス > インポート > CSV > 以前のインポートを表示でインポートの履歴を確認できます(以前の単一チャネルCSVインポートプロセスを使用して行われたインポートは、このリストに含まれないことに注意してください)。

REST API

REST APIを介してユーザーとサブスクリプションをインポートおよび更新する場合:

手動入力

  • メールを手動で追加する
  • 電話番号を手動で追加する
オーディエンス > サブスクリプション > ユーザーを更新/インポートの横の矢印 > メールを手動で追加に移動して、個々のユーザーのメールと関連付けたいデータタグを追加できる新しいモーダルを開きます。

メールを手動で追加オプションがハイライト表示されたボタンドロップダウンメニュー