カスタムアクションパラメーターへのコレクションの受け渡し passing-collection

実行時に値が動的に入力されるコレクションをカスタムアクションパラメーターに渡すことができます。

次の 2 つのタイプのコレクションがサポートされています。

  • シンプルなコレクション

    文字列、数値、ブール値などの基本的な値のリストには、シンプルなコレクションを使用します。 これらは、追加のプロパティなしで項目のリストのみを渡す必要がある場合に役立ちます。

    例えば、デバイスタイプのリストは次のようになります。

    code language-json
    {
     "deviceTypes": [
         "android",
         "ios"
     ]
    }
    
  • オブジェクトコレクション

    各項目に複数のフィールドやプロパティが含まれている場合は、オブジェクトコレクションを使用します。これらは通常、製品の詳細、イベントレコード、項目属性などの構造化データを渡すために使用されます。

    例:

    code language-json
    {
    "products":[
       {
          "id":"productA",
          "name":"A",
          "price":20.1
       },
       {
          "id":"productB",
          "name":"B",
          "price":10.0
       },
       {
          "id":"productC",
          "name":"C",
          "price":5.99
       }
     ]
    }
    
NOTE
コレクション内のネストされた配列は、カスタムアクションリクエストペイロードでは部分的にのみサポートされます。詳しくは、制限事項を参照してください。

一般的な手順 general-procedure

この節では、次の JSON ペイロードの例を使用します。これは、単純なコレクションのフィールドを持つオブジェクトの配列です。

{
  "ctxt": {
    "products": [
      {
        "id": "productA",
        "name": "A",
        "price": 20.1,
        "color":"blue",
        "locations": [
          "Paris",
          "London"
        ]
      },
      {
        "id": "productB",
        "name": "B",
        "price": 10.99
      }
    ]
  }
}

products は 2 つのオブジェクトの配列であることがわかります。少なくとも 1 つのオブジェクトが必要です。

  1. カスタムアクションを作成します。詳しくは、このページを参照してください。

  2. アクションパラメーター」セクションに、JSON の例を貼り付けます。表示される構造は静的です。ペイロードを貼り付けたときに、すべてのフィールドが定数として定義されます。

    コレクション関数と操作を表示する式エディター

  3. 必要に応じて、フィールドタイプを調整します。コレクションでは、listString、listInteger、listDecimal、listBoolean、listDateTime、listDateTimeOnly、listDateOnly、listObject の各フィールドタイプがサポートされています。

    note note
    NOTE
    フィールドタイプは、ペイロードの例に従って自動的に推測されます。
  4. オブジェクトを動的に渡す場合は、変数として設定する必要があります。この例では、products を変数として設定します。オブジェクトに含まれているすべてのオブジェクトフィールドは、変数に自動的に設定されます。

    note note
    NOTE
    サンプルペイロードの最初のオブジェクトは、フィールドの定義に使用されます。
  5. フィールドごとに、ジャーニーキャンバスに表示されるラベルを定義します。

    ​ 条件ビルダーインターフェイスを使用したフィルターコレクション関数 ​ {width="70%"}

  6. ジャーニーを作成し、作成したカスタムアクションを追加します。詳しくは、このページを参照してください。

  7. アクションパラメーター」セクションで、高度な式エディターを使用して配列パラメーター(この例では products)を定義します。

    フィールド選択時のコレクションフィルター式

  8. 次のオブジェクトフィールドごとに、ソース XDM スキーマ内の対応するフィールド名を入力します。名前が同じ場合は、この操作は不要です。この例では、product id と「color」のみを定義する必要があります。

    ​ 順序設定を使用したコレクション並べ替え関数 ​ {width="50%"}

配列フィールドの場合は、高度な式エディターを使用してデータ操作を実行することもできます。次の例では、filter 関数と intersect 関数を使用しています。

フィルター、並べ替え、制限の操作を含むコレクション式の完了

制限事項 limitations

カスタムアクションのコレクションは動的データを渡すための柔軟性を提供しますが、注意すべき特定の構造上の制約があります。

  • カスタムアクションでのネストされた配列のサポート

    Adobe Journey Optimizer は、カスタムアクション​ 応答ペイロード ​内のオブジェクトのネストされた配列をサポートしていますが、このサポートは​ リクエストペイロード ​に制限されています。

    リクエストペイロードでは、ネストされた配列は、カスタムアクション設定で定義されているように、固定数の項目が含まれている場合にのみサポートされます。例えば、ネストされた配列に常に 3 つの項目が含まれる場合は、定数として設定できます。項目の数を動的にする必要がある場合、ネストされていない配列(下部レベルの配列)のみを変数として定義できます。

    例:

    1. 次の例は、サポートされていないユースケース​を示しています。

      この例では、products 配列に、動的な項目数を持つネストされた配列(locations)が含まれていますが、これはリクエストペイロードではサポートされていません。

      code language-json
      {
      "products": [
         {
            "id": "productA",
            "name": "A",
            "price": 20,
            "locations": [
            { "name": "Paris" },
            { "name": "London" }
            ]
         }
      ]
      }
      
    2. 定数として定義された固定項目でサポートされる例。

      この場合、ネストされた場所は固定フィールド(location1location2)に置き換えられ、サポートされる設定内でペイロードを有効なままにすることができます。

      code language-json
      {
      "products": [
         {
            "id": "productA",
            "name": "A",
            "price": 20,
            "location1": { "name": "Paris" },
            "location2": { "name": "London" }
         }
      ]
      }
      
  • コレクションのテスト:テストモードを使用してコレクションをテストするには、コードビューモードを使用する必要があります。コードビューモードはビジネスイベントではサポートされていないので、その場合は 1 つの要素を含むコレクションのみを送信できます。

特殊な例 examples

異種混在タイプと配列の配列の場合、配列は listAny タイプで定義されます。個々の項目のみをマッピングできますが、配列を変数に変更することはできません。

​ データ・タイプとフィールド選択が混在する異機種混在コレクション ​ {width="70%"}

異種混在タイプの例:

{
    "data_mixed-types": [
        "test",
        "test2",
        null,
        0
    ]
}

配列の配列の例:

{
    "data_multiple-arrays": [
        [
            "test",
            "test1",
            "test2"
        ]
    ]
}

その他のリソース

カスタムアクションの設定、使用、トラブルシューティングについて詳しくは、以下の節を参照してください。

recommendation-more-help
b22c9c5d-9208-48f4-b874-1cefb8df4d76