{
"openapi": "3.0.0",
"info": {
"version": "1.0.0",
"title": "Adobe Target Delivery API",
"termsOfService": "https://www.adobe.com/legal/terms.html"
},
"servers": [
{
"url": "https://{clientCode}.tt.omtrdc.net/"
}
],
"paths": {
"/rest/v1/delivery": {
"post": {
"summary": "Retrieve Target offers",
"operationId": "execute",
"tags": [
"Delivery API"
],
"parameters": [
{
"name": "client",
"in": "query",
"required": true,
"description": "The customer client code",
"schema": {
"type": "string"
}
},
{
"name": "sessionId",
"in": "query",
"required": true,
"description": "This is the `sessionId` that should be generated and maintained by the API user for the current session the user is a part of. The `sessionId` can be any printable string except a space, ?, or /. It should be between 1 and 128 characters in length.
For a particular session, its value must stay the same across multiple requests for the same user since routing to a particular node in the edge cluster, which contains the user profile, is done using the `sessionId`. The session is active for 30 minutes on the server side. Therefore, you shouldn’t use a different `sessionId` for a particular `tntId` or `thirdPartyId` within 30 minutes of the last request made with the same `tntId` or `thirdPartyId`. Otherwise, changes to the profile could be inconsistent and unpredictable.
Furthermore, using the same `sessionId` with different `tntId` or `thirdPartyId` may cause unpredictable changes to the profiles.",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "Delivery Request",
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"context"
],
"properties": {
"requestId": {
"type": "string",
"maxLength": 128,
"description": "The request ID that will be returned in the response. In case it is not provided, an UUID is generated and\nreturned automatically.\n"
},
"impressionId": {
"description": "If not present it will be automatically generated (UUID). If present, second and subsequent requests with the\nsame id will not increment impressions to activities/metrics. Similar to page id.\n",
"type": "string",
"maxLength": 128
},
"id": {
"type": "object",
"description": "Object that contains the identifiers for the visitor.\nIf no id is provided in the first request, Target will generate a VisitorId with a tntId. The code that runs on the\nclient side is then responsible for passing this tntId value on all subsequent calls.\n\nValidation\n * Either tntId, thirdPartyId or maketingCloudVisistorId required.\n",
"properties": {
"tntId": {
"type": "string",
"maxLength": 128,
"description": "Tnt id - an unique identifier (UUID).\nIf no visitor id is provided the TNT id will be generated by the TNT server.\nThe TNT id retunred by the server may also contain the profile location hint,\nwith the same format as for other endpoints (standard/ajax/json/..).\nExample 32440324234-2343423.23_41, in this example the 23_41 is the profile location hint.\nTnt id retuned in the response (containting the profile location hint) should be used in the subsequent requests\n\nValidation\n * Should not contain a '.' (dot) unless the dot delimits the location hint.\n"
},
"thirdPartyId": {
"type": "string",
"maxLength": 128,
"description": "Third party id\n"
},
"marketingCloudVisitorId": {
"type": "string",
"maxLength": 128,
"description": "Marketing cloud visitor id\n"
},
"customerIds": {
"type": "array",
"maxItems": 50,
"description": "Along with the marketing cloud visitor id, you can associate additional customer ids\n\nValidation\n * No null elements.\n",
"items": {
"required": [
"id",
"integrationCode",
"authenticatedState"
],
"type": "object",
"properties": {
"id": {
"type": "string",
"maxLength": 128
},
"integrationCode": {
"type": "string",
"maxLength": 50,
"description": "This is the **alias** used when setting up a CRS datasource in the Marketing Cloud UI."
},
"authenticatedState": {
"type": "string",
"enum": [
"unknown",
"authenticated",
"logged_out"
]
}
}
}
}
}
},
"environmentId": {
"description": "Valid client environment id. If not specified host will be determined base on the provided host.",
"type": "integer",
"format": "int64"
},
"property": {
"type": "object",
"required": [
"token"
],
"description": "Specifies the at_property via the token field. It can be used to control the scope for the delivery.\n",
"properties": {
"token": {
"description": "The at_property token\n\nValidation\n* Required if the property is specified.\n",
"type": "string"
}
}
},
"trace": {
"type": "object",
"required": [
"authorizationToken"
],
"description": "Enables the trace for delivery API.\nAt present it is not be possible to set the metrics and packages for the trace.\n",
"properties": {
"authorizationToken": {
"type": "string"
},
"usage": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "A String dictionary of client SDK usage tracking and internal diagnostics metadata.\n"
}
}
},
"context": {
"type": "object",
"required": [
"channel"
],
"description": "Specifies the context for the request, IE if it a web request then is should include user agent etc.",
"properties": {
"channel": {
"type": "string",
"description": "Specifies the channel for the request. Only activities with the matching channel will be evaluated.\n",
"enum": [
"mobile",
"web"
]
},
"mobilePlatform": {
"type": "object",
"required": [
"deviceType",
"platformType"
],
"description": "Mobile Platform should be specified when the channel is Mobile",
"properties": {
"deviceName": {
"description": "Optional field, added to help with device detection using device atlas.\nThis is equivalent of a.DeviceName field passed in from Mobile SDK\n",
"type": "string"
},
"deviceType": {
"type": "string",
"description": "Field is mandatory when Mobile Platform is specified.\nOnly activities that match the specified deviceType or have the device type set to 'null' will be\nevaluated. Ex if device type is 'phone' in the delivery request, then only activities that have the device type\nequal to 'phone' or set to 'null' will be evaluated.\nAn activity with 'null' device type will be evaluated for requests for both, 'phone' and 'tablet'.\n",
"enum": [
"phone",
"tablet"
]
},
"platformType": {
"type": "string",
"description": "Only activities with the specified mobile platform type will be evaluated.",
"enum": [
"android",
"ios"
]
},
"version": {
"type": "string",
"maxLength": 128,
"description": "If not specified - all activities with any platformVersion will be evaluated.\nIf specified - only activities with the same platformVersion will be evaluated.\n"
}
}
},
"application": {
"type": "object",
"description": "Application identifiers. If specified, should match the with the one from the activity.",
"properties": {
"id": {
"type": "string",
"maxLength": 250,
"description": "Application ID.\nIf not specified - all activities with any applicationId will be evaluated.\nIf specified - only activities with the matching applicationId will be evaluated.\n"
},
"name": {
"type": "string",
"maxLength": 250,
"description": "Application name.\nIf not specified - all activities with any applicationName will be evaluated.\nIf specified - only activities with specified applicationName will be evaluated.\n"
},
"version": {
"type": "string",
"maxLength": 128,
"description": "Application version\nIf not specified - all activities with any applicationVersion will not be evaluated.\nIf specified - only activities with specific applicationVersion will be evaluated.\n"
}
}
},
"screen": {
"type": "object",
"description": "The properties that dictate a screen",
"properties": {
"width": {
"type": "number",
"format": "double",
"description": "width"
},
"height": {
"type": "number",
"format": "double",
"description": "height"
},
"colorDepth": {
"type": "number",
"format": "double",
"description": "color depth"
},
"pixelRatio": {
"type": "number",
"format": "double",
"description": "Optional, Used for device detection using the device atlas"
},
"orientation": {
"type": "string",
"description": "If not specified, all activities with any screen orientation will be evaluated.\nIf specified, only the activities with the matching screen orientation will evaluated.\n",
"enum": [
"portrait",
"landscape"
]
}
}
},
"window": {
"type": "object",
"description": "The dimensions that dictate a window",
"properties": {
"width": {
"type": "number",
"format": "double",
"description": "width"
},
"height": {
"type": "number",
"format": "double",
"description": "height"
}
}
},
"browser": {
"type": "object",
"description": "Browser object may be specified only when the Channel is Web.",
"properties": {
"host": {
"type": "string",
"description": "Current web page host."
},
"webGLRenderer": {
"type": "string",
"description": "This is an optional field, added to help with device detection using device atlas.\n"
}
}
},
"address": {
"type": "object",
"description": "The address object. It indicates the current URL and the referring URL.",
"properties": {
"url": {
"type": "string",
"maxLength": 4096,
"description": "URL"
},
"referringUrl": {
"type": "string",
"maxLength": 4096,
"description": "referral URL"
}
}
},
"geo": {
"type": "object",
"description": "Geo data. If not specified, and Geo is enabled for the client, it will be resolved via user's IP.\n",
"properties": {
"latitude": {
"type": "number",
"format": "float",
"description": "latitude"
},
"longitude": {
"type": "number",
"format": "float",
"description": "longitude"
}
}
},
"timeOffsetInMinutes": {
"type": "number",
"description": "Specifies minutes from UTC for specific client",
"format": "double"
},
"userAgent": {
"description": "User-Agent should be sent only via this property. HTTP header User-Agent is ignored.",
"type": "string"
},
"beacon": {
"type": "boolean",
"default": false,
"description": "In case beacon = true is provided in the request, the server will return a 204 No Content response with no response body.\n"
}
}
},
"experienceCloud": {
"type": "object",
"description": "Integrations with Audience Manager and Analytics",
"properties": {
"audienceManager": {
"type": "object",
"description": "Audience Manager Integration (AAM).",
"properties": {
"locationHint": {
"type": "integer",
"minimum": 1,
"description": "DCS location hint.\nUsed to determine which AAM DCS Endpoint to hit in order to retrieve the profile.\n"
},
"blob": {
"type": "string",
"minLength": 1,
"maxLength": 1024,
"description": "AAM Blob. Used to send additional data to AAM.\nValidation\n * Cannot be blank.\n"
}
}
},
"analytics": {
"type": "object",
"description": "Integration with Adobe Analytics (A4T)",
"properties": {
"supplementalDataId": {
"type": "string",
"description": "Supplemental data id, used for **server side** integrations.\nFormat <16 hexadecimal digits>-<16 hexadecimal digits>\n",
"maxLength": 33,
"minLength": 33
},
"logging": {
"type": "string",
"description": "Indicates whether integraion will be done via client side (from the client) or server side (edge servers)\n",
"enum": [
"server_side",
"client_side"
]
},
"trackingServer": {
"type": "string",
"description": "tracking server"
},
"trackingServerSecure": {
"type": "string",
"description": "secure tracking server"
}
}
}
}
},
"execute": {
"type": "object",
"description": "The execute part of the request that will be evaluated on the server side immediately.\nImpressions will be incremented for the matching activities.\n",
"properties": {
"pageLoad": {
"type": "object",
"description": "Object common for prefetch, execute and notifications in order to specify the request details.",
"properties": {
"address": {
"$ref": "#/paths/~1rest~1v1~1delivery/post/requestBody/content/application~1json/schema/properties/context/properties/address"
},
"parameters": {
"type": "object",
"maxProperties": 50,
"description": "Parameters map.\nSame object is reused for mbox or profile parameters with slight validation differences.\nFollowing names are not allowed for mbox parameters: 'orderId', 'orderTotal', productPurchasedIds'\nValidation (for both mbox and profile parameters):\n * Max 50 parameters limit.\n * Parameter name should not be blank.\n * Parameter name max length 128.\n * Parameter name should not start with 'profile.'\n * Parameter value length max 5000.\n",
"additionalProperties": {
"type": "string",
"description": "Name of the property"
}
},
"profileParameters": {
"$ref": "#/paths/~1rest~1v1~1delivery/post/requestBody/content/application~1json/schema/properties/execute/properties/pageLoad/properties/parameters"
},
"order": {
"type": "object",
"description": "Object that describes the order details.",
"properties": {
"id": {
"type": "string",
"maxLength": 250,
"description": "Order Id."
},
"total": {
"type": "number",
"minimum": 0,
"description": "Order Total. The amount of money in the current order.\n"
},
"purchasedProductIds": {
"type": "array",
"description": "Order's product ids.\nValidation\n * No blank values allowed.\n * Each product Id max length 50.\n * Product ids, separated by commas and concatenated, total length should not exceed 250.\n",
"items": {
"type": "string"
}
},
"time": {
"type": "date-time",
"description": "Time in the [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Time_intervals) format\n"
},
"experienceLocalId": {
"type": "integer",
"minimum": 0,
"maximum": 2147483647,
"description": "Id used to track the experience across POST/PUT requests"
},
"duplicate": {
"type": "boolean",
"description": "Whether or not the order is a duplicate"
},
"outlier": {
"type": "boolean",
"description": "Whether or not the order is abnormally different from the rest in volume"
}
}
},
"product": {
"type": "object",
"description": "The properties of the products",
"properties": {
"id": {
"type": "string",
"maxLength": 128,
"description": "Product id. Should not be blank."
},
"categoryId": {
"type": "string",
"maxLength": 128,
"description": "Category id. Should not be blank."
}
}
}
}
},
"mboxes": {
"type": "array",
"description": "An array of mboxes",
"items": {
"required": [
"index",
"mbox"
],
"description": "Regional mbox request.",
"allOf": [
{
"$ref": "#/paths/~1rest~1v1~1delivery/post/requestBody/content/application~1json/schema/properties/execute/properties/pageLoad"
},
{
"type": "object",
"properties": {
"index": {
"type": "integer",
"format": "int32",
"description": "An index for the mboxes to be executed or prefetched.\nMbox index is used for correlation between the mbox request with the mbox response, for either prefetch or\nexecute responses. Index should be unique in the mbox list.\n"
},
"name": {
"type": "string",
"description": "The name of the regional mbox to be evaluated.\n"
}
}
}
]
}
}
}
},
"prefetch": {
"type": "object",
"description": "Use this object to prefetch the content for `views` and/or `pageLoad` and/or `mboxes`.\n * `views` - the request to prefetch selectors grouped per view.\n * `pageLoad` - the request to prefetch selectors not assigned to any view.\n * `mboxes` - the request to prefetch mbox content.\n",
"properties": {
"views": {
"type": "array",
"description": "An array of views\n",
"items": {
"description": "View request",
"allOf": [
{
"$ref": "#/paths/~1rest~1v1~1delivery/post/requestBody/content/application~1json/schema/properties/execute/properties/pageLoad"
},
{
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 128,
"description": "View Name - Unique view name. If the activity has a metric with a view with this name it will be matched,\nproviding the Key matches as well or is null and view and metric targeting is matched.\n"
},
"key": {
"type": "string",
"maxLength": 512,
"description": "View Key - An optional encoded String identifier used in advanced scenarios, such as View fingerprinting.\nSame matching conditions as for View Name.\n"
}
}
}
]
}
},
"pageLoad": {
"$ref": "#/paths/~1rest~1v1~1delivery/post/requestBody/content/application~1json/schema/properties/execute/properties/pageLoad"
},
"mboxes": {
"type": "array",
"description": "Prefetch the content for the regional mbox.",
"items": {
"$ref": "#/paths/~1rest~1v1~1delivery/post/requestBody/content/application~1json/schema/properties/execute/properties/mboxes/items"
}
}
}
},
"notifications": {
"type": "array",
"description": "Notifications for the displayed content, clicked selectors, and/or visited views or mboxes.",
"items": {
"description": "Notification object is used to sent notificaitons regarding what prefetched content was displayed\n(for views, pageLoad or regional mboxes), which views, pages and mboxes were visited (triggered),\nand which elements were clicked.\nNotification request detail will be validated and in case there are validation errors with any token or timestamp\nthe entire request will be invalidated, so there are no cases of inconsistent data, caused by a partially\nprocessed notification.\nthat may happen with a partially processed notification. This is different from the approach in the batch mbox v2 API.\nMboxes and views are mutually exclusive.\n",
"required": [
"id",
"type",
"timestamp"
],
"allOf": [
{
"$ref": "#/paths/~1rest~1v1~1delivery/post/requestBody/content/application~1json/schema/properties/execute/properties/pageLoad"
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"maxLength": 200,
"description": "Notification id will be returned in response and will indicate that the notification was processed\nsuccessfully.\n"
},
"impressionId": {
"type": "string",
"maxLength": 128,
"description": "Impression id is used to stitch (link) the current notification with a previous notification or\nexecute request. In case they both of them match, the second and other subsequent requests will not generate a\nnew impression to the activity, experience etc.\n"
},
"type": {
"type": "string",
"description": "Notification type. Currently only click and display are supported.",
"enum": [
"click",
"display"
]
},
"timestamp": {
"type": "integer",
"format": "int64",
"description": "Timestamp of the notification, in milliseconds elapsed since UNIX epoch."
},
"tokens": {
"type": "array",
"description": "A list of tokens for displayed content or clicked selectors, based on the type of notification.",
"items": {
"type": "string"
}
},
"mbox": {
"description": "Notification for a regional mbox",
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 250,
"description": "Mbox name.\nValidation\n * No blank values allowed.\n * A '-clicked' suffix or the following names are not allowed for mbox names: ** display mboxes **, ** any mbox **, ** click from display mbox **\n * Allowed chars: - '-, ./=`:;&!@#$%^&*()+|?~[]{}'\n"
},
"state": {
"type": "string",
"description": "Mbox state token"
}
}
},
"view": {
"type": "object",
"description": "Notification for the displayed view.",
"properties": {
"name": {
"type": "string",
"maxLength": 128,
"description": "View Name - Unique view name. If the activity has a metric with a view with this name it will be matched,\nproviding the Key matches as well or is null and view and metric targeting is matched.\n"
},
"key": {
"type": "string",
"maxLength": 512,
"description": "View Key - An optional encoded String identifier used in advanced scenarios, such as View fingerprinting.\nSame matching conditions as for View Name.\n"
},
"state": {
"type": "string",
"description": "View state token."
}
}
},
"pageLoad": {
"type": "object",
"description": "Include this object to send display notifications for the prefetch page load contnet.",
"properties": {
"state": {
"type": "string",
"description": "Page Load state token"
}
}
}
}
}
]
}
},
"qaMode": {
"type": "object",
"description": "Use this object to enable the QA mode in the request.\nUse the QA mode to test the look and feel of your site or application for various activities in isolation or together,\nwith the possibilty to match or not match specified audiences, select a specific experience, count the\nimpressions/visits for the reporting or not.\n",
"properties": {
"token": {
"type": "string",
"description": "The encrypted token for the QA mode. It contains the list of the activity ids that are allowed to\nbe executed in QA mode.\nValidation\n * After decryption, the client code from the token should match the one from the request.\n * After decryption, activities with the ids specified in the token should belong to the client.\n"
},
"listedActivitiesOnly": {
"type": "boolean",
"description": "Specifies whether qa_mode campaigns should be executed in isolation or if they should be evaluated along other\nactive campaigns for current environment.\n"
},
"evaluateAsTrueAudienceIds": {
"type": "array",
"description": "List of audience ids that should be always evaluated as TRUE in the scope of the delivery request\n",
"items": {
"type": "integer",
"format": "int64"
}
},
"evaluateAsFalseAudienceIds": {
"type": "array",
"description": "List of audience ids that should be always evaluated as FALSE in the scope of the delivery request\n",
"items": {
"type": "integer",
"format": "int64"
}
},
"previewIndexes": {
"type": "array",
"description": "List of preview indexes. If present, the list cannot be empty.\n",
"items": {
"type": "object",
"properties": {
"activityIndex": {
"type": "integer",
"minimum": 1,
"description": "Index references the activity in the activity list (from the encrypted token).\nValidation\n * If the activity list index is out of boundaries of the activities list in the token or if it is null it will be ignored.\n * Activity list index starts with 1.\n * Should be at least one activity index, and should reference an activity specified in the token.\n"
},
"experienceIndex": {
"type": "integer",
"minimum": 1,
"description": "When specified, the experience with this index in the activity definition will be selected.\nValidation\n * Can be null (unspecified)\n * If index is not specified or out of bounds, the experience will be selected via activity experience selector strategy.\n * Experience index starts with 1.\n"
}
}
}
}
}
}
}
},
"examples": {
"1_1_PrefetchViewsForWebChannel": {
"summary": "Prefetch Mboxes for SPA and Web Applications\n",
"value": {
"id": {
"tntId": "abcdefghijkl00023.1_1"
},
"context": {
"channel": "web",
"address": {
"url": "http://demo.dev.tt-demo.com/demo/store/index.html"
},
"screen": {
"width": 1200,
"height": 1400
}
},
"prefetch": {
"mboxes": {
"name": "SummerOffer",
"index": 1
}
}
}
}
}
}
}
},
"responses": {
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"description": "Delivery response. Returned content will be based upon the request and client's active activities.",
"properties": {
"status": {
"type": "integer"
},
"requestId": {
"type": "string",
"description": "ID of the processed request.\nIf it's not sent in the request, a random ID (UUID) is generated and returned with the response.\n"
},
"id": {
"$ref": "#/paths/~1rest~1v1~1delivery/post/requestBody/content/application~1json/schema/properties/id"
},
"client": {
"type": "string",
"description": "Client's code. The one which was sent in the request's path."
},
"edgeHost": {
"description": "Cluster host name that served the response. Ideally, all subsequent requests should be made to that host.",
"type": "string"
},
"execute": {
"type": "object",
"description": "The object that contains responses from execute `pageLoad` and/or execute regional `mboxes` request.",
"properties": {
"pageLoad": {
"type": "object",
"description": "Page load response. Contains the result of prefetching or executing a request that will retrieve content for\nall selectors not associated with a particular view.\n",
"properties": {
"options": {
"type": "array",
"description": "List of options that should be applied.\nNote: options that have been set on selectors assigned to views will not be included here.\n",
"items": {
"type": "object",
"description": "The content from the activitiesc is returned via the option objects.",
"properties": {
"type": {
"type": "string",
"enum": [
"html",
"json",
"redirect",
"dynamic",
"actions"
]
},
"content": {
"description": "Content that should be applied/displayed/replaced etc, based on the option type. Content can be one of:\n * html\n * redirect link\n * link for a dynamic offer\n * raw json\n * one or more actions (json - from offers with templates and visual offers)\nActions format is specific for delivery API.\n",
"oneOf": [
{
"type": "string"
},
{
"type": "object"
},
{
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"selector": {
"type": "string"
},
"cssSelector": {
"type": "string"
},
"content": {
"oneOf": [
{
"type": "string"
},
{
"type": "object"
}
]
}
}
}
}
]
},
"eventToken": {
"description": "Will be present only in response of a prefetch request. After the content is displayed the event token should be\nsent via notifications to the edge server so that visit/visitor/impression events could be logged.\n",
"type": "string"
},
"responseTokens": {
"type": "object",
"description": "List of the response tokens and their values for the given option.\nResponse tokens can be defined via the /v1/responsetokens API.\nThe values for the tokens are computed for every option returned by a activity and represented as a dictionary:\n * Key - the response token name.\n * Value - the response token value. The value is usually a string, but it can be a list of string in case of\n 'category affinity' response token.\n",
"additionalProperties": {
"type": "object",
"properties": {
"responseTokenName": {
"type": "string"
},
"responseTokenValue": {
"type": "object"
}
}
}
}
}
}
},
"metrics": {
"type": "array",
"description": "Click track metrics. Note that click metrics for selectors set with views will not be included here.\nIn case the same activity is serving content for selectors both assinged to a view and selectors without any\nviews, and having click track metrics that are not assotiated with any view within the activity, then:\n * in case of a prefetch only request, these metrics (tokens) will be set in the Prefetch response's metrics.\n * in case of an execute only request, the metrics will be set in the page load response's metrics.\n * in case of a request, with both, execute and prefetch, metrics will be set in the page load response's\n metrics only.\n",
"items": {
"$ref": "#/paths/~1rest~1v1~1delivery/post/responses/200/content/application~1json/schema/properties/prefetch/properties/metrics/items"
}
},
"analytics": {
"type": "object",
"description": "Contains the analytics payload metadata",
"properties": {
"payload": {
"type": "object",
"description": "Analytics payload for client side integration that should be sent to Analytics after content has been applied.\n",
"properties": {
"pe": {
"type": "string",
"description": "Indicates to Adobe Analytics that the payload is an Adobe Target type"
},
"tnta": {
"type": "string",
"description": "Contains Target metadata that describes the activity and experience"
}
}
}
}
},
"state": {
"type": "string",
"description": "View state token that must be sent back with display notification for the view.\nMay only be present for prefetch requests.\n"
},
"trace": {
"type": "object",
"description": "The object containing all trace data for the request, only present if the trace token was provided in the request.\n",
"additionalProperties": {
"type": "object",
"properties": {
"traceKey": {
"type": "string"
},
"traceValue": {
"type": "object"
}
}
}
}
}
},
"mboxes": {
"type": "array",
"description": "The list of responses for requested regional mboxes.",
"items": {
"type": "object",
"description": "Mbox response object.\n",
"properties": {
"index": {
"type": "integer",
"format": "int32",
"description": "Indicates that the response is for mbox with the same index, as was specified in the prefetch or execute request.\n"
},
"name": {
"type": "string",
"description": "The name of the mbox. Since the same mbox name can be specified multiple times in the request it\nshould be used in conjunction with the index.\n"
},
"options": {
"type": "array",
"description": "The option that was matched for the current mbox. Cannot be an offer with templates or a visual offer.\n",
"items": {
"$ref": "#/paths/~1rest~1v1~1delivery/post/responses/200/content/application~1json/schema/properties/execute/properties/pageLoad/properties/options/items"
}
},
"metrics": {
"type": "array",
"description": "Click metrics.",
"items": {
"$ref": "#/paths/~1rest~1v1~1delivery/post/responses/200/content/application~1json/schema/properties/prefetch/properties/metrics/items"
}
},
"analytics": {
"$ref": "#/paths/~1rest~1v1~1delivery/post/responses/200/content/application~1json/schema/properties/execute/properties/pageLoad/properties/analytics"
},
"trace": {
"$ref": "#/paths/~1rest~1v1~1delivery/post/responses/200/content/application~1json/schema/properties/execute/properties/pageLoad/properties/trace"
}
}
}
}
}
},
"prefetch": {
"type": "object",
"description": "The object that will return the prefetched content based on the request, active activites etc\n",
"properties": {
"views": {
"type": "array",
"description": "Contains all the views matching the request.\n",
"items": {
"type": "object",
"description": "This object will contain all the options for the selectors set for the current view, from the active activities,\nin case the context and targeting conditions from the request have been matched.\n",
"properties": {
"name": {
"type": "string",
"maxLength": 128,
"description": "View Name - Unique view name. If the activity has a metric with a view with this name it will be matched,\nproviding the Key matches as well or is null and view and metric targeting is matched.\n"
},
"key": {
"type": "string",
"maxLength": 512,
"description": "View Key - An optional encoded String identifier used in advanced scenarios, such as View fingerprinting.\nSame matching conditions as for View Name.\n"
},
"options": {
"type": "array",
"description": "The prefetched content (options) to be displayed for the current view.\n",
"items": {
"$ref": "#/paths/~1rest~1v1~1delivery/post/responses/200/content/application~1json/schema/properties/execute/properties/pageLoad/properties/options/items"
}
},
"metrics": {
"type": "array",
"description": "Click track metrics for the current view.\n",
"items": {
"$ref": "#/paths/~1rest~1v1~1delivery/post/responses/200/content/application~1json/schema/properties/prefetch/properties/metrics/items"
}
},
"analytics": {
"$ref": "#/paths/~1rest~1v1~1delivery/post/responses/200/content/application~1json/schema/properties/execute/properties/pageLoad/properties/analytics"
},
"state": {
"type": "string",
"description": "View state token that must be sent back with display notification for the view."
},
"trace": {
"$ref": "#/paths/~1rest~1v1~1delivery/post/responses/200/content/application~1json/schema/properties/execute/properties/pageLoad/properties/trace"
}
}
}
},
"pageLoad": {
"$ref": "#/paths/~1rest~1v1~1delivery/post/responses/200/content/application~1json/schema/properties/execute/properties/pageLoad"
},
"mboxes": {
"type": "array",
"description": "Prefetched mboxes, including content and notification tokens to be sent back when the mboxes are displayed.\n",
"items": {
"allOf": [
{
"$ref": "#/paths/~1rest~1v1~1delivery/post/responses/200/content/application~1json/schema/properties/execute/properties/mboxes/items"
},
{
"type": "object",
"properties": {
"state": {
"type": "string",
"description": "Mbox state token that must be sent back with display notification for the mbox."
}
}
}
]
}
},
"metrics": {
"type": "array",
"description": "The click track metrics that are not assigned to a view but are present in activites that have views, except\nin case the same activity is serving content for selectors both assinged to a view and selectors without any\nviews, and having click track metrics that are not assotiated with any view within the activity, then:\n * in case of a prefetch only request, these metrics (tokens) will be set in the prefetch response's metrics.\n * in case of an execute only request, the metrics will be set in the page load response's metrics.\n * in case of a request, with both, execute and prefetch, metrics will be set in the page load response's\n metrics only.\n",
"items": {
"type": "object",
"properties": {
"type": {
"$ref": "#/paths/~1rest~1v1~1delivery/post/requestBody/content/application~1json/schema/properties/notifications/items/allOf/1/properties/type"
},
"selector": {
"type": "string",
"description": "The selector"
},
"eventToken": {
"description": "The event token that should be sent with the notifications in case the click occurred.",
"type": "string"
}
}
}
}
}
}
}
},
"examples": {
"1_1_ResponseForPrefetchViewsForWebChannel": {
"summary": "Prefetch Views for SPA and Web Applications\n",
"value": {
"status": 200,
"requestId": "5efee0d8-3779-4b12-a74e-e04848faf191",
"client": "demo",
"id": {
"tntId": "abcdefghijkl00023.1_1"
},
"edgeHost": "mboxedge28.tt.omtrdc.net",
"prefetch": {
"mboxes": [
{
"index": 1,
"name": "SummerOffer",
"options": {
"content": "
Enjoy this 15% discount on your next purchase
", "type": "html", "eventToken": "GcvBXDhdJFNR9E9r1tgjfmqipf" } } ] } } } } } } }, "default": { "description": "Error", "content": { "application/json": { "schema": { "type": "object", "required": [ "status", "message" ], "properties": { "status": { "type": "integer", "format": "int32", "description": "HTTP response codes:\n* `400` - Validation error (ex. invalid token)\n* `500` - An internal server error during processing\n" }, "message": { "type": "string", "description": "error message" } } }, "examples": { "1_1_ErrorMessage": { "status": 400, "message": "Invalid property token" } } } } } } } } } }