@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,494 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "/schemas/adagents.json",
4
+ "title": "Authorized Sales Agents",
5
+ "description": "Declaration of authorized sales agents for advertising inventory. Hosted at /.well-known/adagents.json on publisher domains. Can either contain the full structure inline or reference an authoritative URL.",
6
+ "oneOf": [
7
+ {
8
+ "type": "object",
9
+ "description": "URL reference variant - points to the authoritative location of the adagents.json file",
10
+ "properties": {
11
+ "$schema": {
12
+ "type": "string",
13
+ "description": "JSON Schema identifier for this adagents.json file"
14
+ },
15
+ "authoritative_location": {
16
+ "type": "string",
17
+ "format": "uri",
18
+ "pattern": "^https://",
19
+ "description": "HTTPS URL of the authoritative adagents.json file. When present, this file is a reference and the authoritative location contains the actual agent authorization data."
20
+ },
21
+ "last_updated": {
22
+ "type": "string",
23
+ "format": "date-time",
24
+ "description": "ISO 8601 timestamp indicating when this reference was last updated"
25
+ }
26
+ },
27
+ "required": [
28
+ "authoritative_location"
29
+ ],
30
+ "additionalProperties": true
31
+ },
32
+ {
33
+ "type": "object",
34
+ "description": "Inline structure variant - contains full agent authorization data",
35
+ "properties": {
36
+ "$schema": {
37
+ "type": "string",
38
+ "description": "JSON Schema identifier for this adagents.json file"
39
+ },
40
+ "contact": {
41
+ "type": "object",
42
+ "description": "Contact information for the entity managing this adagents.json file (may be publisher or third-party operator)",
43
+ "properties": {
44
+ "name": {
45
+ "type": "string",
46
+ "description": "Name of the entity managing this file (e.g., 'Meta Advertising Operations', 'Clear Channel Digital')",
47
+ "minLength": 1,
48
+ "maxLength": 255
49
+ },
50
+ "email": {
51
+ "type": "string",
52
+ "format": "email",
53
+ "description": "Contact email for questions or issues with this authorization file",
54
+ "minLength": 1,
55
+ "maxLength": 255
56
+ },
57
+ "domain": {
58
+ "type": "string",
59
+ "description": "Primary domain of the entity managing this file",
60
+ "pattern": "^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$"
61
+ },
62
+ "seller_id": {
63
+ "type": "string",
64
+ "description": "Seller ID from IAB Tech Lab sellers.json (if applicable)",
65
+ "minLength": 1,
66
+ "maxLength": 255
67
+ },
68
+ "tag_id": {
69
+ "type": "string",
70
+ "description": "TAG Certified Against Fraud ID for verification (if applicable)",
71
+ "minLength": 1,
72
+ "maxLength": 100
73
+ }
74
+ },
75
+ "required": [
76
+ "name"
77
+ ],
78
+ "additionalProperties": true
79
+ },
80
+ "properties": {
81
+ "type": "array",
82
+ "description": "Array of all properties covered by this adagents.json file. Defines the canonical property list that authorized agents reference.",
83
+ "items": {
84
+ "$ref": "/schemas/core/property.json"
85
+ },
86
+ "minItems": 1
87
+ },
88
+ "tags": {
89
+ "type": "object",
90
+ "description": "Metadata for each tag referenced by properties. Provides human-readable context for property tag values.",
91
+ "additionalProperties": {
92
+ "type": "object",
93
+ "properties": {
94
+ "name": {
95
+ "type": "string",
96
+ "description": "Human-readable name for this tag"
97
+ },
98
+ "description": {
99
+ "type": "string",
100
+ "description": "Description of what this tag represents"
101
+ }
102
+ },
103
+ "required": [
104
+ "name",
105
+ "description"
106
+ ],
107
+ "additionalProperties": true
108
+ }
109
+ },
110
+ "authorized_agents": {
111
+ "type": "array",
112
+ "description": "Array of sales agents authorized to sell inventory for properties in this file",
113
+ "items": {
114
+ "oneOf": [
115
+ {
116
+ "type": "object",
117
+ "properties": {
118
+ "url": {
119
+ "type": "string",
120
+ "format": "uri",
121
+ "description": "The authorized agent's API endpoint URL"
122
+ },
123
+ "authorized_for": {
124
+ "type": "string",
125
+ "description": "Human-readable description of what this agent is authorized to sell",
126
+ "minLength": 1,
127
+ "maxLength": 500
128
+ },
129
+ "authorization_type": {
130
+ "type": "string",
131
+ "const": "property_ids",
132
+ "description": "Discriminator indicating authorization by specific property IDs"
133
+ },
134
+ "property_ids": {
135
+ "type": "array",
136
+ "description": "Property IDs this agent is authorized for. Resolved against the top-level properties array in this file",
137
+ "items": {
138
+ "$ref": "/schemas/core/property-id.json"
139
+ },
140
+ "minItems": 1
141
+ }
142
+ },
143
+ "required": [
144
+ "url",
145
+ "authorized_for",
146
+ "authorization_type",
147
+ "property_ids"
148
+ ],
149
+ "additionalProperties": true
150
+ },
151
+ {
152
+ "type": "object",
153
+ "properties": {
154
+ "url": {
155
+ "type": "string",
156
+ "format": "uri",
157
+ "description": "The authorized agent's API endpoint URL"
158
+ },
159
+ "authorized_for": {
160
+ "type": "string",
161
+ "description": "Human-readable description of what this agent is authorized to sell",
162
+ "minLength": 1,
163
+ "maxLength": 500
164
+ },
165
+ "authorization_type": {
166
+ "type": "string",
167
+ "const": "property_tags",
168
+ "description": "Discriminator indicating authorization by property tags"
169
+ },
170
+ "property_tags": {
171
+ "type": "array",
172
+ "description": "Tags identifying which properties this agent is authorized for. Resolved against the top-level properties array in this file using tag matching",
173
+ "items": {
174
+ "$ref": "/schemas/core/property-tag.json"
175
+ },
176
+ "minItems": 1
177
+ }
178
+ },
179
+ "required": [
180
+ "url",
181
+ "authorized_for",
182
+ "authorization_type",
183
+ "property_tags"
184
+ ],
185
+ "additionalProperties": true
186
+ },
187
+ {
188
+ "type": "object",
189
+ "properties": {
190
+ "url": {
191
+ "type": "string",
192
+ "format": "uri",
193
+ "description": "The authorized agent's API endpoint URL"
194
+ },
195
+ "authorized_for": {
196
+ "type": "string",
197
+ "description": "Human-readable description of what this agent is authorized to sell",
198
+ "minLength": 1,
199
+ "maxLength": 500
200
+ },
201
+ "authorization_type": {
202
+ "type": "string",
203
+ "const": "inline_properties",
204
+ "description": "Discriminator indicating authorization by inline property definitions"
205
+ },
206
+ "properties": {
207
+ "type": "array",
208
+ "description": "Specific properties this agent is authorized for (alternative to property_ids/property_tags)",
209
+ "items": {
210
+ "$ref": "/schemas/core/property.json"
211
+ },
212
+ "minItems": 1
213
+ }
214
+ },
215
+ "required": [
216
+ "url",
217
+ "authorized_for",
218
+ "authorization_type",
219
+ "properties"
220
+ ],
221
+ "additionalProperties": true
222
+ },
223
+ {
224
+ "type": "object",
225
+ "properties": {
226
+ "url": {
227
+ "type": "string",
228
+ "format": "uri",
229
+ "description": "The authorized agent's API endpoint URL"
230
+ },
231
+ "authorized_for": {
232
+ "type": "string",
233
+ "description": "Human-readable description of what this agent is authorized to sell",
234
+ "minLength": 1,
235
+ "maxLength": 500
236
+ },
237
+ "authorization_type": {
238
+ "type": "string",
239
+ "const": "publisher_properties",
240
+ "description": "Discriminator indicating authorization for properties from other publisher domains"
241
+ },
242
+ "publisher_properties": {
243
+ "type": "array",
244
+ "description": "Properties from other publisher domains this agent is authorized for. Each entry specifies a publisher domain and which of their properties this agent can sell",
245
+ "items": {
246
+ "$ref": "/schemas/core/publisher-property-selector.json"
247
+ },
248
+ "minItems": 1
249
+ }
250
+ },
251
+ "required": [
252
+ "url",
253
+ "authorized_for",
254
+ "authorization_type",
255
+ "publisher_properties"
256
+ ],
257
+ "additionalProperties": true
258
+ }
259
+ ]
260
+ },
261
+ "minItems": 1
262
+ },
263
+ "last_updated": {
264
+ "type": "string",
265
+ "format": "date-time",
266
+ "description": "ISO 8601 timestamp indicating when this file was last updated"
267
+ }
268
+ },
269
+ "required": [
270
+ "authorized_agents"
271
+ ],
272
+ "additionalProperties": true
273
+ }
274
+ ],
275
+ "examples": [
276
+ {
277
+ "$schema": "/schemas/adagents.json",
278
+ "authoritative_location": "https://cdn.example.com/adagents/v2/adagents.json",
279
+ "last_updated": "2025-01-15T10:00:00Z"
280
+ },
281
+ {
282
+ "$schema": "/schemas/adagents.json",
283
+ "properties": [
284
+ {
285
+ "property_type": "website",
286
+ "name": "Example Site",
287
+ "identifiers": [
288
+ {
289
+ "type": "domain",
290
+ "value": "example.com"
291
+ }
292
+ ],
293
+ "publisher_domain": "example.com"
294
+ }
295
+ ],
296
+ "authorized_agents": [
297
+ {
298
+ "url": "https://agent.example.com",
299
+ "authorized_for": "Official sales agent",
300
+ "authorization_type": "property_tags",
301
+ "property_tags": [
302
+ "all"
303
+ ]
304
+ }
305
+ ],
306
+ "tags": {
307
+ "all": {
308
+ "name": "All Properties",
309
+ "description": "All properties in this file"
310
+ }
311
+ },
312
+ "last_updated": "2025-01-10T12:00:00Z"
313
+ },
314
+ {
315
+ "$schema": "/schemas/adagents.json",
316
+ "contact": {
317
+ "name": "Meta Advertising Operations",
318
+ "email": "adops@meta.com",
319
+ "domain": "meta.com",
320
+ "seller_id": "pub-meta-12345",
321
+ "tag_id": "12345"
322
+ },
323
+ "properties": [
324
+ {
325
+ "property_type": "mobile_app",
326
+ "name": "Instagram",
327
+ "identifiers": [
328
+ {
329
+ "type": "ios_bundle",
330
+ "value": "com.burbn.instagram"
331
+ },
332
+ {
333
+ "type": "android_package",
334
+ "value": "com.instagram.android"
335
+ }
336
+ ],
337
+ "tags": [
338
+ "meta_network",
339
+ "social_media"
340
+ ],
341
+ "publisher_domain": "instagram.com"
342
+ },
343
+ {
344
+ "property_type": "mobile_app",
345
+ "name": "Facebook",
346
+ "identifiers": [
347
+ {
348
+ "type": "ios_bundle",
349
+ "value": "com.facebook.Facebook"
350
+ },
351
+ {
352
+ "type": "android_package",
353
+ "value": "com.facebook.katana"
354
+ }
355
+ ],
356
+ "tags": [
357
+ "meta_network",
358
+ "social_media"
359
+ ],
360
+ "publisher_domain": "facebook.com"
361
+ },
362
+ {
363
+ "property_type": "mobile_app",
364
+ "name": "WhatsApp",
365
+ "identifiers": [
366
+ {
367
+ "type": "ios_bundle",
368
+ "value": "net.whatsapp.WhatsApp"
369
+ },
370
+ {
371
+ "type": "android_package",
372
+ "value": "com.whatsapp"
373
+ }
374
+ ],
375
+ "tags": [
376
+ "meta_network",
377
+ "messaging"
378
+ ],
379
+ "publisher_domain": "whatsapp.com"
380
+ }
381
+ ],
382
+ "tags": {
383
+ "meta_network": {
384
+ "name": "Meta Network",
385
+ "description": "All Meta-owned properties"
386
+ },
387
+ "social_media": {
388
+ "name": "Social Media Apps",
389
+ "description": "Social networking applications"
390
+ },
391
+ "messaging": {
392
+ "name": "Messaging Apps",
393
+ "description": "Messaging and communication apps"
394
+ }
395
+ },
396
+ "authorized_agents": [
397
+ {
398
+ "url": "https://meta-ads.com",
399
+ "authorized_for": "All Meta properties",
400
+ "authorization_type": "property_tags",
401
+ "property_tags": [
402
+ "meta_network"
403
+ ]
404
+ }
405
+ ],
406
+ "last_updated": "2025-01-10T15:30:00Z"
407
+ },
408
+ {
409
+ "$schema": "/schemas/adagents.json",
410
+ "contact": {
411
+ "name": "Tumblr Advertising"
412
+ },
413
+ "properties": [
414
+ {
415
+ "property_type": "website",
416
+ "name": "Tumblr Corporate",
417
+ "identifiers": [
418
+ {
419
+ "type": "domain",
420
+ "value": "tumblr.com"
421
+ }
422
+ ],
423
+ "tags": [
424
+ "corporate"
425
+ ],
426
+ "publisher_domain": "tumblr.com"
427
+ }
428
+ ],
429
+ "tags": {
430
+ "corporate": {
431
+ "name": "Corporate Properties",
432
+ "description": "Tumblr-owned corporate properties (not user blogs)"
433
+ }
434
+ },
435
+ "authorized_agents": [
436
+ {
437
+ "url": "https://tumblr-sales.com",
438
+ "authorized_for": "Tumblr corporate properties only",
439
+ "authorization_type": "property_tags",
440
+ "property_tags": [
441
+ "corporate"
442
+ ]
443
+ }
444
+ ],
445
+ "last_updated": "2025-01-10T16:00:00Z"
446
+ },
447
+ {
448
+ "$schema": "/schemas/adagents.json",
449
+ "contact": {
450
+ "name": "Example Third-Party Sales Agent",
451
+ "email": "sales@agent.example",
452
+ "domain": "agent.example"
453
+ },
454
+ "authorized_agents": [
455
+ {
456
+ "url": "https://agent.example/api",
457
+ "authorized_for": "CNN CTV properties via publisher authorization",
458
+ "authorization_type": "publisher_properties",
459
+ "publisher_properties": [
460
+ {
461
+ "publisher_domain": "cnn.com",
462
+ "selection_type": "by_id",
463
+ "property_ids": [
464
+ "cnn_ctv_app"
465
+ ]
466
+ }
467
+ ]
468
+ },
469
+ {
470
+ "url": "https://agent.example/api",
471
+ "authorized_for": "All CTV properties from multiple publishers",
472
+ "authorization_type": "publisher_properties",
473
+ "publisher_properties": [
474
+ {
475
+ "publisher_domain": "cnn.com",
476
+ "selection_type": "by_tag",
477
+ "property_tags": [
478
+ "ctv"
479
+ ]
480
+ },
481
+ {
482
+ "publisher_domain": "espn.com",
483
+ "selection_type": "by_tag",
484
+ "property_tags": [
485
+ "ctv"
486
+ ]
487
+ }
488
+ ]
489
+ }
490
+ ],
491
+ "last_updated": "2025-01-10T17:00:00Z"
492
+ }
493
+ ]
494
+ }
@@ -0,0 +1,50 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "/schemas/core/activation-key.json",
4
+ "title": "Activation Key",
5
+ "description": "Universal identifier for using a signal on a destination platform. Can be either a segment ID or a key-value pair depending on the platform's targeting mechanism.",
6
+ "type": "object",
7
+ "oneOf": [
8
+ {
9
+ "properties": {
10
+ "type": {
11
+ "type": "string",
12
+ "const": "segment_id",
13
+ "description": "Segment ID based targeting"
14
+ },
15
+ "segment_id": {
16
+ "type": "string",
17
+ "description": "The platform-specific segment identifier to use in campaign targeting"
18
+ }
19
+ },
20
+ "required": [
21
+ "type",
22
+ "segment_id"
23
+ ],
24
+ "additionalProperties": true
25
+ },
26
+ {
27
+ "properties": {
28
+ "type": {
29
+ "type": "string",
30
+ "const": "key_value",
31
+ "description": "Key-value pair based targeting"
32
+ },
33
+ "key": {
34
+ "type": "string",
35
+ "description": "The targeting parameter key"
36
+ },
37
+ "value": {
38
+ "type": "string",
39
+ "description": "The targeting parameter value"
40
+ }
41
+ },
42
+ "required": [
43
+ "type",
44
+ "key",
45
+ "value"
46
+ ],
47
+ "additionalProperties": true
48
+ }
49
+ ]
50
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "/schemas/core/assets/audio-asset.json",
4
+ "title": "Audio Asset",
5
+ "description": "Audio asset with URL and specifications",
6
+ "type": "object",
7
+ "properties": {
8
+ "url": {
9
+ "type": "string",
10
+ "format": "uri",
11
+ "description": "URL to the audio asset"
12
+ },
13
+ "duration_ms": {
14
+ "type": "integer",
15
+ "description": "Audio duration in milliseconds",
16
+ "minimum": 0
17
+ },
18
+ "format": {
19
+ "type": "string",
20
+ "description": "Audio file format (mp3, wav, aac, etc.)"
21
+ },
22
+ "bitrate_kbps": {
23
+ "type": "integer",
24
+ "description": "Audio bitrate in kilobits per second",
25
+ "minimum": 1
26
+ }
27
+ },
28
+ "required": [
29
+ "url"
30
+ ],
31
+ "additionalProperties": true
32
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "/schemas/core/assets/css-asset.json",
4
+ "title": "CSS Asset",
5
+ "description": "CSS stylesheet asset",
6
+ "type": "object",
7
+ "properties": {
8
+ "content": {
9
+ "type": "string",
10
+ "description": "CSS content"
11
+ },
12
+ "media": {
13
+ "type": "string",
14
+ "description": "CSS media query context (e.g., 'screen', 'print')"
15
+ }
16
+ },
17
+ "required": [
18
+ "content"
19
+ ],
20
+ "additionalProperties": true
21
+ }
@@ -0,0 +1,87 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "/schemas/core/assets/daast-asset.json",
4
+ "title": "DAAST Asset",
5
+ "description": "DAAST (Digital Audio Ad Serving Template) tag for third-party audio ad serving",
6
+ "oneOf": [
7
+ {
8
+ "type": "object",
9
+ "properties": {
10
+ "delivery_type": {
11
+ "type": "string",
12
+ "const": "url",
13
+ "description": "Discriminator indicating DAAST is delivered via URL endpoint"
14
+ },
15
+ "url": {
16
+ "type": "string",
17
+ "format": "uri",
18
+ "description": "URL endpoint that returns DAAST XML"
19
+ },
20
+ "daast_version": {
21
+ "$ref": "/schemas/enums/daast-version.json",
22
+ "description": "DAAST specification version"
23
+ },
24
+ "duration_ms": {
25
+ "type": "integer",
26
+ "description": "Expected audio duration in milliseconds (if known)",
27
+ "minimum": 0
28
+ },
29
+ "tracking_events": {
30
+ "type": "array",
31
+ "items": {
32
+ "$ref": "/schemas/enums/daast-tracking-event.json"
33
+ },
34
+ "description": "Tracking events supported by this DAAST tag"
35
+ },
36
+ "companion_ads": {
37
+ "type": "boolean",
38
+ "description": "Whether companion display ads are included"
39
+ }
40
+ },
41
+ "required": [
42
+ "delivery_type",
43
+ "url"
44
+ ],
45
+ "additionalProperties": true
46
+ },
47
+ {
48
+ "type": "object",
49
+ "properties": {
50
+ "delivery_type": {
51
+ "type": "string",
52
+ "const": "inline",
53
+ "description": "Discriminator indicating DAAST is delivered as inline XML content"
54
+ },
55
+ "content": {
56
+ "type": "string",
57
+ "description": "Inline DAAST XML content"
58
+ },
59
+ "daast_version": {
60
+ "$ref": "/schemas/enums/daast-version.json",
61
+ "description": "DAAST specification version"
62
+ },
63
+ "duration_ms": {
64
+ "type": "integer",
65
+ "description": "Expected audio duration in milliseconds (if known)",
66
+ "minimum": 0
67
+ },
68
+ "tracking_events": {
69
+ "type": "array",
70
+ "items": {
71
+ "$ref": "/schemas/enums/daast-tracking-event.json"
72
+ },
73
+ "description": "Tracking events supported by this DAAST tag"
74
+ },
75
+ "companion_ads": {
76
+ "type": "boolean",
77
+ "description": "Whether companion display ads are included"
78
+ }
79
+ },
80
+ "required": [
81
+ "delivery_type",
82
+ "content"
83
+ ],
84
+ "additionalProperties": true
85
+ }
86
+ ]
87
+ }