{ "openapi": "3.1.0", "info": { "title": "Recommendations API Reference", "description": "Recommendations API are based on [REST](https://en.wikipedia.org/wiki/Representational_state_transfer). This describes the\nresources that make up the official Adobe Target Recommendations API. The resources are designated by nouns or objects in the\nworld of Recommendations like a feed or a design. The functionalities or operations on resources are designated by HTTP\nmethods in each resource request.\n\n# Getting Started\nA Recommendations API request looks like this:\n```\ncurl -X POST \\\nhttps://mc.adobe.io/{{tenantId}}/target/recs/collections \\\n-H 'Accept: application/vnd.adobe.target.v1+json' \\\n-H 'Authorization: Bearer {{bearerToken}}' \\\n-H 'Content-Type: application/vnd.adobe.target.v1+json' \\\n-H 'X-Api-Key: {{xApiKey}}' \\\n-d '{\n \"name\": \"Backpacking Tents\",\n \"rules\": [\n {\n \"id\": {\n \"contains\": [\n \"backpacking\"\n ]\n }\n }\n ]\n}'\n```\nThe `tenantId` is your Adobe Experience Cloud tenant ID. It is present as a subdomain of your Experience Cloud URL.\nFor example, if your Experience Cloud URL is _piedpiper.experiencecloud.adobe.com_ or _piedpiper.marketing.adobe.com_, the\ntenant ID is _piedpiper_.\n\n`bearerToken` and `xApiKey` are security token variables explained below in Authentication.\n\n## Limitations\n- These APIs do not allow you to interact with resources created in the Recommendations Classic.\n- Resources can not be deleted until they are no longer referenced by any other resources. For example, a criteria cannot be\n deleted if its being used in a recommendation activity. It can only be deleted if its removed from from wherever it is used.\n- This documentation does not include following APIs:\n - Entity Recommendation Download (legacy): To download CSV containing entity recommendations.\n - Custom Algorithm Upload (legacy): To upload custom algorithm feed through POST request.\n - Exclusions\n - Feeds\n\n # Postman\n All Recommendations API requests are available in a Postman collection. Click the \"Run in Postman\" button to download the\n collection as a JSON file, then import it in Postman. Note this collection references a Postman environment, which is\n available from the [Adobe I/O console integration page](https://console.adobe.io/integrations) for your specific\n integration.\n\n [![Run in Postman](https://run.pstmn.io/button.svg)](http://developers.adobetarget.com/api/recommendations/Recommendations.postman_collection.json)\n", "termsOfService": "https://www.adobe.com/legal/terms.html", "contact": { "name": "Support", "email": "customercare@adobe.com" }, "version": "latest" }, "servers": [ { "url": "https://mc.adobe.io/{tenantId}/target/recs", "description": "Adobe I/O gateway", "variables": { "tenantId": { "default": "demo", "description": "Tenant ID" } } } ], "security": [ { "BearerToken": [] }, { "ApiKey": [] } ], "tags": [ { "name": "Collections", "description": "A collection is a set of items that are eligible for a recommendation. It is defined by a set of membership rules. If an\nitem satisfies these rules, it is a member of the collection.\n", "externalDocs": { "description": "More info.", "url": "https://experienceleague.adobe.com/docs/target/using/recommendations/entities/collections.html" } }, { "name": "Criteria", "description": "Criteria are rules that determine which items to recommend based on a predetermined set of visitor behaviors. Criteria are\ncategorized into different groups depending on the recommendation key and recommendation logic. These groups are: category,\nitem, recent, popularity, profile attribute, custom.\n", "externalDocs": { "description": "More info.", "url": "https://experienceleague.adobe.com/docs/target/using/recommendations/criteria/algorithms.html" } }, { "name": "Cart Criteria", "description": "Cart Criteria are criteria based on visitor's activity on multiple items. The recommendation keys are supplied through\nmbox parameter `cartIds` in comma-separated values. Only the first 10 values are considered.\n", "externalDocs": { "description": "More info.", "url": "https://experienceleague.adobe.com/docs/target/using/recommendations/criteria/algorithms.html" } }, { "name": "Category Criteria", "description": "Category Criteria are criteria based on item category. The recommendation\nkey is currently viewed item category or visitor favorite category.\n", "externalDocs": { "description": "More info.", "url": "https://experienceleague.adobe.com/docs/target/using/recommendations/criteria/algorithms.html" } }, { "name": "Custom Criteria", "description": "Custom Criteria are criteria based on user-defined custom recommendations. You upload a CSV containing item keys and their\ncorresponding list of recommendations. These recommendations, after applying configuration rules and settings, if any, will\nbe delivered to your page. The item keys in your CSV should map to items or categories in the catalog. The recommendation\nkey of this criteria can be any item based, category based key or profile attribute key depending on the item keys in the\nCSV. The CSV upload is carried out through a feed as part of configuration to create a custom criteria. Note, an item key\nrefers to the key in the CSV feed whereas a recommendation key refers to how the item key will be treated, that is, it can\nbe treated as ID of currently viewed item or visitor's favorite category.\n", "externalDocs": { "description": "More info.", "url": "https://experienceleague.adobe.com/docs/target/using/recommendations/criteria/recommendations-csv.html" } }, { "name": "Item Criteria", "description": "Item Criteria are criteria based on visitor's activity on item. The recommendation key is currently viewed item, last viewed\nitem, most viewed item or last purchased item. Note that this does not include recently viewed item, check Recent Criteria\nAPIs for that.\n", "externalDocs": { "description": "More info.", "url": "https://experienceleague.adobe.com/docs/target/using/recommendations/criteria/algorithms.html" } }, { "name": "Popularity Criteria", "description": "Popularity Criteria are criteria that generate popular items as recommendations. The recommendation key is top sellers, most\nviewed items or Analytics product report metric.\n", "externalDocs": { "description": "More info.", "url": "https://experienceleague.adobe.com/docs/target/using/recommendations/criteria/algorithms.html" } }, { "name": "Profile Attribute Criteria", "description": "Profile Attribute Criteria are criteria where recommendation is determined by an item that is stored in visitor's profile using either `user.*` or `profile.*` attributes. The profile attribute contains the item ID on which the recommendations are based.", "externalDocs": { "description": "More info.", "url": "https://experienceleague.adobe.com/docs/target/using/recommendations/criteria/algorithms.html" } }, { "name": "Recent Criteria", "description": "Recent Criteria are criteria based on recently viewed items.", "externalDocs": { "description": "More info.", "url": "https://experienceleague.adobe.com/docs/target/using/recommendations/criteria/algorithms.html" } }, { "name": "Sequence Criteria", "description": "A Sequence Criteria is a combination of multiple criteria. Such sequence of up to five criteria can be used to exercise\ngreater control of recommendations. By using a criteria sequence, you can provide additional targeted recommendations,\ninstead of using more generic backup recommendations, when a criteria doesn't return enough results to fill your design.\n", "externalDocs": { "description": "More info.", "url": "https://experienceleague.adobe.com/docs/target/using/recommendations/criteria/create-criteria-sequence.html" } }, { "name": "User History Criteria", "description": "User History Criteria are criteria based on visitor's browsing, viewing or purchasing history. It is generally\nreferred to as \"Recommended for You\".\n", "externalDocs": { "description": "More info.", "url": "https://experienceleague.adobe.com/docs/target/using/recommendations/criteria/algorithms.html" } }, { "name": "Designs", "description": "A design is a script that is used to determine how your recommendations look. You can create customized designs to provide\nthe appearance you desire. The script can be HTML or non-HTML; non-HTML for non-web environments where click-tracking is not\npossible. Recommendation designs use Apache Velocity, so the script should make use of\n[Velocity Template Language](http://velocity.apache.org/engine/1.7/vtl-reference.html).\n", "externalDocs": { "description": "More info.", "url": "https://experienceleague.adobe.com/docs/target/using/recommendations/recommendations-design/design-overview.html" } }, { "name": "Entities", "description": "Entities refer to the items you want to recommend. Entities can be anything such as products, content (such as articles,\nslide shows, images, movies, and TV shows), job listings, restaurants, and so forths\n", "externalDocs": { "description": "More info.", "url": "https://experienceleague.adobe.com/docs/target/using/recommendations/entities/products.html" } }, { "name": "Promotions", "description": "Promotion is a special type of criteria that includes promoted items in your recommendation design. Item recommendation by\npromotions use available slots in the design and take precedence over criteria results and backup recommendations.\n", "externalDocs": { "description": "More info.", "url": "https://experienceleague.adobe.com/docs/target/using/recommendations/recommendations-activity/adding-promotions.html" } } ], "externalDocs": { "description": "Product documentation", "url": "https://experienceleague.adobe.com/docs/target/using/recommendations/recommendations.html" }, "paths": { "/collections": { "get": { "tags": [ "Collections" ], "summary": "List collections", "description": "Gets all available collections.", "operationId": "getCollections", "parameters": [ { "name": "offset", "in": "query", "description": "Number of resources to skip from start in the server list. If not specified, the response list will start from first available resource.", "required": false, "schema": { "type": "integer", "format": "int32", "description": "Number of resources skipped from start in the server list and omitted in response." } }, { "name": "limit", "in": "query", "description": "Number of resources to request. If not specified, the response will include all available resources.", "required": false, "schema": { "type": "integer", "format": "int32", "description": "Number of resources shown in the response." } } ], "responses": { "200": { "description": "Successful request with list of collection resources in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "type": "object", "properties": { "offset": { "type": "integer", "format": "int32", "description": "Number of resources skipped from start in the server list and omitted in response." }, "limit": { "type": "integer", "format": "int32", "description": "Number of resources shown in the response." }, "total": { "type": "integer", "format": "int32", "description": "Number of resources returned in the response." }, "list": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the collection." } }, "required": [ "name" ] }, "description": "List of collection objects." } } }, "examples": { "CollectionsResponse": { "summary": "List of collections in response", "description": "A response body example of a list containing 2 collections.", "value": { "offset": 0, "limit": 2147483647, "total": 2, "list": [ { "id": 1, "name": "Men's Trail Running Shoes" }, { "id": 2, "name": "Climbing Harnesses" } ] } } } } } } } }, "post": { "tags": [ "Collections" ], "summary": "Create collection", "description": "Creates a new collection as specified by the rules provided and returns the newly created collection definition.", "operationId": "createCollection", "requestBody": { "description": "Collection to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "allOf": [ { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the collection." } }, "required": [ "name" ] }, { "type": "object", "properties": { "rules": { "type": "array", "items": { "type": "object", "additionalProperties": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } } }, "minItems": 1, "maxItems": 1000, "description": "Array of rules containing attribute : operation pairs.\n\nThe attribute is any valid entity attribute. It is a required field and it should not be more than 100 characters.\n\nThe operation is a pair of operator and operand values. The operator can be one of:\n - Numeric operators: `greaterOrEquals`, `lesserOrEquals`\n - String operators: `startsWith`, `endsWith`, `contains`, `doesNotContain`\n - Alphanumeric operators: `equals`, `notEquals`, `valueIsPresent`, `valueIsNotPresent`\n\nThe other part of operation, operand values, is an array of values. Each value cannot be more than 250 characters.\nThere must be atleast 1 value and no more than 1000 values. Operand values are not required when operator is\neither `valueIsPresent` or `valueIsNotPresent`. Numeric operators accept integer or floating point operand values.\n" } }, "required": [ "rules" ] } ] }, "examples": { "CollectionRequest": { "summary": "Collection in request", "description": "A request body example of a collection object to be created/updated.", "value": { "name": "Backpacking Tents", "rules": [ { "bestUse": { "equals": [ "backpacking" ] } }, { "weight": { "less than": [ "10" ] } }, { "capacity": { "less than": [ "4" ] } } ] } } } } }, "required": true }, "responses": { "201": { "description": "Collection resource created with resource definition in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the collection." } }, "required": [ "name" ] }, { "type": "object", "properties": { "rules": { "type": "array", "items": { "type": "object", "additionalProperties": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } } }, "minItems": 1, "maxItems": 1000, "description": "Array of rules containing attribute : operation pairs.\n\nThe attribute is any valid entity attribute. It is a required field and it should not be more than 100 characters.\n\nThe operation is a pair of operator and operand values. The operator can be one of:\n - Numeric operators: `greaterOrEquals`, `lesserOrEquals`\n - String operators: `startsWith`, `endsWith`, `contains`, `doesNotContain`\n - Alphanumeric operators: `equals`, `notEquals`, `valueIsPresent`, `valueIsNotPresent`\n\nThe other part of operation, operand values, is an array of values. Each value cannot be more than 250 characters.\nThere must be atleast 1 value and no more than 1000 values. Operand values are not required when operator is\neither `valueIsPresent` or `valueIsNotPresent`. Numeric operators accept integer or floating point operand values.\n" } }, "required": [ "rules" ] } ] }, "examples": { "CollectionResponse": { "summary": "Collection in response", "description": "A response body example of a collection object.", "value": { "id": 1, "name": "Backpacking Tents", "rules": [ { "bestUse": { "equals": [ "backpacking" ] } }, { "weight": { "less than": [ "10" ] } }, { "capacity": { "less than": [ "4" ] } } ] } } } } } } } } }, "/collections/{id}": { "get": { "tags": [ "Collections" ], "summary": "Get collection", "description": "Gets the collection with the given ID.", "operationId": "getCollection", "responses": { "200": { "description": "Successful request with collection resource in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the collection." } }, "required": [ "name" ] }, { "type": "object", "properties": { "rules": { "type": "array", "items": { "type": "object", "additionalProperties": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } } }, "minItems": 1, "maxItems": 1000, "description": "Array of rules containing attribute : operation pairs.\n\nThe attribute is any valid entity attribute. It is a required field and it should not be more than 100 characters.\n\nThe operation is a pair of operator and operand values. The operator can be one of:\n - Numeric operators: `greaterOrEquals`, `lesserOrEquals`\n - String operators: `startsWith`, `endsWith`, `contains`, `doesNotContain`\n - Alphanumeric operators: `equals`, `notEquals`, `valueIsPresent`, `valueIsNotPresent`\n\nThe other part of operation, operand values, is an array of values. Each value cannot be more than 250 characters.\nThere must be atleast 1 value and no more than 1000 values. Operand values are not required when operator is\neither `valueIsPresent` or `valueIsNotPresent`. Numeric operators accept integer or floating point operand values.\n" } }, "required": [ "rules" ] } ] }, "examples": { "CollectionResponse": { "summary": "Collection in response", "description": "A response body example of a collection object.", "value": { "id": 1, "name": "Backpacking Tents", "rules": [ { "bestUse": { "equals": [ "backpacking" ] } }, { "weight": { "less than": [ "10" ] } }, { "capacity": { "less than": [ "4" ] } } ] } } } } } } } }, "put": { "tags": [ "Collections" ], "summary": "Edit collection", "description": "Updates the collection with new name and/or new rules as specified and returns the updated collection definition.", "operationId": "updateCollection", "requestBody": { "description": "Collection to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "allOf": [ { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the collection." } }, "required": [ "name" ] }, { "type": "object", "properties": { "rules": { "type": "array", "items": { "type": "object", "additionalProperties": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } } }, "minItems": 1, "maxItems": 1000, "description": "Array of rules containing attribute : operation pairs.\n\nThe attribute is any valid entity attribute. It is a required field and it should not be more than 100 characters.\n\nThe operation is a pair of operator and operand values. The operator can be one of:\n - Numeric operators: `greaterOrEquals`, `lesserOrEquals`\n - String operators: `startsWith`, `endsWith`, `contains`, `doesNotContain`\n - Alphanumeric operators: `equals`, `notEquals`, `valueIsPresent`, `valueIsNotPresent`\n\nThe other part of operation, operand values, is an array of values. Each value cannot be more than 250 characters.\nThere must be atleast 1 value and no more than 1000 values. Operand values are not required when operator is\neither `valueIsPresent` or `valueIsNotPresent`. Numeric operators accept integer or floating point operand values.\n" } }, "required": [ "rules" ] } ] }, "examples": { "CollectionRequest": { "summary": "Collection in request", "description": "A request body example of a collection object to be created/updated.", "value": { "name": "Backpacking Tents", "rules": [ { "bestUse": { "equals": [ "backpacking" ] } }, { "weight": { "less than": [ "10" ] } }, { "capacity": { "less than": [ "4" ] } } ] } } } } }, "required": true }, "responses": { "200": { "description": "Successful request with updated collection resource in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the collection." } }, "required": [ "name" ] }, { "type": "object", "properties": { "rules": { "type": "array", "items": { "type": "object", "additionalProperties": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } } }, "minItems": 1, "maxItems": 1000, "description": "Array of rules containing attribute : operation pairs.\n\nThe attribute is any valid entity attribute. It is a required field and it should not be more than 100 characters.\n\nThe operation is a pair of operator and operand values. The operator can be one of:\n - Numeric operators: `greaterOrEquals`, `lesserOrEquals`\n - String operators: `startsWith`, `endsWith`, `contains`, `doesNotContain`\n - Alphanumeric operators: `equals`, `notEquals`, `valueIsPresent`, `valueIsNotPresent`\n\nThe other part of operation, operand values, is an array of values. Each value cannot be more than 250 characters.\nThere must be atleast 1 value and no more than 1000 values. Operand values are not required when operator is\neither `valueIsPresent` or `valueIsNotPresent`. Numeric operators accept integer or floating point operand values.\n" } }, "required": [ "rules" ] } ] }, "examples": { "CollectionResponse": { "summary": "Collection in response", "description": "A response body example of a collection object.", "value": { "id": 1, "name": "Backpacking Tents", "rules": [ { "bestUse": { "equals": [ "backpacking" ] } }, { "weight": { "less than": [ "10" ] } }, { "capacity": { "less than": [ "4" ] } } ] } } } } } } } }, "delete": { "tags": [ "Collections" ], "summary": "Delete collection", "description": "Deletes the collection referenced by the given ID.", "operationId": "deleteCollection", "responses": { "200": { "description": "Successful request with deleted collection resource in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the collection." } }, "required": [ "name" ] }, { "type": "object", "properties": { "rules": { "type": "array", "items": { "type": "object", "additionalProperties": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } } }, "minItems": 1, "maxItems": 1000, "description": "Array of rules containing attribute : operation pairs.\n\nThe attribute is any valid entity attribute. It is a required field and it should not be more than 100 characters.\n\nThe operation is a pair of operator and operand values. The operator can be one of:\n - Numeric operators: `greaterOrEquals`, `lesserOrEquals`\n - String operators: `startsWith`, `endsWith`, `contains`, `doesNotContain`\n - Alphanumeric operators: `equals`, `notEquals`, `valueIsPresent`, `valueIsNotPresent`\n\nThe other part of operation, operand values, is an array of values. Each value cannot be more than 250 characters.\nThere must be atleast 1 value and no more than 1000 values. Operand values are not required when operator is\neither `valueIsPresent` or `valueIsNotPresent`. Numeric operators accept integer or floating point operand values.\n" } }, "required": [ "rules" ] } ] }, "examples": { "CollectionResponse": { "summary": "Collection in response", "description": "A response body example of a collection object.", "value": { "id": 1, "name": "Backpacking Tents", "rules": [ { "bestUse": { "equals": [ "backpacking" ] } }, { "weight": { "less than": [ "10" ] } }, { "capacity": { "less than": [ "4" ] } } ] } } } } } } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ] }, "/criteria": { "get": { "tags": [ "Criteria" ], "summary": "List criteria", "description": "Gets all available criteria.", "operationId": "getAllCriteria", "parameters": [ { "name": "offset", "in": "query", "description": "Number of resources to skip from start in the server list. If not specified, the response list will start from first available resource.", "required": false, "schema": { "type": "integer", "format": "int32", "description": "Number of resources skipped from start in the server list and omitted in response." } }, { "name": "limit", "in": "query", "description": "Number of resources to request. If not specified, the response will include all available resources.", "required": false, "schema": { "type": "integer", "format": "int32", "description": "Number of resources shown in the response." } } ], "responses": { "200": { "description": "Successful request with list of criteria resources in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "type": "object", "properties": { "offset": { "type": "integer", "format": "int32", "description": "Number of resources skipped from start in the server list and omitted in response." }, "limit": { "type": "integer", "format": "int32", "description": "Number of resources shown in the response." }, "total": { "type": "integer", "format": "int32", "description": "Number of resources returned in the response." }, "list": { "type": "array", "items": { "type": "object", "oneOf": [ { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "criteriaGroup": { "type": "string", "enum": [ "CART" ], "readOnly": true }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "inclusionRulesKey": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "^(profile\\.|user\\.).+" ], "description": "Used for dynamic inclusion rules. Depending on the value either entity attribute matching or profile attribute matching is configured.\n[More info](https://docs.adobe.com/content/help/en/target/using/recommendations/criteria/use-dynamic-and-static-inclusion-rules.html#dynamic-filtering)].\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite. A report suite can not be used when type is `SIMILARITY`.\n" } } }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded in recommendations." }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "modelActionSettings": { "type": "object", "properties": { "actionOnKeyItems": { "type": "string", "enum": [ "PURCHASE", "VIEW" ], "description": "Which visitor behavior event to take into considerations for key items." }, "actionOnRecommendedItems": { "type": "string", "enum": [ "PURCHASE", "VIEW" ], "description": "Which visitor behavior event to take into considerations for recommended items.\n`VIEW` is invalid if actionOnKeyItems is `PURCHASE`.\n" }, "basisForCoOccurrence": { "type": "string", "enum": [ "SESSION", "USER" ], "description": "Coocurrence Basis. Values:\n\n- `SESSION`: each individual session will be consumed separately.\n- `USER`: all user sessions will be aggregated at user level.\n" } } } }, "required": [ "daysCount" ] } ] }, { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, favorite category in this instance, then continues\n to next favorite of visitor's favorite categories until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, favorite\n category in this instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, next favorite category in visitor's favorite categories is considered sequentially until the\n design is filled.\n\nIf the key is current category, only `NONE` is valid. For key as favorite category, all aggregation options are\navailable.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "pastBehaviorOrdinal": { "type": "integer", "format": "int32" } } } ] }, "criteriaGroup": { "type": "string", "enum": [ "CATEGORY" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `hoursCount`\n" }, "hoursCount": { "type": "integer", "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `daysCount`. Only allowed value `6`\n" }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "enum": [ "CURRENT", "FAVORITE" ], "description": "Recommendation key. Values:\n\n- `CURRENT`: The category of the currently viewed item.\n- `FAVORITE`: The category among visitor's categories with highest score. The recommendations are determined by\n the categories that have been most viewed. The score is determined by recency/frequency: 10 points for first\n category view, 5 points for every subsequent view.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "type": { "type": "string", "enum": [ "BOUGHT", "VIEWED" ], "description": "Recommendation logic. Values:\n\n - `BOUGHT`: Top sold items.\n - `VIEWED`: Most viewed items.\n" } }, "required": [ "key", "type" ] } ] }, { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when enough recommendations from CSV feed are not applicable in design." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Applicable only when key is `PROFILE_ATTRIBUTE`. This is the profile attribute." }, "feed": { "type": "object", "properties": { "connection": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "url", "ftp" ], "description": "Protocol supported by the feed: HTTP or FTP" }, "attributes": { "oneOf": [ { "type": "object", "properties": { "URL": { "type": "string" } }, "required": [ "URL" ], "description": "HTTP location of the feed." }, { "type": "object", "properties": { "SERVER": { "type": "string" }, "USERNAME": { "type": "string" }, "PASSWORD": { "type": "string" }, "FILENAME": { "type": "string" }, "DIRECTORY": { "type": "string" } }, "required": [ "SERVER", "USERNAME", "PASSWORD", "FILENAME", "DIRECTORY" ], "description": "FTP connection details of the feed." } ] } }, "required": [ "type", "attributes" ], "description": "Object containing feed connection details." }, "environmentId": { "type": "integer", "format": "int32", "description": "Identifier of a valid environment. Use `-1` for all environments." }, "scheduleTime": { "type": "string", "pattern": "^([0-1][0-9]|2[0-3]):([0-5][0-9])$", "description": "Scheduled time to run the feed. Format is `HH:mm`." }, "scheduleType": { "type": "string", "enum": [ "daily", "weekly", "biWeekly", "never" ], "description": "Feeds can be scheduled to be run at a given frequency." }, "uploadHistory": { "type": "array", "items": { "type": "object", "properties": { "status": { "type": "string", "enum": [ "SUCCESS", "UNKNOWN_ERROR", "PARSING_ERROR", "SERVER_NOT_FOUND", "CREDENTIALS_ERROR", "DIRECTORY_NOT_FOUND", "FILE_NOT_FOUND", "SAINT_REPORT_NOT_FOUND", "CLASSIFICATION_NOT_FOUND", "SCHEDULED", "DOWNLOADING_FEED_FILE", "IMPORTING", "FLUSHING_RESULTS", "FLUSH_FAILED" ] }, "message": { "type": "string" }, "date": { "type": "string", "format": "date-time" } } }, "required": [ "status", "message", "date" ], "readOnly": true, "description": "Feed upload history." } }, "required": [ "connection", "environmentId", "scheduleType" ] } }, "required": [ "feed" ] } ] }, "criteriaGroup": { "type": "string", "enum": [ "CUSTOM" ], "readOnly": true }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "CURRENT_CATEGORY", "FAVORITE_CATEGORY", "PROFILE_ATTRIBUTE" ], "description": "Recommendation key. Values:\n\n- `CURRENT`: The currently viewed item.\n- `LAST_VIEWED`: The last viewed item.\n- `LAST_PURCHASED`: The last purchased item.\n- `MOST_VIEWED`: The most viewed item. The recommendations are determined by items that have been most viewed.\n The score is determined by recency/frequency: 10 points for first item view, 5 points for every subsequent view,\n all points are halved after the session ends.\n- `CURRENT_CATEGORY`: The category of the currently viewed item.\n- `FAVORITE_CATEGORY`: The category among visitor's categories with highest score. The recommendations are\n determined by the categories that have been most viewed. The score is determined by recency/frequency: 10 points\n for first category view, 5 points for every subsequent view.\n- `PROFILE_ATTRIBUTE`: Profile attribute.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." } }, "required": [ "key", "configuration" ] } ] }, { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, last viewed item, for instance, then continues to\n next last viewed item by visitor until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, last purchased\n item, for instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, second to last purchased item by visitor is considered and so forth until the design is\n filled.\n\nIf the key is `CURRENT`, only `NONE` is valid.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "confidence": { "type": "string", "enum": [ "VERY_WEAK", "WEAK", "MODERATE", "STRONG", "VERY_STRONG" ], "description": "Applicable only when type is `SITE_AFFINITY`. This determines how much data (strong or weak affinity) is required before a recommendation is presented." }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite. A report suite can not be used when type is `SIMILARITY`." }, "minSimilarity": { "type": "number", "format": "double", "minimum": 0.1, "maximum": 0.98, "default": 0.4, "description": "Applicable only when type is `SIMILARITY`. This is the threshold of minimum similarity required for two entities to be deemed similar. Lower number implies products will be more similar. But lower the number, criteria execution is exponentially longer." }, "pastBehaviorOrdinal": { "type": "integer", "format": "int32" } } } ] }, "criteriaGroup": { "type": "string", "enum": [ "ITEM" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED" ], "description": "Recommendation key. Values:\n\n- `CURRENT`: The currently viewed item.\n- `LAST_VIEWED`: The last viewed item.\n- `LAST_PURCHASED`: The last purchased item.\n- `MOST_VIEWED`: The most viewed item. The recommendations are determined by items that have been most viewed.\n The score is determined by recency/frequency: 10 points for first item view, 5 points for every subsequent view,\n all points are halved after the session ends.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "type": { "type": "string", "enum": [ "VIEWED_BOUGHT", "BOUGHT_CF", "VIEWED_CF", "SITE_AFFINITY", "SIMILARITY" ], "description": "Recommendation logic. Values:\n\n - `VIEWED_BOUGHT`: People who viewed this, bought that.\n - `BOUGHT_CF`: People who bought this, bought that.\n - `VIEWED_CF`: People who viewed this, viewed that.\n - `SITE_AFFINITY`: Considers items based on the certainty of a relationship between items. Confidence setting is\n used to determine how much data (strong or weak affinity) is required before a recommendation is presented.\n - `SIMILARITY`: Considers items similar to items based on current page activity or past visitor behavior.\n" } }, "required": [ "configuration", "daysCount", "key", "type" ] } ] }, { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, top seller in this instance, then continues to next\n top seller until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, most viewed item\n in this instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, next most viewed item is considered sequentially until the design is filled.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid report suite. If type is `METRIC`, this field is required and value must be a valid report suite." }, "grouping": { "type": "object", "properties": { "attributes": { "type": "array", "items": { "type": "string", "maxLength": 250, "pattern": "^(profile\\.|user\\.).+" }, "maxItems": 10, "description": "Array of profile attributes." }, "type": { "type": "string", "enum": [ "HIERARCHICAL", "SEQUENTIAL" ] } }, "description": "Not applicable for type `METRIC`. Grouping allows to narrow recommendations by profile attributes.", "required": [ "attributes", "type" ] }, "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Applicable for type `SELLERS` or `VIEWED`. Required only for top sellers by custom profile attribute/most viewed by custom profile attribute\n(that is, when key is `customProfileAttribute`).\n\nThe custom profile attribute to be used as the basis for providing recommendations. The value should include the prefix `user.` or `profile.`.\n" }, "groupByEntityAttribute": { "type": "string", "description": "Applicable for type `SELLERS` or `VIEWED`. Required only for top sellers by custom profile attribute/most viewed by custom profile attribute\n(that is, when key is `customProfileAttribute`).\n\nThe entity attribute whose value will be matched to the custom profile attribute, in order to provide the list of\ntop sellers/most viewed items among those items with a matching attribute value. The value should **not** include the prefix `entity.`.\n" } } } ] }, "criteriaGroup": { "type": "string", "enum": [ "POPULARITY" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `hoursCount`\n" }, "hoursCount": { "type": "integer", "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `daysCount`. Only allowed value `6`\n" }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "description": "Recommendation key. Values:\n - When type is `METRIC`, this is a required field. The value is the name of an Analytics report suite metric.\n - When type is `SELLERS` or `VIEWED`, this field is only used when creating a top sellers by custom profile attribute/most\n viewed by custom profile attribute criteria. When creating this criteria type, the value should be set to\n `customProfileAttribute` and the profile attribute is set in configuration.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "type": { "type": "string", "enum": [ "SELLERS", "VIEWED", "METRIC" ], "description": "Recommendation logic. Values:\n\n - `SELLERS`: Top sellers.\n - `VIEWED`: Most viewed items.\n - `METRIC`: Considers Analytics product report suite for recommendations.\n" } }, "required": [ "type" ] } ] }, { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, top seller in this instance, then continues to next\n top seller until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, most viewed item\n in this instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, next most viewed item is considered sequentially until the design is filled.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Profile attribute." }, "confidence": { "type": "string", "enum": [ "VERY_WEAK", "WEAK", "MODERATE", "STRONG", "VERY_STRONG" ], "description": "Applicable only when type is `SITE_AFFINITY`. This determines how much data (strong or weak affinity) is required before a recommendation is presented." }, "datasource": { "type": "string", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite." } }, "required": [ "attribute", "datasource" ] } ] }, "criteriaGroup": { "type": "string", "enum": [ "PROFILEATTRIBUTE" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "superSlotCount": { "type": "integer", "format": "int32", "readOnly": true }, "type": { "type": "string", "enum": [ "VIEWED_BOUGHT", "BOUGHT_CF", "VIEWED_CF", "SITE_AFFINITY" ], "description": "Recommendation logic. Values:\n\n - `VIEWED_BOUGHT`: People who viewed this, bought that.\n - `BOUGHT_CF`: People who bought this, bought that.\n - `VIEWED_CF`: People who viewed this, viewed that.\n - `SITE_AFFINITY`: Considers items based on the certainty of a relationship between items. Confidence setting is\n used to determine how much data (strong or weak affinity) is required before a recommendation is presented.\n" } }, "required": [ "configuration", "daysCount", "type" ] } ] }, { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." } ] }, "criteriaGroup": { "type": "string", "enum": [ "RECENT" ], "readOnly": true }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." } } } ] }, { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "criteriaGroup": { "type": "string", "enum": [ "SEQUENCE" ], "readOnly": true }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "sequence": { "type": "array", "minItems": 1, "maxItems": 5, "items": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "description": "ID of criteria in sequence." }, "slotCount": { "type": "integer", "format": "int64", "maximum": 100, "minimum": 1, "description": "Number of recommendations this criteria will return." } }, "required": [ "id" ] }, "description": "Criteria sequence represented by an array of criteria object IDs." } }, "required": [ "sequence" ] } ] }, { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "criteriaGroup": { "type": "string", "enum": [ "USERHISTORY" ], "readOnly": true }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "inclusionRulesKey": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "^(profile\\.|user\\.).+" ], "description": "Used for dynamic inclusion rules. Depending on the value either entity attribute matching or profile attribute matching is configured.\n[More info](https://docs.adobe.com/content/help/en/target/using/recommendations/criteria/use-dynamic-and-static-inclusion-rules.html#dynamic-filtering)].\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite.\n" } } }, { "type": "object", "properties": { "inclusionRulesKey": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "^(profile\\.|user\\.).+" ], "description": "Used for dynamic inclusion rules, i.e rules which use delivery time item to apply filtering.\n" }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite.\n" } } } ] }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "excludeViews": { "type": "boolean", "default": false, "description": "Whether items that were previously viewed by the visitor should be excluded from recommendations." } }, "required": [ "daysCount" ] } ] } ], "discriminator": { "propertyName": "criteriaGroup", "mapping": { "CART": "./cart/cart-criteria.oas.yaml#/components/schemas/CriteriaCart", "CATEGORY": "./category/category-criteria.oas.yaml#/components/schemas/CriteriaCategory", "CUSTOM": "./custom/custom-criteria.oas.yaml#/components/schemas/CriteriaCustom", "ITEM": "./item/item-criteria.oas.yaml#/components/schemas/CriteriaItem", "POPULARITY": "./popularity/popularity-criteria.oas.yaml#/components/schemas/CriteriaPopularity", "PROFILEATTRIBUTE": "./profileattribute/profile-attribute-criteria.oas.yaml#/components/schemas/CriteriaProfileAttribute", "RECENT": "./recent/recent-criteria.oas.yaml#/components/schemas/CriteriaRecent", "SEQUENCE": "./sequence/sequence-criteria.oas.yaml#/components/schemas/CriteriaSequence", "USERHISTORY": "./userhistory/user-history-criteria.oas.yaml#/components/schemas/CriteriaUserHistory" } } }, "description": "List of criteria objects." } } }, "examples": { "CriteriaListResponse": { "summary": "List of criteria in response", "description": "A response body example of a list containing 3 criteria.", "value": { "offset": 2, "limit": 2147483647, "total": 3, "list": [ { "id": 3, "name": "Recently Viewed Backpacks", "criteriaTitle": "Recently Viewed Backpacks", "criteriaGroup": "RECENT", "minInventory": 1, "configuration": { "rankingRules": [] } }, { "id": 4, "name": "People who viewed this also bought", "criteriaGroup": "ITEM", "type": "VIEWED_BOUGHT", "key": "LAST_PURCHASED", "aggregation": "NONE", "daysCount": "ONE_MONTH", "partialDesignAllowed": false, "backupDisabled": false, "excludePurchases": true, "enableCaching": false, "backupInclusionFilteringEnabled": true, "configuration": { "pastBehaviorOrdinal": 0 } }, { "id": 5, "name": "Most Viewed Shirts", "criteriaGroup": "POPULARITY", "type": "VIEWED", "aggregation": "NONE", "daysCount": "TWO_WEEKS", "minInventory": 1, "partialDesignAllowed": false, "backupDisabled": false, "excludePurchases": true, "enableCaching": false, "backupInclusionFilteringEnabled": true, "configuration": { "inclusionRules": [ { "attribute": "value", "operation": "dynamicallyRanges", "lowRange": "0", "highRange": "30" } ], "pastBehaviorOrdinal": 0 } } ] } } } } } } } } }, "/criteria/{id}": { "get": { "tags": [ "Criteria" ], "summary": "Get criteria", "description": "Gets minimal criteria information with the given ID. For detailed information, make API call to criteria group path, for example, `/criteria/item/{id}`.", "operationId": "getCriteria", "responses": { "200": { "description": "Successful request with criteria resource in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, "examples": { "CriteriaMinResponse": { "summary": "Criteria in response", "description": "A response body example of a criteria with minimal information.", "value": { "id": 34, "name": "Recently Viewed Biking Accessories", "criteriaTitle": "Recently Viewed Biking Accessories", "criteriaGroup": "RECENT" } } } } } } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ] }, "/criteria/cart": { "get": { "tags": [ "Cart Criteria" ], "summary": "List cart criteria", "description": "Gets all available cart based criteria.", "operationId": "getAllCriteriaCart", "parameters": [ { "name": "offset", "in": "query", "description": "Number of resources to skip from start in the server list. If not specified, the response list will start from first available resource.", "required": false, "schema": { "type": "integer", "format": "int32", "description": "Number of resources skipped from start in the server list and omitted in response." } }, { "name": "limit", "in": "query", "description": "Number of resources to request. If not specified, the response will include all available resources.", "required": false, "schema": { "type": "integer", "format": "int32", "description": "Number of resources shown in the response." } } ], "responses": { "200": { "description": "Successful request with list of cart criteria resources in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "type": "object", "properties": { "offset": { "type": "integer", "format": "int32", "description": "Number of resources skipped from start in the server list and omitted in response." }, "limit": { "type": "integer", "format": "int32", "description": "Number of resources shown in the response." }, "total": { "type": "integer", "format": "int32", "description": "Number of resources returned in the response." }, "list": { "type": "array", "items": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "criteriaGroup": { "type": "string", "enum": [ "CART" ], "readOnly": true }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "inclusionRulesKey": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "^(profile\\.|user\\.).+" ], "description": "Used for dynamic inclusion rules. Depending on the value either entity attribute matching or profile attribute matching is configured.\n[More info](https://docs.adobe.com/content/help/en/target/using/recommendations/criteria/use-dynamic-and-static-inclusion-rules.html#dynamic-filtering)].\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite. A report suite can not be used when type is `SIMILARITY`.\n" } } }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded in recommendations." }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "modelActionSettings": { "type": "object", "properties": { "actionOnKeyItems": { "type": "string", "enum": [ "PURCHASE", "VIEW" ], "description": "Which visitor behavior event to take into considerations for key items." }, "actionOnRecommendedItems": { "type": "string", "enum": [ "PURCHASE", "VIEW" ], "description": "Which visitor behavior event to take into considerations for recommended items.\n`VIEW` is invalid if actionOnKeyItems is `PURCHASE`.\n" }, "basisForCoOccurrence": { "type": "string", "enum": [ "SESSION", "USER" ], "description": "Coocurrence Basis. Values:\n\n- `SESSION`: each individual session will be consumed separately.\n- `USER`: all user sessions will be aggregated at user level.\n" } } } }, "required": [ "daysCount" ] } ] }, "description": "List of cart criteria objects." } } }, "examples": { "CriteriaCartListResponse": { "summary": "List of cart criteria in response", "description": "A response body example of a list containing 3 cart criteria.", "value": { "offset": 2, "limit": 2147483647, "total": 3, "list": [ { "id": 3, "name": "Users who purchased this also purchased that within each session.", "criteriaGroup": "CART", "daysCount": "TWO_WEEKS", "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "modelActionSettings": { "actionOnKeyItems": "PURCHASE", "actionOnRecommendedItems": "PURCHASE", "basisForCoOccurrence": "SESSION" } }, { "id": 4, "name": "Users who viewed this also viewed that across user sessions.", "criteriaGroup": "CART", "daysCount": "TWO_WEEKS", "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "modelActionSettings": { "actionOnKeyItems": "VIEW", "actionOnRecommendedItems": "VIEW", "basisForCoOccurrence": "USER" } }, { "id": 5, "name": "Users who viewed this also bought that across user sessions in the same category.", "criteriaGroup": "CART", "daysCount": "TWO_WEEKS", "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "modelActionSettings": { "actionOnKeyItems": "VIEW", "actionOnRecommendedItems": "PURCHASE", "basisForCoOccurrence": "USER" }, "configuration": { "inclusionRulesKey": "LAST_PURCHASED", "inclusionRules": [ { "attribute": "category", "operation": "contains", "source": { "name": "category", "type": "ENTITY", "excludeAllWhenEmpty": true } } ] } } ] } } } } } } } }, "post": { "tags": [ "Cart Criteria" ], "summary": "Create cart criteria", "description": "Creates a new cart based criteria as specified by the settings and configuration provided and returns the newly created cart definition.", "operationId": "createCriteriaCart", "requestBody": { "description": "Cart based criteria to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "criteriaGroup": { "type": "string", "enum": [ "CART" ], "readOnly": true }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "inclusionRulesKey": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "^(profile\\.|user\\.).+" ], "description": "Used for dynamic inclusion rules. Depending on the value either entity attribute matching or profile attribute matching is configured.\n[More info](https://docs.adobe.com/content/help/en/target/using/recommendations/criteria/use-dynamic-and-static-inclusion-rules.html#dynamic-filtering)].\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite. A report suite can not be used when type is `SIMILARITY`.\n" } } }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded in recommendations." }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "modelActionSettings": { "type": "object", "properties": { "actionOnKeyItems": { "type": "string", "enum": [ "PURCHASE", "VIEW" ], "description": "Which visitor behavior event to take into considerations for key items." }, "actionOnRecommendedItems": { "type": "string", "enum": [ "PURCHASE", "VIEW" ], "description": "Which visitor behavior event to take into considerations for recommended items.\n`VIEW` is invalid if actionOnKeyItems is `PURCHASE`.\n" }, "basisForCoOccurrence": { "type": "string", "enum": [ "SESSION", "USER" ], "description": "Coocurrence Basis. Values:\n\n- `SESSION`: each individual session will be consumed separately.\n- `USER`: all user sessions will be aggregated at user level.\n" } } } }, "required": [ "daysCount" ] } ] }, "examples": { "CriteriaCartRequest": { "summary": "Cart criteria in request", "description": "A request body example of a cart based criteria to be created/updated.", "value": { "name": "Users who viewed this also bought that across user sessions in the same category.", "criteriaGroup": "CART", "daysCount": "TWO_WEEKS", "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "modelActionSettings": { "actionOnKeyItems": "VIEW", "actionOnRecommendedItems": "PURCHASE", "basisForCoOccurrence": "USER" }, "configuration": { "inclusionRulesKey": "LAST_PURCHASED", "inclusionRules": [ { "attribute": "category", "operation": "equals", "source": { "name": "category", "type": "ENTITY", "excludeAllWhenEmpty": true } } ] } } } } } }, "required": true }, "responses": { "201": { "description": "Criteria resource created with resource definition in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "criteriaGroup": { "type": "string", "enum": [ "CART" ], "readOnly": true }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "inclusionRulesKey": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "^(profile\\.|user\\.).+" ], "description": "Used for dynamic inclusion rules. Depending on the value either entity attribute matching or profile attribute matching is configured.\n[More info](https://docs.adobe.com/content/help/en/target/using/recommendations/criteria/use-dynamic-and-static-inclusion-rules.html#dynamic-filtering)].\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite. A report suite can not be used when type is `SIMILARITY`.\n" } } }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded in recommendations." }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "modelActionSettings": { "type": "object", "properties": { "actionOnKeyItems": { "type": "string", "enum": [ "PURCHASE", "VIEW" ], "description": "Which visitor behavior event to take into considerations for key items." }, "actionOnRecommendedItems": { "type": "string", "enum": [ "PURCHASE", "VIEW" ], "description": "Which visitor behavior event to take into considerations for recommended items.\n`VIEW` is invalid if actionOnKeyItems is `PURCHASE`.\n" }, "basisForCoOccurrence": { "type": "string", "enum": [ "SESSION", "USER" ], "description": "Coocurrence Basis. Values:\n\n- `SESSION`: each individual session will be consumed separately.\n- `USER`: all user sessions will be aggregated at user level.\n" } } } }, "required": [ "daysCount" ] } ] }, "examples": { "CriteriaCartResponse": { "summary": "Cart criteria in response", "description": "A response body example of a cart based criteria.", "value": { "id": 3, "name": "Users who viewed this also bought that across user sessions in the same category.", "criteriaGroup": "CART", "daysCount": "TWO_WEEKS", "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "modelActionSettings": { "actionOnKeyItems": "VIEW", "actionOnRecommendedItems": "PURCHASE", "basisForCoOccurrence": "USER" }, "configuration": { "inclusionRulesKey": "LAST_PURCHASED", "inclusionRules": [ { "attribute": "category", "operation": "equals", "source": { "name": "category", "type": "ENTITY", "excludeAllWhenEmpty": true } } ] } } } } } } } } } }, "/criteria/cart/{id}": { "get": { "tags": [ "Cart Criteria" ], "summary": "Get cart criteria", "description": "Gets the cart based criteria with the given ID.", "operationId": "getCriteriaCart", "responses": { "200": { "description": "Successful request with criteria resource in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "criteriaGroup": { "type": "string", "enum": [ "CART" ], "readOnly": true }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "inclusionRulesKey": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "^(profile\\.|user\\.).+" ], "description": "Used for dynamic inclusion rules. Depending on the value either entity attribute matching or profile attribute matching is configured.\n[More info](https://docs.adobe.com/content/help/en/target/using/recommendations/criteria/use-dynamic-and-static-inclusion-rules.html#dynamic-filtering)].\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite. A report suite can not be used when type is `SIMILARITY`.\n" } } }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded in recommendations." }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "modelActionSettings": { "type": "object", "properties": { "actionOnKeyItems": { "type": "string", "enum": [ "PURCHASE", "VIEW" ], "description": "Which visitor behavior event to take into considerations for key items." }, "actionOnRecommendedItems": { "type": "string", "enum": [ "PURCHASE", "VIEW" ], "description": "Which visitor behavior event to take into considerations for recommended items.\n`VIEW` is invalid if actionOnKeyItems is `PURCHASE`.\n" }, "basisForCoOccurrence": { "type": "string", "enum": [ "SESSION", "USER" ], "description": "Coocurrence Basis. Values:\n\n- `SESSION`: each individual session will be consumed separately.\n- `USER`: all user sessions will be aggregated at user level.\n" } } } }, "required": [ "daysCount" ] } ] }, "examples": { "CriteriaCartResponse": { "summary": "Cart criteria in response", "description": "A response body example of a cart based criteria.", "value": { "id": 3, "name": "Users who viewed this also bought that across user sessions in the same category.", "criteriaGroup": "CART", "daysCount": "TWO_WEEKS", "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "modelActionSettings": { "actionOnKeyItems": "VIEW", "actionOnRecommendedItems": "PURCHASE", "basisForCoOccurrence": "USER" }, "configuration": { "inclusionRulesKey": "LAST_PURCHASED", "inclusionRules": [ { "attribute": "category", "operation": "equals", "source": { "name": "category", "type": "ENTITY", "excludeAllWhenEmpty": true } } ] } } } } } } } } }, "put": { "tags": [ "Cart Criteria" ], "summary": "Edit cart criteria", "description": "Updates the cart based criteria with new settings and configuration as specified and returns the updated criteria definition.", "operationId": "updateCriteriaCart", "requestBody": { "description": "Cart based criteria to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "criteriaGroup": { "type": "string", "enum": [ "CART" ], "readOnly": true }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "inclusionRulesKey": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "^(profile\\.|user\\.).+" ], "description": "Used for dynamic inclusion rules. Depending on the value either entity attribute matching or profile attribute matching is configured.\n[More info](https://docs.adobe.com/content/help/en/target/using/recommendations/criteria/use-dynamic-and-static-inclusion-rules.html#dynamic-filtering)].\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite. A report suite can not be used when type is `SIMILARITY`.\n" } } }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded in recommendations." }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "modelActionSettings": { "type": "object", "properties": { "actionOnKeyItems": { "type": "string", "enum": [ "PURCHASE", "VIEW" ], "description": "Which visitor behavior event to take into considerations for key items." }, "actionOnRecommendedItems": { "type": "string", "enum": [ "PURCHASE", "VIEW" ], "description": "Which visitor behavior event to take into considerations for recommended items.\n`VIEW` is invalid if actionOnKeyItems is `PURCHASE`.\n" }, "basisForCoOccurrence": { "type": "string", "enum": [ "SESSION", "USER" ], "description": "Coocurrence Basis. Values:\n\n- `SESSION`: each individual session will be consumed separately.\n- `USER`: all user sessions will be aggregated at user level.\n" } } } }, "required": [ "daysCount" ] } ] }, "examples": { "CriteriaCartRequest": { "summary": "Cart criteria in request", "description": "A request body example of a cart based criteria to be created/updated.", "value": { "name": "Users who viewed this also bought that across user sessions in the same category.", "criteriaGroup": "CART", "daysCount": "TWO_WEEKS", "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "modelActionSettings": { "actionOnKeyItems": "VIEW", "actionOnRecommendedItems": "PURCHASE", "basisForCoOccurrence": "USER" }, "configuration": { "inclusionRulesKey": "LAST_PURCHASED", "inclusionRules": [ { "attribute": "category", "operation": "equals", "source": { "name": "category", "type": "ENTITY", "excludeAllWhenEmpty": true } } ] } } } } } }, "required": true }, "responses": { "200": { "description": "Successful request with updated criteria resource in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "criteriaGroup": { "type": "string", "enum": [ "CART" ], "readOnly": true }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "inclusionRulesKey": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "^(profile\\.|user\\.).+" ], "description": "Used for dynamic inclusion rules. Depending on the value either entity attribute matching or profile attribute matching is configured.\n[More info](https://docs.adobe.com/content/help/en/target/using/recommendations/criteria/use-dynamic-and-static-inclusion-rules.html#dynamic-filtering)].\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite. A report suite can not be used when type is `SIMILARITY`.\n" } } }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded in recommendations." }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "modelActionSettings": { "type": "object", "properties": { "actionOnKeyItems": { "type": "string", "enum": [ "PURCHASE", "VIEW" ], "description": "Which visitor behavior event to take into considerations for key items." }, "actionOnRecommendedItems": { "type": "string", "enum": [ "PURCHASE", "VIEW" ], "description": "Which visitor behavior event to take into considerations for recommended items.\n`VIEW` is invalid if actionOnKeyItems is `PURCHASE`.\n" }, "basisForCoOccurrence": { "type": "string", "enum": [ "SESSION", "USER" ], "description": "Coocurrence Basis. Values:\n\n- `SESSION`: each individual session will be consumed separately.\n- `USER`: all user sessions will be aggregated at user level.\n" } } } }, "required": [ "daysCount" ] } ] }, "examples": { "CriteriaCartResponse": { "summary": "Cart criteria in response", "description": "A response body example of a cart based criteria.", "value": { "id": 3, "name": "Users who viewed this also bought that across user sessions in the same category.", "criteriaGroup": "CART", "daysCount": "TWO_WEEKS", "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "modelActionSettings": { "actionOnKeyItems": "VIEW", "actionOnRecommendedItems": "PURCHASE", "basisForCoOccurrence": "USER" }, "configuration": { "inclusionRulesKey": "LAST_PURCHASED", "inclusionRules": [ { "attribute": "category", "operation": "equals", "source": { "name": "category", "type": "ENTITY", "excludeAllWhenEmpty": true } } ] } } } } } } } } }, "delete": { "tags": [ "Cart Criteria" ], "summary": "Delete cart criteria", "description": "Deletes the cart based criteria referenced by the given ID.", "operationId": "deleteCriteriaCart", "responses": { "200": { "description": "Successful request with deleted criteria resource in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "criteriaGroup": { "type": "string", "enum": [ "CART" ], "readOnly": true }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "inclusionRulesKey": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "^(profile\\.|user\\.).+" ], "description": "Used for dynamic inclusion rules. Depending on the value either entity attribute matching or profile attribute matching is configured.\n[More info](https://docs.adobe.com/content/help/en/target/using/recommendations/criteria/use-dynamic-and-static-inclusion-rules.html#dynamic-filtering)].\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite. A report suite can not be used when type is `SIMILARITY`.\n" } } }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded in recommendations." }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "modelActionSettings": { "type": "object", "properties": { "actionOnKeyItems": { "type": "string", "enum": [ "PURCHASE", "VIEW" ], "description": "Which visitor behavior event to take into considerations for key items." }, "actionOnRecommendedItems": { "type": "string", "enum": [ "PURCHASE", "VIEW" ], "description": "Which visitor behavior event to take into considerations for recommended items.\n`VIEW` is invalid if actionOnKeyItems is `PURCHASE`.\n" }, "basisForCoOccurrence": { "type": "string", "enum": [ "SESSION", "USER" ], "description": "Coocurrence Basis. Values:\n\n- `SESSION`: each individual session will be consumed separately.\n- `USER`: all user sessions will be aggregated at user level.\n" } } } }, "required": [ "daysCount" ] } ] }, "examples": { "CriteriaCategoryResponse": { "summary": "Cart criteria in response", "description": "A response body example of a cart based criteria.", "value": { "id": 3, "name": "Users who viewed this also bought that across user sessions in the same category.", "criteriaGroup": "CART", "daysCount": "TWO_WEEKS", "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "modelActionSettings": { "actionOnKeyItems": "VIEW", "actionOnRecommendedItems": "PURCHASE", "basisForCoOccurrence": "USER" }, "configuration": { "inclusionRulesKey": "LAST_PURCHASED", "inclusionRules": [ { "attribute": "category", "operation": "equals", "source": { "name": "category", "type": "ENTITY", "excludeAllWhenEmpty": true } } ] } } } } } } } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ] }, "/criteria/category": { "get": { "tags": [ "Category Criteria" ], "summary": "List category criteria", "description": "Gets all available category based criteria.", "operationId": "getAllCriteriaCategory", "parameters": [ { "name": "offset", "in": "query", "description": "Number of resources to skip from start in the server list. If not specified, the response list will start from first available resource.", "required": false, "schema": { "type": "integer", "format": "int32", "description": "Number of resources skipped from start in the server list and omitted in response." } }, { "name": "limit", "in": "query", "description": "Number of resources to request. If not specified, the response will include all available resources.", "required": false, "schema": { "type": "integer", "format": "int32", "description": "Number of resources shown in the response." } } ], "responses": { "200": { "description": "Successful request with list of category criteria resources in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "type": "object", "properties": { "offset": { "type": "integer", "format": "int32", "description": "Number of resources skipped from start in the server list and omitted in response." }, "limit": { "type": "integer", "format": "int32", "description": "Number of resources shown in the response." }, "total": { "type": "integer", "format": "int32", "description": "Number of resources returned in the response." }, "list": { "type": "array", "items": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, favorite category in this instance, then continues\n to next favorite of visitor's favorite categories until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, favorite\n category in this instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, next favorite category in visitor's favorite categories is considered sequentially until the\n design is filled.\n\nIf the key is current category, only `NONE` is valid. For key as favorite category, all aggregation options are\navailable.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "pastBehaviorOrdinal": { "type": "integer", "format": "int32" } } } ] }, "criteriaGroup": { "type": "string", "enum": [ "CATEGORY" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `hoursCount`\n" }, "hoursCount": { "type": "integer", "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `daysCount`. Only allowed value `6`\n" }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "enum": [ "CURRENT", "FAVORITE" ], "description": "Recommendation key. Values:\n\n- `CURRENT`: The category of the currently viewed item.\n- `FAVORITE`: The category among visitor's categories with highest score. The recommendations are determined by\n the categories that have been most viewed. The score is determined by recency/frequency: 10 points for first\n category view, 5 points for every subsequent view.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "type": { "type": "string", "enum": [ "BOUGHT", "VIEWED" ], "description": "Recommendation logic. Values:\n\n - `BOUGHT`: Top sold items.\n - `VIEWED`: Most viewed items.\n" } }, "required": [ "key", "type" ] } ] }, "description": "List of category criteria objects." } } }, "examples": { "CriteriaCategoryListResponse": { "summary": "List of category criteria in response", "description": "A response body example of a list containing 3 category criteria.", "value": { "offset": 2, "limit": 2147483647, "total": 3, "list": [ { "id": 3, "name": "Most Popular Content from Visitor's Favorite Category", "criteriaGroup": "CATEGORY", "type": "VIEWED", "key": "FAVORITE", "aggregation": "NONE", "daysCount": "TWO_WEEKS", "partialDesignAllowed": false, "backupDisabled": false, "excludePurchases": true, "enableCaching": false, "backupInclusionFilteringEnabled": true, "configuration": { "pastBehaviorOrdinal": 0 } }, { "id": 4, "name": "Top Selling Products from this Category", "criteriaGroup": "CATEGORY", "type": "BOUGHT", "key": "CURRENT", "aggregation": "NONE", "daysCount": "ONE_MONTH", "partialDesignAllowed": false, "backupDisabled": false, "excludePurchases": true, "enableCaching": false, "backupInclusionFilteringEnabled": true, "configuration": { "pastBehaviorOrdinal": 0 } }, { "id": 5, "name": "Most Viewed Products from this Category", "criteriaGroup": "CATEGORY", "type": "VIEWED", "key": "CURRENT", "aggregation": "NONE", "daysCount": "TWO_WEEKS", "minInventory": 1, "partialDesignAllowed": false, "backupDisabled": false, "excludePurchases": true, "enableCaching": false, "backupInclusionFilteringEnabled": true, "configuration": { "inclusionRules": [ { "attribute": "brand", "operation": "contains", "source": { "name": "colorDepth", "type": "MBOX" } } ], "pastBehaviorOrdinal": -1 } } ] } } } } } } } }, "post": { "tags": [ "Category Criteria" ], "summary": "Create category criteria", "description": "Creates a new category based criteria as specified by the settings and configuration provided and returns the newly created criteria definition.", "operationId": "createCriteriaCategory", "requestBody": { "description": "Category based criteria to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, favorite category in this instance, then continues\n to next favorite of visitor's favorite categories until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, favorite\n category in this instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, next favorite category in visitor's favorite categories is considered sequentially until the\n design is filled.\n\nIf the key is current category, only `NONE` is valid. For key as favorite category, all aggregation options are\navailable.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "pastBehaviorOrdinal": { "type": "integer", "format": "int32" } } } ] }, "criteriaGroup": { "type": "string", "enum": [ "CATEGORY" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `hoursCount`\n" }, "hoursCount": { "type": "integer", "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `daysCount`. Only allowed value `6`\n" }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "enum": [ "CURRENT", "FAVORITE" ], "description": "Recommendation key. Values:\n\n- `CURRENT`: The category of the currently viewed item.\n- `FAVORITE`: The category among visitor's categories with highest score. The recommendations are determined by\n the categories that have been most viewed. The score is determined by recency/frequency: 10 points for first\n category view, 5 points for every subsequent view.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "type": { "type": "string", "enum": [ "BOUGHT", "VIEWED" ], "description": "Recommendation logic. Values:\n\n - `BOUGHT`: Top sold items.\n - `VIEWED`: Most viewed items.\n" } }, "required": [ "key", "type" ] } ] }, "examples": { "CriteriaCategoryRequest": { "summary": "Category criteria in request", "description": "A request body example of a category based criteria to be created/updated.", "value": { "name": "Most Popular Content from Visitor's Favorite Category", "criteriaGroup": "CATEGORY", "type": "VIEWED", "key": "FAVORITE", "aggregation": "NONE", "daysCount": "TWO_WEEKS", "partialDesignAllowed": false, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "configuration": { "pastBehaviorOrdinal": 0 } } } } } }, "required": true }, "responses": { "201": { "description": "Criteria resource created with resource definition in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, favorite category in this instance, then continues\n to next favorite of visitor's favorite categories until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, favorite\n category in this instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, next favorite category in visitor's favorite categories is considered sequentially until the\n design is filled.\n\nIf the key is current category, only `NONE` is valid. For key as favorite category, all aggregation options are\navailable.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "pastBehaviorOrdinal": { "type": "integer", "format": "int32" } } } ] }, "criteriaGroup": { "type": "string", "enum": [ "CATEGORY" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `hoursCount`\n" }, "hoursCount": { "type": "integer", "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `daysCount`. Only allowed value `6`\n" }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "enum": [ "CURRENT", "FAVORITE" ], "description": "Recommendation key. Values:\n\n- `CURRENT`: The category of the currently viewed item.\n- `FAVORITE`: The category among visitor's categories with highest score. The recommendations are determined by\n the categories that have been most viewed. The score is determined by recency/frequency: 10 points for first\n category view, 5 points for every subsequent view.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "type": { "type": "string", "enum": [ "BOUGHT", "VIEWED" ], "description": "Recommendation logic. Values:\n\n - `BOUGHT`: Top sold items.\n - `VIEWED`: Most viewed items.\n" } }, "required": [ "key", "type" ] } ] }, "examples": { "CriteriaCategoryResponse": { "summary": "Category criteria in response", "description": "A response body example of a category based criteria.", "value": { "id": 3, "name": "Most Popular Content from Visitor's Favorite Category", "criteriaGroup": "CATEGORY", "type": "VIEWED", "key": "FAVORITE", "aggregation": "NONE", "daysCount": "TWO_WEEKS", "partialDesignAllowed": false, "backupDisabled": false, "excludePurchases": true, "enableCaching": false, "backupInclusionFilteringEnabled": true, "configuration": { "pastBehaviorOrdinal": 0 } } } } } } } } } }, "/criteria/category/{id}": { "get": { "tags": [ "Category Criteria" ], "summary": "Get category criteria", "description": "Gets the category based criteria with the given ID.", "operationId": "getCriteriaCategory", "responses": { "200": { "description": "Successful request with criteria resource in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, favorite category in this instance, then continues\n to next favorite of visitor's favorite categories until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, favorite\n category in this instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, next favorite category in visitor's favorite categories is considered sequentially until the\n design is filled.\n\nIf the key is current category, only `NONE` is valid. For key as favorite category, all aggregation options are\navailable.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "pastBehaviorOrdinal": { "type": "integer", "format": "int32" } } } ] }, "criteriaGroup": { "type": "string", "enum": [ "CATEGORY" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `hoursCount`\n" }, "hoursCount": { "type": "integer", "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `daysCount`. Only allowed value `6`\n" }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "enum": [ "CURRENT", "FAVORITE" ], "description": "Recommendation key. Values:\n\n- `CURRENT`: The category of the currently viewed item.\n- `FAVORITE`: The category among visitor's categories with highest score. The recommendations are determined by\n the categories that have been most viewed. The score is determined by recency/frequency: 10 points for first\n category view, 5 points for every subsequent view.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "type": { "type": "string", "enum": [ "BOUGHT", "VIEWED" ], "description": "Recommendation logic. Values:\n\n - `BOUGHT`: Top sold items.\n - `VIEWED`: Most viewed items.\n" } }, "required": [ "key", "type" ] } ] }, "examples": { "CriteriaCategoryResponse": { "summary": "Category criteria in response", "description": "A response body example of a category based criteria.", "value": { "id": 3, "name": "Most Popular Content from Visitor's Favorite Category", "criteriaGroup": "CATEGORY", "type": "VIEWED", "key": "FAVORITE", "aggregation": "NONE", "daysCount": "TWO_WEEKS", "partialDesignAllowed": false, "backupDisabled": false, "excludePurchases": true, "enableCaching": false, "backupInclusionFilteringEnabled": true, "configuration": { "pastBehaviorOrdinal": 0 } } } } } } } } }, "put": { "tags": [ "Category Criteria" ], "summary": "Edit category criteria", "description": "Updates the category based criteria with new settings and configuration as specified and returns the updated criteria definition.", "operationId": "updateCriteriaCategory", "requestBody": { "description": "Category based criteria to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, favorite category in this instance, then continues\n to next favorite of visitor's favorite categories until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, favorite\n category in this instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, next favorite category in visitor's favorite categories is considered sequentially until the\n design is filled.\n\nIf the key is current category, only `NONE` is valid. For key as favorite category, all aggregation options are\navailable.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "pastBehaviorOrdinal": { "type": "integer", "format": "int32" } } } ] }, "criteriaGroup": { "type": "string", "enum": [ "CATEGORY" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `hoursCount`\n" }, "hoursCount": { "type": "integer", "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `daysCount`. Only allowed value `6`\n" }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "enum": [ "CURRENT", "FAVORITE" ], "description": "Recommendation key. Values:\n\n- `CURRENT`: The category of the currently viewed item.\n- `FAVORITE`: The category among visitor's categories with highest score. The recommendations are determined by\n the categories that have been most viewed. The score is determined by recency/frequency: 10 points for first\n category view, 5 points for every subsequent view.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "type": { "type": "string", "enum": [ "BOUGHT", "VIEWED" ], "description": "Recommendation logic. Values:\n\n - `BOUGHT`: Top sold items.\n - `VIEWED`: Most viewed items.\n" } }, "required": [ "key", "type" ] } ] }, "examples": { "CriteriaCategoryRequest": { "summary": "Category criteria in request", "description": "A request body example of a category based criteria to be created/updated.", "value": { "name": "Most Popular Content from Visitor's Favorite Category", "criteriaGroup": "CATEGORY", "type": "VIEWED", "key": "FAVORITE", "aggregation": "NONE", "daysCount": "TWO_WEEKS", "partialDesignAllowed": false, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "configuration": { "pastBehaviorOrdinal": 0 } } } } } }, "required": true }, "responses": { "200": { "description": "Successful request with updated criteria resource in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, favorite category in this instance, then continues\n to next favorite of visitor's favorite categories until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, favorite\n category in this instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, next favorite category in visitor's favorite categories is considered sequentially until the\n design is filled.\n\nIf the key is current category, only `NONE` is valid. For key as favorite category, all aggregation options are\navailable.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "pastBehaviorOrdinal": { "type": "integer", "format": "int32" } } } ] }, "criteriaGroup": { "type": "string", "enum": [ "CATEGORY" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `hoursCount`\n" }, "hoursCount": { "type": "integer", "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `daysCount`. Only allowed value `6`\n" }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "enum": [ "CURRENT", "FAVORITE" ], "description": "Recommendation key. Values:\n\n- `CURRENT`: The category of the currently viewed item.\n- `FAVORITE`: The category among visitor's categories with highest score. The recommendations are determined by\n the categories that have been most viewed. The score is determined by recency/frequency: 10 points for first\n category view, 5 points for every subsequent view.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "type": { "type": "string", "enum": [ "BOUGHT", "VIEWED" ], "description": "Recommendation logic. Values:\n\n - `BOUGHT`: Top sold items.\n - `VIEWED`: Most viewed items.\n" } }, "required": [ "key", "type" ] } ] }, "examples": { "CriteriaCategoryResponse": { "summary": "Category criteria in response", "description": "A response body example of a category based criteria.", "value": { "id": 3, "name": "Most Popular Content from Visitor's Favorite Category", "criteriaGroup": "CATEGORY", "type": "VIEWED", "key": "FAVORITE", "aggregation": "NONE", "daysCount": "TWO_WEEKS", "partialDesignAllowed": false, "backupDisabled": false, "excludePurchases": true, "enableCaching": false, "backupInclusionFilteringEnabled": true, "configuration": { "pastBehaviorOrdinal": 0 } } } } } } } } }, "delete": { "tags": [ "Category Criteria" ], "summary": "Delete category criteria", "description": "Deletes the category based criteria referenced by the given ID.", "operationId": "deleteCriteriaCategory", "responses": { "200": { "description": "Successful request with deleted criteria resource in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, favorite category in this instance, then continues\n to next favorite of visitor's favorite categories until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, favorite\n category in this instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, next favorite category in visitor's favorite categories is considered sequentially until the\n design is filled.\n\nIf the key is current category, only `NONE` is valid. For key as favorite category, all aggregation options are\navailable.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "pastBehaviorOrdinal": { "type": "integer", "format": "int32" } } } ] }, "criteriaGroup": { "type": "string", "enum": [ "CATEGORY" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `hoursCount`\n" }, "hoursCount": { "type": "integer", "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `daysCount`. Only allowed value `6`\n" }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "enum": [ "CURRENT", "FAVORITE" ], "description": "Recommendation key. Values:\n\n- `CURRENT`: The category of the currently viewed item.\n- `FAVORITE`: The category among visitor's categories with highest score. The recommendations are determined by\n the categories that have been most viewed. The score is determined by recency/frequency: 10 points for first\n category view, 5 points for every subsequent view.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "type": { "type": "string", "enum": [ "BOUGHT", "VIEWED" ], "description": "Recommendation logic. Values:\n\n - `BOUGHT`: Top sold items.\n - `VIEWED`: Most viewed items.\n" } }, "required": [ "key", "type" ] } ] }, "examples": { "CriteriaCategoryResponse": { "summary": "Category criteria in response", "description": "A response body example of a category based criteria.", "value": { "id": 3, "name": "Most Popular Content from Visitor's Favorite Category", "criteriaGroup": "CATEGORY", "type": "VIEWED", "key": "FAVORITE", "aggregation": "NONE", "daysCount": "TWO_WEEKS", "partialDesignAllowed": false, "backupDisabled": false, "excludePurchases": true, "enableCaching": false, "backupInclusionFilteringEnabled": true, "configuration": { "pastBehaviorOrdinal": 0 } } } } } } } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ] }, "/criteria/custom": { "get": { "tags": [ "Custom Criteria" ], "summary": "List custom criteria", "description": "Gets all available custom criteria.", "operationId": "getAllCriteriaCustom", "parameters": [ { "name": "offset", "in": "query", "description": "Number of resources to skip from start in the server list. If not specified, the response list will start from first available resource.", "required": false, "schema": { "type": "integer", "format": "int32", "description": "Number of resources skipped from start in the server list and omitted in response." } }, { "name": "limit", "in": "query", "description": "Number of resources to request. If not specified, the response will include all available resources.", "required": false, "schema": { "type": "integer", "format": "int32", "description": "Number of resources shown in the response." } } ], "responses": { "200": { "description": "Successful request with list of custom criteria resources in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "type": "object", "properties": { "offset": { "type": "integer", "format": "int32", "description": "Number of resources skipped from start in the server list and omitted in response." }, "limit": { "type": "integer", "format": "int32", "description": "Number of resources shown in the response." }, "total": { "type": "integer", "format": "int32", "description": "Number of resources returned in the response." }, "list": { "type": "array", "items": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when enough recommendations from CSV feed are not applicable in design." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Applicable only when key is `PROFILE_ATTRIBUTE`. This is the profile attribute." }, "feed": { "type": "object", "properties": { "connection": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "url", "ftp" ], "description": "Protocol supported by the feed: HTTP or FTP" }, "attributes": { "oneOf": [ { "type": "object", "properties": { "URL": { "type": "string" } }, "required": [ "URL" ], "description": "HTTP location of the feed." }, { "type": "object", "properties": { "SERVER": { "type": "string" }, "USERNAME": { "type": "string" }, "PASSWORD": { "type": "string" }, "FILENAME": { "type": "string" }, "DIRECTORY": { "type": "string" } }, "required": [ "SERVER", "USERNAME", "PASSWORD", "FILENAME", "DIRECTORY" ], "description": "FTP connection details of the feed." } ] } }, "required": [ "type", "attributes" ], "description": "Object containing feed connection details." }, "environmentId": { "type": "integer", "format": "int32", "description": "Identifier of a valid environment. Use `-1` for all environments." }, "scheduleTime": { "type": "string", "pattern": "^([0-1][0-9]|2[0-3]):([0-5][0-9])$", "description": "Scheduled time to run the feed. Format is `HH:mm`." }, "scheduleType": { "type": "string", "enum": [ "daily", "weekly", "biWeekly", "never" ], "description": "Feeds can be scheduled to be run at a given frequency." }, "uploadHistory": { "type": "array", "items": { "type": "object", "properties": { "status": { "type": "string", "enum": [ "SUCCESS", "UNKNOWN_ERROR", "PARSING_ERROR", "SERVER_NOT_FOUND", "CREDENTIALS_ERROR", "DIRECTORY_NOT_FOUND", "FILE_NOT_FOUND", "SAINT_REPORT_NOT_FOUND", "CLASSIFICATION_NOT_FOUND", "SCHEDULED", "DOWNLOADING_FEED_FILE", "IMPORTING", "FLUSHING_RESULTS", "FLUSH_FAILED" ] }, "message": { "type": "string" }, "date": { "type": "string", "format": "date-time" } } }, "required": [ "status", "message", "date" ], "readOnly": true, "description": "Feed upload history." } }, "required": [ "connection", "environmentId", "scheduleType" ] } }, "required": [ "feed" ] } ] }, "criteriaGroup": { "type": "string", "enum": [ "CUSTOM" ], "readOnly": true }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "CURRENT_CATEGORY", "FAVORITE_CATEGORY", "PROFILE_ATTRIBUTE" ], "description": "Recommendation key. Values:\n\n- `CURRENT`: The currently viewed item.\n- `LAST_VIEWED`: The last viewed item.\n- `LAST_PURCHASED`: The last purchased item.\n- `MOST_VIEWED`: The most viewed item. The recommendations are determined by items that have been most viewed.\n The score is determined by recency/frequency: 10 points for first item view, 5 points for every subsequent view,\n all points are halved after the session ends.\n- `CURRENT_CATEGORY`: The category of the currently viewed item.\n- `FAVORITE_CATEGORY`: The category among visitor's categories with highest score. The recommendations are\n determined by the categories that have been most viewed. The score is determined by recency/frequency: 10 points\n for first category view, 5 points for every subsequent view.\n- `PROFILE_ATTRIBUTE`: Profile attribute.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." } }, "required": [ "key", "configuration" ] } ] }, "description": "List of custom criteria objects." } } }, "examples": { "CriteriaCustomListResponse": { "summary": "List of custom criteria in response", "description": "A response body example of a list containing 3 custom criteria.", "value": { "offset": 42, "limit": 45, "total": 3, "list": [ { "id": 43, "name": "Snowboarding recommendations", "criteriaTitle": "Snowboarding recs", "criteriaGroup": "CUSTOM", "key": "CURRENT", "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "configuration": { "feed": { "environmentId": -1, "scheduleType": "daily", "scheduleTime": "00:00", "connection": { "type": "url", "attributes": { "URL": "https://www.adobe-weretail.com/data/32fxss/snow-recs.csv" } }, "uploadHistory": [ { "status": "SUCCESS", "message": "800/50", "date": "2018-08-08T20:17:44.000-04:00" }, { "status": "SUCCESS", "message": "800/50", "date": "2018-08-07T20:26:13.000-04:00" } ] } } }, { "id": 44, "name": "Member Trips", "criteriaTitle": "Adventure Trips", "criteriaGroup": "CUSTOM", "key": "CURRENT_CATEGORY", "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": false, "backupInclusionFilteringEnabled": true, "configuration": { "feed": { "environmentId": -1, "scheduleType": "weekly", "scheduleTime": "00:00", "connection": { "type": "url", "attributes": { "URL": "https://www.adobe-weretail.com/data/38sfon/memtrps-recs.csv" } }, "uploadHistory": [ { "status": "SUCCESS", "message": "800/50", "date": "2018-08-08T12:33:21.000-04:00" }, { "status": "SUCCESS", "message": "800/50", "date": "2018-08-01T12:36:45.000-04:00" }, { "status": "FILE_NOT_FOUND", "message": "File does not exists", "date": "2018-07-23T12:31:22.000-04:00" } ] } } }, { "id": 45, "name": "Classes Events", "criteriaTitle": "Classes & Events", "criteriaGroup": "CUSTOM", "key": "PROFILE_ATTRIBUTE", "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "configuration": { "attribute": "profile.city", "feed": { "environmentId": 2304, "scheduleType": "daily", "scheduleTime": "00:00", "connection": { "type": "ftp", "attributes": { "SERVER": "ftp://ftp.adobe-weretail.com", "DIRECTORY": "/events/e4s", "FILENAME": "classesevents.csv", "USERNAME": "johnmuir", "PASSWORD": "apZMtr+dm2jk5K7INSz5Fg==" } }, "uploadHistory": [ { "status": "SUCCESS", "message": "800/50", "date": "2018-04-21T15:10:44.000-04:00" }, { "status": "UNKNOWN_ERROR", "message": "Connect to 54.22.123.21 timed out", "date": "2018-04-20T15:12:31.000-04:00" } ] } } } ] } } } } } } } }, "post": { "tags": [ "Custom Criteria" ], "summary": "Create custom criteria", "description": "Creates a new custom criteria as specified by the settings, configuration, and feed provided and returns the newly created criteria definition.", "operationId": "createCriteriaCustom", "requestBody": { "description": "Custom criteria to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when enough recommendations from CSV feed are not applicable in design." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Applicable only when key is `PROFILE_ATTRIBUTE`. This is the profile attribute." }, "feed": { "type": "object", "properties": { "connection": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "url", "ftp" ], "description": "Protocol supported by the feed: HTTP or FTP" }, "attributes": { "oneOf": [ { "type": "object", "properties": { "URL": { "type": "string" } }, "required": [ "URL" ], "description": "HTTP location of the feed." }, { "type": "object", "properties": { "SERVER": { "type": "string" }, "USERNAME": { "type": "string" }, "PASSWORD": { "type": "string" }, "FILENAME": { "type": "string" }, "DIRECTORY": { "type": "string" } }, "required": [ "SERVER", "USERNAME", "PASSWORD", "FILENAME", "DIRECTORY" ], "description": "FTP connection details of the feed." } ] } }, "required": [ "type", "attributes" ], "description": "Object containing feed connection details." }, "environmentId": { "type": "integer", "format": "int32", "description": "Identifier of a valid environment. Use `-1` for all environments." }, "scheduleTime": { "type": "string", "pattern": "^([0-1][0-9]|2[0-3]):([0-5][0-9])$", "description": "Scheduled time to run the feed. Format is `HH:mm`." }, "scheduleType": { "type": "string", "enum": [ "daily", "weekly", "biWeekly", "never" ], "description": "Feeds can be scheduled to be run at a given frequency." }, "uploadHistory": { "type": "array", "items": { "type": "object", "properties": { "status": { "type": "string", "enum": [ "SUCCESS", "UNKNOWN_ERROR", "PARSING_ERROR", "SERVER_NOT_FOUND", "CREDENTIALS_ERROR", "DIRECTORY_NOT_FOUND", "FILE_NOT_FOUND", "SAINT_REPORT_NOT_FOUND", "CLASSIFICATION_NOT_FOUND", "SCHEDULED", "DOWNLOADING_FEED_FILE", "IMPORTING", "FLUSHING_RESULTS", "FLUSH_FAILED" ] }, "message": { "type": "string" }, "date": { "type": "string", "format": "date-time" } } }, "required": [ "status", "message", "date" ], "readOnly": true, "description": "Feed upload history." } }, "required": [ "connection", "environmentId", "scheduleType" ] } }, "required": [ "feed" ] } ] }, "criteriaGroup": { "type": "string", "enum": [ "CUSTOM" ], "readOnly": true }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "CURRENT_CATEGORY", "FAVORITE_CATEGORY", "PROFILE_ATTRIBUTE" ], "description": "Recommendation key. Values:\n\n- `CURRENT`: The currently viewed item.\n- `LAST_VIEWED`: The last viewed item.\n- `LAST_PURCHASED`: The last purchased item.\n- `MOST_VIEWED`: The most viewed item. The recommendations are determined by items that have been most viewed.\n The score is determined by recency/frequency: 10 points for first item view, 5 points for every subsequent view,\n all points are halved after the session ends.\n- `CURRENT_CATEGORY`: The category of the currently viewed item.\n- `FAVORITE_CATEGORY`: The category among visitor's categories with highest score. The recommendations are\n determined by the categories that have been most viewed. The score is determined by recency/frequency: 10 points\n for first category view, 5 points for every subsequent view.\n- `PROFILE_ATTRIBUTE`: Profile attribute.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." } }, "required": [ "key", "configuration" ] } ] }, "examples": { "CriteriaCustomRequest": { "summary": "Custom criteria in request", "description": "A request body example of a custom criteria to be created/updated.", "value": { "name": "Classes Events", "criteriaTitle": "Classes & Events", "key": "PROFILE_ATTRIBUTE", "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "configuration": { "attribute": "profile.city", "feed": { "environmentId": 2304, "scheduleType": "daily", "scheduleTime": "00:00", "connection": { "type": "ftp", "attributes": { "SERVER": "ftp://ftp.adobe-weretail.com", "DIRECTORY": "/events/e4s", "FILENAME": "classesevents.csv", "USERNAME": "johnmuir", "PASSWORD": "apZMtr+dm2jk5K7INSz5Fg==" } } } } } } } } }, "required": true }, "responses": { "201": { "description": "Criteria resource created with resource definition in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when enough recommendations from CSV feed are not applicable in design." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Applicable only when key is `PROFILE_ATTRIBUTE`. This is the profile attribute." }, "feed": { "type": "object", "properties": { "connection": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "url", "ftp" ], "description": "Protocol supported by the feed: HTTP or FTP" }, "attributes": { "oneOf": [ { "type": "object", "properties": { "URL": { "type": "string" } }, "required": [ "URL" ], "description": "HTTP location of the feed." }, { "type": "object", "properties": { "SERVER": { "type": "string" }, "USERNAME": { "type": "string" }, "PASSWORD": { "type": "string" }, "FILENAME": { "type": "string" }, "DIRECTORY": { "type": "string" } }, "required": [ "SERVER", "USERNAME", "PASSWORD", "FILENAME", "DIRECTORY" ], "description": "FTP connection details of the feed." } ] } }, "required": [ "type", "attributes" ], "description": "Object containing feed connection details." }, "environmentId": { "type": "integer", "format": "int32", "description": "Identifier of a valid environment. Use `-1` for all environments." }, "scheduleTime": { "type": "string", "pattern": "^([0-1][0-9]|2[0-3]):([0-5][0-9])$", "description": "Scheduled time to run the feed. Format is `HH:mm`." }, "scheduleType": { "type": "string", "enum": [ "daily", "weekly", "biWeekly", "never" ], "description": "Feeds can be scheduled to be run at a given frequency." }, "uploadHistory": { "type": "array", "items": { "type": "object", "properties": { "status": { "type": "string", "enum": [ "SUCCESS", "UNKNOWN_ERROR", "PARSING_ERROR", "SERVER_NOT_FOUND", "CREDENTIALS_ERROR", "DIRECTORY_NOT_FOUND", "FILE_NOT_FOUND", "SAINT_REPORT_NOT_FOUND", "CLASSIFICATION_NOT_FOUND", "SCHEDULED", "DOWNLOADING_FEED_FILE", "IMPORTING", "FLUSHING_RESULTS", "FLUSH_FAILED" ] }, "message": { "type": "string" }, "date": { "type": "string", "format": "date-time" } } }, "required": [ "status", "message", "date" ], "readOnly": true, "description": "Feed upload history." } }, "required": [ "connection", "environmentId", "scheduleType" ] } }, "required": [ "feed" ] } ] }, "criteriaGroup": { "type": "string", "enum": [ "CUSTOM" ], "readOnly": true }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "CURRENT_CATEGORY", "FAVORITE_CATEGORY", "PROFILE_ATTRIBUTE" ], "description": "Recommendation key. Values:\n\n- `CURRENT`: The currently viewed item.\n- `LAST_VIEWED`: The last viewed item.\n- `LAST_PURCHASED`: The last purchased item.\n- `MOST_VIEWED`: The most viewed item. The recommendations are determined by items that have been most viewed.\n The score is determined by recency/frequency: 10 points for first item view, 5 points for every subsequent view,\n all points are halved after the session ends.\n- `CURRENT_CATEGORY`: The category of the currently viewed item.\n- `FAVORITE_CATEGORY`: The category among visitor's categories with highest score. The recommendations are\n determined by the categories that have been most viewed. The score is determined by recency/frequency: 10 points\n for first category view, 5 points for every subsequent view.\n- `PROFILE_ATTRIBUTE`: Profile attribute.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." } }, "required": [ "key", "configuration" ] } ] }, "examples": { "CriteriaCustomResponse": { "summary": "Custom criteria in response", "description": "A response body example of a custom criteria.", "value": { "id": 45, "name": "Classes Events", "criteriaTitle": "Classes & Events", "criteriaGroup": "CUSTOM", "key": "PROFILE_ATTRIBUTE", "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "configuration": { "attribute": "profile.city", "feed": { "environmentId": 2304, "scheduleType": "daily", "scheduleTime": "00:00", "connection": { "type": "ftp", "attributes": { "SERVER": "ftp://ftp.adobe-weretail.com", "DIRECTORY": "/events/e4s", "FILENAME": "classesevents.csv", "USERNAME": "johnmuir", "PASSWORD": "apZMtr+dm2jk5K7INSz5Fg==" } }, "uploadHistory": [ { "status": "SUCCESS", "message": "800/50", "date": "2018-04-21T15:10:44.000-04:00" }, { "status": "UNKNOWN_ERROR", "message": "Connect to 54.22.123.21 timed out", "date": "2018-04-20T15:12:31.000-04:00" } ] } } } } } } } } } } }, "/criteria/custom/{id}": { "get": { "tags": [ "Custom Criteria" ], "summary": "Get custom criteria", "description": "Gets the custom criteria with the given ID.", "operationId": "getCriteriaCustom", "responses": { "200": { "description": "Successful request with criteria resource in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when enough recommendations from CSV feed are not applicable in design." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Applicable only when key is `PROFILE_ATTRIBUTE`. This is the profile attribute." }, "feed": { "type": "object", "properties": { "connection": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "url", "ftp" ], "description": "Protocol supported by the feed: HTTP or FTP" }, "attributes": { "oneOf": [ { "type": "object", "properties": { "URL": { "type": "string" } }, "required": [ "URL" ], "description": "HTTP location of the feed." }, { "type": "object", "properties": { "SERVER": { "type": "string" }, "USERNAME": { "type": "string" }, "PASSWORD": { "type": "string" }, "FILENAME": { "type": "string" }, "DIRECTORY": { "type": "string" } }, "required": [ "SERVER", "USERNAME", "PASSWORD", "FILENAME", "DIRECTORY" ], "description": "FTP connection details of the feed." } ] } }, "required": [ "type", "attributes" ], "description": "Object containing feed connection details." }, "environmentId": { "type": "integer", "format": "int32", "description": "Identifier of a valid environment. Use `-1` for all environments." }, "scheduleTime": { "type": "string", "pattern": "^([0-1][0-9]|2[0-3]):([0-5][0-9])$", "description": "Scheduled time to run the feed. Format is `HH:mm`." }, "scheduleType": { "type": "string", "enum": [ "daily", "weekly", "biWeekly", "never" ], "description": "Feeds can be scheduled to be run at a given frequency." }, "uploadHistory": { "type": "array", "items": { "type": "object", "properties": { "status": { "type": "string", "enum": [ "SUCCESS", "UNKNOWN_ERROR", "PARSING_ERROR", "SERVER_NOT_FOUND", "CREDENTIALS_ERROR", "DIRECTORY_NOT_FOUND", "FILE_NOT_FOUND", "SAINT_REPORT_NOT_FOUND", "CLASSIFICATION_NOT_FOUND", "SCHEDULED", "DOWNLOADING_FEED_FILE", "IMPORTING", "FLUSHING_RESULTS", "FLUSH_FAILED" ] }, "message": { "type": "string" }, "date": { "type": "string", "format": "date-time" } } }, "required": [ "status", "message", "date" ], "readOnly": true, "description": "Feed upload history." } }, "required": [ "connection", "environmentId", "scheduleType" ] } }, "required": [ "feed" ] } ] }, "criteriaGroup": { "type": "string", "enum": [ "CUSTOM" ], "readOnly": true }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "CURRENT_CATEGORY", "FAVORITE_CATEGORY", "PROFILE_ATTRIBUTE" ], "description": "Recommendation key. Values:\n\n- `CURRENT`: The currently viewed item.\n- `LAST_VIEWED`: The last viewed item.\n- `LAST_PURCHASED`: The last purchased item.\n- `MOST_VIEWED`: The most viewed item. The recommendations are determined by items that have been most viewed.\n The score is determined by recency/frequency: 10 points for first item view, 5 points for every subsequent view,\n all points are halved after the session ends.\n- `CURRENT_CATEGORY`: The category of the currently viewed item.\n- `FAVORITE_CATEGORY`: The category among visitor's categories with highest score. The recommendations are\n determined by the categories that have been most viewed. The score is determined by recency/frequency: 10 points\n for first category view, 5 points for every subsequent view.\n- `PROFILE_ATTRIBUTE`: Profile attribute.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." } }, "required": [ "key", "configuration" ] } ] }, "examples": { "CriteriaCustomResponse": { "summary": "Custom criteria in response", "description": "A response body example of a custom criteria.", "value": { "id": 45, "name": "Classes Events", "criteriaTitle": "Classes & Events", "criteriaGroup": "CUSTOM", "key": "PROFILE_ATTRIBUTE", "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "configuration": { "attribute": "profile.city", "feed": { "environmentId": 2304, "scheduleType": "daily", "scheduleTime": "00:00", "connection": { "type": "ftp", "attributes": { "SERVER": "ftp://ftp.adobe-weretail.com", "DIRECTORY": "/events/e4s", "FILENAME": "classesevents.csv", "USERNAME": "johnmuir", "PASSWORD": "apZMtr+dm2jk5K7INSz5Fg==" } }, "uploadHistory": [ { "status": "SUCCESS", "message": "800/50", "date": "2018-04-21T15:10:44.000-04:00" }, { "status": "UNKNOWN_ERROR", "message": "Connect to 54.22.123.21 timed out", "date": "2018-04-20T15:12:31.000-04:00" } ] } } } } } } } } } }, "put": { "tags": [ "Custom Criteria" ], "summary": "Edit custom criteria", "description": "Updates the custom criteria with new settings, configuration and feed as specified and returns the updated criteria definition.", "operationId": "updateCriteriaCustom", "requestBody": { "description": "Custom criteria to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when enough recommendations from CSV feed are not applicable in design." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Applicable only when key is `PROFILE_ATTRIBUTE`. This is the profile attribute." }, "feed": { "type": "object", "properties": { "connection": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "url", "ftp" ], "description": "Protocol supported by the feed: HTTP or FTP" }, "attributes": { "oneOf": [ { "type": "object", "properties": { "URL": { "type": "string" } }, "required": [ "URL" ], "description": "HTTP location of the feed." }, { "type": "object", "properties": { "SERVER": { "type": "string" }, "USERNAME": { "type": "string" }, "PASSWORD": { "type": "string" }, "FILENAME": { "type": "string" }, "DIRECTORY": { "type": "string" } }, "required": [ "SERVER", "USERNAME", "PASSWORD", "FILENAME", "DIRECTORY" ], "description": "FTP connection details of the feed." } ] } }, "required": [ "type", "attributes" ], "description": "Object containing feed connection details." }, "environmentId": { "type": "integer", "format": "int32", "description": "Identifier of a valid environment. Use `-1` for all environments." }, "scheduleTime": { "type": "string", "pattern": "^([0-1][0-9]|2[0-3]):([0-5][0-9])$", "description": "Scheduled time to run the feed. Format is `HH:mm`." }, "scheduleType": { "type": "string", "enum": [ "daily", "weekly", "biWeekly", "never" ], "description": "Feeds can be scheduled to be run at a given frequency." }, "uploadHistory": { "type": "array", "items": { "type": "object", "properties": { "status": { "type": "string", "enum": [ "SUCCESS", "UNKNOWN_ERROR", "PARSING_ERROR", "SERVER_NOT_FOUND", "CREDENTIALS_ERROR", "DIRECTORY_NOT_FOUND", "FILE_NOT_FOUND", "SAINT_REPORT_NOT_FOUND", "CLASSIFICATION_NOT_FOUND", "SCHEDULED", "DOWNLOADING_FEED_FILE", "IMPORTING", "FLUSHING_RESULTS", "FLUSH_FAILED" ] }, "message": { "type": "string" }, "date": { "type": "string", "format": "date-time" } } }, "required": [ "status", "message", "date" ], "readOnly": true, "description": "Feed upload history." } }, "required": [ "connection", "environmentId", "scheduleType" ] } }, "required": [ "feed" ] } ] }, "criteriaGroup": { "type": "string", "enum": [ "CUSTOM" ], "readOnly": true }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "CURRENT_CATEGORY", "FAVORITE_CATEGORY", "PROFILE_ATTRIBUTE" ], "description": "Recommendation key. Values:\n\n- `CURRENT`: The currently viewed item.\n- `LAST_VIEWED`: The last viewed item.\n- `LAST_PURCHASED`: The last purchased item.\n- `MOST_VIEWED`: The most viewed item. The recommendations are determined by items that have been most viewed.\n The score is determined by recency/frequency: 10 points for first item view, 5 points for every subsequent view,\n all points are halved after the session ends.\n- `CURRENT_CATEGORY`: The category of the currently viewed item.\n- `FAVORITE_CATEGORY`: The category among visitor's categories with highest score. The recommendations are\n determined by the categories that have been most viewed. The score is determined by recency/frequency: 10 points\n for first category view, 5 points for every subsequent view.\n- `PROFILE_ATTRIBUTE`: Profile attribute.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." } }, "required": [ "key", "configuration" ] } ] }, "examples": { "CriteriaCustomRequest": { "summary": "Custom criteria in request", "description": "A request body example of a custom criteria to be created/updated.", "value": { "name": "Classes Events", "criteriaTitle": "Classes & Events", "key": "PROFILE_ATTRIBUTE", "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "configuration": { "attribute": "profile.city", "feed": { "environmentId": 2304, "scheduleType": "daily", "scheduleTime": "00:00", "connection": { "type": "ftp", "attributes": { "SERVER": "ftp://ftp.adobe-weretail.com", "DIRECTORY": "/events/e4s", "FILENAME": "classesevents.csv", "USERNAME": "johnmuir", "PASSWORD": "apZMtr+dm2jk5K7INSz5Fg==" } } } } } } } } }, "required": true }, "responses": { "200": { "description": "Successful request with updated criteria resource in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when enough recommendations from CSV feed are not applicable in design." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Applicable only when key is `PROFILE_ATTRIBUTE`. This is the profile attribute." }, "feed": { "type": "object", "properties": { "connection": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "url", "ftp" ], "description": "Protocol supported by the feed: HTTP or FTP" }, "attributes": { "oneOf": [ { "type": "object", "properties": { "URL": { "type": "string" } }, "required": [ "URL" ], "description": "HTTP location of the feed." }, { "type": "object", "properties": { "SERVER": { "type": "string" }, "USERNAME": { "type": "string" }, "PASSWORD": { "type": "string" }, "FILENAME": { "type": "string" }, "DIRECTORY": { "type": "string" } }, "required": [ "SERVER", "USERNAME", "PASSWORD", "FILENAME", "DIRECTORY" ], "description": "FTP connection details of the feed." } ] } }, "required": [ "type", "attributes" ], "description": "Object containing feed connection details." }, "environmentId": { "type": "integer", "format": "int32", "description": "Identifier of a valid environment. Use `-1` for all environments." }, "scheduleTime": { "type": "string", "pattern": "^([0-1][0-9]|2[0-3]):([0-5][0-9])$", "description": "Scheduled time to run the feed. Format is `HH:mm`." }, "scheduleType": { "type": "string", "enum": [ "daily", "weekly", "biWeekly", "never" ], "description": "Feeds can be scheduled to be run at a given frequency." }, "uploadHistory": { "type": "array", "items": { "type": "object", "properties": { "status": { "type": "string", "enum": [ "SUCCESS", "UNKNOWN_ERROR", "PARSING_ERROR", "SERVER_NOT_FOUND", "CREDENTIALS_ERROR", "DIRECTORY_NOT_FOUND", "FILE_NOT_FOUND", "SAINT_REPORT_NOT_FOUND", "CLASSIFICATION_NOT_FOUND", "SCHEDULED", "DOWNLOADING_FEED_FILE", "IMPORTING", "FLUSHING_RESULTS", "FLUSH_FAILED" ] }, "message": { "type": "string" }, "date": { "type": "string", "format": "date-time" } } }, "required": [ "status", "message", "date" ], "readOnly": true, "description": "Feed upload history." } }, "required": [ "connection", "environmentId", "scheduleType" ] } }, "required": [ "feed" ] } ] }, "criteriaGroup": { "type": "string", "enum": [ "CUSTOM" ], "readOnly": true }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "CURRENT_CATEGORY", "FAVORITE_CATEGORY", "PROFILE_ATTRIBUTE" ], "description": "Recommendation key. Values:\n\n- `CURRENT`: The currently viewed item.\n- `LAST_VIEWED`: The last viewed item.\n- `LAST_PURCHASED`: The last purchased item.\n- `MOST_VIEWED`: The most viewed item. The recommendations are determined by items that have been most viewed.\n The score is determined by recency/frequency: 10 points for first item view, 5 points for every subsequent view,\n all points are halved after the session ends.\n- `CURRENT_CATEGORY`: The category of the currently viewed item.\n- `FAVORITE_CATEGORY`: The category among visitor's categories with highest score. The recommendations are\n determined by the categories that have been most viewed. The score is determined by recency/frequency: 10 points\n for first category view, 5 points for every subsequent view.\n- `PROFILE_ATTRIBUTE`: Profile attribute.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." } }, "required": [ "key", "configuration" ] } ] }, "examples": { "CriteriaCustomResponse": { "summary": "Custom criteria in response", "description": "A response body example of a custom criteria.", "value": { "id": 45, "name": "Classes Events", "criteriaTitle": "Classes & Events", "criteriaGroup": "CUSTOM", "key": "PROFILE_ATTRIBUTE", "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "configuration": { "attribute": "profile.city", "feed": { "environmentId": 2304, "scheduleType": "daily", "scheduleTime": "00:00", "connection": { "type": "ftp", "attributes": { "SERVER": "ftp://ftp.adobe-weretail.com", "DIRECTORY": "/events/e4s", "FILENAME": "classesevents.csv", "USERNAME": "johnmuir", "PASSWORD": "apZMtr+dm2jk5K7INSz5Fg==" } }, "uploadHistory": [ { "status": "SUCCESS", "message": "800/50", "date": "2018-04-21T15:10:44.000-04:00" }, { "status": "UNKNOWN_ERROR", "message": "Connect to 54.22.123.21 timed out", "date": "2018-04-20T15:12:31.000-04:00" } ] } } } } } } } } } }, "delete": { "tags": [ "Custom Criteria" ], "summary": "Delete custom criteria", "description": "Deletes the custom criteria referenced by the given ID.", "operationId": "deleteCriteriaCustom", "responses": { "200": { "description": "Successful request with deleted criteria resource in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when enough recommendations from CSV feed are not applicable in design." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Applicable only when key is `PROFILE_ATTRIBUTE`. This is the profile attribute." }, "feed": { "type": "object", "properties": { "connection": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "url", "ftp" ], "description": "Protocol supported by the feed: HTTP or FTP" }, "attributes": { "oneOf": [ { "type": "object", "properties": { "URL": { "type": "string" } }, "required": [ "URL" ], "description": "HTTP location of the feed." }, { "type": "object", "properties": { "SERVER": { "type": "string" }, "USERNAME": { "type": "string" }, "PASSWORD": { "type": "string" }, "FILENAME": { "type": "string" }, "DIRECTORY": { "type": "string" } }, "required": [ "SERVER", "USERNAME", "PASSWORD", "FILENAME", "DIRECTORY" ], "description": "FTP connection details of the feed." } ] } }, "required": [ "type", "attributes" ], "description": "Object containing feed connection details." }, "environmentId": { "type": "integer", "format": "int32", "description": "Identifier of a valid environment. Use `-1` for all environments." }, "scheduleTime": { "type": "string", "pattern": "^([0-1][0-9]|2[0-3]):([0-5][0-9])$", "description": "Scheduled time to run the feed. Format is `HH:mm`." }, "scheduleType": { "type": "string", "enum": [ "daily", "weekly", "biWeekly", "never" ], "description": "Feeds can be scheduled to be run at a given frequency." }, "uploadHistory": { "type": "array", "items": { "type": "object", "properties": { "status": { "type": "string", "enum": [ "SUCCESS", "UNKNOWN_ERROR", "PARSING_ERROR", "SERVER_NOT_FOUND", "CREDENTIALS_ERROR", "DIRECTORY_NOT_FOUND", "FILE_NOT_FOUND", "SAINT_REPORT_NOT_FOUND", "CLASSIFICATION_NOT_FOUND", "SCHEDULED", "DOWNLOADING_FEED_FILE", "IMPORTING", "FLUSHING_RESULTS", "FLUSH_FAILED" ] }, "message": { "type": "string" }, "date": { "type": "string", "format": "date-time" } } }, "required": [ "status", "message", "date" ], "readOnly": true, "description": "Feed upload history." } }, "required": [ "connection", "environmentId", "scheduleType" ] } }, "required": [ "feed" ] } ] }, "criteriaGroup": { "type": "string", "enum": [ "CUSTOM" ], "readOnly": true }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "CURRENT_CATEGORY", "FAVORITE_CATEGORY", "PROFILE_ATTRIBUTE" ], "description": "Recommendation key. Values:\n\n- `CURRENT`: The currently viewed item.\n- `LAST_VIEWED`: The last viewed item.\n- `LAST_PURCHASED`: The last purchased item.\n- `MOST_VIEWED`: The most viewed item. The recommendations are determined by items that have been most viewed.\n The score is determined by recency/frequency: 10 points for first item view, 5 points for every subsequent view,\n all points are halved after the session ends.\n- `CURRENT_CATEGORY`: The category of the currently viewed item.\n- `FAVORITE_CATEGORY`: The category among visitor's categories with highest score. The recommendations are\n determined by the categories that have been most viewed. The score is determined by recency/frequency: 10 points\n for first category view, 5 points for every subsequent view.\n- `PROFILE_ATTRIBUTE`: Profile attribute.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." } }, "required": [ "key", "configuration" ] } ] }, "examples": { "CriteriaCustomResponse": { "summary": "Custom criteria in response", "description": "A response body example of a custom criteria.", "value": { "id": 45, "name": "Classes Events", "criteriaTitle": "Classes & Events", "criteriaGroup": "CUSTOM", "key": "PROFILE_ATTRIBUTE", "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "configuration": { "attribute": "profile.city", "feed": { "environmentId": 2304, "scheduleType": "daily", "scheduleTime": "00:00", "connection": { "type": "ftp", "attributes": { "SERVER": "ftp://ftp.adobe-weretail.com", "DIRECTORY": "/events/e4s", "FILENAME": "classesevents.csv", "USERNAME": "johnmuir", "PASSWORD": "apZMtr+dm2jk5K7INSz5Fg==" } }, "uploadHistory": [ { "status": "SUCCESS", "message": "800/50", "date": "2018-04-21T15:10:44.000-04:00" }, { "status": "UNKNOWN_ERROR", "message": "Connect to 54.22.123.21 timed out", "date": "2018-04-20T15:12:31.000-04:00" } ] } } } } } } } } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ] }, "/criteria/item": { "get": { "tags": [ "Item Criteria" ], "summary": "List item criteria", "description": "Gets all available item based criteria.", "operationId": "getAllCriteriaItem", "parameters": [ { "name": "offset", "in": "query", "description": "Number of resources to skip from start in the server list. If not specified, the response list will start from first available resource.", "required": false, "schema": { "type": "integer", "format": "int32", "description": "Number of resources skipped from start in the server list and omitted in response." } }, { "name": "limit", "in": "query", "description": "Number of resources to request. If not specified, the response will include all available resources.", "required": false, "schema": { "type": "integer", "format": "int32", "description": "Number of resources shown in the response." } } ], "responses": { "200": { "description": "Successful request with list of item criteria resources in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "type": "object", "properties": { "offset": { "type": "integer", "format": "int32", "description": "Number of resources skipped from start in the server list and omitted in response." }, "limit": { "type": "integer", "format": "int32", "description": "Number of resources shown in the response." }, "total": { "type": "integer", "format": "int32", "description": "Number of resources returned in the response." }, "list": { "type": "array", "items": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, last viewed item, for instance, then continues to\n next last viewed item by visitor until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, last purchased\n item, for instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, second to last purchased item by visitor is considered and so forth until the design is\n filled.\n\nIf the key is `CURRENT`, only `NONE` is valid.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "confidence": { "type": "string", "enum": [ "VERY_WEAK", "WEAK", "MODERATE", "STRONG", "VERY_STRONG" ], "description": "Applicable only when type is `SITE_AFFINITY`. This determines how much data (strong or weak affinity) is required before a recommendation is presented." }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite. A report suite can not be used when type is `SIMILARITY`." }, "minSimilarity": { "type": "number", "format": "double", "minimum": 0.1, "maximum": 0.98, "default": 0.4, "description": "Applicable only when type is `SIMILARITY`. This is the threshold of minimum similarity required for two entities to be deemed similar. Lower number implies products will be more similar. But lower the number, criteria execution is exponentially longer." }, "pastBehaviorOrdinal": { "type": "integer", "format": "int32" } } } ] }, "criteriaGroup": { "type": "string", "enum": [ "ITEM" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED" ], "description": "Recommendation key. Values:\n\n- `CURRENT`: The currently viewed item.\n- `LAST_VIEWED`: The last viewed item.\n- `LAST_PURCHASED`: The last purchased item.\n- `MOST_VIEWED`: The most viewed item. The recommendations are determined by items that have been most viewed.\n The score is determined by recency/frequency: 10 points for first item view, 5 points for every subsequent view,\n all points are halved after the session ends.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "type": { "type": "string", "enum": [ "VIEWED_BOUGHT", "BOUGHT_CF", "VIEWED_CF", "SITE_AFFINITY", "SIMILARITY" ], "description": "Recommendation logic. Values:\n\n - `VIEWED_BOUGHT`: People who viewed this, bought that.\n - `BOUGHT_CF`: People who bought this, bought that.\n - `VIEWED_CF`: People who viewed this, viewed that.\n - `SITE_AFFINITY`: Considers items based on the certainty of a relationship between items. Confidence setting is\n used to determine how much data (strong or weak affinity) is required before a recommendation is presented.\n - `SIMILARITY`: Considers items similar to items based on current page activity or past visitor behavior.\n" } }, "required": [ "configuration", "daysCount", "key", "type" ] } ] }, "description": "List of item criteria objects." } } }, "examples": { "CriteriaItemListResponse": { "summary": "List of item criteria in response", "description": "A response body example of a list containing 3 item based criteria.", "value": { "offset": 0, "limit": 3, "total": 3, "list": [ { "id": 1, "name": "Items after buying road bike", "criteriaGroup": "ITEM", "type": "BOUGHT_CF", "key": "CURRENT", "aggregation": "NONE", "daysCount": "TWO_WEEKS", "minInventory": 1, "partialDesignAllowed": false, "backupDisabled": false, "excludePurchases": false, "enableCaching": false, "backupInclusionFilteringEnabled": true, "configuration": { "inclusionRules": [ { "attribute": "category", "operation": "contains", "source": { "name": "category", "type": "ENTITY", "excludeAllWhenEmpty": true } }, { "attribute": "category", "operation": "contains", "values": [ "bike-road" ] } ], "pastBehaviorOrdinal": -1 } }, { "id": 2, "name": "Similar items", "criteriaGroup": "ITEM", "type": "BOUGHT_CF", "key": "CURRENT", "aggregation": "NONE", "daysCount": "TWO_WEEKS", "minInventory": 1, "partialDesignAllowed": false, "backupDisabled": true, "excludePurchases": false, "enableCaching": true, "backupInclusionFilteringEnabled": true, "configuration": { "inclusionRules": [ { "attribute": "brand", "operation": "contains", "source": { "name": "brand", "defaultValue": "rei-coop", "type": "ENTITY" } } ], "pastBehaviorOrdinal": -1 } }, { "id": 3, "name": "Viewed items by users who last purchased current item", "criteriaGroup": "ITEM", "type": "VIEWED_BOUGHT", "key": "CURRENT", "aggregation": "NONE", "daysCount": "TWO_WEEKS", "minInventory": 1, "partialDesignAllowed": true, "backupDisabled": true, "excludePurchases": false, "enableCaching": false, "backupInclusionFilteringEnabled": false, "configuration": { "pastBehaviorOrdinal": 0 } } ] } } } } } } } }, "post": { "tags": [ "Item Criteria" ], "summary": "Create item criteria", "description": "Creates a new item based criteria as specified by the settings and configuration provided and returns the newly created criteria definition.", "operationId": "createCriteriaItem", "requestBody": { "description": "Item based criteria to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, last viewed item, for instance, then continues to\n next last viewed item by visitor until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, last purchased\n item, for instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, second to last purchased item by visitor is considered and so forth until the design is\n filled.\n\nIf the key is `CURRENT`, only `NONE` is valid.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "confidence": { "type": "string", "enum": [ "VERY_WEAK", "WEAK", "MODERATE", "STRONG", "VERY_STRONG" ], "description": "Applicable only when type is `SITE_AFFINITY`. This determines how much data (strong or weak affinity) is required before a recommendation is presented." }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite. A report suite can not be used when type is `SIMILARITY`." }, "minSimilarity": { "type": "number", "format": "double", "minimum": 0.1, "maximum": 0.98, "default": 0.4, "description": "Applicable only when type is `SIMILARITY`. This is the threshold of minimum similarity required for two entities to be deemed similar. Lower number implies products will be more similar. But lower the number, criteria execution is exponentially longer." }, "pastBehaviorOrdinal": { "type": "integer", "format": "int32" } } } ] }, "criteriaGroup": { "type": "string", "enum": [ "ITEM" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED" ], "description": "Recommendation key. Values:\n\n- `CURRENT`: The currently viewed item.\n- `LAST_VIEWED`: The last viewed item.\n- `LAST_PURCHASED`: The last purchased item.\n- `MOST_VIEWED`: The most viewed item. The recommendations are determined by items that have been most viewed.\n The score is determined by recency/frequency: 10 points for first item view, 5 points for every subsequent view,\n all points are halved after the session ends.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "type": { "type": "string", "enum": [ "VIEWED_BOUGHT", "BOUGHT_CF", "VIEWED_CF", "SITE_AFFINITY", "SIMILARITY" ], "description": "Recommendation logic. Values:\n\n - `VIEWED_BOUGHT`: People who viewed this, bought that.\n - `BOUGHT_CF`: People who bought this, bought that.\n - `VIEWED_CF`: People who viewed this, viewed that.\n - `SITE_AFFINITY`: Considers items based on the certainty of a relationship between items. Confidence setting is\n used to determine how much data (strong or weak affinity) is required before a recommendation is presented.\n - `SIMILARITY`: Considers items similar to items based on current page activity or past visitor behavior.\n" } }, "required": [ "configuration", "daysCount", "key", "type" ] } ] }, "examples": { "CriteriaItemRequest": { "summary": "Item criteria in request", "description": "A request body example of an item based criteria to be created/updated.", "value": { "name": "Items after buying road bike", "criteriaGroup": "ITEM", "type": "BOUGHT_CF", "key": "CURRENT", "aggregation": "NONE", "daysCount": "TWO_WEEKS", "minInventory": 1, "partialDesignAllowed": false, "backupDisabled": false, "excludePurchases": false, "backupInclusionFilteringEnabled": true, "configuration": { "inclusionRules": [ { "attribute": "category", "operation": "contains", "source": { "name": "category", "type": "ENTITY", "excludeAllWhenEmpty": true } }, { "attribute": "category", "operation": "contains", "values": [ "bike-road" ] } ], "pastBehaviorOrdinal": -1 } } } } } }, "required": true }, "responses": { "201": { "description": "Criteria resource created with resource definition in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, last viewed item, for instance, then continues to\n next last viewed item by visitor until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, last purchased\n item, for instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, second to last purchased item by visitor is considered and so forth until the design is\n filled.\n\nIf the key is `CURRENT`, only `NONE` is valid.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "confidence": { "type": "string", "enum": [ "VERY_WEAK", "WEAK", "MODERATE", "STRONG", "VERY_STRONG" ], "description": "Applicable only when type is `SITE_AFFINITY`. This determines how much data (strong or weak affinity) is required before a recommendation is presented." }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite. A report suite can not be used when type is `SIMILARITY`." }, "minSimilarity": { "type": "number", "format": "double", "minimum": 0.1, "maximum": 0.98, "default": 0.4, "description": "Applicable only when type is `SIMILARITY`. This is the threshold of minimum similarity required for two entities to be deemed similar. Lower number implies products will be more similar. But lower the number, criteria execution is exponentially longer." }, "pastBehaviorOrdinal": { "type": "integer", "format": "int32" } } } ] }, "criteriaGroup": { "type": "string", "enum": [ "ITEM" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED" ], "description": "Recommendation key. Values:\n\n- `CURRENT`: The currently viewed item.\n- `LAST_VIEWED`: The last viewed item.\n- `LAST_PURCHASED`: The last purchased item.\n- `MOST_VIEWED`: The most viewed item. The recommendations are determined by items that have been most viewed.\n The score is determined by recency/frequency: 10 points for first item view, 5 points for every subsequent view,\n all points are halved after the session ends.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "type": { "type": "string", "enum": [ "VIEWED_BOUGHT", "BOUGHT_CF", "VIEWED_CF", "SITE_AFFINITY", "SIMILARITY" ], "description": "Recommendation logic. Values:\n\n - `VIEWED_BOUGHT`: People who viewed this, bought that.\n - `BOUGHT_CF`: People who bought this, bought that.\n - `VIEWED_CF`: People who viewed this, viewed that.\n - `SITE_AFFINITY`: Considers items based on the certainty of a relationship between items. Confidence setting is\n used to determine how much data (strong or weak affinity) is required before a recommendation is presented.\n - `SIMILARITY`: Considers items similar to items based on current page activity or past visitor behavior.\n" } }, "required": [ "configuration", "daysCount", "key", "type" ] } ] }, "examples": { "CriteriaItemResponse": { "summary": "Item criteria in response", "description": "A response body example of an item based criteria.", "value": { "id": 2, "name": "Similar items", "criteriaGroup": "ITEM", "type": "BOUGHT_CF", "key": "CURRENT", "aggregation": "NONE", "daysCount": "TWO_WEEKS", "minInventory": 1, "partialDesignAllowed": false, "backupDisabled": true, "excludePurchases": false, "enableCaching": true, "backupInclusionFilteringEnabled": true, "configuration": { "inclusionRules": [ { "attribute": "brand", "operation": "contains", "source": { "name": "brand", "defaultValue": "rei-coop", "type": "ENTITY" } } ], "pastBehaviorOrdinal": -1 } } } } } } } } } }, "/criteria/item/{id}": { "get": { "tags": [ "Item Criteria" ], "summary": "Get item criteria", "description": "Gets the item based criteria with the given ID.", "operationId": "getCriteriaItem", "responses": { "200": { "description": "Successful request with criteria resource in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, last viewed item, for instance, then continues to\n next last viewed item by visitor until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, last purchased\n item, for instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, second to last purchased item by visitor is considered and so forth until the design is\n filled.\n\nIf the key is `CURRENT`, only `NONE` is valid.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "confidence": { "type": "string", "enum": [ "VERY_WEAK", "WEAK", "MODERATE", "STRONG", "VERY_STRONG" ], "description": "Applicable only when type is `SITE_AFFINITY`. This determines how much data (strong or weak affinity) is required before a recommendation is presented." }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite. A report suite can not be used when type is `SIMILARITY`." }, "minSimilarity": { "type": "number", "format": "double", "minimum": 0.1, "maximum": 0.98, "default": 0.4, "description": "Applicable only when type is `SIMILARITY`. This is the threshold of minimum similarity required for two entities to be deemed similar. Lower number implies products will be more similar. But lower the number, criteria execution is exponentially longer." }, "pastBehaviorOrdinal": { "type": "integer", "format": "int32" } } } ] }, "criteriaGroup": { "type": "string", "enum": [ "ITEM" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED" ], "description": "Recommendation key. Values:\n\n- `CURRENT`: The currently viewed item.\n- `LAST_VIEWED`: The last viewed item.\n- `LAST_PURCHASED`: The last purchased item.\n- `MOST_VIEWED`: The most viewed item. The recommendations are determined by items that have been most viewed.\n The score is determined by recency/frequency: 10 points for first item view, 5 points for every subsequent view,\n all points are halved after the session ends.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "type": { "type": "string", "enum": [ "VIEWED_BOUGHT", "BOUGHT_CF", "VIEWED_CF", "SITE_AFFINITY", "SIMILARITY" ], "description": "Recommendation logic. Values:\n\n - `VIEWED_BOUGHT`: People who viewed this, bought that.\n - `BOUGHT_CF`: People who bought this, bought that.\n - `VIEWED_CF`: People who viewed this, viewed that.\n - `SITE_AFFINITY`: Considers items based on the certainty of a relationship between items. Confidence setting is\n used to determine how much data (strong or weak affinity) is required before a recommendation is presented.\n - `SIMILARITY`: Considers items similar to items based on current page activity or past visitor behavior.\n" } }, "required": [ "configuration", "daysCount", "key", "type" ] } ] }, "examples": { "CriteriaItemResponse": { "summary": "Item criteria in response", "description": "A response body example of an item based criteria.", "value": { "id": 2, "name": "Similar items", "criteriaGroup": "ITEM", "type": "BOUGHT_CF", "key": "CURRENT", "aggregation": "NONE", "daysCount": "TWO_WEEKS", "minInventory": 1, "partialDesignAllowed": false, "backupDisabled": true, "excludePurchases": false, "enableCaching": true, "backupInclusionFilteringEnabled": true, "configuration": { "inclusionRules": [ { "attribute": "brand", "operation": "contains", "source": { "name": "brand", "defaultValue": "rei-coop", "type": "ENTITY" } } ], "pastBehaviorOrdinal": -1 } } } } } } } } }, "put": { "tags": [ "Item Criteria" ], "summary": "Edit item criteria", "description": "Updates the item based criteria with new settings and configuration as specified and returns the updated criteria definition.", "operationId": "updateCriteriaItem", "requestBody": { "description": "Item based criteria to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, last viewed item, for instance, then continues to\n next last viewed item by visitor until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, last purchased\n item, for instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, second to last purchased item by visitor is considered and so forth until the design is\n filled.\n\nIf the key is `CURRENT`, only `NONE` is valid.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "confidence": { "type": "string", "enum": [ "VERY_WEAK", "WEAK", "MODERATE", "STRONG", "VERY_STRONG" ], "description": "Applicable only when type is `SITE_AFFINITY`. This determines how much data (strong or weak affinity) is required before a recommendation is presented." }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite. A report suite can not be used when type is `SIMILARITY`." }, "minSimilarity": { "type": "number", "format": "double", "minimum": 0.1, "maximum": 0.98, "default": 0.4, "description": "Applicable only when type is `SIMILARITY`. This is the threshold of minimum similarity required for two entities to be deemed similar. Lower number implies products will be more similar. But lower the number, criteria execution is exponentially longer." }, "pastBehaviorOrdinal": { "type": "integer", "format": "int32" } } } ] }, "criteriaGroup": { "type": "string", "enum": [ "ITEM" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED" ], "description": "Recommendation key. Values:\n\n- `CURRENT`: The currently viewed item.\n- `LAST_VIEWED`: The last viewed item.\n- `LAST_PURCHASED`: The last purchased item.\n- `MOST_VIEWED`: The most viewed item. The recommendations are determined by items that have been most viewed.\n The score is determined by recency/frequency: 10 points for first item view, 5 points for every subsequent view,\n all points are halved after the session ends.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "type": { "type": "string", "enum": [ "VIEWED_BOUGHT", "BOUGHT_CF", "VIEWED_CF", "SITE_AFFINITY", "SIMILARITY" ], "description": "Recommendation logic. Values:\n\n - `VIEWED_BOUGHT`: People who viewed this, bought that.\n - `BOUGHT_CF`: People who bought this, bought that.\n - `VIEWED_CF`: People who viewed this, viewed that.\n - `SITE_AFFINITY`: Considers items based on the certainty of a relationship between items. Confidence setting is\n used to determine how much data (strong or weak affinity) is required before a recommendation is presented.\n - `SIMILARITY`: Considers items similar to items based on current page activity or past visitor behavior.\n" } }, "required": [ "configuration", "daysCount", "key", "type" ] } ] }, "examples": { "CriteriaItemRequest": { "summary": "Item criteria in request", "description": "A request body example of an item based criteria to be created/updated.", "value": { "name": "Items after buying road bike", "criteriaGroup": "ITEM", "type": "BOUGHT_CF", "key": "CURRENT", "aggregation": "NONE", "daysCount": "TWO_WEEKS", "minInventory": 1, "partialDesignAllowed": false, "backupDisabled": false, "excludePurchases": false, "backupInclusionFilteringEnabled": true, "configuration": { "inclusionRules": [ { "attribute": "category", "operation": "contains", "source": { "name": "category", "type": "ENTITY", "excludeAllWhenEmpty": true } }, { "attribute": "category", "operation": "contains", "values": [ "bike-road" ] } ], "pastBehaviorOrdinal": -1 } } } } } }, "required": true }, "responses": { "200": { "description": "Successful request with updated criteria resource in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, last viewed item, for instance, then continues to\n next last viewed item by visitor until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, last purchased\n item, for instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, second to last purchased item by visitor is considered and so forth until the design is\n filled.\n\nIf the key is `CURRENT`, only `NONE` is valid.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "confidence": { "type": "string", "enum": [ "VERY_WEAK", "WEAK", "MODERATE", "STRONG", "VERY_STRONG" ], "description": "Applicable only when type is `SITE_AFFINITY`. This determines how much data (strong or weak affinity) is required before a recommendation is presented." }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite. A report suite can not be used when type is `SIMILARITY`." }, "minSimilarity": { "type": "number", "format": "double", "minimum": 0.1, "maximum": 0.98, "default": 0.4, "description": "Applicable only when type is `SIMILARITY`. This is the threshold of minimum similarity required for two entities to be deemed similar. Lower number implies products will be more similar. But lower the number, criteria execution is exponentially longer." }, "pastBehaviorOrdinal": { "type": "integer", "format": "int32" } } } ] }, "criteriaGroup": { "type": "string", "enum": [ "ITEM" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED" ], "description": "Recommendation key. Values:\n\n- `CURRENT`: The currently viewed item.\n- `LAST_VIEWED`: The last viewed item.\n- `LAST_PURCHASED`: The last purchased item.\n- `MOST_VIEWED`: The most viewed item. The recommendations are determined by items that have been most viewed.\n The score is determined by recency/frequency: 10 points for first item view, 5 points for every subsequent view,\n all points are halved after the session ends.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "type": { "type": "string", "enum": [ "VIEWED_BOUGHT", "BOUGHT_CF", "VIEWED_CF", "SITE_AFFINITY", "SIMILARITY" ], "description": "Recommendation logic. Values:\n\n - `VIEWED_BOUGHT`: People who viewed this, bought that.\n - `BOUGHT_CF`: People who bought this, bought that.\n - `VIEWED_CF`: People who viewed this, viewed that.\n - `SITE_AFFINITY`: Considers items based on the certainty of a relationship between items. Confidence setting is\n used to determine how much data (strong or weak affinity) is required before a recommendation is presented.\n - `SIMILARITY`: Considers items similar to items based on current page activity or past visitor behavior.\n" } }, "required": [ "configuration", "daysCount", "key", "type" ] } ] }, "examples": { "CriteriaItemResponse": { "summary": "Item criteria in response", "description": "A response body example of an item based criteria.", "value": { "id": 2, "name": "Similar items", "criteriaGroup": "ITEM", "type": "BOUGHT_CF", "key": "CURRENT", "aggregation": "NONE", "daysCount": "TWO_WEEKS", "minInventory": 1, "partialDesignAllowed": false, "backupDisabled": true, "excludePurchases": false, "enableCaching": true, "backupInclusionFilteringEnabled": true, "configuration": { "inclusionRules": [ { "attribute": "brand", "operation": "contains", "source": { "name": "brand", "defaultValue": "rei-coop", "type": "ENTITY" } } ], "pastBehaviorOrdinal": -1 } } } } } } } } }, "delete": { "tags": [ "Item Criteria" ], "summary": "Delete item criteria", "description": "Deletes the item based criteria referenced by the given ID.", "operationId": "deleteCriteriaItem", "responses": { "200": { "description": "Successful request with deleted criteria resource in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, last viewed item, for instance, then continues to\n next last viewed item by visitor until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, last purchased\n item, for instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, second to last purchased item by visitor is considered and so forth until the design is\n filled.\n\nIf the key is `CURRENT`, only `NONE` is valid.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "confidence": { "type": "string", "enum": [ "VERY_WEAK", "WEAK", "MODERATE", "STRONG", "VERY_STRONG" ], "description": "Applicable only when type is `SITE_AFFINITY`. This determines how much data (strong or weak affinity) is required before a recommendation is presented." }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite. A report suite can not be used when type is `SIMILARITY`." }, "minSimilarity": { "type": "number", "format": "double", "minimum": 0.1, "maximum": 0.98, "default": 0.4, "description": "Applicable only when type is `SIMILARITY`. This is the threshold of minimum similarity required for two entities to be deemed similar. Lower number implies products will be more similar. But lower the number, criteria execution is exponentially longer." }, "pastBehaviorOrdinal": { "type": "integer", "format": "int32" } } } ] }, "criteriaGroup": { "type": "string", "enum": [ "ITEM" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED" ], "description": "Recommendation key. Values:\n\n- `CURRENT`: The currently viewed item.\n- `LAST_VIEWED`: The last viewed item.\n- `LAST_PURCHASED`: The last purchased item.\n- `MOST_VIEWED`: The most viewed item. The recommendations are determined by items that have been most viewed.\n The score is determined by recency/frequency: 10 points for first item view, 5 points for every subsequent view,\n all points are halved after the session ends.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "type": { "type": "string", "enum": [ "VIEWED_BOUGHT", "BOUGHT_CF", "VIEWED_CF", "SITE_AFFINITY", "SIMILARITY" ], "description": "Recommendation logic. Values:\n\n - `VIEWED_BOUGHT`: People who viewed this, bought that.\n - `BOUGHT_CF`: People who bought this, bought that.\n - `VIEWED_CF`: People who viewed this, viewed that.\n - `SITE_AFFINITY`: Considers items based on the certainty of a relationship between items. Confidence setting is\n used to determine how much data (strong or weak affinity) is required before a recommendation is presented.\n - `SIMILARITY`: Considers items similar to items based on current page activity or past visitor behavior.\n" } }, "required": [ "configuration", "daysCount", "key", "type" ] } ] }, "examples": { "CriteriaItemResponse": { "summary": "Item criteria in response", "description": "A response body example of an item based criteria.", "value": { "id": 2, "name": "Similar items", "criteriaGroup": "ITEM", "type": "BOUGHT_CF", "key": "CURRENT", "aggregation": "NONE", "daysCount": "TWO_WEEKS", "minInventory": 1, "partialDesignAllowed": false, "backupDisabled": true, "excludePurchases": false, "enableCaching": true, "backupInclusionFilteringEnabled": true, "configuration": { "inclusionRules": [ { "attribute": "brand", "operation": "contains", "source": { "name": "brand", "defaultValue": "rei-coop", "type": "ENTITY" } } ], "pastBehaviorOrdinal": -1 } } } } } } } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ] }, "/criteria/popularity": { "get": { "tags": [ "Popularity Criteria" ], "summary": "List popularity criteria", "description": "Gets all available popularity based criteria.", "operationId": "getAllCriteriaPopularity", "parameters": [ { "name": "offset", "in": "query", "description": "Number of resources to skip from start in the server list. If not specified, the response list will start from first available resource.", "required": false, "schema": { "type": "integer", "format": "int32", "description": "Number of resources skipped from start in the server list and omitted in response." } }, { "name": "limit", "in": "query", "description": "Number of resources to request. If not specified, the response will include all available resources.", "required": false, "schema": { "type": "integer", "format": "int32", "description": "Number of resources shown in the response." } } ], "responses": { "200": { "description": "Successful request with list of popularity criteria resources in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "type": "object", "properties": { "offset": { "type": "integer", "format": "int32", "description": "Number of resources skipped from start in the server list and omitted in response." }, "limit": { "type": "integer", "format": "int32", "description": "Number of resources shown in the response." }, "total": { "type": "integer", "format": "int32", "description": "Number of resources returned in the response." }, "list": { "type": "array", "items": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, top seller in this instance, then continues to next\n top seller until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, most viewed item\n in this instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, next most viewed item is considered sequentially until the design is filled.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid report suite. If type is `METRIC`, this field is required and value must be a valid report suite." }, "grouping": { "type": "object", "properties": { "attributes": { "type": "array", "items": { "type": "string", "maxLength": 250, "pattern": "^(profile\\.|user\\.).+" }, "maxItems": 10, "description": "Array of profile attributes." }, "type": { "type": "string", "enum": [ "HIERARCHICAL", "SEQUENTIAL" ] } }, "description": "Not applicable for type `METRIC`. Grouping allows to narrow recommendations by profile attributes.", "required": [ "attributes", "type" ] }, "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Applicable for type `SELLERS` or `VIEWED`. Required only for top sellers by custom profile attribute/most viewed by custom profile attribute\n(that is, when key is `customProfileAttribute`).\n\nThe custom profile attribute to be used as the basis for providing recommendations. The value should include the prefix `user.` or `profile.`.\n" }, "groupByEntityAttribute": { "type": "string", "description": "Applicable for type `SELLERS` or `VIEWED`. Required only for top sellers by custom profile attribute/most viewed by custom profile attribute\n(that is, when key is `customProfileAttribute`).\n\nThe entity attribute whose value will be matched to the custom profile attribute, in order to provide the list of\ntop sellers/most viewed items among those items with a matching attribute value. The value should **not** include the prefix `entity.`.\n" } } } ] }, "criteriaGroup": { "type": "string", "enum": [ "POPULARITY" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `hoursCount`\n" }, "hoursCount": { "type": "integer", "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `daysCount`. Only allowed value `6`\n" }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "description": "Recommendation key. Values:\n - When type is `METRIC`, this is a required field. The value is the name of an Analytics report suite metric.\n - When type is `SELLERS` or `VIEWED`, this field is only used when creating a top sellers by custom profile attribute/most\n viewed by custom profile attribute criteria. When creating this criteria type, the value should be set to\n `customProfileAttribute` and the profile attribute is set in configuration.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "type": { "type": "string", "enum": [ "SELLERS", "VIEWED", "METRIC" ], "description": "Recommendation logic. Values:\n\n - `SELLERS`: Top sellers.\n - `VIEWED`: Most viewed items.\n - `METRIC`: Considers Analytics product report suite for recommendations.\n" } }, "required": [ "type" ] } ] }, "description": "List of popularity criteria objects." } } }, "examples": { "CriteriaPopularityListResponse": { "summary": "List of popularity criteria in response", "description": "A response body example of a list containing 3 popularity based criteria.", "value": { "offset": 0, "limit": 2147483647, "total": 2, "list": [ { "id": 3422, "name": "Garage Top Viewed", "criteriaGroup": "POPULARITY", "type": "VIEWED", "aggregation": "NONE", "daysCount": "TWO_DAYS", "minInventory": 2, "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "configuration": { "datasource": "mboxes" } }, { "id": 9321, "name": "Top sold by region", "criteriaGroup": "POPULARITY", "type": "SELLERS", "aggregation": "ALL_OR_NOTHING", "daysCount": "ONE_MONTH", "configuration": { "datasource": "mboxes", "grouping": { "type": "SEQUENTIAL", "attributes": [ "user.city", "user.county", "user.state" ] } } } ] } } } } } } } }, "post": { "tags": [ "Popularity Criteria" ], "summary": "Create popularity criteria", "description": "Creates a new popularity based criteria as specified by the settings and configuration provided and returns the newly created criteria definition.", "operationId": "createCriteriaPopularity", "requestBody": { "description": "Popularity based criteria to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, top seller in this instance, then continues to next\n top seller until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, most viewed item\n in this instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, next most viewed item is considered sequentially until the design is filled.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid report suite. If type is `METRIC`, this field is required and value must be a valid report suite." }, "grouping": { "type": "object", "properties": { "attributes": { "type": "array", "items": { "type": "string", "maxLength": 250, "pattern": "^(profile\\.|user\\.).+" }, "maxItems": 10, "description": "Array of profile attributes." }, "type": { "type": "string", "enum": [ "HIERARCHICAL", "SEQUENTIAL" ] } }, "description": "Not applicable for type `METRIC`. Grouping allows to narrow recommendations by profile attributes.", "required": [ "attributes", "type" ] }, "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Applicable for type `SELLERS` or `VIEWED`. Required only for top sellers by custom profile attribute/most viewed by custom profile attribute\n(that is, when key is `customProfileAttribute`).\n\nThe custom profile attribute to be used as the basis for providing recommendations. The value should include the prefix `user.` or `profile.`.\n" }, "groupByEntityAttribute": { "type": "string", "description": "Applicable for type `SELLERS` or `VIEWED`. Required only for top sellers by custom profile attribute/most viewed by custom profile attribute\n(that is, when key is `customProfileAttribute`).\n\nThe entity attribute whose value will be matched to the custom profile attribute, in order to provide the list of\ntop sellers/most viewed items among those items with a matching attribute value. The value should **not** include the prefix `entity.`.\n" } } } ] }, "criteriaGroup": { "type": "string", "enum": [ "POPULARITY" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `hoursCount`\n" }, "hoursCount": { "type": "integer", "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `daysCount`. Only allowed value `6`\n" }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "description": "Recommendation key. Values:\n - When type is `METRIC`, this is a required field. The value is the name of an Analytics report suite metric.\n - When type is `SELLERS` or `VIEWED`, this field is only used when creating a top sellers by custom profile attribute/most\n viewed by custom profile attribute criteria. When creating this criteria type, the value should be set to\n `customProfileAttribute` and the profile attribute is set in configuration.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "type": { "type": "string", "enum": [ "SELLERS", "VIEWED", "METRIC" ], "description": "Recommendation logic. Values:\n\n - `SELLERS`: Top sellers.\n - `VIEWED`: Most viewed items.\n - `METRIC`: Considers Analytics product report suite for recommendations.\n" } }, "required": [ "type" ] } ] }, "examples": { "CriteriaPopularityRequest": { "summary": "Popularity criteria in request", "description": "A request body example of an popularity based criteria to be created/updated.", "value": { "name": "Garage Top Viewed", "type": "VIEWED", "key": "customProfileAttribute", "aggregation": "NONE", "daysCount": "TWO_DAYS", "minInventory": 2, "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "configuration": { "datasource": "mboxes", "attribute": "user.name", "groupByEntityAttribute": "brand" } } } } } }, "required": true }, "responses": { "201": { "description": "Criteria resource created with resource definition in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, top seller in this instance, then continues to next\n top seller until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, most viewed item\n in this instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, next most viewed item is considered sequentially until the design is filled.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid report suite. If type is `METRIC`, this field is required and value must be a valid report suite." }, "grouping": { "type": "object", "properties": { "attributes": { "type": "array", "items": { "type": "string", "maxLength": 250, "pattern": "^(profile\\.|user\\.).+" }, "maxItems": 10, "description": "Array of profile attributes." }, "type": { "type": "string", "enum": [ "HIERARCHICAL", "SEQUENTIAL" ] } }, "description": "Not applicable for type `METRIC`. Grouping allows to narrow recommendations by profile attributes.", "required": [ "attributes", "type" ] }, "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Applicable for type `SELLERS` or `VIEWED`. Required only for top sellers by custom profile attribute/most viewed by custom profile attribute\n(that is, when key is `customProfileAttribute`).\n\nThe custom profile attribute to be used as the basis for providing recommendations. The value should include the prefix `user.` or `profile.`.\n" }, "groupByEntityAttribute": { "type": "string", "description": "Applicable for type `SELLERS` or `VIEWED`. Required only for top sellers by custom profile attribute/most viewed by custom profile attribute\n(that is, when key is `customProfileAttribute`).\n\nThe entity attribute whose value will be matched to the custom profile attribute, in order to provide the list of\ntop sellers/most viewed items among those items with a matching attribute value. The value should **not** include the prefix `entity.`.\n" } } } ] }, "criteriaGroup": { "type": "string", "enum": [ "POPULARITY" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `hoursCount`\n" }, "hoursCount": { "type": "integer", "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `daysCount`. Only allowed value `6`\n" }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "description": "Recommendation key. Values:\n - When type is `METRIC`, this is a required field. The value is the name of an Analytics report suite metric.\n - When type is `SELLERS` or `VIEWED`, this field is only used when creating a top sellers by custom profile attribute/most\n viewed by custom profile attribute criteria. When creating this criteria type, the value should be set to\n `customProfileAttribute` and the profile attribute is set in configuration.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "type": { "type": "string", "enum": [ "SELLERS", "VIEWED", "METRIC" ], "description": "Recommendation logic. Values:\n\n - `SELLERS`: Top sellers.\n - `VIEWED`: Most viewed items.\n - `METRIC`: Considers Analytics product report suite for recommendations.\n" } }, "required": [ "type" ] } ] }, "examples": { "CriteriaPopularityResponse": { "summary": "Popularity criteria in response", "description": "A response body example of a popularity based criteria.", "value": { "id": 9321, "name": "Top sold by region", "criteriaGroup": "POPULARITY", "type": "VIEWED", "key": "customProfileAttribute", "aggregation": "ALL_OR_NOTHING", "daysCount": "ONE_MONTH", "configuration": { "datasource": "mboxes", "attribute": "user.name", "groupByEntityAttribute": "brand", "grouping": { "type": "SEQUENTIAL", "attributes": [ "user.city", "user.county", "user.state" ] } } } } } } } } } } }, "/criteria/popularity/{id}": { "get": { "tags": [ "Popularity Criteria" ], "summary": "Get popularity criteria", "description": "Gets the popularity based criteria with the given ID.", "operationId": "getCriteriaPopularity", "responses": { "200": { "description": "Successful request with criteria resource in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, top seller in this instance, then continues to next\n top seller until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, most viewed item\n in this instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, next most viewed item is considered sequentially until the design is filled.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid report suite. If type is `METRIC`, this field is required and value must be a valid report suite." }, "grouping": { "type": "object", "properties": { "attributes": { "type": "array", "items": { "type": "string", "maxLength": 250, "pattern": "^(profile\\.|user\\.).+" }, "maxItems": 10, "description": "Array of profile attributes." }, "type": { "type": "string", "enum": [ "HIERARCHICAL", "SEQUENTIAL" ] } }, "description": "Not applicable for type `METRIC`. Grouping allows to narrow recommendations by profile attributes.", "required": [ "attributes", "type" ] }, "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Applicable for type `SELLERS` or `VIEWED`. Required only for top sellers by custom profile attribute/most viewed by custom profile attribute\n(that is, when key is `customProfileAttribute`).\n\nThe custom profile attribute to be used as the basis for providing recommendations. The value should include the prefix `user.` or `profile.`.\n" }, "groupByEntityAttribute": { "type": "string", "description": "Applicable for type `SELLERS` or `VIEWED`. Required only for top sellers by custom profile attribute/most viewed by custom profile attribute\n(that is, when key is `customProfileAttribute`).\n\nThe entity attribute whose value will be matched to the custom profile attribute, in order to provide the list of\ntop sellers/most viewed items among those items with a matching attribute value. The value should **not** include the prefix `entity.`.\n" } } } ] }, "criteriaGroup": { "type": "string", "enum": [ "POPULARITY" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `hoursCount`\n" }, "hoursCount": { "type": "integer", "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `daysCount`. Only allowed value `6`\n" }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "description": "Recommendation key. Values:\n - When type is `METRIC`, this is a required field. The value is the name of an Analytics report suite metric.\n - When type is `SELLERS` or `VIEWED`, this field is only used when creating a top sellers by custom profile attribute/most\n viewed by custom profile attribute criteria. When creating this criteria type, the value should be set to\n `customProfileAttribute` and the profile attribute is set in configuration.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "type": { "type": "string", "enum": [ "SELLERS", "VIEWED", "METRIC" ], "description": "Recommendation logic. Values:\n\n - `SELLERS`: Top sellers.\n - `VIEWED`: Most viewed items.\n - `METRIC`: Considers Analytics product report suite for recommendations.\n" } }, "required": [ "type" ] } ] }, "examples": { "CriteriaPopularityResponse": { "summary": "Popularity criteria in response", "description": "A response body example of a popularity based criteria.", "value": { "id": 9321, "name": "Top sold by region", "criteriaGroup": "POPULARITY", "type": "VIEWED", "key": "customProfileAttribute", "aggregation": "ALL_OR_NOTHING", "daysCount": "ONE_MONTH", "configuration": { "datasource": "mboxes", "attribute": "user.name", "groupByEntityAttribute": "brand", "grouping": { "type": "SEQUENTIAL", "attributes": [ "user.city", "user.county", "user.state" ] } } } } } } } } } }, "put": { "tags": [ "Popularity Criteria" ], "summary": "Edit popularity criteria", "description": "Updates the popularity based criteria with new settings and configuration as specified and returns the updated criteria definition.", "operationId": "updateCriteriaPopularity", "requestBody": { "description": "Popularity based criteria to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, top seller in this instance, then continues to next\n top seller until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, most viewed item\n in this instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, next most viewed item is considered sequentially until the design is filled.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid report suite. If type is `METRIC`, this field is required and value must be a valid report suite." }, "grouping": { "type": "object", "properties": { "attributes": { "type": "array", "items": { "type": "string", "maxLength": 250, "pattern": "^(profile\\.|user\\.).+" }, "maxItems": 10, "description": "Array of profile attributes." }, "type": { "type": "string", "enum": [ "HIERARCHICAL", "SEQUENTIAL" ] } }, "description": "Not applicable for type `METRIC`. Grouping allows to narrow recommendations by profile attributes.", "required": [ "attributes", "type" ] }, "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Applicable for type `SELLERS` or `VIEWED`. Required only for top sellers by custom profile attribute/most viewed by custom profile attribute\n(that is, when key is `customProfileAttribute`).\n\nThe custom profile attribute to be used as the basis for providing recommendations. The value should include the prefix `user.` or `profile.`.\n" }, "groupByEntityAttribute": { "type": "string", "description": "Applicable for type `SELLERS` or `VIEWED`. Required only for top sellers by custom profile attribute/most viewed by custom profile attribute\n(that is, when key is `customProfileAttribute`).\n\nThe entity attribute whose value will be matched to the custom profile attribute, in order to provide the list of\ntop sellers/most viewed items among those items with a matching attribute value. The value should **not** include the prefix `entity.`.\n" } } } ] }, "criteriaGroup": { "type": "string", "enum": [ "POPULARITY" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `hoursCount`\n" }, "hoursCount": { "type": "integer", "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `daysCount`. Only allowed value `6`\n" }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "description": "Recommendation key. Values:\n - When type is `METRIC`, this is a required field. The value is the name of an Analytics report suite metric.\n - When type is `SELLERS` or `VIEWED`, this field is only used when creating a top sellers by custom profile attribute/most\n viewed by custom profile attribute criteria. When creating this criteria type, the value should be set to\n `customProfileAttribute` and the profile attribute is set in configuration.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "type": { "type": "string", "enum": [ "SELLERS", "VIEWED", "METRIC" ], "description": "Recommendation logic. Values:\n\n - `SELLERS`: Top sellers.\n - `VIEWED`: Most viewed items.\n - `METRIC`: Considers Analytics product report suite for recommendations.\n" } }, "required": [ "type" ] } ] }, "examples": { "CriteriaPopularityRequest": { "summary": "Popularity criteria in request", "description": "A request body example of an popularity based criteria to be created/updated.", "value": { "name": "Garage Top Viewed", "type": "VIEWED", "key": "customProfileAttribute", "aggregation": "NONE", "daysCount": "TWO_DAYS", "minInventory": 2, "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "configuration": { "datasource": "mboxes", "attribute": "user.name", "groupByEntityAttribute": "brand" } } } } } }, "required": true }, "responses": { "200": { "description": "Successful request with updated criteria resource in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, top seller in this instance, then continues to next\n top seller until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, most viewed item\n in this instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, next most viewed item is considered sequentially until the design is filled.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid report suite. If type is `METRIC`, this field is required and value must be a valid report suite." }, "grouping": { "type": "object", "properties": { "attributes": { "type": "array", "items": { "type": "string", "maxLength": 250, "pattern": "^(profile\\.|user\\.).+" }, "maxItems": 10, "description": "Array of profile attributes." }, "type": { "type": "string", "enum": [ "HIERARCHICAL", "SEQUENTIAL" ] } }, "description": "Not applicable for type `METRIC`. Grouping allows to narrow recommendations by profile attributes.", "required": [ "attributes", "type" ] }, "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Applicable for type `SELLERS` or `VIEWED`. Required only for top sellers by custom profile attribute/most viewed by custom profile attribute\n(that is, when key is `customProfileAttribute`).\n\nThe custom profile attribute to be used as the basis for providing recommendations. The value should include the prefix `user.` or `profile.`.\n" }, "groupByEntityAttribute": { "type": "string", "description": "Applicable for type `SELLERS` or `VIEWED`. Required only for top sellers by custom profile attribute/most viewed by custom profile attribute\n(that is, when key is `customProfileAttribute`).\n\nThe entity attribute whose value will be matched to the custom profile attribute, in order to provide the list of\ntop sellers/most viewed items among those items with a matching attribute value. The value should **not** include the prefix `entity.`.\n" } } } ] }, "criteriaGroup": { "type": "string", "enum": [ "POPULARITY" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `hoursCount`\n" }, "hoursCount": { "type": "integer", "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `daysCount`. Only allowed value `6`\n" }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "description": "Recommendation key. Values:\n - When type is `METRIC`, this is a required field. The value is the name of an Analytics report suite metric.\n - When type is `SELLERS` or `VIEWED`, this field is only used when creating a top sellers by custom profile attribute/most\n viewed by custom profile attribute criteria. When creating this criteria type, the value should be set to\n `customProfileAttribute` and the profile attribute is set in configuration.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "type": { "type": "string", "enum": [ "SELLERS", "VIEWED", "METRIC" ], "description": "Recommendation logic. Values:\n\n - `SELLERS`: Top sellers.\n - `VIEWED`: Most viewed items.\n - `METRIC`: Considers Analytics product report suite for recommendations.\n" } }, "required": [ "type" ] } ] }, "examples": { "CriteriaPopularityResponse": { "summary": "Popularity criteria in response", "description": "A response body example of a popularity based criteria.", "value": { "id": 9321, "name": "Top sold by region", "criteriaGroup": "POPULARITY", "type": "VIEWED", "key": "customProfileAttribute", "aggregation": "ALL_OR_NOTHING", "daysCount": "ONE_MONTH", "configuration": { "datasource": "mboxes", "attribute": "user.name", "groupByEntityAttribute": "brand", "grouping": { "type": "SEQUENTIAL", "attributes": [ "user.city", "user.county", "user.state" ] } } } } } } } } } }, "delete": { "tags": [ "Popularity Criteria" ], "summary": "Delete popularity criteria", "description": "Deletes the popularity based criteria referenced by the given ID.", "operationId": "deleteCriteriaPopularity", "responses": { "200": { "description": "Successful request with deleted criteria resource in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, top seller in this instance, then continues to next\n top seller until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, most viewed item\n in this instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, next most viewed item is considered sequentially until the design is filled.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid report suite. If type is `METRIC`, this field is required and value must be a valid report suite." }, "grouping": { "type": "object", "properties": { "attributes": { "type": "array", "items": { "type": "string", "maxLength": 250, "pattern": "^(profile\\.|user\\.).+" }, "maxItems": 10, "description": "Array of profile attributes." }, "type": { "type": "string", "enum": [ "HIERARCHICAL", "SEQUENTIAL" ] } }, "description": "Not applicable for type `METRIC`. Grouping allows to narrow recommendations by profile attributes.", "required": [ "attributes", "type" ] }, "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Applicable for type `SELLERS` or `VIEWED`. Required only for top sellers by custom profile attribute/most viewed by custom profile attribute\n(that is, when key is `customProfileAttribute`).\n\nThe custom profile attribute to be used as the basis for providing recommendations. The value should include the prefix `user.` or `profile.`.\n" }, "groupByEntityAttribute": { "type": "string", "description": "Applicable for type `SELLERS` or `VIEWED`. Required only for top sellers by custom profile attribute/most viewed by custom profile attribute\n(that is, when key is `customProfileAttribute`).\n\nThe entity attribute whose value will be matched to the custom profile attribute, in order to provide the list of\ntop sellers/most viewed items among those items with a matching attribute value. The value should **not** include the prefix `entity.`.\n" } } } ] }, "criteriaGroup": { "type": "string", "enum": [ "POPULARITY" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `hoursCount`\n" }, "hoursCount": { "type": "integer", "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `daysCount`. Only allowed value `6`\n" }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "description": "Recommendation key. Values:\n - When type is `METRIC`, this is a required field. The value is the name of an Analytics report suite metric.\n - When type is `SELLERS` or `VIEWED`, this field is only used when creating a top sellers by custom profile attribute/most\n viewed by custom profile attribute criteria. When creating this criteria type, the value should be set to\n `customProfileAttribute` and the profile attribute is set in configuration.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "type": { "type": "string", "enum": [ "SELLERS", "VIEWED", "METRIC" ], "description": "Recommendation logic. Values:\n\n - `SELLERS`: Top sellers.\n - `VIEWED`: Most viewed items.\n - `METRIC`: Considers Analytics product report suite for recommendations.\n" } }, "required": [ "type" ] } ] }, "examples": { "CriteriaPopularityResponse": { "summary": "Popularity criteria in response", "description": "A response body example of a popularity based criteria.", "value": { "id": 9321, "name": "Top sold by region", "criteriaGroup": "POPULARITY", "type": "VIEWED", "key": "customProfileAttribute", "aggregation": "ALL_OR_NOTHING", "daysCount": "ONE_MONTH", "configuration": { "datasource": "mboxes", "attribute": "user.name", "groupByEntityAttribute": "brand", "grouping": { "type": "SEQUENTIAL", "attributes": [ "user.city", "user.county", "user.state" ] } } } } } } } } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ] }, "/criteria/profileattribute": { "get": { "tags": [ "Profile Attribute Criteria" ], "summary": "List profile attribute criteria", "description": "Gets all available profile attribute based criteria.", "operationId": "getAllCriteriaProfileAttribute", "parameters": [ { "name": "offset", "in": "query", "description": "Number of resources to skip from start in the server list. If not specified, the response list will start from first available resource.", "required": false, "schema": { "type": "integer", "format": "int32", "description": "Number of resources skipped from start in the server list and omitted in response." } }, { "name": "limit", "in": "query", "description": "Number of resources to request. If not specified, the response will include all available resources.", "required": false, "schema": { "type": "integer", "format": "int32", "description": "Number of resources shown in the response." } } ], "responses": { "200": { "description": "Successful request with list of profile attribute criteria resources in response.", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "type": "object", "properties": { "offset": { "type": "integer", "format": "int32", "description": "Number of resources skipped from start in the server list and omitted in response." }, "limit": { "type": "integer", "format": "int32", "description": "Number of resources shown in the response." }, "total": { "type": "integer", "format": "int32", "description": "Number of resources returned in the response." }, "list": { "type": "array", "items": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, top seller in this instance, then continues to next\n top seller until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, most viewed item\n in this instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, next most viewed item is considered sequentially until the design is filled.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Profile attribute." }, "confidence": { "type": "string", "enum": [ "VERY_WEAK", "WEAK", "MODERATE", "STRONG", "VERY_STRONG" ], "description": "Applicable only when type is `SITE_AFFINITY`. This determines how much data (strong or weak affinity) is required before a recommendation is presented." }, "datasource": { "type": "string", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite." } }, "required": [ "attribute", "datasource" ] } ] }, "criteriaGroup": { "type": "string", "enum": [ "PROFILEATTRIBUTE" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "superSlotCount": { "type": "integer", "format": "int32", "readOnly": true }, "type": { "type": "string", "enum": [ "VIEWED_BOUGHT", "BOUGHT_CF", "VIEWED_CF", "SITE_AFFINITY" ], "description": "Recommendation logic. Values:\n\n - `VIEWED_BOUGHT`: People who viewed this, bought that.\n - `BOUGHT_CF`: People who bought this, bought that.\n - `VIEWED_CF`: People who viewed this, viewed that.\n - `SITE_AFFINITY`: Considers items based on the certainty of a relationship between items. Confidence setting is\n used to determine how much data (strong or weak affinity) is required before a recommendation is presented.\n" } }, "required": [ "configuration", "daysCount", "type" ] } ] }, "description": "List of profile attribute criteria objects." } } }, "examples": { "CriteriaProfileAttributeListResponse": { "summary": "List of profile attribute criteria in response", "description": "A response body example of a list containing 3 profile attribute based criteria.", "value": { "offset": 0, "limit": 2147483647, "total": 2, "list": [ { "id": 1, "name": "city-bike-recs", "criteriaTitle": "Bike recommendations per city", "criteriaGroup": "PROFILEATTRIBUTE", "type": "VIEWED_CF", "aggregation": "NONE", "daysCount": "ONE_MONTH", "minInventory": 5, "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "configuration": { "attribute": "profile.city", "inclusionRules": [ { "attribute": "city", "operation": "dynamicallyMatches" }, { "attribute": "category", "operation": "contains", "values": [ "bike" ] } ], "datasource": "mboxes" } }, { "id": 2, "name": "gender-recs", "criteriaTitle": "Generic recommendations based on gender", "criteriaGroup": "PROFILEATTRIBUTE", "type": "VIEWED_CF", "aggregation": "ALL_OR_NOTHING", "daysCount": "ONE_MONTH", "configuration": { "attribute": "profile.gender", "datasource": "mboxes" } } ] } } } } } } } }, "post": { "tags": [ "Profile Attribute Criteria" ], "summary": "Create profile attribute criteria", "description": "Creates a new profile attribute based criteria as specified by the settings and configuration provided and returns the newly created criteria definition.", "operationId": "createCriteriaProfileAttribute", "requestBody": { "description": "Profile attribute based criteria to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, top seller in this instance, then continues to next\n top seller until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, most viewed item\n in this instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, next most viewed item is considered sequentially until the design is filled.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Profile attribute." }, "confidence": { "type": "string", "enum": [ "VERY_WEAK", "WEAK", "MODERATE", "STRONG", "VERY_STRONG" ], "description": "Applicable only when type is `SITE_AFFINITY`. This determines how much data (strong or weak affinity) is required before a recommendation is presented." }, "datasource": { "type": "string", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite." } }, "required": [ "attribute", "datasource" ] } ] }, "criteriaGroup": { "type": "string", "enum": [ "PROFILEATTRIBUTE" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "superSlotCount": { "type": "integer", "format": "int32", "readOnly": true }, "type": { "type": "string", "enum": [ "VIEWED_BOUGHT", "BOUGHT_CF", "VIEWED_CF", "SITE_AFFINITY" ], "description": "Recommendation logic. Values:\n\n - `VIEWED_BOUGHT`: People who viewed this, bought that.\n - `BOUGHT_CF`: People who bought this, bought that.\n - `VIEWED_CF`: People who viewed this, viewed that.\n - `SITE_AFFINITY`: Considers items based on the certainty of a relationship between items. Confidence setting is\n used to determine how much data (strong or weak affinity) is required before a recommendation is presented.\n" } }, "required": [ "configuration", "daysCount", "type" ] } ] }, "examples": { "CriteriaPopularityRequest": { "summary": "Profile attribute criteria in request", "description": "A request body example of an profile attribute based criteria to be created/updated.", "value": { "name": "city-bike-recs", "criteriaTitle": "Bike recommendations per city", "type": "VIEWED_CF", "aggregation": "NONE", "daysCount": "ONE_MONTH", "minInventory": 5, "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "configuration": { "attribute": "profile.city", "inclusionRules": [ { "attribute": "city", "operation": "dynamicallyMatches" }, { "attribute": "category", "operation": "contains", "values": [ "bike" ] } ], "datasource": "mboxes" } } } } } } }, "responses": { "201": { "description": "Criteria resource created with resource definition in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, top seller in this instance, then continues to next\n top seller until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, most viewed item\n in this instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, next most viewed item is considered sequentially until the design is filled.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Profile attribute." }, "confidence": { "type": "string", "enum": [ "VERY_WEAK", "WEAK", "MODERATE", "STRONG", "VERY_STRONG" ], "description": "Applicable only when type is `SITE_AFFINITY`. This determines how much data (strong or weak affinity) is required before a recommendation is presented." }, "datasource": { "type": "string", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite." } }, "required": [ "attribute", "datasource" ] } ] }, "criteriaGroup": { "type": "string", "enum": [ "PROFILEATTRIBUTE" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "superSlotCount": { "type": "integer", "format": "int32", "readOnly": true }, "type": { "type": "string", "enum": [ "VIEWED_BOUGHT", "BOUGHT_CF", "VIEWED_CF", "SITE_AFFINITY" ], "description": "Recommendation logic. Values:\n\n - `VIEWED_BOUGHT`: People who viewed this, bought that.\n - `BOUGHT_CF`: People who bought this, bought that.\n - `VIEWED_CF`: People who viewed this, viewed that.\n - `SITE_AFFINITY`: Considers items based on the certainty of a relationship between items. Confidence setting is\n used to determine how much data (strong or weak affinity) is required before a recommendation is presented.\n" } }, "required": [ "configuration", "daysCount", "type" ] } ] }, "examples": { "CriteriaProfileAttributeResponse": { "summary": "Profile attribute criteria in response", "description": "A response body example of a profile attribute based criteria.", "value": { "id": 1, "name": "city-bike-recs", "criteriaTitle": "Bike recommendations per city", "criteriaGroup": "PROFILEATTRIBUTE", "type": "VIEWED_CF", "aggregation": "NONE", "daysCount": "ONE_MONTH", "minInventory": 5, "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "configuration": { "attribute": "profile.city", "inclusionRules": [ { "attribute": "city", "operation": "dynamicallyMatches" }, { "attribute": "category", "operation": "contains", "values": [ "bike" ] } ], "datasource": "mboxes" } } } } } } } } } }, "/criteria/profileattribute/{id}": { "get": { "tags": [ "Profile Attribute Criteria" ], "summary": "Get profile attribute criteria", "description": "Gets the profile attribute based criteria with the given ID.", "operationId": "getCriteriaProfileAttribute", "responses": { "200": { "description": "Successful request with criteria resource in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, top seller in this instance, then continues to next\n top seller until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, most viewed item\n in this instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, next most viewed item is considered sequentially until the design is filled.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Profile attribute." }, "confidence": { "type": "string", "enum": [ "VERY_WEAK", "WEAK", "MODERATE", "STRONG", "VERY_STRONG" ], "description": "Applicable only when type is `SITE_AFFINITY`. This determines how much data (strong or weak affinity) is required before a recommendation is presented." }, "datasource": { "type": "string", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite." } }, "required": [ "attribute", "datasource" ] } ] }, "criteriaGroup": { "type": "string", "enum": [ "PROFILEATTRIBUTE" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "superSlotCount": { "type": "integer", "format": "int32", "readOnly": true }, "type": { "type": "string", "enum": [ "VIEWED_BOUGHT", "BOUGHT_CF", "VIEWED_CF", "SITE_AFFINITY" ], "description": "Recommendation logic. Values:\n\n - `VIEWED_BOUGHT`: People who viewed this, bought that.\n - `BOUGHT_CF`: People who bought this, bought that.\n - `VIEWED_CF`: People who viewed this, viewed that.\n - `SITE_AFFINITY`: Considers items based on the certainty of a relationship between items. Confidence setting is\n used to determine how much data (strong or weak affinity) is required before a recommendation is presented.\n" } }, "required": [ "configuration", "daysCount", "type" ] } ] }, "examples": { "CriteriaProfileAttributeResponse": { "summary": "Profile attribute criteria in response", "description": "A response body example of a profile attribute based criteria.", "value": { "id": 1, "name": "city-bike-recs", "criteriaTitle": "Bike recommendations per city", "criteriaGroup": "PROFILEATTRIBUTE", "type": "VIEWED_CF", "aggregation": "NONE", "daysCount": "ONE_MONTH", "minInventory": 5, "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "configuration": { "attribute": "profile.city", "inclusionRules": [ { "attribute": "city", "operation": "dynamicallyMatches" }, { "attribute": "category", "operation": "contains", "values": [ "bike" ] } ], "datasource": "mboxes" } } } } } } } } }, "put": { "tags": [ "Profile Attribute Criteria" ], "summary": "Edit profile attribute criteria", "description": "Updates the profile attribute based criteria with new settings and configuration as specified and returns the updated criteria definition.", "operationId": "updateCriteriaProfileAttribute", "requestBody": { "description": "Profile attribute based criteria to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, top seller in this instance, then continues to next\n top seller until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, most viewed item\n in this instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, next most viewed item is considered sequentially until the design is filled.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Profile attribute." }, "confidence": { "type": "string", "enum": [ "VERY_WEAK", "WEAK", "MODERATE", "STRONG", "VERY_STRONG" ], "description": "Applicable only when type is `SITE_AFFINITY`. This determines how much data (strong or weak affinity) is required before a recommendation is presented." }, "datasource": { "type": "string", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite." } }, "required": [ "attribute", "datasource" ] } ] }, "criteriaGroup": { "type": "string", "enum": [ "PROFILEATTRIBUTE" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "superSlotCount": { "type": "integer", "format": "int32", "readOnly": true }, "type": { "type": "string", "enum": [ "VIEWED_BOUGHT", "BOUGHT_CF", "VIEWED_CF", "SITE_AFFINITY" ], "description": "Recommendation logic. Values:\n\n - `VIEWED_BOUGHT`: People who viewed this, bought that.\n - `BOUGHT_CF`: People who bought this, bought that.\n - `VIEWED_CF`: People who viewed this, viewed that.\n - `SITE_AFFINITY`: Considers items based on the certainty of a relationship between items. Confidence setting is\n used to determine how much data (strong or weak affinity) is required before a recommendation is presented.\n" } }, "required": [ "configuration", "daysCount", "type" ] } ] }, "examples": { "CriteriaPopularityRequest": { "summary": "Profile attribute criteria in request", "description": "A request body example of an profile attribute based criteria to be created/updated.", "value": { "name": "city-bike-recs", "criteriaTitle": "Bike recommendations per city", "type": "VIEWED_CF", "aggregation": "NONE", "daysCount": "ONE_MONTH", "minInventory": 5, "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "configuration": { "attribute": "profile.city", "inclusionRules": [ { "attribute": "city", "operation": "dynamicallyMatches" }, { "attribute": "category", "operation": "contains", "values": [ "bike" ] } ], "datasource": "mboxes" } } } } } } }, "responses": { "200": { "description": "Successful request with updated criteria resource in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, top seller in this instance, then continues to next\n top seller until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, most viewed item\n in this instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, next most viewed item is considered sequentially until the design is filled.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Profile attribute." }, "confidence": { "type": "string", "enum": [ "VERY_WEAK", "WEAK", "MODERATE", "STRONG", "VERY_STRONG" ], "description": "Applicable only when type is `SITE_AFFINITY`. This determines how much data (strong or weak affinity) is required before a recommendation is presented." }, "datasource": { "type": "string", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite." } }, "required": [ "attribute", "datasource" ] } ] }, "criteriaGroup": { "type": "string", "enum": [ "PROFILEATTRIBUTE" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "superSlotCount": { "type": "integer", "format": "int32", "readOnly": true }, "type": { "type": "string", "enum": [ "VIEWED_BOUGHT", "BOUGHT_CF", "VIEWED_CF", "SITE_AFFINITY" ], "description": "Recommendation logic. Values:\n\n - `VIEWED_BOUGHT`: People who viewed this, bought that.\n - `BOUGHT_CF`: People who bought this, bought that.\n - `VIEWED_CF`: People who viewed this, viewed that.\n - `SITE_AFFINITY`: Considers items based on the certainty of a relationship between items. Confidence setting is\n used to determine how much data (strong or weak affinity) is required before a recommendation is presented.\n" } }, "required": [ "configuration", "daysCount", "type" ] } ] }, "examples": { "CriteriaProfileAttributeResponse": { "summary": "Profile attribute criteria in response", "description": "A response body example of a profile attribute based criteria.", "value": { "id": 1, "name": "city-bike-recs", "criteriaTitle": "Bike recommendations per city", "criteriaGroup": "PROFILEATTRIBUTE", "type": "VIEWED_CF", "aggregation": "NONE", "daysCount": "ONE_MONTH", "minInventory": 5, "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "configuration": { "attribute": "profile.city", "inclusionRules": [ { "attribute": "city", "operation": "dynamicallyMatches" }, { "attribute": "category", "operation": "contains", "values": [ "bike" ] } ], "datasource": "mboxes" } } } } } } } } }, "delete": { "tags": [ "Profile Attribute Criteria" ], "summary": "Delete profile attribute criteria", "description": "Deletes the profile attribute based criteria referenced by the given ID.", "operationId": "deleteCriteriaProfileAttribute", "responses": { "200": { "description": "Successful request with deleted criteria resource in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, top seller in this instance, then continues to next\n top seller until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, most viewed item\n in this instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, next most viewed item is considered sequentially until the design is filled.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Profile attribute." }, "confidence": { "type": "string", "enum": [ "VERY_WEAK", "WEAK", "MODERATE", "STRONG", "VERY_STRONG" ], "description": "Applicable only when type is `SITE_AFFINITY`. This determines how much data (strong or weak affinity) is required before a recommendation is presented." }, "datasource": { "type": "string", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite." } }, "required": [ "attribute", "datasource" ] } ] }, "criteriaGroup": { "type": "string", "enum": [ "PROFILEATTRIBUTE" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "superSlotCount": { "type": "integer", "format": "int32", "readOnly": true }, "type": { "type": "string", "enum": [ "VIEWED_BOUGHT", "BOUGHT_CF", "VIEWED_CF", "SITE_AFFINITY" ], "description": "Recommendation logic. Values:\n\n - `VIEWED_BOUGHT`: People who viewed this, bought that.\n - `BOUGHT_CF`: People who bought this, bought that.\n - `VIEWED_CF`: People who viewed this, viewed that.\n - `SITE_AFFINITY`: Considers items based on the certainty of a relationship between items. Confidence setting is\n used to determine how much data (strong or weak affinity) is required before a recommendation is presented.\n" } }, "required": [ "configuration", "daysCount", "type" ] } ] }, "examples": { "CriteriaProfileAttributeResponse": { "summary": "Profile attribute criteria in response", "description": "A response body example of a profile attribute based criteria.", "value": { "id": 1, "name": "city-bike-recs", "criteriaTitle": "Bike recommendations per city", "criteriaGroup": "PROFILEATTRIBUTE", "type": "VIEWED_CF", "aggregation": "NONE", "daysCount": "ONE_MONTH", "minInventory": 5, "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "configuration": { "attribute": "profile.city", "inclusionRules": [ { "attribute": "city", "operation": "dynamicallyMatches" }, { "attribute": "category", "operation": "contains", "values": [ "bike" ] } ], "datasource": "mboxes" } } } } } } } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ] }, "/criteria/recent": { "get": { "tags": [ "Recent Criteria" ], "summary": "List recent criteria", "description": "Gets all available recent view based criteria.", "operationId": "getAllCriteriaRecent", "parameters": [ { "name": "offset", "in": "query", "description": "Number of resources to skip from start in the server list. If not specified, the response list will start from first available resource.", "required": false, "schema": { "type": "integer", "format": "int32", "description": "Number of resources skipped from start in the server list and omitted in response." } }, { "name": "limit", "in": "query", "description": "Number of resources to request. If not specified, the response will include all available resources.", "required": false, "schema": { "type": "integer", "format": "int32", "description": "Number of resources shown in the response." } } ], "responses": { "200": { "description": "Successful request with list of recent criteria resources in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "type": "object", "properties": { "offset": { "type": "integer", "format": "int32", "description": "Number of resources skipped from start in the server list and omitted in response." }, "limit": { "type": "integer", "format": "int32", "description": "Number of resources shown in the response." }, "total": { "type": "integer", "format": "int32", "description": "Number of resources returned in the response." }, "list": { "type": "array", "items": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." } ] }, "criteriaGroup": { "type": "string", "enum": [ "RECENT" ], "readOnly": true }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." } } } ] }, "description": "List of recent criteria objects." } } }, "examples": { "CriteriaRecentListResponse": { "summary": "List of recent criteria in response", "description": "A response body example of a list containing 2 recent view based criteria.", "value": { "offset": 0, "limit": 2147483647, "total": 2, "list": [ { "id": 1, "name": "Recently Viewed Products", "criteriaTitle": "Just Seen Items", "criteriaGroup": "RECENT", "minInventory": 1, "configuration": { "rankingRules": [] } }, { "id": 2, "name": "Recently Viewed in Same Brand", "criteriaGroup": "RECENT", "minInventory": 1, "configuration": { "inclusionRules": [ { "attribute": "brand", "operation": "dynamicallyMatches", "source": { "name": "brand", "type": "ENTITY", "excludeAllWhenEmpty": true } }, { "attribute": "value", "operation": "dynamicallyRanges", "lowRange": "1", "highRange": "99" } ], "rankingRules": [] } } ] } } } } } } } }, "post": { "tags": [ "Recent Criteria" ], "summary": "Create recent criteria", "description": "Creates a new recent view based criteria as specified by the settings and configuration provided and returns the newly created criteria definition.", "operationId": "createCriteriaRecent", "requestBody": { "description": "Recent view based criteria to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." } ] }, "criteriaGroup": { "type": "string", "enum": [ "RECENT" ], "readOnly": true }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." } } } ] }, "examples": { "CriteriaRecentRequest": { "summary": "Recent criteria in request", "description": "A request body example of a recent view based criteria to be created/updated.", "value": { "name": "Recently Viewed Products", "criteriaTitle": "Just Seen Items", "excludePurchases": true, "criteriaGroup": "RECENT", "minInventory": 3, "configuration": { "rankingRules": [] } } } } } } }, "responses": { "201": { "description": "Criteria resource created with resource definition in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." } ] }, "criteriaGroup": { "type": "string", "enum": [ "RECENT" ], "readOnly": true }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." } } } ] }, "examples": { "CriteriaRecentResponse": { "summary": "Recent criteria in response", "description": "A response body example of a recent view based criteria.", "value": { "id": 2, "name": "Recently Viewed in Same Brand", "criteriaGroup": "RECENT", "excludePurchases": true, "minInventory": 1, "configuration": { "inclusionRules": [ { "attribute": "brand", "operation": "dynamicallyMatches", "source": { "name": "brand", "type": "ENTITY", "excludeAllWhenEmpty": true } }, { "attribute": "value", "operation": "dynamicallyRanges", "lowRange": "1", "highRange": "99" } ], "rankingRules": [] } } } } } } } } } }, "/criteria/recent/{id}": { "get": { "tags": [ "Recent Criteria" ], "summary": "Get recent criteria", "description": "Gets the recent criteria with the given ID.", "operationId": "getCriteriaRecent", "responses": { "200": { "description": "Successful request with criteria resource in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." } ] }, "criteriaGroup": { "type": "string", "enum": [ "RECENT" ], "readOnly": true }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." } } } ] }, "examples": { "CriteriaRecentResponse": { "summary": "Recent criteria in response", "description": "A response body example of a recent view based criteria.", "value": { "id": 2, "name": "Recently Viewed in Same Brand", "criteriaGroup": "RECENT", "excludePurchases": true, "minInventory": 1, "configuration": { "inclusionRules": [ { "attribute": "brand", "operation": "dynamicallyMatches", "source": { "name": "brand", "type": "ENTITY", "excludeAllWhenEmpty": true } }, { "attribute": "value", "operation": "dynamicallyRanges", "lowRange": "1", "highRange": "99" } ], "rankingRules": [] } } } } } } } } }, "put": { "tags": [ "Recent Criteria" ], "summary": "Edit recent criteria", "description": "Updates the recent criteria with new settings and configuration as specified and returns the updated criteria definition.", "operationId": "updateCriteriaRecent", "requestBody": { "description": "Recent view based criteria to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." } ] }, "criteriaGroup": { "type": "string", "enum": [ "RECENT" ], "readOnly": true }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." } } } ] }, "examples": { "CriteriaRecentRequest": { "summary": "Recent criteria in request", "description": "A request body example of a recent view based criteria to be created/updated.", "value": { "name": "Recently Viewed Products", "criteriaTitle": "Just Seen Items", "excludePurchases": true, "criteriaGroup": "RECENT", "minInventory": 3, "configuration": { "rankingRules": [] } } } } } } }, "responses": { "200": { "description": "Successful request with updated criteria resource in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." } ] }, "criteriaGroup": { "type": "string", "enum": [ "RECENT" ], "readOnly": true }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." } } } ] }, "examples": { "CriteriaRecentResponse": { "summary": "Recent criteria in response", "description": "A response body example of a recent view based criteria.", "value": { "id": 2, "name": "Recently Viewed in Same Brand", "criteriaGroup": "RECENT", "excludePurchases": true, "minInventory": 1, "configuration": { "inclusionRules": [ { "attribute": "brand", "operation": "dynamicallyMatches", "source": { "name": "brand", "type": "ENTITY", "excludeAllWhenEmpty": true } }, { "attribute": "value", "operation": "dynamicallyRanges", "lowRange": "1", "highRange": "99" } ], "rankingRules": [] } } } } } } } } }, "delete": { "tags": [ "Recent Criteria" ], "summary": "Delete recent criteria", "description": "Deletes the recent view based criteria referenced by the given ID.", "operationId": "deleteCriteriaRecent", "responses": { "200": { "description": "Successful request with deleted criteria resource in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." } ] }, "criteriaGroup": { "type": "string", "enum": [ "RECENT" ], "readOnly": true }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." } } } ] }, "examples": { "CriteriaRecentResponse": { "summary": "Recent criteria in response", "description": "A response body example of a recent view based criteria.", "value": { "id": 2, "name": "Recently Viewed in Same Brand", "criteriaGroup": "RECENT", "excludePurchases": true, "minInventory": 1, "configuration": { "inclusionRules": [ { "attribute": "brand", "operation": "dynamicallyMatches", "source": { "name": "brand", "type": "ENTITY", "excludeAllWhenEmpty": true } }, { "attribute": "value", "operation": "dynamicallyRanges", "lowRange": "1", "highRange": "99" } ], "rankingRules": [] } } } } } } } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ] }, "/criteria/sequence": { "get": { "tags": [ "Sequence Criteria" ], "summary": "List sequence criteria", "description": "Gets all available sequence criteria.", "operationId": "getAllCriteriaSequence", "parameters": [ { "name": "offset", "in": "query", "description": "Number of resources to skip from start in the server list. If not specified, the response list will start from first available resource.", "required": false, "schema": { "type": "integer", "format": "int32", "description": "Number of resources skipped from start in the server list and omitted in response." } }, { "name": "limit", "in": "query", "description": "Number of resources to request. If not specified, the response will include all available resources.", "required": false, "schema": { "type": "integer", "format": "int32", "description": "Number of resources shown in the response." } } ], "responses": { "200": { "description": "Successful request with list of sequence criteria resources in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "type": "object", "properties": { "offset": { "type": "integer", "format": "int32", "description": "Number of resources skipped from start in the server list and omitted in response." }, "limit": { "type": "integer", "format": "int32", "description": "Number of resources shown in the response." }, "total": { "type": "integer", "format": "int32", "description": "Number of resources returned in the response." }, "list": { "type": "array", "items": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "criteriaGroup": { "type": "string", "enum": [ "SEQUENCE" ], "readOnly": true }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "sequence": { "type": "array", "minItems": 1, "maxItems": 5, "items": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "description": "ID of criteria in sequence." }, "slotCount": { "type": "integer", "format": "int64", "maximum": 100, "minimum": 1, "description": "Number of recommendations this criteria will return." } }, "required": [ "id" ] }, "description": "Criteria sequence represented by an array of criteria object IDs." } }, "required": [ "sequence" ] } ] }, "description": "List of sequence criteria objects." } } }, "examples": { "CriteriaSequenceListResponse": { "summary": "List of sequence criteria in response", "description": "A response body example of a list containing 2 sequence criteria.", "value": { "offset": 0, "limit": 2147483647, "total": 3, "list": [ { "id": 56, "name": "Top Dashboard Items", "criteriaTitle": "Top Dashboard Items", "criteriaGroup": "SEQUENCE", "backupDisabled": true, "sequence": [ { "id": 332, "slotCount": 4 }, { "id": 333 } ] }, { "id": 67, "name": "Freight Recs", "criteriaTitle": "Freight Recommendations", "criteriaGroup": "SEQUENCE", "backupDisabled": true, "sequence": [ { "id": 345 }, { "id": 346 }, { "id": 348 }, { "id": 349 }, { "id": 350 } ] }, { "id": 71, "name": "Events Across", "criteriaTitle": "Garage Events", "criteriaGroup": "SEQUENCE", "backupDisabled": false, "partialDesignAllowed": true, "sequence": [ { "id": 401 }, { "id": 402 }, { "id": 406 } ] } ] } } } } } } } }, "post": { "tags": [ "Sequence Criteria" ], "summary": "Create sequence criteria", "description": "Creates a new sequence criteria as specified by the settings, and single criteria IDs provided and returns the newly created criteria definition.", "operationId": "createCriteriaSequence", "requestBody": { "description": "Sequence criteria to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "criteriaGroup": { "type": "string", "enum": [ "SEQUENCE" ], "readOnly": true }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "sequence": { "type": "array", "minItems": 1, "maxItems": 5, "items": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "description": "ID of criteria in sequence." }, "slotCount": { "type": "integer", "format": "int64", "maximum": 100, "minimum": 1, "description": "Number of recommendations this criteria will return." } }, "required": [ "id" ] }, "description": "Criteria sequence represented by an array of criteria object IDs." } }, "required": [ "sequence" ] } ] }, "examples": { "CriteriaRecentRequest": { "summary": "Sequence criteria in request", "description": "A request body example of a sequence criteria to be created/updated.", "value": { "name": "Top Dashboard Items", "criteriaTitle": "Top Dashboard Items", "backupDisabled": true, "sequence": [ { "id": 332, "slotCount": 4 }, { "id": 333 } ] } } } } }, "required": true }, "responses": { "201": { "description": "Criteria resource created with resource definition in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "criteriaGroup": { "type": "string", "enum": [ "SEQUENCE" ], "readOnly": true }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "sequence": { "type": "array", "minItems": 1, "maxItems": 5, "items": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "description": "ID of criteria in sequence." }, "slotCount": { "type": "integer", "format": "int64", "maximum": 100, "minimum": 1, "description": "Number of recommendations this criteria will return." } }, "required": [ "id" ] }, "description": "Criteria sequence represented by an array of criteria object IDs." } }, "required": [ "sequence" ] } ] }, "examples": { "CriteriaSequenceResponse": { "summary": "Sequence criteria in response", "description": "A response body example of a sequence criteria.", "value": { "id": 56, "name": "Top Dashboard Items", "criteriaTitle": "Top Dashboard Items", "criteriaGroup": "SEQUENCE", "backupDisabled": true, "sequence": [ { "id": 332, "slotCount": 4 }, { "id": 333 } ] } } } } } } } } }, "/criteria/sequence/{id}": { "get": { "tags": [ "Sequence Criteria" ], "summary": "Get sequence criteria", "description": "Gets the sequence criteria with the given ID.", "operationId": "getCriteriaSequence", "responses": { "200": { "description": "Successful request with criteria resource in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "criteriaGroup": { "type": "string", "enum": [ "SEQUENCE" ], "readOnly": true }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "sequence": { "type": "array", "minItems": 1, "maxItems": 5, "items": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "description": "ID of criteria in sequence." }, "slotCount": { "type": "integer", "format": "int64", "maximum": 100, "minimum": 1, "description": "Number of recommendations this criteria will return." } }, "required": [ "id" ] }, "description": "Criteria sequence represented by an array of criteria object IDs." } }, "required": [ "sequence" ] } ] }, "examples": { "CriteriaSequenceResponse": { "summary": "Sequence criteria in response", "description": "A response body example of a sequence criteria.", "value": { "id": 56, "name": "Top Dashboard Items", "criteriaTitle": "Top Dashboard Items", "criteriaGroup": "SEQUENCE", "backupDisabled": true, "sequence": [ { "id": 332, "slotCount": 4 }, { "id": 333 } ] } } } } } } } }, "put": { "tags": [ "Sequence Criteria" ], "summary": "Edit sequence criteria", "description": "Updates the sequence criteria with new settings and new single criteria IDs as specified and returns the updated criteria definition.", "operationId": "updateCriteriaSequence", "requestBody": { "description": "Sequence criteria to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "criteriaGroup": { "type": "string", "enum": [ "SEQUENCE" ], "readOnly": true }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "sequence": { "type": "array", "minItems": 1, "maxItems": 5, "items": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "description": "ID of criteria in sequence." }, "slotCount": { "type": "integer", "format": "int64", "maximum": 100, "minimum": 1, "description": "Number of recommendations this criteria will return." } }, "required": [ "id" ] }, "description": "Criteria sequence represented by an array of criteria object IDs." } }, "required": [ "sequence" ] } ] }, "examples": { "CriteriaRecentRequest": { "summary": "Sequence criteria in request", "description": "A request body example of a sequence criteria to be created/updated.", "value": { "name": "Top Dashboard Items", "criteriaTitle": "Top Dashboard Items", "backupDisabled": true, "sequence": [ { "id": 332, "slotCount": 4 }, { "id": 333 } ] } } } } }, "required": true }, "responses": { "200": { "description": "Successful request with updated criteria resource in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "criteriaGroup": { "type": "string", "enum": [ "SEQUENCE" ], "readOnly": true }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "sequence": { "type": "array", "minItems": 1, "maxItems": 5, "items": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "description": "ID of criteria in sequence." }, "slotCount": { "type": "integer", "format": "int64", "maximum": 100, "minimum": 1, "description": "Number of recommendations this criteria will return." } }, "required": [ "id" ] }, "description": "Criteria sequence represented by an array of criteria object IDs." } }, "required": [ "sequence" ] } ] }, "examples": { "CriteriaSequenceResponse": { "summary": "Sequence criteria in response", "description": "A response body example of a sequence criteria.", "value": { "id": 56, "name": "Top Dashboard Items", "criteriaTitle": "Top Dashboard Items", "criteriaGroup": "SEQUENCE", "backupDisabled": true, "sequence": [ { "id": 332, "slotCount": 4 }, { "id": 333 } ] } } } } } } } }, "delete": { "tags": [ "Sequence Criteria" ], "summary": "Delete sequence criteria", "description": "Deletes the sequence criteria referenced by the given ID.", "operationId": "deleteCriteriaSequence", "responses": { "200": { "description": "Successful request with deleted criteria resource in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "criteriaGroup": { "type": "string", "enum": [ "SEQUENCE" ], "readOnly": true }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "sequence": { "type": "array", "minItems": 1, "maxItems": 5, "items": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "description": "ID of criteria in sequence." }, "slotCount": { "type": "integer", "format": "int64", "maximum": 100, "minimum": 1, "description": "Number of recommendations this criteria will return." } }, "required": [ "id" ] }, "description": "Criteria sequence represented by an array of criteria object IDs." } }, "required": [ "sequence" ] } ] }, "examples": { "CriteriaSequenceResponse": { "summary": "Sequence criteria in response", "description": "A response body example of a sequence criteria.", "value": { "id": 56, "name": "Top Dashboard Items", "criteriaTitle": "Top Dashboard Items", "criteriaGroup": "SEQUENCE", "backupDisabled": true, "sequence": [ { "id": 332, "slotCount": 4 }, { "id": 333 } ] } } } } } } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ] }, "/criteria/userhistory": { "get": { "tags": [ "User History Criteria" ], "summary": "List user history criteria", "description": "Gets all available user history based criteria.", "operationId": "getAllCriteriaUserHistory", "parameters": [ { "name": "offset", "in": "query", "description": "Number of resources to skip from start in the server list. If not specified, the response list will start from first available resource.", "required": false, "schema": { "type": "integer", "format": "int32", "description": "Number of resources skipped from start in the server list and omitted in response." } }, { "name": "limit", "in": "query", "description": "Number of resources to request. If not specified, the response will include all available resources.", "required": false, "schema": { "type": "integer", "format": "int32", "description": "Number of resources shown in the response." } } ], "responses": { "200": { "description": "Successful request with list of user history criteria resources in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "type": "object", "properties": { "offset": { "type": "integer", "format": "int32", "description": "Number of resources skipped from start in the server list and omitted in response." }, "limit": { "type": "integer", "format": "int32", "description": "Number of resources shown in the response." }, "total": { "type": "integer", "format": "int32", "description": "Number of resources returned in the response." }, "list": { "type": "array", "items": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "criteriaGroup": { "type": "string", "enum": [ "USERHISTORY" ], "readOnly": true }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "inclusionRulesKey": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "^(profile\\.|user\\.).+" ], "description": "Used for dynamic inclusion rules. Depending on the value either entity attribute matching or profile attribute matching is configured.\n[More info](https://docs.adobe.com/content/help/en/target/using/recommendations/criteria/use-dynamic-and-static-inclusion-rules.html#dynamic-filtering)].\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite.\n" } } }, { "type": "object", "properties": { "inclusionRulesKey": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "^(profile\\.|user\\.).+" ], "description": "Used for dynamic inclusion rules, i.e rules which use delivery time item to apply filtering.\n" }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite.\n" } } } ] }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "excludeViews": { "type": "boolean", "default": false, "description": "Whether items that were previously viewed by the visitor should be excluded from recommendations." } }, "required": [ "daysCount" ] } ] }, "description": "List of user history criteria objects." } } }, "examples": { "CriteriaUserHistoryListResponse": { "summary": "List of user history criteria in response", "description": "A response body example of a list containing 3 user history criteria.", "value": { "offset": 2, "limit": 2147483647, "total": 3, "list": [ { "id": 3, "name": "Recommend for you.", "criteriaTitle": "Items Recommended for you.", "criteriaGroup": "USERHISTORY", "daysCount": "TWO_WEEKS", "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "excludeViews": false }, { "id": 4, "name": "Recommend for you with minimum inventory.", "criteriaGroup": "USERHISTORY", "daysCount": "TWO_WEEKS", "minInventory": 5, "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "excludeViews": true }, { "id": 5, "name": "Recommend for you with Inclusion Rules.", "criteriaGroup": "USERHISTORY", "daysCount": "TWO_WEEKS", "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "excludeViews": true, "configuration": { "inclusionRulesKey": "LAST_PURCHASED", "inclusionRules": [ { "attribute": "category", "operation": "contains", "source": { "name": "category", "type": "ENTITY", "excludeAllWhenEmpty": true } } ] } } ] } } } } } } } }, "post": { "tags": [ "User History Criteria" ], "summary": "Create user history criteria", "description": "Creates a new user history based criteria as specified in the request payload and returns the newly created user history definition.", "operationId": "createCriteriaUserHistory", "requestBody": { "description": "UserHistory based criteria to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "criteriaGroup": { "type": "string", "enum": [ "USERHISTORY" ], "readOnly": true }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "inclusionRulesKey": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "^(profile\\.|user\\.).+" ], "description": "Used for dynamic inclusion rules. Depending on the value either entity attribute matching or profile attribute matching is configured.\n[More info](https://docs.adobe.com/content/help/en/target/using/recommendations/criteria/use-dynamic-and-static-inclusion-rules.html#dynamic-filtering)].\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite.\n" } } }, { "type": "object", "properties": { "inclusionRulesKey": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "^(profile\\.|user\\.).+" ], "description": "Used for dynamic inclusion rules, i.e rules which use delivery time item to apply filtering.\n" }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite.\n" } } } ] }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "excludeViews": { "type": "boolean", "default": false, "description": "Whether items that were previously viewed by the visitor should be excluded from recommendations." } }, "required": [ "daysCount" ] } ] }, "examples": { "CriteriaUserHistoryRequest": { "summary": "User history criteria in request", "description": "A request body example of a user history based criteria to be created/updated.", "value": { "name": "Recommend for you.", "criteriaTitle": "Recommend for you with Inclusion Rules", "daysCount": "TWO_WEEKS", "minInventory": 5, "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "excludeViews": true, "configuration": { "datasources": "mboxes", "inclusionRulesKey": "LAST_PURCHASED", "priceRange": { "min": 10, "max": 50 }, "inclusionRules": [ { "attribute": "category", "operation": "equals", "source": { "name": "category", "type": "ENTITY", "excludeAllWhenEmpty": true } } ] } } } } } }, "required": true }, "responses": { "201": { "description": "Criteria resource created with resource definition in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "criteriaGroup": { "type": "string", "enum": [ "USERHISTORY" ], "readOnly": true }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "inclusionRulesKey": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "^(profile\\.|user\\.).+" ], "description": "Used for dynamic inclusion rules. Depending on the value either entity attribute matching or profile attribute matching is configured.\n[More info](https://docs.adobe.com/content/help/en/target/using/recommendations/criteria/use-dynamic-and-static-inclusion-rules.html#dynamic-filtering)].\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite.\n" } } }, { "type": "object", "properties": { "inclusionRulesKey": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "^(profile\\.|user\\.).+" ], "description": "Used for dynamic inclusion rules, i.e rules which use delivery time item to apply filtering.\n" }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite.\n" } } } ] }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "excludeViews": { "type": "boolean", "default": false, "description": "Whether items that were previously viewed by the visitor should be excluded from recommendations." } }, "required": [ "daysCount" ] } ] }, "examples": { "CriteriaUserHistoryResponse": { "summary": "User history criteria in response", "description": "A response body example of a user history based criteria.", "value": { "id": 3, "name": "Recommend for you.", "criteriaTitle": "Recommend for you with Inclusion Rules", "criteriaGroup": "USERHISTORY", "daysCount": "TWO_WEEKS", "minInventory": 5, "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "excludeViews": false, "configuration": { "priceRange": { "min": 10, "max": 50 }, "datasource": "mboxes", "inclusionRulesKey": "LAST_PURCHASED", "inclusionRules": [ { "attribute": "category", "operation": "equals", "source": { "name": "category", "type": "ENTITY", "excludeAllWhenEmpty": true } } ] } } } } } } } } } }, "/criteria/userhistory/{id}": { "get": { "tags": [ "User History Criteria" ], "summary": "Get user history criteria", "description": "Gets the user history based criteria with the given ID.", "operationId": "getCriteriaUserHistory", "responses": { "200": { "description": "Successful request with criteria resource in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "criteriaGroup": { "type": "string", "enum": [ "USERHISTORY" ], "readOnly": true }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "inclusionRulesKey": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "^(profile\\.|user\\.).+" ], "description": "Used for dynamic inclusion rules. Depending on the value either entity attribute matching or profile attribute matching is configured.\n[More info](https://docs.adobe.com/content/help/en/target/using/recommendations/criteria/use-dynamic-and-static-inclusion-rules.html#dynamic-filtering)].\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite.\n" } } }, { "type": "object", "properties": { "inclusionRulesKey": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "^(profile\\.|user\\.).+" ], "description": "Used for dynamic inclusion rules, i.e rules which use delivery time item to apply filtering.\n" }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite.\n" } } } ] }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "excludeViews": { "type": "boolean", "default": false, "description": "Whether items that were previously viewed by the visitor should be excluded from recommendations." } }, "required": [ "daysCount" ] } ] }, "examples": { "CriteriaUserHistoryResponse": { "summary": "User history criteria in response", "description": "A response body example of a user history based criteria.", "value": { "id": 3, "name": "Recommend for you.", "criteriaTitle": "Recommend for you with Inclusion Rules", "criteriaGroup": "USERHISTORY", "daysCount": "TWO_WEEKS", "minInventory": 5, "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "excludeViews": false, "configuration": { "priceRange": { "min": 10, "max": 50 }, "datasource": "mboxes", "inclusionRulesKey": "LAST_PURCHASED", "inclusionRules": [ { "attribute": "category", "operation": "equals", "source": { "name": "category", "type": "ENTITY", "excludeAllWhenEmpty": true } } ] } } } } } } } } }, "put": { "tags": [ "User History Criteria" ], "summary": "Edit user history criteria", "description": "Updates the user history based criteria with new data as specified in request payload and returns the updated criteria definition.", "operationId": "updateCriteriaUserHistory", "requestBody": { "description": "UserHistory based criteria to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "criteriaGroup": { "type": "string", "enum": [ "USERHISTORY" ], "readOnly": true }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "inclusionRulesKey": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "^(profile\\.|user\\.).+" ], "description": "Used for dynamic inclusion rules. Depending on the value either entity attribute matching or profile attribute matching is configured.\n[More info](https://docs.adobe.com/content/help/en/target/using/recommendations/criteria/use-dynamic-and-static-inclusion-rules.html#dynamic-filtering)].\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite.\n" } } }, { "type": "object", "properties": { "inclusionRulesKey": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "^(profile\\.|user\\.).+" ], "description": "Used for dynamic inclusion rules, i.e rules which use delivery time item to apply filtering.\n" }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite.\n" } } } ] }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "excludeViews": { "type": "boolean", "default": false, "description": "Whether items that were previously viewed by the visitor should be excluded from recommendations." } }, "required": [ "daysCount" ] } ] }, "examples": { "CriteriaUserHistoryRequest": { "summary": "User history criteria in request", "description": "A request body example of a user history based criteria to be created/updated.", "value": { "name": "Recommend for you.", "criteriaTitle": "Recommend for you with Inclusion Rules", "daysCount": "TWO_WEEKS", "minInventory": 5, "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "excludeViews": true, "configuration": { "datasources": "mboxes", "inclusionRulesKey": "LAST_PURCHASED", "priceRange": { "min": 10, "max": 50 }, "inclusionRules": [ { "attribute": "category", "operation": "equals", "source": { "name": "category", "type": "ENTITY", "excludeAllWhenEmpty": true } } ] } } } } } }, "required": true }, "responses": { "200": { "description": "Successful request with updated criteria resource in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "criteriaGroup": { "type": "string", "enum": [ "USERHISTORY" ], "readOnly": true }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "inclusionRulesKey": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "^(profile\\.|user\\.).+" ], "description": "Used for dynamic inclusion rules. Depending on the value either entity attribute matching or profile attribute matching is configured.\n[More info](https://docs.adobe.com/content/help/en/target/using/recommendations/criteria/use-dynamic-and-static-inclusion-rules.html#dynamic-filtering)].\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite.\n" } } }, { "type": "object", "properties": { "inclusionRulesKey": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "^(profile\\.|user\\.).+" ], "description": "Used for dynamic inclusion rules, i.e rules which use delivery time item to apply filtering.\n" }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite.\n" } } } ] }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "excludeViews": { "type": "boolean", "default": false, "description": "Whether items that were previously viewed by the visitor should be excluded from recommendations." } }, "required": [ "daysCount" ] } ] }, "examples": { "CriteriaUserHistoryResponse": { "summary": "User history criteria in response", "description": "A response body example of a user history based criteria.", "value": { "id": 3, "name": "Recommend for you.", "criteriaTitle": "Recommend for you with Inclusion Rules", "criteriaGroup": "USERHISTORY", "daysCount": "TWO_WEEKS", "minInventory": 5, "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "excludeViews": false, "configuration": { "priceRange": { "min": 10, "max": 50 }, "datasource": "mboxes", "inclusionRulesKey": "LAST_PURCHASED", "inclusionRules": [ { "attribute": "category", "operation": "equals", "source": { "name": "category", "type": "ENTITY", "excludeAllWhenEmpty": true } } ] } } } } } } } } }, "delete": { "tags": [ "User History Criteria" ], "summary": "Delete user history criteria", "description": "Deletes the user history based criteria referenced by the given ID.", "operationId": "deleteCriteriaUserHistory", "responses": { "200": { "description": "Successful request with deleted criteria resource in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "criteriaGroup": { "type": "string", "enum": [ "USERHISTORY" ], "readOnly": true }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "inclusionRulesKey": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "^(profile\\.|user\\.).+" ], "description": "Used for dynamic inclusion rules. Depending on the value either entity attribute matching or profile attribute matching is configured.\n[More info](https://docs.adobe.com/content/help/en/target/using/recommendations/criteria/use-dynamic-and-static-inclusion-rules.html#dynamic-filtering)].\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite.\n" } } }, { "type": "object", "properties": { "inclusionRulesKey": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "^(profile\\.|user\\.).+" ], "description": "Used for dynamic inclusion rules, i.e rules which use delivery time item to apply filtering.\n" }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite.\n" } } } ] }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "excludeViews": { "type": "boolean", "default": false, "description": "Whether items that were previously viewed by the visitor should be excluded from recommendations." } }, "required": [ "daysCount" ] } ] }, "examples": { "CriteriaCategoryResponse": { "summary": "User history criteria in response", "description": "A response body example of a user history based criteria.", "value": { "id": 3, "name": "Recommend for you.", "criteriaTitle": "Recommend for you with Inclusion Rules", "criteriaGroup": "USERHISTORY", "daysCount": "TWO_WEEKS", "minInventory": 5, "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "excludeViews": false, "configuration": { "priceRange": { "min": 10, "max": 50 }, "datasource": "mboxes", "inclusionRulesKey": "LAST_PURCHASED", "inclusionRules": [ { "attribute": "category", "operation": "equals", "source": { "name": "category", "type": "ENTITY", "excludeAllWhenEmpty": true } } ] } } } } } } } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ] }, "/designs": { "get": { "tags": [ "Designs" ], "summary": "List designs", "description": "Gets all available designs.", "operationId": "getDesigns", "parameters": [ { "name": "offset", "in": "query", "description": "Number of resources to skip from start in the server list. If not specified, the response list will start from first available resource.", "required": false, "schema": { "type": "integer", "format": "int32", "description": "Number of resources skipped from start in the server list and omitted in response." } }, { "name": "limit", "in": "query", "description": "Number of resources to request. If not specified, the response will include all available resources.", "required": false, "schema": { "type": "integer", "format": "int32", "description": "Number of resources shown in the response." } }, { "name": "includeScript", "in": "query", "description": "Whether to include the design content.", "required": false, "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "Successful request with list of design resources in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "type": "object", "properties": { "offset": { "type": "integer", "format": "int32", "description": "Number of resources skipped from start in the server list and omitted in response." }, "limit": { "type": "integer", "format": "int32", "description": "Number of resources shown in the response." }, "total": { "type": "integer", "format": "int32", "description": "Number of resources returned in the response." }, "list": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "maxLength": 250, "description": "Unique name of the design." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "script": { "type": "string", "maxLength": 65000, "description": "Velocity template containing at least one entity object. Velocity Engine 1.7 is supported." } }, "required": [ "name", "script" ] }, "description": "List of design objects." } } }, "examples": { "DesignsResponse": { "summary": "List of designs in response", "description": "A response body example of a list containing 1 design.", "value": { "offset": 0, "limit": 2147483647, "total": 1, "list": [ { "id": 1, "name": "Landing Page", "script": "\\n \\n \\n \\n \\n \\n
\\n \\n \\n
$profile\\n
$token\\n
$url\\n
\\n
\\n \\n \\n
$entity2.name\\n
$entity2.message\\n
$entity2.value\\n
\\n
\\n \\n \\n
$entity3.name\\n
$entity3.message\\n
$entity3.value\\n
\\n
" } ] } } } } } } } }, "post": { "tags": [ "Designs" ], "summary": "Create a design", "description": "Creates a new design as specified by the script provided and returns the newly created design definition.", "operationId": "createDesign", "requestBody": { "description": "Design to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "maxLength": 250, "description": "Unique name of the design." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "script": { "type": "string", "maxLength": 65000, "description": "Velocity template containing at least one entity object. Velocity Engine 1.7 is supported." } }, "required": [ "name", "script" ] }, "examples": { "DesignRequest": { "summary": "Design in request", "description": "A request body example of a design to be created/updated.", "value": { "name": "Landing Page", "script": "name = $entity1.name
details= $entity1.details \\n \\n \\n \\n \\n \\n
\\n \\n \\n
$profile\\n
$token\\n
$url\\n
\\n
\\n \\n \\n
$entity2.name\\n
$entity2.message\\n
$entity2.value\\n
\\n
\\n \\n \\n
$entity3.name\\n
$entity3.message\\n
$entity3.value\\n
\\n
" } } } } }, "required": true }, "responses": { "201": { "description": "Design resource created with resource definition in response", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "maxLength": 250, "description": "Unique name of the design." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "script": { "type": "string", "maxLength": 65000, "description": "Velocity template containing at least one entity object. Velocity Engine 1.7 is supported." } }, "required": [ "name", "script" ] }, "examples": { "DesignResponse": { "summary": "Design in response", "description": "A response body example of a design object.", "value": { "id": 1, "name": "Landing Page", "script": "\\n \\n \\n \\n \\n \\n
\\n \\n \\n
$profile\\n
$token\\n
$url\\n
\\n
\\n \\n \\n
$entity2.name\\n
$entity2.message\\n
$entity2.value\\n
\\n
\\n \\n \\n
$entity3.name\\n
$entity3.message\\n
$entity3.value\\n
\\n
" } } } } } } } } }, "/designs/{id}": { "get": { "tags": [ "Designs" ], "summary": "Get design", "description": "Gets the design with the given ID.", "operationId": "getDesign", "parameters": [ { "name": "includeScript", "in": "query", "description": "Whether to include the design content.", "required": false, "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "Successful request with design resource in response", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "maxLength": 250, "description": "Unique name of the design." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "script": { "type": "string", "maxLength": 65000, "description": "Velocity template containing at least one entity object. Velocity Engine 1.7 is supported." } }, "required": [ "name", "script" ] }, "examples": { "DesignResponse": { "summary": "Design in response", "description": "A response body example of a design object.", "value": { "id": 1, "name": "Landing Page", "script": "\\n \\n \\n \\n \\n \\n
\\n \\n \\n
$profile\\n
$token\\n
$url\\n
\\n
\\n \\n \\n
$entity2.name\\n
$entity2.message\\n
$entity2.value\\n
\\n
\\n \\n \\n
$entity3.name\\n
$entity3.message\\n
$entity3.value\\n
\\n
" } } } } } } } }, "put": { "tags": [ "Designs" ], "summary": "Edit design", "description": "Updates the design with new name and/or new script as specified and returns the updated design definition.", "operationId": "updateDesign", "requestBody": { "description": "Design to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "maxLength": 250, "description": "Unique name of the design." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "script": { "type": "string", "maxLength": 65000, "description": "Velocity template containing at least one entity object. Velocity Engine 1.7 is supported." } }, "required": [ "name", "script" ] }, "examples": { "DesignRequest": { "summary": "Design in request", "description": "A request body example of a design to be created/updated.", "value": { "name": "Landing Page", "script": "name = $entity1.name
details= $entity1.details \\n \\n \\n \\n \\n \\n
\\n \\n \\n
$profile\\n
$token\\n
$url\\n
\\n
\\n \\n \\n
$entity2.name\\n
$entity2.message\\n
$entity2.value\\n
\\n
\\n \\n \\n
$entity3.name\\n
$entity3.message\\n
$entity3.value\\n
\\n
" } } } } }, "required": true }, "parameters": [ { "name": "includeScript", "in": "query", "description": "Whether to include the design content.", "required": false, "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "Successful request with updated design resource in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "type": "object", "properties": { "name": { "type": "string", "maxLength": 250, "description": "Unique name of the design." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "script": { "type": "string", "maxLength": 65000, "description": "Velocity template containing at least one entity object. Velocity Engine 1.7 is supported." } }, "required": [ "name", "script" ] }, "examples": { "DesignResponse": { "summary": "Design in response", "description": "A response body example of a design object.", "value": { "id": 1, "name": "Landing Page", "script": "\\n \\n \\n \\n \\n \\n
\\n \\n \\n
$profile\\n
$token\\n
$url\\n
\\n
\\n \\n \\n
$entity2.name\\n
$entity2.message\\n
$entity2.value\\n
\\n
\\n \\n \\n
$entity3.name\\n
$entity3.message\\n
$entity3.value\\n
\\n
" } } } } } } } }, "delete": { "tags": [ "Designs" ], "summary": "Delete design", "description": "Deletes the design referenced by the given ID.", "operationId": "deleteDesign", "responses": { "200": { "description": "Successful request with deleted design resource in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "type": "object", "properties": { "name": { "type": "string", "maxLength": 250, "description": "Unique name of the design." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "script": { "type": "string", "maxLength": 65000, "description": "Velocity template containing at least one entity object. Velocity Engine 1.7 is supported." } }, "required": [ "name", "script" ] }, "examples": { "DesignResponse": { "summary": "Design in response", "description": "A response body example of a design object.", "value": { "id": 1, "name": "Landing Page", "script": "\\n \\n \\n \\n \\n \\n
\\n \\n \\n
$profile\\n
$token\\n
$url\\n
\\n
\\n \\n \\n
$entity2.name\\n
$entity2.message\\n
$entity2.value\\n
\\n
\\n \\n \\n
$entity3.name\\n
$entity3.message\\n
$entity3.value\\n
\\n
" } } } } } } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ] }, "/designs/validate": { "post": { "tags": [ "Designs" ], "summary": "Validate design", "description": "Validates a design by verifying the correctness of the script. If its correct, it returns number of entity objects used\nin the script; otherwise it returns the validation error.\n\n_Note this POST request does not create any resource. The endpoint is not a resource but rather it is simply a method to\nvalidate the design in request payload._.\n", "operationId": "validateDesign", "requestBody": { "description": "Design to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "maxLength": 250, "description": "Unique name of the design." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "script": { "type": "string", "maxLength": 65000, "description": "Velocity template containing at least one entity object. Velocity Engine 1.7 is supported." } }, "required": [ "name", "script" ] }, "examples": { "DesignRequest": { "summary": "Design in request", "description": "A request body example of a design to be created/updated.", "value": { "name": "Landing Page", "script": "name = $entity1.name
details= $entity1.details \\n \\n \\n \\n \\n \\n
\\n \\n \\n
$profile\\n
$token\\n
$url\\n
\\n
\\n \\n \\n
$entity2.name\\n
$entity2.message\\n
$entity2.value\\n
\\n
\\n \\n \\n
$entity3.name\\n
$entity3.message\\n
$entity3.value\\n
\\n
" } } } } }, "required": true }, "responses": { "200": { "description": "Design resource validated with validation result in response", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "type": "object", "properties": { "entityCount": { "type": "integer", "format": "int32", "description": "Number of items used in the design script." }, "errors": { "type": "array", "items": { "type": "object", "properties": { "key": { "type": "string" }, "keyArguments": { "type": "array", "items": { "type": "string" } }, "text": { "type": "string" } } } }, "valid": { "type": "boolean" } } }, "examples": { "DesignValidationResultResponse": { "summary": "Validation result in response", "description": "A response body example of validation result of the design object provided in request.", "value": { "entityCount": 0, "valid": false, "errors": [ { "key": "error.template.validate.entitiesRequired", "keyArguments": [], "text": "There should be at least one entity reference within the template script" } ] } } } } } } } } }, "/entities": { "post": { "tags": [ "Entities" ], "summary": "Save entities", "description": "Creates entities, updates if present, with the given entity details and returns the numbers of entities rejected, and\ncreated or updated. Entities can be rejected if entity details do not conform to the schema.\n[More info](https://docs.adobe.com/content/help/en/target/using/recommendations/entities/entity-attributes.html).\n\n_Note this POST request does not create a singular resource. The endpoint is not a resource but rather it is simply a\nmethod to save multiple entities specified in request payload._\n", "operationId": "saveEntities", "requestBody": { "description": "Entities to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "type": "object", "properties": { "entities": { "type": "array", "items": { "type": "object", "properties": { "attributes": { "type": "object", "properties": { "createdAt": { "type": "string", "format": "date" }, "inventory": { "type": "integer", "format": "int64" }, "lastUpdatedAt": { "type": "string", "format": "date" }, "margin": { "type": "number", "format": "double" }, "message": { "type": "string" }, "pageUrl": { "type": "string" }, "thumbnailUrl": { "type": "string" }, "value": { "type": "number", "format": "double" } }, "additionalProperties": { "type": "string" }, "description": "Entity attributes. Besides some pre-defined attributes, about 100 custom attributes can be added. [More info](https://docs.adobe.com/content/help/en/target/using/recommendations/entities/entity-attributes.html)." }, "categories": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "maxItems": 1000, "minItems": 1, "uniqueItems": true, "description": "Set of entity categories for the entity." }, "environment": { "type": "integer", "format": "int64", "description": "ID of an environment." }, "id": { "type": "string", "maxLength": 1000 }, "name": { "type": "string", "maxLength": 250 } }, "required": [ "id", "name", "categories" ] }, "minItems": 1 } }, "required": [ "entities" ], "description": "Batch of entities." }, "examples": { "EntityBatchRequest": { "summary": "Entities in request", "description": "A request body example of an entity to be created/updated.", "value": { "entities": [ { "name": "Rotisserie Chicken", "id": "wes2001", "environment": 4227, "categories": [ "recreation:food" ], "attributes": { "inventory": 77, "margin": 23, "message": "crashing helicopter", "pageUrl": "www.foobar.foo.com/helicopter.html", "thumbnailUrl": "www.foobar.foo.com/helicopter.jpg", "value": 19.2 } } ] } } } } }, "required": true }, "responses": { "200": { "description": "Successful request with entity batch update result in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "type": "object", "properties": { "inserted/updated": { "type": "integer", "format": "int32" }, "rejected": { "type": "integer", "format": "int32" }, "rejectCauses": { "type": "array", "items": { "type": "object", "properties": { "cause": { "type": "object", "properties": { "key": { "type": "string" }, "keyArguments": { "type": "array", "items": { "type": "string" } }, "text": { "type": "string" } } }, "occurrences": { "type": "integer", "format": "int32", "description": "Number of occurrences of the error message." } } }, "description": "Error messages that caused the rejection of entities. Details can be found in `cause.text`." } }, "description": "Status of the operation (create or update) on the provided entities." }, "examples": { "EntityBatchUpdateResult": { "summary": "Entity batch update result in response", "description": "A response body example of entity batch update result showing a successful update.", "value": { "rejected": 0, "inserted/updated": 1 } } } } } } } }, "delete": { "tags": [ "Entities" ], "summary": "Delete entities", "description": "Deletes entities referenced by the given IDs. **If no ID is given, all entities in the given environment are deleted.\nIf no environment ID is given, entities will be deleted from all environments. Use this with caution!**\n\n_Note this DELETE request does not delete a singular resource. The endpoint is not a resource but rather it is simply a\nmethod to delete multiple entities specified in request payload._\n", "operationId": "deleteEntities", "parameters": [ { "name": "ids", "in": "query", "required": false, "schema": { "type": "array", "items": { "type": "string", "maxLength": 1000 } }, "description": "List of entity IDs. If not set, all entities will be deleted." }, { "name": "environment", "in": "query", "required": false, "schema": { "type": "number", "format": "double" }, "description": "ID of an environment. If not set, entities will be deleted from all environments." } ], "responses": { "200": { "description": "Successful request with entity batch delete result in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "type": "object", "properties": { "operation": { "type": "string", "enum": [ "Delete by client requested.", "deleted by ids" ], "description": "Indicates how entities were deleted." } } }, "examples": { "EntityResponse": { "summary": "Entity batch delete result in response", "description": "A response body example of entity batch delete result indicating all entities were deleted.", "value": { "operation": "Delete by client requested." } } } } } } } } }, "/entities/{id}": { "get": { "tags": [ "Entities" ], "summary": "Get entity", "description": "Gets entity with the given ID from default environment. To retrieve entity from a specific environment, `environmentId` request parameter can be used.", "operationId": "getEntity", "parameters": [ { "name": "environmentId", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "Successful request with entity resource in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "type": "object", "properties": { "attributes": { "type": "object", "properties": { "createdAt": { "type": "string", "format": "date" }, "inventory": { "type": "integer", "format": "int64" }, "lastUpdatedAt": { "type": "string", "format": "date" }, "margin": { "type": "number", "format": "double" }, "message": { "type": "string" }, "pageUrl": { "type": "string" }, "thumbnailUrl": { "type": "string" }, "value": { "type": "number", "format": "double" } }, "additionalProperties": { "type": "string" }, "description": "Entity attributes. Besides some pre-defined attributes, about 100 custom attributes can be added. [More info](https://docs.adobe.com/content/help/en/target/using/recommendations/entities/entity-attributes.html)." }, "categories": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "maxItems": 1000, "minItems": 1, "uniqueItems": true, "description": "Set of entity categories for the entity." }, "environment": { "type": "integer", "format": "int64", "description": "ID of an environment." }, "id": { "type": "string", "maxLength": 1000 }, "name": { "type": "string", "maxLength": 250 } }, "required": [ "id", "name", "categories" ] }, "examples": { "EntityResponse": { "summary": "Entity in response", "description": "A response body example of an entity object.", "value": { "name": "Rotisserie Chicken", "id": "item1", "environment": 4227, "categories": [ "recreation:food" ], "attributes": { "createdAt": "2019-07-05T05:48:26.244-04:00", "inventory": 77, "lastUpdatedAt": "2019-07-09T05:48:26.244-04:00", "margin": 23, "message": "crashing helicopter", "pageUrl": "www.foobar.foo.com/helicopter.html", "thumbnailUrl": "www.foobar.foo.com/helicopter.jpg", "value": 19.2 } } } } } } } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "maxLength": 1000 } } ] }, "/catalogsearch": { "post": { "tags": [ "Searching Entities" ], "summary": "Search Catalog Entities", "description": "Searches across all the entities in a given client and environment based on provided match criteria.\n\n_Note this POST request does not create any resource. The endpoint is not a resource but rather it is simply a\nmethod for searching._\n", "operationId": "search", "requestBody": { "description": "Catalog Search", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "type": "object", "properties": { "meta": { "type": "object", "properties": { "environmentId": { "type": "integer", "format": "int64", "description": "ID of an environment" }, "limit": { "type": "integer", "format": "int32", "default": 10, "maximum": 500, "description": "Number of results to return" }, "displayFields": { "type": "array", "items": { "type": "string" }, "default": [ "id" ], "description": "Set of fields to return ('id' is always included)" }, "start": { "type": "integer", "format": "int32", "default": 1, "description": "Result number at which to start output" } }, "required": [ "environmentId" ] }, "query": { "oneOf": [ { "allOf": [ { "allOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "simple" ] }, "queryFields": { "type": "array", "items": { "type": "string" }, "default": [ "id" ], "description": "Fields to return in the response" } }, "required": [ "type" ] }, { "type": "object", "properties": { "operator": { "type": "string", "enum": [ "lt", "le", "eq", "ge", "gt", "ne", "present", "absent" ], "default": "eq", "description": "The kind of match to perform:\n* lt: less-than\n* le: less-than or equal\n* eq: equal\n* ge: greater than or equal\n* gt: greater than\n* ne: not equal\n* present: attribute exists with any value\n* absent: attribute does not exist\n" } }, "required": [ "matchValue" ] } ] }, { "type": "object", "properties": { "matchValue": { "type": "number", "format": "double", "description": "Numeric value to match" } } } ], "title": "simple double" }, { "allOf": [ { "allOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "simple" ] }, "queryFields": { "type": "array", "items": { "type": "string" }, "default": [ "id" ], "description": "Fields to return in the response" } }, "required": [ "type" ] }, { "type": "object", "properties": { "operator": { "type": "string", "enum": [ "lt", "le", "eq", "ge", "gt", "ne", "present", "absent" ], "default": "eq", "description": "The kind of match to perform:\n* lt: less-than\n* le: less-than or equal\n* eq: equal\n* ge: greater than or equal\n* gt: greater than\n* ne: not equal\n* present: attribute exists with any value\n* absent: attribute does not exist\n" } }, "required": [ "matchValue" ] } ] }, { "type": "object", "properties": { "matchValue": { "type": "integer", "format": "int64", "description": "Numeric value to match" } } } ], "title": "simple integer" }, { "allOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "simple" ] }, "queryFields": { "type": "array", "items": { "type": "string" }, "default": [ "id" ], "description": "Fields to return in the response" } }, "required": [ "type" ] }, { "type": "object", "properties": { "operator": { "type": "string", "enum": [ "lt", "le", "eq", "ge", "gt", "ne", "present", "absent", "contains", "notcontains", "startswith", "endswith" ], "default": "eq", "description": "The kind of match to perform:\n* lt: less-than\n* le: less-than or equal\n* eq: equal\n* ge: greater than or equal\n* gt: greater than\n* ne: not equal\n* present: attribute exists with any value\n* absent: attribute does not exist\n* contains: contains matchValue (case-insensitive)\n* notcontains: does not contain matchValue (case-insensitive)\n* startswith: starts with matchValue (case-insensitive)\n* endswith: ends with matchValue (case-insensitive)\n" }, "matchValue": { "type": "string", "description": "String to match" } }, "required": [ "matchValue" ] } ], "title": "simple string" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "compound" ] }, "joinOperator": { "type": "string", "enum": [ "AND", "OR" ], "default": "AND" }, "filters": { "type": "array", "items": { "type": "string" } } }, "required": [ "type", "filters" ], "title": "compound search" } ] } }, "required": [ "meta", "query" ] }, "examples": { "SimpleSearchRequest": { "value": { "meta": { "environmentId": 1776, "displayFields": [ "description", "price" ] }, "query": { "type": "simple", "queryFields": [ "id", "name", "description" ], "matchValue": "home", "operator": "contains" } } }, "CompoundSearchRequest": { "value": { "meta": { "environmentId": 1066, "displayFields": [ "brand", "category" ], "start": 16 }, "query": { "type": "compound", "joinOperator": "AND", "filters": [ { "type": "simple", "queryFields": [ "category" ], "matchValue": "shoe", "operator": "contains" }, { "type": "compound", "joinOperator": "OR", "filters": [ { "type": "simple", "queryFields": [ "brand" ], "matchValue": "fancyco", "operator": "eq" }, { "type": "simple", "queryFields": [ "priceRetail" ], "matchValue": 50, "operator": "ge" } ] } ] } } } } } }, "required": true }, "responses": { "200": { "description": "Successful search response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "type": "object", "properties": { "timeMs": { "type": "integer", "format": "int64", "description": "Milliseconds to process search" }, "hits": { "type": "array", "items": { "type": "object", "properties": { "category": { "type": "array", "items": { "type": "string" }, "description": "Array of category values if requested in query meta displayFields" } }, "additionalProperties": { "description": "Other fields and their values requested from query meta displayFields" } } }, "start": { "type": "integer", "format": "int32", "description": "Index of first result (copied from Meta)" } }, "required": [ "timeMs", "hits", "start" ] }, "examples": { "SearchResponse": { "value": { "timeMs": 1701, "hits": [ { "id": 602214076, "category": [ "household goods", "restroom", "paper products" ], "value": 3.14, "name": "bathroom tissue" }, { "id": 186282, "value": 2.718, "name": "hand sanitizer", "inventory": 86400 } ], "start": 1 } } } } } } } } }, "/promotions": { "get": { "tags": [ "Promotions" ], "summary": "List promotions", "description": "List all available promotions.", "operationId": "getPromotions", "parameters": [ { "name": "offset", "in": "query", "description": "Number of resources to skip from start in the server list. If not specified, the response list will start from first available resource.", "required": false, "schema": { "type": "integer", "format": "int32", "description": "Number of resources skipped from start in the server list and omitted in response." } }, { "name": "limit", "in": "query", "description": "Number of resources to request. If not specified, the response will include all available resources.", "required": false, "schema": { "type": "integer", "format": "int32", "description": "Number of resources shown in the response." } } ], "responses": { "200": { "description": "Successful request with list of promotion resources in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "type": "object", "properties": { "offset": { "type": "integer", "format": "int32", "description": "Number of resources skipped from start in the server list and omitted in response." }, "limit": { "type": "integer", "format": "int32", "description": "Number of resources shown in the response." }, "total": { "type": "integer", "format": "int32", "description": "Number of resources returned in the response." }, "list": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the promotion." }, "type": { "type": "string", "enum": [ "EXTERNAL" ], "description": "Type of promotion. Currently only external promotions can be created, in which promoted items do not originate from any of the criteria specified in the current recommendation activity." }, "key": { "type": "string", "enum": [ "CURRENT", "LAST_PURCHASED", "LAST_VIEWED", "MOST_VIEWED", "PROFILE_ATTRIBUTE" ], "description": "Promotion key. Values:\n\n- `CURRENT`: The currently viewed item.\n- `LAST_VIEWED`: The last viewed item.\n- `LAST_PURCHASED`: The last purchased item.\n- `MOST_VIEWED`: The most viewed item. The recommendations are determined by items that have been most viewed. The\n score is determined by recency/frequency: 10 points for first item view, 5 points for every subsequent view, all\n points are halved after the session ends.\n- `PROFILE_ATTRIBUTE`: Profile attribute.\n" }, "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Applicable when key is `PROFILE_ATTRIBUTE`. This is the profile attribute." }, "schedule": { "type": "object", "properties": { "end": { "type": "string", "format": "date-time" }, "start": { "type": "string", "format": "date-time" } }, "required": [ "end", "start" ], "description": "Time duration for which promotion should be applied." }, "order": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "ORIGINAL", "RANDOM" ], "default": "ORIGINAL" } } }, "configuration": { "type": "object", "properties": { "collectionId": { "type": "integer", "format": "int64" } }, "description": "Applicable only when rules are empty and type is not `INTERNAL`. It contains the relevant collection for promotion items." }, "rules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] } } }, "required": [ "name", "type" ] }, "description": "List of promotion objects." } } }, "examples": { "PromotionsResponse": { "summary": "List of promotions in response", "description": "A response body example of a list containing 2 promotions.", "value": { "offset": 0, "limit": 2147483647, "total": 2, "list": [ { "id": 1, "name": "Hiking shoes summer promotion", "type": "EXTERNAL", "schedule": { "start": "2018-07-01T00:00:00Z", "end": "2018-08-31T23:59:59Z" }, "order": { "type": "ORIGINAL" }, "configuration": { "collectionId": 3432 }, "rules": [ { "attribute": "category", "operation": "endsWith", "values": [ "Hiking Shoes" ] } ] }, { "id": 2, "name": "Shoes clearance sale", "type": "EXTERNAL", "order": { "type": "ORIGINAL" }, "rules": [ { "attribute": "value", "operation": "lesserOrEquals", "values": [ "200" ] } ] } ] } } } } } } } }, "post": { "tags": [ "Promotions" ], "summary": "Create promotion", "description": "Creates a new promotion as specified by the settings and configuration provided and returns the newly created promotion definition.", "operationId": "createPromotion", "requestBody": { "description": "Promotion to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the promotion." }, "type": { "type": "string", "enum": [ "EXTERNAL" ], "description": "Type of promotion. Currently only external promotions can be created, in which promoted items do not originate from any of the criteria specified in the current recommendation activity." }, "key": { "type": "string", "enum": [ "CURRENT", "LAST_PURCHASED", "LAST_VIEWED", "MOST_VIEWED", "PROFILE_ATTRIBUTE" ], "description": "Promotion key. Values:\n\n- `CURRENT`: The currently viewed item.\n- `LAST_VIEWED`: The last viewed item.\n- `LAST_PURCHASED`: The last purchased item.\n- `MOST_VIEWED`: The most viewed item. The recommendations are determined by items that have been most viewed. The\n score is determined by recency/frequency: 10 points for first item view, 5 points for every subsequent view, all\n points are halved after the session ends.\n- `PROFILE_ATTRIBUTE`: Profile attribute.\n" }, "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Applicable when key is `PROFILE_ATTRIBUTE`. This is the profile attribute." }, "schedule": { "type": "object", "properties": { "end": { "type": "string", "format": "date-time" }, "start": { "type": "string", "format": "date-time" } }, "required": [ "end", "start" ], "description": "Time duration for which promotion should be applied." }, "order": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "ORIGINAL", "RANDOM" ], "default": "ORIGINAL" } } }, "configuration": { "type": "object", "properties": { "collectionId": { "type": "integer", "format": "int64" } }, "description": "Applicable only when rules are empty and type is not `INTERNAL`. It contains the relevant collection for promotion items." }, "rules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] } } }, "required": [ "name", "type" ] }, "examples": { "PromotionRequest": { "summary": "Promotion in request", "description": "A request body example of a promotion object to be created/updated.", "value": { "name": "Hiking shoes summer promotion", "type": "EXTERNAL", "schedule": { "start": "2018-07-01T00:00:00Z", "end": "2018-08-31T23:59:59Z" }, "order": { "type": "ORIGINAL" }, "configuration": { "collectionId": 3432 }, "rules": [ { "attribute": "category", "operation": "endsWith", "values": [ "Hiking Shoes" ] } ] } } } } }, "required": true }, "responses": { "201": { "description": "Promotion resource created with resource definition in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the promotion." }, "type": { "type": "string", "enum": [ "EXTERNAL" ], "description": "Type of promotion. Currently only external promotions can be created, in which promoted items do not originate from any of the criteria specified in the current recommendation activity." }, "key": { "type": "string", "enum": [ "CURRENT", "LAST_PURCHASED", "LAST_VIEWED", "MOST_VIEWED", "PROFILE_ATTRIBUTE" ], "description": "Promotion key. Values:\n\n- `CURRENT`: The currently viewed item.\n- `LAST_VIEWED`: The last viewed item.\n- `LAST_PURCHASED`: The last purchased item.\n- `MOST_VIEWED`: The most viewed item. The recommendations are determined by items that have been most viewed. The\n score is determined by recency/frequency: 10 points for first item view, 5 points for every subsequent view, all\n points are halved after the session ends.\n- `PROFILE_ATTRIBUTE`: Profile attribute.\n" }, "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Applicable when key is `PROFILE_ATTRIBUTE`. This is the profile attribute." }, "schedule": { "type": "object", "properties": { "end": { "type": "string", "format": "date-time" }, "start": { "type": "string", "format": "date-time" } }, "required": [ "end", "start" ], "description": "Time duration for which promotion should be applied." }, "order": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "ORIGINAL", "RANDOM" ], "default": "ORIGINAL" } } }, "configuration": { "type": "object", "properties": { "collectionId": { "type": "integer", "format": "int64" } }, "description": "Applicable only when rules are empty and type is not `INTERNAL`. It contains the relevant collection for promotion items." }, "rules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] } } }, "required": [ "name", "type" ] }, "examples": { "PromotionResponse": { "summary": "Promotion in response", "description": "A response body example of a Promotion object.", "value": { "id": 1, "name": "Hiking shoes summer promotion", "type": "EXTERNAL", "schedule": { "start": "2018-07-01T00:00:00Z", "end": "2018-08-31T23:59:59Z" }, "order": { "type": "ORIGINAL" }, "configuration": { "collectionId": 3432 }, "rules": [ { "attribute": "category", "operation": "endsWith", "values": [ "Hiking Shoes" ] } ] } } } } } } } } }, "/promotions/{id}": { "get": { "tags": [ "Promotions" ], "summary": "Get promotion", "description": "Gets the promotion with the given ID.", "operationId": "getPromotion", "responses": { "200": { "description": "Successful request with promotion resource in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the promotion." }, "type": { "type": "string", "enum": [ "EXTERNAL" ], "description": "Type of promotion. Currently only external promotions can be created, in which promoted items do not originate from any of the criteria specified in the current recommendation activity." }, "key": { "type": "string", "enum": [ "CURRENT", "LAST_PURCHASED", "LAST_VIEWED", "MOST_VIEWED", "PROFILE_ATTRIBUTE" ], "description": "Promotion key. Values:\n\n- `CURRENT`: The currently viewed item.\n- `LAST_VIEWED`: The last viewed item.\n- `LAST_PURCHASED`: The last purchased item.\n- `MOST_VIEWED`: The most viewed item. The recommendations are determined by items that have been most viewed. The\n score is determined by recency/frequency: 10 points for first item view, 5 points for every subsequent view, all\n points are halved after the session ends.\n- `PROFILE_ATTRIBUTE`: Profile attribute.\n" }, "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Applicable when key is `PROFILE_ATTRIBUTE`. This is the profile attribute." }, "schedule": { "type": "object", "properties": { "end": { "type": "string", "format": "date-time" }, "start": { "type": "string", "format": "date-time" } }, "required": [ "end", "start" ], "description": "Time duration for which promotion should be applied." }, "order": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "ORIGINAL", "RANDOM" ], "default": "ORIGINAL" } } }, "configuration": { "type": "object", "properties": { "collectionId": { "type": "integer", "format": "int64" } }, "description": "Applicable only when rules are empty and type is not `INTERNAL`. It contains the relevant collection for promotion items." }, "rules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] } } }, "required": [ "name", "type" ] }, "examples": { "PromotionResponse": { "summary": "Promotion in response", "description": "A response body example of a Promotion object.", "value": { "id": 1, "name": "Hiking shoes summer promotion", "type": "EXTERNAL", "schedule": { "start": "2018-07-01T00:00:00Z", "end": "2018-08-31T23:59:59Z" }, "order": { "type": "ORIGINAL" }, "configuration": { "collectionId": 3432 }, "rules": [ { "attribute": "category", "operation": "endsWith", "values": [ "Hiking Shoes" ] } ] } } } } } } } }, "put": { "tags": [ "Promotions" ], "summary": "Edit promotion", "description": "Updates the promotion with the new settings and configuration as specified and return the updated promotion definition.", "operationId": "updatePromotion", "requestBody": { "description": "Promotion to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the promotion." }, "type": { "type": "string", "enum": [ "EXTERNAL" ], "description": "Type of promotion. Currently only external promotions can be created, in which promoted items do not originate from any of the criteria specified in the current recommendation activity." }, "key": { "type": "string", "enum": [ "CURRENT", "LAST_PURCHASED", "LAST_VIEWED", "MOST_VIEWED", "PROFILE_ATTRIBUTE" ], "description": "Promotion key. Values:\n\n- `CURRENT`: The currently viewed item.\n- `LAST_VIEWED`: The last viewed item.\n- `LAST_PURCHASED`: The last purchased item.\n- `MOST_VIEWED`: The most viewed item. The recommendations are determined by items that have been most viewed. The\n score is determined by recency/frequency: 10 points for first item view, 5 points for every subsequent view, all\n points are halved after the session ends.\n- `PROFILE_ATTRIBUTE`: Profile attribute.\n" }, "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Applicable when key is `PROFILE_ATTRIBUTE`. This is the profile attribute." }, "schedule": { "type": "object", "properties": { "end": { "type": "string", "format": "date-time" }, "start": { "type": "string", "format": "date-time" } }, "required": [ "end", "start" ], "description": "Time duration for which promotion should be applied." }, "order": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "ORIGINAL", "RANDOM" ], "default": "ORIGINAL" } } }, "configuration": { "type": "object", "properties": { "collectionId": { "type": "integer", "format": "int64" } }, "description": "Applicable only when rules are empty and type is not `INTERNAL`. It contains the relevant collection for promotion items." }, "rules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] } } }, "required": [ "name", "type" ] }, "examples": { "PromotionRequest": { "summary": "Promotion in request", "description": "A request body example of a promotion object to be created/updated.", "value": { "name": "Hiking shoes summer promotion", "type": "EXTERNAL", "schedule": { "start": "2018-07-01T00:00:00Z", "end": "2018-08-31T23:59:59Z" }, "order": { "type": "ORIGINAL" }, "configuration": { "collectionId": 3432 }, "rules": [ { "attribute": "category", "operation": "endsWith", "values": [ "Hiking Shoes" ] } ] } } } } }, "required": true }, "responses": { "200": { "description": "Successful request with updated promotion resource in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the promotion." }, "type": { "type": "string", "enum": [ "EXTERNAL" ], "description": "Type of promotion. Currently only external promotions can be created, in which promoted items do not originate from any of the criteria specified in the current recommendation activity." }, "key": { "type": "string", "enum": [ "CURRENT", "LAST_PURCHASED", "LAST_VIEWED", "MOST_VIEWED", "PROFILE_ATTRIBUTE" ], "description": "Promotion key. Values:\n\n- `CURRENT`: The currently viewed item.\n- `LAST_VIEWED`: The last viewed item.\n- `LAST_PURCHASED`: The last purchased item.\n- `MOST_VIEWED`: The most viewed item. The recommendations are determined by items that have been most viewed. The\n score is determined by recency/frequency: 10 points for first item view, 5 points for every subsequent view, all\n points are halved after the session ends.\n- `PROFILE_ATTRIBUTE`: Profile attribute.\n" }, "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Applicable when key is `PROFILE_ATTRIBUTE`. This is the profile attribute." }, "schedule": { "type": "object", "properties": { "end": { "type": "string", "format": "date-time" }, "start": { "type": "string", "format": "date-time" } }, "required": [ "end", "start" ], "description": "Time duration for which promotion should be applied." }, "order": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "ORIGINAL", "RANDOM" ], "default": "ORIGINAL" } } }, "configuration": { "type": "object", "properties": { "collectionId": { "type": "integer", "format": "int64" } }, "description": "Applicable only when rules are empty and type is not `INTERNAL`. It contains the relevant collection for promotion items." }, "rules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] } } }, "required": [ "name", "type" ] }, "examples": { "PromotionResponse": { "summary": "Promotion in response", "description": "A response body example of a Promotion object.", "value": { "id": 1, "name": "Hiking shoes summer promotion", "type": "EXTERNAL", "schedule": { "start": "2018-07-01T00:00:00Z", "end": "2018-08-31T23:59:59Z" }, "order": { "type": "ORIGINAL" }, "configuration": { "collectionId": 3432 }, "rules": [ { "attribute": "category", "operation": "endsWith", "values": [ "Hiking Shoes" ] } ] } } } } } } } }, "delete": { "tags": [ "Promotions" ], "summary": "Delete promotion", "description": "Deletes the promotion referenced by the given ID.", "operationId": "deletePromotion", "responses": { "200": { "description": "Successful request with deleted promotion resource in response", "content": { "application/vnd.adobe.target.v1+json;charset=UTF-8": { "schema": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the promotion." }, "type": { "type": "string", "enum": [ "EXTERNAL" ], "description": "Type of promotion. Currently only external promotions can be created, in which promoted items do not originate from any of the criteria specified in the current recommendation activity." }, "key": { "type": "string", "enum": [ "CURRENT", "LAST_PURCHASED", "LAST_VIEWED", "MOST_VIEWED", "PROFILE_ATTRIBUTE" ], "description": "Promotion key. Values:\n\n- `CURRENT`: The currently viewed item.\n- `LAST_VIEWED`: The last viewed item.\n- `LAST_PURCHASED`: The last purchased item.\n- `MOST_VIEWED`: The most viewed item. The recommendations are determined by items that have been most viewed. The\n score is determined by recency/frequency: 10 points for first item view, 5 points for every subsequent view, all\n points are halved after the session ends.\n- `PROFILE_ATTRIBUTE`: Profile attribute.\n" }, "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Applicable when key is `PROFILE_ATTRIBUTE`. This is the profile attribute." }, "schedule": { "type": "object", "properties": { "end": { "type": "string", "format": "date-time" }, "start": { "type": "string", "format": "date-time" } }, "required": [ "end", "start" ], "description": "Time duration for which promotion should be applied." }, "order": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "ORIGINAL", "RANDOM" ], "default": "ORIGINAL" } } }, "configuration": { "type": "object", "properties": { "collectionId": { "type": "integer", "format": "int64" } }, "description": "Applicable only when rules are empty and type is not `INTERNAL`. It contains the relevant collection for promotion items." }, "rules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] } } }, "required": [ "name", "type" ] }, "examples": { "PromotionResponse": { "summary": "Promotion in response", "description": "A response body example of a Promotion object.", "value": { "id": 1, "name": "Hiking shoes summer promotion", "type": "EXTERNAL", "schedule": { "start": "2018-07-01T00:00:00Z", "end": "2018-08-31T23:59:59Z" }, "order": { "type": "ORIGINAL" }, "configuration": { "collectionId": 3432 }, "rules": [ { "attribute": "category", "operation": "endsWith", "values": [ "Hiking Shoes" ] } ] } } } } } } } }, "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ] } }, "components": { "schemas": { "ErrorMessage": { "type": "object", "properties": { "key": { "type": "string" }, "keyArguments": { "type": "array", "items": { "type": "string" } }, "text": { "type": "string" } } }, "FtpFeedConnectionType": { "type": "object", "properties": { "SERVER": { "type": "string" }, "USERNAME": { "type": "string" }, "PASSWORD": { "type": "string" }, "FILENAME": { "type": "string" }, "DIRECTORY": { "type": "string" } }, "required": [ "SERVER", "USERNAME", "PASSWORD", "FILENAME", "DIRECTORY" ], "description": "FTP connection details of the feed." }, "AlgorithmRankingRule": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "BasicMatcher": { "type": "object", "additionalProperties": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } } }, "InclusionMatcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "Matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "SourceAttribute": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "UrlFeedConnectionType": { "type": "object", "properties": { "URL": { "type": "string" } }, "required": [ "URL" ], "description": "HTTP location of the feed." }, "limit": { "type": "integer", "format": "int32", "description": "Number of resources shown in the response." }, "offset": { "type": "integer", "format": "int32", "description": "Number of resources skipped from start in the server list and omitted in response." }, "total": { "type": "integer", "format": "int32", "description": "Number of resources returned in the response." }, "CollectionMin": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the collection." } }, "required": [ "name" ] }, "Collection": { "allOf": [ { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the collection." } }, "required": [ "name" ] }, { "type": "object", "properties": { "rules": { "type": "array", "items": { "type": "object", "additionalProperties": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } } }, "minItems": 1, "maxItems": 1000, "description": "Array of rules containing attribute : operation pairs.\n\nThe attribute is any valid entity attribute. It is a required field and it should not be more than 100 characters.\n\nThe operation is a pair of operator and operand values. The operator can be one of:\n - Numeric operators: `greaterOrEquals`, `lesserOrEquals`\n - String operators: `startsWith`, `endsWith`, `contains`, `doesNotContain`\n - Alphanumeric operators: `equals`, `notEquals`, `valueIsPresent`, `valueIsNotPresent`\n\nThe other part of operation, operand values, is an array of values. Each value cannot be more than 250 characters.\nThere must be atleast 1 value and no more than 1000 values. Operand values are not required when operator is\neither `valueIsPresent` or `valueIsNotPresent`. Numeric operators accept integer or floating point operand values.\n" } }, "required": [ "rules" ] } ] }, "CriteriaMin": { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, "CriteriaPriceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "CriteriaCartConfiguration": { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "inclusionRulesKey": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "^(profile\\.|user\\.).+" ], "description": "Used for dynamic inclusion rules. Depending on the value either entity attribute matching or profile attribute matching is configured.\n[More info](https://docs.adobe.com/content/help/en/target/using/recommendations/criteria/use-dynamic-and-static-inclusion-rules.html#dynamic-filtering)].\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite. A report suite can not be used when type is `SIMILARITY`.\n" } } }, "CriteriaCart": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "criteriaGroup": { "type": "string", "enum": [ "CART" ], "readOnly": true }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "inclusionRulesKey": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "^(profile\\.|user\\.).+" ], "description": "Used for dynamic inclusion rules. Depending on the value either entity attribute matching or profile attribute matching is configured.\n[More info](https://docs.adobe.com/content/help/en/target/using/recommendations/criteria/use-dynamic-and-static-inclusion-rules.html#dynamic-filtering)].\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite. A report suite can not be used when type is `SIMILARITY`.\n" } } }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded in recommendations." }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "modelActionSettings": { "type": "object", "properties": { "actionOnKeyItems": { "type": "string", "enum": [ "PURCHASE", "VIEW" ], "description": "Which visitor behavior event to take into considerations for key items." }, "actionOnRecommendedItems": { "type": "string", "enum": [ "PURCHASE", "VIEW" ], "description": "Which visitor behavior event to take into considerations for recommended items.\n`VIEW` is invalid if actionOnKeyItems is `PURCHASE`.\n" }, "basisForCoOccurrence": { "type": "string", "enum": [ "SESSION", "USER" ], "description": "Coocurrence Basis. Values:\n\n- `SESSION`: each individual session will be consumed separately.\n- `USER`: all user sessions will be aggregated at user level.\n" } } } }, "required": [ "daysCount" ] } ] }, "CriteriaConfiguration": { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, "CriteriaCategoryConfiguration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "pastBehaviorOrdinal": { "type": "integer", "format": "int32" } } } ] }, "CriteriaCategory": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, favorite category in this instance, then continues\n to next favorite of visitor's favorite categories until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, favorite\n category in this instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, next favorite category in visitor's favorite categories is considered sequentially until the\n design is filled.\n\nIf the key is current category, only `NONE` is valid. For key as favorite category, all aggregation options are\navailable.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "pastBehaviorOrdinal": { "type": "integer", "format": "int32" } } } ] }, "criteriaGroup": { "type": "string", "enum": [ "CATEGORY" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `hoursCount`\n" }, "hoursCount": { "type": "integer", "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `daysCount`. Only allowed value `6`\n" }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "enum": [ "CURRENT", "FAVORITE" ], "description": "Recommendation key. Values:\n\n- `CURRENT`: The category of the currently viewed item.\n- `FAVORITE`: The category among visitor's categories with highest score. The recommendations are determined by\n the categories that have been most viewed. The score is determined by recency/frequency: 10 points for first\n category view, 5 points for every subsequent view.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "type": { "type": "string", "enum": [ "BOUGHT", "VIEWED" ], "description": "Recommendation logic. Values:\n\n - `BOUGHT`: Top sold items.\n - `VIEWED`: Most viewed items.\n" } }, "required": [ "key", "type" ] } ] }, "CriteriaCustomConfiguration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Applicable only when key is `PROFILE_ATTRIBUTE`. This is the profile attribute." }, "feed": { "type": "object", "properties": { "connection": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "url", "ftp" ], "description": "Protocol supported by the feed: HTTP or FTP" }, "attributes": { "oneOf": [ { "type": "object", "properties": { "URL": { "type": "string" } }, "required": [ "URL" ], "description": "HTTP location of the feed." }, { "type": "object", "properties": { "SERVER": { "type": "string" }, "USERNAME": { "type": "string" }, "PASSWORD": { "type": "string" }, "FILENAME": { "type": "string" }, "DIRECTORY": { "type": "string" } }, "required": [ "SERVER", "USERNAME", "PASSWORD", "FILENAME", "DIRECTORY" ], "description": "FTP connection details of the feed." } ] } }, "required": [ "type", "attributes" ], "description": "Object containing feed connection details." }, "environmentId": { "type": "integer", "format": "int32", "description": "Identifier of a valid environment. Use `-1` for all environments." }, "scheduleTime": { "type": "string", "pattern": "^([0-1][0-9]|2[0-3]):([0-5][0-9])$", "description": "Scheduled time to run the feed. Format is `HH:mm`." }, "scheduleType": { "type": "string", "enum": [ "daily", "weekly", "biWeekly", "never" ], "description": "Feeds can be scheduled to be run at a given frequency." }, "uploadHistory": { "type": "array", "items": { "type": "object", "properties": { "status": { "type": "string", "enum": [ "SUCCESS", "UNKNOWN_ERROR", "PARSING_ERROR", "SERVER_NOT_FOUND", "CREDENTIALS_ERROR", "DIRECTORY_NOT_FOUND", "FILE_NOT_FOUND", "SAINT_REPORT_NOT_FOUND", "CLASSIFICATION_NOT_FOUND", "SCHEDULED", "DOWNLOADING_FEED_FILE", "IMPORTING", "FLUSHING_RESULTS", "FLUSH_FAILED" ] }, "message": { "type": "string" }, "date": { "type": "string", "format": "date-time" } } }, "required": [ "status", "message", "date" ], "readOnly": true, "description": "Feed upload history." } }, "required": [ "connection", "environmentId", "scheduleType" ] } }, "required": [ "feed" ] } ] }, "CriteriaCustom": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when enough recommendations from CSV feed are not applicable in design." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Applicable only when key is `PROFILE_ATTRIBUTE`. This is the profile attribute." }, "feed": { "type": "object", "properties": { "connection": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "url", "ftp" ], "description": "Protocol supported by the feed: HTTP or FTP" }, "attributes": { "oneOf": [ { "type": "object", "properties": { "URL": { "type": "string" } }, "required": [ "URL" ], "description": "HTTP location of the feed." }, { "type": "object", "properties": { "SERVER": { "type": "string" }, "USERNAME": { "type": "string" }, "PASSWORD": { "type": "string" }, "FILENAME": { "type": "string" }, "DIRECTORY": { "type": "string" } }, "required": [ "SERVER", "USERNAME", "PASSWORD", "FILENAME", "DIRECTORY" ], "description": "FTP connection details of the feed." } ] } }, "required": [ "type", "attributes" ], "description": "Object containing feed connection details." }, "environmentId": { "type": "integer", "format": "int32", "description": "Identifier of a valid environment. Use `-1` for all environments." }, "scheduleTime": { "type": "string", "pattern": "^([0-1][0-9]|2[0-3]):([0-5][0-9])$", "description": "Scheduled time to run the feed. Format is `HH:mm`." }, "scheduleType": { "type": "string", "enum": [ "daily", "weekly", "biWeekly", "never" ], "description": "Feeds can be scheduled to be run at a given frequency." }, "uploadHistory": { "type": "array", "items": { "type": "object", "properties": { "status": { "type": "string", "enum": [ "SUCCESS", "UNKNOWN_ERROR", "PARSING_ERROR", "SERVER_NOT_FOUND", "CREDENTIALS_ERROR", "DIRECTORY_NOT_FOUND", "FILE_NOT_FOUND", "SAINT_REPORT_NOT_FOUND", "CLASSIFICATION_NOT_FOUND", "SCHEDULED", "DOWNLOADING_FEED_FILE", "IMPORTING", "FLUSHING_RESULTS", "FLUSH_FAILED" ] }, "message": { "type": "string" }, "date": { "type": "string", "format": "date-time" } } }, "required": [ "status", "message", "date" ], "readOnly": true, "description": "Feed upload history." } }, "required": [ "connection", "environmentId", "scheduleType" ] } }, "required": [ "feed" ] } ] }, "criteriaGroup": { "type": "string", "enum": [ "CUSTOM" ], "readOnly": true }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "CURRENT_CATEGORY", "FAVORITE_CATEGORY", "PROFILE_ATTRIBUTE" ], "description": "Recommendation key. Values:\n\n- `CURRENT`: The currently viewed item.\n- `LAST_VIEWED`: The last viewed item.\n- `LAST_PURCHASED`: The last purchased item.\n- `MOST_VIEWED`: The most viewed item. The recommendations are determined by items that have been most viewed.\n The score is determined by recency/frequency: 10 points for first item view, 5 points for every subsequent view,\n all points are halved after the session ends.\n- `CURRENT_CATEGORY`: The category of the currently viewed item.\n- `FAVORITE_CATEGORY`: The category among visitor's categories with highest score. The recommendations are\n determined by the categories that have been most viewed. The score is determined by recency/frequency: 10 points\n for first category view, 5 points for every subsequent view.\n- `PROFILE_ATTRIBUTE`: Profile attribute.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." } }, "required": [ "key", "configuration" ] } ] }, "CriteriaItemConfiguration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "confidence": { "type": "string", "enum": [ "VERY_WEAK", "WEAK", "MODERATE", "STRONG", "VERY_STRONG" ], "description": "Applicable only when type is `SITE_AFFINITY`. This determines how much data (strong or weak affinity) is required before a recommendation is presented." }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite. A report suite can not be used when type is `SIMILARITY`." }, "minSimilarity": { "type": "number", "format": "double", "minimum": 0.1, "maximum": 0.98, "default": 0.4, "description": "Applicable only when type is `SIMILARITY`. This is the threshold of minimum similarity required for two entities to be deemed similar. Lower number implies products will be more similar. But lower the number, criteria execution is exponentially longer." }, "pastBehaviorOrdinal": { "type": "integer", "format": "int32" } } } ] }, "CriteriaItem": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, last viewed item, for instance, then continues to\n next last viewed item by visitor until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, last purchased\n item, for instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, second to last purchased item by visitor is considered and so forth until the design is\n filled.\n\nIf the key is `CURRENT`, only `NONE` is valid.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "confidence": { "type": "string", "enum": [ "VERY_WEAK", "WEAK", "MODERATE", "STRONG", "VERY_STRONG" ], "description": "Applicable only when type is `SITE_AFFINITY`. This determines how much data (strong or weak affinity) is required before a recommendation is presented." }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite. A report suite can not be used when type is `SIMILARITY`." }, "minSimilarity": { "type": "number", "format": "double", "minimum": 0.1, "maximum": 0.98, "default": 0.4, "description": "Applicable only when type is `SIMILARITY`. This is the threshold of minimum similarity required for two entities to be deemed similar. Lower number implies products will be more similar. But lower the number, criteria execution is exponentially longer." }, "pastBehaviorOrdinal": { "type": "integer", "format": "int32" } } } ] }, "criteriaGroup": { "type": "string", "enum": [ "ITEM" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED" ], "description": "Recommendation key. Values:\n\n- `CURRENT`: The currently viewed item.\n- `LAST_VIEWED`: The last viewed item.\n- `LAST_PURCHASED`: The last purchased item.\n- `MOST_VIEWED`: The most viewed item. The recommendations are determined by items that have been most viewed.\n The score is determined by recency/frequency: 10 points for first item view, 5 points for every subsequent view,\n all points are halved after the session ends.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "type": { "type": "string", "enum": [ "VIEWED_BOUGHT", "BOUGHT_CF", "VIEWED_CF", "SITE_AFFINITY", "SIMILARITY" ], "description": "Recommendation logic. Values:\n\n - `VIEWED_BOUGHT`: People who viewed this, bought that.\n - `BOUGHT_CF`: People who bought this, bought that.\n - `VIEWED_CF`: People who viewed this, viewed that.\n - `SITE_AFFINITY`: Considers items based on the certainty of a relationship between items. Confidence setting is\n used to determine how much data (strong or weak affinity) is required before a recommendation is presented.\n - `SIMILARITY`: Considers items similar to items based on current page activity or past visitor behavior.\n" } }, "required": [ "configuration", "daysCount", "key", "type" ] } ] }, "CriteriaPopularityConfiguration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid report suite. If type is `METRIC`, this field is required and value must be a valid report suite." }, "grouping": { "type": "object", "properties": { "attributes": { "type": "array", "items": { "type": "string", "maxLength": 250, "pattern": "^(profile\\.|user\\.).+" }, "maxItems": 10, "description": "Array of profile attributes." }, "type": { "type": "string", "enum": [ "HIERARCHICAL", "SEQUENTIAL" ] } }, "description": "Not applicable for type `METRIC`. Grouping allows to narrow recommendations by profile attributes.", "required": [ "attributes", "type" ] }, "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Applicable for type `SELLERS` or `VIEWED`. Required only for top sellers by custom profile attribute/most viewed by custom profile attribute\n(that is, when key is `customProfileAttribute`).\n\nThe custom profile attribute to be used as the basis for providing recommendations. The value should include the prefix `user.` or `profile.`.\n" }, "groupByEntityAttribute": { "type": "string", "description": "Applicable for type `SELLERS` or `VIEWED`. Required only for top sellers by custom profile attribute/most viewed by custom profile attribute\n(that is, when key is `customProfileAttribute`).\n\nThe entity attribute whose value will be matched to the custom profile attribute, in order to provide the list of\ntop sellers/most viewed items among those items with a matching attribute value. The value should **not** include the prefix `entity.`.\n" } } } ] }, "CriteriaPopularity": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, top seller in this instance, then continues to next\n top seller until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, most viewed item\n in this instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, next most viewed item is considered sequentially until the design is filled.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid report suite. If type is `METRIC`, this field is required and value must be a valid report suite." }, "grouping": { "type": "object", "properties": { "attributes": { "type": "array", "items": { "type": "string", "maxLength": 250, "pattern": "^(profile\\.|user\\.).+" }, "maxItems": 10, "description": "Array of profile attributes." }, "type": { "type": "string", "enum": [ "HIERARCHICAL", "SEQUENTIAL" ] } }, "description": "Not applicable for type `METRIC`. Grouping allows to narrow recommendations by profile attributes.", "required": [ "attributes", "type" ] }, "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Applicable for type `SELLERS` or `VIEWED`. Required only for top sellers by custom profile attribute/most viewed by custom profile attribute\n(that is, when key is `customProfileAttribute`).\n\nThe custom profile attribute to be used as the basis for providing recommendations. The value should include the prefix `user.` or `profile.`.\n" }, "groupByEntityAttribute": { "type": "string", "description": "Applicable for type `SELLERS` or `VIEWED`. Required only for top sellers by custom profile attribute/most viewed by custom profile attribute\n(that is, when key is `customProfileAttribute`).\n\nThe entity attribute whose value will be matched to the custom profile attribute, in order to provide the list of\ntop sellers/most viewed items among those items with a matching attribute value. The value should **not** include the prefix `entity.`.\n" } } } ] }, "criteriaGroup": { "type": "string", "enum": [ "POPULARITY" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `hoursCount`\n" }, "hoursCount": { "type": "integer", "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `daysCount`. Only allowed value `6`\n" }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "description": "Recommendation key. Values:\n - When type is `METRIC`, this is a required field. The value is the name of an Analytics report suite metric.\n - When type is `SELLERS` or `VIEWED`, this field is only used when creating a top sellers by custom profile attribute/most\n viewed by custom profile attribute criteria. When creating this criteria type, the value should be set to\n `customProfileAttribute` and the profile attribute is set in configuration.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "type": { "type": "string", "enum": [ "SELLERS", "VIEWED", "METRIC" ], "description": "Recommendation logic. Values:\n\n - `SELLERS`: Top sellers.\n - `VIEWED`: Most viewed items.\n - `METRIC`: Considers Analytics product report suite for recommendations.\n" } }, "required": [ "type" ] } ] }, "CriteriaProfileAttributeConfiguration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Profile attribute." }, "confidence": { "type": "string", "enum": [ "VERY_WEAK", "WEAK", "MODERATE", "STRONG", "VERY_STRONG" ], "description": "Applicable only when type is `SITE_AFFINITY`. This determines how much data (strong or weak affinity) is required before a recommendation is presented." }, "datasource": { "type": "string", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite." } }, "required": [ "attribute", "datasource" ] } ] }, "CriteriaProfileAttribute": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, top seller in this instance, then continues to next\n top seller until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, most viewed item\n in this instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, next most viewed item is considered sequentially until the design is filled.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Profile attribute." }, "confidence": { "type": "string", "enum": [ "VERY_WEAK", "WEAK", "MODERATE", "STRONG", "VERY_STRONG" ], "description": "Applicable only when type is `SITE_AFFINITY`. This determines how much data (strong or weak affinity) is required before a recommendation is presented." }, "datasource": { "type": "string", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite." } }, "required": [ "attribute", "datasource" ] } ] }, "criteriaGroup": { "type": "string", "enum": [ "PROFILEATTRIBUTE" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "superSlotCount": { "type": "integer", "format": "int32", "readOnly": true }, "type": { "type": "string", "enum": [ "VIEWED_BOUGHT", "BOUGHT_CF", "VIEWED_CF", "SITE_AFFINITY" ], "description": "Recommendation logic. Values:\n\n - `VIEWED_BOUGHT`: People who viewed this, bought that.\n - `BOUGHT_CF`: People who bought this, bought that.\n - `VIEWED_CF`: People who viewed this, viewed that.\n - `SITE_AFFINITY`: Considers items based on the certainty of a relationship between items. Confidence setting is\n used to determine how much data (strong or weak affinity) is required before a recommendation is presented.\n" } }, "required": [ "configuration", "daysCount", "type" ] } ] }, "CriteriaRecentConfiguration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." } ] }, "CriteriaRecent": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." } ] }, "criteriaGroup": { "type": "string", "enum": [ "RECENT" ], "readOnly": true }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." } } } ] }, "CriteriaSequence": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "criteriaGroup": { "type": "string", "enum": [ "SEQUENCE" ], "readOnly": true }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "sequence": { "type": "array", "minItems": 1, "maxItems": 5, "items": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "description": "ID of criteria in sequence." }, "slotCount": { "type": "integer", "format": "int64", "maximum": 100, "minimum": 1, "description": "Number of recommendations this criteria will return." } }, "required": [ "id" ] }, "description": "Criteria sequence represented by an array of criteria object IDs." } }, "required": [ "sequence" ] } ] }, "CriteriaMultiKeyConfiguration": { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "inclusionRulesKey": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "^(profile\\.|user\\.).+" ], "description": "Used for dynamic inclusion rules. Depending on the value either entity attribute matching or profile attribute matching is configured.\n[More info](https://docs.adobe.com/content/help/en/target/using/recommendations/criteria/use-dynamic-and-static-inclusion-rules.html#dynamic-filtering)].\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite.\n" } } }, "CriteriaUserHistoryConfiguration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "inclusionRulesKey": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "^(profile\\.|user\\.).+" ], "description": "Used for dynamic inclusion rules. Depending on the value either entity attribute matching or profile attribute matching is configured.\n[More info](https://docs.adobe.com/content/help/en/target/using/recommendations/criteria/use-dynamic-and-static-inclusion-rules.html#dynamic-filtering)].\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite.\n" } } }, { "type": "object", "properties": { "inclusionRulesKey": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "^(profile\\.|user\\.).+" ], "description": "Used for dynamic inclusion rules, i.e rules which use delivery time item to apply filtering.\n" }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite.\n" } } } ] }, "CriteriaUserHistory": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "criteriaGroup": { "type": "string", "enum": [ "USERHISTORY" ], "readOnly": true }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "inclusionRulesKey": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "^(profile\\.|user\\.).+" ], "description": "Used for dynamic inclusion rules. Depending on the value either entity attribute matching or profile attribute matching is configured.\n[More info](https://docs.adobe.com/content/help/en/target/using/recommendations/criteria/use-dynamic-and-static-inclusion-rules.html#dynamic-filtering)].\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite.\n" } } }, { "type": "object", "properties": { "inclusionRulesKey": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "^(profile\\.|user\\.).+" ], "description": "Used for dynamic inclusion rules, i.e rules which use delivery time item to apply filtering.\n" }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite.\n" } } } ] }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "excludeViews": { "type": "boolean", "default": false, "description": "Whether items that were previously viewed by the visitor should be excluded from recommendations." } }, "required": [ "daysCount" ] } ] }, "Criteria": { "type": "object", "oneOf": [ { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "criteriaGroup": { "type": "string", "enum": [ "CART" ], "readOnly": true }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "inclusionRulesKey": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "^(profile\\.|user\\.).+" ], "description": "Used for dynamic inclusion rules. Depending on the value either entity attribute matching or profile attribute matching is configured.\n[More info](https://docs.adobe.com/content/help/en/target/using/recommendations/criteria/use-dynamic-and-static-inclusion-rules.html#dynamic-filtering)].\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite. A report suite can not be used when type is `SIMILARITY`.\n" } } }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded in recommendations." }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "modelActionSettings": { "type": "object", "properties": { "actionOnKeyItems": { "type": "string", "enum": [ "PURCHASE", "VIEW" ], "description": "Which visitor behavior event to take into considerations for key items." }, "actionOnRecommendedItems": { "type": "string", "enum": [ "PURCHASE", "VIEW" ], "description": "Which visitor behavior event to take into considerations for recommended items.\n`VIEW` is invalid if actionOnKeyItems is `PURCHASE`.\n" }, "basisForCoOccurrence": { "type": "string", "enum": [ "SESSION", "USER" ], "description": "Coocurrence Basis. Values:\n\n- `SESSION`: each individual session will be consumed separately.\n- `USER`: all user sessions will be aggregated at user level.\n" } } } }, "required": [ "daysCount" ] } ] }, { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, favorite category in this instance, then continues\n to next favorite of visitor's favorite categories until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, favorite\n category in this instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, next favorite category in visitor's favorite categories is considered sequentially until the\n design is filled.\n\nIf the key is current category, only `NONE` is valid. For key as favorite category, all aggregation options are\navailable.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "pastBehaviorOrdinal": { "type": "integer", "format": "int32" } } } ] }, "criteriaGroup": { "type": "string", "enum": [ "CATEGORY" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `hoursCount`\n" }, "hoursCount": { "type": "integer", "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `daysCount`. Only allowed value `6`\n" }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "enum": [ "CURRENT", "FAVORITE" ], "description": "Recommendation key. Values:\n\n- `CURRENT`: The category of the currently viewed item.\n- `FAVORITE`: The category among visitor's categories with highest score. The recommendations are determined by\n the categories that have been most viewed. The score is determined by recency/frequency: 10 points for first\n category view, 5 points for every subsequent view.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "type": { "type": "string", "enum": [ "BOUGHT", "VIEWED" ], "description": "Recommendation logic. Values:\n\n - `BOUGHT`: Top sold items.\n - `VIEWED`: Most viewed items.\n" } }, "required": [ "key", "type" ] } ] }, { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when enough recommendations from CSV feed are not applicable in design." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Applicable only when key is `PROFILE_ATTRIBUTE`. This is the profile attribute." }, "feed": { "type": "object", "properties": { "connection": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "url", "ftp" ], "description": "Protocol supported by the feed: HTTP or FTP" }, "attributes": { "oneOf": [ { "type": "object", "properties": { "URL": { "type": "string" } }, "required": [ "URL" ], "description": "HTTP location of the feed." }, { "type": "object", "properties": { "SERVER": { "type": "string" }, "USERNAME": { "type": "string" }, "PASSWORD": { "type": "string" }, "FILENAME": { "type": "string" }, "DIRECTORY": { "type": "string" } }, "required": [ "SERVER", "USERNAME", "PASSWORD", "FILENAME", "DIRECTORY" ], "description": "FTP connection details of the feed." } ] } }, "required": [ "type", "attributes" ], "description": "Object containing feed connection details." }, "environmentId": { "type": "integer", "format": "int32", "description": "Identifier of a valid environment. Use `-1` for all environments." }, "scheduleTime": { "type": "string", "pattern": "^([0-1][0-9]|2[0-3]):([0-5][0-9])$", "description": "Scheduled time to run the feed. Format is `HH:mm`." }, "scheduleType": { "type": "string", "enum": [ "daily", "weekly", "biWeekly", "never" ], "description": "Feeds can be scheduled to be run at a given frequency." }, "uploadHistory": { "type": "array", "items": { "type": "object", "properties": { "status": { "type": "string", "enum": [ "SUCCESS", "UNKNOWN_ERROR", "PARSING_ERROR", "SERVER_NOT_FOUND", "CREDENTIALS_ERROR", "DIRECTORY_NOT_FOUND", "FILE_NOT_FOUND", "SAINT_REPORT_NOT_FOUND", "CLASSIFICATION_NOT_FOUND", "SCHEDULED", "DOWNLOADING_FEED_FILE", "IMPORTING", "FLUSHING_RESULTS", "FLUSH_FAILED" ] }, "message": { "type": "string" }, "date": { "type": "string", "format": "date-time" } } }, "required": [ "status", "message", "date" ], "readOnly": true, "description": "Feed upload history." } }, "required": [ "connection", "environmentId", "scheduleType" ] } }, "required": [ "feed" ] } ] }, "criteriaGroup": { "type": "string", "enum": [ "CUSTOM" ], "readOnly": true }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "CURRENT_CATEGORY", "FAVORITE_CATEGORY", "PROFILE_ATTRIBUTE" ], "description": "Recommendation key. Values:\n\n- `CURRENT`: The currently viewed item.\n- `LAST_VIEWED`: The last viewed item.\n- `LAST_PURCHASED`: The last purchased item.\n- `MOST_VIEWED`: The most viewed item. The recommendations are determined by items that have been most viewed.\n The score is determined by recency/frequency: 10 points for first item view, 5 points for every subsequent view,\n all points are halved after the session ends.\n- `CURRENT_CATEGORY`: The category of the currently viewed item.\n- `FAVORITE_CATEGORY`: The category among visitor's categories with highest score. The recommendations are\n determined by the categories that have been most viewed. The score is determined by recency/frequency: 10 points\n for first category view, 5 points for every subsequent view.\n- `PROFILE_ATTRIBUTE`: Profile attribute.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." } }, "required": [ "key", "configuration" ] } ] }, { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, last viewed item, for instance, then continues to\n next last viewed item by visitor until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, last purchased\n item, for instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, second to last purchased item by visitor is considered and so forth until the design is\n filled.\n\nIf the key is `CURRENT`, only `NONE` is valid.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "confidence": { "type": "string", "enum": [ "VERY_WEAK", "WEAK", "MODERATE", "STRONG", "VERY_STRONG" ], "description": "Applicable only when type is `SITE_AFFINITY`. This determines how much data (strong or weak affinity) is required before a recommendation is presented." }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite. A report suite can not be used when type is `SIMILARITY`." }, "minSimilarity": { "type": "number", "format": "double", "minimum": 0.1, "maximum": 0.98, "default": 0.4, "description": "Applicable only when type is `SIMILARITY`. This is the threshold of minimum similarity required for two entities to be deemed similar. Lower number implies products will be more similar. But lower the number, criteria execution is exponentially longer." }, "pastBehaviorOrdinal": { "type": "integer", "format": "int32" } } } ] }, "criteriaGroup": { "type": "string", "enum": [ "ITEM" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED" ], "description": "Recommendation key. Values:\n\n- `CURRENT`: The currently viewed item.\n- `LAST_VIEWED`: The last viewed item.\n- `LAST_PURCHASED`: The last purchased item.\n- `MOST_VIEWED`: The most viewed item. The recommendations are determined by items that have been most viewed.\n The score is determined by recency/frequency: 10 points for first item view, 5 points for every subsequent view,\n all points are halved after the session ends.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "type": { "type": "string", "enum": [ "VIEWED_BOUGHT", "BOUGHT_CF", "VIEWED_CF", "SITE_AFFINITY", "SIMILARITY" ], "description": "Recommendation logic. Values:\n\n - `VIEWED_BOUGHT`: People who viewed this, bought that.\n - `BOUGHT_CF`: People who bought this, bought that.\n - `VIEWED_CF`: People who viewed this, viewed that.\n - `SITE_AFFINITY`: Considers items based on the certainty of a relationship between items. Confidence setting is\n used to determine how much data (strong or weak affinity) is required before a recommendation is presented.\n - `SIMILARITY`: Considers items similar to items based on current page activity or past visitor behavior.\n" } }, "required": [ "configuration", "daysCount", "key", "type" ] } ] }, { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, top seller in this instance, then continues to next\n top seller until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, most viewed item\n in this instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, next most viewed item is considered sequentially until the design is filled.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid report suite. If type is `METRIC`, this field is required and value must be a valid report suite." }, "grouping": { "type": "object", "properties": { "attributes": { "type": "array", "items": { "type": "string", "maxLength": 250, "pattern": "^(profile\\.|user\\.).+" }, "maxItems": 10, "description": "Array of profile attributes." }, "type": { "type": "string", "enum": [ "HIERARCHICAL", "SEQUENTIAL" ] } }, "description": "Not applicable for type `METRIC`. Grouping allows to narrow recommendations by profile attributes.", "required": [ "attributes", "type" ] }, "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Applicable for type `SELLERS` or `VIEWED`. Required only for top sellers by custom profile attribute/most viewed by custom profile attribute\n(that is, when key is `customProfileAttribute`).\n\nThe custom profile attribute to be used as the basis for providing recommendations. The value should include the prefix `user.` or `profile.`.\n" }, "groupByEntityAttribute": { "type": "string", "description": "Applicable for type `SELLERS` or `VIEWED`. Required only for top sellers by custom profile attribute/most viewed by custom profile attribute\n(that is, when key is `customProfileAttribute`).\n\nThe entity attribute whose value will be matched to the custom profile attribute, in order to provide the list of\ntop sellers/most viewed items among those items with a matching attribute value. The value should **not** include the prefix `entity.`.\n" } } } ] }, "criteriaGroup": { "type": "string", "enum": [ "POPULARITY" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `hoursCount`\n" }, "hoursCount": { "type": "integer", "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `daysCount`. Only allowed value `6`\n" }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "description": "Recommendation key. Values:\n - When type is `METRIC`, this is a required field. The value is the name of an Analytics report suite metric.\n - When type is `SELLERS` or `VIEWED`, this field is only used when creating a top sellers by custom profile attribute/most\n viewed by custom profile attribute criteria. When creating this criteria type, the value should be set to\n `customProfileAttribute` and the profile attribute is set in configuration.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "type": { "type": "string", "enum": [ "SELLERS", "VIEWED", "METRIC" ], "description": "Recommendation logic. Values:\n\n - `SELLERS`: Top sellers.\n - `VIEWED`: Most viewed items.\n - `METRIC`: Considers Analytics product report suite for recommendations.\n" } }, "required": [ "type" ] } ] }, { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, top seller in this instance, then continues to next\n top seller until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, most viewed item\n in this instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, next most viewed item is considered sequentially until the design is filled.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Profile attribute." }, "confidence": { "type": "string", "enum": [ "VERY_WEAK", "WEAK", "MODERATE", "STRONG", "VERY_STRONG" ], "description": "Applicable only when type is `SITE_AFFINITY`. This determines how much data (strong or weak affinity) is required before a recommendation is presented." }, "datasource": { "type": "string", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite." } }, "required": [ "attribute", "datasource" ] } ] }, "criteriaGroup": { "type": "string", "enum": [ "PROFILEATTRIBUTE" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "superSlotCount": { "type": "integer", "format": "int32", "readOnly": true }, "type": { "type": "string", "enum": [ "VIEWED_BOUGHT", "BOUGHT_CF", "VIEWED_CF", "SITE_AFFINITY" ], "description": "Recommendation logic. Values:\n\n - `VIEWED_BOUGHT`: People who viewed this, bought that.\n - `BOUGHT_CF`: People who bought this, bought that.\n - `VIEWED_CF`: People who viewed this, viewed that.\n - `SITE_AFFINITY`: Considers items based on the certainty of a relationship between items. Confidence setting is\n used to determine how much data (strong or weak affinity) is required before a recommendation is presented.\n" } }, "required": [ "configuration", "daysCount", "type" ] } ] }, { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." } ] }, "criteriaGroup": { "type": "string", "enum": [ "RECENT" ], "readOnly": true }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." } } } ] }, { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "criteriaGroup": { "type": "string", "enum": [ "SEQUENCE" ], "readOnly": true }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "sequence": { "type": "array", "minItems": 1, "maxItems": 5, "items": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "description": "ID of criteria in sequence." }, "slotCount": { "type": "integer", "format": "int64", "maximum": 100, "minimum": 1, "description": "Number of recommendations this criteria will return." } }, "required": [ "id" ] }, "description": "Criteria sequence represented by an array of criteria object IDs." } }, "required": [ "sequence" ] } ] }, { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "criteriaGroup": { "type": "string", "enum": [ "USERHISTORY" ], "readOnly": true }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "inclusionRulesKey": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "^(profile\\.|user\\.).+" ], "description": "Used for dynamic inclusion rules. Depending on the value either entity attribute matching or profile attribute matching is configured.\n[More info](https://docs.adobe.com/content/help/en/target/using/recommendations/criteria/use-dynamic-and-static-inclusion-rules.html#dynamic-filtering)].\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite.\n" } } }, { "type": "object", "properties": { "inclusionRulesKey": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "^(profile\\.|user\\.).+" ], "description": "Used for dynamic inclusion rules, i.e rules which use delivery time item to apply filtering.\n" }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite.\n" } } } ] }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "excludeViews": { "type": "boolean", "default": false, "description": "Whether items that were previously viewed by the visitor should be excluded from recommendations." } }, "required": [ "daysCount" ] } ] } ], "discriminator": { "propertyName": "criteriaGroup", "mapping": { "CART": "./cart/cart-criteria.oas.yaml#/components/schemas/CriteriaCart", "CATEGORY": "./category/category-criteria.oas.yaml#/components/schemas/CriteriaCategory", "CUSTOM": "./custom/custom-criteria.oas.yaml#/components/schemas/CriteriaCustom", "ITEM": "./item/item-criteria.oas.yaml#/components/schemas/CriteriaItem", "POPULARITY": "./popularity/popularity-criteria.oas.yaml#/components/schemas/CriteriaPopularity", "PROFILEATTRIBUTE": "./profileattribute/profile-attribute-criteria.oas.yaml#/components/schemas/CriteriaProfileAttribute", "RECENT": "./recent/recent-criteria.oas.yaml#/components/schemas/CriteriaRecent", "SEQUENCE": "./sequence/sequence-criteria.oas.yaml#/components/schemas/CriteriaSequence", "USERHISTORY": "./userhistory/user-history-criteria.oas.yaml#/components/schemas/CriteriaUserHistory" } } }, "Design": { "type": "object", "properties": { "name": { "type": "string", "maxLength": 250, "description": "Unique name of the design." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "script": { "type": "string", "maxLength": 65000, "description": "Velocity template containing at least one entity object. Velocity Engine 1.7 is supported." } }, "required": [ "name", "script" ] }, "DesignValidationResult": { "type": "object", "properties": { "entityCount": { "type": "integer", "format": "int32", "description": "Number of items used in the design script." }, "errors": { "type": "array", "items": { "type": "object", "properties": { "key": { "type": "string" }, "keyArguments": { "type": "array", "items": { "type": "string" } }, "text": { "type": "string" } } } }, "valid": { "type": "boolean" } } }, "Entity": { "type": "object", "properties": { "attributes": { "type": "object", "properties": { "createdAt": { "type": "string", "format": "date" }, "inventory": { "type": "integer", "format": "int64" }, "lastUpdatedAt": { "type": "string", "format": "date" }, "margin": { "type": "number", "format": "double" }, "message": { "type": "string" }, "pageUrl": { "type": "string" }, "thumbnailUrl": { "type": "string" }, "value": { "type": "number", "format": "double" } }, "additionalProperties": { "type": "string" }, "description": "Entity attributes. Besides some pre-defined attributes, about 100 custom attributes can be added. [More info](https://docs.adobe.com/content/help/en/target/using/recommendations/entities/entity-attributes.html)." }, "categories": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "maxItems": 1000, "minItems": 1, "uniqueItems": true, "description": "Set of entity categories for the entity." }, "environment": { "type": "integer", "format": "int64", "description": "ID of an environment." }, "id": { "type": "string", "maxLength": 1000 }, "name": { "type": "string", "maxLength": 250 } }, "required": [ "id", "name", "categories" ] }, "EntityBatch": { "type": "object", "properties": { "entities": { "type": "array", "items": { "type": "object", "properties": { "attributes": { "type": "object", "properties": { "createdAt": { "type": "string", "format": "date" }, "inventory": { "type": "integer", "format": "int64" }, "lastUpdatedAt": { "type": "string", "format": "date" }, "margin": { "type": "number", "format": "double" }, "message": { "type": "string" }, "pageUrl": { "type": "string" }, "thumbnailUrl": { "type": "string" }, "value": { "type": "number", "format": "double" } }, "additionalProperties": { "type": "string" }, "description": "Entity attributes. Besides some pre-defined attributes, about 100 custom attributes can be added. [More info](https://docs.adobe.com/content/help/en/target/using/recommendations/entities/entity-attributes.html)." }, "categories": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "maxItems": 1000, "minItems": 1, "uniqueItems": true, "description": "Set of entity categories for the entity." }, "environment": { "type": "integer", "format": "int64", "description": "ID of an environment." }, "id": { "type": "string", "maxLength": 1000 }, "name": { "type": "string", "maxLength": 250 } }, "required": [ "id", "name", "categories" ] }, "minItems": 1 } }, "required": [ "entities" ], "description": "Batch of entities." }, "EntityRejectMessage": { "type": "object", "properties": { "cause": { "type": "object", "properties": { "key": { "type": "string" }, "keyArguments": { "type": "array", "items": { "type": "string" } }, "text": { "type": "string" } } }, "occurrences": { "type": "integer", "format": "int32", "description": "Number of occurrences of the error message." } } }, "EntityBatchUpdateResult": { "type": "object", "properties": { "inserted/updated": { "type": "integer", "format": "int32" }, "rejected": { "type": "integer", "format": "int32" }, "rejectCauses": { "type": "array", "items": { "type": "object", "properties": { "cause": { "type": "object", "properties": { "key": { "type": "string" }, "keyArguments": { "type": "array", "items": { "type": "string" } }, "text": { "type": "string" } } }, "occurrences": { "type": "integer", "format": "int32", "description": "Number of occurrences of the error message." } } }, "description": "Error messages that caused the rejection of entities. Details can be found in `cause.text`." } }, "description": "Status of the operation (create or update) on the provided entities." }, "EntityBatchDeleteResult": { "type": "object", "properties": { "operation": { "type": "string", "enum": [ "Delete by client requested.", "deleted by ids" ], "description": "Indicates how entities were deleted." } } }, "SearchMeta": { "type": "object", "properties": { "environmentId": { "type": "integer", "format": "int64", "description": "ID of an environment" }, "limit": { "type": "integer", "format": "int32", "default": 10, "maximum": 500, "description": "Number of results to return" }, "displayFields": { "type": "array", "items": { "type": "string" }, "default": [ "id" ], "description": "Set of fields to return ('id' is always included)" }, "start": { "type": "integer", "format": "int32", "default": 1, "description": "Result number at which to start output" } }, "required": [ "environmentId" ] }, "SearchQuerySimple": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "simple" ] }, "queryFields": { "type": "array", "items": { "type": "string" }, "default": [ "id" ], "description": "Fields to return in the response" } }, "required": [ "type" ] }, "SearchQuerySimpleNumeric": { "allOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "simple" ] }, "queryFields": { "type": "array", "items": { "type": "string" }, "default": [ "id" ], "description": "Fields to return in the response" } }, "required": [ "type" ] }, { "type": "object", "properties": { "operator": { "type": "string", "enum": [ "lt", "le", "eq", "ge", "gt", "ne", "present", "absent" ], "default": "eq", "description": "The kind of match to perform:\n* lt: less-than\n* le: less-than or equal\n* eq: equal\n* ge: greater than or equal\n* gt: greater than\n* ne: not equal\n* present: attribute exists with any value\n* absent: attribute does not exist\n" } }, "required": [ "matchValue" ] } ] }, "SearchQuerySimpleDouble": { "allOf": [ { "allOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "simple" ] }, "queryFields": { "type": "array", "items": { "type": "string" }, "default": [ "id" ], "description": "Fields to return in the response" } }, "required": [ "type" ] }, { "type": "object", "properties": { "operator": { "type": "string", "enum": [ "lt", "le", "eq", "ge", "gt", "ne", "present", "absent" ], "default": "eq", "description": "The kind of match to perform:\n* lt: less-than\n* le: less-than or equal\n* eq: equal\n* ge: greater than or equal\n* gt: greater than\n* ne: not equal\n* present: attribute exists with any value\n* absent: attribute does not exist\n" } }, "required": [ "matchValue" ] } ] }, { "type": "object", "properties": { "matchValue": { "type": "number", "format": "double", "description": "Numeric value to match" } } } ], "title": "simple double" }, "SearchQuerySimpleLong": { "allOf": [ { "allOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "simple" ] }, "queryFields": { "type": "array", "items": { "type": "string" }, "default": [ "id" ], "description": "Fields to return in the response" } }, "required": [ "type" ] }, { "type": "object", "properties": { "operator": { "type": "string", "enum": [ "lt", "le", "eq", "ge", "gt", "ne", "present", "absent" ], "default": "eq", "description": "The kind of match to perform:\n* lt: less-than\n* le: less-than or equal\n* eq: equal\n* ge: greater than or equal\n* gt: greater than\n* ne: not equal\n* present: attribute exists with any value\n* absent: attribute does not exist\n" } }, "required": [ "matchValue" ] } ] }, { "type": "object", "properties": { "matchValue": { "type": "integer", "format": "int64", "description": "Numeric value to match" } } } ], "title": "simple integer" }, "SearchQuerySimpleString": { "allOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "simple" ] }, "queryFields": { "type": "array", "items": { "type": "string" }, "default": [ "id" ], "description": "Fields to return in the response" } }, "required": [ "type" ] }, { "type": "object", "properties": { "operator": { "type": "string", "enum": [ "lt", "le", "eq", "ge", "gt", "ne", "present", "absent", "contains", "notcontains", "startswith", "endswith" ], "default": "eq", "description": "The kind of match to perform:\n* lt: less-than\n* le: less-than or equal\n* eq: equal\n* ge: greater than or equal\n* gt: greater than\n* ne: not equal\n* present: attribute exists with any value\n* absent: attribute does not exist\n* contains: contains matchValue (case-insensitive)\n* notcontains: does not contain matchValue (case-insensitive)\n* startswith: starts with matchValue (case-insensitive)\n* endswith: ends with matchValue (case-insensitive)\n" }, "matchValue": { "type": "string", "description": "String to match" } }, "required": [ "matchValue" ] } ], "title": "simple string" }, "SearchQueryCompound": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "compound" ] }, "joinOperator": { "type": "string", "enum": [ "AND", "OR" ], "default": "AND" }, "filters": { "type": "array", "items": { "type": "string" } } }, "required": [ "type", "filters" ], "title": "compound search" }, "SearchQuery": { "oneOf": [ { "allOf": [ { "allOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "simple" ] }, "queryFields": { "type": "array", "items": { "type": "string" }, "default": [ "id" ], "description": "Fields to return in the response" } }, "required": [ "type" ] }, { "type": "object", "properties": { "operator": { "type": "string", "enum": [ "lt", "le", "eq", "ge", "gt", "ne", "present", "absent" ], "default": "eq", "description": "The kind of match to perform:\n* lt: less-than\n* le: less-than or equal\n* eq: equal\n* ge: greater than or equal\n* gt: greater than\n* ne: not equal\n* present: attribute exists with any value\n* absent: attribute does not exist\n" } }, "required": [ "matchValue" ] } ] }, { "type": "object", "properties": { "matchValue": { "type": "number", "format": "double", "description": "Numeric value to match" } } } ], "title": "simple double" }, { "allOf": [ { "allOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "simple" ] }, "queryFields": { "type": "array", "items": { "type": "string" }, "default": [ "id" ], "description": "Fields to return in the response" } }, "required": [ "type" ] }, { "type": "object", "properties": { "operator": { "type": "string", "enum": [ "lt", "le", "eq", "ge", "gt", "ne", "present", "absent" ], "default": "eq", "description": "The kind of match to perform:\n* lt: less-than\n* le: less-than or equal\n* eq: equal\n* ge: greater than or equal\n* gt: greater than\n* ne: not equal\n* present: attribute exists with any value\n* absent: attribute does not exist\n" } }, "required": [ "matchValue" ] } ] }, { "type": "object", "properties": { "matchValue": { "type": "integer", "format": "int64", "description": "Numeric value to match" } } } ], "title": "simple integer" }, { "allOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "simple" ] }, "queryFields": { "type": "array", "items": { "type": "string" }, "default": [ "id" ], "description": "Fields to return in the response" } }, "required": [ "type" ] }, { "type": "object", "properties": { "operator": { "type": "string", "enum": [ "lt", "le", "eq", "ge", "gt", "ne", "present", "absent", "contains", "notcontains", "startswith", "endswith" ], "default": "eq", "description": "The kind of match to perform:\n* lt: less-than\n* le: less-than or equal\n* eq: equal\n* ge: greater than or equal\n* gt: greater than\n* ne: not equal\n* present: attribute exists with any value\n* absent: attribute does not exist\n* contains: contains matchValue (case-insensitive)\n* notcontains: does not contain matchValue (case-insensitive)\n* startswith: starts with matchValue (case-insensitive)\n* endswith: ends with matchValue (case-insensitive)\n" }, "matchValue": { "type": "string", "description": "String to match" } }, "required": [ "matchValue" ] } ], "title": "simple string" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "compound" ] }, "joinOperator": { "type": "string", "enum": [ "AND", "OR" ], "default": "AND" }, "filters": { "type": "array", "items": { "type": "string" } } }, "required": [ "type", "filters" ], "title": "compound search" } ] }, "Search": { "type": "object", "properties": { "meta": { "type": "object", "properties": { "environmentId": { "type": "integer", "format": "int64", "description": "ID of an environment" }, "limit": { "type": "integer", "format": "int32", "default": 10, "maximum": 500, "description": "Number of results to return" }, "displayFields": { "type": "array", "items": { "type": "string" }, "default": [ "id" ], "description": "Set of fields to return ('id' is always included)" }, "start": { "type": "integer", "format": "int32", "default": 1, "description": "Result number at which to start output" } }, "required": [ "environmentId" ] }, "query": { "oneOf": [ { "allOf": [ { "allOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "simple" ] }, "queryFields": { "type": "array", "items": { "type": "string" }, "default": [ "id" ], "description": "Fields to return in the response" } }, "required": [ "type" ] }, { "type": "object", "properties": { "operator": { "type": "string", "enum": [ "lt", "le", "eq", "ge", "gt", "ne", "present", "absent" ], "default": "eq", "description": "The kind of match to perform:\n* lt: less-than\n* le: less-than or equal\n* eq: equal\n* ge: greater than or equal\n* gt: greater than\n* ne: not equal\n* present: attribute exists with any value\n* absent: attribute does not exist\n" } }, "required": [ "matchValue" ] } ] }, { "type": "object", "properties": { "matchValue": { "type": "number", "format": "double", "description": "Numeric value to match" } } } ], "title": "simple double" }, { "allOf": [ { "allOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "simple" ] }, "queryFields": { "type": "array", "items": { "type": "string" }, "default": [ "id" ], "description": "Fields to return in the response" } }, "required": [ "type" ] }, { "type": "object", "properties": { "operator": { "type": "string", "enum": [ "lt", "le", "eq", "ge", "gt", "ne", "present", "absent" ], "default": "eq", "description": "The kind of match to perform:\n* lt: less-than\n* le: less-than or equal\n* eq: equal\n* ge: greater than or equal\n* gt: greater than\n* ne: not equal\n* present: attribute exists with any value\n* absent: attribute does not exist\n" } }, "required": [ "matchValue" ] } ] }, { "type": "object", "properties": { "matchValue": { "type": "integer", "format": "int64", "description": "Numeric value to match" } } } ], "title": "simple integer" }, { "allOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "simple" ] }, "queryFields": { "type": "array", "items": { "type": "string" }, "default": [ "id" ], "description": "Fields to return in the response" } }, "required": [ "type" ] }, { "type": "object", "properties": { "operator": { "type": "string", "enum": [ "lt", "le", "eq", "ge", "gt", "ne", "present", "absent", "contains", "notcontains", "startswith", "endswith" ], "default": "eq", "description": "The kind of match to perform:\n* lt: less-than\n* le: less-than or equal\n* eq: equal\n* ge: greater than or equal\n* gt: greater than\n* ne: not equal\n* present: attribute exists with any value\n* absent: attribute does not exist\n* contains: contains matchValue (case-insensitive)\n* notcontains: does not contain matchValue (case-insensitive)\n* startswith: starts with matchValue (case-insensitive)\n* endswith: ends with matchValue (case-insensitive)\n" }, "matchValue": { "type": "string", "description": "String to match" } }, "required": [ "matchValue" ] } ], "title": "simple string" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "compound" ] }, "joinOperator": { "type": "string", "enum": [ "AND", "OR" ], "default": "AND" }, "filters": { "type": "array", "items": { "type": "string" } } }, "required": [ "type", "filters" ], "title": "compound search" } ] } }, "required": [ "meta", "query" ] }, "SearchResultHit": { "type": "object", "properties": { "category": { "type": "array", "items": { "type": "string" }, "description": "Array of category values if requested in query meta displayFields" } }, "additionalProperties": { "description": "Other fields and their values requested from query meta displayFields" } }, "SearchResult": { "type": "object", "properties": { "timeMs": { "type": "integer", "format": "int64", "description": "Milliseconds to process search" }, "hits": { "type": "array", "items": { "type": "object", "properties": { "category": { "type": "array", "items": { "type": "string" }, "description": "Array of category values if requested in query meta displayFields" } }, "additionalProperties": { "description": "Other fields and their values requested from query meta displayFields" } } }, "start": { "type": "integer", "format": "int32", "description": "Index of first result (copied from Meta)" } }, "required": [ "timeMs", "hits", "start" ] }, "PromotionSchedule": { "type": "object", "properties": { "end": { "type": "string", "format": "date-time" }, "start": { "type": "string", "format": "date-time" } }, "required": [ "end", "start" ], "description": "Time duration for which promotion should be applied." }, "PromotionOrder": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "ORIGINAL", "RANDOM" ], "default": "ORIGINAL" } } }, "PromotionConfiguration": { "type": "object", "properties": { "collectionId": { "type": "integer", "format": "int64" } }, "description": "Applicable only when rules are empty and type is not `INTERNAL`. It contains the relevant collection for promotion items." }, "Promotion": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the promotion." }, "type": { "type": "string", "enum": [ "EXTERNAL" ], "description": "Type of promotion. Currently only external promotions can be created, in which promoted items do not originate from any of the criteria specified in the current recommendation activity." }, "key": { "type": "string", "enum": [ "CURRENT", "LAST_PURCHASED", "LAST_VIEWED", "MOST_VIEWED", "PROFILE_ATTRIBUTE" ], "description": "Promotion key. Values:\n\n- `CURRENT`: The currently viewed item.\n- `LAST_VIEWED`: The last viewed item.\n- `LAST_PURCHASED`: The last purchased item.\n- `MOST_VIEWED`: The most viewed item. The recommendations are determined by items that have been most viewed. The\n score is determined by recency/frequency: 10 points for first item view, 5 points for every subsequent view, all\n points are halved after the session ends.\n- `PROFILE_ATTRIBUTE`: Profile attribute.\n" }, "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Applicable when key is `PROFILE_ATTRIBUTE`. This is the profile attribute." }, "schedule": { "type": "object", "properties": { "end": { "type": "string", "format": "date-time" }, "start": { "type": "string", "format": "date-time" } }, "required": [ "end", "start" ], "description": "Time duration for which promotion should be applied." }, "order": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "ORIGINAL", "RANDOM" ], "default": "ORIGINAL" } } }, "configuration": { "type": "object", "properties": { "collectionId": { "type": "integer", "format": "int64" } }, "description": "Applicable only when rules are empty and type is not `INTERNAL`. It contains the relevant collection for promotion items." }, "rules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] } } }, "required": [ "name", "type" ] } }, "parameters": { "id": { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, "limit": { "name": "limit", "in": "query", "description": "Number of resources to request. If not specified, the response will include all available resources.", "required": false, "schema": { "type": "integer", "format": "int32", "description": "Number of resources shown in the response." } }, "offset": { "name": "offset", "in": "query", "description": "Number of resources to skip from start in the server list. If not specified, the response list will start from first available resource.", "required": false, "schema": { "type": "integer", "format": "int32", "description": "Number of resources skipped from start in the server list and omitted in response." } }, "includeScript": { "name": "includeScript", "in": "query", "description": "Whether to include the design content.", "required": false, "schema": { "type": "boolean" } }, "entityId": { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "maxLength": 1000 } }, "environmentId": { "name": "environmentId", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64" } } }, "securitySchemes": { "BearerToken": { "type": "http", "description": "This API requires a bearer token for authentication and an API Key for authorization. To obtain them, you must create an integration in the Adobe I/O Console. Refer *[How to set up Adobe IO Authentication - Step by Step](https://helpx.adobe.com/marketing-cloud-core/kb/adobe-io-authentication-step-by-step.html)* for information on creating the integration and obtaining a bearer token.", "scheme": "bearer", "bearerFormat": "JWT" }, "ApiKey": { "type": "apiKey", "description": "This API requires an API key for authorization and bearer token for authentication. The API Key is obtained when creating an integration in the Adobe I/O Console. Refer *[How to set up Adobe IO Authentication - Step by Step](https://helpx.adobe.com/marketing-cloud-core/kb/adobe-io-authentication-step-by-step.html)* for information on creating the integration.", "in": "header", "name": "X-Api-Key" } }, "examples": { "CollectionsResponse": { "summary": "List of collections in response", "description": "A response body example of a list containing 2 collections.", "value": { "offset": 0, "limit": 2147483647, "total": 2, "list": [ { "id": 1, "name": "Men's Trail Running Shoes" }, { "id": 2, "name": "Climbing Harnesses" } ] } }, "CollectionRequest": { "summary": "Collection in request", "description": "A request body example of a collection object to be created/updated.", "value": { "name": "Backpacking Tents", "rules": [ { "bestUse": { "equals": [ "backpacking" ] } }, { "weight": { "less than": [ "10" ] } }, { "capacity": { "less than": [ "4" ] } } ] } }, "CollectionResponse": { "summary": "Collection in response", "description": "A response body example of a collection object.", "value": { "id": 1, "name": "Backpacking Tents", "rules": [ { "bestUse": { "equals": [ "backpacking" ] } }, { "weight": { "less than": [ "10" ] } }, { "capacity": { "less than": [ "4" ] } } ] } }, "CriteriaListResponse": { "summary": "List of criteria in response", "description": "A response body example of a list containing 3 criteria.", "value": { "offset": 2, "limit": 2147483647, "total": 3, "list": [ { "id": 3, "name": "Recently Viewed Backpacks", "criteriaTitle": "Recently Viewed Backpacks", "criteriaGroup": "RECENT", "minInventory": 1, "configuration": { "rankingRules": [] } }, { "id": 4, "name": "People who viewed this also bought", "criteriaGroup": "ITEM", "type": "VIEWED_BOUGHT", "key": "LAST_PURCHASED", "aggregation": "NONE", "daysCount": "ONE_MONTH", "partialDesignAllowed": false, "backupDisabled": false, "excludePurchases": true, "enableCaching": false, "backupInclusionFilteringEnabled": true, "configuration": { "pastBehaviorOrdinal": 0 } }, { "id": 5, "name": "Most Viewed Shirts", "criteriaGroup": "POPULARITY", "type": "VIEWED", "aggregation": "NONE", "daysCount": "TWO_WEEKS", "minInventory": 1, "partialDesignAllowed": false, "backupDisabled": false, "excludePurchases": true, "enableCaching": false, "backupInclusionFilteringEnabled": true, "configuration": { "inclusionRules": [ { "attribute": "value", "operation": "dynamicallyRanges", "lowRange": "0", "highRange": "30" } ], "pastBehaviorOrdinal": 0 } } ] } }, "CriteriaMinResponse": { "summary": "Criteria in response", "description": "A response body example of a criteria with minimal information.", "value": { "id": 34, "name": "Recently Viewed Biking Accessories", "criteriaTitle": "Recently Viewed Biking Accessories", "criteriaGroup": "RECENT" } }, "CriteriaCartListResponse": { "summary": "List of cart criteria in response", "description": "A response body example of a list containing 3 cart criteria.", "value": { "offset": 2, "limit": 2147483647, "total": 3, "list": [ { "id": 3, "name": "Users who purchased this also purchased that within each session.", "criteriaGroup": "CART", "daysCount": "TWO_WEEKS", "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "modelActionSettings": { "actionOnKeyItems": "PURCHASE", "actionOnRecommendedItems": "PURCHASE", "basisForCoOccurrence": "SESSION" } }, { "id": 4, "name": "Users who viewed this also viewed that across user sessions.", "criteriaGroup": "CART", "daysCount": "TWO_WEEKS", "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "modelActionSettings": { "actionOnKeyItems": "VIEW", "actionOnRecommendedItems": "VIEW", "basisForCoOccurrence": "USER" } }, { "id": 5, "name": "Users who viewed this also bought that across user sessions in the same category.", "criteriaGroup": "CART", "daysCount": "TWO_WEEKS", "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "modelActionSettings": { "actionOnKeyItems": "VIEW", "actionOnRecommendedItems": "PURCHASE", "basisForCoOccurrence": "USER" }, "configuration": { "inclusionRulesKey": "LAST_PURCHASED", "inclusionRules": [ { "attribute": "category", "operation": "contains", "source": { "name": "category", "type": "ENTITY", "excludeAllWhenEmpty": true } } ] } } ] } }, "CriteriaCartRequest": { "summary": "Cart criteria in request", "description": "A request body example of a cart based criteria to be created/updated.", "value": { "name": "Users who viewed this also bought that across user sessions in the same category.", "criteriaGroup": "CART", "daysCount": "TWO_WEEKS", "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "modelActionSettings": { "actionOnKeyItems": "VIEW", "actionOnRecommendedItems": "PURCHASE", "basisForCoOccurrence": "USER" }, "configuration": { "inclusionRulesKey": "LAST_PURCHASED", "inclusionRules": [ { "attribute": "category", "operation": "equals", "source": { "name": "category", "type": "ENTITY", "excludeAllWhenEmpty": true } } ] } } }, "CriteriaCartResponse": { "summary": "Cart criteria in response", "description": "A response body example of a cart based criteria.", "value": { "id": 3, "name": "Users who viewed this also bought that across user sessions in the same category.", "criteriaGroup": "CART", "daysCount": "TWO_WEEKS", "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "modelActionSettings": { "actionOnKeyItems": "VIEW", "actionOnRecommendedItems": "PURCHASE", "basisForCoOccurrence": "USER" }, "configuration": { "inclusionRulesKey": "LAST_PURCHASED", "inclusionRules": [ { "attribute": "category", "operation": "equals", "source": { "name": "category", "type": "ENTITY", "excludeAllWhenEmpty": true } } ] } } }, "CriteriaCategoryListResponse": { "summary": "List of category criteria in response", "description": "A response body example of a list containing 3 category criteria.", "value": { "offset": 2, "limit": 2147483647, "total": 3, "list": [ { "id": 3, "name": "Most Popular Content from Visitor's Favorite Category", "criteriaGroup": "CATEGORY", "type": "VIEWED", "key": "FAVORITE", "aggregation": "NONE", "daysCount": "TWO_WEEKS", "partialDesignAllowed": false, "backupDisabled": false, "excludePurchases": true, "enableCaching": false, "backupInclusionFilteringEnabled": true, "configuration": { "pastBehaviorOrdinal": 0 } }, { "id": 4, "name": "Top Selling Products from this Category", "criteriaGroup": "CATEGORY", "type": "BOUGHT", "key": "CURRENT", "aggregation": "NONE", "daysCount": "ONE_MONTH", "partialDesignAllowed": false, "backupDisabled": false, "excludePurchases": true, "enableCaching": false, "backupInclusionFilteringEnabled": true, "configuration": { "pastBehaviorOrdinal": 0 } }, { "id": 5, "name": "Most Viewed Products from this Category", "criteriaGroup": "CATEGORY", "type": "VIEWED", "key": "CURRENT", "aggregation": "NONE", "daysCount": "TWO_WEEKS", "minInventory": 1, "partialDesignAllowed": false, "backupDisabled": false, "excludePurchases": true, "enableCaching": false, "backupInclusionFilteringEnabled": true, "configuration": { "inclusionRules": [ { "attribute": "brand", "operation": "contains", "source": { "name": "colorDepth", "type": "MBOX" } } ], "pastBehaviorOrdinal": -1 } } ] } }, "CriteriaCategoryRequest": { "summary": "Category criteria in request", "description": "A request body example of a category based criteria to be created/updated.", "value": { "name": "Most Popular Content from Visitor's Favorite Category", "criteriaGroup": "CATEGORY", "type": "VIEWED", "key": "FAVORITE", "aggregation": "NONE", "daysCount": "TWO_WEEKS", "partialDesignAllowed": false, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "configuration": { "pastBehaviorOrdinal": 0 } } }, "CriteriaCategoryResponse": { "summary": "Category criteria in response", "description": "A response body example of a category based criteria.", "value": { "id": 3, "name": "Most Popular Content from Visitor's Favorite Category", "criteriaGroup": "CATEGORY", "type": "VIEWED", "key": "FAVORITE", "aggregation": "NONE", "daysCount": "TWO_WEEKS", "partialDesignAllowed": false, "backupDisabled": false, "excludePurchases": true, "enableCaching": false, "backupInclusionFilteringEnabled": true, "configuration": { "pastBehaviorOrdinal": 0 } } }, "CriteriaCustomListResponse": { "summary": "List of custom criteria in response", "description": "A response body example of a list containing 3 custom criteria.", "value": { "offset": 42, "limit": 45, "total": 3, "list": [ { "id": 43, "name": "Snowboarding recommendations", "criteriaTitle": "Snowboarding recs", "criteriaGroup": "CUSTOM", "key": "CURRENT", "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "configuration": { "feed": { "environmentId": -1, "scheduleType": "daily", "scheduleTime": "00:00", "connection": { "type": "url", "attributes": { "URL": "https://www.adobe-weretail.com/data/32fxss/snow-recs.csv" } }, "uploadHistory": [ { "status": "SUCCESS", "message": "800/50", "date": "2018-08-08T20:17:44.000-04:00" }, { "status": "SUCCESS", "message": "800/50", "date": "2018-08-07T20:26:13.000-04:00" } ] } } }, { "id": 44, "name": "Member Trips", "criteriaTitle": "Adventure Trips", "criteriaGroup": "CUSTOM", "key": "CURRENT_CATEGORY", "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": false, "backupInclusionFilteringEnabled": true, "configuration": { "feed": { "environmentId": -1, "scheduleType": "weekly", "scheduleTime": "00:00", "connection": { "type": "url", "attributes": { "URL": "https://www.adobe-weretail.com/data/38sfon/memtrps-recs.csv" } }, "uploadHistory": [ { "status": "SUCCESS", "message": "800/50", "date": "2018-08-08T12:33:21.000-04:00" }, { "status": "SUCCESS", "message": "800/50", "date": "2018-08-01T12:36:45.000-04:00" }, { "status": "FILE_NOT_FOUND", "message": "File does not exists", "date": "2018-07-23T12:31:22.000-04:00" } ] } } }, { "id": 45, "name": "Classes Events", "criteriaTitle": "Classes & Events", "criteriaGroup": "CUSTOM", "key": "PROFILE_ATTRIBUTE", "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "configuration": { "attribute": "profile.city", "feed": { "environmentId": 2304, "scheduleType": "daily", "scheduleTime": "00:00", "connection": { "type": "ftp", "attributes": { "SERVER": "ftp://ftp.adobe-weretail.com", "DIRECTORY": "/events/e4s", "FILENAME": "classesevents.csv", "USERNAME": "johnmuir", "PASSWORD": "apZMtr+dm2jk5K7INSz5Fg==" } }, "uploadHistory": [ { "status": "SUCCESS", "message": "800/50", "date": "2018-04-21T15:10:44.000-04:00" }, { "status": "UNKNOWN_ERROR", "message": "Connect to 54.22.123.21 timed out", "date": "2018-04-20T15:12:31.000-04:00" } ] } } } ] } }, "CriteriaCustomRequest": { "summary": "Custom criteria in request", "description": "A request body example of a custom criteria to be created/updated.", "value": { "name": "Classes Events", "criteriaTitle": "Classes & Events", "key": "PROFILE_ATTRIBUTE", "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "configuration": { "attribute": "profile.city", "feed": { "environmentId": 2304, "scheduleType": "daily", "scheduleTime": "00:00", "connection": { "type": "ftp", "attributes": { "SERVER": "ftp://ftp.adobe-weretail.com", "DIRECTORY": "/events/e4s", "FILENAME": "classesevents.csv", "USERNAME": "johnmuir", "PASSWORD": "apZMtr+dm2jk5K7INSz5Fg==" } } } } } }, "CriteriaCustomResponse": { "summary": "Custom criteria in response", "description": "A response body example of a custom criteria.", "value": { "id": 45, "name": "Classes Events", "criteriaTitle": "Classes & Events", "criteriaGroup": "CUSTOM", "key": "PROFILE_ATTRIBUTE", "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "configuration": { "attribute": "profile.city", "feed": { "environmentId": 2304, "scheduleType": "daily", "scheduleTime": "00:00", "connection": { "type": "ftp", "attributes": { "SERVER": "ftp://ftp.adobe-weretail.com", "DIRECTORY": "/events/e4s", "FILENAME": "classesevents.csv", "USERNAME": "johnmuir", "PASSWORD": "apZMtr+dm2jk5K7INSz5Fg==" } }, "uploadHistory": [ { "status": "SUCCESS", "message": "800/50", "date": "2018-04-21T15:10:44.000-04:00" }, { "status": "UNKNOWN_ERROR", "message": "Connect to 54.22.123.21 timed out", "date": "2018-04-20T15:12:31.000-04:00" } ] } } } }, "CriteriaItemListResponse": { "summary": "List of item criteria in response", "description": "A response body example of a list containing 3 item based criteria.", "value": { "offset": 0, "limit": 3, "total": 3, "list": [ { "id": 1, "name": "Items after buying road bike", "criteriaGroup": "ITEM", "type": "BOUGHT_CF", "key": "CURRENT", "aggregation": "NONE", "daysCount": "TWO_WEEKS", "minInventory": 1, "partialDesignAllowed": false, "backupDisabled": false, "excludePurchases": false, "enableCaching": false, "backupInclusionFilteringEnabled": true, "configuration": { "inclusionRules": [ { "attribute": "category", "operation": "contains", "source": { "name": "category", "type": "ENTITY", "excludeAllWhenEmpty": true } }, { "attribute": "category", "operation": "contains", "values": [ "bike-road" ] } ], "pastBehaviorOrdinal": -1 } }, { "id": 2, "name": "Similar items", "criteriaGroup": "ITEM", "type": "BOUGHT_CF", "key": "CURRENT", "aggregation": "NONE", "daysCount": "TWO_WEEKS", "minInventory": 1, "partialDesignAllowed": false, "backupDisabled": true, "excludePurchases": false, "enableCaching": true, "backupInclusionFilteringEnabled": true, "configuration": { "inclusionRules": [ { "attribute": "brand", "operation": "contains", "source": { "name": "brand", "defaultValue": "rei-coop", "type": "ENTITY" } } ], "pastBehaviorOrdinal": -1 } }, { "id": 3, "name": "Viewed items by users who last purchased current item", "criteriaGroup": "ITEM", "type": "VIEWED_BOUGHT", "key": "CURRENT", "aggregation": "NONE", "daysCount": "TWO_WEEKS", "minInventory": 1, "partialDesignAllowed": true, "backupDisabled": true, "excludePurchases": false, "enableCaching": false, "backupInclusionFilteringEnabled": false, "configuration": { "pastBehaviorOrdinal": 0 } } ] } }, "CriteriaItemRequest": { "summary": "Item criteria in request", "description": "A request body example of an item based criteria to be created/updated.", "value": { "name": "Items after buying road bike", "criteriaGroup": "ITEM", "type": "BOUGHT_CF", "key": "CURRENT", "aggregation": "NONE", "daysCount": "TWO_WEEKS", "minInventory": 1, "partialDesignAllowed": false, "backupDisabled": false, "excludePurchases": false, "backupInclusionFilteringEnabled": true, "configuration": { "inclusionRules": [ { "attribute": "category", "operation": "contains", "source": { "name": "category", "type": "ENTITY", "excludeAllWhenEmpty": true } }, { "attribute": "category", "operation": "contains", "values": [ "bike-road" ] } ], "pastBehaviorOrdinal": -1 } } }, "CriteriaItemResponse": { "summary": "Item criteria in response", "description": "A response body example of an item based criteria.", "value": { "id": 2, "name": "Similar items", "criteriaGroup": "ITEM", "type": "BOUGHT_CF", "key": "CURRENT", "aggregation": "NONE", "daysCount": "TWO_WEEKS", "minInventory": 1, "partialDesignAllowed": false, "backupDisabled": true, "excludePurchases": false, "enableCaching": true, "backupInclusionFilteringEnabled": true, "configuration": { "inclusionRules": [ { "attribute": "brand", "operation": "contains", "source": { "name": "brand", "defaultValue": "rei-coop", "type": "ENTITY" } } ], "pastBehaviorOrdinal": -1 } } }, "CriteriaPopularityListResponse": { "summary": "List of popularity criteria in response", "description": "A response body example of a list containing 3 popularity based criteria.", "value": { "offset": 0, "limit": 2147483647, "total": 2, "list": [ { "id": 3422, "name": "Garage Top Viewed", "criteriaGroup": "POPULARITY", "type": "VIEWED", "aggregation": "NONE", "daysCount": "TWO_DAYS", "minInventory": 2, "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "configuration": { "datasource": "mboxes" } }, { "id": 9321, "name": "Top sold by region", "criteriaGroup": "POPULARITY", "type": "SELLERS", "aggregation": "ALL_OR_NOTHING", "daysCount": "ONE_MONTH", "configuration": { "datasource": "mboxes", "grouping": { "type": "SEQUENTIAL", "attributes": [ "user.city", "user.county", "user.state" ] } } } ] } }, "CriteriaPopularityRequest": { "summary": "Popularity criteria in request", "description": "A request body example of an popularity based criteria to be created/updated.", "value": { "name": "Garage Top Viewed", "type": "VIEWED", "key": "customProfileAttribute", "aggregation": "NONE", "daysCount": "TWO_DAYS", "minInventory": 2, "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "configuration": { "datasource": "mboxes", "attribute": "user.name", "groupByEntityAttribute": "brand" } } }, "CriteriaPopularityResponse": { "summary": "Popularity criteria in response", "description": "A response body example of a popularity based criteria.", "value": { "id": 9321, "name": "Top sold by region", "criteriaGroup": "POPULARITY", "type": "VIEWED", "key": "customProfileAttribute", "aggregation": "ALL_OR_NOTHING", "daysCount": "ONE_MONTH", "configuration": { "datasource": "mboxes", "attribute": "user.name", "groupByEntityAttribute": "brand", "grouping": { "type": "SEQUENTIAL", "attributes": [ "user.city", "user.county", "user.state" ] } } } }, "CriteriaProfileAttributeListResponse": { "summary": "List of profile attribute criteria in response", "description": "A response body example of a list containing 3 profile attribute based criteria.", "value": { "offset": 0, "limit": 2147483647, "total": 2, "list": [ { "id": 1, "name": "city-bike-recs", "criteriaTitle": "Bike recommendations per city", "criteriaGroup": "PROFILEATTRIBUTE", "type": "VIEWED_CF", "aggregation": "NONE", "daysCount": "ONE_MONTH", "minInventory": 5, "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "configuration": { "attribute": "profile.city", "inclusionRules": [ { "attribute": "city", "operation": "dynamicallyMatches" }, { "attribute": "category", "operation": "contains", "values": [ "bike" ] } ], "datasource": "mboxes" } }, { "id": 2, "name": "gender-recs", "criteriaTitle": "Generic recommendations based on gender", "criteriaGroup": "PROFILEATTRIBUTE", "type": "VIEWED_CF", "aggregation": "ALL_OR_NOTHING", "daysCount": "ONE_MONTH", "configuration": { "attribute": "profile.gender", "datasource": "mboxes" } } ] } }, "CriteriaProfileAttributeRequest": { "summary": "Profile attribute criteria in request", "description": "A request body example of an profile attribute based criteria to be created/updated.", "value": { "name": "city-bike-recs", "criteriaTitle": "Bike recommendations per city", "type": "VIEWED_CF", "aggregation": "NONE", "daysCount": "ONE_MONTH", "minInventory": 5, "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "configuration": { "attribute": "profile.city", "inclusionRules": [ { "attribute": "city", "operation": "dynamicallyMatches" }, { "attribute": "category", "operation": "contains", "values": [ "bike" ] } ], "datasource": "mboxes" } } }, "CriteriaProfileAttributeResponse": { "summary": "Profile attribute criteria in response", "description": "A response body example of a profile attribute based criteria.", "value": { "id": 1, "name": "city-bike-recs", "criteriaTitle": "Bike recommendations per city", "criteriaGroup": "PROFILEATTRIBUTE", "type": "VIEWED_CF", "aggregation": "NONE", "daysCount": "ONE_MONTH", "minInventory": 5, "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "configuration": { "attribute": "profile.city", "inclusionRules": [ { "attribute": "city", "operation": "dynamicallyMatches" }, { "attribute": "category", "operation": "contains", "values": [ "bike" ] } ], "datasource": "mboxes" } } }, "CriteriaRecentListResponse": { "summary": "List of recent criteria in response", "description": "A response body example of a list containing 2 recent view based criteria.", "value": { "offset": 0, "limit": 2147483647, "total": 2, "list": [ { "id": 1, "name": "Recently Viewed Products", "criteriaTitle": "Just Seen Items", "criteriaGroup": "RECENT", "minInventory": 1, "configuration": { "rankingRules": [] } }, { "id": 2, "name": "Recently Viewed in Same Brand", "criteriaGroup": "RECENT", "minInventory": 1, "configuration": { "inclusionRules": [ { "attribute": "brand", "operation": "dynamicallyMatches", "source": { "name": "brand", "type": "ENTITY", "excludeAllWhenEmpty": true } }, { "attribute": "value", "operation": "dynamicallyRanges", "lowRange": "1", "highRange": "99" } ], "rankingRules": [] } } ] } }, "CriteriaRecentRequest": { "summary": "Recent criteria in request", "description": "A request body example of a recent view based criteria to be created/updated.", "value": { "name": "Recently Viewed Products", "criteriaTitle": "Just Seen Items", "excludePurchases": true, "criteriaGroup": "RECENT", "minInventory": 3, "configuration": { "rankingRules": [] } } }, "CriteriaRecentResponse": { "summary": "Recent criteria in response", "description": "A response body example of a recent view based criteria.", "value": { "id": 2, "name": "Recently Viewed in Same Brand", "criteriaGroup": "RECENT", "excludePurchases": true, "minInventory": 1, "configuration": { "inclusionRules": [ { "attribute": "brand", "operation": "dynamicallyMatches", "source": { "name": "brand", "type": "ENTITY", "excludeAllWhenEmpty": true } }, { "attribute": "value", "operation": "dynamicallyRanges", "lowRange": "1", "highRange": "99" } ], "rankingRules": [] } } }, "CriteriaSequenceListResponse": { "summary": "List of sequence criteria in response", "description": "A response body example of a list containing 2 sequence criteria.", "value": { "offset": 0, "limit": 2147483647, "total": 3, "list": [ { "id": 56, "name": "Top Dashboard Items", "criteriaTitle": "Top Dashboard Items", "criteriaGroup": "SEQUENCE", "backupDisabled": true, "sequence": [ { "id": 332, "slotCount": 4 }, { "id": 333 } ] }, { "id": 67, "name": "Freight Recs", "criteriaTitle": "Freight Recommendations", "criteriaGroup": "SEQUENCE", "backupDisabled": true, "sequence": [ { "id": 345 }, { "id": 346 }, { "id": 348 }, { "id": 349 }, { "id": 350 } ] }, { "id": 71, "name": "Events Across", "criteriaTitle": "Garage Events", "criteriaGroup": "SEQUENCE", "backupDisabled": false, "partialDesignAllowed": true, "sequence": [ { "id": 401 }, { "id": 402 }, { "id": 406 } ] } ] } }, "CriteriaSequenceRequest": { "summary": "Sequence criteria in request", "description": "A request body example of a sequence criteria to be created/updated.", "value": { "name": "Top Dashboard Items", "criteriaTitle": "Top Dashboard Items", "backupDisabled": true, "sequence": [ { "id": 332, "slotCount": 4 }, { "id": 333 } ] } }, "CriteriaSequenceResponse": { "summary": "Sequence criteria in response", "description": "A response body example of a sequence criteria.", "value": { "id": 56, "name": "Top Dashboard Items", "criteriaTitle": "Top Dashboard Items", "criteriaGroup": "SEQUENCE", "backupDisabled": true, "sequence": [ { "id": 332, "slotCount": 4 }, { "id": 333 } ] } }, "CriteriaUserHistoryListResponse": { "summary": "List of user history criteria in response", "description": "A response body example of a list containing 3 user history criteria.", "value": { "offset": 2, "limit": 2147483647, "total": 3, "list": [ { "id": 3, "name": "Recommend for you.", "criteriaTitle": "Items Recommended for you.", "criteriaGroup": "USERHISTORY", "daysCount": "TWO_WEEKS", "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "excludeViews": false }, { "id": 4, "name": "Recommend for you with minimum inventory.", "criteriaGroup": "USERHISTORY", "daysCount": "TWO_WEEKS", "minInventory": 5, "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "excludeViews": true }, { "id": 5, "name": "Recommend for you with Inclusion Rules.", "criteriaGroup": "USERHISTORY", "daysCount": "TWO_WEEKS", "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "excludeViews": true, "configuration": { "inclusionRulesKey": "LAST_PURCHASED", "inclusionRules": [ { "attribute": "category", "operation": "contains", "source": { "name": "category", "type": "ENTITY", "excludeAllWhenEmpty": true } } ] } } ] } }, "CriteriaUserHistoryRequest": { "summary": "User history criteria in request", "description": "A request body example of a user history based criteria to be created/updated.", "value": { "name": "Recommend for you.", "criteriaTitle": "Recommend for you with Inclusion Rules", "daysCount": "TWO_WEEKS", "minInventory": 5, "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "excludeViews": true, "configuration": { "datasources": "mboxes", "inclusionRulesKey": "LAST_PURCHASED", "priceRange": { "min": 10, "max": 50 }, "inclusionRules": [ { "attribute": "category", "operation": "equals", "source": { "name": "category", "type": "ENTITY", "excludeAllWhenEmpty": true } } ] } } }, "CriteriaUserHistoryResponse": { "summary": "User history criteria in response", "description": "A response body example of a user history based criteria.", "value": { "id": 3, "name": "Recommend for you.", "criteriaTitle": "Recommend for you with Inclusion Rules", "criteriaGroup": "USERHISTORY", "daysCount": "TWO_WEEKS", "minInventory": 5, "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "excludeViews": false, "configuration": { "priceRange": { "min": 10, "max": 50 }, "datasource": "mboxes", "inclusionRulesKey": "LAST_PURCHASED", "inclusionRules": [ { "attribute": "category", "operation": "equals", "source": { "name": "category", "type": "ENTITY", "excludeAllWhenEmpty": true } } ] } } }, "DesignsResponse": { "summary": "List of designs in response", "description": "A response body example of a list containing 1 design.", "value": { "offset": 0, "limit": 2147483647, "total": 1, "list": [ { "id": 1, "name": "Landing Page", "script": "\\n \\n \\n \\n \\n \\n
\\n \\n \\n
$profile\\n
$token\\n
$url\\n
\\n
\\n \\n \\n
$entity2.name\\n
$entity2.message\\n
$entity2.value\\n
\\n
\\n \\n \\n
$entity3.name\\n
$entity3.message\\n
$entity3.value\\n
\\n
" } ] } }, "DesignRequest": { "summary": "Design in request", "description": "A request body example of a design to be created/updated.", "value": { "name": "Landing Page", "script": "name = $entity1.name
details= $entity1.details \\n \\n \\n \\n \\n \\n
\\n \\n \\n
$profile\\n
$token\\n
$url\\n
\\n
\\n \\n \\n
$entity2.name\\n
$entity2.message\\n
$entity2.value\\n
\\n
\\n \\n \\n
$entity3.name\\n
$entity3.message\\n
$entity3.value\\n
\\n
" } }, "DesignResponse": { "summary": "Design in response", "description": "A response body example of a design object.", "value": { "id": 1, "name": "Landing Page", "script": "\\n \\n \\n \\n \\n \\n
\\n \\n \\n
$profile\\n
$token\\n
$url\\n
\\n
\\n \\n \\n
$entity2.name\\n
$entity2.message\\n
$entity2.value\\n
\\n
\\n \\n \\n
$entity3.name\\n
$entity3.message\\n
$entity3.value\\n
\\n
" } }, "DesignValidationResultResponse": { "summary": "Validation result in response", "description": "A response body example of validation result of the design object provided in request.", "value": { "entityCount": 0, "valid": false, "errors": [ { "key": "error.template.validate.entitiesRequired", "keyArguments": [], "text": "There should be at least one entity reference within the template script" } ] } }, "EntityBatchRequest": { "summary": "Entities in request", "description": "A request body example of an entity to be created/updated.", "value": { "entities": [ { "name": "Rotisserie Chicken", "id": "wes2001", "environment": 4227, "categories": [ "recreation:food" ], "attributes": { "inventory": 77, "margin": 23, "message": "crashing helicopter", "pageUrl": "www.foobar.foo.com/helicopter.html", "thumbnailUrl": "www.foobar.foo.com/helicopter.jpg", "value": 19.2 } } ] } }, "EntityBatchUpdateResult": { "summary": "Entity batch update result in response", "description": "A response body example of entity batch update result showing a successful update.", "value": { "rejected": 0, "inserted/updated": 1 } }, "EntityBatchDeleteResult": { "summary": "Entity batch delete result in response", "description": "A response body example of entity batch delete result indicating all entities were deleted.", "value": { "operation": "Delete by client requested." } }, "EntityResponse": { "summary": "Entity in response", "description": "A response body example of an entity object.", "value": { "name": "Rotisserie Chicken", "id": "item1", "environment": 4227, "categories": [ "recreation:food" ], "attributes": { "createdAt": "2019-07-05T05:48:26.244-04:00", "inventory": 77, "lastUpdatedAt": "2019-07-09T05:48:26.244-04:00", "margin": 23, "message": "crashing helicopter", "pageUrl": "www.foobar.foo.com/helicopter.html", "thumbnailUrl": "www.foobar.foo.com/helicopter.jpg", "value": 19.2 } } }, "SimpleSearchRequest": { "value": { "meta": { "environmentId": 1776, "displayFields": [ "description", "price" ] }, "query": { "type": "simple", "queryFields": [ "id", "name", "description" ], "matchValue": "home", "operator": "contains" } } }, "CompoundSearchRequest": { "value": { "meta": { "environmentId": 1066, "displayFields": [ "brand", "category" ], "start": 16 }, "query": { "type": "compound", "joinOperator": "AND", "filters": [ { "type": "simple", "queryFields": [ "category" ], "matchValue": "shoe", "operator": "contains" }, { "type": "compound", "joinOperator": "OR", "filters": [ { "type": "simple", "queryFields": [ "brand" ], "matchValue": "fancyco", "operator": "eq" }, { "type": "simple", "queryFields": [ "priceRetail" ], "matchValue": 50, "operator": "ge" } ] } ] } } }, "SearchResponse": { "value": { "timeMs": 1701, "hits": [ { "id": 602214076, "category": [ "household goods", "restroom", "paper products" ], "value": 3.14, "name": "bathroom tissue" }, { "id": 186282, "value": 2.718, "name": "hand sanitizer", "inventory": 86400 } ], "start": 1 } }, "PromotionsResponse": { "summary": "List of promotions in response", "description": "A response body example of a list containing 2 promotions.", "value": { "offset": 0, "limit": 2147483647, "total": 2, "list": [ { "id": 1, "name": "Hiking shoes summer promotion", "type": "EXTERNAL", "schedule": { "start": "2018-07-01T00:00:00Z", "end": "2018-08-31T23:59:59Z" }, "order": { "type": "ORIGINAL" }, "configuration": { "collectionId": 3432 }, "rules": [ { "attribute": "category", "operation": "endsWith", "values": [ "Hiking Shoes" ] } ] }, { "id": 2, "name": "Shoes clearance sale", "type": "EXTERNAL", "order": { "type": "ORIGINAL" }, "rules": [ { "attribute": "value", "operation": "lesserOrEquals", "values": [ "200" ] } ] } ] } }, "PromotionRequest": { "summary": "Promotion in request", "description": "A request body example of a promotion object to be created/updated.", "value": { "name": "Hiking shoes summer promotion", "type": "EXTERNAL", "schedule": { "start": "2018-07-01T00:00:00Z", "end": "2018-08-31T23:59:59Z" }, "order": { "type": "ORIGINAL" }, "configuration": { "collectionId": 3432 }, "rules": [ { "attribute": "category", "operation": "endsWith", "values": [ "Hiking Shoes" ] } ] } }, "PromotionResponse": { "summary": "Promotion in response", "description": "A response body example of a Promotion object.", "value": { "id": 1, "name": "Hiking shoes summer promotion", "type": "EXTERNAL", "schedule": { "start": "2018-07-01T00:00:00Z", "end": "2018-08-31T23:59:59Z" }, "order": { "type": "ORIGINAL" }, "configuration": { "collectionId": 3432 }, "rules": [ { "attribute": "category", "operation": "endsWith", "values": [ "Hiking Shoes" ] } ] } } }, "requestBodies": { "Collection": { "description": "Collection to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "allOf": [ { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the collection." } }, "required": [ "name" ] }, { "type": "object", "properties": { "rules": { "type": "array", "items": { "type": "object", "additionalProperties": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } } }, "minItems": 1, "maxItems": 1000, "description": "Array of rules containing attribute : operation pairs.\n\nThe attribute is any valid entity attribute. It is a required field and it should not be more than 100 characters.\n\nThe operation is a pair of operator and operand values. The operator can be one of:\n - Numeric operators: `greaterOrEquals`, `lesserOrEquals`\n - String operators: `startsWith`, `endsWith`, `contains`, `doesNotContain`\n - Alphanumeric operators: `equals`, `notEquals`, `valueIsPresent`, `valueIsNotPresent`\n\nThe other part of operation, operand values, is an array of values. Each value cannot be more than 250 characters.\nThere must be atleast 1 value and no more than 1000 values. Operand values are not required when operator is\neither `valueIsPresent` or `valueIsNotPresent`. Numeric operators accept integer or floating point operand values.\n" } }, "required": [ "rules" ] } ] }, "examples": { "CollectionRequest": { "summary": "Collection in request", "description": "A request body example of a collection object to be created/updated.", "value": { "name": "Backpacking Tents", "rules": [ { "bestUse": { "equals": [ "backpacking" ] } }, { "weight": { "less than": [ "10" ] } }, { "capacity": { "less than": [ "4" ] } } ] } } } } }, "required": true }, "CriteriaCart": { "description": "Cart based criteria to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "criteriaGroup": { "type": "string", "enum": [ "CART" ], "readOnly": true }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "inclusionRulesKey": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "^(profile\\.|user\\.).+" ], "description": "Used for dynamic inclusion rules. Depending on the value either entity attribute matching or profile attribute matching is configured.\n[More info](https://docs.adobe.com/content/help/en/target/using/recommendations/criteria/use-dynamic-and-static-inclusion-rules.html#dynamic-filtering)].\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite. A report suite can not be used when type is `SIMILARITY`.\n" } } }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded in recommendations." }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "modelActionSettings": { "type": "object", "properties": { "actionOnKeyItems": { "type": "string", "enum": [ "PURCHASE", "VIEW" ], "description": "Which visitor behavior event to take into considerations for key items." }, "actionOnRecommendedItems": { "type": "string", "enum": [ "PURCHASE", "VIEW" ], "description": "Which visitor behavior event to take into considerations for recommended items.\n`VIEW` is invalid if actionOnKeyItems is `PURCHASE`.\n" }, "basisForCoOccurrence": { "type": "string", "enum": [ "SESSION", "USER" ], "description": "Coocurrence Basis. Values:\n\n- `SESSION`: each individual session will be consumed separately.\n- `USER`: all user sessions will be aggregated at user level.\n" } } } }, "required": [ "daysCount" ] } ] }, "examples": { "CriteriaCartRequest": { "summary": "Cart criteria in request", "description": "A request body example of a cart based criteria to be created/updated.", "value": { "name": "Users who viewed this also bought that across user sessions in the same category.", "criteriaGroup": "CART", "daysCount": "TWO_WEEKS", "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "modelActionSettings": { "actionOnKeyItems": "VIEW", "actionOnRecommendedItems": "PURCHASE", "basisForCoOccurrence": "USER" }, "configuration": { "inclusionRulesKey": "LAST_PURCHASED", "inclusionRules": [ { "attribute": "category", "operation": "equals", "source": { "name": "category", "type": "ENTITY", "excludeAllWhenEmpty": true } } ] } } } } } }, "required": true }, "CriteriaCategory": { "description": "Category based criteria to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, favorite category in this instance, then continues\n to next favorite of visitor's favorite categories until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, favorite\n category in this instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, next favorite category in visitor's favorite categories is considered sequentially until the\n design is filled.\n\nIf the key is current category, only `NONE` is valid. For key as favorite category, all aggregation options are\navailable.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "pastBehaviorOrdinal": { "type": "integer", "format": "int32" } } } ] }, "criteriaGroup": { "type": "string", "enum": [ "CATEGORY" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `hoursCount`\n" }, "hoursCount": { "type": "integer", "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `daysCount`. Only allowed value `6`\n" }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "enum": [ "CURRENT", "FAVORITE" ], "description": "Recommendation key. Values:\n\n- `CURRENT`: The category of the currently viewed item.\n- `FAVORITE`: The category among visitor's categories with highest score. The recommendations are determined by\n the categories that have been most viewed. The score is determined by recency/frequency: 10 points for first\n category view, 5 points for every subsequent view.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "type": { "type": "string", "enum": [ "BOUGHT", "VIEWED" ], "description": "Recommendation logic. Values:\n\n - `BOUGHT`: Top sold items.\n - `VIEWED`: Most viewed items.\n" } }, "required": [ "key", "type" ] } ] }, "examples": { "CriteriaCategoryRequest": { "summary": "Category criteria in request", "description": "A request body example of a category based criteria to be created/updated.", "value": { "name": "Most Popular Content from Visitor's Favorite Category", "criteriaGroup": "CATEGORY", "type": "VIEWED", "key": "FAVORITE", "aggregation": "NONE", "daysCount": "TWO_WEEKS", "partialDesignAllowed": false, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "configuration": { "pastBehaviorOrdinal": 0 } } } } } }, "required": true }, "CriteriaCustom": { "description": "Custom criteria to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when enough recommendations from CSV feed are not applicable in design." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Applicable only when key is `PROFILE_ATTRIBUTE`. This is the profile attribute." }, "feed": { "type": "object", "properties": { "connection": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "url", "ftp" ], "description": "Protocol supported by the feed: HTTP or FTP" }, "attributes": { "oneOf": [ { "type": "object", "properties": { "URL": { "type": "string" } }, "required": [ "URL" ], "description": "HTTP location of the feed." }, { "type": "object", "properties": { "SERVER": { "type": "string" }, "USERNAME": { "type": "string" }, "PASSWORD": { "type": "string" }, "FILENAME": { "type": "string" }, "DIRECTORY": { "type": "string" } }, "required": [ "SERVER", "USERNAME", "PASSWORD", "FILENAME", "DIRECTORY" ], "description": "FTP connection details of the feed." } ] } }, "required": [ "type", "attributes" ], "description": "Object containing feed connection details." }, "environmentId": { "type": "integer", "format": "int32", "description": "Identifier of a valid environment. Use `-1` for all environments." }, "scheduleTime": { "type": "string", "pattern": "^([0-1][0-9]|2[0-3]):([0-5][0-9])$", "description": "Scheduled time to run the feed. Format is `HH:mm`." }, "scheduleType": { "type": "string", "enum": [ "daily", "weekly", "biWeekly", "never" ], "description": "Feeds can be scheduled to be run at a given frequency." }, "uploadHistory": { "type": "array", "items": { "type": "object", "properties": { "status": { "type": "string", "enum": [ "SUCCESS", "UNKNOWN_ERROR", "PARSING_ERROR", "SERVER_NOT_FOUND", "CREDENTIALS_ERROR", "DIRECTORY_NOT_FOUND", "FILE_NOT_FOUND", "SAINT_REPORT_NOT_FOUND", "CLASSIFICATION_NOT_FOUND", "SCHEDULED", "DOWNLOADING_FEED_FILE", "IMPORTING", "FLUSHING_RESULTS", "FLUSH_FAILED" ] }, "message": { "type": "string" }, "date": { "type": "string", "format": "date-time" } } }, "required": [ "status", "message", "date" ], "readOnly": true, "description": "Feed upload history." } }, "required": [ "connection", "environmentId", "scheduleType" ] } }, "required": [ "feed" ] } ] }, "criteriaGroup": { "type": "string", "enum": [ "CUSTOM" ], "readOnly": true }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "CURRENT_CATEGORY", "FAVORITE_CATEGORY", "PROFILE_ATTRIBUTE" ], "description": "Recommendation key. Values:\n\n- `CURRENT`: The currently viewed item.\n- `LAST_VIEWED`: The last viewed item.\n- `LAST_PURCHASED`: The last purchased item.\n- `MOST_VIEWED`: The most viewed item. The recommendations are determined by items that have been most viewed.\n The score is determined by recency/frequency: 10 points for first item view, 5 points for every subsequent view,\n all points are halved after the session ends.\n- `CURRENT_CATEGORY`: The category of the currently viewed item.\n- `FAVORITE_CATEGORY`: The category among visitor's categories with highest score. The recommendations are\n determined by the categories that have been most viewed. The score is determined by recency/frequency: 10 points\n for first category view, 5 points for every subsequent view.\n- `PROFILE_ATTRIBUTE`: Profile attribute.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." } }, "required": [ "key", "configuration" ] } ] }, "examples": { "CriteriaCustomRequest": { "summary": "Custom criteria in request", "description": "A request body example of a custom criteria to be created/updated.", "value": { "name": "Classes Events", "criteriaTitle": "Classes & Events", "key": "PROFILE_ATTRIBUTE", "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "configuration": { "attribute": "profile.city", "feed": { "environmentId": 2304, "scheduleType": "daily", "scheduleTime": "00:00", "connection": { "type": "ftp", "attributes": { "SERVER": "ftp://ftp.adobe-weretail.com", "DIRECTORY": "/events/e4s", "FILENAME": "classesevents.csv", "USERNAME": "johnmuir", "PASSWORD": "apZMtr+dm2jk5K7INSz5Fg==" } } } } } } } } }, "required": true }, "CriteriaItem": { "description": "Item based criteria to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, last viewed item, for instance, then continues to\n next last viewed item by visitor until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, last purchased\n item, for instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, second to last purchased item by visitor is considered and so forth until the design is\n filled.\n\nIf the key is `CURRENT`, only `NONE` is valid.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "confidence": { "type": "string", "enum": [ "VERY_WEAK", "WEAK", "MODERATE", "STRONG", "VERY_STRONG" ], "description": "Applicable only when type is `SITE_AFFINITY`. This determines how much data (strong or weak affinity) is required before a recommendation is presented." }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite. A report suite can not be used when type is `SIMILARITY`." }, "minSimilarity": { "type": "number", "format": "double", "minimum": 0.1, "maximum": 0.98, "default": 0.4, "description": "Applicable only when type is `SIMILARITY`. This is the threshold of minimum similarity required for two entities to be deemed similar. Lower number implies products will be more similar. But lower the number, criteria execution is exponentially longer." }, "pastBehaviorOrdinal": { "type": "integer", "format": "int32" } } } ] }, "criteriaGroup": { "type": "string", "enum": [ "ITEM" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED" ], "description": "Recommendation key. Values:\n\n- `CURRENT`: The currently viewed item.\n- `LAST_VIEWED`: The last viewed item.\n- `LAST_PURCHASED`: The last purchased item.\n- `MOST_VIEWED`: The most viewed item. The recommendations are determined by items that have been most viewed.\n The score is determined by recency/frequency: 10 points for first item view, 5 points for every subsequent view,\n all points are halved after the session ends.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "type": { "type": "string", "enum": [ "VIEWED_BOUGHT", "BOUGHT_CF", "VIEWED_CF", "SITE_AFFINITY", "SIMILARITY" ], "description": "Recommendation logic. Values:\n\n - `VIEWED_BOUGHT`: People who viewed this, bought that.\n - `BOUGHT_CF`: People who bought this, bought that.\n - `VIEWED_CF`: People who viewed this, viewed that.\n - `SITE_AFFINITY`: Considers items based on the certainty of a relationship between items. Confidence setting is\n used to determine how much data (strong or weak affinity) is required before a recommendation is presented.\n - `SIMILARITY`: Considers items similar to items based on current page activity or past visitor behavior.\n" } }, "required": [ "configuration", "daysCount", "key", "type" ] } ] }, "examples": { "CriteriaItemRequest": { "summary": "Item criteria in request", "description": "A request body example of an item based criteria to be created/updated.", "value": { "name": "Items after buying road bike", "criteriaGroup": "ITEM", "type": "BOUGHT_CF", "key": "CURRENT", "aggregation": "NONE", "daysCount": "TWO_WEEKS", "minInventory": 1, "partialDesignAllowed": false, "backupDisabled": false, "excludePurchases": false, "backupInclusionFilteringEnabled": true, "configuration": { "inclusionRules": [ { "attribute": "category", "operation": "contains", "source": { "name": "category", "type": "ENTITY", "excludeAllWhenEmpty": true } }, { "attribute": "category", "operation": "contains", "values": [ "bike-road" ] } ], "pastBehaviorOrdinal": -1 } } } } } }, "required": true }, "CriteriaPopularity": { "description": "Popularity based criteria to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, top seller in this instance, then continues to next\n top seller until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, most viewed item\n in this instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, next most viewed item is considered sequentially until the design is filled.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid report suite. If type is `METRIC`, this field is required and value must be a valid report suite." }, "grouping": { "type": "object", "properties": { "attributes": { "type": "array", "items": { "type": "string", "maxLength": 250, "pattern": "^(profile\\.|user\\.).+" }, "maxItems": 10, "description": "Array of profile attributes." }, "type": { "type": "string", "enum": [ "HIERARCHICAL", "SEQUENTIAL" ] } }, "description": "Not applicable for type `METRIC`. Grouping allows to narrow recommendations by profile attributes.", "required": [ "attributes", "type" ] }, "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Applicable for type `SELLERS` or `VIEWED`. Required only for top sellers by custom profile attribute/most viewed by custom profile attribute\n(that is, when key is `customProfileAttribute`).\n\nThe custom profile attribute to be used as the basis for providing recommendations. The value should include the prefix `user.` or `profile.`.\n" }, "groupByEntityAttribute": { "type": "string", "description": "Applicable for type `SELLERS` or `VIEWED`. Required only for top sellers by custom profile attribute/most viewed by custom profile attribute\n(that is, when key is `customProfileAttribute`).\n\nThe entity attribute whose value will be matched to the custom profile attribute, in order to provide the list of\ntop sellers/most viewed items among those items with a matching attribute value. The value should **not** include the prefix `entity.`.\n" } } } ] }, "criteriaGroup": { "type": "string", "enum": [ "POPULARITY" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `hoursCount`\n" }, "hoursCount": { "type": "integer", "description": "Time range of historical visitor behavioral data to consider for generating recommendations.\n\nThis field can not be used together with `daysCount`. Only allowed value `6`\n" }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "key": { "type": "string", "description": "Recommendation key. Values:\n - When type is `METRIC`, this is a required field. The value is the name of an Analytics report suite metric.\n - When type is `SELLERS` or `VIEWED`, this field is only used when creating a top sellers by custom profile attribute/most\n viewed by custom profile attribute criteria. When creating this criteria type, the value should be set to\n `customProfileAttribute` and the profile attribute is set in configuration.\n" }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "type": { "type": "string", "enum": [ "SELLERS", "VIEWED", "METRIC" ], "description": "Recommendation logic. Values:\n\n - `SELLERS`: Top sellers.\n - `VIEWED`: Most viewed items.\n - `METRIC`: Considers Analytics product report suite for recommendations.\n" } }, "required": [ "type" ] } ] }, "examples": { "CriteriaPopularityRequest": { "summary": "Popularity criteria in request", "description": "A request body example of an popularity based criteria to be created/updated.", "value": { "name": "Garage Top Viewed", "type": "VIEWED", "key": "customProfileAttribute", "aggregation": "NONE", "daysCount": "TWO_DAYS", "minInventory": 2, "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "configuration": { "datasource": "mboxes", "attribute": "user.name", "groupByEntityAttribute": "brand" } } } } } }, "required": true }, "CriteriaProfileAttribute": { "description": "Profile attribute based criteria to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "aggregation": { "type": "string", "enum": [ "NONE", "AGGREGATE", "ALL_OR_NOTHING" ], "default": "NONE", "description": "Whether recommendations should be shown solely based on the key (`NONE`) or visitor's behavioral history with\nrespect to the key (`AGGREGATE`, `ALL_OR_NOTHING`).\n - `NONE` implies no aggregation, to only show recommendations for the given key.\n - `AGGREGATE` begins with recommendations for the given key, top seller in this instance, then continues to next\n top seller until the design is filled.\n - `ALL_OR_NOTHING` is similar to aggregation but the aggregation only happens if the given key, most viewed item\n in this instance, has enough recommendations to fill the design. If the key does not have enough\n recommendations, next most viewed item is considered sequentially until the design is filled.\n" }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." }, { "type": "object", "properties": { "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Profile attribute." }, "confidence": { "type": "string", "enum": [ "VERY_WEAK", "WEAK", "MODERATE", "STRONG", "VERY_STRONG" ], "description": "Applicable only when type is `SITE_AFFINITY`. This determines how much data (strong or weak affinity) is required before a recommendation is presented." }, "datasource": { "type": "string", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite." } }, "required": [ "attribute", "datasource" ] } ] }, "criteriaGroup": { "type": "string", "enum": [ "PROFILEATTRIBUTE" ], "readOnly": true }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "enableCaching": { "type": "boolean", "default": false, "deprecated": true, "readOnly": true }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "superSlotCount": { "type": "integer", "format": "int32", "readOnly": true }, "type": { "type": "string", "enum": [ "VIEWED_BOUGHT", "BOUGHT_CF", "VIEWED_CF", "SITE_AFFINITY" ], "description": "Recommendation logic. Values:\n\n - `VIEWED_BOUGHT`: People who viewed this, bought that.\n - `BOUGHT_CF`: People who bought this, bought that.\n - `VIEWED_CF`: People who viewed this, viewed that.\n - `SITE_AFFINITY`: Considers items based on the certainty of a relationship between items. Confidence setting is\n used to determine how much data (strong or weak affinity) is required before a recommendation is presented.\n" } }, "required": [ "configuration", "daysCount", "type" ] } ] }, "examples": { "CriteriaPopularityRequest": { "summary": "Profile attribute criteria in request", "description": "A request body example of an profile attribute based criteria to be created/updated.", "value": { "name": "city-bike-recs", "criteriaTitle": "Bike recommendations per city", "type": "VIEWED_CF", "aggregation": "NONE", "daysCount": "ONE_MONTH", "minInventory": 5, "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "configuration": { "attribute": "profile.city", "inclusionRules": [ { "attribute": "city", "operation": "dynamicallyMatches" }, { "attribute": "category", "operation": "contains", "values": [ "bike" ] } ], "datasource": "mboxes" } } } } } } }, "CriteriaRecent": { "description": "Recent view based criteria to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "rankingRules": { "type": "array", "items": { "type": "object", "properties": { "matcher": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "weighting": { "type": "integer", "format": "int32", "minimum": 0, "maximum": 4 } } }, "maxItems": 1000, "description": "Rules for attribute weighting. Attribute weighting can be used to \"nudge\" the algorithm so certain items are more\nlikely to be shown. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" } }, "description": "Object containing inclusion rules, attribute weighting, price filter, and some more configuration options specific to the criteria group." } ] }, "criteriaGroup": { "type": "string", "enum": [ "RECENT" ], "readOnly": true }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." } } } ] }, "examples": { "CriteriaRecentRequest": { "summary": "Recent criteria in request", "description": "A request body example of a recent view based criteria to be created/updated.", "value": { "name": "Recently Viewed Products", "criteriaTitle": "Just Seen Items", "excludePurchases": true, "criteriaGroup": "RECENT", "minInventory": 3, "configuration": { "rankingRules": [] } } } } } } }, "CriteriaSequence": { "description": "Sequence criteria to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "criteriaGroup": { "type": "string", "enum": [ "SEQUENCE" ], "readOnly": true }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "sequence": { "type": "array", "minItems": 1, "maxItems": 5, "items": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "description": "ID of criteria in sequence." }, "slotCount": { "type": "integer", "format": "int64", "maximum": 100, "minimum": 1, "description": "Number of recommendations this criteria will return." } }, "required": [ "id" ] }, "description": "Criteria sequence represented by an array of criteria object IDs." } }, "required": [ "sequence" ] } ] }, "examples": { "CriteriaRecentRequest": { "summary": "Sequence criteria in request", "description": "A request body example of a sequence criteria to be created/updated.", "value": { "name": "Top Dashboard Items", "criteriaTitle": "Top Dashboard Items", "backupDisabled": true, "sequence": [ { "id": 332, "slotCount": 4 }, { "id": 333 } ] } } } } }, "required": true }, "CriteriaUserHistory": { "description": "UserHistory based criteria to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "allOf": [ { "type": "object", "properties": { "criteriaGroup": { "type": "string", "readOnly": true }, "criteriaTitle": { "type": "string", "maxLength": 250, "description": "Displayed in the design using variable `$criteria.title`." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the criteria." } }, "required": [ "name" ] }, { "type": "object", "properties": { "criteriaGroup": { "type": "string", "enum": [ "USERHISTORY" ], "readOnly": true }, "backupDisabled": { "type": "boolean", "default": false, "description": "Whether backup recommendations are disabled when criteria does not generate enough recommendations." }, "backupInclusionFilteringEnabled": { "type": "boolean", "default": true, "description": "Whether inclusion rules on the criteria should be applied to backup recommendations." }, "configuration": { "allOf": [ { "type": "object", "properties": { "inclusionRules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] }, "maxItems": 1000, "description": "Filtering rules to narrow the items to be displayed as recommendations. Inclusion rules are conjunctive and all rules\nmust be met to include an item in a recommendation. [More info](https://marketing.adobe.com/resources/help/en_US/target/recs/t_create_new_algorithm.html).\n" }, "inclusionRulesKey": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "^(profile\\.|user\\.).+" ], "description": "Used for dynamic inclusion rules. Depending on the value either entity attribute matching or profile attribute matching is configured.\n[More info](https://docs.adobe.com/content/help/en/target/using/recommendations/criteria/use-dynamic-and-static-inclusion-rules.html#dynamic-filtering)].\n" }, "priceRange": { "type": "object", "properties": { "max": { "type": "number", "format": "double" }, "min": { "type": "number", "format": "double" } }, "description": "Price rule filter for items to be considered in recommendations." }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite.\n" } } }, { "type": "object", "properties": { "inclusionRulesKey": { "type": "string", "enum": [ "CURRENT", "LAST_VIEWED", "LAST_PURCHASED", "MOST_VIEWED", "^(profile\\.|user\\.).+" ], "description": "Used for dynamic inclusion rules, i.e rules which use delivery time item to apply filtering.\n" }, "datasource": { "type": "string", "default": "mboxes", "description": "Behavioral data source can either be `mboxes` or a valid Analytics report report suite.\n" } } } ] }, "daysCount": { "type": "string", "enum": [ "ONE_DAY", "TWO_DAYS", "ONE_WEEK", "TWO_WEEKS", "ONE_MONTH", "TWO_MONTHS" ], "description": "Time range of historical visitor behavioral data to consider for generating recommendations." }, "excludePurchases": { "type": "boolean", "default": false, "description": "Whether items that were previously purchased by the visitor should be excluded from recommendations." }, "minInventory": { "type": "integer", "format": "int32", "minimum": 0, "description": "Minimum number of pieces needed in stock for an item to be considered for recommendaton." }, "partialDesignAllowed": { "type": "boolean", "default": false, "description": "Whether design be shown when the number of recommendations are less than item slots in the design." }, "excludeViews": { "type": "boolean", "default": false, "description": "Whether items that were previously viewed by the visitor should be excluded from recommendations." } }, "required": [ "daysCount" ] } ] }, "examples": { "CriteriaUserHistoryRequest": { "summary": "User history criteria in request", "description": "A request body example of a user history based criteria to be created/updated.", "value": { "name": "Recommend for you.", "criteriaTitle": "Recommend for you with Inclusion Rules", "daysCount": "TWO_WEEKS", "minInventory": 5, "partialDesignAllowed": true, "backupDisabled": false, "excludePurchases": true, "backupInclusionFilteringEnabled": true, "excludeViews": true, "configuration": { "datasources": "mboxes", "inclusionRulesKey": "LAST_PURCHASED", "priceRange": { "min": 10, "max": 50 }, "inclusionRules": [ { "attribute": "category", "operation": "equals", "source": { "name": "category", "type": "ENTITY", "excludeAllWhenEmpty": true } } ] } } } } } }, "required": true }, "Design": { "description": "Design to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "type": "object", "properties": { "name": { "type": "string", "maxLength": 250, "description": "Unique name of the design." }, "id": { "type": "integer", "format": "int64", "readOnly": true }, "script": { "type": "string", "maxLength": 65000, "description": "Velocity template containing at least one entity object. Velocity Engine 1.7 is supported." } }, "required": [ "name", "script" ] }, "examples": { "DesignRequest": { "summary": "Design in request", "description": "A request body example of a design to be created/updated.", "value": { "name": "Landing Page", "script": "name = $entity1.name
details= $entity1.details \\n \\n \\n \\n \\n \\n
\\n \\n \\n
$profile\\n
$token\\n
$url\\n
\\n
\\n \\n \\n
$entity2.name\\n
$entity2.message\\n
$entity2.value\\n
\\n
\\n \\n \\n
$entity3.name\\n
$entity3.message\\n
$entity3.value\\n
\\n
" } } } } }, "required": true }, "EntityBatch": { "description": "Entities to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "type": "object", "properties": { "entities": { "type": "array", "items": { "type": "object", "properties": { "attributes": { "type": "object", "properties": { "createdAt": { "type": "string", "format": "date" }, "inventory": { "type": "integer", "format": "int64" }, "lastUpdatedAt": { "type": "string", "format": "date" }, "margin": { "type": "number", "format": "double" }, "message": { "type": "string" }, "pageUrl": { "type": "string" }, "thumbnailUrl": { "type": "string" }, "value": { "type": "number", "format": "double" } }, "additionalProperties": { "type": "string" }, "description": "Entity attributes. Besides some pre-defined attributes, about 100 custom attributes can be added. [More info](https://docs.adobe.com/content/help/en/target/using/recommendations/entities/entity-attributes.html)." }, "categories": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "maxItems": 1000, "minItems": 1, "uniqueItems": true, "description": "Set of entity categories for the entity." }, "environment": { "type": "integer", "format": "int64", "description": "ID of an environment." }, "id": { "type": "string", "maxLength": 1000 }, "name": { "type": "string", "maxLength": 250 } }, "required": [ "id", "name", "categories" ] }, "minItems": 1 } }, "required": [ "entities" ], "description": "Batch of entities." }, "examples": { "EntityBatchRequest": { "summary": "Entities in request", "description": "A request body example of an entity to be created/updated.", "value": { "entities": [ { "name": "Rotisserie Chicken", "id": "wes2001", "environment": 4227, "categories": [ "recreation:food" ], "attributes": { "inventory": 77, "margin": 23, "message": "crashing helicopter", "pageUrl": "www.foobar.foo.com/helicopter.html", "thumbnailUrl": "www.foobar.foo.com/helicopter.jpg", "value": 19.2 } } ] } } } } }, "required": true }, "Search": { "description": "Catalog Search", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "type": "object", "properties": { "meta": { "type": "object", "properties": { "environmentId": { "type": "integer", "format": "int64", "description": "ID of an environment" }, "limit": { "type": "integer", "format": "int32", "default": 10, "maximum": 500, "description": "Number of results to return" }, "displayFields": { "type": "array", "items": { "type": "string" }, "default": [ "id" ], "description": "Set of fields to return ('id' is always included)" }, "start": { "type": "integer", "format": "int32", "default": 1, "description": "Result number at which to start output" } }, "required": [ "environmentId" ] }, "query": { "oneOf": [ { "allOf": [ { "allOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "simple" ] }, "queryFields": { "type": "array", "items": { "type": "string" }, "default": [ "id" ], "description": "Fields to return in the response" } }, "required": [ "type" ] }, { "type": "object", "properties": { "operator": { "type": "string", "enum": [ "lt", "le", "eq", "ge", "gt", "ne", "present", "absent" ], "default": "eq", "description": "The kind of match to perform:\n* lt: less-than\n* le: less-than or equal\n* eq: equal\n* ge: greater than or equal\n* gt: greater than\n* ne: not equal\n* present: attribute exists with any value\n* absent: attribute does not exist\n" } }, "required": [ "matchValue" ] } ] }, { "type": "object", "properties": { "matchValue": { "type": "number", "format": "double", "description": "Numeric value to match" } } } ], "title": "simple double" }, { "allOf": [ { "allOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "simple" ] }, "queryFields": { "type": "array", "items": { "type": "string" }, "default": [ "id" ], "description": "Fields to return in the response" } }, "required": [ "type" ] }, { "type": "object", "properties": { "operator": { "type": "string", "enum": [ "lt", "le", "eq", "ge", "gt", "ne", "present", "absent" ], "default": "eq", "description": "The kind of match to perform:\n* lt: less-than\n* le: less-than or equal\n* eq: equal\n* ge: greater than or equal\n* gt: greater than\n* ne: not equal\n* present: attribute exists with any value\n* absent: attribute does not exist\n" } }, "required": [ "matchValue" ] } ] }, { "type": "object", "properties": { "matchValue": { "type": "integer", "format": "int64", "description": "Numeric value to match" } } } ], "title": "simple integer" }, { "allOf": [ { "type": "object", "properties": { "type": { "type": "string", "enum": [ "simple" ] }, "queryFields": { "type": "array", "items": { "type": "string" }, "default": [ "id" ], "description": "Fields to return in the response" } }, "required": [ "type" ] }, { "type": "object", "properties": { "operator": { "type": "string", "enum": [ "lt", "le", "eq", "ge", "gt", "ne", "present", "absent", "contains", "notcontains", "startswith", "endswith" ], "default": "eq", "description": "The kind of match to perform:\n* lt: less-than\n* le: less-than or equal\n* eq: equal\n* ge: greater than or equal\n* gt: greater than\n* ne: not equal\n* present: attribute exists with any value\n* absent: attribute does not exist\n* contains: contains matchValue (case-insensitive)\n* notcontains: does not contain matchValue (case-insensitive)\n* startswith: starts with matchValue (case-insensitive)\n* endswith: ends with matchValue (case-insensitive)\n" }, "matchValue": { "type": "string", "description": "String to match" } }, "required": [ "matchValue" ] } ], "title": "simple string" }, { "type": "object", "properties": { "type": { "type": "string", "enum": [ "compound" ] }, "joinOperator": { "type": "string", "enum": [ "AND", "OR" ], "default": "AND" }, "filters": { "type": "array", "items": { "type": "string" } } }, "required": [ "type", "filters" ], "title": "compound search" } ] } }, "required": [ "meta", "query" ] }, "examples": { "SimpleSearchRequest": { "value": { "meta": { "environmentId": 1776, "displayFields": [ "description", "price" ] }, "query": { "type": "simple", "queryFields": [ "id", "name", "description" ], "matchValue": "home", "operator": "contains" } } }, "CompoundSearchRequest": { "value": { "meta": { "environmentId": 1066, "displayFields": [ "brand", "category" ], "start": 16 }, "query": { "type": "compound", "joinOperator": "AND", "filters": [ { "type": "simple", "queryFields": [ "category" ], "matchValue": "shoe", "operator": "contains" }, { "type": "compound", "joinOperator": "OR", "filters": [ { "type": "simple", "queryFields": [ "brand" ], "matchValue": "fancyco", "operator": "eq" }, { "type": "simple", "queryFields": [ "priceRetail" ], "matchValue": 50, "operator": "ge" } ] } ] } } } } } }, "required": true }, "Promotion": { "description": "Promotion to be created/updated", "content": { "application/vnd.adobe.target.v1+json": { "schema": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "readOnly": true }, "name": { "type": "string", "maxLength": 250, "description": "Unique name of the promotion." }, "type": { "type": "string", "enum": [ "EXTERNAL" ], "description": "Type of promotion. Currently only external promotions can be created, in which promoted items do not originate from any of the criteria specified in the current recommendation activity." }, "key": { "type": "string", "enum": [ "CURRENT", "LAST_PURCHASED", "LAST_VIEWED", "MOST_VIEWED", "PROFILE_ATTRIBUTE" ], "description": "Promotion key. Values:\n\n- `CURRENT`: The currently viewed item.\n- `LAST_VIEWED`: The last viewed item.\n- `LAST_PURCHASED`: The last purchased item.\n- `MOST_VIEWED`: The most viewed item. The recommendations are determined by items that have been most viewed. The\n score is determined by recency/frequency: 10 points for first item view, 5 points for every subsequent view, all\n points are halved after the session ends.\n- `PROFILE_ATTRIBUTE`: Profile attribute.\n" }, "attribute": { "type": "string", "pattern": "^(profile\\.|user\\.).+", "description": "Applicable when key is `PROFILE_ATTRIBUTE`. This is the profile attribute." }, "schedule": { "type": "object", "properties": { "end": { "type": "string", "format": "date-time" }, "start": { "type": "string", "format": "date-time" } }, "required": [ "end", "start" ], "description": "Time duration for which promotion should be applied." }, "order": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "ORIGINAL", "RANDOM" ], "default": "ORIGINAL" } } }, "configuration": { "type": "object", "properties": { "collectionId": { "type": "integer", "format": "int64" } }, "description": "Applicable only when rules are empty and type is not `INTERNAL`. It contains the relevant collection for promotion items." }, "rules": { "type": "array", "items": { "type": "object", "properties": { "attribute": { "type": "string", "maxLength": 100 }, "highRange": { "type": "string" }, "lowRange": { "type": "string" }, "operation": { "type": "string" }, "source": { "type": "object", "properties": { "defaultValue": { "type": "string" }, "excludeAllWhenEmpty": { "type": "boolean" }, "name": { "type": "string" }, "type": { "type": "string" } }, "required": [ "name", "type" ] }, "values": { "type": "array", "items": { "type": "string", "maxLength": 250 }, "minItems": 1, "maxItems": 1000 } }, "required": [ "attribute", "operation" ] } } }, "required": [ "name", "type" ] }, "examples": { "PromotionRequest": { "summary": "Promotion in request", "description": "A request body example of a promotion object to be created/updated.", "value": { "name": "Hiking shoes summer promotion", "type": "EXTERNAL", "schedule": { "start": "2018-07-01T00:00:00Z", "end": "2018-08-31T23:59:59Z" }, "order": { "type": "ORIGINAL" }, "configuration": { "collectionId": 3432 }, "rules": [ { "attribute": "category", "operation": "endsWith", "values": [ "Hiking Shoes" ] } ] } } } } }, "required": true } } }, "x-tagGroups": [ { "name": "Core Resources", "tags": [ "Collections", "Criteria", "Designs", "Entities", "Promotions" ] }, { "name": "Criteria Resources", "tags": [ "Cart Criteria", "Category Criteria", "Custom Criteria", "Item Criteria", "Popularity Criteria", "Profile Attribute Criteria", "Recent Criteria", "Sequence Criteria", "User History Criteria" ] }, { "name": "Catalog Search", "tags": [ "Searching Entities" ] } ] }