Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue-476 XDM schema definition for AdCloud Search surfer profiles #477

Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
{
"xdm:identities": [
{
"xdm:id": "someone@example.com",
"xdm:namespace": {
"xdm:code": "Email"
}
},
{
"xdm:id": "123-456",
"xdm:namespace": {
"xdm:code": "BB111"
}
}
],
"xdm:person": {
"xdm:name": {
"xdm:givenName": "Jane",
"xdm:middleName": "F",
"xdm:surname": "Doe"
},
"xdm:birthMonth": 1,
"xdm:birthDay": 3,
"xdm:birthYear": 1996,
"xdm:gender": "female"
},
"xdm:workAddress": {
"@id": "https://data.adobe.io/entities/address/123",
"xdm:primary": false,
"xdm:street1": "345 Park Ave",
"xdm:city": "San Jose",
"xdm:stateProvince": "US-CA",
"xdm:postalCode": "95110",
"xdm:country": "United States",
"xdm:countryCode": "US",
"schema:latitude": 37.3382,
"schema:longitude": 121.8863,
"xdm:status": "active",
"xdm:lastVerifiedDate": "2018-01-02"
},
"xdm:workEmail": {
"xdm:primary": false,
"xdm:address": "jsmith@xyzinc.com",
"xdm:label": "John Smith",
"xdm:type": "work",
"xdm:status": "active"
},
"xdm:mobilePhone": {
"xdm:primary": true,
"xdm:number": "1-408-888-8888",
"xdm:status": "active"
},
"xdm:optInOut": {
"https://ns.adobe.com/xdm/channels/email": "pending",
"https://ns.adobe.com/xdm/channels/phone": "out",
"https://ns.adobe.com/xdm/channels/sms": "in",
"https://ns.adobe.com/xdm/channels/fax": "not_provided",
"https://ns.adobe.com/xdm/channels/direct-mail": "not_provided",
"https://ns.adobe.com/xdm/channels/apns": "not_provided",
"xdm:globalOptout": false
},
"xdm:orgUnit": {
"@id": "https://data.adobe.io/org-apparals-men"
},
"xdm:geoUnit": {
"@id": "https://data.adobe.io/geo-france"
},
"xdm:segments": [
{
"xdm:segmentID": {
"@id":
"https://data.adobe.io/entities/segmentidentity/04a81716-43d6-4e7a-a49c-f1d8b3129ba9",
"xdm:namespace": {
"xdm:code": "AAM"
}
},
"xdm:version": "15",
"xdm:timestamp": "2018-04-26T15:52:25+00:00",
"xdm:validUntil": "2019-04-26T15:52:25+00:00",
"xdm:status": "existing"
},
{
"xdm:segmentID": {
"@id":
"https://data.adobe.io/entities/identity/53cba6b2-a23b-454a-8069-fc41308f1c0f",
"xdm:namespace": {
"xdm:code": "AAM"
}
},
"xdm:version": "3",
"xdm:lastQualificationTime": "2018-04-26T15:52:25+00:00",
"xdm:validUntil": "2018-04-27T15:52:25+00:00",
"xdm:status": "realized"
}
],
"xdm:syncedRemarketingAudiences": [
{
"xdm:segmentID":
"https://data.adobe.io/entities/segmentidentity/04a81716-43d6-4e7a-a49c-f1d8b3129ba9",
"xdm:segmentType": 3,
"xdm:timestamp": "2018-08-07T08:06:34.672Z",
"xdm:partnerDetails": [
{
"xdm:id": 2,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see comment on the schema for this.

"xdm:data": "sample-conversion-id-123"
},

{
"xdm:id": 1,
"xdm:data": "sample-conversion-id-124"
}
]
},
{
"xdm:segmentID":
"https://data.adobe.io/entities/segmentidentity/53cba6b2-a23b-454a-8069-fc41308f1c0f",
"xdm:segmentType": 3,
"xdm:timestamp": "2018-08-07T08:06:34.672Z",
"xdm:partnerDetails": [
{
"xdm:id": 2,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see comment on the schema for this.

"xdm:data": "sample-conversion-id-125"
},

{
"xdm:id": 1,
"xdm:data": "sample-conversion-id-126"
}
]
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
{
"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/"
],
"$schema": "http://json-schema.org/draft-06/schema#",
"$id": "https://ns.adobe.com/experience/adcloud/adcloudremarketingprofile",
"title": "Adobe AdCloud Search Profile Extension",
"type": "object",
"meta:extends": ["https://ns.adobe.com/xdm/context/profile"],
"description": "Adobe AdCloud Search extension to Profile",
"definitions": {
"adcloudremarketingprofile": {
"properties": {
"xdm:syncedRemarketingAudiences": {
"title": "Synchronized segments",
"type": "array",
"items": {
"$ref": "https://ns.adobe.com/experience/adcloud/syncedremarketingaudience"
},
"description": "List of Search retargeting entities"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is description is not helping me understand the actual way to use this, can it be improved please?

}
}
}
},
"allOf": [
{
"$ref": "https://ns.adobe.com/xdm/context/profile#/definitions/profile"
},
{
"$ref": "#/definitions/adcloudremarketingprofile"
}
],
"meta:status": "experimental"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"xdm:id": 2,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see comment on the schema for this.

"xdm:data": "sample-conversion-id-123"
}
38 changes: 38 additions & 0 deletions extensions/adobe/experience/adcloud/partnerdata.schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{
"meta:license": [
"Copyright 2018 Adobe Systems Incorporated. All rights reserved.",
"This work is licensed under a Creative Commons Attribution 4.0 International (CC BY 4.0) license",
"you may not use this file except in compliance with the License. You may obtain a copy",
"of the License at https://creativecommons.org/licenses/by/4.0/"
],
"$id": "https://ns.adobe.com/experience/adcloud/partnerdata",
"$schema": "http://json-schema.org/draft-06/schema#",
"title": "Adcloud partner data",
"type": "object",
"description":
"Details about AdCloud partners.",
"definitions": {
"partnerdata": {
"properties": {
"xdm:id": {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You cannot redefine the type of "xdm:id". It is already defined as a string https://github.com/adobe/xdm/blob/master/schemas/context/identity.schema.json

Please convert this to a string or define a different property.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

converted to string

"title": "Search/Marketing partner ID",
"type": "int",
"description":
"Internal mapping of search/marketing platforms/partners to IDs for Adcloud Search."
},
"xdm:data": {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this some sort of packed/complex multi value data value?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, We are planning to use it to store data such as conversion id/ conversion label that adCloud Search partner such as Google or Facebook will return. The conversion id is a unique identifier that is linked to a segment id. Also, we can use the same segment to create audiences on multiple partner platforms, hence this data-structure

"title": "Search/Marketing partner data associated with a segment",
"type": "string",
"description":
"Unique identifiers such conversion id (in case of Google) associated with the synced segment."
}
}
}
},
"allOf": [
{
"$ref": "#/definitions/partnerdata"
}
],
"meta:status": "experimental"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"xdm:segmentId": "https://data.adobe.io/entities/aam-segment/4238827",
"xdm:segmentType": 3,
"xdm:timestamp": "2018-08-07T08:06:34.672Z",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This timestamp might be better in partner details to signify when the sync happened with the partner since it could have happened for one and not the other

"xdm:partnerDetails": [
{
"xdm:id": 2,
"xdm:data": "sample-conversion-id-123"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the xdm:data seems like it should live elsewhere since this mapping between segment in AAM to external system like google for facebook is always the same from one AAM segment to one FB or Google Segment and divorced from the concept of when semgent was synced for an individual user

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You could structure this with partner details using segmemnt membership to store synced timestamp in the payload, but would need to repeat for each partner

},

{
"xdm:id": 1,
"xdm:data": "sample-conversion-id-124"
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
{
"meta:license": [
"Copyright 2018 Adobe Systems Incorporated. All rights reserved.",
"This work is licensed under a Creative Commons Attribution 4.0 International (CC BY 4.0) license",
"you may not use this file except in compliance with the License. You may obtain a copy",
"of the License at https://creativecommons.org/licenses/by/4.0/"
],
"$id": "https://ns.adobe.com/experience/adcloud/syncedremarketingaudience",
"$schema": "http://json-schema.org/draft-06/schema#",
"title": "Synchronized Remarketing Audiences",
"type": "object",
"description":
"Details about AdCloud Search segments used for retargeting surfers on a Search/Marketing platform.",
"definitions": {
"syncedremarketingaudience": {
"properties": {
"xdm:segmentID": {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not use SegmentIdentity here as the type?

"title": "Segment ID",
"type": "string",
"description":
"Id for the segment that would be used to retarget the surfer."
},
"xdm:type": {
"title": "Segment/Audience type",
"type": "int",
"description": "Type of segment, eg. AAM."
},
"xdm:timestamp": {
"title": "Timestamp",
"type": "string",
"format": "date-time",
"description":
"The timestamp when the retargeting entity, e.g. aam-segment, was sycned to the marketing platform."
},
"xdm:partnerDetails": {
"title": "Marketing Partner Details",
"type": "array",
"items": {
"$ref": "https://ns.adobe.com/xdm/experience/adcloud/partnerdata"
}
}
}
}
},
"allOf": [
{
"$ref": "#/definitions/syncedremarketingaudience"
}
],
"meta:status": "experimental"
}