diff --git a/extensions/adobe/experience/campaign-experienceevent.example.1.json b/extensions/adobe/experience/campaign-experienceevent.example.1.json index 656bd793fc..a4d748bc1e 100644 --- a/extensions/adobe/experience/campaign-experienceevent.example.1.json +++ b/extensions/adobe/experience/campaign-experienceevent.example.1.json @@ -24,7 +24,9 @@ "xdm:value": 1 } }, - "xdm:channel": "https://ns.adobe.com/xdm/channels/email", + "xdm:channel": { + "@id": "https://ns.adobe.com/xdm/channels/email" + }, "https://ns.adobe.com/experience/campaign/message": { "xdm:id": 10000, "xdm:profile": { diff --git a/extensions/adobe/experience/campaign-experienceevent.schema.json b/extensions/adobe/experience/campaign-experienceevent.schema.json index b9c8134d51..9312071d8e 100644 --- a/extensions/adobe/experience/campaign-experienceevent.schema.json +++ b/extensions/adobe/experience/campaign-experienceevent.schema.json @@ -12,7 +12,10 @@ "description": "Campaign ExperienceEvent Mixin for use with Schemas for Solution data ingestion. Includes the core/standard ExperienceEvent as well as the required Adobe Campaign ExperienceEvent Mixins.", "meta:extensible": true, "meta:abstract": true, - "meta:intendedToExtend": ["https://ns.adobe.com/xdm/context/experienceevent"], + "meta:intendedToExtend": [ + "https://ns.adobe.com/xdm/context/experienceevent", + "https://ns.adobe.com/experience/decisioning/decisionevent" + ], "meta:extends": [ "https://ns.adobe.com/xdm/context/experienceevent-advertising", "https://ns.adobe.com/xdm/context/experienceevent-application", @@ -28,6 +31,7 @@ "https://ns.adobe.com/xdm/context/experienceevent-technical-details", "https://ns.adobe.com/xdm/context/experienceevent-web", "https://ns.adobe.com/experience/campaign/experienceevent-all", + "https://ns.adobe.com/experience/decisioning/proposition", "https://ns.adobe.com/experience/target/experienceevent-shared", "https://ns.adobe.com/experience/profile/experienceevent-shared", "https://ns.adobe.com/experience/implementations-ext", @@ -84,6 +88,9 @@ { "$ref": "https://ns.adobe.com/experience/campaign/experienceevent-all" }, + { + "$ref": "https://ns.adobe.com/experience/decisioning/proposition" + }, { "$ref": "https://ns.adobe.com/experience/target/experienceevent-shared" }, diff --git a/extensions/adobe/experience/campaign/experienceevent-all.schema.json b/extensions/adobe/experience/campaign/experienceevent-all.schema.json index 73dad72e40..09ecd45c60 100755 --- a/extensions/adobe/experience/campaign/experienceevent-all.schema.json +++ b/extensions/adobe/experience/campaign/experienceevent-all.schema.json @@ -12,9 +12,6 @@ "meta:extensible": true, "meta:abstract": true, "meta:intendedToExtend": ["https://ns.adobe.com/xdm/context/experienceevent"], - "meta:extends": [ - "https://ns.adobe.com/experience/decisioning/proposition#/definitions/propositions-mixin" - ], "description": "Adobe Campaign ExperienceEvent Full Extension. Contains all Solution added fields.", "definitions": { "campaign-experienceevent-all": { @@ -281,7 +278,7 @@ "https://ns.adobe.com/experience/campaign/offerClicked": { "title": "Offer Clicked", "description": "The offer in the message for a clicked event to an offer.", - "$ref": "https://ns.adobe.com/experience/decisioning/proposition#/definitions/proposition-detail-datatype" + "$ref": "https://ns.adobe.com/experience/decisioning/proposition-detail" } } }, @@ -299,9 +296,6 @@ { "$ref": "#/definitions/campaign-experienceevent-all" }, - { - "$ref": "https://ns.adobe.com/experience/decisioning/proposition#/definitions/propositions-mixin" - }, { "$ref": "#/definitions/mutation" } diff --git a/extensions/adobe/experience/campaign/experienceevent.example.click.json b/extensions/adobe/experience/campaign/experienceevent.example.click.json index ae9d8dc5cb..ef98077bb2 100644 --- a/extensions/adobe/experience/campaign/experienceevent.example.click.json +++ b/extensions/adobe/experience/campaign/experienceevent.example.click.json @@ -5,7 +5,9 @@ "xdm:value": 1 } }, - "xdm:channel": "https://ns.adobe.com/xdm/channels/email", + "xdm:channel": { + "@id": "https://ns.adobe.com/xdm/channels/email" + }, "xdm:endUserIDs": { "https://ns.adobe.com/experience/mcid": { "xdm:id": "92312748749128", @@ -82,5 +84,15 @@ "https://ns.adobe.com/experience/campaign/orchestration": { "xdm:eventID": "store-entry-beacon-triggered" }, - "https://ns.adobe.com/experience/campaign/eventSource": "pipelined-trackinglogd" + "https://ns.adobe.com/experience/campaign/eventSource": "pipelined-trackinglogd", + "https://ns.adobe.com/experience/campaign/offerClicked": { + "xdm:activity": { + "@id": "xcore:offer-activity:ebc48132c26ccfc" + }, + "xdm:selections": [ + { + "@id": "xcore:personalized-offer:e526a1503bf29e9" + } + ] + } } diff --git a/extensions/adobe/experience/campaign/experienceevent.example.email-send.json b/extensions/adobe/experience/campaign/experienceevent.example.email-send.json index ff10d02a54..825e0fde66 100644 --- a/extensions/adobe/experience/campaign/experienceevent.example.email-send.json +++ b/extensions/adobe/experience/campaign/experienceevent.example.email-send.json @@ -5,7 +5,9 @@ "xdm:value": 1 } }, - "xdm:channel": "https://ns.adobe.com/xdm/channels/email", + "xdm:channel": { + "@id": "https://ns.adobe.com/xdm/channels/email" + }, "xdm:endUserIDs": { "https://ns.adobe.com/experience/mcid": { "@id": "https://data.adobe.io/entities/identity/92312748749128", diff --git a/extensions/adobe/experience/campaign/experienceevent.example.open-push.json b/extensions/adobe/experience/campaign/experienceevent.example.open-push.json index adc66b151f..8bb4831f18 100644 --- a/extensions/adobe/experience/campaign/experienceevent.example.open-push.json +++ b/extensions/adobe/experience/campaign/experienceevent.example.open-push.json @@ -5,7 +5,9 @@ "xdm:value": 1 } }, - "xdm:channel": "https://ns.adobe.com/xdm/channels/apns", + "xdm:channel": { + "@id": "https://ns.adobe.com/xdm/channels/email" + }, "xdm:endUserIDs": { "https://ns.adobe.com/experience/mcid": { "@id": "https://data.adobe.io/entities/identity/92312748749128", diff --git a/extensions/adobe/experience/campaign/experienceevent.example.sms-bounce.json b/extensions/adobe/experience/campaign/experienceevent.example.sms-bounce.json index 1e3dca0062..09954fc70b 100644 --- a/extensions/adobe/experience/campaign/experienceevent.example.sms-bounce.json +++ b/extensions/adobe/experience/campaign/experienceevent.example.sms-bounce.json @@ -5,7 +5,9 @@ "xdm:value": 1 } }, - "xdm:channel": "https://ns.adobe.com/xdm/channels/sms", + "xdm:channel": { + "@id": "https://ns.adobe.com/xdm/channels/email" + }, "xdm:endUserIDs": { "https://ns.adobe.com/experience/mcid": { "@id": "https://data.adobe.io/entities/identity/92312748749128", diff --git a/extensions/adobe/experience/decisioning/decisionevent.example.1.json b/extensions/adobe/experience/decisioning/decisionevent.example.1.json index 7d342c9193..daa0c02cb7 100644 --- a/extensions/adobe/experience/decisioning/decisionevent.example.1.json +++ b/extensions/adobe/experience/decisioning/decisionevent.example.1.json @@ -6,6 +6,24 @@ { "xdm:id": "https://data.adobe.io/entities/identity/49312748749132" } ] }, + "xdm:device": { + "xdm:typeID": "IMac", + "xdm:typeIDService": "https://ns.adobe.com/xdm/external/adobecampaign", + "xdm:type": "desktop", + "xdm:manufacturer": "Apple" + }, + "xdm:placeContext": { + "xdm:localTime": "2017-09-26T15:52:25+13:00", + "xdm:geo": { + "@id": "https://data.adobe.io/entities/geo/tokyo", + "xdm:countryCode": "JP", + "xdm:stateProvince": "JP-13", + "xdm:city": "Tōkyō", + "xdm:postalCode": "141-0032", + "schema:latitude": 35.6185, + "schema:longitude": 139.73237 + } + }, "https://ns.adobe.com/experience/decisioning/propositionId": "3cc33a7e-13ca-4b19-b25d-c816eff9a70a", "https://ns.adobe.com/experience/decisioning/propositionDetails": [ { @@ -27,13 +45,21 @@ "xdm:activity": { "@id": "xcore:offer-activity:f203512e02542b5" }, - "xdm:fallback": [ - { + "xdm:fallback": { "@id": "xcore:fallback-offer:e91ce7243fd8c2a" - } - ] + } } ], "https://ns.adobe.com/adobecloudplatform/ims/organizationId": "0D8E32C65A8A91520A494008@AdobeOrg", - "https://ns.adobe.com/experience/decisioning/containerId": "c75afa32-371f-4895-8f43-b853dd9fe740" + "https://ns.adobe.com/experience/decisioning/containerId": "c75afa32-371f-4895-8f43-b853dd9fe740", + "https://ns.adobe.com/experience/campaign/offerClicked": { + "xdm:activity": { + "@id": "xcore:offer-activity:f3f13bfccb4da6e" + }, + "xdm:selections": [ + { + "@id": "xcore:personalized-offer:f3e4b72eb3808e9" + } + ] + } } diff --git a/extensions/adobe/experience/decisioning/decisionevent.schema.json b/extensions/adobe/experience/decisioning/decisionevent.schema.json index c91e915524..21d1c22c85 100644 --- a/extensions/adobe/experience/decisioning/decisionevent.schema.json +++ b/extensions/adobe/experience/decisioning/decisionevent.schema.json @@ -15,20 +15,9 @@ "meta:extends": [ "https://ns.adobe.com/xdm/data/time-series", - "https://ns.adobe.com/experience/decisioning/proposition#/definitions/propositions-mixin", - + "https://ns.adobe.com/experience/decisioning/proposition", "https://ns.adobe.com/xdm/context/identitymap", - "https://ns.adobe.com/xdm/context/experienceevent-advertising", - "https://ns.adobe.com/xdm/context/experienceevent-application", - "https://ns.adobe.com/xdm/context/experienceevent-channel", - "https://ns.adobe.com/xdm/context/experienceevent-commerce", - "https://ns.adobe.com/xdm/context/experienceevent-directmarketing", - "https://ns.adobe.com/xdm/context/experienceevent-environment-details", - "https://ns.adobe.com/xdm/context/experienceevent-marketing", - "https://ns.adobe.com/xdm/context/experienceevent-media", - "https://ns.adobe.com/xdm/context/experienceevent-search", - "https://ns.adobe.com/xdm/context/experienceevent-segmentmembership", - "https://ns.adobe.com/xdm/context/experienceevent-web" + "https://ns.adobe.com/experience/campaign-experienceevent" ], "definitions": { "decisionevent": { @@ -62,43 +51,13 @@ "$ref": "#/definitions/decisionevent" }, { - "$ref": "https://ns.adobe.com/experience/decisioning/proposition#/definitions/propositions-mixin" + "$ref": "https://ns.adobe.com/experience/decisioning/proposition" }, { "$ref": "https://ns.adobe.com/xdm/context/identitymap" }, { - "$ref": "https://ns.adobe.com/xdm/context/experienceevent-advertising" - }, - { - "$ref": "https://ns.adobe.com/xdm/context/experienceevent-application" - }, - { - "$ref": "https://ns.adobe.com/xdm/context/experienceevent-channel" - }, - { - "$ref": "https://ns.adobe.com/xdm/context/experienceevent-commerce" - }, - { - "$ref": "https://ns.adobe.com/xdm/context/experienceevent-directmarketing" - }, - { - "$ref": "https://ns.adobe.com/xdm/context/experienceevent-environment-details" - }, - { - "$ref": "https://ns.adobe.com/xdm/context/experienceevent-marketing" - }, - { - "$ref": "https://ns.adobe.com/xdm/context/experienceevent-media" - }, - { - "$ref": "https://ns.adobe.com/xdm/context/experienceevent-search" - }, - { - "$ref": "https://ns.adobe.com/xdm/context/experienceevent-segmentmembership" - }, - { - "$ref": "https://ns.adobe.com/xdm/context/experienceevent-web" + "$ref": "https://ns.adobe.com/experience/campaign-experienceevent" }, { "required": [ diff --git a/extensions/adobe/experience/decisioning/experienceevent-with-proposition.example.1.json b/extensions/adobe/experience/decisioning/experienceevent-with-proposition.example.1.json index 6ed425078d..e6c0257866 100644 --- a/extensions/adobe/experience/decisioning/experienceevent-with-proposition.example.1.json +++ b/extensions/adobe/experience/decisioning/experienceevent-with-proposition.example.1.json @@ -24,7 +24,9 @@ "xdm:value": 1 } }, - "xdm:channel": "https://ns.adobe.com/xdm/channels/email", + "xdm:channel": { + "@id": "https://ns.adobe.com/xdm/channels/email" + }, "https://ns.adobe.com/experience/campaign/message": { "xdm:id": 10000, "xdm:profile": { @@ -106,11 +108,9 @@ "xdm:filter": "xcore:offer-filter:ec5139e1a351772", "schema:name": "Sessions" }, - "xdm:fallback": [ - { + "xdm:fallback": { "@id": "xcore:fallback-offer:e91ce7243fd8c2a" - } - ] + } } ] } diff --git a/extensions/adobe/experience/decisioning/proposition.example.1.json b/extensions/adobe/experience/decisioning/proposition-detail.example.1.json similarity index 100% rename from extensions/adobe/experience/decisioning/proposition.example.1.json rename to extensions/adobe/experience/decisioning/proposition-detail.example.1.json diff --git a/extensions/adobe/experience/decisioning/proposition.example.2.json b/extensions/adobe/experience/decisioning/proposition-detail.example.2.json similarity index 78% rename from extensions/adobe/experience/decisioning/proposition.example.2.json rename to extensions/adobe/experience/decisioning/proposition-detail.example.2.json index cf7f974d16..5d17c1bba8 100644 --- a/extensions/adobe/experience/decisioning/proposition.example.2.json +++ b/extensions/adobe/experience/decisioning/proposition-detail.example.2.json @@ -2,9 +2,7 @@ "xdm:activity": { "@id": "xcore:offer-activity:f203512e02542b5" }, - "xdm:fallback": [ - { + "xdm:fallback": { "@id": "xcore:fallback-offer:e91ce7243fd8c2a" - } - ] + } } diff --git a/extensions/adobe/experience/decisioning/proposition-detail.schema.json b/extensions/adobe/experience/decisioning/proposition-detail.schema.json new file mode 100644 index 0000000000..b0ca8f878f --- /dev/null +++ b/extensions/adobe/experience/decisioning/proposition-detail.schema.json @@ -0,0 +1,68 @@ +{ + "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/proposition-detail", + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "Decision Proposition", + "type": "object", + "meta:abstract": true, + "meta:extensible": true, + "description": "The Decision Proposition XDM is used to capture the outcome of a decisioning process", + "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" + }, + "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", + "type": "array", + "items": { + "$ref": "https://ns.adobe.com/xdm/data/record" + }, + "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" + } + } + } + }, + "allOf": [ + { + "$ref": "https://ns.adobe.com/xdm/common/extensible#/definitions/@context" + }, + { + "$ref": "#/definitions/proposition-detail-datatype" + }, + { + "required": ["xdm:activity"] + }, + { + "oneOf": [ + { + "required": ["xdm:selections"] + }, + { + "required": ["xdm:fallback"] + } + ] + } + ], + "meta:status": "experimental" +} diff --git a/extensions/adobe/experience/decisioning/proposition.schema.json b/extensions/adobe/experience/decisioning/proposition.schema.json index 645f0425d7..4637b33f7b 100644 --- a/extensions/adobe/experience/decisioning/proposition.schema.json +++ b/extensions/adobe/experience/decisioning/proposition.schema.json @@ -13,40 +13,7 @@ "meta:extensible": true, "description": "The Decision Proposition XDM is used to capture the outcome of a decisioning process", "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" - }, - "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", - "type": "array", - "items": { - "$ref": "https://ns.adobe.com/xdm/data/record" - }, - "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" - } - } - }, - "proposition-metrics-datatype": { - "properties": { - "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" - } - } - }, - "propositions-mixin": { + "proposition-mixin": { "meta:intendedToExtend": [ "https://ns.adobe.com/xdm/context/experienceevent", "https://ns.adobe.com/experience/decisioning/decisionevent" @@ -61,7 +28,7 @@ "title": "Propopostion Array providing the outcomes of a single decision event, one outcome per given activity", "type": "array", "items": { - "$ref": "https://ns.adobe.com/experience/decisioning/proposition#/definitions/proposition-detail-datatype" + "$ref": "https://ns.adobe.com/experience/decisioning/proposition-detail" }, "description": "Details about the individual context variables and outcomes for the decision." } @@ -73,23 +40,7 @@ "$ref": "https://ns.adobe.com/xdm/common/extensible#/definitions/@context" }, { - "$ref": "#/definitions/proposition-detail-datatype" - }, - { - "required": ["xdm:activity"] - }, - { - "oneOf": [ - { - "required": ["xdm:selections"] - }, - { - "required": ["xdm:fallback"] - } - ] - }, - { - "$ref": "#/definitions/proposition-metrics-datatype" + "$ref": "#/definitions/proposition-mixin" } ], "meta:status": "experimental"