Skip to content

Commit a6c55db

Browse files
committed
feat: sync schemas with ADCP 2.6 package updates
- Add impressions field to PackageRequest for impression goals - Add paused field to PackageRequest for creating packages in paused state - Add new property list management schemas for publisher property lists - Add extension metadata schemas - Add core/identifier.json and core/property-list-ref.json schemas - Update adagents, get-products, update-media-buy request/response schemas - Update enums: adcp-domain, task-type - Regenerate Python types from updated schemas
1 parent b625b85 commit a6c55db

File tree

223 files changed

+4330
-1905
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

223 files changed

+4330
-1905
lines changed

schemas/cache/.hashes.json

Lines changed: 34 additions & 10 deletions
Large diffs are not rendered by default.

schemas/cache/adagents.json

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,81 @@
218218
"name": "Example Third-Party Sales Agent"
219219
},
220220
"last_updated": "2025-01-10T17:00:00Z"
221+
},
222+
{
223+
"$schema": "/schemas/2.6.0/adagents.json",
224+
"authorized_agents": [
225+
{
226+
"authorization_type": "property_tags",
227+
"authorized_for": "All news properties",
228+
"property_tags": [
229+
"news"
230+
],
231+
"url": "https://sales.news.example.com"
232+
}
233+
],
234+
"contact": {
235+
"domain": "news.example.com",
236+
"email": "adops@news.example.com",
237+
"name": "Premium News Publisher"
238+
},
239+
"last_updated": "2025-01-10T18:00:00Z",
240+
"properties": [
241+
{
242+
"identifiers": [
243+
{
244+
"type": "domain",
245+
"value": "news.example.com"
246+
}
247+
],
248+
"name": "News Example",
249+
"property_type": "website",
250+
"publisher_domain": "news.example.com",
251+
"tags": [
252+
"premium",
253+
"news"
254+
]
255+
}
256+
],
257+
"property_features": [
258+
{
259+
"features": [
260+
"carbon_score",
261+
"sustainability_grade"
262+
],
263+
"name": "Scope3",
264+
"publisher_id": "pub_news_12345",
265+
"url": "https://api.scope3.com"
266+
},
267+
{
268+
"features": [
269+
"tag_certified_against_fraud",
270+
"tag_brand_safety_certified"
271+
],
272+
"name": "TAG",
273+
"url": "https://api.tagtoday.net"
274+
},
275+
{
276+
"features": [
277+
"gdpr_compliant",
278+
"tcf_registered",
279+
"ccpa_compliant"
280+
],
281+
"name": "OneTrust",
282+
"publisher_id": "ot_news_67890",
283+
"url": "https://api.onetrust.com"
284+
}
285+
],
286+
"tags": {
287+
"news": {
288+
"description": "News and journalism content",
289+
"name": "News Properties"
290+
},
291+
"premium": {
292+
"description": "High-quality, brand-safe properties",
293+
"name": "Premium Properties"
294+
}
295+
}
221296
}
222297
],
223298
"oneOf": [
@@ -460,6 +535,42 @@
460535
"minItems": 1,
461536
"type": "array"
462537
},
538+
"property_features": {
539+
"description": "[AdCP 3.0] Optional list of agents that provide property feature data (certifications, scores, compliance status). Used for discovery - actual data comes from querying the agent's get_property_features task.",
540+
"items": {
541+
"additionalProperties": true,
542+
"properties": {
543+
"features": {
544+
"description": "Feature IDs this agent provides (e.g., 'carbon_score', 'tag_certified_against_fraud'). Use list_property_features on the agent for full definitions.",
545+
"items": {
546+
"type": "string"
547+
},
548+
"minItems": 1,
549+
"type": "array"
550+
},
551+
"name": {
552+
"description": "Human-readable name of the vendor/agent (e.g., 'Scope3', 'TAG', 'OneTrust')",
553+
"type": "string"
554+
},
555+
"publisher_id": {
556+
"description": "Optional publisher identifier at this agent (for lookup)",
557+
"type": "string"
558+
},
559+
"url": {
560+
"description": "The agent's API endpoint URL (must implement get_property_features)",
561+
"format": "uri",
562+
"type": "string"
563+
}
564+
},
565+
"required": [
566+
"url",
567+
"name",
568+
"features"
569+
],
570+
"type": "object"
571+
},
572+
"type": "array"
573+
},
463574
"tags": {
464575
"additionalProperties": {
465576
"additionalProperties": true,

schemas/cache/core/identifier.json

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"$schema": "http://json-schema.org/draft-07/schema#",
3+
"additionalProperties": false,
4+
"description": "A property identifier with type and value. Used to identify properties across platforms (domains, app store IDs, etc.).",
5+
"properties": {
6+
"type": {
7+
"$ref": "../enums/identifier-types.json",
8+
"description": "Type of identifier"
9+
},
10+
"value": {
11+
"description": "The identifier value. For domain type: 'example.com' matches base domain plus www and m subdomains; 'edition.example.com' matches that specific subdomain; '*.example.com' matches ALL subdomains but NOT base domain",
12+
"type": "string"
13+
}
14+
},
15+
"required": [
16+
"type",
17+
"value"
18+
],
19+
"title": "Identifier",
20+
"type": "object"
21+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
{
2+
"$schema": "http://json-schema.org/draft-07/schema#",
3+
"additionalProperties": false,
4+
"description": "Reference to an externally managed property list. Enables passing large property sets (50,000+) without embedding them in requests. The receiving agent fetches and caches the list independently.",
5+
"properties": {
6+
"agent_url": {
7+
"description": "URL of the agent managing the property list",
8+
"format": "uri",
9+
"type": "string"
10+
},
11+
"auth_token": {
12+
"description": "JWT or other authorization token for accessing the list. Optional if the list is public or caller has implicit access.",
13+
"type": "string"
14+
},
15+
"list_id": {
16+
"description": "Identifier for the property list within the agent",
17+
"minLength": 1,
18+
"type": "string"
19+
}
20+
},
21+
"required": [
22+
"agent_url",
23+
"list_id"
24+
],
25+
"title": "Property List Reference",
26+
"type": "object"
27+
}

schemas/cache/creative/asset-types/index.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@
9191
},
9292
"baseUrl": "/schemas/2.6.0",
9393
"description": "Registry of asset types used in AdCP creative manifests. Each asset type defines the structure of actual content payloads (what you send), not requirements or constraints (which belong in format specifications).",
94-
"lastUpdated": "2026-01-07",
94+
"lastUpdated": "2026-01-13",
9595
"title": "AdCP Asset Type Registry",
9696
"usage_notes": {
9797
"creative_manifests": "Creative manifests provide actual asset content, keyed by asset_id from the format. Asset type is determined by the format specification, not declared in the payload.",

schemas/cache/enums/adcp-domain.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,16 @@
33
"description": "AdCP protocol domains for task categorization",
44
"enum": [
55
"media-buy",
6-
"signals"
6+
"signals",
7+
"governance",
8+
"creative"
79
],
10+
"enumDescriptions": {
11+
"creative": "Creative asset management, format discovery, and rendering",
12+
"governance": "Property governance (identity, authorization, data, selection), brand standards, and compliance",
13+
"media-buy": "Campaign creation, package management, and delivery optimization",
14+
"signals": "Audience signal discovery and activation"
15+
},
816
"title": "AdCP Domain",
917
"type": "string"
1018
}

schemas/cache/enums/task-type.json

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,30 @@
66
"update_media_buy",
77
"sync_creatives",
88
"activate_signal",
9-
"get_signals"
9+
"get_signals",
10+
"list_property_features",
11+
"create_property_list",
12+
"update_property_list",
13+
"get_property_list",
14+
"list_property_lists",
15+
"delete_property_list"
1016
],
1117
"enumDescriptions": {
1218
"activate_signal": "Signals domain: Activate an audience signal on a specific platform or account",
1319
"create_media_buy": "Media-buy domain: Create a new advertising campaign with one or more packages",
20+
"create_property_list": "Property domain: Create a new property list with filters and brand manifest",
21+
"delete_property_list": "Property domain: Delete a property list",
22+
"get_property_list": "Property domain: Retrieve a property list with resolved properties",
1423
"get_signals": "Signals domain: Discover available audience signals based on natural language description",
24+
"list_property_features": "Property domain: Discover what features a governance agent can evaluate",
25+
"list_property_lists": "Property domain: List all accessible property lists",
1526
"sync_creatives": "Media-buy domain: Sync creative assets to publisher's library with upsert semantics",
16-
"update_media_buy": "Media-buy domain: Update campaign settings, package configuration, or delivery parameters"
27+
"update_media_buy": "Media-buy domain: Update campaign settings, package configuration, or delivery parameters",
28+
"update_property_list": "Property domain: Update an existing property list"
1729
},
1830
"notes": [
1931
"Task types map to specific AdCP task operations",
20-
"Each task type belongs to either the 'media-buy' or 'signals' domain",
32+
"Each task type belongs to the 'media-buy', 'signals', 'property', or 'creative' domain",
2133
"This enum is used in task management APIs (tasks/list, tasks/get) and webhook payloads",
2234
"New task types require a minor version bump per semantic versioning"
2335
],
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
{
2+
"$schema": "http://json-schema.org/draft-07/schema#",
3+
"description": "Schema that all extension files must follow. Combines metadata (valid_from, docs_url) with the actual extension data schema. Extensions are auto-discovered from /schemas/extensions/*.json and included in versioned builds based on valid_from/valid_until.",
4+
"properties": {
5+
"$schema": {
6+
"const": "http://json-schema.org/draft-07/schema#",
7+
"type": "string"
8+
},
9+
"additionalProperties": {
10+
"description": "Whether additional properties are allowed in the extension data"
11+
},
12+
"description": {
13+
"description": "Description of what this extension provides",
14+
"type": "string"
15+
},
16+
"docs_url": {
17+
"description": "URL to documentation for implementors of this extension",
18+
"format": "uri",
19+
"type": "string"
20+
},
21+
"properties": {
22+
"additionalProperties": true,
23+
"description": "Schema properties defining the structure of ext.{namespace} data",
24+
"type": "object"
25+
},
26+
"required": {
27+
"description": "Required properties within the extension data",
28+
"items": {
29+
"type": "string"
30+
},
31+
"type": "array"
32+
},
33+
"title": {
34+
"description": "Human-readable title for the extension",
35+
"type": "string"
36+
},
37+
"type": {
38+
"const": "object",
39+
"description": "Extensions must be objects (data within ext.{namespace})"
40+
},
41+
"valid_from": {
42+
"description": "Minimum AdCP version this extension is compatible with (e.g., '2.5'). Extension will be included in all versioned schema builds >= this version.",
43+
"pattern": "^\\d+\\.\\d+$",
44+
"type": "string"
45+
},
46+
"valid_until": {
47+
"description": "Last AdCP version this extension is compatible with (e.g., '3.0'). Omit if extension is still valid for current and future versions.",
48+
"pattern": "^\\d+\\.\\d+$",
49+
"type": "string"
50+
}
51+
},
52+
"required": [
53+
"$schema",
54+
"$id",
55+
"title",
56+
"description",
57+
"valid_from",
58+
"type",
59+
"properties"
60+
],
61+
"title": "AdCP Extension File Schema",
62+
"type": "object"
63+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"$schema": "http://json-schema.org/draft-07/schema#",
3+
"_generated": true,
4+
"_generatedAt": "2026-01-13T23:32:36.210Z",
5+
"description": "Auto-generated registry of formal AdCP extensions. Extensions provide typed schemas for vendor-specific or domain-specific data within the ext field. Agents declare which extensions they support in their agent card.",
6+
"extensions": {},
7+
"title": "AdCP Extension Registry"
8+
}

schemas/cache/media-buy/get-products-request.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@
1919
},
2020
"filters": {
2121
"$ref": "../core/product-filters.json"
22+
},
23+
"property_list": {
24+
"$ref": "../core/property-list-ref.json",
25+
"description": "[AdCP 3.0] Reference to an externally managed property list. When provided, the sales agent should filter products to only those available on properties in the list."
2226
}
2327
},
2428
"required": [],

0 commit comments

Comments
 (0)