Skip to main content

Content Attestation of Online Ad Type

Terminology

For terms not explained in this document, please see Terminology.

  • Content Attestation (CA)

Online Ad Data Model

Property

Online Ad Properties

NameTypeDescription
@contextstring[]REQUIRED. It MUST follow the OP VC Data Model. In addition, the third value MUST be "https://originator-profile.org/ns/cip/v1".
typestring[]REQUIRED. It MUST be ["VerifiableCredential", "ContentAttestation"].
issuerstringREQUIRED. It MUST be the OP ID of the CA issuer.
credentialSubjectobjectREQUIRED. A JSON-LD Node Object containing the following credentialSubject properties.
allowedUrlstring | string[]REQUIRED. It is a property defined for Content Attestation. It MUST NOT be an empty array.
targetobject[]REQUIRED. It is a property defined for Content Attestation. It MUST NOT be an empty array.

credentialSubject Properties

Attention

The name, description, and image properties are each OPTIONAL, but at least one of the three MUST be included.

NameTypeDescription
idstringREQUIRED. MUST be a CA ID. CA ID is a UUIDv4 URN format string. There is a one-to-one correspondence between content and CA IDs.
typestringREQUIRED. It MUST be OnlineAd.
namestringOPTIONAL. It is the title of the ad.
descriptionstringOPTIONAL. It is ad description.
imageobjectOPTIONAL. It is a thumbnail image for the ad. It is RECOMMENDED that a thumbnail image be specified if one is available. It MUST be a JSON-LD Node Object of type image datatype. This property allows you to verify the CA.
genrestringOPTIONAL. Genre.
landingPageUrlstringOPTIONAL. The URL of the page (landing page) that is ultimately displayed when the ad is clicked.
adReportContactobjectOPTIONAL. Contact point for reporting ads. MUST be a JSON-LD Node Object of type page datatype.
adReviewGuidelinesobjectOPTIONAL. Information about ad review guidelines. MUST be a JSON-LD Node Object of type page datatype.
targetingPolicyobjectOPTIONAL. Policy regarding targeted advertising. MUST be a JSON-LD Node Object of type page datatype.
adDataHandlingPolicyobjectOPTIONAL. Information regarding the handling of information related to ad serving. MUST be a JSON-LD Node Object of type page.
adDisplayRationaleobjectOPTIONAL. A JSON-LD Node Object containing the following adDisplayRationale Properties.

adDisplayRationale Properties

NameTypeDescription
pageobjectOPTIONAL. The reason this ad is being displayed(web page). MUST be a JSON-LD Node Object of type page.
descriptionstringOPTIONAL. The reason this ad is being displayed.
note

The properties within credentialSubject were decided with reference to https://schema.org/CreativeWork. We plan to decide the extent to which we will comply with schema.org regarding the interpretation of each property and whether it is necessary or not, based on discussions with companies that use OP.

note

The definition of properties for advertisements other than image or banner ads is under consideration for future work.

Appendix

Example

This section is non-normative

Below is an example of Advertisement.

{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://originator-profile.org/ns/credentials/v1",
"https://originator-profile.org/ns/cip/v1",
{ "@language": "en" }
],
"type": ["VerifiableCredential", "ContentAttestation"],
"issuer": "dns:example.com",
"credentialSubject": {
"id": "urn:uuid:78550fa7-f846-4e0f-ad5c-8d34461cb95b",
"type": "OnlineAd",
"name": "<Title of Advertisement>",
"description": "<a description of Advertisement>",
"image": {
"id": "https://ad.example.com/image.png",
"digestSRI": "sha256-5uQVtkoRdTFbimAz3Wz5GQcuBRLt7tDMD5JRtGFo9/M="
},
"landingPageUrl": "https://advertiser.example.com",
"adReportContact": {
"id": "https://ad.example.com/contact",
"name": "Contact point for reporting ads"
},
"adReviewGuidelines": {
"id": "https://ad.example.com/guidelines",
"name": "Information about ad review guidelines"
},
"targetingPolicy": {
"id": "https://ad.example.com/targeting",
"name": "Policy regarding targeted advertising"
},
"adDataHandlingPolicy": {
"id": "https://ad.example.com/datahandling",
"name": "Information regarding the handling of information related to ad serving"
},
"adDisplayRationale": {
"page": {
"id": "https://ad.example.com/rationale",
"name": "The reason this ad is being displayed"
},
"description": "Because it's relevant to the content you're currently viewing."
}
},
"allowedUrl": ["https://ad.example.com/*"],
"target": [
{
"type": "ExternalResourceTargetIntegrity",
"integrity": "sha256-rLDPDYArkNcCvnq0h4IgR7MVfJIOCCrx4z+w+uywc64="
}
]
}