Decisioning Migration API decisioning-migration-api

このページ: Decisioning Migration Service API を使用して、依存関係の自動分析やロールバックのサポートを備えたサンドボックス間で意思決定管理オブジェクトを移行します。これにより、データの整合性を保持しながら、環境間で意思決定コンテンツを移行できます。

Decisioning Migration Service API を使用すると、あるサンドボックスから別のサンドボックスに意思決定管理オブジェクトを移行できます。 移行プロセスは、依存関係の分析、実行、オプションのロールバック機能を含む非同期ワークフローとして実行されます。

この API を使用すると、データの整合性と関係を保持しながら、環境間で意思決定コンテンツをシームレスに移行できます。

意思決定管理と比較した決定のメリットと機能について詳しくは、このページを参照してください。

機能 capabilities

Decisioning Migration Service API には、次の機能が用意されています。

  • 依存関係分析 - 属性、セグメント、データセット要件など、ソースサンドボックスとターゲットサンドボックス間に必要なすべての依存関係を特定します。
  • 柔軟な移行スコープ - 必要に応じて、サンドボックス、オファー、決定レベルで移行を実行します。
  • ロールバックのサポート - 検証中に問題が検出された場合、完了した移行を元に戻します。

前提条件 prerequisites

必要な権限 permissions

Migration API を使用するには、ソースサンドボックスとターゲットサンドボックスの両方に適切な権限が必要です。

ソースサンドボックス - 意思決定管理オブジェクトへの読み取りアクセス権

ターゲットサンドボックス - 意思決定管理オブジェクトへの作成および編集アクセス権

一般的な権限は次のとおりです。

  • 意思決定の管理/表示
  • 決定の管理/表示
  • オファーの管理
  • ランキング戦略の管理
  • キャンペーンの管理(キャンペーン関連のアーティファクトを移行する場合)
  • データストリームの管理/表示(データストリームを作成する場合)
  • スキーマの管理/表示
NOTE
決定権限を割り当てる方法について詳しくは、この節を参照してください。 権限の完全なリストについて詳しくは、ビルトインの権限ページを参照してください。

ターゲットサンドボックスの準備 target-sandbox-preparation

移行を実行する前に、ターゲットサンドボックスが適切に設定されていることを確認します。

  • 属性 - 必要なプロファイル属性とコンテキスト属性がターゲットサンドボックスに存在することを確認するか、マッピングを準備します。
  • セグメント - 必要なセグメントがターゲットサンドボックスに存在することを確認するか、名前空間と ID を使用してセグメントをマッピングすることを計画します。
  • データセット - 移行に使用するデータセット名(dependency.datasetName)を特定します。
  • データストリーム - 移行でデータストリーム(createDataStream)を作成するかどうかを決定します。

サンドボックス管理について詳しくは、サンドボックスの使用と割り当てを参照してください。

NOTE
ターゲットサンドボックスは、ソースサンドボックスと同じにすることができます。 移行プロセスでは、このシナリオを処理し、オブジェクトが同じサンドボックス内または別のサンドボックスに移行されるかどうかに関係なく、データの整合性を確保します。

API の基本 api-basics

ベース URL base-url

次のベース URLを使用します。

  • 本番: https://decisioning-migration.adobe.io

認証 authentication

すべての API リクエストには、次のヘッダーが必要です。

  • Authorization: Bearer <IMS_ACCESS_TOKEN>
  • x-gw-ims-org-id: <IMS_ORG_ID>
  • Content-Type: application/json

認証の設定手順について詳しくは、Journey Optimizer 認証ガイドを参照してください。

ワークフローモデル workflow-model

各 API 呼び出しは、ワークフローリソースを作成または取得します。 ワークフローは、移行タスクの進行状況と結果を追跡する非同期操作です。

ワークフローには次のプロパティがあります。

  • id - 一意のワークフロー識別子(UUID)
  • status - 現在のワークフローステータス:NewRunningCompletedFailed
  • result - 完了時のワークフロー出力(移行結果と警告を含む)
  • errors - 失敗時の構造化エラーの詳細
  • _links.self - ステータスを取得するためのワークフロー URL

移行ワークフロー migration-workflow

移行プロセスは、依存関係の分析と移行の実行という 2 つの主な手順で構成されます。 移行を成功させるには、次の手順に従います。

手順 1:依存関係を分析 analyze-dependencies

移行前に、依存関係ワークフローを使用して、ターゲットサンドボックスの意思決定管理から決定にマッピングする必要がある項目を特定します。 この分析は、オブジェクト間の関係を理解し、必要なマッピングを準備するのに役立ちます。

依存関係ワークフローの作成 create-dependency-workflow

次の API 呼び出しを使用して、依存関係分析ワークフローを作成します。

API 形式

POST /workflows/generate-dependencies

サンドボックスレベルの依存関係(最初に推奨)

サンドボックスレベルの分析から始めて、すべての依存関係を包括的に把握します。

curl --request POST \
  --url "https://decisioning-migration.adobe.io/workflows/generate-dependencies?request-level=sandbox" \
  --header "Authorization: Bearer <IMS_ACCESS_TOKEN>" \
  --header "x-gw-ims-org-id: <IMS_ORG_ID>" \
  --header "Content-Type: application/json" \
  --data '{
    "imsOrgId": "<IMS_ORG_ID>",
    "sourceSandboxDetails": { "sandboxName": "<SOURCE_SANDBOX_NAME>" },
    "targetSandboxDetails": { "sandboxName": "<TARGET_SANDBOX_NAME>" }
  }'

オファーレベルの依存関係

特定のオファーの依存関係のみを分析するには、クエリ文字列に request-level=offer を含む同じエンドポイントを呼び出し、分析するオファー ID を含む offersList 配列を本文に指定します。

決定レベルの依存関係

特定の決定の依存関係のみを分析するには、クエリ文字列に request-level=decision を使用し、分析する決定 ID を含む decisionsList 配列を本文に指定します。

依存関係ワークフローのステータスの確認 poll-dependency-status

依存関係ワークフローをポーリングして、分析が完了した際に確認します。

API 形式

GET /workflows/generate-dependencies/{id}

リクエスト

curl --request GET \
  --url "https://decisioning-migration.adobe.io/workflows/generate-dependencies/<WORKFLOW_ID>" \
  --header "Authorization: Bearer <IMS_ACCESS_TOKEN>" \
  --header "x-gw-ims-org-id: <IMS_ORG_ID>"

status」フィールドに Completed が表示されると、依存関係の分析の準備は完了です。 ワークフロー出力を使用して、移行依存関係マッピングを作成します。

  • profileAttributes - ソースプロファイル属性をターゲットプロファイル属性にマッピングします
  • contextAttributes - ソースコンテキスト属性をターゲットコンテキスト属性にマッピングします
  • segments - ソースセグメントキーをターゲットセグメント識別子({namespace, id})にマッピングします
  • datasetName - 移行のターゲットデータセット名を指定します

手順 2:移行を実行 execute-migration

依存関係を分析し、マッピングの準備が整ったら、移行を実行できます。

移行ワークフローの作成 create-migration-workflow

手順 1 の依存関係マッピングを使用して、移行を設定および実行します。

API 形式

POST /workflows/migration

サンドボックスレベルの移行

すべての決定オブジェクトをあるサンドボックスから別のサンドボックスに移行するには:

curl --request POST \
  --url 'https://decisioning-migration.adobe.io/workflows/migration?request-level=sandbox' \
  --header 'Authorization: Bearer <IMS_ACCESS_TOKEN>' \
  --header 'Content-Type: application/json' \
  --header 'x-gw-ims-org-id: <IMS_ORG_ID>' \
  --data '{
    "imsOrgId": "<IMS_ORG_ID>",
    "sourceSandboxDetails": { "sandboxName": "<SOURCE_SANDBOX_NAME>" },
    "targetSandboxDetails": { "sandboxName": "<TARGET_SANDBOX_NAME>" },
    "createDataStream": true,
    "dependency": {
      "profileAttributes": {
        "sourceAttr1": "targetAttr1"
      },
      "segments": {
        "sourceSegmentKey1": {
          "namespace": "<TARGET_SEGMENT_NAMESPACE>",
          "id": "<TARGET_SEGMENT_ID>"
        }
      },
      "contextAttributes": {
        "sourceCtx1": "targetCtx1"
      },
      "datasetName": "<TARGET_DATASET_NAME>"
    }
  }'

オファーレベルの移行

特定のオファーのみを移行するには、クエリ文字列に request-level=offer を使用し、offersList 配列を本文に追加します。

"offersList": ["offer-id-1", "offer-id-2"]

決定レベルの移行

特定の決定のみを移行するには、クエリ文字列に request-level=decision を使用し、decisionsList 配列を本文に追加します。

"decisionsList": ["decision-id-1", "decision-id-2"]

移行ステータスの監視 poll-migration-status

移行ワークフローをポーリングして、進行状況を追跡します。

API 形式

GET /workflows/migration/{id}

リクエスト

curl --request GET \
  --url "https://decisioning-migration.adobe.io/workflows/migration/<WORKFLOW_ID>" \
  --header "Authorization: Bearer <IMS_ACCESS_TOKEN>" \
  --header "x-gw-ims-org-id: <IMS_ORG_ID>"

移行結果

status」フィールドに Completed が表示された場合、移行は成功しました。 ワークフロー result には、以下が含まれます。

  • 移行されたオブジェクトのマッピング
  • 移行中に発生した警告

status」フィールドに Failed が表示された場合、errors[] 配列と「result.error」フィールドで、問題の詳細を確認します。

移行の検証 validate-migration

移行が正常に完了したら、すべてのオブジェクトが正しく移行されたことを確認します。

検証チェックリスト validation-checklist

  1. セグメント - 参照されているすべてのセグメントが、マッピングに従ってターゲットサンドボックスで正しく解決されていることを確認します。

  2. 属性 - すべてのプロファイル属性とコンテキスト属性がターゲットサンドボックスに存在し、正しくマッピングされていることを確認します。

  3. 決定オブジェクト - Journey Optimizer ユーザーインターフェイスで移行されたオブジェクトを確認します。

    • オファー(決定項目)
    • 実施要件ルール
    • ランキング式
    • 選択戦略
    • 決定ポリシー
  4. データストリームテスト - データストリームが作成された場合は、Edge Interact API を使用してランタイム配信をテストします。

test-runtime-delivery

移行でデータストリームを作成した場合は、次の例を使用してオファー配信をテストできます。

curl --request POST \
  --url "https://edge.adobedc.net/ee/or2/v1/interact?configId=<DATASTREAM_ID>" \
  --header "Content-Type: application/json" \
  --header "x-request-id: <uuid>" \
  --data '{ "events": [ ... ] }'

移行のロールバック rollback

検証中に問題が発生した場合は、完了した移行をロールバックして、ターゲットサンドボックスを以前の状態に復元できます。

ロールバックワークフローの作成 create-rollback-workflow

元に戻す移行を参照するロールバックワークフローを作成して、ロールバックを開始します。

API 形式

POST /workflows/rollback

リクエスト

curl --request POST \
  --url "https://decisioning-migration.adobe.io/workflows/rollback" \
  --header "Authorization: Bearer <IMS_ACCESS_TOKEN>" \
  --header "x-gw-ims-org-id: <IMS_ORG_ID>" \
  --header "Content-Type: application/json" \
  --data '{ "rollbackWorkflowId": "<MIGRATION_WORKFLOW_ID>" }'

<MIGRATION_WORKFLOW_ID> を、ロールバックする移行ワークフローの ID に置き換えます。

ロールバックステータスの監視 poll-rollback-status

ロールバックワークフローをポーリングして、進行状況を追跡します。

API 形式

GET /workflows/rollback/{rollbackWorkflowId}

リクエスト

curl --request GET \
  --url "https://decisioning-migration.adobe.io/workflows/rollback/<ROLLBACK_WORKFLOW_ID>" \
  --header "Authorization: Bearer <IMS_ACCESS_TOKEN>" \
  --header "x-gw-ims-org-id: <IMS_ORG_ID>"

同時ワークフローの処理 handle-concurrency

Migration API では、組織ごとに一度に 1 つのワークフローのみを実行できます。 別のワークフローが進行中の間に新しいワークフローを作成しようとすると、409 競合​エラー応答(「ワークフローは既に進行中です…」)が受信されます。

この場合、進行中のワークフローが完了するのを待つか、ワークフロー ID を取得してステータスをポーリングします。 現在のワークフローが完了したら、新しいワークフローを作成できます。

エンティティマッピング参照 entity-mapping

意思決定管理から決定に移行する際、エンティティは次のようにマッピングされます。

意思決定管理
決定
オファー
決定項目
オファーコレクション
項目コレクション
実施要件ルール
実施要件ルール
ランキング式
ランキング式
決定
選択戦略 + 決定ポリシー
Campaign
キャンペーン (基本コンテンツのみ)
プレースメント
サーフェス + チャネル設定
タグ
統合タグ
オファー属性
パーソナライズされたオファー項目スキーマの migratedofferattributes フィールド
コンテキスト属性
移行中に指定したデータセットに添付されたスキーマの migratedcontextattributes フィールド

ワークフローのクリーンアップ cleanup

ワークフローの削除は公開されていません。 ワークフローのリソースを削除する必要がある場合は、システム管理者にお問い合わせください。

recommendation-more-help
journey-optimizer-help