削除作業指示のレコード work-order-endpoint
Data Hygiene API の /workorder エンドポイントを使用して、Adobe Experience Platformでのレコード削除作業指示の作成、表示および管理をおこないます。 作業指示を使用すると、データセット間でデータの削除を制御、監視および追跡して、データ品質を維持し、組織のデータガバナンス標準をサポートできます。
はじめに
開始する前に、 概要 を参照して、必要なヘッダー、サンプル API 呼び出しの読み方および関連ドキュメントの場所を確認してください。
割り当て量と処理タイムライン quotas
レコードの削除作業指示は、組織のライセンス使用権限によって決定され、1 日ごとおよび 1 か月ごとの識別子の送信制限の対象となります。 これらの制限は、UI ベースと API ベースのレコード削除リクエストの両方に適用されます。
製品別の月間送信使用権限 quota-limits
次の表に、製品および資格レベル別の識別子の送信制限を示します。 各製品の月額上限は、固定の識別子上限またはライセンス取得済みデータボリュームに関連付けられた割合ベースのしきい値の、2 つの値のいずれか小さい方です。 実際には、ほとんどの組織では、実際のアドレス可能なオーディエンスまたはAdobe Customer Journey Analytics行の使用権限に基づいて、月間の上限が引き下げられます。
- クォータは、毎月 1 日にリセットされます。 未使用の割り当ては引き継がれ い。
- クォータの使用状況は、送信された識別子 に対して組織でライセンスを取得した 1 か月の使用権限に基づきます。 クォータはシステム・ガードレールによって適用されませんが、監視および確認が可能です。
- レコード削除作業指示能力は 共有サービス です。 1 か月の上限には、Real-Time CDP、Adobe Journey Optimizer、Customer Journey Analyticsおよび該当する Shield アドオン全体で最高の使用権限が反映されます。
識別子の送信のタイムラインの処理 sla-processing-timelines
送信後、レコードの削除作業指示は、使用権限レベルに基づいてキューに入れられ、処理されます。
組織でさらに上限が必要な場合は、Adobe担当者に連絡して使用権限のレビューを依頼してください。
レコード削除作業指示のリスト list
組織のデータハイジーン操作用の、ページ分割されたレコード削除作業指示のリストを取得します。 クエリパラメーターを使用して結果をフィルタリングします。 各作業指示レコードには、アクションタイプ(identity-delete など)、ステータス、関連するデータセットおよびユーザーの詳細、監査メタデータが含まれています。
API 形式
GET /workorder
次の表では、レコード削除作業指示のリストに使用できる問合せパラメータを説明します。
searchtypeidentity-delete など)で結果をフィルタリングします。status列挙:
received、validated、submitted、ingested、completed、failedauthordisplayNamedescriptionworkorderIdsandboxName* を使用してすべてのサンドボックスを含めます。fromDatetoDate が設定されている必要があります。toDatefromDate が設定されている必要があります。filterDatepagelimitorderBy+ または - のプレフィックスを使用します。 例:orderBy=-datasetName。propertiesリクエスト
次のリクエストは、すべての完了済みレコード削除作業指示を取得します(ページあたり 2 つに制限されています)。
curl -X GET \
"https://platform.adobe.io/data/core/hygiene/workorder?status=completed&limit=2" \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
応答
応答が成功すると、レコード削除作業指示のページ分割されたリストが返されます。
{
"results": [
{
"workorderId": "DI-1729d091-b08b-47f4-923f-6a4af52c93ac",
"orgId": "9C1F2AC143214567890ABCDE@AcmeOrg",
"bundleId": "BN-4cfabf02-c22a-45ef-b21f-bd8c3d631f41",
"action": "identity-delete",
"createdAt": "2034-03-15T11:02:10.935Z",
"updatedAt": "2034-03-15T11:10:10.938Z",
"operationCount": 3,
"targetServices": [
"profile",
"datalake",
"identity",
"ajo"
],
"status": "received",
"createdBy": "a.stark@acme.com <a.stark@acme.com> BD8C3D631F41@acme.com",
"datasetId": "a7b7c8f3a1b8457eaa5321ab",
"datasetName": "Acme_Customer_Exports",
"displayName": "Customer Identity Delete Request",
"description": "Scheduled identity deletion for compliance"
}
],
"total": 1,
"count": 1,
"_links": {
"next": {
"href": "https://platform.adobe.io/workorder?page=1&limit=2",
"templated": false
},
"page": {
"href": "https://platform.adobe.io/workorder?limit={limit}&page={page}",
"templated": true
}
}
}
次の表に、応答のプロパティを示します。
resultsworkorderIdorgIdbundleIdactioncreatedAtupdatedAtoperationCounttargetServices["datalake", "identity", "profile", "ajo"])です。 Customer Journey Analyticsのみの組織の場合(リアルタイム顧客プロファイルの使用権限がない場合)、有効な値は ["datalake"] のみです。statusreceived、validated、submitted、ingested、completed、failed。createdBydatasetIdALL。 リクエストでプロファイルのみのモードを使用した場合、この値は ALL になります。datasetNamedisplayNamedescriptiontotalcount_linksnexthref (文字列)と templated (ブール値)を持つオブジェクト。pagehref (文字列)および templated (ブール値)を持つオブジェクト。レコード削除作業指示の作成 create
単一のデータセット、複数のデータセット、またはすべてのデータセットから 1 つ以上の ID に関連付けられたレコードを削除するには、/workorder エンドポイントに対して POST リクエストを行います。
作業指示は非同期で処理され、送信後に作業指示リストに表示されます。 マルチデータセットおよびプロファイルのみ(ターゲットサービス)のオプションは、2026 年 3 月のExperience Platform リリース以降、すべてのお客様が一般に利用できるようになります。
API 形式
POST /workorder
- データセットスキーマでは、プライマリ ID または ID マップを定義する必要があります。 削除できるのは、関連付けられた XDM スキーマがプライマリ ID または ID マップを定義するデータセットからのレコードのみです。
- セカンダリID はスキャンされません。 データセットに複数の ID フィールドが含まれている場合、照合にプライマリ ID のみが使用されます。 非プライマリ ID に基づいてレコードをターゲット設定または削除することはできません。
- プライマリ ID が入力されていないレコードはスキップされます。 レコードにプライマリ ID メタデータが入力されていない場合、削除の対象にはなりません。
- ID 設定の前に取り込まれたデータは適格ではありません。 データ取り込み後にプライマリ ID フィールドがスキーマに追加された場合、以前に取り込んだレコードは、レコード削除作業指示で削除できません。
ID ペイロード形式(namespacesIdentities または identities)
リクエスト本文には、次のうち 1 つだけ を含める必要があります。
namespacesIdentitiesnamespace (例:{ "code": "email" })および ids (ID 文字列の配列)を持つオブジェクトの配列。identitiesnamespace (例:{ "code": "email" })と単一の id (文字列)を持つオブジェクトの配列。both properties、neither property を送信するか、含めるプロパティに 空の配列 を指定すると、API は HTTP 400 (無効なリクエスト) を返し、次のいずれかのメッセージが返されます。
- 両方のプロパティが提供されています。
"Identities and NamespacesIdentities are not allowed at the same time" - リストが指定されていないか、空ではありません:
"Identities are Empty for Delete Identity request."
リクエスト
次のリクエストは、指定されたメールアドレスに関連付けられているすべてのレコードを、特定のデータセットから削除します。 推奨される namespacesIdentities 形式を使用します。
curl -X POST \
https://platform.adobe.io/data/core/hygiene/workorder \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'Content-Type: application/json' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '{
"displayName": "Acme Loyalty - Customer Data Deletion",
"description": "Delete all records associated with the specified email addresses from the Acme_Loyalty_2023 dataset.",
"action": "delete_identity",
"datasetId": "7eab61f3e5c34810a49a1ab3",
"namespacesIdentities": [
{
"namespace": {
"code": "email"
},
"ids": [
"alice.smith@acmecorp.com",
"bob.jones@acmecorp.com",
"charlie.brown@acmecorp.com"
]
}
]
}'
次の表では、レコード削除作業指示を作成するためのプロパティについて説明します。
displayNamedescriptionactiondelete_identity を使用します。datasetIdALL、単一のデータセット ID、または 2 つ以上のデータセット ID のコンマ区切りリスト(例:"id1,id2,id3")のいずれか 1 つにする必要があります。 ALL を特定の ID と組み合わせることはできません。 単一データセットリクエストは以前と同様に動作し、マルチデータセットリクエストはリストされた各データセットから ID を削除し、すべてのデータセット ALL ターゲットにします。 データセットには、プライマリ ID または ID マップが必要です。 ID マップが存在する場合、identityMap という名前の最上位フィールドとして存在します。メモ:データセット行の ID マップに多くの ID が含まれている場合がありますが、プライマリとしてマークできるのは 1 つのみです。
"primary": true がプライマリ ID と一致するように強制するには、id を含める必要があります。プロファイルのみの削除に
targetServices を使用する場合は、datasetId を ALL す必要があります。targetServices["datalake", "identity", "profile", "ajo"])を受け取ります。 Customer Journey Analyticsを使用しているが、リアルタイム顧客プロファイルの使用権限がない組織では、[datalake」 ] のみを使用できます。 削除をプロファイル関連のデータのみに制限し、データレイクはそのままにするには、これを ["identity", "profile", "ajo"] (任意の順序)に設定します。 このプロファイル専用モードには、Real-Time CDPまたはAdobe Journey Optimizerの使用権限が必要で、datasetId を ALL す必要があります。identitiesidentities または namespacesIdentities のいずれか 1 つだけを使用してください。 オブジェクトの配列。各オブジェクトには、namespace (code を持つオブジェクト、例:"email")および id (単一の ID 文字列)があります。 下位互換性のために受け入れられ、変換スクリプトによって生成されます。 このサービスは、この形式を内部で正規化します。動作は同じです。 上記の ID ペイロード形式 を参照してください。namespacesIdentitiesidentities または namespacesIdentities のいずれか 1 つだけを使用してください。 オブジェクトの配列。各オブジェクトには、namespace (code を持つオブジェクト、例:"email")および ids (ID 文字列の配列)があります。 すべてのペイロードに推奨されます。 多くの ID が 1 つの名前空間を共有する場合、namespacesIdentities プロパティはよりコンパクトになります。 上記の ID ペイロード形式 を参照してください。 ID 名前空間:ID 名前空間ドキュメント 、ID サービス API。応答
応答が成功すると、新しいレコードの削除作業指示の詳細が返されます。
{
"workorderId": "DI-95c40d52-6229-44e8-881b-fc7f072de63d",
"orgId": "8B1F2AC143214567890ABCDE@AcmeOrg",
"bundleId": "BN-c61bec61-5ce8-498f-a538-fb84b094adc6",
"action": "identity-delete",
"createdAt": "2035-06-02T09:21:00.000Z",
"updatedAt": "2035-06-02T09:21:05.000Z",
"operationCount": 1,
"targetServices": [
"profile",
"datalake",
"identity",
"ajo"
],
"status": "received",
"createdBy": "c.lannister@acme.com <c.lannister@acme.com> 7EAB61F3E5C34810A49A1AB3@acme.com",
"datasetId": "7eab61f3e5c34810a49a1ab3",
"datasetName": "Acme_Loyalty_2023",
"displayName": "Loyalty Identity Delete Request",
"description": "Schedule deletion for Acme loyalty program dataset"
}
次の表に、応答のプロパティを示します。
workorderIdorgIdbundleIdactioncreatedAtupdatedAtoperationCounttargetServicesstatuscreatedBydatasetIdALL に設定されます。 マルチデータセットリクエストの場合、値は送信されたコンマ区切りリストまたは単一 ID を反映します。datasetNamedisplayNamedescriptionresponse targetServices 値は、リクエストをエコーするか、省略した場合は完全なデフォルトセットを表示します(上記の応答の表を参照)。
マルチデータセットおよびプロファイルのみ(API) multi-dataset-profile-only
次のオプションは API 経由でのみ使用でき、データハイジーン UI ではサポートされていません。 どのデータセットとどのサービスが削除を処理するかを制御し、複数のデータセットの送信と、ターゲットを絞ったプロファイルのみのサービスリクエストを可能にします。
次の表に、各オプションでリクエスト本文と動作がどのように変化するかをまとめます。
datasetId で使用します(例:"id1,id2,id3")。 単一の ID または ALL は変更されていません。ALL を指定した場合はすべてのデータセットから)から削除されます。targetServices の ["identity", "profile", "ajo"] を追加します(任意の順序)。 datasetId: "ALL" が必要です。マルチデータセットリクエスト
datasetId フィールドはコンマで分割されています。単一の ID (以前と同じ動作)、ID のコンマ区切りリスト、またはリテラル ALL を使用します。 1 つの作業指示で複数の特定のデータセットから ID を削除するには、コンマ区切りリストを指定します。
"datasetId": "6707eb36eef4d42ab86d9fbe,6643f00c16ddf51767fcf780"
その後、リストに表示された各データセットから ID が削除されます。 単一データセットのリクエストは通常どおりに機能します。ALL を使用して、すべてのデータセットをターゲットに設定します。 値は、ALL、単一のデータセット ID、またはコンマで区切られた 2 つ以上のデータセット ID のいずれかである必要があります(ALL を特定の ID と組み合わせることはできません)。
プロファイルのみ(対象サービス)
データレイクをそのままにして ID およびプロファイル関連データのみを削除するには、targetServices と、これら 3 つの値(identity、profile、ajo)を任意の順序で含めます。 ID、プロファイルおよびAJOは明示的に含まれ、データレイクは除外されます。 このモードでは、datasetId を ALL す必要があります(ユースケースはデータセットごとのフラグメントではなく、完全なプロファイル削除です)。
次の例では、プロファイルのみのレコード削除作業指示を作成します。
curl -X POST \
"https://platform.adobe.io/data/core/hygiene/workorder" \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'x-sandbox-id: {SANDBOX_ID}' \
-d '{
"action": "delete_identity",
"datasetId": "ALL",
"displayName": "Profile-only delete for specified identity",
"description": "Delete identity, profile, and AJO data only; datalake unchanged.",
"targetServices": ["identity", "profile", "ajo"],
"namespacesIdentities": [
{
"namespace": { "code": "email" },
"ids": ["user@example.com"]
}
]
}'
マルチデータセットまたはプロファイルのみのリクエストに対して成功した応答は、他の作業指示の応答と同じ形に従います。 返された datasetId および targetServices はリクエスト内の値(または targetServices が省略された場合は完全なデフォルトリスト)を反映するので、送信された内容を確認できます。
identity-delete 定されています。 API が別の値(delete_identity など)を使用するように変更された場合、それに応じてこのドキュメントが更新されます。レコード削除リクエストの ID リストを JSON に変換(#convert-id-lists-to-json-for-record-delete-requests)
識別子が CSV、TSV、TXT ファイルである場合は、変換スクリプトを使用して、/workorder エンドポイントに必要な JSON ペイロードを生成します。 この方法は、既存のデータファイルを使用する場合に特に便利です。 すぐに使用できるスクリプトと手順については、csv-to-data-hygiene GitHub リポジトリ を参照してください。
スクリプトは identities フォーマットを出力します。つまり、id を使用してオブジェクトごとに 1 つの namespace を出力します。 API はこの形式をそのまま受け入れます。生成された JSON を POST 本文に直接送信でき、変換は行 /workorder ません。 推奨される形式は namespacesIdentities です。 レコード削除作業指示の作成 および ID ペイロード形式 を参照してください。
JSON ペイロードの生成
次の bash スクリプトの例は、Python または Ruby で変換スクリプトを実行する方法を示しています。
| code language-bash |
|---|
|
| code language-bash |
|---|
|
次の表に bash スクリプトのパラメーターを示します。
verbosecolumnnamespaceemail)。 生成された JSON は、各オブジェクトの namespace.code プロパティでこれを使用します。dataset-idALL。descriptionoutput-dir以下の例に、CSV、TSV、TXT ファイルから変換された成功した JSON ペイロードを示します。 指定した名前空間に関連付けられたレコードが含まれており、メールアドレスで識別されたレコードを削除するために使用されます。
{
"action": "delete_identity",
"datasetId": "66f4161cc19b0f2aef3edf10",
"displayName": "output/sample-big-001.json",
"description": "a simple sample",
"identities": [
{
"namespace": {
"code": "email"
},
"id": "1"
},
{
"namespace": {
"code": "email"
},
"id": "2"
}
]
}
次の表に、JSON ペイロードのプロパティを示します。
actiondelete_identity に設定されます。datasetIdALL。displayNamedescriptionidentitiesオブジェクトの配列。各オブジェクトには、以下が含まれます。
namespace: ID 名前空間を指定するcodeプロパティを持つオブジェクト(例えば「email」)。id:この名前空間で削除する ID 値。
生成された JSON データを /workorder エンドポイントに送信します。
スクリプト出力には、API がそのまま受け入れる identities 形式を使用します。 -d POST リクエストを curl エンドポイントに送信する際に、変換された JSON ペイロードをリクエスト本文(/workorder)として使用します。 完全なリクエストオプションと検証ルールについては、 レコード削除作業指示の作成 を参照してください。
特定のレコード削除作業指示の詳細の取得 lookup
/workorder/{WORKORDER_ID} に対してGET リクエストを実行して、特定のレコード削除作業指示の情報を取得します。 応答には、アクションタイプ、ステータス、関連するデータセットおよびユーザー情報、監査メタデータが含まれます。
API 形式
GET /workorder/{WORKORDER_ID}
{WORK_ORDER_ID}リクエスト
curl -X GET \
https://platform.adobe.io/data/core/hygiene/workorder/DI-6fa98d52-7bd2-42a5-bf61-fb5c22ec9427 \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
応答
応答が成功すると、指定されたレコード削除作業指示の詳細が返されます。
{
"workorderId": "DI-6fa98d52-7bd2-42a5-bf61-fb5c22ec9427",
"orgId": "3C7F2AC143214567890ABCDE@AcmeOrg",
"bundleId": "BN-dbe3ffad-cb0b-401f-91ae-01c189f8e7b2",
"action": "identity-delete",
"createdAt": "2037-01-21T08:25:45.119Z",
"updatedAt": "2037-01-21T08:30:45.233Z",
"operationCount": 3,
"targetServices": [
"ajo",
"profile",
"datalake",
"identity"
],
"status": "received",
"createdBy": "g.baratheon@acme.com <g.baratheon@acme.com> C189F8E7B2@acme.com",
"datasetId": "d2f1c8a4b8f747d0ba3521e2",
"datasetName": "Acme_Marketing_Events",
"displayName": "Marketing Identity Delete Request",
"description": "Scheduled identity deletion for marketing compliance"
}
次の表に、応答のプロパティを示します。
workorderIdorgIdbundleIdactioncreatedAtupdatedAtoperationCounttargetServicesstatuscreatedBydatasetIdALL)。datasetNamedisplayNamedescriptionレコード削除作業指示の更新 update
name エンドポイントに対してPUT リクエストを実行して、レコード削除作業指示の description および /workorder/{WORKORDER_ID} を更新します。
API 形式
PUT /workorder/{WORKORDER_ID}
次の表に、このリクエストのパラメーターを示します。
{WORK_ORDER_ID}リクエスト
curl -X PUT \
https://platform.adobe.io/data/core/hygiene/workorder/DI-893a6b1d-47c2-41e1-b3f1-2d7c2956aabb \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "Updated Marketing Identity Delete Request",
"description": "Updated deletion request for marketing data"
}'
次の表に、更新可能なプロパティを示します。
namedescription応答
応答が成功すると、更新された作業指示リクエストが返されます。
{
"workorderId": "DI-893a6b1d-47c2-41e1-b3f1-2d7c2956aabb",
"orgId": "7D4E2AC143214567890ABCDE@AcmeOrg",
"bundleId": "BN-12abcf45-32ea-45bc-9d1c-8e7b321cabc8",
"action": "identity-delete",
"createdAt": "2038-04-15T12:14:29.210Z",
"updatedAt": "2038-04-15T12:30:29.442Z",
"operationCount": 2,
"targetServices": [
"profile",
"datalake"
],
"status": "received",
"createdBy": "b.tarth@acme.com <b.tarth@acme.com> 8E7B321CABC8@acme.com",
"datasetId": "1a2b3c4d5e6f7890abcdef12",
"datasetName": "Acme_Marketing_2024",
"displayName": "Updated Marketing Identity Delete Request",
"description": "Updated deletion request for marketing data",
"productStatusDetails": [
{
"productName": "Data Management",
"productStatus": "waiting",
"createdAt": "2024-06-12T20:11:18.447747Z"
},
{
"productName": "Identity Service",
"productStatus": "success",
"createdAt": "2024-06-12T20:36:09.020832Z"
},
{
"productName": "Profile Service",
"productStatus": "waiting",
"createdAt": "2024-06-12T20:11:18.447747Z"
},
{
"productName": "Journey Orchestrator",
"productStatus": "success",
"createdAt": "2024-06-12T20:12:19.843199Z"
}
]
}
workorderIdorgIdbundleIdactioncreatedAtupdatedAtoperationCounttargetServicesstatusreceived、validated、submitted、ingested、completed、failed。createdBydatasetIdALL)。datasetNamedisplayNamedescriptionproductStatusDetailsリクエストのダウンストリームプロセスの現在のステータスをリストする配列。 各オブジェクトには、以下が含まれます。
productName:ダウンストリームサービスの名前。productStatus:ダウンストリームサービスの現在の処理ステータス。createdAt:最新のステータスがサービスからポストされたときのタイムスタンプ。
このプロパティは、作業指示がダウンストリームサービスに送信されて処理を開始した後に使用できます。