diff --git a/CHANGELOG.md b/CHANGELOG.md index 5606b4c6f..dc4ea217d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -53,3 +53,5 @@ ## Release 0.9.3 [Planned for June 29, 2018](https://github.com/adobe/xdm/releases/tag/v0.9.3) + +* Added Timed Media schemas to `Experience Event` based schemas #417 diff --git a/package.json b/package.json index 1ab0eaba9..391da8268 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "aem_user": "packageUser", "aem_password": "override me securely", "markdown-importer-version": "0.0.4", - "schemas": 176 + "schemas": 208 }, "scripts": { "clean": "rm -rf docs/reference", diff --git a/schemas/common/context.jsonld b/schemas/common/context.jsonld index 8d0e4351b..14c0c1f0f 100644 --- a/schemas/common/context.jsonld +++ b/schemas/common/context.jsonld @@ -27,6 +27,7 @@ "exif": "http://ns.adobe.com/exif/1.0/#", "activitystreams": "https://www.w3.org/ns/activitystreams", "schema": "http://schema.org", - "repo": "http://ns.adobe.com/adobecloud/core/1.0/" + "repo": "http://ns.adobe.com/adobecloud/core/1.0/", + "iptc4xmpExt": "http://iptc.org/std/Iptc4xmpExt/1.1/" } -} \ No newline at end of file +} diff --git a/schemas/common/extensible.schema.json b/schemas/common/extensible.schema.json index d738baf9e..0cdcfeb8a 100644 --- a/schemas/common/extensible.schema.json +++ b/schemas/common/extensible.schema.json @@ -46,6 +46,7 @@ "^activitystreams:.*$": {}, "^schema:.*$": {}, "^repo:.*$": {}, + "^iptc4xmpExt:.*$": {}, ".+://.+": {}, "@.*": {} }, @@ -196,6 +197,11 @@ "type": "string", "format": "url", "const": "http://ns.adobe.com/adobecloud/core/1.0/" + }, + "iptc4xmpExt": { + "type": "string", + "format": "url", + "const": "http://iptc.org/std/Iptc4xmpExt/1.1/" } }, "additionalProperties": false, @@ -231,6 +237,7 @@ "^activitystreams:.*$": {}, "^schema:.*$": {}, "^repo:.*$": {}, + "^iptc4xmpExt:.*$": {}, ".+://.+": {} }, "required": ["@context"], diff --git a/schemas/context/advertising-break.example.1.json b/schemas/context/advertising-break.example.1.json new file mode 100644 index 000000000..875b65bff --- /dev/null +++ b/schemas/context/advertising-break.example.1.json @@ -0,0 +1,5 @@ +{ + "@id": "https://data.adobe.io/entities/ad-break/2394509340-30453470347", + "dc:title": "My Pod", + "xdm:offset": 3 +} diff --git a/schemas/context/advertising-break.schema.json b/schemas/context/advertising-break.schema.json new file mode 100644 index 000000000..f0ea354fb --- /dev/null +++ b/schemas/context/advertising-break.schema.json @@ -0,0 +1,46 @@ +{ + "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/xdm/context/advertising-break", + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "Ad Break", + "type": "object", + "description": "Details about how a timed advertising is being inserted into a timed media.", + "meta:extensible": true, + "definitions": { + "adBreak": { + "properties": { + "@id": { + "title": "Ad Break ID", + "format": "uri", + "type": "string", + "description": "Identifier of the ad break." + }, + "dc:title": { + "title": "Ad Break Name", + "type": "string", + "description": "The friendly name of the ad break." + }, + "xdm:offset": { + "title": "Ad Break Offset", + "type": "integer", + "description": "The offset, in seconds, of the ad break from the start of the primary content." + } + }, + "required": [ + "@id", + "xdm:offset" + ] + } + }, + "allOf": [ + { + "$ref": "#/definitions/adBreak" + } + ], + "meta:status": "experimental" +} diff --git a/schemas/context/advertising-timed-asset-reference.example.1.json b/schemas/context/advertising-timed-asset-reference.example.1.json new file mode 100644 index 000000000..f5496a114 --- /dev/null +++ b/schemas/context/advertising-timed-asset-reference.example.1.json @@ -0,0 +1,5 @@ +{ + "@id": "https://data.adobe.io/entities/asser-reference/23423", + "dc:title": "Acme offer 21", + "xmpDM:duration": 23 +} diff --git a/schemas/context/advertising-timed-asset-reference.schema.json b/schemas/context/advertising-timed-asset-reference.schema.json new file mode 100644 index 000000000..6bb2b3772 --- /dev/null +++ b/schemas/context/advertising-timed-asset-reference.schema.json @@ -0,0 +1,49 @@ +{ + "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/xdm/context/advertising-timed-asset-reference", + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "Ad Asset Reference", + "type": "object", + "description": "Asset information about the ad captured by the experience event.", + "meta:extensible": true, + "definitions": { + "adAssetReference": { + "properties": { + "@id": { + "title": "Ad ID", + "type": "string", + "format": "uri", + "description": "Identifier of the ad asset provided by Media Analytics customers." + }, + "dc:title": { + "title": "Ad Name", + "type": "string", + "description": "The friendly (human-readable) name of the ad asset." + }, + "xmpDM:duration": { + "title": "Ad Length/Duration", + "type": "integer", + "description": "Length of ad asset in seconds." + } + }, + "required": [ + "@id", + "xmpDM:duration" + ] + } + }, + "allOf": [ + { + "$ref": "https://ns.adobe.com/xdm/common/extensible#/definitions/@context" + }, + { + "$ref": "#/definitions/adAssetReference" + } + ], + "meta:status": "experimental" +} diff --git a/schemas/context/advertising-timed-asset-view-details.example.1.json b/schemas/context/advertising-timed-asset-view-details.example.1.json new file mode 100644 index 000000000..f1efbf6a2 --- /dev/null +++ b/schemas/context/advertising-timed-asset-view-details.example.1.json @@ -0,0 +1,9 @@ +{ + "xdm:playerName": "Acme Ad Player", + "xdm:index": 1, + "xdm:adBreak": { + "@id": "https://data.adobe.io/entities/adbreak/2394509340-30453470347", + "dc:title": "My Pod", + "xdm:offset": 3 + } +} diff --git a/schemas/context/advertising-timed-asset-view-details.schema.json b/schemas/context/advertising-timed-asset-view-details.schema.json new file mode 100644 index 000000000..2bc5996d6 --- /dev/null +++ b/schemas/context/advertising-timed-asset-view-details.schema.json @@ -0,0 +1,47 @@ +{ + "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/xdm/context/advertising-timed-asset-view-details", + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "Ad Asset View Details", + "type": "object", + "description": "View details for the ad playback captured by the experience event.", + "meta:extensible": true, + "definitions": { + "adAssetViewDetails": { + "properties": { + "xdm:playerName": { + "title": "Ad Player Name", + "type": "string", + "description": "The name of the player responsible for rendering the ad." + }, + "xdm:index": { + "title": "Ad Index in Pod", + "type": "integer", + "description": "The index of the ad inside the parent ad break. The first ad has index 0, the second 1, and so on." + }, + "xdm:adBreak": { + "title": "Ad Break", + "description": "Details about how a timed advertising is being inserted into a timed media.", + "$ref": "https://ns.adobe.com/xdm/context/advertising-break" + } + }, + "required": [ + "xdm:index" + ] + } + }, + "allOf": [ + { + "$ref": "https://ns.adobe.com/xdm/common/extensible#/definitions/@context" + }, + { + "$ref": "#/definitions/adAssetViewDetails" + } + ], + "meta:status": "experimental" +} diff --git a/schemas/context/advertising.schema.json b/schemas/context/advertising.schema.json index c85c5cc91..58fe2e298 100644 --- a/schemas/context/advertising.schema.json +++ b/schemas/context/advertising.schema.json @@ -20,21 +20,42 @@ "description": "The runtime measured viewability specific details such as player volume, library version, window status, viewport/ad measured dimensions, etc." }, - "xdm:clicks": { - "$ref": "https://ns.adobe.com/xdm/data/measure", - "description": "Click(s) actions on an advertisement." + "xdm:adAssetReference": { + "title": "Ad Asset Reference", + "description": "Asset information about the ad captured by the experience event.", + "$ref": "https://ns.adobe.com/xdm/context/advertising-timed-asset-reference" + }, + "xdm:adAssetViewDetails": { + "title": "Ad Asset View Details", + "description": "View details for the ad playback captured by the experience event.", + "$ref": "https://ns.adobe.com/xdm/context/advertising-timed-asset-view-details" }, "xdm:completes": { + "title": "Completes", + "$ref": "https://ns.adobe.com/xdm/data/measure", + "description": "Indicates if a timed media asset was watched to completion - this does not necessarily mean the viewer watched the whole video; viewer could have skipped ahead." + }, + "xdm:timePlayed": { + "title": "Time Spent", "$ref": "https://ns.adobe.com/xdm/data/measure", - "description": "A digital video ad has played through it's entirety." + "description": "Describes the amount of time spent by a user on a specific timed media asset." + }, + "xdm:federated": { + "title": "Federated", + "$ref": "https://ns.adobe.com/xdm/data/measure", + "description": "Indicates if an experience event was created through data federation (data sharing between customers)." + }, + "xdm:clicks": { + "$ref": "https://ns.adobe.com/xdm/data/measure", + "description": "Click(s) actions on an advertisement." }, "xdm:conversions": { "$ref": "https://ns.adobe.com/xdm/data/measure", - "description": "A pre-defined action on a website triggered a conversion event to be fired" + "description": "A customer pre-defined action(s) which triggers an event for performance evaluation." }, "xdm:firstQuartiles": { "$ref": "https://ns.adobe.com/xdm/data/measure", - "description": "A digital video ad has played through 25% of it's duration at normal speed." + "description": "A digital video ad has played through 25% of its duration at normal speed." }, "xdm:impressions": { "$ref": "https://ns.adobe.com/xdm/data/measure", @@ -42,7 +63,7 @@ }, "xdm:midpoints": { "$ref": "https://ns.adobe.com/xdm/data/measure", - "description": "A digital video ad has played through 50% of it's duration at normal speed." + "description": "A digital video ad has played through 50% of its duration at normal speed." }, "xdm:starts": { "$ref": "https://ns.adobe.com/xdm/data/measure", @@ -50,7 +71,7 @@ }, "xdm:thirdQuartiles": { "$ref": "https://ns.adobe.com/xdm/data/measure", - "description": "A digital video ad has played through 75% of it's duration at normal speed." + "description": "A digital video ad has played through 75% of its duration at normal speed." } } } diff --git a/schemas/context/experienceevent.example.4.json b/schemas/context/experienceevent.example.4.json new file mode 100644 index 000000000..c9214969d --- /dev/null +++ b/schemas/context/experienceevent.example.4.json @@ -0,0 +1,155 @@ +{ + "@id": "https://data.adobe.io/experienceid-123457", + "xdm:timestamp": "2017-09-26T15:52:25+00:00", + "xdm:endUserIDs": { + "https://ns.adobe.com/experience/mcid": { + "@id": "https://data.adobe.io/entities/identity/92312748749128", + "xdm:namespace": { + "xdm:code": "ECID" + } + }, + "https://ns.adobe.com/experience/aaid": { + "@id": "https://data.adobe.io/entities/identity/2394509340-30453470347", + "xdm:namespace": { + "xdm:code": "AVID" + } + } + }, + "xdm:environment": { + "xdm:browserDetails": { + "xdm:userAgent": "AppleWebkit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30" + }, + "xdm:ipV4": "97.27.143.5" + }, + "xdm:media": { + "xdm:mediaTimed": { + "xdm:primaryAssetReference": { + "@id": "https://data.adobe.io/entities/media-timed-asset-reference/15234430", + "dc:title": "Floki Begs Helga for Freedom", + "xmpDM:duration": 87, + "iptc4xmpExt:Series": { + "iptc4xmpExt:Name": "nba_highlights", + "iptc4xmpExt:Identifier": "http://espn.com/series-identifiers/2613953" + }, + "xdm:showType": "episode", + "xdm:streamFormat": "long", + "iptc4xmpExt:Season": { + "iptc4xmpExt:Number": 1.0 + }, + "iptc4xmpExt:Episode": { + "iptc4xmpExt:Number": 1.0 + }, + "iptc4xmpExt:Genre": ["sports"], + "xdm:airDate": "2018-03-01", + "xdm:digitalDate": "2018-05-01", + "iptc4xmpExt:Rating": [ + { + "iptc4xmpExt:RatingValue": "TV14", + "iptc4xmpExt:RatingSourceLink": "http://www.tvguidelines.org/ratings.htm" + } + ], + "iptc4xmpExt:Creator": [ + { + "iptc4xmpExt:Name": "ESPN" + } + ] + }, + "xdm:primaryAssetViewDetails": { + "@id": "https://data.adobe.io/entities/media-sessionid/1427461282884250114230", + "xdm:playerName": "watchespn", + "xdm:broadcastChannel": "WatchESPN", + "xdm:broadcastContentType": "VOD", + "xdm:streamFormat": "short", + "xdm:playerSDKVersion": { + "xdm:version": "1.0.8" + }, + "xdm:broadcastNetwork": "nbcu", + "xdm:adLoadType": "2", + "xdm:sourceFeed": "http%3A%2F%2Fvod01.pure.centurylink.net%2Fhls%2Fvu%2F9083406%2FVUBX0280890106690980_38_3_M_HD.m3u8", + "xdm:sessionTimeout": 1800, + "xdm:QOE": { + "xdm:errors": { + "xdm:value": 0 + }, + "xdm:buffers": { + "xdm:value": 4 + }, + "xdm:bufferTime": { + "xdm:value": 5 + }, + "xdm:stalls": { + "xdm:value": 0 + }, + "xdm:stallTime": { + "xdm:value": 0 + }, + "xdm:bitrateChanges": { + "xdm:value": 0 + }, + "xdm:bitrateAverage": { + "xdm:value": 320 + }, + "xdm:bitrateAverageBucket": "300-399", + "xdm:droppedFrames": { + "xdm:value": 2 + }, + "xdm:timeToStart": { + "xdm:value": 3 + }, + "xdm:mediaSdkErrors": "300,500.300.200", + "xdm:playerSdkErrors": "custom.error.code", + "xdm:externalSdkErrors": "100-5,11.12" + } + }, + "xdm:impressions": { + "xdm:value": 1 + }, + "xdm:completes": { + "xdm:value": 0 + }, + "xdm:timePlayed": { + "xdm:value": 80 + }, + "xdm:federated": { + "xdm:value": 0 + }, + "xdm:starts": { + "xdm:value": 1 + }, + "xdm:mediaSegment": "[10-70]", + "xdm:mediaSegmentView": { + "xdm:value": 1 + }, + "xdm:dropBeforeStart": { + "xdm:value": 0 + }, + "xdm:totalTimePlayed": { + "xdm:value": 190 + }, + "xdm:progress10": { + "xdm:value": 1 + }, + "xdm:firstQuartiles": { + "xdm:value": 1 + }, + "xdm:midpoints": { + "xdm:value": 1 + }, + "xdm:thirdQuartiles": { + "xdm:value": 1 + }, + "xdm:progress95": { + "xdm:value": 0 + }, + "xdm:resumes": { + "xdm:value": 0 + }, + "xdm:pauses": { + "xdm:value": 0 + }, + "xdm:pauseTime": { + "xdm:value": 0 + } + } + } +} diff --git a/schemas/context/experienceevent.example.5.json b/schemas/context/experienceevent.example.5.json new file mode 100644 index 000000000..bd6e30618 --- /dev/null +++ b/schemas/context/experienceevent.example.5.json @@ -0,0 +1,101 @@ +{ + "@id": "https://data.adobe.io/experienceid-123458", + "xdm:timestamp": "2017-09-26T15:52:25+00:00", + "xdm:endUserIDs": { + "https://ns.adobe.com/experience/mcid": { + "@id": "https://data.adobe.io/entities/identity/92312748749128", + "xdm:namespace": { + "xdm:code": "ECID" + } + }, + "https://ns.adobe.com/experience/aaid": { + "@id": "https://data.adobe.io/entities/identity/2394509340-30453470347", + "xdm:namespace": { + "xdm:code": "AVID" + } + } + }, + "xdm:environment": { + "xdm:browserDetails": { + "xdm:userAgent": "AppleWebkit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30" + }, + "xdm:ipV4": "97.27.143.5" + }, + "xdm:media": { + "xdm:mediaTimed": { + "xdm:primaryAssetReference": { + "@id": "https://data.adobe.io/entities/media-timed-asset-reference/15234430", + "dc:title": "Floki Begs Helga for Freedom", + "xmpDM:duration": 87, + "iptc4xmpExt:Series": { + "iptc4xmpExt:Name": "nba_highlights", + "iptc4xmpExt:Identifier": "http://espn.com/series-identifiers/2613953" + }, + "xdm:showType": "episode", + "xdm:streamFormat": "long", + "iptc4xmpExt:Season": { + "iptc4xmpExt:Number": 1.0 + }, + "iptc4xmpExt:Episode": { + "iptc4xmpExt:Number": 1.0 + }, + "iptc4xmpExt:Genre": ["sports"], + "xdm:airDate": "2018-03-01", + "xdm:digitalDate": "2018-05-01", + "iptc4xmpExt:Rating": [ + { + "iptc4xmpExt:RatingValue": "TV14", + "iptc4xmpExt:RatingSourceLink": "http://www.tvguidelines.org/ratings.htm" + } + ], + "iptc4xmpExt:Creator": [ + { + "iptc4xmpExt:Name": "ESPN" + } + ] + }, + "xdm:primaryAssetViewDetails": { + "@id": "https://data.adobe.io/entities/media-sessionid/1427461282884250114230", + "xdm:playerName": "watchespn", + "xdm:broadcastChannel": "WatchESPN", + "xdm:broadcastContentType": "VOD", + "xdm:streamFormat": "short", + "xdm:playerSDKVersion": { + "xdm:version": "1.0.8" + }, + "xdm:broadcastNetwork": "nbcu", + "xdm:adLoadType": "2", + "xdm:sourceFeed": "http%3A%2F%2Fvod01.pure.centurylink.net%2Fhls%2Fvu%2F9083406%2FVUBX0280890106690980_38_3_M_HD.m3u8", + "xdm:sessionTimeout": 1800 + } + } + }, + "xdm:advertising": { + "xdm:adAssetReference": { + "@id": "https://data.adobe.io/entities/ad-id/AD1", + "dc:title": "adNumber1", + "xmpDM:duration": 10 + }, + "xdm:adAssetViewDetails": { + "xdm:playerName": "miniTestApp", + "xdm:index": 0, + "xdm:adBreak": { + "@id": "https://data.adobe.io/entities/ad-break/f40353618c5c11311f584e53c78654b9_0", + "dc:title": "Mid-Roll", + "xdm:offset": 44 + } + }, + "xdm:impressions": { + "xdm:value": 1 + }, + "xdm:completes": { + "xdm:value": 1 + }, + "xdm:timePlayed": { + "xdm:value": 10 + }, + "xdm:federated": { + "xdm:value": 0 + } + } +} diff --git a/schemas/context/experienceevent.example.6.json b/schemas/context/experienceevent.example.6.json new file mode 100644 index 000000000..4baffbfeb --- /dev/null +++ b/schemas/context/experienceevent.example.6.json @@ -0,0 +1,96 @@ +{ + "@id": "https://data.adobe.io/experienceid-123459", + "xdm:timestamp": "2017-09-26T15:52:25+00:00", + "xdm:endUserIDs": { + "https://ns.adobe.com/experience/mcid": { + "@id": "https://data.adobe.io/entities/identity/92312748749128", + "xdm:namespace": { + "xdm:code": "ECID" + } + }, + "https://ns.adobe.com/experience/aaid": { + "@id": "https://data.adobe.io/entities/identity/2394509340-30453470347", + "xdm:namespace": { + "xdm:code": "AVID" + } + } + }, + "xdm:environment": { + "xdm:browserDetails": { + "xdm:userAgent": "AppleWebkit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30" + }, + "xdm:ipV4": "97.27.143.5" + }, + "xdm:media": { + "xdm:mediaTimed": { + "xdm:primaryAssetReference": { + "@id": "https://data.adobe.io/entities/media-timed-asset-reference/15234430", + "dc:title": "Floki Begs Helga for Freedom", + "xmpDM:duration": 87, + "iptc4xmpExt:Series": { + "iptc4xmpExt:Name": "nba_highlights", + "iptc4xmpExt:Identifier": "http://espn.com/series-identifiers/2613953" + }, + "xdm:showType": "episode", + "xdm:streamFormat": "long", + "iptc4xmpExt:Season": { + "iptc4xmpExt:Number": 1.0 + }, + "iptc4xmpExt:Episode": { + "iptc4xmpExt:Number": 1.0 + }, + "iptc4xmpExt:Genre": ["sports"], + "xdm:airDate": "2018-03-01", + "xdm:digitalDate": "2018-05-01", + "iptc4xmpExt:Rating": [ + { + "iptc4xmpExt:RatingValue": "TV14", + "iptc4xmpExt:RatingSourceLink": "http://www.tvguidelines.org/ratings.htm" + } + ], + "iptc4xmpExt:Creator": [ + { + "iptc4xmpExt:Name": "ESPN" + } + ] + }, + "xdm:primaryAssetViewDetails": { + "@id": "https://data.adobe.io/entities/media-sessionid/1427461282884250114230", + "xdm:playerName": "watchespn", + "xdm:broadcastChannel": "WatchESPN", + "xdm:broadcastContentType": "VOD", + "xdm:streamFormat": "short", + "xdm:playerSDKVersion": { + "xdm:version": "1.0.8" + }, + "xdm:broadcastNetwork": "nbcu", + "xdm:adLoadType": "2", + "xdm:sourceFeed": "http%3A%2F%2Fvod01.pure.centurylink.net%2Fhls%2Fvu%2F9083406%2FVUBX0280890106690980_38_3_M_HD.m3u8", + "xdm:sessionTimeout": 1800 + }, + "xdm:mediaChapter": { + "xdm:chapterAssetReference": { + "@id": "https://data.adobe.io/entities/media-chapter-asset-reference/2144511", + "dc:title": "Chapter1", + "xmpDM:duration": 44 + }, + "xdm:chapterAssetViewDetails": { + "xdm:index": 0, + "xdm:offset": 0 + }, + "xdm:impressions": { + "xdm:value": 1 + }, + "xdm:completes": { + "xdm:value": 1 + }, + "xdm:timePlayed": { + "xdm:value": 44 + }, + "xdm:federated": { + "xdm:value": 0 + } + } + } + } +} diff --git a/schemas/context/experienceevent.schema.json b/schemas/context/experienceevent.schema.json index 773700aba..192a6fe68 100644 --- a/schemas/context/experienceevent.schema.json +++ b/schemas/context/experienceevent.schema.json @@ -118,6 +118,12 @@ "title": "Advertising", "$ref": "https://ns.adobe.com/xdm/context/advertising", "description": "The information related to advertising activity related to the experience event" + }, + "xdm:media": { + "title": "Media", + "meta:status": "experimental", + "$ref": "https://ns.adobe.com/xdm/context/media", + "description": "The media activity information related to the experience event" } }, "required": ["@id", "xdm:timestamp", "xdm:endUserIDs"] diff --git a/schemas/context/media-timed-asset-reference.example.1.json b/schemas/context/media-timed-asset-reference.example.1.json new file mode 100644 index 000000000..624c73efe --- /dev/null +++ b/schemas/context/media-timed-asset-reference.example.1.json @@ -0,0 +1,31 @@ +{ + "@id": "https://data.adobe.io/entities/media-timed-asset-reference/15234430", + "dc:title": "Floki Begs Helga for Freedom", + "xmpDM:duration": 87, + "iptc4xmpExt:Series": { + "iptc4xmpExt:Name": "nba_highlights", + "iptc4xmpExt:Identifier": "http://espn.com/series-identifiers/2613953" + }, + "xdm:showType": "episode", + "xdm:streamFormat": "long", + "iptc4xmpExt:Season": { + "iptc4xmpExt:Number": 1.0 + }, + "iptc4xmpExt:Episode": { + "iptc4xmpExt:Number": 1.0 + }, + "iptc4xmpExt:Genre": ["sports"], + "xdm:airDate": "2018-03-01", + "xdm:digitalDate": "2018-05-01", + "iptc4xmpExt:Rating": [ + { + "iptc4xmpExt:RatingValue": "TV14", + "iptc4xmpExt:RatingSourceLink": "http://www.tvguidelines.org/ratings.htm" + } + ], + "iptc4xmpExt:Creator": [ + { + "iptc4xmpExt:Name": "ESPN" + } + ] +} diff --git a/schemas/context/media-timed-asset-reference.schema.json b/schemas/context/media-timed-asset-reference.schema.json new file mode 100644 index 000000000..87ff68bbd --- /dev/null +++ b/schemas/context/media-timed-asset-reference.schema.json @@ -0,0 +1,181 @@ +{ + "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/xdm/context/media-timed-asset-reference", + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "Timed Media Primary Asset Reference", + "type": "object", + "meta:status": "experimental", + "meta:extensible": true, + "description": "Asset information about the main content that was played, but present on all ads and chapters that occur during the content's playback as well.", + "definitions": { + "media-asset-reference": { + "properties": { + "@id": { + "title": "Asset ID", + "type": "string", + "format": "uri", + "description": "Identifier of the content, which can be used to tie back to other industry / CMS IDs." + }, + "dc:title": { + "title": "Media Name", + "type": "string", + "description": "The friendly (human-readable) name of the timed media asset." + }, + "xmpDM:duration": { + "title": "Media Length/Runtime", + "type": "integer", + "description": "Length of primary media asset in seconds." + }, + "xdm:showType": { + "title": "Show Type", + "type": "string", + "description": "The type of content e.g. Trailer, Full Episode." + }, + "iptc4xmpExt:Series": { + "type": "object", + "title": "Series", + "description": "The series the show belongs to.", + "properties": { + "iptc4xmpExt:Name": { + "title": "Series Name", + "type": "string", + "description": "Name of the series." + }, + "iptc4xmpExt:Identifier": { + "title": "Series Identifier", + "type": "string", + "format": "uri", + "description": "Identifier of the series." + } + } + }, + "xdm:streamFormat": { + "title": "Stream Format", + "type": "string", + "description": "Free-form format of the stream (e.g. short, long)." + }, + "iptc4xmpExt:Season": { + "type": "object", + "title": "Season", + "description": "The season the show belongs to.", + "properties": { + "iptc4xmpExt:Name": { + "title": "Season Name", + "type": "string", + "description": "Name of the season." + }, + "iptc4xmpExt:Number": { + "title": "Season Number", + "type": "number", + "description": "Number of the season." + }, + "iptc4xmpExt:Identifier": { + "title": "Session Identifier", + "type": "string", + "format": "uri", + "description": "Identifier of the season." + } + } + }, + "iptc4xmpExt:Episode": { + "type": "object", + "title": "Episode", + "description": "The episode the show belongs to.", + "properties": { + "iptc4xmpExt:Name": { + "title": "Episode Name", + "type": "string", + "description": "Name of the episode." + }, + "iptc4xmpExt:Number": { + "title": "Season Number", + "type": "number", + "description": "Number of the episode." + }, + "iptc4xmpExt:Identifier": { + "title": "Episode Identifier", + "type": "string", + "format": "uri", + "description": "Identifier of the episode." + } + } + }, + "iptc4xmpExt:Genre": { + "title": "Genre", + "description": "Type or grouping of content as defined by content producer.", + "type": "array", + "items": { + "type": "string" + } + }, + "xdm:airDate": { + "title": "First Air Date", + "type": "string", + "format": "date", + "description": "The date when the content first aired on television." + }, + "xdm:digitalDate": { + "title": "First Digital Date", + "type": "string", + "format": "date", + "description": "The date when the content first aired on any digital channel or platform." + }, + "iptc4xmpExt:Rating": { + "title": "Content Rating", + "description": "The rating as defined by Parental Guidelines.", + "type": "array", + "items": { + "properties": { + "iptc4xmpExt:RatingValue": { + "title": "Episode Name", + "type": "string", + "description": "Rating value as issued by the rating source." + }, + "iptc4xmpExt:RatingSourceLink": { + "title": "Episode Identifier", + "type": "string", + "format": "uri", + "description": "Link to the site and optionally the page of the party which has issued the rating value, linked resource should explain the rating rules." + } + }, + "required": [ + "iptc4xmpExt:RatingValue", + "iptc4xmpExt:RatingSourceLink" + ] + } + }, + "iptc4xmpExt:Creator": { + "title": "Creator", + "description": "Party or parties (person or organisation) which created the video, refinement by the role attribute.", + "type": "array", + "items": { + "properties": { + "iptc4xmpExt:Name": { + "title": "Creator Name", + "type": "string", + "description": "Full name of the Creator." + } + } + } + } + }, + "required": [ + "@id", + "xmpDM:duration" + ] + } + }, + "allOf": [ + { + "$ref": "https://ns.adobe.com/xdm/common/extensible#/definitions/@context" + }, + { + "$ref": "#/definitions/media-asset-reference" + } + ] +} diff --git a/schemas/context/media-timed-asset-view-details.example.1.json b/schemas/context/media-timed-asset-view-details.example.1.json new file mode 100644 index 000000000..6782dcafd --- /dev/null +++ b/schemas/context/media-timed-asset-view-details.example.1.json @@ -0,0 +1,14 @@ +{ + "@id": "https://data.adobe.io/entities/media-sessionid/1427461282884250114230", + "xdm:playerName": "watchespn", + "xdm:broadcastChannel": "WatchESPN", + "xdm:broadcastContentType": "VOD", + "xdm:streamFormat": "short", + "xdm:playerSDKVersion": { + "xdm:version": "1.0.8" + }, + "xdm:broadcastNetwork": "nbcu", + "xdm:adLoadType": "2", + "xdm:sourceFeed": "http%3A%2F%2Fvod01.pure.centurylink.net%2Fhls%2Fvu%2F9083406%2FVUBX0280890106690980_38_3_M_HD.m3u8", + "xdm:sessionTimeout": 1800 +} diff --git a/schemas/context/media-timed-asset-view-details.schema.json b/schemas/context/media-timed-asset-view-details.schema.json new file mode 100644 index 000000000..43dcee89f --- /dev/null +++ b/schemas/context/media-timed-asset-view-details.schema.json @@ -0,0 +1,94 @@ +{ + "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/xdm/context/media-timed-asset-view-details", + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "Primary Asset View Details", + "type": "object", + "meta:status": "experimental", + "meta:extensible": true, + "description": "View details for the main content playback, present on all ads and chapters that occur during the content's playback.", + "definitions": { + "media-asset-view-details": { + "properties": { + "@id": { + "title": "Media Session ID", + "type": "string", + "format": "uri", + "description": "Identifies an instance of a content stream unique to an individual playback." + }, + "xdm:playerName": { + "title": "Content Player Name", + "type": "string", + "description": "Name of the player." + }, + "xdm:broadcastChannel": { + "title": "Distribution Channel", + "type": "string", + "description": "Distribution channel from where the content was played." + }, + "xdm:broadcastContentType": { + "title": "Broadcast Content Type", + "type": "string", + "description": "The type of the stream delivery.", + "meta:enum": { + "VOD": "Video-on-Demand", + "Live": "Live Streaming", + "Linear": "Linear playback of the media asset", + "UGC": "User-generated Content", + "Radio": "Radio Show", + "Podcast": "Audio Postcast", + "Audiobook": "Audiobook" + } + }, + "xdm:playerSDKVersion": { + "title": "Player SDK Version", + "$ref": "https://ns.adobe.com/xdm/context/implementationdetails", + "description": "The SDK version used by the player." + }, + "xdm:broadcastNetwork": { + "title": "Broadcast Network", + "type": "string", + "description": "The programmer network name." + }, + "xdm:adLoadType": { + "title": "Ad Load Type", + "type": "string", + "description": "The type of ad loaded as defined by each customer's internal representation." + }, + "xdm:sourceFeed": { + "title": "Feed Type", + "type": "string", + "description": "The type of feed. Can either represent actual feed-related data (e.g. EAST HD/SD), or the source of the feed (e.g. an URL)." + }, + "xdm:sessionTimeout": { + "title": "Media Session Server Timeout", + "type": "integer", + "description": "Indicates the amount of time, in seconds, that passed between the user's last known interaction and the moment the session was closed." + }, + "xdm:qoe": { + "title": "Quality of Experience", + "$ref": "https://ns.adobe.com/xdm/context/media-timed-qoe", + "description": "Timed media properties related to the content playback's quality of experience (QoE)." + } + }, + "required": [ + "@id", + "xdm:playerName", + "xdm:broadcastChannel" + ] + } + }, + "allOf": [ + { + "$ref": "https://ns.adobe.com/xdm/common/extensible#/definitions/@context" + }, + { + "$ref": "#/definitions/media-asset-view-details" + } + ] +} diff --git a/schemas/context/media-timed-chapter-asset-reference.example.1.json b/schemas/context/media-timed-chapter-asset-reference.example.1.json new file mode 100644 index 000000000..762d38057 --- /dev/null +++ b/schemas/context/media-timed-chapter-asset-reference.example.1.json @@ -0,0 +1,5 @@ +{ + "@id": "https://data.adobe.io/entities/media-chapter-asset-reference/2144511", + "dc:title": "Chapter1", + "xmpDM:duration": 44 +} diff --git a/schemas/context/media-timed-chapter-asset-reference.schema.json b/schemas/context/media-timed-chapter-asset-reference.schema.json new file mode 100644 index 000000000..d5aca6e5b --- /dev/null +++ b/schemas/context/media-timed-chapter-asset-reference.schema.json @@ -0,0 +1,49 @@ +{ + "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/xdm/context/media-timed-chapter-asset-reference", + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "Timed Media Chapter Asset Reference", + "type": "object", + "meta:status": "experimental", + "meta:extensible": true, + "description": "Asset information about the chapter captured by the experience event.", + "definitions": { + "media-chapter-asset-reference": { + "properties": { + "@id": { + "title": "Chapter Identity", + "format":"uri", + "type": "string", + "description": "The identity of the chapter." + }, + "dc:title": { + "title": "Chapter Name", + "type": "string", + "description": "The friendly name of the chapter and/or segment." + }, + "xmpDM:duration": { + "title": "Chapter Length/Duration", + "type": "integer", + "description": "The length of the chapter, in seconds." + } + }, + "required": [ + "@id", + "xmpDM:duration" + ] + } + }, + "allOf": [ + { + "$ref": "https://ns.adobe.com/xdm/common/extensible#/definitions/@context" + }, + { + "$ref": "#/definitions/media-chapter-asset-reference" + } + ] +} diff --git a/schemas/context/media-timed-chapter-view-details.example.1.json b/schemas/context/media-timed-chapter-view-details.example.1.json new file mode 100644 index 000000000..3400b8d39 --- /dev/null +++ b/schemas/context/media-timed-chapter-view-details.example.1.json @@ -0,0 +1,4 @@ +{ + "xdm:index": 0, + "xdm:offset": 0 +} diff --git a/schemas/context/media-timed-chapter-view-details.schema.json b/schemas/context/media-timed-chapter-view-details.schema.json new file mode 100644 index 000000000..6ad33def1 --- /dev/null +++ b/schemas/context/media-timed-chapter-view-details.schema.json @@ -0,0 +1,43 @@ +{ + "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/xdm/context/media-timed-chapter-view-details", + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "Timed Media Chapter View Details", + "type": "object", + "meta:status": "experimental", + "meta:extensible": true, + "description": "View details for the chapter playback captured by the experience event.", + "definitions": { + "media-chapter-view-details": { + "properties": { + "xdm:index": { + "title": "Chapter Index", + "type": "integer", + "description": "The index of the chapter inside the content." + }, + "xdm:offset": { + "title": "Chapter Offset", + "type": "integer", + "description": "The offset of the chapter, in seconds, inside the content from the start." + } + }, + "required": [ + "xdm:index", + "xdm:offset" + ] + } + }, + "allOf": [ + { + "$ref": "https://ns.adobe.com/xdm/common/extensible#/definitions/@context" + }, + { + "$ref": "#/definitions/media-chapter-view-details" + } + ] +} diff --git a/schemas/context/media-timed-chapter.example.1.json b/schemas/context/media-timed-chapter.example.1.json new file mode 100644 index 000000000..75218b543 --- /dev/null +++ b/schemas/context/media-timed-chapter.example.1.json @@ -0,0 +1,5 @@ +{ + "@id": "https://data.adobe.io/entities/media-chapter/2144511", + "dc:title": "Chapter1", + "xmpDM:duration": 44 +} diff --git a/schemas/context/media-timed-chapter.schema.json b/schemas/context/media-timed-chapter.schema.json new file mode 100644 index 000000000..00668eb0d --- /dev/null +++ b/schemas/context/media-timed-chapter.schema.json @@ -0,0 +1,59 @@ +{ + "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/xdm/context/media-timed-chapter", + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "Timed Media Chapter Information", + "type": "object", + "meta:status": "experimental", + "meta:extensible": true, + "description": "Timed media chapter information", + "definitions": { + "media-timed-chapter": { + "properties": { + "xdm:chapterAssetReference": { + "title": "Chapter Asset Reference", + "$ref": "https://ns.adobe.com/xdm/context/media-timed-chapter-asset-reference", + "description": "Asset information about the chapter captured by the experience event." + }, + "xdm:chapterAssetViewDetails": { + "title": "Chapter View Details", + "$ref": "https://ns.adobe.com/xdm/context/media-timed-chapter-view-details", + "description": "View details for the chapter playback captured by the experience event." + }, + "xdm:impressions": { + "title": "Impressions", + "$ref": "https://ns.adobe.com/xdm/data/measure", + "description": "Describes the intention to play a timed media asset. It does not measure success, as the user might abandon the content before the first frame is viewed." + }, + "xdm:completes": { + "title": "Completes", + "$ref": "https://ns.adobe.com/xdm/data/measure", + "description": "Indicates if a timed media asset was watched to completion - this does not necessarily mean the viewer watched the whole video; viewer could have skipped ahead." + }, + "xdm:timePlayed": { + "title": "Time Spent", + "$ref": "https://ns.adobe.com/xdm/data/measure", + "description": "Describes the amount of time (in seconds) spent by a user on a specific timed media asset." + }, + "xdm:federated": { + "title": "Federated", + "$ref": "https://ns.adobe.com/xdm/data/measure", + "description": "Indicates if an experience event was created through data federation (data sharing)." + } + } + } + }, + "allOf": [ + { + "$ref": "https://ns.adobe.com/xdm/common/extensible#/definitions/@context" + }, + { + "$ref": "#/definitions/media-timed-chapter" + } + ] +} diff --git a/schemas/context/media-timed-qoe.example.1.json b/schemas/context/media-timed-qoe.example.1.json new file mode 100644 index 000000000..811f62db2 --- /dev/null +++ b/schemas/context/media-timed-qoe.example.1.json @@ -0,0 +1,30 @@ +{ + "xdm:errors": { + "xdm:value": 0 + }, + "xdm:buffers": { + "xdm:value": 4 + }, + "xdm:bufferTime": { + "xdm:value": 5 + }, + "xdm:stalls": { + "xdm:value": 0 + }, + "xdm:stallTime": { + "xdm:value": 0 + }, + "xdm:bitrateChanges": { + "xdm:value": 0 + }, + "xdm:bitrateAverage": { + "xdm:value": 320 + }, + "xdm:bitrateAverageBucket": "300-399", + "xdm:droppedFrames": { + "xdm:value": 2 + }, + "xdm:timeToStart": { + "xdm:value": 3 + } +} diff --git a/schemas/context/media-timed-qoe.schema.json b/schemas/context/media-timed-qoe.schema.json new file mode 100644 index 000000000..b3be1b892 --- /dev/null +++ b/schemas/context/media-timed-qoe.schema.json @@ -0,0 +1,79 @@ +{ + "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/xdm/context/media-timed-qoe", + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "Timed Media Quality of Experience", + "type": "object", + "meta:status": "experimental", + "meta:extensible": true, + "description": "Timed media properties related to the content playback's quality of experience (QoE).", + "definitions": { + "media-timed-qoe": { + "properties": { + "xdm:errors": { + "title": "Errors", + "$ref": "https://ns.adobe.com/xdm/data/measure", + "description": "The number of errors that were encountered during playback." + }, + "xdm:buffers": { + "title": "Buffers", + "$ref": "https://ns.adobe.com/xdm/data/measure", + "description": "The number of buffer states that occurred during a playback session." + }, + "xdm:bufferTime": { + "title": "Total Buffer Duration", + "$ref": "https://ns.adobe.com/xdm/data/measure", + "description": "Describes the total amount of time (in seconds) spent buffering." + }, + "xdm:stalls": { + "title": "Stalls", + "$ref": "https://ns.adobe.com/xdm/data/measure", + "description": "The number of stall states that occurred during a playback session." + }, + "xdm:stallTime": { + "title": "Total Stalling Duration", + "$ref": "https://ns.adobe.com/xdm/data/measure", + "description": "Describes the duration (in seconds) in which the playback was stalled during playback." + }, + "xdm:bitrateChanges": { + "title": "Bitrate Changes", + "$ref": "https://ns.adobe.com/xdm/data/measure", + "description": "The number of bitrate change events that occurred during a playback session." + }, + "xdm:bitrateAverage": { + "title": "Average Bitrate", + "$ref": "https://ns.adobe.com/xdm/data/measure", + "description": "A weighted average of all bitrate values related to the play duration that occurred during a playback session." + }, + "xdm:bitrateAverageBucket": { + "title": "Average Bitrate", + "type": "string", + "description": "The average bitrate classified into predefined buckets of 100kbps intervals." + }, + "xdm:droppedFrames": { + "title": "Dropped Frames", + "$ref": "https://ns.adobe.com/xdm/data/measure", + "description": "The number of frames dropped during playback of the main content." + }, + "xdm:timeToStart": { + "title": "Time to Start", + "$ref": "https://ns.adobe.com/xdm/data/measure", + "description": "Describes the duration (in seconds) passed between video load and start." + } + } + } + }, + "allOf": [ + { + "$ref": "https://ns.adobe.com/xdm/common/extensible#/definitions/@context" + }, + { + "$ref": "#/definitions/media-timed-qoe" + } + ] +} diff --git a/schemas/context/media-timed.example.1.json b/schemas/context/media-timed.example.1.json new file mode 100644 index 000000000..7e42f4fbc --- /dev/null +++ b/schemas/context/media-timed.example.1.json @@ -0,0 +1,70 @@ +{ + "xdm:primaryAssetReference": { + "@id": "https://data.adobe.io/entities/media-timed-asset-reference/15234430", + "dc:title": "Floki Begs Helga for Freedom", + "xmpDM:duration": 87, + "iptc4xmpExt:Series": { + "iptc4xmpExt:Name": "nba_highlights", + "iptc4xmpExt:Identifier": "http://espn.com/series-identifiers/2613953" + }, + "xdm:showType": "episode", + "xdm:streamFormat": "long", + "iptc4xmpExt:Season": { + "iptc4xmpExt:Number": 1.0 + }, + "iptc4xmpExt:Episode": { + "iptc4xmpExt:Number": 1.0 + }, + "iptc4xmpExt:Genre": ["sports"], + "xdm:airDate": "2018-03-01", + "xdm:digitalDate": "2018-05-01", + "iptc4xmpExt:Rating": [ + { + "iptc4xmpExt:RatingValue": "TV14", + "iptc4xmpExt:RatingSourceLink": "http://www.tvguidelines.org/ratings.htm" + } + ], + "iptc4xmpExt:Creator": [ + { + "iptc4xmpExt:Name": "ESPN" + } + ] + }, + "xdm:primaryAssetViewDetails": { + "@id": "https://data.adobe.io/entities/media-sessionid/1427461282884250114230", + "xdm:playerName": "watchespn", + "xdm:broadcastChannel": "WatchESPN", + "xdm:broadcastContentType": "VOD", + "xdm:streamFormat": "short", + "xdm:playerSDKVersion": { + "xdm:version": "1.0.8" + }, + "xdm:broadcastNetwork": "nbcu", + "xdm:adLoadType": "2", + "xdm:sourceFeed": "http%3A%2F%2Fvod01.pure.centurylink.net%2Fhls%2Fvu%2F9083406%2FVUBX0280890106690980_38_3_M_HD.m3u8", + "xdm:sessionTimeout": 1800 + }, + "xdm:mediaChapter": { + "xdm:chapterAssetReference": { + "@id": "https://data.adobe.io/entities/media-chapter-asset-reference/2144511", + "dc:title": "Chapter1", + "xmpDM:duration": 44 + }, + "xdm:chapterAssetViewDetails": { + "xdm:index": 0, + "xdm:offset": 0 + }, + "xdm:impressions": { + "xdm:value": 1 + }, + "xdm:completes": { + "xdm:value": 1 + }, + "xdm:timePlayed": { + "xdm:value": 44 + }, + "xdm:federated": { + "xdm:value": 0 + } + } +} diff --git a/schemas/context/media-timed.schema.json b/schemas/context/media-timed.schema.json new file mode 100644 index 000000000..2898f6d3c --- /dev/null +++ b/schemas/context/media-timed.schema.json @@ -0,0 +1,133 @@ +{ + "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/xdm/context/media-timed", + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "Timed Media Information", + "type": "object", + "meta:status": "experimental", + "meta:extensible": true, + "description": "Timed media - main content, ads & chapters", + "definitions": { + "media-timed": { + "properties": { + "xdm:primaryAssetReference": { + "title": "Primary Asset Reference", + "$ref": "https://ns.adobe.com/xdm/context/media-timed-asset-reference", + "description": "Asset information about the main content that was played, present on all ads and chapters that occur during the content's playback." + }, + "xdm:primaryAssetViewDetails": { + "title": "Primary Asset View Details", + "$ref": "https://ns.adobe.com/xdm/context/media-timed-asset-view-details", + "description": "View details for the main content playback, present on all ads and chapters that occur during the content's playback." + }, + "xdm:mediaChapter": { + "title": "Media Chapter", + "$ref": "https://ns.adobe.com/xdm/context/media-timed-chapter", + "description": "Timed media - chapter information." + }, + "xdm:impressions": { + "title": "Impressions", + "$ref": "https://ns.adobe.com/xdm/data/measure", + "description": "Describes the intention to play a timed media asset. It does not measure success, as the user might abandon the content before the first frame is viewed." + }, + "xdm:completes": { + "title": "Completes", + "$ref": "https://ns.adobe.com/xdm/data/measure", + "description": "Indicates if a timed media asset was watched to completion - this does not necessarily mean the viewer watched the whole video; viewer could have skipped ahead." + }, + "xdm:timePlayed": { + "title": "Time Spent", + "$ref": "https://ns.adobe.com/xdm/data/measure", + "description": "The amount of time spent in seconds by a user on a specific timed media asset." + }, + "xdm:federated": { + "title": "Federated", + "$ref": "https://ns.adobe.com/xdm/data/measure", + "description": "Indicates the experience event was created through data federation (data sharing)." + }, + "xdm:starts": { + "title": "Starts", + "$ref": "https://ns.adobe.com/xdm/data/measure", + "description": "Indicates the first frame of the timed media asset has been viewed - i.e. the viewer did not abandon during pre-roll ad, buffering, etc." + }, + "xdm:mediaSegments": { + "title": "Media Segment", + "type": "string", + "description": "The interval that describes the part of the content that has been viewed (in minutes). The segment is computed as min and max of the playhead values during a playback session." + }, + "xdm:mediaSegmentViews": { + "title": "Media Segment Views", + "$ref": "https://ns.adobe.com/xdm/data/measure", + "description": "Indicates when at least one frame (not necessarily the first) has been viewed." + }, + "xdm:dropBeforeStarts": { + "title": "Drop Before Starts", + "$ref": "https://ns.adobe.com/xdm/data/measure", + "description": "Indicates the user abandoned the media stream before the first frame (e.g. during the pre-roll ad break, due to an error while loading the content from the CDN)." + }, + "xdm:totalTimePlayed": { + "title": "Content Play", + "$ref": "https://ns.adobe.com/xdm/data/measure", + "description": "Describes the total amount of time spent by a user on a specific timed media asset, which includes time spent watching ads." + }, + "xdm:progress10": { + "title": "10% Progress Marker", + "$ref": "https://ns.adobe.com/xdm/data/measure", + "description": "Indicates that the playhead passed the 10% marker of media based on stream length. The marker is only counted once, even if seeking backwards. If seeking forward, markers that are skipped are not counted." + }, + "xdm:progress25": { + "title": "25% Progress Marker", + "$ref": "https://ns.adobe.com/xdm/data/measure", + "description": "Indicates that the playhead passed the 25% marker of media based on stream length. Marker only counted once, even if seeking backwards. If seeking forward, markers that are skipped are not counted." + }, + "xdm:progress50": { + "title": "50% Progress Marker", + "$ref": "https://ns.adobe.com/xdm/data/measure", + "description": "Indicates that the playhead passed the 50% marker of media based on stream length. Marker only counted once, even if seeking backwards. If seeking forward, markers that are skipped are not counted." + }, + "xdm:progress75": { + "title": "75% Progress Marker", + "$ref": "https://ns.adobe.com/xdm/data/measure", + "description": "Indicates that the playhead passed the 75% marker of media based on stream length. Marker only counted once, even if seeking backwards. If seeking forward, markers that are skipped are not counted." + }, + "xdm:progress95": { + "title": "95% Progress Marker", + "$ref": "https://ns.adobe.com/xdm/data/measure", + "description": "Indicates that the playhead passed the 95% marker of media based on stream length. Marker only counted once, even if seeking backwards. If seeking forward, markers that are skipped are not counted." + }, + "xdm:resumes": { + "title": "Resumes", + "$ref": "https://ns.adobe.com/xdm/data/measure", + "description": "Marks each playback that was resumed after more than 30 minutes of buffer, pause, or stall period." + }, + "xdm:pauses": { + "title": "Pauses", + "$ref": "https://ns.adobe.com/xdm/data/measure", + "description": "The number of pause periods that occurred during playback." + }, + "xdm:pauseTime": { + "title": "Total Pause Duration", + "$ref": "https://ns.adobe.com/xdm/data/measure", + "description": "Describes the duration (in seconds) in which playback was paused by the user." + } + }, + "required": [ + "xdm:primaryAssetReference", + "xdm:primaryAssetViewDetails" + ] + } + }, + "allOf": [ + { + "$ref": "https://ns.adobe.com/xdm/common/extensible#/definitions/@context" + }, + { + "$ref": "#/definitions/media-timed" + } + ] +} diff --git a/schemas/context/media.example.1.json b/schemas/context/media.example.1.json new file mode 100644 index 000000000..f0961364a --- /dev/null +++ b/schemas/context/media.example.1.json @@ -0,0 +1,72 @@ +{ + "xdm:mediaTimed": { + "xdm:primaryAssetReference": { + "@id": "https://data.adobe.io/entities/media-timed-asset-reference/15234430", + "dc:title": "Floki Begs Helga for Freedom", + "xmpDM:duration": 87, + "iptc4xmpExt:Series": { + "iptc4xmpExt:Name": "nba_highlights", + "iptc4xmpExt:Identifier": "http://espn.com/series-identifiers/2613953" + }, + "xdm:showType": "episode", + "xdm:streamFormat": "long", + "iptc4xmpExt:Season": { + "iptc4xmpExt:Number": 1.0 + }, + "iptc4xmpExt:Episode": { + "iptc4xmpExt:Number": 1.0 + }, + "iptc4xmpExt:Genre": ["sports"], + "xdm:airDate": "2018-03-01", + "xdm:digitalDate": "2018-05-01", + "iptc4xmpExt:rating": [ + { + "iptc4xmpExt:RatingValue": "TV14", + "iptc4xmpExt:RatingSourceLink": "http://www.tvguidelines.org/ratings.htm" + } + ], + "iptc4xmpExt:creator": [ + { + "iptc4xmpExt:Name": "ESPN" + } + ] + }, + "xdm:primaryAssetViewDetails": { + "@id": "https://data.adobe.io/entities/media-sessionid/1427461282884250114230", + "xdm:playerName": "watchespn", + "xdm:broadcastChannel": "WatchESPN", + "xdm:broadcastContentType": "VOD", + "xdm:streamFormat": "short", + "xdm:playerSDKVersion": { + "xdm:version": "1.0.8" + }, + "xdm:broadcastNetwork": "nbcu", + "xdm:adLoadType": "2", + "xdm:sourceFeed": "http%3A%2F%2Fvod01.pure.centurylink.net%2Fhls%2Fvu%2F9083406%2FVUBX0280890106690980_38_3_M_HD.m3u8", + "xdm:sessionTimeout": 1800 + }, + "xdm:mediaChapter": { + "xdm:chapterAssetReference": { + "@id": "https://data.adobe.io/entities/media-chapter-asset-reference/2144511", + "xdm:name": "Chapter1", + "xmpDM:duration": 44 + }, + "xdm:chapterAssetViewDetails": { + "xdm:index": 0, + "xdm:offset": 0 + }, + "xdm:impressions": { + "xdm:value": 1 + }, + "xdm:completes": { + "xdm:value": 1 + }, + "xdm:timePlayed": { + "xdm:value": 44 + }, + "xdm:federated": { + "xdm:value": 0 + } + } + } +} diff --git a/schemas/context/media.schema.json b/schemas/context/media.schema.json new file mode 100644 index 000000000..4ebf58938 --- /dev/null +++ b/schemas/context/media.schema.json @@ -0,0 +1,34 @@ +{ + "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/xdm/context/media", + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "Media Information", + "type": "object", + "meta:status": "experimental", + "meta:extensible": true, + "description": "Media context information for content related interactions.", + "definitions": { + "media": { + "properties": { + "xdm:mediaTimed": { + "title": "Timed Media Information", + "$ref": "https://ns.adobe.com/xdm/context/media-timed", + "description": "Timed media - main content, ads & chapters" + } + } + } + }, + "allOf": [ + { + "$ref": "https://ns.adobe.com/xdm/common/extensible#/definitions/@context" + }, + { + "$ref": "#/definitions/media" + } + ] +} diff --git a/schemas/data/bitrate-average-bucket.example.1.json b/schemas/data/bitrate-average-bucket.example.1.json new file mode 100644 index 000000000..878cae10b --- /dev/null +++ b/schemas/data/bitrate-average-bucket.example.1.json @@ -0,0 +1,6 @@ +{ + "schema:name": "metric: bitrateAverageBucket", + "@id": "xdm:bitrateAverageBucket", + "xdm:measurement": "enum", + "xdm:unit": null +} diff --git a/schemas/data/bitrate-average-bucket.schema.json b/schemas/data/bitrate-average-bucket.schema.json new file mode 100644 index 000000000..017a6b73d --- /dev/null +++ b/schemas/data/bitrate-average-bucket.schema.json @@ -0,0 +1,56 @@ +{ + "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/xdm/data/bitrate-average-bucket", + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "Bitrate Average Bucket", + "type": "object", + "meta:extensible": true, + "meta:extends": [ + "https://ns.adobe.com/xdm/data/metricdefinition" + ], + "description": "The average bitrate classified into predefined buckets of 100kbps intervals.", + "definitions": { + "metricdefinition": { + "properties": { + "@id": { + "type": "string", + "const": "xdm:bitrateAverageBucket", + "description": "The unique identifier of this metric." + }, + "schema:name": { + "type": "string", + "const": "metric: bitrateAverageBucket", + "description": "The average bitrate classified into predefined buckets of 100kbps intervals." + }, + "xdm:measurement": { + "type": "string", + "description": "How to take measures of this metric.", + "const": "enum" + }, + "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": "stabilizing" +} diff --git a/schemas/data/bitrate-average.example.1.json b/schemas/data/bitrate-average.example.1.json new file mode 100644 index 000000000..d45842959 --- /dev/null +++ b/schemas/data/bitrate-average.example.1.json @@ -0,0 +1,6 @@ +{ + "schema:name": "metric: bitrateAverage", + "@id": "xdm:bitrateAverage", + "xdm:measurement": "average", + "xdm:unit": "kbps" +} diff --git a/schemas/data/bitrate-average.schema.json b/schemas/data/bitrate-average.schema.json new file mode 100644 index 000000000..a431a0f4c --- /dev/null +++ b/schemas/data/bitrate-average.schema.json @@ -0,0 +1,56 @@ +{ + "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/xdm/data/bitrate-average", + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "Bitrate Average", + "type": "object", + "meta:extensible": true, + "meta:extends": [ + "https://ns.adobe.com/xdm/data/metricdefinition" + ], + "description": "A weighted average of all bitrate values related to the play duration that occurred during a playback session.", + "definitions": { + "metricdefinition": { + "properties": { + "@id": { + "type": "string", + "const": "xdm:bitrateAverage", + "description": "The unique identifier of this metric." + }, + "schema:name": { + "type": "string", + "const": "metric: bitrateAverage", + "description": "A weighted average of all bitrate values related to the play duration that occurred during a playback session." + }, + "xdm:measurement": { + "type": "string", + "description": "How to take measures of this metric.", + "const": "average" + }, + "xdm:unit": { + "const": "kbps" + } + } + } + }, + "allOf": [ + { + "$ref": "#/definitions/metricdefinition" + }, + { + "$ref": "https://ns.adobe.com/xdm/data/metricdefinition" + } + ], + "required": [ + "@id", + "schema:name", + "xdm:measurement", + "xdm:unit" + ], + "meta:status": "stabilizing" +} diff --git a/schemas/data/bitrate-changes.example.1.json b/schemas/data/bitrate-changes.example.1.json new file mode 100644 index 000000000..54a067488 --- /dev/null +++ b/schemas/data/bitrate-changes.example.1.json @@ -0,0 +1,6 @@ +{ + "schema:name": "metric: bitrateChanges", + "@id": "xdm:bitrateChanges", + "xdm:measurement": "count", + "xdm:unit": null +} diff --git a/schemas/data/bitrate-changes.schema.json b/schemas/data/bitrate-changes.schema.json new file mode 100644 index 000000000..56e349617 --- /dev/null +++ b/schemas/data/bitrate-changes.schema.json @@ -0,0 +1,56 @@ +{ + "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/xdm/data/bitrate-changes", + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "Bitrate Changes", + "type": "object", + "meta:extensible": true, + "meta:extends": [ + "https://ns.adobe.com/xdm/data/metricdefinition" + ], + "description": "The number of bitrate change events that occurred during a playback session.", + "definitions": { + "metricdefinition": { + "properties": { + "@id": { + "type": "string", + "const": "xdm:bitrateChanges", + "description": "The unique identifier of this metric." + }, + "schema:name": { + "type": "string", + "const": "metric: bitrateChanges", + "description": "The number of bitrate change events that occurred during a playback session." + }, + "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": "stabilizing" +} diff --git a/schemas/data/buffer-time.example.1.json b/schemas/data/buffer-time.example.1.json new file mode 100644 index 000000000..943150135 --- /dev/null +++ b/schemas/data/buffer-time.example.1.json @@ -0,0 +1,6 @@ +{ + "schema:name": "metric: bufferTime", + "@id": "xdm:bufferTime", + "xdm:measurement": "time", + "xdm:unit": "second" +} diff --git a/schemas/data/buffer-time.schema.json b/schemas/data/buffer-time.schema.json new file mode 100644 index 000000000..d644cc55e --- /dev/null +++ b/schemas/data/buffer-time.schema.json @@ -0,0 +1,56 @@ +{ + "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/xdm/data/buffer-time", + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "Buffer Time", + "type": "object", + "meta:extensible": true, + "meta:extends": [ + "https://ns.adobe.com/xdm/data/metricdefinition" + ], + "description": "Describes the total amount of time spent buffering.", + "definitions": { + "metricdefinition": { + "properties": { + "@id": { + "type": "string", + "const": "xdm:bufferTime", + "description": "The unique identifier of this metric." + }, + "schema:name": { + "type": "string", + "const": "metric: bufferTime", + "description": "Describes the total amount of time spent buffering." + }, + "xdm:measurement": { + "type": "string", + "description": "How to take measures of this metric.", + "const": "time" + }, + "xdm:unit": { + "const": "second" + } + } + } + }, + "allOf": [ + { + "$ref": "#/definitions/metricdefinition" + }, + { + "$ref": "https://ns.adobe.com/xdm/data/metricdefinition" + } + ], + "required": [ + "@id", + "schema:name", + "xdm:measurement", + "xdm:unit" + ], + "meta:status": "stabilizing" +} diff --git a/schemas/data/buffers.example.1.json b/schemas/data/buffers.example.1.json new file mode 100644 index 000000000..5ec30eee2 --- /dev/null +++ b/schemas/data/buffers.example.1.json @@ -0,0 +1,6 @@ +{ + "schema:name": "metric: buffers", + "@id": "xdm:buffers", + "xdm:measurement": "count", + "xdm:unit": null +} diff --git a/schemas/data/buffers.schema.json b/schemas/data/buffers.schema.json new file mode 100644 index 000000000..e471ed3f4 --- /dev/null +++ b/schemas/data/buffers.schema.json @@ -0,0 +1,56 @@ +{ + "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/xdm/data/buffers", + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "Buffers", + "type": "object", + "meta:extensible": true, + "meta:extends": [ + "https://ns.adobe.com/xdm/data/metricdefinition" + ], + "description": "The number of the different buffer states that occurred during a playback session.", + "definitions": { + "metricdefinition": { + "properties": { + "@id": { + "type": "string", + "const": "xdm:buffers", + "description": "The unique identifier of this metric." + }, + "schema:name": { + "type": "string", + "const": "metric: buffers", + "description": "The number of the different buffer states that occurred during a playback session." + }, + "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": "stabilizing" +} diff --git a/schemas/data/completes.schema.json b/schemas/data/completes.schema.json index 832c44a5b..5ebde7698 100644 --- a/schemas/data/completes.schema.json +++ b/schemas/data/completes.schema.json @@ -11,7 +11,7 @@ "type": "object", "meta:extensible": true, "meta:extends": ["https://ns.adobe.com/xdm/data/metricdefinition"], - "description": "The metric completes describes digital video assets which played through its entire duration.", + "description": "Indicates if a timed media asset was watched to completion - this does not necessarily mean the viewer watched the whole video; viewer could have skipped ahead.", "definitions": { "metricdefinition": { "properties": { @@ -24,7 +24,7 @@ "type": "string", "const": "metric: completes", "description": - "The human-readable name of the metric. The name can be used in user interfaces and does not have to be unique." + "Indicates if a timed media asset was watched to completion - this does not necessarily mean the viewer watched the whole video; viewer could have skipped ahead." }, "xdm:measurement": { "type": "string", diff --git a/schemas/data/drop-before-starts.example.1.json b/schemas/data/drop-before-starts.example.1.json new file mode 100644 index 000000000..562876a6e --- /dev/null +++ b/schemas/data/drop-before-starts.example.1.json @@ -0,0 +1,6 @@ +{ + "schema:name": "metric: dropBeforeStarts", + "@id": "xdm:dropBeforeStarts", + "xdm:measurement": "count", + "xdm:unit": null +} diff --git a/schemas/data/drop-before-starts.schema.json b/schemas/data/drop-before-starts.schema.json new file mode 100644 index 000000000..f86bb457d --- /dev/null +++ b/schemas/data/drop-before-starts.schema.json @@ -0,0 +1,56 @@ +{ + "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/xdm/data/drop-before-starts", + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "Drop before Starts", + "type": "object", + "meta:extensible": true, + "meta:extends": [ + "https://ns.adobe.com/xdm/data/metricdefinition" + ], + "description": "Indicates the user abandoned the media stream before the first frame (e.g. during the pre-roll ad break, due to an error while loading the content from the CDN).", + "definitions": { + "metricdefinition": { + "properties": { + "@id": { + "type": "string", + "const": "xdm:dropBeforeStarts", + "description": "The unique identifier of this metric." + }, + "schema:name": { + "type": "string", + "const": "metric: dropBeforeStarts", + "description": "Indicates the user abandoned the media stream before the first frame (e.g. during the pre-roll ad break, due to an error while loading the content from the CDN)." + }, + "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": "stabilizing" +} diff --git a/schemas/data/dropped-frames.example.1.json b/schemas/data/dropped-frames.example.1.json new file mode 100644 index 000000000..471e845ee --- /dev/null +++ b/schemas/data/dropped-frames.example.1.json @@ -0,0 +1,6 @@ +{ + "schema:name": "metric: droppedFrames", + "@id": "xdm:droppedFrames", + "xdm:measurement": "count", + "xdm:unit": null +} diff --git a/schemas/data/dropped-frames.schema.json b/schemas/data/dropped-frames.schema.json new file mode 100644 index 000000000..02275e3cf --- /dev/null +++ b/schemas/data/dropped-frames.schema.json @@ -0,0 +1,56 @@ +{ + "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/xdm/data/dropped-frames", + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "Dropped Frames", + "type": "object", + "meta:extensible": true, + "meta:extends": [ + "https://ns.adobe.com/xdm/data/metricdefinition" + ], + "description": "The number of frames dropped during a playback session.", + "definitions": { + "metricdefinition": { + "properties": { + "@id": { + "type": "string", + "const": "xdm:droppedFrames", + "description": "The unique identifier of this metric." + }, + "schema:name": { + "type": "string", + "const": "metric: droppedFrames", + "description": "The number of frames dropped during a playback session." + }, + "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": "stabilizing" +} diff --git a/schemas/data/errors.example.1.json b/schemas/data/errors.example.1.json new file mode 100644 index 000000000..95cc1fa76 --- /dev/null +++ b/schemas/data/errors.example.1.json @@ -0,0 +1,6 @@ +{ + "schema:name": "metric: errors", + "@id": "xdm:errors", + "xdm:measurement": "count", + "xdm:unit": null +} diff --git a/schemas/data/errors.schema.json b/schemas/data/errors.schema.json new file mode 100644 index 000000000..d4a3a3d63 --- /dev/null +++ b/schemas/data/errors.schema.json @@ -0,0 +1,56 @@ +{ + "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/xdm/data/errors", + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "Errors", + "type": "object", + "meta:extensible": true, + "meta:extends": [ + "https://ns.adobe.com/xdm/data/metricdefinition" + ], + "description": "The number of errors that were encountered during playback.", + "definitions": { + "metricdefinition": { + "properties": { + "@id": { + "type": "string", + "const": "xdm:errors", + "description": "The unique identifier of this metric." + }, + "schema:name": { + "type": "string", + "const": "metric: errors", + "description": "The number of errors that were encountered." + }, + "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": "stabilizing" +} diff --git a/schemas/data/federated.example.1.json b/schemas/data/federated.example.1.json new file mode 100644 index 000000000..5b201c0e8 --- /dev/null +++ b/schemas/data/federated.example.1.json @@ -0,0 +1,6 @@ +{ + "schema:name": "metric: federated", + "@id": "xdm:federated", + "xdm:measurement": "count", + "xdm:unit": null +} diff --git a/schemas/data/federated.schema.json b/schemas/data/federated.schema.json new file mode 100644 index 000000000..e529bd2ce --- /dev/null +++ b/schemas/data/federated.schema.json @@ -0,0 +1,56 @@ +{ + "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/xdm/data/federated", + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "Federated", + "type": "object", + "meta:extensible": true, + "meta:extends": [ + "https://ns.adobe.com/xdm/data/metricdefinition" + ], + "description": "Indicates if the experience event was created through federation.", + "definitions": { + "metricdefinition": { + "properties": { + "@id": { + "type": "string", + "const": "xdm:federated", + "description": "The unique identifier of this metric." + }, + "schema:name": { + "type": "string", + "const": "metric: federated", + "description": "Indicates if the experience event was created through federation." + }, + "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": "stabilizing" +} diff --git a/schemas/data/media-segment-views.example.1.json b/schemas/data/media-segment-views.example.1.json new file mode 100644 index 000000000..bdc89038c --- /dev/null +++ b/schemas/data/media-segment-views.example.1.json @@ -0,0 +1,6 @@ +{ + "schema:name": "metric: mediaSegmentViews", + "@id": "xdm:mediaSegmentViews", + "xdm:measurement": "count", + "xdm:unit": null +} diff --git a/schemas/data/media-segment-views.schema.json b/schemas/data/media-segment-views.schema.json new file mode 100644 index 000000000..57d19332e --- /dev/null +++ b/schemas/data/media-segment-views.schema.json @@ -0,0 +1,56 @@ +{ + "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/xdm/data/media-segment-views", + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "Media Segment Views", + "type": "object", + "meta:extensible": true, + "meta:extends": [ + "https://ns.adobe.com/xdm/data/metricdefinition" + ], + "description": "Indicates whether at least one frame (not necessarily the first) was viewed.", + "definitions": { + "metricdefinition": { + "properties": { + "@id": { + "type": "string", + "const": "xdm:mediaSegmentViews", + "description": "The unique identifier of this metric." + }, + "schema:name": { + "type": "string", + "const": "metric: mediaSegmentViews", + "description": "Indicates whether at least one frame (not necessarily the first) was viewed." + }, + "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": "stabilizing" +} diff --git a/schemas/data/media-segments.example.1.json b/schemas/data/media-segments.example.1.json new file mode 100644 index 000000000..937d39c55 --- /dev/null +++ b/schemas/data/media-segments.example.1.json @@ -0,0 +1,6 @@ +{ + "schema:name": "metric: mediaSegments", + "@id": "xdm:mediaSegments", + "xdm:measurement": "interval", + "xdm:unit": null +} diff --git a/schemas/data/media-segments.schema.json b/schemas/data/media-segments.schema.json new file mode 100644 index 000000000..35fc7ddd2 --- /dev/null +++ b/schemas/data/media-segments.schema.json @@ -0,0 +1,56 @@ +{ + "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/xdm/data/media-segments", + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "Media Segments", + "type": "object", + "meta:extensible": true, + "meta:extends": [ + "https://ns.adobe.com/xdm/data/metricdefinition" + ], + "description": "The interval that describes the part of the content that has been viewed (in minutes). The segment is computed as min and max of the playhead values during a playback session.", + "definitions": { + "metricdefinition": { + "properties": { + "@id": { + "type": "string", + "const": "xdm:mediaSegments", + "description": "The unique identifier of this metric." + }, + "schema:name": { + "type": "string", + "const": "metric: mediaSegments", + "description": "The interval that describes the part of the content that has been viewed (in minutes). The segment is computed as min and max of the playhead values during a playback session." + }, + "xdm:measurement": { + "type": "string", + "description": "How to take measures of this metric.", + "const": "interval" + }, + "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": "stabilizing" +} diff --git a/schemas/data/pause-time.example.1.json b/schemas/data/pause-time.example.1.json new file mode 100644 index 000000000..656d09fba --- /dev/null +++ b/schemas/data/pause-time.example.1.json @@ -0,0 +1,6 @@ +{ + "schema:name": "metric: pauseTime", + "@id": "xdm:pauseTime", + "xdm:measurement": "time", + "xdm:unit": "second" +} diff --git a/schemas/data/pause-time.schema.json b/schemas/data/pause-time.schema.json new file mode 100644 index 000000000..5e500bc90 --- /dev/null +++ b/schemas/data/pause-time.schema.json @@ -0,0 +1,56 @@ +{ + "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/xdm/data/pause-time", + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "Pause Time", + "type": "object", + "meta:extensible": true, + "meta:extends": [ + "https://ns.adobe.com/xdm/data/metricdefinition" + ], + "description": "Describes the duration in which playback was paused by the user.", + "definitions": { + "metricdefinition": { + "properties": { + "@id": { + "type": "string", + "const": "xdm:pauseTime", + "description": "The unique identifier of this metric." + }, + "schema:name": { + "type": "string", + "const": "metric: pauseTime", + "description": "Describes the duration in which playback was paused by the user." + }, + "xdm:measurement": { + "type": "string", + "description": "How to take measures of this metric.", + "const": "time" + }, + "xdm:unit": { + "const": "second" + } + } + } + }, + "allOf": [ + { + "$ref": "#/definitions/metricdefinition" + }, + { + "$ref": "https://ns.adobe.com/xdm/data/metricdefinition" + } + ], + "required": [ + "@id", + "schema:name", + "xdm:measurement", + "xdm:unit" + ], + "meta:status": "stabilizing" +} diff --git a/schemas/data/pauses.example.1.json b/schemas/data/pauses.example.1.json new file mode 100644 index 000000000..6dd189336 --- /dev/null +++ b/schemas/data/pauses.example.1.json @@ -0,0 +1,6 @@ +{ + "schema:name": "metric: pauses", + "@id": "xdm:pauses", + "xdm:measurement": "count", + "xdm:unit": null +} diff --git a/schemas/data/pauses.schema.json b/schemas/data/pauses.schema.json new file mode 100644 index 000000000..d0157249d --- /dev/null +++ b/schemas/data/pauses.schema.json @@ -0,0 +1,56 @@ +{ + "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/xdm/data/pauses", + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "Pauses", + "type": "object", + "meta:extensible": true, + "meta:extends": [ + "https://ns.adobe.com/xdm/data/metricdefinition" + ], + "description": "The number of pause periods that occurred during playback.", + "definitions": { + "metricdefinition": { + "properties": { + "@id": { + "type": "string", + "const": "xdm:pauses", + "description": "The unique identifier of this metric." + }, + "schema:name": { + "type": "string", + "const": "metric: pauses", + "description": "The number of pause periods that occurred during playback." + }, + "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": "stabilizing" +} diff --git a/schemas/data/progress10.example.1.json b/schemas/data/progress10.example.1.json new file mode 100644 index 000000000..1f2868e5b --- /dev/null +++ b/schemas/data/progress10.example.1.json @@ -0,0 +1,6 @@ +{ + "schema:name": "metric: progress10", + "@id": "xdm:progress10", + "xdm:measurement": "count", + "xdm:unit": null +} diff --git a/schemas/data/progress10.schema.json b/schemas/data/progress10.schema.json new file mode 100644 index 000000000..412bdf32e --- /dev/null +++ b/schemas/data/progress10.schema.json @@ -0,0 +1,56 @@ +{ + "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/xdm/data/progress10", + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "10% Progress Marker", + "type": "object", + "meta:extensible": true, + "meta:extends": [ + "https://ns.adobe.com/xdm/data/metricdefinition" + ], + "description": "Indicates that the playhead passed the 10% marker of media based on stream length. The marker is only counted once, even if seeking backwards. If seeking forward, markers that are skipped are not counted.", + "definitions": { + "metricdefinition": { + "properties": { + "@id": { + "type": "string", + "const": "xdm:progress10", + "description": "The unique identifier of this metric." + }, + "schema:name": { + "type": "string", + "const": "metric: progress10", + "description": "Indicates that the playhead passed the 10% marker of media based on stream length. The marker is only counted once, even if seeking backwards. If seeking forward, markers that are skipped are not counted." + }, + "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": "stabilizing" +} diff --git a/schemas/data/progress95.example.1.json b/schemas/data/progress95.example.1.json new file mode 100644 index 000000000..ec21596f3 --- /dev/null +++ b/schemas/data/progress95.example.1.json @@ -0,0 +1,6 @@ +{ + "schema:name": "metric: progress95", + "@id": "xdm:progress95", + "xdm:measurement": "count", + "xdm:unit": null +} diff --git a/schemas/data/progress95.schema.json b/schemas/data/progress95.schema.json new file mode 100644 index 000000000..96fd41f7f --- /dev/null +++ b/schemas/data/progress95.schema.json @@ -0,0 +1,56 @@ +{ + "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/xdm/data/progress95", + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "95% Progress Marker", + "type": "object", + "meta:extensible": true, + "meta:extends": [ + "https://ns.adobe.com/xdm/data/metricdefinition" + ], + "description": "Indicates that the playhead passed the 95% marker of media based on stream length. The marker is only counted once, even if seeking backwards. If seeking forward, markers that are skipped are not counted.", + "definitions": { + "metricdefinition": { + "properties": { + "@id": { + "type": "string", + "const": "xdm:progress95", + "description": "The unique identifier of this metric." + }, + "schema:name": { + "type": "string", + "const": "metric: progress95", + "description": "Indicates that the playhead passed the 95% marker of media based on stream length. The marker is only counted once, even if seeking backwards. If seeking forward, markers that are skipped are not counted." + }, + "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": "stabilizing" +} diff --git a/schemas/data/resumes.example.1.json b/schemas/data/resumes.example.1.json new file mode 100644 index 000000000..44db6d004 --- /dev/null +++ b/schemas/data/resumes.example.1.json @@ -0,0 +1,6 @@ +{ + "schema:name": "metric: resumes", + "@id": "xdm:resumes", + "xdm:measurement": "count", + "xdm:unit": null +} diff --git a/schemas/data/resumes.schema.json b/schemas/data/resumes.schema.json new file mode 100644 index 000000000..fb7cfdd92 --- /dev/null +++ b/schemas/data/resumes.schema.json @@ -0,0 +1,56 @@ +{ + "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/xdm/data/resumes", + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "Resumes", + "type": "object", + "meta:extensible": true, + "meta:extends": [ + "https://ns.adobe.com/xdm/data/metricdefinition" + ], + "description": "Marks each playback that was resumed after more than 30 minutes of buffer, pause, or stall period.", + "definitions": { + "metricdefinition": { + "properties": { + "@id": { + "type": "string", + "const": "xdm:resumes", + "description": "The unique identifier of this metric." + }, + "schema:name": { + "type": "string", + "const": "metric: resumes", + "description": "Marks each playback that was resumed after more than 30 minutes of buffer, pause, or stall period." + }, + "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": "stabilizing" +} diff --git a/schemas/data/stall-time.example.1.json b/schemas/data/stall-time.example.1.json new file mode 100644 index 000000000..cae859016 --- /dev/null +++ b/schemas/data/stall-time.example.1.json @@ -0,0 +1,6 @@ +{ + "schema:name": "metric: stallTime", + "@id": "xdm:stallTime", + "xdm:measurement": "count", + "xdm:unit": null +} diff --git a/schemas/data/stall-time.schema.json b/schemas/data/stall-time.schema.json new file mode 100644 index 000000000..dc4b7bb3e --- /dev/null +++ b/schemas/data/stall-time.schema.json @@ -0,0 +1,56 @@ +{ + "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/xdm/data/stall-time", + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "Stall Time", + "type": "object", + "meta:extensible": true, + "meta:extends": [ + "https://ns.adobe.com/xdm/data/metricdefinition" + ], + "description": "Describes the duration in which the playback was stalled during playback.", + "definitions": { + "metricdefinition": { + "properties": { + "@id": { + "type": "string", + "const": "xdm:stallTime", + "description": "The unique identifier of this metric." + }, + "schema:name": { + "type": "string", + "const": "metric: stallTime", + "description": "Describes the duration in which the playback was stalled during playback." + }, + "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": "stabilizing" +} diff --git a/schemas/data/stalls.example.1.json b/schemas/data/stalls.example.1.json new file mode 100644 index 000000000..16bd3dd73 --- /dev/null +++ b/schemas/data/stalls.example.1.json @@ -0,0 +1,6 @@ +{ + "schema:name": "metric: stalls", + "@id": "xdm:stalls", + "xdm:measurement": "count", + "xdm:unit": null +} diff --git a/schemas/data/stalls.schema.json b/schemas/data/stalls.schema.json new file mode 100644 index 000000000..844be990c --- /dev/null +++ b/schemas/data/stalls.schema.json @@ -0,0 +1,56 @@ +{ + "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/xdm/data/stalls", + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "Stalls", + "type": "object", + "meta:extensible": true, + "meta:extends": [ + "https://ns.adobe.com/xdm/data/metricdefinition" + ], + "description": "The number of stall states that occurred during a playback session.", + "definitions": { + "metricdefinition": { + "properties": { + "@id": { + "type": "string", + "const": "xdm:stalls", + "description": "The unique identifier of this metric." + }, + "schema:name": { + "type": "string", + "const": "metric: stalls", + "description": "The number of stall states that occurred during a playback session." + }, + "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": "stabilizing" +} diff --git a/schemas/data/starts.schema.json b/schemas/data/starts.schema.json index e20693ea0..c8f229d12 100644 --- a/schemas/data/starts.schema.json +++ b/schemas/data/starts.schema.json @@ -11,7 +11,7 @@ "type": "object", "meta:extensible": true, "meta:extends": ["https://ns.adobe.com/xdm/data/metricdefinition"], - "description": "The metric starts describes a digital video which started playing.", + "description": "Indicates the first frame of the timed media was viewed - i.e. the viewer did not abandon during pre-roll ad, buffering, etc.", "definitions": { "metricdefinition": { "properties": { @@ -24,7 +24,7 @@ "type": "string", "const": "metric: starts", "description": - "The metric starts describes a digital video which started playing." + "Indicates the first frame of the timed media asset was viewed - i.e. the viewer did not abandon during pre-roll ad, buffering, etc." }, "xdm:measurement": { "type": "string", diff --git a/schemas/data/time-played.example.1.json b/schemas/data/time-played.example.1.json new file mode 100644 index 000000000..700260b19 --- /dev/null +++ b/schemas/data/time-played.example.1.json @@ -0,0 +1,6 @@ +{ + "schema:name": "metric: timePlayed", + "@id": "xdm:timePlayed", + "xdm:measurement": "time", + "xdm:unit": "second" +} diff --git a/schemas/data/time-played.schema.json b/schemas/data/time-played.schema.json new file mode 100644 index 000000000..84a008fb7 --- /dev/null +++ b/schemas/data/time-played.schema.json @@ -0,0 +1,56 @@ +{ + "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/xdm/data/time-played", + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "Time Played", + "type": "object", + "meta:extensible": true, + "meta:extends": [ + "https://ns.adobe.com/xdm/data/metricdefinition" + ], + "description": "Describes the amount of time spent by a user on a specific timed media asset.", + "definitions": { + "metricdefinition": { + "properties": { + "@id": { + "type": "string", + "const": "xdm:timePlayed", + "description": "The unique identifier of this metric." + }, + "schema:name": { + "type": "string", + "const": "metric: timePlayed", + "description": "Describes the amount of time spent by a user on a specific timed media asset." + }, + "xdm:measurement": { + "type": "string", + "description": "How to take measures of this metric.", + "const": "time" + }, + "xdm:unit": { + "const": "second" + } + } + } + }, + "allOf": [ + { + "$ref": "#/definitions/metricdefinition" + }, + { + "$ref": "https://ns.adobe.com/xdm/data/metricdefinition" + } + ], + "required": [ + "@id", + "schema:name", + "xdm:measurement", + "xdm:unit" + ], + "meta:status": "stabilizing" +} diff --git a/schemas/data/time-to-start.example.1.json b/schemas/data/time-to-start.example.1.json new file mode 100644 index 000000000..a0cb600a7 --- /dev/null +++ b/schemas/data/time-to-start.example.1.json @@ -0,0 +1,6 @@ +{ + "schema:name": "metric: timeToStart", + "@id": "xdm:timeToStart", + "xdm:measurement": "time", + "xdm:unit": "second" +} diff --git a/schemas/data/time-to-start.schema.json b/schemas/data/time-to-start.schema.json new file mode 100644 index 000000000..459924d95 --- /dev/null +++ b/schemas/data/time-to-start.schema.json @@ -0,0 +1,56 @@ +{ + "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/xdm/data/time-to-start", + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "Time to Start", + "type": "object", + "meta:extensible": true, + "meta:extends": [ + "https://ns.adobe.com/xdm/data/metricdefinition" + ], + "description": "Describes the duration passed between video load and start.", + "definitions": { + "metricdefinition": { + "properties": { + "@id": { + "type": "string", + "const": "xdm:timeToStart", + "description": "The unique identifier of this metric." + }, + "schema:name": { + "type": "string", + "const": "metric: timeToStart", + "description": "Describes the duration passed between video load and start." + }, + "xdm:measurement": { + "type": "string", + "description": "How to take measures of this metric.", + "const": "time" + }, + "xdm:unit": { + "const": "second" + } + } + } + }, + "allOf": [ + { + "$ref": "#/definitions/metricdefinition" + }, + { + "$ref": "https://ns.adobe.com/xdm/data/metricdefinition" + } + ], + "required": [ + "@id", + "schema:name", + "xdm:measurement", + "xdm:unit" + ], + "meta:status": "stabilizing" +} diff --git a/schemas/data/total-time-played.example.1.json b/schemas/data/total-time-played.example.1.json new file mode 100644 index 000000000..0cb96976a --- /dev/null +++ b/schemas/data/total-time-played.example.1.json @@ -0,0 +1,6 @@ +{ + "schema:name": "metric: totalTimePlayed", + "@id": "xdm:totalTimePlayed", + "xdm:measurement": "time", + "xdm:unit": "second" +} diff --git a/schemas/data/total-time-played.schema.json b/schemas/data/total-time-played.schema.json new file mode 100644 index 000000000..cdc3823a0 --- /dev/null +++ b/schemas/data/total-time-played.schema.json @@ -0,0 +1,56 @@ +{ + "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/xdm/data/total-time-played", + "$schema": "http://json-schema.org/draft-06/schema#", + "title": "Total Time Played", + "type": "object", + "meta:extensible": true, + "meta:extends": [ + "https://ns.adobe.com/xdm/data/metricdefinition" + ], + "description": "Describes the total amount of time spent by a user on a specific timed media asset, which includes time spent watching ads.", + "definitions": { + "metricdefinition": { + "properties": { + "@id": { + "type": "string", + "const": "xdm:totalTimePlayed", + "description": "The unique identifier of this metric." + }, + "schema:name": { + "type": "string", + "const": "metric: totalTimePlayed", + "description": "Describes the total amount of time spent by a user on a specific timed media asset, which includes time spent watching ads." + }, + "xdm:measurement": { + "type": "string", + "description": "How to take measures of this metric.", + "const": "time" + }, + "xdm:unit": { + "const": "second" + } + } + } + }, + "allOf": [ + { + "$ref": "#/definitions/metricdefinition" + }, + { + "$ref": "https://ns.adobe.com/xdm/data/metricdefinition" + } + ], + "required": [ + "@id", + "schema:name", + "xdm:measurement", + "xdm:unit" + ], + "meta:status": "stabilizing" +}