diff --git a/extensions/adobe/experience/decisioning/activity.schema.json b/extensions/adobe/experience/decisioning/activity.schema.json new file mode 100644 index 0000000000..214d14b202 --- /dev/null +++ b/extensions/adobe/experience/decisioning/activity.schema.json @@ -0,0 +1,65 @@ +{ + "meta:license": [ + "Copyright 2017 Adobe Systems Incorporated. All rights reserved.", + "This work is licensed under a Creative Commons Attribution 4.0 International (CC BY 4.0) license", + "you may not use this file except in compliance with the License. You may obtain a copy", + "of the License at https://creativecommons.org/licenses/by/4.0/" + ], + "$id": "https://ns.adobe.com/experience/decisioning/activity", + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "Decision Option", + "type": "object", + "auditable": true, + "meta:extensible": true, + "meta:abstract": true, + "meta:extends": [ + "https://ns.adobe.com/xdm/data/record", + "https://ns.adobe.com/xdm/common/auditable" + ], + "description": + "Entity to to control the decisioning process. It specifies the filter applied to the total inventory of options in order to narrow them down by topic/category. The activity also specifies a fallback option should the combined constraints disqualify all narrowed-down options. A decision activity ican be thought of as a type of http://schema.org/Action .", + "definitions": { + "option": { + "properties": { + "xdm:name": { + "type": "string", + "title": "Name", + "description": "Activity name. The name is displayed in various user interfaces. Property has the semantic of schema.org's 'name' property defined on http://schema.org/Thing" + }, + "xdm:startTime": { + "type": "string", + "format": "date-time", + "title": "Start Date and Time", + "description": "Activity Start Date and Time. Property has the semantic of schema.org's 'startTime' property defined on http://schema.org/Action" + }, + "xdm:endTime": { + "type": "string", + "format": "date-time", + "title": "End Date and Time", + "description": "Activity End Date and Time. Property has the semantic of schema.org's 'endTime' property defined on http://schema.org/Action" + }, + "xdm:fallback": { + "type": "string", + "format": "uri-reference", + "title": "Fallback Option", + "description": "The reference to a fallback option that is used when decisioning in the context of this activity does not qualify any of the regular options (this typically happens when hard constraints are applied). The value is the URI (@id) of the fallback option that is referenced. See schema https://ns.adobe.com/experience/decisioning/unconstrained-option", + } + } + } + }, + "allOf": [ + { + "$ref": "https://ns.adobe.com/xdm/common/extensible#/definitions/@context" + }, + { + "$ref": "https://ns.adobe.com/xdm/common/auditable" + }, + { + "$ref": "https://ns.adobe.com/xdm/data/record" + }, + { + "$ref": "#/definitions/option" + } + ], + "meta:status": "experimental" +} \ No newline at end of file diff --git a/extensions/adobe/experience/decisioning/decisionevent.schema.json b/extensions/adobe/experience/decisioning/decisionevent.schema.json index 21d1c22c85..567a10904d 100644 --- a/extensions/adobe/experience/decisioning/decisionevent.schema.json +++ b/extensions/adobe/experience/decisioning/decisionevent.schema.json @@ -9,8 +9,8 @@ "$schema": "http://json-schema.org/draft-06/schema#", "title": "DecisionEvent", "type": "object", - "description": "A DecisionEvent is used to capture observations about the outcome and context of a decision activity. The DecisionEvent captures information about how the decision made, when it was occurring, what options were proposed (chosen) and what contextual state existed that either influenced the decision or could be observed during the decision process. The decision event also captures the proposition ID, a globally unique identifier that can be used to correlate the decision to other events. DecisionEvents are not only relatable to Experience Events that impacted a decision but also to ExperienceEvents that are a direct response to a proposition. It is the expectation that applications reference the proposition ID in every experience event that was influended by the propositions. A user profile's proposition-response history is maintained with these proposition IDs.", - "meta:abstract": false, + "description": "A decision event is used to capture observations about the outcome and context of a decision activity. The decision event captures information about how the decision made, when it was occurring, what options were proposed (chosen) and what contextual state existed that either influenced the decision or could be observed during the decision process. The decision event also captures the proposition ID, a globally unique identifier that can be used to correlate the decision to other events. DecisionEvents are not only relatable to Experience Events that impacted a decision but also to ExperienceEvents that are a direct response to a proposition. It is the expectation that applications reference the proposition ID in every experience event that was influended by the propositions. A user profile's proposition-response history is maintained with these proposition IDs.", + "meta:abstract": true, "meta:extensible": true, "meta:extends": [ "https://ns.adobe.com/xdm/data/time-series", @@ -22,20 +22,20 @@ "definitions": { "decisionevent": { "properties": { - "https://ns.adobe.com/adobecloudplatform/ims/organizationId": { - "title": "IMS Org ID", + "https://ns.adobe.com/adobecloudplatform/ims/organizationID": { + "title": "IMS Organization Identity", "type": "string", - "description": "An ID associated with the orgnaization that maintains the library of business objects and rules for this decision." + "description": "An Identity associated with the orgnaization that maintains the library of business objects and rules for this decision." }, - "https://ns.adobe.com/experience/decisioning/containerId": { - "title": "Container ID", + "https://ns.adobe.com/experience/decisioning/containerID": { + "title": "Container Identity", "type": "string", - "description": "An ID associated with the library of business objects and rules for this decision." + "description": "An Identity associated with the library of business objects and rules for this decision." }, - "https://ns.adobe.com/experience/decisioning/batchId": { - "title": "Batch ID", + "https://ns.adobe.com/experience/decisioning/batchID": { + "title": "Batch Identity", "type": "string", - "description": "An ID associated with the decision event, if the request was made in batch mode. This propoerty will be absent if the decision leading to this event was made individually for a single profile identity." + "description": "An Identity associated with the decision event, if the request was made in batch mode. This propoerty will be absent if the decision leading to this event was made individually for a single profile identity." } } } @@ -47,28 +47,18 @@ { "$ref": "https://ns.adobe.com/xdm/data/time-series" }, - { - "$ref": "#/definitions/decisionevent" - }, { "$ref": "https://ns.adobe.com/experience/decisioning/proposition" }, { - "$ref": "https://ns.adobe.com/xdm/context/identitymap" - }, - { - "$ref": "https://ns.adobe.com/experience/campaign-experienceevent" + "$ref": "#/definitions/decisionevent" }, { "required": [ "@id", "xdm:timestamp", - "xdm:identityMap", - "https://ns.adobe.com/experience/decisioning/propositionId" + "https://ns.adobe.com/experience/decisioning/propositionID" ] - }, - { - "properties": { "@id": { "readonly": true } } } ], "meta:status": "experimental" diff --git a/extensions/adobe/experience/decisioning/eventmetrics.schema.json b/extensions/adobe/experience/decisioning/eventmetrics.schema.json deleted file mode 100644 index d609e206f2..0000000000 --- a/extensions/adobe/experience/decisioning/eventmetrics.schema.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "meta:license": [ - "Copyright 2019 Adobe Systems Incorporated. All rights reserved.", - "This work is licensed under a Creative Commons Attribution 4.0 International (CC BY 4.0) license", - "you may not use this file except in compliance with the License. You may obtain a copy", - "of the License at https://creativecommons.org/licenses/by/4.0/" - ], - "$id": "https://ns.adobe.com/experience/decisioning/eventmetrics", - "$schema": "http://json-schema.org/draft-06/schema#", - "title": "Decision reporting event metrics", - "type": "object", - "description": "For decisions events and user reactions, we capture certain metrics along with the dimensions. This schema hold the metrics associated with a decisioning activity", - "definitions": { - "decisioingeventmetrics-datatype": { - "properties": { - "https://ns.adobe.com/experience/offer-management/offer-propositions": { - "title": "Total number of time a particular offer was proposed", - "$ref": "https://ns.adobe.com/xdm/data/measure", - "description": "Total number of time a particular offer was proposed" - } - } - } - }, - "allOf": [ - { - "$ref": "#/definitions/decisioingeventmetrics-datatype" - } - ], - "meta:status": "experimental" -} diff --git a/extensions/adobe/experience/decisioning/option-propositions-profile.schema.json b/extensions/adobe/experience/decisioning/option-propositions-profile.schema.json new file mode 100644 index 0000000000..1f7b21a372 --- /dev/null +++ b/extensions/adobe/experience/decisioning/option-propositions-profile.schema.json @@ -0,0 +1,52 @@ +{ + "meta:license": [ + "Copyright 2018 Adobe Systems Incorporated. All rights reserved.", + "This work is licensed under a Creative Commons Attribution 4.0 International (CC BY 4.0) license", + "you may not use this file except in compliance with the License. You may obtain a copy", + "of the License at https://creativecommons.org/licenses/by/4.0/" + ], + "$id": "https://ns.adobe.com/experience/decisioning/option-propositions-profile", + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "Option propositions to profile", + "type": "object", + "meta:extensible": true, + "meta:extends": ["https://ns.adobe.com/xdm/data/metricdefinition"], + "description": + "The number a particular option was proposed so far to a particular profile.", + "definitions": { + "metricdefinition": { + "properties": { + "@id": { + "type": "string", + "const": + "https://ns.adobe.com/experience/decisioning/optionPropositionsProfile", + "description": "The unique identifier of this metric." + }, + "schema:name": { + "type": "string", + "const": "option metric: per profile propositions", + "description": + "The human-readable name of the metric. The name can be used in user interfaces and does not have to be unique." + }, + "xdm:measurement": { + "type": "string", + "description": "How to take measures of this metric.", + "const": "count" + }, + "xdm:unit": { + "const": null + } + } + } + }, + "allOf": [ + { + "$ref": "#/definitions/metricdefinition" + }, + { + "$ref": "https://ns.adobe.com/xdm/data/metricdefinition" + } + ], + "required": ["@id", "schema:name", "xdm:measurement", "xdm:unit"], + "meta:status": "experimental" +} diff --git a/extensions/adobe/experience/decisioning/option-propositions-total.schema.json b/extensions/adobe/experience/decisioning/option-propositions-total.schema.json new file mode 100644 index 0000000000..dd0c6dcc8c --- /dev/null +++ b/extensions/adobe/experience/decisioning/option-propositions-total.schema.json @@ -0,0 +1,52 @@ +{ + "meta:license": [ + "Copyright 2018 Adobe Systems Incorporated. All rights reserved.", + "This work is licensed under a Creative Commons Attribution 4.0 International (CC BY 4.0) license", + "you may not use this file except in compliance with the License. You may obtain a copy", + "of the License at https://creativecommons.org/licenses/by/4.0/" + ], + "$id": "https://ns.adobe.com/experience/decisioning/option-propositions-total", + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "Option propositions total", + "type": "object", + "meta:extensible": true, + "meta:extends": ["https://ns.adobe.com/xdm/data/metricdefinition"], + "description": + "The total number a particular option was proposed so far across all profiles.", + "definitions": { + "metricdefinition": { + "properties": { + "@id": { + "type": "string", + "const": + "https://ns.adobe.com/experience/decisioning/optionPropositionsTotal", + "description": "The unique identifier of this metric." + }, + "schema:name": { + "type": "string", + "const": "option metric: total propositions", + "description": + "The human-readable name of the metric. The name can be used in user interfaces and does not have to be unique." + }, + "xdm:measurement": { + "type": "string", + "description": "How to take measures of this metric.", + "const": "count" + }, + "xdm:unit": { + "const": null + } + } + } + }, + "allOf": [ + { + "$ref": "#/definitions/metricdefinition" + }, + { + "$ref": "https://ns.adobe.com/xdm/data/metricdefinition" + } + ], + "required": ["@id", "schema:name", "xdm:measurement", "xdm:unit"], + "meta:status": "experimental" +} diff --git a/extensions/adobe/experience/decisioning/option.schema.json b/extensions/adobe/experience/decisioning/option.schema.json new file mode 100644 index 0000000000..6feefdff09 --- /dev/null +++ b/extensions/adobe/experience/decisioning/option.schema.json @@ -0,0 +1,47 @@ +{ + "meta:license": [ + "Copyright 2017 Adobe Systems Incorporated. All rights reserved.", + "This work is licensed under a Creative Commons Attribution 4.0 International (CC BY 4.0) license", + "you may not use this file except in compliance with the License. You may obtain a copy", + "of the License at https://creativecommons.org/licenses/by/4.0/" + ], + "$id": "https://ns.adobe.com/experience/decisioning/option", + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "Decision Option", + "type": "object", + "auditable": true, + "meta:extensible": true, + "meta:abstract": true, + "meta:extends": [ + "https://ns.adobe.com/xdm/data/record", + "https://ns.adobe.com/xdm/common/auditable" + ], + "description": + "Entity to represent one of the possible selections or choices of a decision. Options have record semantics when composed into a schema. When referenced in propositions, options are enriched with the observed metrics that applied to them, i.e. they are measurable.", + "definitions": { + "option": { + "properties": { + "xdm:name": { + "type": "string", + "title": "Name", + "description": "Option name. The name is displayed in various user interfaces. Property has the semantic of schema.org's 'name' property defined on http://schema.org/Thing" + } + } + } + }, + "allOf": [ + { + "$ref": "https://ns.adobe.com/xdm/common/extensible#/definitions/@context" + }, + { + "$ref": "https://ns.adobe.com/xdm/common/auditable" + }, + { + "$ref": "https://ns.adobe.com/xdm/data/record" + }, + { + "$ref": "#/definitions/option" + } + ], + "meta:status": "experimental" +} \ No newline at end of file diff --git a/extensions/adobe/experience/decisioning/proposition-detail.example.1.json b/extensions/adobe/experience/decisioning/proposition-detail.example.1.json index dc2efd342b..a410c030ce 100644 --- a/extensions/adobe/experience/decisioning/proposition-detail.example.1.json +++ b/extensions/adobe/experience/decisioning/proposition-detail.example.1.json @@ -1,24 +1,23 @@ { "xdm:activity": { "@id": "xcore:offer-activity:ebc48132c26ccfc", + "xdm:name": "Tutorial videos to watch", + "xdm:startDate": "2018-10-13T05:59:18.914Z", + "xdm:endDate": "2018-12-27T05:59:18.914Z", "xdm:fallback": "xcore:fallback-offer:e91ce7243fd8c2a", - "xdm:name": "Kiosk", "xdm:placement": "xcore:offer-placement:e91a84cc83ad12f", - "xdm:filter": "xcore:offer-filter:e9201a6650bb7e3", - "xdm:startDate": "2018-10-13T05:59:18.914Z", - "xdm:endDate": "2018-12-27T05:59:18.914Z" + "xdm:filter": "xcore:offer-filter:e9201a6650bb7e3" }, "xdm:selections": [ { "@id": "xcore:personalized-offer:e91ee850a0bb7d9", + "xdm:name": "Introduction to machine learning", "https://ns.adobe.com/experience/decisioning/profileConstraint": { "xdm:eligibilityRule": "xcore:eligibility-rule:ec0ef7ceacb2ecd" + }, + "https://ns.adobe.com/experience/decisioning/optionPropositionsTotal": { + "xdm:value": 948 } } - ], - "xdm:metrics": { - "https://ns.adobe.com/experience/offer-management/offer-propositions": { - "xdm:value": 948 - } - } + ] } diff --git a/extensions/adobe/experience/decisioning/proposition-detail.schema.json b/extensions/adobe/experience/decisioning/proposition-detail.schema.json index b0ca8f878f..3ab68f3372 100644 --- a/extensions/adobe/experience/decisioning/proposition-detail.schema.json +++ b/extensions/adobe/experience/decisioning/proposition-detail.schema.json @@ -11,34 +11,29 @@ "type": "object", "meta:abstract": true, "meta:extensible": true, - "description": "The Decision Proposition XDM is used to capture the outcome of a decisioning process", + "description": "A decision proposition is used to capture the output of a decisioning activity. Propositions are enriched with the observed metrics that applied to the selected options at the time the decision was made.", "definitions": { "proposition-detail-datatype": { "properties": { "xdm:activity": { "title": "Decision Activity", - "description": "Snapshot of the activity for which the proposition was made. The object contains at least the @id property value which is the URI of the decision activity. See schema https://ns.adobe.com/experience/decisioning/activity", - "$ref": "https://ns.adobe.com/xdm/data/record" + "description": "Snapshot of the activity for which the proposition was made. The object contains at least the @id property value which is the URI of the decision activity. See schema https://ns.adobe.com/experience/decisioning/activity .", + "$ref": "https://ns.adobe.com/experience/decisioning/activity" }, "xdm:selections": { "title": "Selected Options", - "description": "Snapshots of the options that were selected for this activity. Those options are ususally constrained. The objects contain a at least the @id property value which is the URI of an option. See schema https://ns.adobe.com/experience/decisioning/option", + "description": "Snapshots of the options that were selected for this activity. Those options are ususally constrained. The objects contain a at least the @id property value which is the URI of an option. See schema https://ns.adobe.com/experience/decisioning/option .", "type": "array", "items": { - "$ref": "https://ns.adobe.com/xdm/data/record" + "$ref": "https://ns.adobe.com/experience/decisioning/option" }, "minItems": 1, "uniqueItems": true }, "xdm:fallback": { "title": "Fallback Option", - "description": "Snapshot of the fixed fallback option that was selected because no available option satisfied all constaints. The object contains at least the @id property value which is the URI of the fallback action. See schema https://ns.adobe.com/experience/decisioning/fallback-option", - "$ref": "https://ns.adobe.com/xdm/data/record" - }, - "xdm:metrics": { - "title": "Metrics", - "description": "Additional measurements observed while the decision was made and which provided context to the decision process.", - "$ref": "https://ns.adobe.com/experience/decisioning/eventmetrics" + "description": "Snapshot of the fixed fallback option that was selected because no available option satisfied all constaints. The object contains at least the @id property value which is the URI of the fallback action. See schema https://ns.adobe.com/experience/decisioning/fallback-option .", + "$ref": "https://ns.adobe.com/experience/decisioning/option" } } } diff --git a/extensions/adobe/experience/decisioning/proposition.schema.json b/extensions/adobe/experience/decisioning/proposition.schema.json index 4637b33f7b..9e6075f716 100644 --- a/extensions/adobe/experience/decisioning/proposition.schema.json +++ b/extensions/adobe/experience/decisioning/proposition.schema.json @@ -11,26 +11,27 @@ "type": "object", "meta:abstract": true, "meta:extensible": true, - "description": "The Decision Proposition XDM is used to capture the outcome of a decisioning process", + "meta:intendedToExtend": [ + "https://ns.adobe.com/xdm/context/experienceevent", + "https://ns.adobe.com/experience/decisioning/decisionevent" + ], + "description": "A decision proposition is used to capture the outcome of a decisioning process.", "definitions": { "proposition-mixin": { - "meta:intendedToExtend": [ - "https://ns.adobe.com/xdm/context/experienceevent", - "https://ns.adobe.com/experience/decisioning/decisionevent" - ], "properties": { - "https://ns.adobe.com/experience/decisioning/propositionId": { - "title": "Decision Proposition ID", + "https://ns.adobe.com/experience/decisioning/propositionID": { + "title": "Decision Proposition Identity", "type": "string", - "description": "An ID associated with an individual decision response. A single decision can produce an array of propositions, one for each activity involved. It is the expectation that applications reference this ID in every experience event that was influended by the propositions. A user profile's proposition-response history is maintained with these identifiers." + "format": "uri-reference", + "description": "An Identity associated with an individual decision response. A single decision can produce an array of propositions, one for each activity involved. It is the expectation that applications reference this ID in every experience event that was influended by the propositions. A user profile's proposition-response history is maintained with these identifiers." }, "https://ns.adobe.com/experience/decisioning/propositionDetails": { - "title": "Propopostion Array providing the outcomes of a single decision event, one outcome per given activity", + "title": "Outputs and contexts of a single decision event.", "type": "array", "items": { "$ref": "https://ns.adobe.com/experience/decisioning/proposition-detail" }, - "description": "Details about the individual context variables and outcomes for the decision." + "description": "Details about the results of the decision. An array providing the output of a single decision event, one proposition per activity parameter in the request." } } } diff --git a/schemas/context/direct-marketing.schema.json b/schemas/context/direct-marketing.schema.json index 9a4655b2bd..0d77fd83e2 100644 --- a/schemas/context/direct-marketing.schema.json +++ b/schemas/context/direct-marketing.schema.json @@ -24,11 +24,6 @@ "description": "Click(s) actions on a message." }, - "xdm:offerClicks": { - "$ref": "https://ns.adobe.com/xdm/data/measure", - "description": - "Click on an offer in a message." - }, "xdm:mirrorPages": { "$ref": "https://ns.adobe.com/xdm/data/measure", "description": @@ -60,7 +55,12 @@ "xdm:notSent": { "$ref": "https://ns.adobe.com/xdm/data/measure", "description": "Asynchronous message (email, SMS, MMS etc) was not dispatched due to cancellation or expiration of the marketing activity." - } + }, + "xdm:offerOpens": { + "$ref": "https://ns.adobe.com/xdm/data/measure", + "description": + "Offer in a marketing message (email, SMS, Push Notifications etc) has been opened/swyped/touched/interacted with by the recipient." + }, } } },