バッチファイルのフォーマット要件
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
バッチAPIは、gzip化されたアーカイブファイルのアップロードをサポートしています(.gz)。 .zipなどの他のフォーマットはサポートされていません。
gzip化されたファイルの最大サイズは50MBです。
もしgzipファイルのサイズが50MBの制限を超えた場合は、元のJSONファイルを2つ以上のgzipファイルに再圧縮し、そのファイルは50MBサイズを超えません。その後、gzip化されたファイルを1つずつアップロードします。
gzip化されたファイルには、正確に1つのJSONファイルが含まれていなければなりません。例えば、アップロードしたいデータがimport.jsonにある場合、JSONファイルをgzip化してアップロードしなければなりませんimport.json.gz。
JSONファイル内のJSONレコード
JSONファイルは各JSONレコードを別々の行にまとめる必要があります。例えば、ゲストレコードを含むJSONファイルをアップロードする場合、インポートする各ゲストはJSONファイル内にそれぞれ別の行を持たなければなりません。注文レコードを含むJSONファイルをアップロードする場合、インポートする各注文も別々の行に分けなければなりません。
各JSONレコードは以下のものでなければなりません:
- 有効なJSON。
- 縮小され、1本の行に収められた。
- キャリッジリターンで終了。
- RFC 4627に従ってエンコードされています。
このサンプルのJSONファイル(import.json)には、2人のゲストごとに2つのJSONレコード、[email protected]と[email protected]が含まれています。各レコード内のメールアドレスは メール検証ルールに従う必要があります。各レコードは別々の行に分かれています。各行は有効ですがJSON JSONファイル全体は有効ではありません。
{"ref":"ace73c06-b361-11ed-afa1-0242ac120002","schema":"guest","mode":"upsert","value":{"guestType":"customer","identifiers":{"provider":"email","id":"[email protected]"},"extensions":{"name":"ext","key":"default","loyaltyNumber":"1234"}}} {"ref":"7e1d404e-9fd5-4df5-acfe-3a64848ec594","schema":"guest","mode":"upsert","value":{"guestType":"customer","identifiers":{"provider":"email","id":"[email protected]"},"extensions":{"name":"ext","key":"default","loyaltyNumber":"5678"}}}
!警告重複記録の作成を防ぐために、以下のガイドラインに従ってください:
Guest records - JSONファイルに一意のゲストレコードは一度だけ含めるようにしてください。JSONファイルに重複ゲストレコードを含めると、Sitecore CDP内で重複ゲストが作成されます。
Order records - 同様に、JSONファイルに一意の注文レコードは一度だけ含めて、Sitecore CDP内で重複注文が作成されないようにしてください。
CDP内のプロファイルなしで同じゲストに複数の注文 がある場合 - Sitecore CDPにプロフィールがないゲストのために複数の注文をアップロードする場合、異なるスレッドを使った並行アップロードは避けてください。これによりゲストが重複する恐れがあります。
例えば、JSONファイルに以下のゲストレコードが含まれていて、最初と最後のレコードが重複している場合、同一のレコードは統合されず、2人のゲストが作成されます。
{"ref":"ace73c06-b361-11ed-afa1-0242ac120002","schema":"guest","mode":"upsert","value":{"guestType":"customer","identifiers":{"provider":"email","id":"[email protected]"},"extensions":{"name":"ext","key":"default","loyaltyNumber":"1234"}}} {"ref":"7e1d404e-9fd5-4df5-acfe-3a64848ec594","schema":"guest","mode":"upsert","value":{"guestType":"customer","identifiers":{"provider":"email","id":"[email protected]"},"extensions":{"name":"ext","key":"default","loyaltyNumber":"5678"}}} {"ref":"ace73c06-b361-11ed-afa1-0242ac120002","schema":"guest","mode":"upsert","value":{"guestType":"customer","identifiers":{"provider":"email","id":"[email protected]"},"extensions":{"name":"ext","key":"default","loyaltyNumber":"1234"}}}
同様に、JSONファイルに同じ注文参照を持つ2つの注文レコードが含まれている場合、システム内には2つの注文レコードが生成されます。
各JSONレコードには以下の必須フィールドを含める必要があります:
フィールド名
種類
概要
ref
ストリング
バージョン4 UUID
アップロードプロセス中にJSONレコードを識別する一意IDです。このIDはSitecore CDP内でゲストやレコードを識別するためには使われません。アップロードプロセス専用です。
schema
ストリング
以下のいずれかでなければなりません:
- "guest"
- "order"
- "migration"
インポート中のvalueフィールドに含まれるレコードの種類。ゲストを移行する際は"schema"の価値として"migration"のみを使用してください。詳細はゲスト移行データモデルを参照してください。
mode
ストリング
以下のいずれかでなければなりません:
- "insert"
- "upsert"
- "guest"
- "delete"
記録をシステムにインポートする方法を示しています:
insert - 既存のエンティティに属するすべてのものを上書きし、新しいエンティティが作成される
upsert - リクエストで設定されたフィールドのみを既存のエンティティに更新します。エンティティが存在しない場合は、新しいエンティティが作成されます。
guest- フィールドの更新方法に特定の移行ルールを適用すること。ゲストの移行時には"mode"の値はのみ"guest"使用。詳細はゲスト移行データモデルを参照。
delete - エンティティを削除する。
value
JSON オブジェクト
Sitecore CDPエンティティを含みます。
アップロード時に各オブジェクトのすべてのフィールドが存在する必要はありません。例外はゲストデータ拡張で、ゲストデータ拡張の種類によってはすべてのフィールドが必須になることがあります。
ゲストにupsertモードを使う場合、Sitecore CDP内のゲストを特定できるだけのデータと更新すべきフィールドだけを含める必要があります。
ゲストにguestモードを使用する場合、そのエンティティを有効とみなすために必要なすべての項目を含める必要があります。なぜなら、更新は有効なエンティティを生み出さなければならないからです。
メール検証ルール
バッチインポートファイルのJSONレコード内の各メールアドレスは、以下の検証基準を満たす必要があります:
- メールアドレスの名前とドメイン部分は、別々の正則表現(RegEx)を用いて独立して検証されます。
- メールアドレスには名前とドメインの間に@記号が必要です。例えば: [email protected]
- 名前もドメインもピリオド(.)で始まることも終わることもできません。例えば、[email protected]と [email protected] は無効ですが、[email protected]は有効です。
- 名前とドメインには、文字(a-z)、数字(0-9)、および以下の特殊文字が含まれます:!, #, $, %; &, ', *, +, /, =, ?, ^, _, ', {, |, }, ~, -.
- ドメインは有効なドメイン名かIPアドレスでなければなりません。例えば、 [email protected]、 [email protected]。