@adcp/sdk 6.0.0 → 6.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/dist/lib/core/AgentClient.d.ts.map +1 -1
  2. package/dist/lib/core/SingleAgentClient.d.ts.map +1 -1
  3. package/dist/lib/core/SingleAgentClient.js +12 -0
  4. package/dist/lib/core/SingleAgentClient.js.map +1 -1
  5. package/dist/lib/core/TaskExecutor.d.ts +14 -0
  6. package/dist/lib/core/TaskExecutor.d.ts.map +1 -1
  7. package/dist/lib/core/TaskExecutor.js +16 -0
  8. package/dist/lib/core/TaskExecutor.js.map +1 -1
  9. package/dist/lib/schemas-data/v2.5/_provenance.json +8 -0
  10. package/dist/lib/schemas-data/v2.5/adagents.json +494 -0
  11. package/dist/lib/schemas-data/v2.5/core/activation-key.json +50 -0
  12. package/dist/lib/schemas-data/v2.5/core/assets/audio-asset.json +32 -0
  13. package/dist/lib/schemas-data/v2.5/core/assets/css-asset.json +21 -0
  14. package/dist/lib/schemas-data/v2.5/core/assets/daast-asset.json +87 -0
  15. package/dist/lib/schemas-data/v2.5/core/assets/html-asset.json +21 -0
  16. package/dist/lib/schemas-data/v2.5/core/assets/image-asset.json +38 -0
  17. package/dist/lib/schemas-data/v2.5/core/assets/javascript-asset.json +21 -0
  18. package/dist/lib/schemas-data/v2.5/core/assets/markdown-asset.json +31 -0
  19. package/dist/lib/schemas-data/v2.5/core/assets/text-asset.json +21 -0
  20. package/dist/lib/schemas-data/v2.5/core/assets/url-asset.json +26 -0
  21. package/dist/lib/schemas-data/v2.5/core/assets/vast-asset.json +87 -0
  22. package/dist/lib/schemas-data/v2.5/core/assets/video-asset.json +44 -0
  23. package/dist/lib/schemas-data/v2.5/core/assets/webhook-asset.json +71 -0
  24. package/dist/lib/schemas-data/v2.5/core/async-response-data.json +88 -0
  25. package/dist/lib/schemas-data/v2.5/core/brand-manifest-ref.json +33 -0
  26. package/dist/lib/schemas-data/v2.5/core/brand-manifest.json +409 -0
  27. package/dist/lib/schemas-data/v2.5/core/context.json +8 -0
  28. package/dist/lib/schemas-data/v2.5/core/creative-asset.json +125 -0
  29. package/dist/lib/schemas-data/v2.5/core/creative-assignment.json +31 -0
  30. package/dist/lib/schemas-data/v2.5/core/creative-filters.json +111 -0
  31. package/dist/lib/schemas-data/v2.5/core/creative-manifest.json +72 -0
  32. package/dist/lib/schemas-data/v2.5/core/creative-policy.json +27 -0
  33. package/dist/lib/schemas-data/v2.5/core/delivery-metrics.json +171 -0
  34. package/dist/lib/schemas-data/v2.5/core/deployment.json +93 -0
  35. package/dist/lib/schemas-data/v2.5/core/destination.json +53 -0
  36. package/dist/lib/schemas-data/v2.5/core/error.json +40 -0
  37. package/dist/lib/schemas-data/v2.5/core/ext.json +8 -0
  38. package/dist/lib/schemas-data/v2.5/core/format-id.json +47 -0
  39. package/dist/lib/schemas-data/v2.5/core/format.json +324 -0
  40. package/dist/lib/schemas-data/v2.5/core/frequency-cap.json +18 -0
  41. package/dist/lib/schemas-data/v2.5/core/mcp-webhook-payload.json +152 -0
  42. package/dist/lib/schemas-data/v2.5/core/measurement.json +48 -0
  43. package/dist/lib/schemas-data/v2.5/core/media-buy.json +62 -0
  44. package/dist/lib/schemas-data/v2.5/core/package.json +72 -0
  45. package/dist/lib/schemas-data/v2.5/core/performance-feedback.json +90 -0
  46. package/dist/lib/schemas-data/v2.5/core/placement.json +34 -0
  47. package/dist/lib/schemas-data/v2.5/core/pricing-option.json +35 -0
  48. package/dist/lib/schemas-data/v2.5/core/product-filters.json +102 -0
  49. package/dist/lib/schemas-data/v2.5/core/product.json +153 -0
  50. package/dist/lib/schemas-data/v2.5/core/promoted-offerings.json +115 -0
  51. package/dist/lib/schemas-data/v2.5/core/promoted-products.json +67 -0
  52. package/dist/lib/schemas-data/v2.5/core/property-id.json +14 -0
  53. package/dist/lib/schemas-data/v2.5/core/property-tag.json +16 -0
  54. package/dist/lib/schemas-data/v2.5/core/property.json +62 -0
  55. package/dist/lib/schemas-data/v2.5/core/protocol-envelope.json +146 -0
  56. package/dist/lib/schemas-data/v2.5/core/publisher-property-selector.json +92 -0
  57. package/dist/lib/schemas-data/v2.5/core/push-notification-config.json +48 -0
  58. package/dist/lib/schemas-data/v2.5/core/reporting-capabilities.json +71 -0
  59. package/dist/lib/schemas-data/v2.5/core/response.json +24 -0
  60. package/dist/lib/schemas-data/v2.5/core/signal-filters.json +35 -0
  61. package/dist/lib/schemas-data/v2.5/core/start-timing.json +18 -0
  62. package/dist/lib/schemas-data/v2.5/core/sub-asset.json +79 -0
  63. package/dist/lib/schemas-data/v2.5/core/targeting.json +50 -0
  64. package/dist/lib/schemas-data/v2.5/core/tasks-get-request.json +43 -0
  65. package/dist/lib/schemas-data/v2.5/core/tasks-get-response.json +166 -0
  66. package/dist/lib/schemas-data/v2.5/core/tasks-list-request.json +192 -0
  67. package/dist/lib/schemas-data/v2.5/core/tasks-list-response.json +183 -0
  68. package/dist/lib/schemas-data/v2.5/creative/asset-types/index.json +101 -0
  69. package/dist/lib/schemas-data/v2.5/creative/list-creative-formats-request.json +73 -0
  70. package/dist/lib/schemas-data/v2.5/creative/list-creative-formats-response.json +61 -0
  71. package/dist/lib/schemas-data/v2.5/creative/preview-creative-request.json +164 -0
  72. package/dist/lib/schemas-data/v2.5/creative/preview-creative-response.json +245 -0
  73. package/dist/lib/schemas-data/v2.5/creative/preview-render.json +225 -0
  74. package/dist/lib/schemas-data/v2.5/enums/adcp-domain.json +11 -0
  75. package/dist/lib/schemas-data/v2.5/enums/asset-content-type.json +22 -0
  76. package/dist/lib/schemas-data/v2.5/enums/auth-scheme.json +11 -0
  77. package/dist/lib/schemas-data/v2.5/enums/available-metric.json +18 -0
  78. package/dist/lib/schemas-data/v2.5/enums/channels.json +18 -0
  79. package/dist/lib/schemas-data/v2.5/enums/co-branding-requirement.json +12 -0
  80. package/dist/lib/schemas-data/v2.5/enums/creative-action.json +14 -0
  81. package/dist/lib/schemas-data/v2.5/enums/creative-agent-capability.json +13 -0
  82. package/dist/lib/schemas-data/v2.5/enums/creative-sort-field.json +15 -0
  83. package/dist/lib/schemas-data/v2.5/enums/creative-status.json +19 -0
  84. package/dist/lib/schemas-data/v2.5/enums/daast-tracking-event.json +20 -0
  85. package/dist/lib/schemas-data/v2.5/enums/daast-version.json +11 -0
  86. package/dist/lib/schemas-data/v2.5/enums/delivery-type.json +15 -0
  87. package/dist/lib/schemas-data/v2.5/enums/dimension-unit.json +13 -0
  88. package/dist/lib/schemas-data/v2.5/enums/feed-format.json +12 -0
  89. package/dist/lib/schemas-data/v2.5/enums/feedback-source.json +13 -0
  90. package/dist/lib/schemas-data/v2.5/enums/format-category.json +16 -0
  91. package/dist/lib/schemas-data/v2.5/enums/format-id-parameter.json +11 -0
  92. package/dist/lib/schemas-data/v2.5/enums/frequency-cap-scope.json +13 -0
  93. package/dist/lib/schemas-data/v2.5/enums/history-entry-type.json +11 -0
  94. package/dist/lib/schemas-data/v2.5/enums/http-method.json +11 -0
  95. package/dist/lib/schemas-data/v2.5/enums/identifier-types.json +34 -0
  96. package/dist/lib/schemas-data/v2.5/enums/javascript-module-type.json +12 -0
  97. package/dist/lib/schemas-data/v2.5/enums/landing-page-requirement.json +12 -0
  98. package/dist/lib/schemas-data/v2.5/enums/markdown-flavor.json +11 -0
  99. package/dist/lib/schemas-data/v2.5/enums/media-buy-status.json +19 -0
  100. package/dist/lib/schemas-data/v2.5/enums/metric-type.json +17 -0
  101. package/dist/lib/schemas-data/v2.5/enums/notification-type.json +13 -0
  102. package/dist/lib/schemas-data/v2.5/enums/pacing.json +17 -0
  103. package/dist/lib/schemas-data/v2.5/enums/preview-output-format.json +11 -0
  104. package/dist/lib/schemas-data/v2.5/enums/pricing-model.json +25 -0
  105. package/dist/lib/schemas-data/v2.5/enums/property-type.json +16 -0
  106. package/dist/lib/schemas-data/v2.5/enums/publisher-identifier-types.json +19 -0
  107. package/dist/lib/schemas-data/v2.5/enums/reporting-frequency.json +12 -0
  108. package/dist/lib/schemas-data/v2.5/enums/signal-catalog-type.json +12 -0
  109. package/dist/lib/schemas-data/v2.5/enums/sort-direction.json +11 -0
  110. package/dist/lib/schemas-data/v2.5/enums/standard-format-ids.json +103 -0
  111. package/dist/lib/schemas-data/v2.5/enums/task-status.json +29 -0
  112. package/dist/lib/schemas-data/v2.5/enums/task-type.json +27 -0
  113. package/dist/lib/schemas-data/v2.5/enums/update-frequency.json +13 -0
  114. package/dist/lib/schemas-data/v2.5/enums/url-asset-type.json +12 -0
  115. package/dist/lib/schemas-data/v2.5/enums/validation-mode.json +11 -0
  116. package/dist/lib/schemas-data/v2.5/enums/vast-tracking-event.json +25 -0
  117. package/dist/lib/schemas-data/v2.5/enums/vast-version.json +14 -0
  118. package/dist/lib/schemas-data/v2.5/enums/webhook-response-type.json +13 -0
  119. package/dist/lib/schemas-data/v2.5/enums/webhook-security-method.json +12 -0
  120. package/dist/lib/schemas-data/v2.5/index.json +604 -0
  121. package/dist/lib/schemas-data/v2.5/media-buy/build-creative-request.json +31 -0
  122. package/dist/lib/schemas-data/v2.5/media-buy/build-creative-response.json +65 -0
  123. package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-async-response-input-required.json +31 -0
  124. package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-async-response-submitted.json +16 -0
  125. package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-async-response-working.json +36 -0
  126. package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-request.json +126 -0
  127. package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-response.json +97 -0
  128. package/dist/lib/schemas-data/v2.5/media-buy/get-media-buy-delivery-request.json +54 -0
  129. package/dist/lib/schemas-data/v2.5/media-buy/get-media-buy-delivery-response.json +285 -0
  130. package/dist/lib/schemas-data/v2.5/media-buy/get-products-async-response-input-required.json +38 -0
  131. package/dist/lib/schemas-data/v2.5/media-buy/get-products-async-response-submitted.json +21 -0
  132. package/dist/lib/schemas-data/v2.5/media-buy/get-products-async-response-working.json +34 -0
  133. package/dist/lib/schemas-data/v2.5/media-buy/get-products-request.json +28 -0
  134. package/dist/lib/schemas-data/v2.5/media-buy/get-products-response.json +33 -0
  135. package/dist/lib/schemas-data/v2.5/media-buy/list-authorized-properties-request.json +26 -0
  136. package/dist/lib/schemas-data/v2.5/media-buy/list-authorized-properties-response.json +70 -0
  137. package/dist/lib/schemas-data/v2.5/media-buy/list-creative-formats-request.json +58 -0
  138. package/dist/lib/schemas-data/v2.5/media-buy/list-creative-formats-response.json +61 -0
  139. package/dist/lib/schemas-data/v2.5/media-buy/list-creatives-request.json +137 -0
  140. package/dist/lib/schemas-data/v2.5/media-buy/list-creatives-response.json +437 -0
  141. package/dist/lib/schemas-data/v2.5/media-buy/package-request.json +80 -0
  142. package/dist/lib/schemas-data/v2.5/media-buy/provide-performance-feedback-request.json +88 -0
  143. package/dist/lib/schemas-data/v2.5/media-buy/provide-performance-feedback-response.json +66 -0
  144. package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-async-response-input-required.json +25 -0
  145. package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-async-response-submitted.json +16 -0
  146. package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-async-response-working.json +46 -0
  147. package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-request.json +178 -0
  148. package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-response.json +149 -0
  149. package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-async-response-input-required.json +24 -0
  150. package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-async-response-submitted.json +16 -0
  151. package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-async-response-working.json +36 -0
  152. package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-request.json +129 -0
  153. package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-response.json +99 -0
  154. package/dist/lib/schemas-data/v2.5/pricing-options/cpc-option.json +52 -0
  155. package/dist/lib/schemas-data/v2.5/pricing-options/cpcv-option.json +52 -0
  156. package/dist/lib/schemas-data/v2.5/pricing-options/cpm-auction-option.json +81 -0
  157. package/dist/lib/schemas-data/v2.5/pricing-options/cpm-fixed-option.json +52 -0
  158. package/dist/lib/schemas-data/v2.5/pricing-options/cpp-option.json +73 -0
  159. package/dist/lib/schemas-data/v2.5/pricing-options/cpv-option.json +88 -0
  160. package/dist/lib/schemas-data/v2.5/pricing-options/flat-rate-option.json +93 -0
  161. package/dist/lib/schemas-data/v2.5/pricing-options/vcpm-auction-option.json +81 -0
  162. package/dist/lib/schemas-data/v2.5/pricing-options/vcpm-fixed-option.json +52 -0
  163. package/dist/lib/schemas-data/v2.5/protocols/adcp-extension.json +33 -0
  164. package/dist/lib/schemas-data/v2.5/signals/activate-signal-request.json +32 -0
  165. package/dist/lib/schemas-data/v2.5/signals/activate-signal-response.json +68 -0
  166. package/dist/lib/schemas-data/v2.5/signals/get-signals-request.json +59 -0
  167. package/dist/lib/schemas-data/v2.5/signals/get-signals-response.json +100 -0
  168. package/dist/lib/server/create-adcp-server.d.ts.map +1 -1
  169. package/dist/lib/server/create-adcp-server.js +40 -25
  170. package/dist/lib/server/create-adcp-server.js.map +1 -1
  171. package/dist/lib/testing/storyboard/runner.d.ts.map +1 -1
  172. package/dist/lib/testing/storyboard/runner.js +107 -26
  173. package/dist/lib/testing/storyboard/runner.js.map +1 -1
  174. package/dist/lib/utils/creative-adapter.d.ts +32 -2
  175. package/dist/lib/utils/creative-adapter.d.ts.map +1 -1
  176. package/dist/lib/utils/creative-adapter.js +42 -6
  177. package/dist/lib/utils/creative-adapter.js.map +1 -1
  178. package/dist/lib/validation/schema-loader.d.ts.map +1 -1
  179. package/dist/lib/validation/schema-loader.js +20 -2
  180. package/dist/lib/validation/schema-loader.js.map +1 -1
  181. package/dist/lib/version.d.ts +3 -3
  182. package/dist/lib/version.js +3 -3
  183. package/package.json +7 -5
@@ -0,0 +1,409 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "/schemas/core/brand-manifest.json",
4
+ "title": "Brand Manifest",
5
+ "description": "Standardized brand information manifest for creative generation and media buying. Enables low-friction creative workflows by providing brand context that can be easily cached and shared across requests.",
6
+ "type": "object",
7
+ "properties": {
8
+ "url": {
9
+ "type": "string",
10
+ "format": "uri",
11
+ "description": "Primary brand URL for context and asset discovery. Creative agents can infer brand information from this URL."
12
+ },
13
+ "name": {
14
+ "type": "string",
15
+ "description": "Brand or business name"
16
+ },
17
+ "logos": {
18
+ "type": "array",
19
+ "description": "Brand logo assets with semantic tags for different use cases",
20
+ "items": {
21
+ "type": "object",
22
+ "properties": {
23
+ "url": {
24
+ "type": "string",
25
+ "format": "uri",
26
+ "description": "URL to the logo asset"
27
+ },
28
+ "tags": {
29
+ "type": "array",
30
+ "description": "Semantic tags describing the logo variant (e.g., 'dark', 'light', 'square', 'horizontal', 'icon')",
31
+ "items": {
32
+ "type": "string"
33
+ }
34
+ },
35
+ "width": {
36
+ "type": "integer",
37
+ "description": "Logo width in pixels"
38
+ },
39
+ "height": {
40
+ "type": "integer",
41
+ "description": "Logo height in pixels"
42
+ }
43
+ },
44
+ "required": [
45
+ "url"
46
+ ]
47
+ }
48
+ },
49
+ "colors": {
50
+ "type": "object",
51
+ "description": "Brand color palette",
52
+ "properties": {
53
+ "primary": {
54
+ "type": "string",
55
+ "pattern": "^#[0-9A-Fa-f]{6}$",
56
+ "description": "Primary brand color (hex format)"
57
+ },
58
+ "secondary": {
59
+ "type": "string",
60
+ "pattern": "^#[0-9A-Fa-f]{6}$",
61
+ "description": "Secondary brand color (hex format)"
62
+ },
63
+ "accent": {
64
+ "type": "string",
65
+ "pattern": "^#[0-9A-Fa-f]{6}$",
66
+ "description": "Accent color (hex format)"
67
+ },
68
+ "background": {
69
+ "type": "string",
70
+ "pattern": "^#[0-9A-Fa-f]{6}$",
71
+ "description": "Background color (hex format)"
72
+ },
73
+ "text": {
74
+ "type": "string",
75
+ "pattern": "^#[0-9A-Fa-f]{6}$",
76
+ "description": "Text color (hex format)"
77
+ }
78
+ }
79
+ },
80
+ "fonts": {
81
+ "type": "object",
82
+ "description": "Brand typography guidelines",
83
+ "properties": {
84
+ "primary": {
85
+ "type": "string",
86
+ "description": "Primary font family name"
87
+ },
88
+ "secondary": {
89
+ "type": "string",
90
+ "description": "Secondary font family name"
91
+ },
92
+ "font_urls": {
93
+ "type": "array",
94
+ "description": "URLs to web font files if using custom fonts",
95
+ "items": {
96
+ "type": "string",
97
+ "format": "uri"
98
+ }
99
+ }
100
+ }
101
+ },
102
+ "tone": {
103
+ "type": "string",
104
+ "description": "Brand voice and messaging tone (e.g., 'professional', 'casual', 'humorous', 'trustworthy', 'innovative')"
105
+ },
106
+ "tagline": {
107
+ "type": "string",
108
+ "description": "Brand tagline or slogan"
109
+ },
110
+ "assets": {
111
+ "type": "array",
112
+ "description": "Brand asset library with explicit assets and tags. Assets are referenced inline with URLs pointing to CDN-hosted files.",
113
+ "items": {
114
+ "type": "object",
115
+ "properties": {
116
+ "asset_id": {
117
+ "type": "string",
118
+ "description": "Unique identifier for this asset"
119
+ },
120
+ "asset_type": {
121
+ "$ref": "/schemas/enums/asset-content-type.json",
122
+ "description": "Type of asset. Note: Brand manifests typically contain basic media assets (image, video, audio, text). Code assets (html, javascript, css) and ad markup (vast, daast) are usually not part of brand asset libraries."
123
+ },
124
+ "url": {
125
+ "type": "string",
126
+ "format": "uri",
127
+ "description": "URL to CDN-hosted asset file"
128
+ },
129
+ "tags": {
130
+ "type": "array",
131
+ "description": "Tags for asset discovery (e.g., 'holiday', 'lifestyle', 'product_shot')",
132
+ "items": {
133
+ "type": "string"
134
+ }
135
+ },
136
+ "name": {
137
+ "type": "string",
138
+ "description": "Human-readable asset name"
139
+ },
140
+ "description": {
141
+ "type": "string",
142
+ "description": "Asset description or usage notes"
143
+ },
144
+ "width": {
145
+ "type": "integer",
146
+ "description": "Image/video width in pixels"
147
+ },
148
+ "height": {
149
+ "type": "integer",
150
+ "description": "Image/video height in pixels"
151
+ },
152
+ "duration_seconds": {
153
+ "type": "number",
154
+ "description": "Video/audio duration in seconds"
155
+ },
156
+ "file_size_bytes": {
157
+ "type": "integer",
158
+ "description": "File size in bytes"
159
+ },
160
+ "format": {
161
+ "type": "string",
162
+ "description": "File format (e.g., 'jpg', 'mp4', 'mp3')"
163
+ },
164
+ "metadata": {
165
+ "type": "object",
166
+ "description": "Additional asset-specific metadata",
167
+ "additionalProperties": true
168
+ }
169
+ },
170
+ "required": [
171
+ "asset_id",
172
+ "asset_type",
173
+ "url"
174
+ ],
175
+ "additionalProperties": true
176
+ }
177
+ },
178
+ "product_catalog": {
179
+ "type": "object",
180
+ "description": "Product catalog information for e-commerce advertisers. Enables SKU-level creative generation and product selection.",
181
+ "properties": {
182
+ "feed_url": {
183
+ "type": "string",
184
+ "format": "uri",
185
+ "description": "URL to product catalog feed"
186
+ },
187
+ "feed_format": {
188
+ "type": "string",
189
+ "enum": [
190
+ "google_merchant_center",
191
+ "facebook_catalog",
192
+ "custom"
193
+ ],
194
+ "default": "google_merchant_center",
195
+ "description": "Format of the product feed"
196
+ },
197
+ "categories": {
198
+ "type": "array",
199
+ "description": "Product categories available in the catalog (for filtering)",
200
+ "items": {
201
+ "type": "string"
202
+ }
203
+ },
204
+ "last_updated": {
205
+ "type": "string",
206
+ "format": "date-time",
207
+ "description": "When the product catalog was last updated"
208
+ },
209
+ "update_frequency": {
210
+ "type": "string",
211
+ "enum": [
212
+ "realtime",
213
+ "hourly",
214
+ "daily",
215
+ "weekly"
216
+ ],
217
+ "description": "How frequently the product catalog is updated"
218
+ }
219
+ },
220
+ "required": [
221
+ "feed_url"
222
+ ],
223
+ "additionalProperties": true
224
+ },
225
+ "disclaimers": {
226
+ "type": "array",
227
+ "description": "Legal disclaimers or required text that must appear in creatives",
228
+ "items": {
229
+ "type": "object",
230
+ "properties": {
231
+ "text": {
232
+ "type": "string",
233
+ "description": "Disclaimer text"
234
+ },
235
+ "context": {
236
+ "type": "string",
237
+ "description": "When this disclaimer applies (e.g., 'financial_products', 'health_claims', 'all')"
238
+ },
239
+ "required": {
240
+ "type": "boolean",
241
+ "description": "Whether this disclaimer must appear",
242
+ "default": true
243
+ }
244
+ },
245
+ "required": [
246
+ "text"
247
+ ]
248
+ }
249
+ },
250
+ "industry": {
251
+ "type": "string",
252
+ "description": "Industry or vertical (e.g., 'retail', 'automotive', 'finance', 'healthcare')"
253
+ },
254
+ "target_audience": {
255
+ "type": "string",
256
+ "description": "Primary target audience description"
257
+ },
258
+ "contact": {
259
+ "type": "object",
260
+ "description": "Brand contact information",
261
+ "properties": {
262
+ "email": {
263
+ "type": "string",
264
+ "format": "email",
265
+ "description": "Contact email"
266
+ },
267
+ "phone": {
268
+ "type": "string",
269
+ "description": "Contact phone number"
270
+ }
271
+ }
272
+ },
273
+ "metadata": {
274
+ "type": "object",
275
+ "description": "Additional brand metadata",
276
+ "properties": {
277
+ "created_date": {
278
+ "type": "string",
279
+ "format": "date-time",
280
+ "description": "When this brand manifest was created"
281
+ },
282
+ "updated_date": {
283
+ "type": "string",
284
+ "format": "date-time",
285
+ "description": "When this brand manifest was last updated"
286
+ },
287
+ "version": {
288
+ "type": "string",
289
+ "description": "Brand card version number"
290
+ }
291
+ }
292
+ }
293
+ },
294
+ "required": [
295
+ "name"
296
+ ],
297
+ "additionalProperties": true,
298
+ "examples": [
299
+ {
300
+ "description": "Example with both URL and name",
301
+ "data": {
302
+ "url": "https://bobsfunburgers.com",
303
+ "name": "Bob's Fun Burgers"
304
+ }
305
+ },
306
+ {
307
+ "description": "Example: white-label brand without dedicated URL",
308
+ "data": {
309
+ "name": "Great Value",
310
+ "colors": {
311
+ "primary": "#0071CE",
312
+ "secondary": "#FFC220"
313
+ },
314
+ "tone": "affordable and trustworthy"
315
+ }
316
+ },
317
+ {
318
+ "description": "Full brand manifest with all fields",
319
+ "data": {
320
+ "url": "https://acmecorp.com",
321
+ "name": "ACME Corporation",
322
+ "logos": [
323
+ {
324
+ "url": "https://cdn.acmecorp.com/logo-square-dark.png",
325
+ "tags": [
326
+ "dark",
327
+ "square"
328
+ ],
329
+ "width": 512,
330
+ "height": 512
331
+ },
332
+ {
333
+ "url": "https://cdn.acmecorp.com/logo-horizontal-light.png",
334
+ "tags": [
335
+ "light",
336
+ "horizontal"
337
+ ],
338
+ "width": 1200,
339
+ "height": 400
340
+ }
341
+ ],
342
+ "colors": {
343
+ "primary": "#FF6B35",
344
+ "secondary": "#004E89",
345
+ "accent": "#F7931E",
346
+ "background": "#FFFFFF",
347
+ "text": "#1A1A1A"
348
+ },
349
+ "fonts": {
350
+ "primary": "Helvetica Neue",
351
+ "secondary": "Georgia"
352
+ },
353
+ "tone": "professional and trustworthy",
354
+ "tagline": "Innovation You Can Trust",
355
+ "assets": [
356
+ {
357
+ "asset_id": "hero_winter_2024",
358
+ "asset_type": "image",
359
+ "url": "https://cdn.acmecorp.com/hero-winter-2024.jpg",
360
+ "tags": [
361
+ "hero",
362
+ "winter",
363
+ "holiday",
364
+ "lifestyle"
365
+ ],
366
+ "name": "Winter Campaign Hero",
367
+ "width": 1920,
368
+ "height": 1080,
369
+ "format": "jpg"
370
+ },
371
+ {
372
+ "asset_id": "product_video_30s",
373
+ "asset_type": "video",
374
+ "url": "https://cdn.acmecorp.com/product-demo-30s.mp4",
375
+ "tags": [
376
+ "product",
377
+ "demo",
378
+ "30s"
379
+ ],
380
+ "name": "Product Demo 30 Second",
381
+ "width": 1920,
382
+ "height": 1080,
383
+ "duration_seconds": 30,
384
+ "format": "mp4"
385
+ }
386
+ ],
387
+ "product_catalog": {
388
+ "feed_url": "https://acmecorp.com/products.xml",
389
+ "feed_format": "google_merchant_center",
390
+ "categories": [
391
+ "electronics/computers",
392
+ "electronics/accessories"
393
+ ],
394
+ "last_updated": "2024-03-15T10:00:00Z",
395
+ "update_frequency": "hourly"
396
+ },
397
+ "disclaimers": [
398
+ {
399
+ "text": "Results may vary. Consult a professional before use.",
400
+ "context": "health_claims",
401
+ "required": true
402
+ }
403
+ ],
404
+ "industry": "technology",
405
+ "target_audience": "business decision-makers aged 35-55"
406
+ }
407
+ }
408
+ ]
409
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "/schemas/core/context.json",
4
+ "title": "Context Object",
5
+ "description": "Opaque correlation data that is echoed unchanged in responses. Used for internal tracking, UI session IDs, trace IDs, and other caller-specific identifiers that don't affect protocol behavior. Context data is never parsed by AdCP agents - it's simply preserved and returned.",
6
+ "type": "object",
7
+ "additionalProperties": true
8
+ }
@@ -0,0 +1,125 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "/schemas/core/creative-asset.json",
4
+ "title": "Creative Asset",
5
+ "description": "Creative asset for upload to library - supports static assets, generative formats, and third-party snippets",
6
+ "type": "object",
7
+ "properties": {
8
+ "creative_id": {
9
+ "type": "string",
10
+ "description": "Unique identifier for the creative"
11
+ },
12
+ "name": {
13
+ "type": "string",
14
+ "description": "Human-readable creative name"
15
+ },
16
+ "format_id": {
17
+ "$ref": "/schemas/core/format-id.json",
18
+ "description": "Format identifier specifying which format this creative conforms to. Can be: (1) concrete format_id referencing a format with fixed dimensions, (2) template format_id referencing a template format, or (3) parameterized format_id with dimensions/duration parameters for template formats."
19
+ },
20
+ "assets": {
21
+ "type": "object",
22
+ "description": "Assets required by the format, keyed by asset_role",
23
+ "patternProperties": {
24
+ "^[a-zA-Z0-9_-]+$": {
25
+ "oneOf": [
26
+ {
27
+ "$ref": "/schemas/core/assets/image-asset.json"
28
+ },
29
+ {
30
+ "$ref": "/schemas/core/assets/video-asset.json"
31
+ },
32
+ {
33
+ "$ref": "/schemas/core/assets/audio-asset.json"
34
+ },
35
+ {
36
+ "$ref": "/schemas/core/assets/text-asset.json"
37
+ },
38
+ {
39
+ "$ref": "/schemas/core/assets/html-asset.json"
40
+ },
41
+ {
42
+ "$ref": "/schemas/core/assets/css-asset.json"
43
+ },
44
+ {
45
+ "$ref": "/schemas/core/assets/javascript-asset.json"
46
+ },
47
+ {
48
+ "$ref": "/schemas/core/assets/vast-asset.json"
49
+ },
50
+ {
51
+ "$ref": "/schemas/core/assets/daast-asset.json"
52
+ },
53
+ {
54
+ "$ref": "/schemas/core/promoted-offerings.json"
55
+ },
56
+ {
57
+ "$ref": "/schemas/core/assets/url-asset.json"
58
+ }
59
+ ]
60
+ }
61
+ },
62
+ "additionalProperties": true
63
+ },
64
+ "inputs": {
65
+ "type": "array",
66
+ "description": "Preview contexts for generative formats - defines what scenarios to generate previews for",
67
+ "items": {
68
+ "type": "object",
69
+ "properties": {
70
+ "name": {
71
+ "type": "string",
72
+ "description": "Human-readable name for this preview variant"
73
+ },
74
+ "macros": {
75
+ "type": "object",
76
+ "description": "Macro values to apply for this preview",
77
+ "additionalProperties": {
78
+ "type": "string"
79
+ }
80
+ },
81
+ "context_description": {
82
+ "type": "string",
83
+ "description": "Natural language description of the context for AI-generated content"
84
+ }
85
+ },
86
+ "required": [
87
+ "name"
88
+ ],
89
+ "additionalProperties": true
90
+ }
91
+ },
92
+ "tags": {
93
+ "type": "array",
94
+ "description": "User-defined tags for organization and searchability",
95
+ "items": {
96
+ "type": "string"
97
+ }
98
+ },
99
+ "approved": {
100
+ "type": "boolean",
101
+ "description": "For generative creatives: set to true to approve and finalize, false to request regeneration with updated assets/message. Omit for non-generative creatives."
102
+ },
103
+ "weight": {
104
+ "type": "number",
105
+ "description": "Optional delivery weight for creative rotation when uploading via create_media_buy or update_media_buy (0-100). If omitted, platform determines rotation. Only used during upload to media buy - not stored in creative library.",
106
+ "minimum": 0,
107
+ "maximum": 100
108
+ },
109
+ "placement_ids": {
110
+ "type": "array",
111
+ "description": "Optional array of placement IDs where this creative should run when uploading via create_media_buy or update_media_buy. References placement_id values from the product's placements array. If omitted, creative runs on all placements. Only used during upload to media buy - not stored in creative library.",
112
+ "items": {
113
+ "type": "string"
114
+ },
115
+ "minItems": 1
116
+ }
117
+ },
118
+ "required": [
119
+ "creative_id",
120
+ "name",
121
+ "format_id",
122
+ "assets"
123
+ ],
124
+ "additionalProperties": true
125
+ }
@@ -0,0 +1,31 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "/schemas/core/creative-assignment.json",
4
+ "title": "Creative Assignment",
5
+ "description": "Assignment of a creative asset to a package with optional placement targeting. Used in create_media_buy and update_media_buy requests. Note: sync_creatives does not support placement_ids - use create/update_media_buy for placement-level targeting.",
6
+ "type": "object",
7
+ "properties": {
8
+ "creative_id": {
9
+ "type": "string",
10
+ "description": "Unique identifier for the creative"
11
+ },
12
+ "weight": {
13
+ "type": "number",
14
+ "description": "Delivery weight for this creative",
15
+ "minimum": 0,
16
+ "maximum": 100
17
+ },
18
+ "placement_ids": {
19
+ "type": "array",
20
+ "description": "Optional array of placement IDs where this creative should run. When omitted, the creative runs on all placements in the package. References placement_id values from the product's placements array.",
21
+ "items": {
22
+ "type": "string"
23
+ },
24
+ "minItems": 1
25
+ }
26
+ },
27
+ "required": [
28
+ "creative_id"
29
+ ],
30
+ "additionalProperties": true
31
+ }
@@ -0,0 +1,111 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "/schemas/core/creative-filters.json",
4
+ "title": "Creative Filters",
5
+ "description": "Filter criteria for querying creative assets from the centralized library",
6
+ "type": "object",
7
+ "properties": {
8
+ "format": {
9
+ "type": "string",
10
+ "description": "Filter by creative format type (e.g., video, audio, display)"
11
+ },
12
+ "formats": {
13
+ "type": "array",
14
+ "description": "Filter by multiple creative format types",
15
+ "items": {
16
+ "type": "string"
17
+ }
18
+ },
19
+ "status": {
20
+ "$ref": "/schemas/enums/creative-status.json",
21
+ "description": "Filter by creative approval status"
22
+ },
23
+ "statuses": {
24
+ "type": "array",
25
+ "description": "Filter by multiple creative statuses",
26
+ "items": {
27
+ "$ref": "/schemas/enums/creative-status.json"
28
+ }
29
+ },
30
+ "tags": {
31
+ "type": "array",
32
+ "description": "Filter by creative tags (all tags must match)",
33
+ "items": {
34
+ "type": "string"
35
+ }
36
+ },
37
+ "tags_any": {
38
+ "type": "array",
39
+ "description": "Filter by creative tags (any tag must match)",
40
+ "items": {
41
+ "type": "string"
42
+ }
43
+ },
44
+ "name_contains": {
45
+ "type": "string",
46
+ "description": "Filter by creative names containing this text (case-insensitive)"
47
+ },
48
+ "creative_ids": {
49
+ "type": "array",
50
+ "description": "Filter by specific creative IDs",
51
+ "items": {
52
+ "type": "string"
53
+ },
54
+ "maxItems": 100
55
+ },
56
+ "created_after": {
57
+ "type": "string",
58
+ "format": "date-time",
59
+ "description": "Filter creatives created after this date (ISO 8601)"
60
+ },
61
+ "created_before": {
62
+ "type": "string",
63
+ "format": "date-time",
64
+ "description": "Filter creatives created before this date (ISO 8601)"
65
+ },
66
+ "updated_after": {
67
+ "type": "string",
68
+ "format": "date-time",
69
+ "description": "Filter creatives last updated after this date (ISO 8601)"
70
+ },
71
+ "updated_before": {
72
+ "type": "string",
73
+ "format": "date-time",
74
+ "description": "Filter creatives last updated before this date (ISO 8601)"
75
+ },
76
+ "assigned_to_package": {
77
+ "type": "string",
78
+ "description": "Filter creatives assigned to this specific package"
79
+ },
80
+ "assigned_to_packages": {
81
+ "type": "array",
82
+ "description": "Filter creatives assigned to any of these packages",
83
+ "items": {
84
+ "type": "string"
85
+ }
86
+ },
87
+ "media_buy_ids": {
88
+ "type": "array",
89
+ "description": "Filter creatives assigned to any of these media buys",
90
+ "items": {
91
+ "type": "string"
92
+ }
93
+ },
94
+ "buyer_refs": {
95
+ "type": "array",
96
+ "description": "Filter creatives assigned to media buys with any of these buyer references",
97
+ "items": {
98
+ "type": "string"
99
+ }
100
+ },
101
+ "unassigned": {
102
+ "type": "boolean",
103
+ "description": "Filter for unassigned creatives when true, assigned creatives when false"
104
+ },
105
+ "has_performance_data": {
106
+ "type": "boolean",
107
+ "description": "Filter creatives that have performance data when true"
108
+ }
109
+ },
110
+ "additionalProperties": true
111
+ }