Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
48 changes: 27 additions & 21 deletions schemas/cache/.hashes.json

Large diffs are not rendered by default.

17 changes: 9 additions & 8 deletions schemas/cache/core/catalog.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
{
"$id": "/schemas/latest/core/catalog.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": true,
"description": "A typed data feed. Catalogs carry the items, locations, stock levels, or pricing that publishers use to render ads. They can be synced to a platform via sync_catalogs (managed lifecycle with approval), provided inline, or fetched from an external URL. The catalog type determines the item schema and can be structural (offering, product, inventory, store, promotion) or vertical-specific (hotel, flight, job, vehicle, real_estate, education, destination). Selectors (ids, tags, category, query) filter items regardless of sourcing method.",
"description": "A typed data feed. Catalogs carry the items, locations, stock levels, or pricing that publishers use to render ads. They can be synced to a platform via sync_catalogs (managed lifecycle with approval), provided inline, or fetched from an external URL. The catalog type determines the item schema and can be structural (offering, product, inventory, store, promotion) or vertical-specific (hotel, flight, job, vehicle, real_estate, education, destination, app). Selectors (ids, tags, category, query) filter items regardless of sourcing method.",
"examples": [
{
"data": {
Expand Down Expand Up @@ -133,20 +134,20 @@
"type": "string"
},
"content_id_type": {
"$ref": "../enums/content-id-type.json",
"$ref": "/schemas/latest/enums/content-id-type.json",
"description": "Identifier type that the event's content_ids field should be matched against for items in this catalog. For example, 'gtin' means content_ids values are Global Trade Item Numbers, 'sku' means retailer SKUs. Omit when using a custom identifier scheme not listed in the enum."
},
"conversion_events": {
"description": "Event types that represent conversions for items in this catalog. Declares what events the platform should attribute to catalog items \u2014 e.g., a job catalog converts via submit_application, a product catalog via purchase. The event's content_ids field carries the item IDs that connect back to catalog items. Use content_id_type to declare what identifier type content_ids values represent.",
"items": {
"$ref": "../enums/event-type.json"
"$ref": "/schemas/latest/enums/event-type.json"
},
"minItems": 1,
"type": "array",
"uniqueItems": true
},
"feed_format": {
"$ref": "../enums/feed-format.json",
"$ref": "/schemas/latest/enums/feed-format.json",
"description": "Format of the external feed at url. Required when url points to a non-AdCP feed (e.g., Google Merchant Center XML, Meta Product Catalog). Omit for offering-type catalogs where the feed is native AdCP JSON."
},
"gtins": {
Expand All @@ -167,7 +168,7 @@
"type": "array"
},
"items": {
"description": "Inline catalog data. The item schema depends on the catalog type: Offering objects for 'offering', StoreItem for 'store', HotelItem for 'hotel', FlightItem for 'flight', JobItem for 'job', VehicleItem for 'vehicle', RealEstateItem for 'real_estate', EducationItem for 'education', DestinationItem for 'destination', or freeform objects for 'product', 'inventory', and 'promotion'. Mutually exclusive with url \u2014 provide one or the other, not both. Implementations should validate items against the type-specific schema.",
"description": "Inline catalog data. The item schema depends on the catalog type: Offering objects for 'offering', StoreItem for 'store', HotelItem for 'hotel', FlightItem for 'flight', JobItem for 'job', VehicleItem for 'vehicle', RealEstateItem for 'real_estate', EducationItem for 'education', DestinationItem for 'destination', AppItem for 'app', or freeform objects for 'product', 'inventory', and 'promotion'. Mutually exclusive with url \u2014 provide one or the other, not both. Implementations should validate items against the type-specific schema.",
"items": {
"type": "object"
},
Expand All @@ -191,11 +192,11 @@
"type": "array"
},
"type": {
"$ref": "../enums/catalog-type.json",
"description": "Catalog type. Structural types: 'offering' (AdCP Offering objects), 'product' (ecommerce entries), 'inventory' (stock per location), 'store' (physical locations), 'promotion' (deals and pricing). Vertical types: 'hotel', 'flight', 'job', 'vehicle', 'real_estate', 'education', 'destination' \u2014 each with an industry-specific item schema."
"$ref": "/schemas/latest/enums/catalog-type.json",
"description": "Catalog type. Structural types: 'offering' (AdCP Offering objects), 'product' (ecommerce entries), 'inventory' (stock per location), 'store' (physical locations), 'promotion' (deals and pricing). Vertical types: 'hotel', 'flight', 'job', 'vehicle', 'real_estate', 'education', 'destination', 'app' \u2014 each with an industry-specific item schema."
},
"update_frequency": {
"$ref": "../enums/update-frequency.json",
"$ref": "/schemas/latest/enums/update-frequency.json",
"description": "How often the platform should re-fetch the feed from url. Only applicable when url is provided. Platforms may use this as a hint for polling schedules."
},
"url": {
Expand Down
17 changes: 9 additions & 8 deletions schemas/cache/core/media-buy.json
Original file line number Diff line number Diff line change
@@ -1,18 +1,19 @@
{
"$id": "/schemas/latest/core/media-buy.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": true,
"description": "Represents a purchased advertising campaign",
"properties": {
"account": {
"$ref": "account.json",
"$ref": "/schemas/latest/core/account.json",
"description": "Account billed for this media buy"
},
"buyer_ref": {
"description": "Buyer's reference identifier for this media buy",
"buyer_campaign_ref": {
"description": "Buyer's campaign reference label. Groups related operations under a single campaign for CRM and ad server correlation.",
"type": "string"
},
"campaign_ref": {
"description": "Buyer's campaign reference label. Groups related operations under a single campaign for CRM and ad server correlation.",
"buyer_ref": {
"description": "Buyer's reference identifier for this media buy",
"type": "string"
},
"created_at": {
Expand All @@ -26,7 +27,7 @@
"type": "string"
},
"ext": {
"$ref": "ext.json"
"$ref": "/schemas/latest/core/ext.json"
},
"media_buy_id": {
"description": "Publisher's unique identifier for the media buy",
Expand All @@ -35,12 +36,12 @@
"packages": {
"description": "Array of packages within this media buy",
"items": {
"$ref": "package.json"
"$ref": "/schemas/latest/core/package.json"
},
"type": "array"
},
"status": {
"$ref": "../enums/media-buy-status.json"
"$ref": "/schemas/latest/enums/media-buy-status.json"
},
"total_budget": {
"description": "Total budget amount",
Expand Down
15 changes: 8 additions & 7 deletions schemas/cache/core/package.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
{
"$id": "/schemas/latest/core/package.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": true,
"description": "A specific product within a media buy (line item)",
"properties": {
"bid_price": {
"description": "Bid price for auction-based CPM pricing (present if using cpm-auction-option)",
"description": "Bid price for auction-based pricing. This is the exact bid/price to honor unless the selected pricing option has max_bid=true, in which case bid_price is the buyer's maximum willingness to pay (ceiling).",
"minimum": 0,
"type": "number"
},
Expand All @@ -20,17 +21,17 @@
"creative_assignments": {
"description": "Creative assets assigned to this package",
"items": {
"$ref": "creative-assignment.json"
"$ref": "/schemas/latest/core/creative-assignment.json"
},
"type": "array"
},
"ext": {
"$ref": "ext.json"
"$ref": "/schemas/latest/core/ext.json"
},
"format_ids_to_provide": {
"description": "Format IDs that creative assets will be provided for this package",
"items": {
"$ref": "format-id.json"
"$ref": "/schemas/latest/core/format-id.json"
},
"type": "array"
},
Expand All @@ -40,10 +41,10 @@
"type": "number"
},
"optimization_goal": {
"$ref": "optimization-goal.json"
"$ref": "/schemas/latest/core/optimization-goal.json"
},
"pacing": {
"$ref": "../enums/pacing.json"
"$ref": "/schemas/latest/enums/pacing.json"
},
"package_id": {
"description": "Publisher's unique identifier for the package",
Expand All @@ -63,7 +64,7 @@
"type": "string"
},
"targeting_overlay": {
"$ref": "targeting.json"
"$ref": "/schemas/latest/core/targeting.json"
}
},
"required": [
Expand Down
21 changes: 11 additions & 10 deletions schemas/cache/core/pricing-option.json
Original file line number Diff line number Diff line change
@@ -1,33 +1,34 @@
{
"$id": "/schemas/latest/core/pricing-option.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "A pricing model option offered by a publisher for a product. Discriminated by pricing_model field. If fixed_price is present, it's fixed pricing. If absent, it's auction-based (floor_price and price_guidance optional).",
"description": "A pricing model option offered by a publisher for a product. Discriminated by pricing_model field. If fixed_price is present, it's fixed pricing. If absent, it's auction-based (floor_price and price_guidance optional). Bid-based auction models may also include max_bid as a boolean signal to interpret bid_price as a buyer ceiling instead of an exact honored price.",
"oneOf": [
{
"$ref": "../pricing-options/cpm-option.json"
"$ref": "/schemas/latest/pricing-options/cpm-option.json"
},
{
"$ref": "../pricing-options/vcpm-option.json"
"$ref": "/schemas/latest/pricing-options/vcpm-option.json"
},
{
"$ref": "../pricing-options/cpc-option.json"
"$ref": "/schemas/latest/pricing-options/cpc-option.json"
},
{
"$ref": "../pricing-options/cpcv-option.json"
"$ref": "/schemas/latest/pricing-options/cpcv-option.json"
},
{
"$ref": "../pricing-options/cpv-option.json"
"$ref": "/schemas/latest/pricing-options/cpv-option.json"
},
{
"$ref": "../pricing-options/cpp-option.json"
"$ref": "/schemas/latest/pricing-options/cpp-option.json"
},
{
"$ref": "../pricing-options/cpa-option.json"
"$ref": "/schemas/latest/pricing-options/cpa-option.json"
},
{
"$ref": "../pricing-options/flat-rate-option.json"
"$ref": "/schemas/latest/pricing-options/flat-rate-option.json"
},
{
"$ref": "../pricing-options/time-option.json"
"$ref": "/schemas/latest/pricing-options/time-option.json"
}
],
"title": "Pricing Option"
Expand Down
64 changes: 64 additions & 0 deletions schemas/cache/creative/creative-feature-result.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
{
"$id": "/schemas/latest/creative/creative-feature-result.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"description": "A single feature evaluation result for a creative. Uses the same value structure as property-feature-value (value, confidence, expires_at, etc.).",
"properties": {
"confidence": {
"description": "Confidence score for this value (0-1)",
"maximum": 1,
"minimum": 0,
"type": "number"
},
"details": {
"additionalProperties": true,
"description": "Additional vendor-specific details about this evaluation",
"type": "object"
},
"expires_at": {
"description": "When this evaluation expires and should be refreshed",
"format": "date-time",
"type": "string"
},
"ext": {
"$ref": "/schemas/latest/core/ext.json"
},
"feature_id": {
"description": "The feature that was evaluated (e.g., 'auto_redirect', 'brand_consistency', 'iab_casinos_gambling')",
"type": "string"
},
"measured_at": {
"description": "When this feature was evaluated",
"format": "date-time",
"type": "string"
},
"methodology_version": {
"description": "Version of the methodology used to evaluate this feature",
"type": "string"
},
"unit": {
"description": "Unit of measurement for quantitative values (e.g., 'percentage', 'score')",
"type": "string"
},
"value": {
"description": "The feature value. Type depends on feature definition: boolean for binary, number for quantitative, string for categorical.",
"oneOf": [
{
"type": "boolean"
},
{
"type": "number"
},
{
"type": "string"
}
]
}
},
"required": [
"feature_id",
"value"
],
"title": "Creative Feature Result",
"type": "object"
}
31 changes: 31 additions & 0 deletions schemas/cache/creative/get-creative-features-request.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
"$id": "/schemas/latest/creative/get-creative-features-request.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"description": "Request payload for get_creative_features task. Evaluates a creative manifest and returns feature values from a creative governance agent.",
"properties": {
"context": {
"$ref": "/schemas/latest/core/context.json"
},
"creative_manifest": {
"$ref": "/schemas/latest/core/creative-manifest.json",
"description": "The creative manifest to evaluate. Contains format_id and assets."
},
"ext": {
"$ref": "/schemas/latest/core/ext.json"
},
"feature_ids": {
"description": "Optional filter to specific features. If omitted, returns all available features.",
"items": {
"type": "string"
},
"minItems": 1,
"type": "array"
}
},
"required": [
"creative_manifest"
],
"title": "Get Creative Features Request",
"type": "object"
}
65 changes: 65 additions & 0 deletions schemas/cache/creative/get-creative-features-response.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
{
"$id": "/schemas/latest/creative/get-creative-features-response.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Response payload for get_creative_features task. Returns feature values for the evaluated creative.",
"oneOf": [
{
"description": "Success response",
"properties": {
"context": {
"$ref": "/schemas/latest/core/context.json"
},
"detail_url": {
"description": "URL to the vendor's full assessment report. The vendor controls what information is disclosed and access control.",
"format": "uri",
"type": "string"
},
"errors": {
"description": "Field must not be present in success response",
"not": {}
},
"ext": {
"$ref": "/schemas/latest/core/ext.json"
},
"results": {
"description": "Feature values for the evaluated creative",
"items": {
"$ref": "/schemas/latest/creative/creative-feature-result.json"
},
"type": "array"
}
},
"required": [
"results"
],
"type": "object"
},
{
"description": "Error response",
"properties": {
"context": {
"$ref": "/schemas/latest/core/context.json"
},
"errors": {
"items": {
"$ref": "/schemas/latest/core/error.json"
},
"type": "array"
},
"ext": {
"$ref": "/schemas/latest/core/ext.json"
},
"results": {
"description": "Field must not be present in error response",
"not": {}
}
},
"required": [
"errors"
],
"type": "object"
}
],
"title": "Get Creative Features Response",
"type": "object"
}
4 changes: 3 additions & 1 deletion schemas/cache/enums/catalog-type.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{
"$id": "/schemas/latest/enums/catalog-type.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "The type of catalog feed. Determines the item schema and how the platform resolves catalog items. Multiple catalog types can be synced to the same account and referenced together in creatives.",
"enum": [
Expand All @@ -13,7 +14,8 @@
"vehicle",
"real_estate",
"education",
"destination"
"destination",
"app"
],
"title": "Catalog Type",
"type": "string"
Expand Down
Loading