計算属性API エンドポイント

IMPORTANT
APIへのアクセスは制限されています。 計算属性APIへのアクセス方法については、Adobe サポートにお問い合わせください。

計算済み属性は、イベントレベルのデータをプロファイルレベルの属性に集計するために使用される関数です。 これらの関数は自動的に計算され、セグメント化、アクティブ化およびパーソナライズ機能で使用できます。 このガイドには、/attributes エンドポイントを使用して基本的なCRUD操作を実行するためのサンプル API呼び出しが含まれています。

計算属性について詳しくは、最初に計算属性の概要を参照してください。

はじめに

このガイドで使用されているAPI エンドポイントは、Real-Time Customer Profile APIの一部です。

続行する前に、推奨ドキュメントへのリンク、このドキュメントに記載されているサンプル API呼び出しの読み取りガイド、Experience Platform APIへの呼び出しを正常に行うために必要な必須ヘッダーに関する重要な情報については、Profile API入門ガイド ​を確認してください。

さらに、次のサービスのドキュメントを確認してください。

計算属性のリストの取得 list

組織のすべての計算属性のリストを取得するには、/attributes エンドポイントにGET リクエストを実行します。

API 形式

/attributes エンドポイントは、結果を絞り込むのに役立つ、複数のクエリパラメーターをサポートしています。 これらのパラメーターはオプションですが、リソースのリスト時にコストのかかるオーバーヘッドを減らすために、使用を強くお勧めします。 パラメーターを指定せずにこのエンドポイントを呼び出すと、組織で使用可能なすべての計算属性が取得されます。 複数のパラメーターを使用する場合は、アンパサンド(&)で区切ります。

GET /attributes
GET /attributes?{QUERY_PARAMETERS}

計算属性のリストを取得する際には、次のクエリパラメーターを使用できます。

クエリパラメーター
説明
limit
応答の一部として返されるアイテムの最大数を指定するパラメーター。 このパラメーターの最小値は1で、最大値は40です。 このパラメーターが含まれていない場合、デフォルトでは20個の項目が返されます。
limit=20
offset
アイテムを返す前にスキップするアイテムの数を指定するパラメーター。
offset=5
sortBy
返されるアイテムを並べ替える順序を指定するパラメーター。 利用できるオプションには、namestatusupdateEpochおよびcreateEpochが含まれます。 並べ替えオプションの前に-を含めないか含めないことで、昇順または降順で並べ替えるかどうかを選択することもできます。 デフォルトでは、項目はupdateEpochで降順に並べ替えられます。
sortBy=name
property

様々な計算属性フィールドでフィルタリングできるパラメーター。 サポートされているプロパティには、namecreateEpochmergeFunction.valueupdateEpochおよびstatusが含まれます。 サポートされる操作は、リストされているプロパティによって異なります。

  • name: EQUAL (=)、NOT_EQUAL (!=)、CONTAINS (=contains ())、NOT_CONTAINS (=!contains ())
  • createEpoch: GREATER_THAN_OR_EQUALS (<=), LESS_THAN_OR_EQUALS (>=)
  • mergeFunction.value: EQUAL (=)、NOT_EQUAL (!=)、CONTAINS (=contains ())、NOT_CONTAINS (=!contains ())
  • updateEpoch: GREATER_THAN_OR_EQUALS (<=), LESS_THAN_OR_EQUALS (>=)
  • status: EQUAL (=)、NOT_EQUAL (!=)、CONTAINS (=contains ())、NOT_CONTAINS (=!contains ())
property=updateEpoch>=1683669114845
property=name!=testingrelease
property=status=contains(new,processing,disabled)

リクエスト

次のリクエストは、組織内で更新された最後の3つの計算属性を取得します。

計算属性のリストを取得するためのサンプルリクエスト。
code language-shell
curl -X GET https://platform.adobe.io/data/core/ca/attributes?limit=3 \
 -H 'Authorization: Bearer {ACCESS_TOKEN}' \
 -H 'x-gw-ims-org-id: {ORG_ID}' \
 -H 'x-api-key: {API_KEY}' \
 -H 'x-sandbox-name: {SANDBOX_NAME}'

応答

応答が成功すると、HTTP ステータス 200が返され、組織とサンドボックスに属する最後に更新された3つの計算属性のリストが表示されます。

計算属性のリストを取得するためのサンプル応答。
code language-json
{
    "_links": {
        "last": {
            "href": "/attributes?offset=3&limit=1"
        },
        "next": {
            "href": "/attributes?offset=20&limit=20"
        },
        "prev": {
            "href": "/attributes?offset=0&limit=20"
        },
        "self": {
            "href": "/attributes?offset=0&limit=20"
        }
    },
    "computedAttributes": [
        {
            "id": "2e3bf98c-5840-4eb5-98c9-fcd7bde82188",
            "type": "ComputedAttribute",
            "name": "multipleFilterClauses19",
            "displayName": "Multiple Filter Clauses 19",
            "description": "Multiple Filter Clauses 19",
            "imsOrgId": "{ORG_ID}",
            "sandbox": {
                "sandboxId": "e4f64b40-d8d9-11e9-a7ce-f3356ed0508b",
                "sandboxName": "prod",
                "type": "production",
                "default": true
            },
            "path": "{TENANT_ID}/ComputedAttributes",
            "keepCurrent": false,
            "expression": {
                "type": "PQL",
                "format": "pql/text",
                "value": "xEvent[(commerce.checkouts.value > 0.0 or commerce.purchases.value > 1.0 or commerce.order.priceTotal >= 10.0)",
            },
            "mergeFunction": {
                "value": "SUM"
            },
            "status": "DRAFT",
            "schema": {
                "name": "_xdm.context.profile"
            },
            "duration": {
                "count": 7,
                "unit": "DAYS"
            },
            "lastEvaluationTs": "",
            "createEpoch": 1671223530322,
            "updateEpoch": 1673043640946,
            "createdBy": "{USER_ID}"
        },
        {
            "id": "d9fbbd3d-049a-4561-b826-adc162511950",
            "type": "ComputedAttribute",
            "name": "multipleFilterClauses20",
            "displayName": "Multiple Filter Clauses 20",
            "description": "Multiple Filter Clauses 20",
            "imsOrgId": "{ORG_ID}",
            "sandbox": {
                "sandboxId": "e4f64b40-d8d9-11e9-a7ce-f3356ed0508b",
                "sandboxName": "prod",
                "type": "production",
                "default": true
            },
            "path": "{TENANT_ID}/ComputedAttributes",
            "keepCurrent": true,
            "expression": {
                "type": "PQL",
                "format": "pql/text",
                "value": "xEvent[eventType.equals(\"commerce.backofficeOrderPlaced\", false)].topN(timestamp, 1).map({\"timestamp\": timestamp, \"value\": producedBy}).head()"
            },
            "mergeFunction": {
                "value": "MOST_RECENT"
            },
            "status": "DRAFT",
            "schema": {
                "name": "_xdm.context.profile"
            },
            "duration": {
                "count": 7,
                "unit": "DAYS"
            },
            "lastEvaluationTs": "",
            "createEpoch": 1671223586455,
            "updateEpoch": 1671223586455,
            "createdBy": "{USER_ID}"
        },
        {
            "id": "afedff07-9d15-4385-b181-49708229d73b",
            "type": "ComputedAttribute",
            "name": "multipleFilterClauses18",
            "displayName": "Multiple Filter Clauses 18",
            "description": "Multiple Filter Clauses 18",
            "imsOrgId": "{ORG_ID}",
            "sandbox": {
                "sandboxId": "e4f64b40-d8d9-11e9-a7ce-f3356ed0508b",
                "sandboxName": "prod",
                "type": "production",
                "default": true
            },
            "path": "{TENANT_ID}/ComputedAttributes",
            "expression": {
                "type": "PQL",
                "format": "pql/text",
                "value": "xEvent[(commerce.checkouts.value > 0.0 or commerce.purchases.value > 1.0 or commerce.order.priceTotal >= 10.0)",
            },
            "mergeFunction": {
                "value": "SUM"
            },
            "status": "PROCESSED",
            "schema": {
                "name": "_xdm.context.profile"
            },
            "duration": {
                "count": 7,
                "unit": "DAYS"
            },
            "lastEvaluationTs": "2023-08-27T00:14:55.028",
            "createEpoch": 1671220358902,
            "updateEpoch": 1671220358902,
            "createdBy": "{USER_ID}"
        }
    ],
    "_page": {
        "offset": 0,
        "limit": 20,
        "count": 3,
        "totalCount": 3
    }
}
table 0-row-2 1-row-2 2-row-2 3-row-2
プロパティ 説明
_links 結果の最後のページ、結果の次のページ、結果の前のページ、または結果の現在のページにアクセスするために必要なページネーション情報を含むオブジェクト。
computedAttributes クエリパラメーターに基づいて計算属性を含む配列。 計算属性配列の詳細については、特定の計算属性の取得を参照してください。
_page 返される結果に関するメタデータを含むオブジェクト。 これには、現在のオフセット、返される計算属性の数、計算属性の合計数、返される計算属性の制限に関する情報が含まれます。

計算属性の作成 create

計算属性を作成するには、まず、作成する計算属性の詳細を含むリクエスト本文を使用して、/attributes エンドポイントにPOST リクエストを行います。

API 形式

POST /attributes

リクエスト

新しい計算属性を作成するためのサンプルリクエスト。
code language-shell
curl -X POST https://platform.adobe.io/data/core/ca/attributes \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: {API_KEY}'\
  -H 'x-gw-ims-org-id: {ORG_ID}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}' \
  -d '{
        "name": "testing",
        "displayName": "Sample Display Name",
        "description": "Sample Description",
        "expression": {
            "type": "PQL",
            "format": "pql/text",
            "value": "xEvent[(commerce.checkouts.value > 0.0 or commerce.purchases.value > 1.0 or commerce.order.priceTotal >= 10.0)].sum(commerce.order.priceTotal)"
        },
        "keepCurrent": false,
        "duration": {
            "count": 4,
            "unit": "DAYS"
        },
        "status": "DRAFT"
      }'
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 7-row-2 8-row-2 9-row-2 10-row-2 11-row-2 12-row-2
プロパティ 説明
name 計算属性フィールドの名前を文字列として指定します。 計算属性の名前は、スペースやアンダースコアを含まない英数字のみで構成できます。 この値​ は、すべての計算属性の中で一意である必要があります。 ​ベストプラクティスとして、この名前はdisplayNameのcamelCase バージョンである必要があります。
description 計算済み属性の説明。 これは、複数の計算属性が定義されている場合に特に便利です。組織内の他のユーザーが使用する正しい計算属性を決定するのに役立ちます。
displayName 計算属性の表示名。 これは、Adobe Experience Platform UI内で計算属性を一覧表示する際に表示される名前です。
expression 作成しようとしている計算属性のクエリ式を表すオブジェクト。
expression.type 式の種類。 現在サポートされているのはPQLのみです。
expression.format 式の形式。 現在は、pql/text のみがサポートされています。
expression.value 式の値。
keepCurrent 高速更新を使用して、計算属性の値を最新の状態に保つかどうかを決定するブール値。 現在、この値はfalseに設定する必要があります。
duration 計算属性のルックバック期間を表すオブジェクト。 ルックバック期間は、計算された属性を計算するためにルックバックできる距離を表します。
duration.count

ルックバック期間の期間を表す数値。 指定できる値は、duration.unit フィールドの値によって異なります。

  • HOURS: 1-24
  • DAYS: 1-7
  • WEEKS: 1-4
  • MONTHS: 1-6
duration.unit ルックバック期間に使用される時間の単位を表す文字列。 指定できる値はHOURSDAYSWEEKSMONTHSです。
status 計算属性のステータス。 指定できる値はDRAFTNEWです。

応答

応答が成功すると、HTTP ステータス 200が、新しく作成された計算属性に関する情報とともに返されます。

新しい計算属性を作成する際の応答のサンプル。
code language-json
{
    "id": "1e8d0d77-b2bb-4b17-bbe6-2dbc08c1a631",
    "type": "ComputedAttribute",
    "name": "testing",
    "displayName": "Sample Display Name",
    "description": "Sample Description",
    "imsOrgId": "{ORG_ID}",
    "sandbox": {
        "sandboxId": "02dd69f0-da73-11e9-9ea1-af59ce7c24e8",
        "sandboxName": "prod",
        "type": "production",
        "isDefault": true
    },
    "path": "{TENANT_ID}/ComputedAttributes",
    "keepCurrent": false,
    "expression": {
        "type": "PQL",
        "format": "pql/text",
        "value": "xEvent[(commerce.checkouts.value > 0.0 or commerce.purchases.value > 1.0 or commerce.order.priceTotal >= 10.0)].sum(commerce.order.priceTotal)"
    },
    "mergeFunction": {
        "value": "SUM"
    },
    "status": "DRAFT",
    "schema": {
        "name": "_xdm.context.profile"
    },
    "lastEvaluationTs": "",
    "createEpoch": 1680070188696,
    "updateEpoch": 1680070188696,
    "createdBy": "{USER_ID}"
}
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2
プロパティ 説明
id 新しく作成された計算属性のシステム生成ID。
status 計算属性のステータス。 DRAFTまたはNEWを指定できます。
createEpoch 計算属性が作成された時間(秒単位)。
updateEpoch 計算属性が最後に更新された時間(秒単位)。
createdBy 計算属性を作成したユーザーのID。

特定の計算属性の取得 get

特定の計算属性に関する詳細な情報を取得するには、/attributes エンドポイントにGET リクエストを実行し、取得する計算属性のIDをリクエストパスに指定します。

API 形式

GET /attributes/{ATTRIBUTE_ID}

リクエスト

特定の計算属性を取得するためのサンプルリクエスト。
code language-shell
curl -X GET 'https://platform.adobe.io/data/core/ca/attributes/1e8d0d77-b2bb-4b17-bbe6-2dbc08c1a631' \
 -H 'Authorization: Bearer {ACCESS_TOKEN}' \
 -H 'x-gw-ims-org-id: {ORG_ID}' \
 -H 'x-api-key: {API_KEY}' \
 -H 'x-sandbox-name: {SANDBOX_NAME}'

応答

応答が成功すると、指定された計算属性に関する詳細情報を含むHTTP ステータス 200が返されます。

特定の計算属性を取得する際の応答のサンプル。
code language-json
{
    "id": "1e8d0d77-b2bb-4b17-bbe6-2dbc08c1a631",
    "type": "ComputedAttribute",
    "name": "testing",
    "displayName": "Sample Display Name",
    "description": "Sample Description",
    "imsOrgId": "{ORG_ID}",
    "sandbox": {
        "sandboxId": "02dd69f0-da73-11e9-9ea1-af59ce7c24e8",
        "sandboxName": "prod",
        "type": "production",
        "isDefault": true
    },
    "path": "{TENANT_ID}/ComputedAttributes",
    "keepCurrent": false,
    "expression": {
        "type": "PQL",
        "format": "pql/text",
        "value": "xEvent[(commerce.checkouts.value > 0.0 or commerce.purchases.value > 1.0 or commerce.order.priceTotal >= 10.0) and (timestamp occurs <= 7 days before now)].sum(commerce.order.priceTotal)"
    },
    "mergeFunction": {
        "value": "SUM"
    },
    "status": "DRAFT",
    "schema": {
        "name": "_xdm.context.profile"
    },
    "lastEvaluationTs": "",
    "createEpoch": 1680070188696,
    "updateEpoch": 1680070188696,
    "createdBy": "{USER_ID}"
}
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 7-row-2 8-row-2 9-row-2 10-row-2 11-row-2 12-row-2 13-row-2 14-row-2 15-row-2 16-row-2 17-row-2
プロパティ 説明
id 他の API 操作中に計算済み属性を参照するために使用できる、システムで生成された一意の読み取り専用 ID が含まれます。
type 返されるオブジェクトが計算属性であることを示す文字列。
name 計算属性の名前。
displayName 計算属性の表示名。 これは、Adobe Experience Platform UI内で計算属性を一覧表示する際に表示される名前です。
description 計算済み属性の説明。 これは、複数の計算属性が定義されている場合に特に便利です。組織内の他のユーザーが使用する正しい計算属性を決定するのに役立ちます。
imsOrgId 計算属性が属する組織のID。
sandbox サンドボックスオブジェクトには、計算済み属性が設定されたサンドボックスの詳細が含まれます。 この情報は、リクエストで送信されるサンドボックスヘッダーから取得されます。 詳しくは、サンドボックスの概要を参照してください。
path 計算属性へのpath
keepCurrent 高速更新を使用して、計算属性の値を最新の状態に保つかどうかを決定するブール値。
expression 計算属性の式を含むオブジェクト。
mergeFunction 計算属性の結合関数を含むオブジェクト。 この値は、計算属性の式内の対応する集計パラメーターに基づいています。 指定できる値は、SUMMINMAXMOST_RECENTです。
status 計算属性のステータス。 これは、DRAFTNEWINITIALIZINGPROCESSINGPROCESSEDFAILED、またはDISABLEDのいずれかの値です。
schema 式が評価されるスキーマに関する情報を含むオブジェクト。 現在は、_xdm.context.profile のみがサポートされています。
lastEvaluationTs 計算属性が最後に評価された日時を表すタイムスタンプ。
createEpoch 計算属性が作成された時間(秒単位)。
updateEpoch 計算属性が最後に更新された時間(秒単位)。
createdBy 計算属性を作成したユーザーのID。

特定の計算属性の削除 delete

特定の計算属性を削除するには、/attributes エンドポイントに対してDELETE リクエストを行い、削除する計算属性のIDをリクエストパスに指定します。

IMPORTANT
削除要求は、ステータスが​draftDRAFT)の計算属性の削除にのみ使用できます。 このエンドポイント は、他の状態で計算属性を削除するために使用することはできません

API 形式

DELETE /attributes/{ATTRIBUTE_ID}
パラメーター
説明
{ATTRIBUTE_ID}
削除する計算属性のid値。

リクエスト

計算属性を削除するためのサンプルリクエスト。
code language-shell
curl -X DELETE https://platform.adobe.io/data/core/ca/attributes/1e8d0d77-b2bb-4b17-bbe6-2dbc08c1a631 \
 -H 'Authorization: Bearer {ACCESS_TOKEN}' \
 -H 'x-gw-ims-org-id: {ORG_ID}' \
 -H 'x-api-key: {API_KEY}' \
 -H 'x-sandbox-name: {SANDBOX_NAME}'

応答

応答が成功すると、HTTP ステータス 202が、削除された計算属性の詳細とともに返されます。

計算属性を削除する際の応答のサンプル。
code language-json
{
    "id": "03ae581b-5f7b-48da-a9eb-4ef0daf4bc3c",
    "type": "ComputedAttribute",
    "name": "testdemopd2",
    "displayName": "testdemopd2",
    "description": "testdemopd2",
    "imsOrgId": "{ORG_ID}",
    "sandbox": {
        "sandboxId": "02dd69f0-da73-11e9-9ea1-af59ce7c24e8",
        "sandboxName": "prod",
        "type": "production",
        "isDefault": true
    },
    "path": "{TENANT_ID}/ComputedAttributes",
    "keepCurrent": false,
    "expression": {
        "type": "PQL",
        "format": "pql/text",
        "value": "xEvent[(commerce.shipping.shipDate occurs <= 1 days before now) and (timestamp occurs <= 1 days before now)].min(commerce.shipping.shipDate)"
    },
    "mergeFunction": {
        "value": "MIN"
    },
    "status": "DRAFT",
    "schema": {
        "name": "_xdm.context.profile"
    },
    "lastEvaluationTs": "",
    "createEpoch": 1681365690928,
    "updateEpoch": 1681365690928,
    "createdBy": "{USER_ID}"
}

特定の計算属性の更新

特定の計算属性を更新するには、/attributes エンドポイントに対してPATCH リクエストを行い、更新する計算属性のIDをリクエストパスに指定します。

IMPORTANT
計算属性を更新する場合は、次のフィールドのみを更新できます。
  • 現在のステータスがNEWの場合、ステータスはDISABLEDにのみ変更できます。
  • 現在のステータスがDRAFTの場合、次のフィールドの値を変更できます:namedescriptionkeepCurrentexpression、およびduration。 ステータスをDRAFTからNEWに変更することもできます。 mergeFunctionpathなどのシステム生成フィールドに対する変更は、エラーを返します。
  • 現在のステータスがPROCESSINGまたはPROCESSEDの場合、ステータスはDISABLEDにのみ変更できます。

API 形式

PATCH /attributes/{ATTRIBUTE_ID}
パラメーター
説明
{ATTRIBUTE_ID}
更新する計算属性のid値。

リクエスト

次のリクエストは、計算属性のステータスをDRAFTからNEWに更新します。

計算属性を更新するためのサンプルリクエスト。
code language-shell
curl -X PATCH https://platform.adobe.io/data/core/ca/attributes/1e8d0d77-b2bb-4b17-bbe6-2dbc08c1a631 \
 -H 'Authorization: Bearer {ACCESS_TOKEN}' \
 -H 'Content-Type: application/json' \
 -H 'x-gw-ims-org-id: {ORG_ID}' \
 -H 'x-api-key: {API_KEY}' \
 -H 'x-sandbox-name: {SANDBOX_NAME}' \
 -d '
 {
    "description": "Sample Description",
    "expression": {
        "type": "PQL",
        "format": "pql/text",
        "value": "xEvent[(commerce.checkouts.value > 0.0 or commerce.purchases.value > 1.0 or commerce.order.priceTotal >= 10.0) and (timestamp occurs <= 7 days before now)].sum(commerce.order.priceTotal)"
    },
    "status": "NEW"
 }'

応答

応答が成功すると、HTTP ステータス 200が、新しく更新された計算属性に関する情報とともに返されます。

計算属性を更新する際のサンプル応答。
code language-json
{
    "id": "1e8d0d77-b2bb-4b17-bbe6-2dbc08c1a631",
    "type": "ComputedAttribute",
    "name": "testing123",
    "displayName": "Sample Display Name",
    "description": "Sample Description",
    "imsOrgId": "{ORG_ID}",
    "sandbox": {
        "sandboxId": "02dd69f0-da73-11e9-9ea1-af59ce7c24e8",
        "sandboxName": "prod",
        "type": "production",
        "isDefault": true
    },
    "path": "{TENANT_ID}/ComputedAttributes",
    "keepCurrent": false,
    "expression": {
        "type": "PQL",
        "format": "pql/text",
        "value": "xEvent[(commerce.checkouts.value > 0.0 or commerce.purchases.value > 1.0 or commerce.order.priceTotal >= 10.0) and (timestamp occurs <= 7 days before now)].sum(commerce.order.priceTotal)"
    },
    "mergeFunction": {
        "value": "SUM"
    },
    "status": "NEW",
    "schema": {
        "name": "_xdm.context.profile"
    },
    "lastEvaluationTs": "",
    "createEpoch": 1680071726825,
    "updateEpoch": 1680074429192,
    "createdBy": "{USER_ID}"
}

次の手順

計算属性の基本を理解したところで、計算属性の定義を開始します。 Experience Platform UIで計算属性を使用する方法については、計算属性UI ガイド ​を参照してください。

recommendation-more-help
experience-platform-help-profile