@adcp/sdk 14.0.0-beta.0 → 14.0.0-beta.1

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 (140) hide show
  1. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/get-account-financials-request.json +610 -0
  2. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/get-account-financials-response.json +1055 -0
  3. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/list-accounts-request.json +629 -0
  4. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/list-accounts-response.json +1558 -0
  5. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/report-usage-request.json +702 -0
  6. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/report-usage-response.json +309 -0
  7. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/sync-accounts-request.json +1113 -0
  8. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/sync-accounts-response.json +1567 -0
  9. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/sync-governance-request.json +662 -0
  10. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/account/sync-governance-response.json +921 -0
  11. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/creative/list-creatives-request.json +992 -0
  12. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/creative/list-creatives-response.json +5965 -0
  13. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/creative/sync-creatives-request.json +3936 -0
  14. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/creative/sync-creatives-response.json +3859 -0
  15. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/manifest.json +206 -0
  16. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/accept-proposal-request.json +601 -0
  17. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/accept-proposal-response.json +4799 -0
  18. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/buy-products-request.json +4107 -0
  19. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/buy-products-response.json +4799 -0
  20. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/control-media-buy-request.json +3365 -0
  21. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/control-media-buy-response.json +656 -0
  22. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/decline-proposals-request.json +334 -0
  23. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/decline-proposals-response.json +271 -0
  24. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/get-media-buy-delivery-request.json +1236 -0
  25. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/get-media-buy-delivery-response.json +2861 -0
  26. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/get-media-buys-request.json +678 -0
  27. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/get-media-buys-response.json +10861 -0
  28. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/list-products-request.json +4229 -0
  29. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/list-products-response.json +3824 -0
  30. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/log-event-request.json +421 -0
  31. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/log-event-response.json +394 -0
  32. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/media-buy-delivery-webhook-result.json +1366 -0
  33. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/provide-performance-feedback-request.json +884 -0
  34. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/provide-performance-feedback-response.json +422 -0
  35. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/refine-proposals-request.json +4335 -0
  36. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/refine-proposals-response.json +7328 -0
  37. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/request-proposals-request.json +4307 -0
  38. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/request-proposals-response.json +7105 -0
  39. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/sync-audiences-request.json +760 -0
  40. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/sync-audiences-response.json +541 -0
  41. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/sync-catalogs-request.json +1142 -0
  42. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/sync-catalogs-response.json +1153 -0
  43. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/sync-event-sources-request.json +743 -0
  44. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/sync-event-sources-response.json +619 -0
  45. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/account/get-account-financials-request.json +544 -0
  46. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/account/list-accounts-request.json +557 -0
  47. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/account/report-usage-request.json +617 -0
  48. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/account/sync-accounts-request.json +984 -0
  49. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/account/sync-governance-request.json +581 -0
  50. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/creative/list-creatives-request.json +878 -0
  51. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/creative/sync-creatives-request.json +3456 -0
  52. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/manifest.json +175 -0
  53. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/accept-proposal-request.json +498 -0
  54. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/buy-products-request.json +3675 -0
  55. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/control-media-buy-request.json +3030 -0
  56. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/decline-proposals-request.json +282 -0
  57. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/get-media-buy-delivery-request.json +1136 -0
  58. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/get-media-buys-request.json +597 -0
  59. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/list-products-request.json +3780 -0
  60. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/log-event-request.json +386 -0
  61. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/provide-performance-feedback-request.json +784 -0
  62. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/refine-proposals-request.json +3878 -0
  63. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/request-proposals-request.json +3852 -0
  64. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/sync-audiences-request.json +682 -0
  65. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/sync-catalogs-request.json +1016 -0
  66. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/media-buy/sync-event-sources-request.json +660 -0
  67. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/protocol/get-adcp-capabilities-request.json +51 -0
  68. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/protocol/get-task-status-request.json +534 -0
  69. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/protocol/list-tasks-request.json +692 -0
  70. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/model-context/protocol/sync-agent-notification-configs-request.json +129 -0
  71. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/get-adcp-capabilities-request.json +58 -0
  72. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/get-adcp-capabilities-response.json +8069 -0
  73. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/get-task-status-request.json +601 -0
  74. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/get-task-status-response.json +612 -0
  75. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/list-tasks-request.json +775 -0
  76. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/list-tasks-response.json +483 -0
  77. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/sync-agent-notification-configs-request.json +155 -0
  78. package/dist/lib/schemas-data/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/protocol/sync-agent-notification-configs-response.json +382 -0
  79. package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
  80. package/dist/lib/server/create-adcp-server.d.mts +27 -0
  81. package/dist/lib/server/create-adcp-server.d.ts +27 -0
  82. package/dist/lib/server/create-adcp-server.d.ts.map +1 -1
  83. package/dist/lib/server/create-adcp-server.js +120 -4
  84. package/dist/lib/server/create-adcp-server.js.map +1 -1
  85. package/dist/lib/server/create-adcp-server.mjs +121 -6
  86. package/dist/lib/server/create-adcp-server.mjs.map +1 -1
  87. package/dist/lib/server/decisioning/context.d.mts +6 -0
  88. package/dist/lib/server/decisioning/context.d.ts +6 -0
  89. package/dist/lib/server/decisioning/context.d.ts.map +1 -1
  90. package/dist/lib/server/decisioning/context.js.map +1 -1
  91. package/dist/lib/server/decisioning/index.d.mts +1 -1
  92. package/dist/lib/server/decisioning/index.d.ts +1 -1
  93. package/dist/lib/server/decisioning/index.d.ts.map +1 -1
  94. package/dist/lib/server/decisioning/index.js.map +1 -1
  95. package/dist/lib/server/decisioning/index.mjs.map +1 -1
  96. package/dist/lib/server/decisioning/platform.d.mts +21 -6
  97. package/dist/lib/server/decisioning/platform.d.ts +21 -6
  98. package/dist/lib/server/decisioning/platform.d.ts.map +1 -1
  99. package/dist/lib/server/decisioning/platform.js.map +1 -1
  100. package/dist/lib/server/decisioning/runtime/from-platform.d.ts.map +1 -1
  101. package/dist/lib/server/decisioning/runtime/from-platform.js +201 -18
  102. package/dist/lib/server/decisioning/runtime/from-platform.js.map +1 -1
  103. package/dist/lib/server/decisioning/runtime/from-platform.mjs +203 -19
  104. package/dist/lib/server/decisioning/runtime/from-platform.mjs.map +1 -1
  105. package/dist/lib/server/decisioning/runtime/to-context.d.ts.map +1 -1
  106. package/dist/lib/server/decisioning/runtime/to-context.js +6 -0
  107. package/dist/lib/server/decisioning/runtime/to-context.js.map +1 -1
  108. package/dist/lib/server/decisioning/runtime/to-context.mjs +6 -0
  109. package/dist/lib/server/decisioning/runtime/to-context.mjs.map +1 -1
  110. package/dist/lib/server/decisioning/runtime/validate-platform.d.ts.map +1 -1
  111. package/dist/lib/server/decisioning/runtime/validate-platform.js +35 -4
  112. package/dist/lib/server/decisioning/runtime/validate-platform.js.map +1 -1
  113. package/dist/lib/server/decisioning/runtime/validate-platform.mjs +35 -4
  114. package/dist/lib/server/decisioning/runtime/validate-platform.mjs.map +1 -1
  115. package/dist/lib/server/decisioning/specialisms/sales.d.mts +39 -0
  116. package/dist/lib/server/decisioning/specialisms/sales.d.ts +39 -0
  117. package/dist/lib/server/decisioning/specialisms/sales.d.ts.map +1 -1
  118. package/dist/lib/server/decisioning/specialisms/sales.js.map +1 -1
  119. package/dist/lib/testing/storyboard/validations.d.mts +1 -1
  120. package/dist/lib/testing/storyboard/validations.d.ts +1 -1
  121. package/dist/lib/validation/schema-loader.d.mts +2 -0
  122. package/dist/lib/validation/schema-loader.d.ts +2 -0
  123. package/dist/lib/validation/schema-loader.d.ts.map +1 -1
  124. package/dist/lib/validation/schema-loader.js +31 -0
  125. package/dist/lib/validation/schema-loader.js.map +1 -1
  126. package/dist/lib/validation/schema-loader.mjs +30 -0
  127. package/dist/lib/validation/schema-loader.mjs.map +1 -1
  128. package/dist/lib/version.d.mts +3 -3
  129. package/dist/lib/version.d.ts +3 -3
  130. package/dist/lib/version.js +3 -3
  131. package/dist/lib/version.js.map +1 -1
  132. package/dist/lib/version.mjs +3 -3
  133. package/dist/lib/version.mjs.map +1 -1
  134. package/docs/guides/BUILD-AN-AGENT.md +10 -1
  135. package/docs/guides/MEDIA-BUY-3.2-COMPATIBILITY.md +119 -0
  136. package/docs/llms.txt +1 -1
  137. package/docs/migration-12-to-14.md +8 -0
  138. package/docs/migration-13-to-14.md +30 -4
  139. package/docs/releases/14.0.0-beta.0.md +19 -1
  140. package/package.json +2 -1
@@ -0,0 +1,1366 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://adcontextprotocol.org/schemas/3.2.0-beta.0/mcp/2026-07-28/profiles/media-buy/media-buy/media-buy-delivery-webhook-result.json",
4
+ "type": "object",
5
+ "properties": {
6
+ "notification_type": {
7
+ "type": "string",
8
+ "enum": [
9
+ "scheduled",
10
+ "final",
11
+ "delayed",
12
+ "adjusted",
13
+ "window_update"
14
+ ]
15
+ },
16
+ "partial_data": {
17
+ "type": "boolean"
18
+ },
19
+ "unavailable_count": {
20
+ "type": "integer",
21
+ "minimum": 0
22
+ },
23
+ "sequence_number": {
24
+ "type": "integer",
25
+ "minimum": 1
26
+ },
27
+ "next_expected_at": {
28
+ "type": "string",
29
+ "format": "date-time"
30
+ },
31
+ "reporting_period": {
32
+ "type": "object",
33
+ "properties": {
34
+ "start": {
35
+ "type": "string",
36
+ "format": "date-time"
37
+ },
38
+ "end": {
39
+ "type": "string",
40
+ "format": "date-time"
41
+ }
42
+ },
43
+ "required": [
44
+ "start",
45
+ "end"
46
+ ],
47
+ "additionalProperties": true
48
+ },
49
+ "currency": {
50
+ "type": "string",
51
+ "pattern": "^[A-Z]{3}$"
52
+ },
53
+ "attribution_window": {
54
+ "$ref": "#/$defs/external:core~1attribution-window.json"
55
+ },
56
+ "media_buy_deliveries": {
57
+ "type": "array",
58
+ "items": {
59
+ "type": "object",
60
+ "properties": {
61
+ "media_buy_id": {
62
+ "type": "string",
63
+ "x-entity": "media_buy"
64
+ },
65
+ "status": {
66
+ "type": "string",
67
+ "enum": [
68
+ "pending_creatives",
69
+ "pending_start",
70
+ "pending",
71
+ "active",
72
+ "paused",
73
+ "completed",
74
+ "rejected",
75
+ "canceled",
76
+ "failed",
77
+ "reporting_delayed"
78
+ ]
79
+ },
80
+ "expected_availability": {
81
+ "type": "string",
82
+ "format": "date-time"
83
+ },
84
+ "is_adjusted": {
85
+ "type": "boolean"
86
+ },
87
+ "is_final": {
88
+ "type": "boolean"
89
+ },
90
+ "finalized_at": {
91
+ "type": "string",
92
+ "format": "date-time"
93
+ },
94
+ "pricing_model": {
95
+ "$ref": "#/$defs/external:enums~1pricing-model.json"
96
+ },
97
+ "pacing_index": {
98
+ "type": "number",
99
+ "minimum": 0
100
+ },
101
+ "totals": {
102
+ "allOf": [
103
+ {
104
+ "$ref": "#/$defs/external:core~1delivery-metrics.json"
105
+ },
106
+ {
107
+ "type": "object",
108
+ "properties": {
109
+ "effective_rate": {
110
+ "type": "number",
111
+ "minimum": 0
112
+ }
113
+ },
114
+ "required": [
115
+ "spend"
116
+ ],
117
+ "additionalProperties": true
118
+ }
119
+ ]
120
+ },
121
+ "by_package": {
122
+ "type": "array",
123
+ "items": {
124
+ "allOf": [
125
+ {
126
+ "$ref": "#/$defs/external:core~1delivery-metrics.json"
127
+ },
128
+ {
129
+ "type": "object",
130
+ "properties": {
131
+ "package_id": {
132
+ "type": "string",
133
+ "x-entity": "package"
134
+ },
135
+ "pacing_index": {
136
+ "type": "number",
137
+ "minimum": 0
138
+ },
139
+ "pricing_model": {
140
+ "$ref": "#/$defs/external:enums~1pricing-model.json"
141
+ },
142
+ "rate": {
143
+ "type": "number",
144
+ "minimum": 0
145
+ },
146
+ "currency": {
147
+ "type": "string",
148
+ "pattern": "^[A-Z]{3}$"
149
+ },
150
+ "delivery_status": {
151
+ "$ref": "#/$defs/external:enums~1delivery-status.json"
152
+ },
153
+ "paused": {
154
+ "type": "boolean"
155
+ },
156
+ "is_final": {
157
+ "type": "boolean"
158
+ },
159
+ "finalized_at": {
160
+ "type": "string",
161
+ "format": "date-time"
162
+ },
163
+ "measurement_window": {
164
+ "type": "string",
165
+ "maxLength": 50
166
+ },
167
+ "supersedes_window": {
168
+ "type": "string",
169
+ "maxLength": 50
170
+ }
171
+ },
172
+ "required": [
173
+ "spend"
174
+ ],
175
+ "additionalProperties": true
176
+ }
177
+ ]
178
+ }
179
+ }
180
+ },
181
+ "required": [
182
+ "media_buy_id",
183
+ "status",
184
+ "totals",
185
+ "by_package"
186
+ ],
187
+ "additionalProperties": true
188
+ }
189
+ },
190
+ "errors": {
191
+ "type": "array",
192
+ "items": {
193
+ "$ref": "#/$defs/external:core~1error.json"
194
+ }
195
+ },
196
+ "sandbox": {
197
+ "type": "boolean"
198
+ },
199
+ "context": {
200
+ "$ref": "#/$defs/external:core~1context.json"
201
+ },
202
+ "ext": {
203
+ "$ref": "#/$defs/external:core~1ext.json"
204
+ }
205
+ },
206
+ "required": [
207
+ "notification_type",
208
+ "reporting_period",
209
+ "currency",
210
+ "media_buy_deliveries"
211
+ ],
212
+ "additionalProperties": true,
213
+ "$defs": {
214
+ "external:core/attribution-window.json": {
215
+ "type": "object",
216
+ "properties": {
217
+ "post_click": {
218
+ "allOf": [
219
+ {
220
+ "$ref": "#/$defs/external:core~1duration.json"
221
+ }
222
+ ]
223
+ },
224
+ "post_view": {
225
+ "allOf": [
226
+ {
227
+ "$ref": "#/$defs/external:core~1duration.json"
228
+ }
229
+ ]
230
+ },
231
+ "model": {
232
+ "$ref": "#/$defs/external:enums~1attribution-model.json"
233
+ }
234
+ },
235
+ "additionalProperties": true
236
+ },
237
+ "external:core/duration.json": {
238
+ "type": "object",
239
+ "properties": {
240
+ "interval": {
241
+ "type": "integer",
242
+ "minimum": 1
243
+ },
244
+ "unit": {
245
+ "type": "string",
246
+ "enum": [
247
+ "seconds",
248
+ "minutes",
249
+ "hours",
250
+ "days",
251
+ "campaign"
252
+ ]
253
+ }
254
+ },
255
+ "required": [
256
+ "interval",
257
+ "unit"
258
+ ],
259
+ "additionalProperties": false
260
+ },
261
+ "external:enums/attribution-model.json": {
262
+ "type": "string",
263
+ "enum": [
264
+ "last_touch",
265
+ "first_touch",
266
+ "linear",
267
+ "time_decay",
268
+ "data_driven"
269
+ ]
270
+ },
271
+ "external:enums/pricing-model.json": {
272
+ "type": "string",
273
+ "enum": [
274
+ "cpm",
275
+ "vcpm",
276
+ "cpc",
277
+ "cpcv",
278
+ "cpv",
279
+ "cpp",
280
+ "cpa",
281
+ "revenue_share",
282
+ "flat_rate",
283
+ "time"
284
+ ]
285
+ },
286
+ "external:core/delivery-metrics.json": {
287
+ "type": "object",
288
+ "properties": {
289
+ "impressions": {
290
+ "type": "number",
291
+ "minimum": 0
292
+ },
293
+ "spend": {
294
+ "type": "number",
295
+ "minimum": 0
296
+ },
297
+ "clicks": {
298
+ "type": "number",
299
+ "minimum": 0
300
+ },
301
+ "ctr": {
302
+ "type": "number",
303
+ "minimum": 0,
304
+ "maximum": 1
305
+ },
306
+ "views": {
307
+ "type": "number",
308
+ "minimum": 0
309
+ },
310
+ "completed_views": {
311
+ "type": "number",
312
+ "minimum": 0
313
+ },
314
+ "completion_rate": {
315
+ "type": [
316
+ "number",
317
+ "null"
318
+ ],
319
+ "minimum": 0,
320
+ "maximum": 1
321
+ },
322
+ "conversions": {
323
+ "type": "number",
324
+ "minimum": 0
325
+ },
326
+ "conversion_value": {
327
+ "type": "number",
328
+ "minimum": 0
329
+ },
330
+ "commissionable_value": {
331
+ "type": "number",
332
+ "minimum": 0
333
+ },
334
+ "roas": {
335
+ "type": "number",
336
+ "minimum": 0
337
+ },
338
+ "cost_per_acquisition": {
339
+ "type": "number",
340
+ "minimum": 0
341
+ },
342
+ "new_to_brand_rate": {
343
+ "type": "number",
344
+ "minimum": 0,
345
+ "maximum": 1
346
+ },
347
+ "leads": {
348
+ "type": "number",
349
+ "minimum": 0
350
+ },
351
+ "incremental_sales_lift": {
352
+ "type": "number",
353
+ "minimum": 0
354
+ },
355
+ "brand_lift": {
356
+ "type": "number",
357
+ "minimum": 0
358
+ },
359
+ "foot_traffic": {
360
+ "type": "number",
361
+ "minimum": 0
362
+ },
363
+ "conversion_lift": {
364
+ "type": "number",
365
+ "minimum": 0
366
+ },
367
+ "brand_search_lift": {
368
+ "type": "number",
369
+ "minimum": 0
370
+ },
371
+ "plays": {
372
+ "type": "number",
373
+ "minimum": 0
374
+ },
375
+ "by_event_type": {
376
+ "type": "array",
377
+ "items": {
378
+ "type": "object",
379
+ "properties": {
380
+ "event_type": {
381
+ "$ref": "#/$defs/external:enums~1event-type.json"
382
+ },
383
+ "event_source_id": {
384
+ "type": "string"
385
+ },
386
+ "count": {
387
+ "type": "number",
388
+ "minimum": 0
389
+ },
390
+ "value": {
391
+ "type": "number",
392
+ "minimum": 0
393
+ }
394
+ },
395
+ "required": [
396
+ "event_type",
397
+ "count"
398
+ ],
399
+ "additionalProperties": true
400
+ }
401
+ },
402
+ "grps": {
403
+ "type": "number",
404
+ "minimum": 0
405
+ },
406
+ "reach": {
407
+ "type": "number",
408
+ "minimum": 0
409
+ },
410
+ "reach_unit": {
411
+ "allOf": [
412
+ {
413
+ "$ref": "#/$defs/external:enums~1reach-unit.json"
414
+ }
415
+ ]
416
+ },
417
+ "reach_window": {
418
+ "type": "object",
419
+ "properties": {
420
+ "kind": {
421
+ "type": "string",
422
+ "enum": [
423
+ "cumulative",
424
+ "period",
425
+ "rolling"
426
+ ]
427
+ },
428
+ "period": {
429
+ "allOf": [
430
+ {
431
+ "$ref": "#/$defs/external:core~1duration.json"
432
+ }
433
+ ]
434
+ }
435
+ },
436
+ "required": [
437
+ "kind"
438
+ ],
439
+ "allOf": [
440
+ {
441
+ "if": {
442
+ "properties": {
443
+ "kind": {
444
+ "enum": [
445
+ "period",
446
+ "rolling"
447
+ ]
448
+ }
449
+ },
450
+ "required": [
451
+ "kind"
452
+ ]
453
+ },
454
+ "then": {
455
+ "required": [
456
+ "period"
457
+ ]
458
+ }
459
+ }
460
+ ],
461
+ "additionalProperties": true
462
+ },
463
+ "frequency": {
464
+ "type": "number",
465
+ "minimum": 0
466
+ },
467
+ "quartile_data": {
468
+ "type": [
469
+ "object",
470
+ "null"
471
+ ],
472
+ "properties": {
473
+ "q1_views": {
474
+ "type": "number",
475
+ "minimum": 0
476
+ },
477
+ "q2_views": {
478
+ "type": "number",
479
+ "minimum": 0
480
+ },
481
+ "q3_views": {
482
+ "type": "number",
483
+ "minimum": 0
484
+ },
485
+ "q4_views": {
486
+ "type": "number",
487
+ "minimum": 0
488
+ }
489
+ }
490
+ },
491
+ "dooh_metrics": {
492
+ "type": "object",
493
+ "properties": {
494
+ "loop_plays": {
495
+ "type": "integer",
496
+ "minimum": 0
497
+ },
498
+ "screens_used": {
499
+ "type": "integer",
500
+ "minimum": 0
501
+ },
502
+ "screen_time_seconds": {
503
+ "type": "integer",
504
+ "minimum": 0
505
+ },
506
+ "sov_achieved": {
507
+ "type": "number",
508
+ "minimum": 0,
509
+ "maximum": 1
510
+ },
511
+ "calculation_notes": {
512
+ "type": "string"
513
+ },
514
+ "venue_breakdown": {
515
+ "type": "array",
516
+ "items": {
517
+ "type": "object",
518
+ "properties": {
519
+ "venue_id": {
520
+ "type": "string"
521
+ },
522
+ "venue_name": {
523
+ "type": "string"
524
+ },
525
+ "venue_type": {
526
+ "type": "string"
527
+ },
528
+ "impressions": {
529
+ "type": "integer",
530
+ "minimum": 0
531
+ },
532
+ "loop_plays": {
533
+ "type": "integer",
534
+ "minimum": 0
535
+ },
536
+ "screens_used": {
537
+ "type": "integer",
538
+ "minimum": 0
539
+ }
540
+ },
541
+ "required": [
542
+ "venue_id",
543
+ "impressions"
544
+ ],
545
+ "additionalProperties": true
546
+ }
547
+ }
548
+ },
549
+ "additionalProperties": true
550
+ },
551
+ "viewability": {
552
+ "type": "object",
553
+ "properties": {
554
+ "vendor": {
555
+ "$ref": "#/$defs/external:core~1brand-ref.json"
556
+ },
557
+ "measurable_impressions": {
558
+ "type": "number",
559
+ "minimum": 0
560
+ },
561
+ "viewable_impressions": {
562
+ "type": "number",
563
+ "minimum": 0
564
+ },
565
+ "viewable_rate": {
566
+ "type": "number",
567
+ "minimum": 0,
568
+ "maximum": 1
569
+ },
570
+ "viewed_seconds": {
571
+ "type": "number",
572
+ "minimum": 0
573
+ },
574
+ "standard": {
575
+ "$ref": "#/$defs/external:enums~1viewability-standard.json"
576
+ }
577
+ },
578
+ "additionalProperties": true
579
+ },
580
+ "engagements": {
581
+ "type": "number",
582
+ "minimum": 0
583
+ },
584
+ "follows": {
585
+ "type": "number",
586
+ "minimum": 0
587
+ },
588
+ "saves": {
589
+ "type": "number",
590
+ "minimum": 0
591
+ },
592
+ "profile_visits": {
593
+ "type": "number",
594
+ "minimum": 0
595
+ },
596
+ "engagement_rate": {
597
+ "type": "number",
598
+ "minimum": 0,
599
+ "maximum": 1
600
+ },
601
+ "cost_per_click": {
602
+ "type": "number",
603
+ "minimum": 0
604
+ },
605
+ "cost_per_completed_view": {
606
+ "type": "number",
607
+ "minimum": 0
608
+ },
609
+ "cpm": {
610
+ "type": "number",
611
+ "minimum": 0
612
+ },
613
+ "downloads": {
614
+ "type": "number",
615
+ "minimum": 0
616
+ },
617
+ "units_sold": {
618
+ "type": "number",
619
+ "minimum": 0
620
+ },
621
+ "new_to_brand_units": {
622
+ "type": "number",
623
+ "minimum": 0
624
+ },
625
+ "by_action_source": {
626
+ "type": "array",
627
+ "items": {
628
+ "type": "object",
629
+ "properties": {
630
+ "action_source": {
631
+ "$ref": "#/$defs/external:enums~1action-source.json"
632
+ },
633
+ "event_source_id": {
634
+ "type": "string"
635
+ },
636
+ "count": {
637
+ "type": "number",
638
+ "minimum": 0
639
+ },
640
+ "value": {
641
+ "type": "number",
642
+ "minimum": 0
643
+ }
644
+ },
645
+ "required": [
646
+ "action_source",
647
+ "count"
648
+ ],
649
+ "additionalProperties": true
650
+ }
651
+ },
652
+ "vendor_metric_values": {
653
+ "type": "array",
654
+ "items": {
655
+ "$ref": "#/$defs/external:core~1vendor-metric-value.json"
656
+ }
657
+ }
658
+ },
659
+ "additionalProperties": true,
660
+ "dependentRequired": {
661
+ "reach": [
662
+ "reach_unit"
663
+ ]
664
+ }
665
+ },
666
+ "external:enums/event-type.json": {
667
+ "type": "string",
668
+ "enum": [
669
+ "page_view",
670
+ "view_content",
671
+ "select_content",
672
+ "select_item",
673
+ "search",
674
+ "share",
675
+ "add_to_cart",
676
+ "remove_from_cart",
677
+ "viewed_cart",
678
+ "add_to_wishlist",
679
+ "initiate_checkout",
680
+ "add_payment_info",
681
+ "purchase",
682
+ "refund",
683
+ "lead",
684
+ "qualify_lead",
685
+ "close_convert_lead",
686
+ "disqualify_lead",
687
+ "complete_registration",
688
+ "subscribe",
689
+ "follow",
690
+ "content_view",
691
+ "watch_milestone",
692
+ "start_trial",
693
+ "app_install",
694
+ "app_launch",
695
+ "contact",
696
+ "schedule",
697
+ "donate",
698
+ "submit_application",
699
+ "custom"
700
+ ]
701
+ },
702
+ "external:enums/reach-unit.json": {
703
+ "type": "string",
704
+ "enum": [
705
+ "individuals",
706
+ "households",
707
+ "devices",
708
+ "accounts",
709
+ "cookies",
710
+ "custom"
711
+ ]
712
+ },
713
+ "external:core/brand-ref.json": {
714
+ "type": "object",
715
+ "properties": {
716
+ "domain": {
717
+ "type": "string",
718
+ "pattern": "^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$"
719
+ },
720
+ "brand_id": {
721
+ "$ref": "#/$defs/external:core~1brand-id.json"
722
+ },
723
+ "countries": {
724
+ "type": "array",
725
+ "items": {
726
+ "type": "string",
727
+ "pattern": "^[A-Z]{2}$"
728
+ },
729
+ "minItems": 1,
730
+ "uniqueItems": true
731
+ },
732
+ "industries": {
733
+ "type": "array",
734
+ "items": {
735
+ "type": "string"
736
+ }
737
+ },
738
+ "data_subject_contestation": {
739
+ "type": "object",
740
+ "properties": {
741
+ "url": {
742
+ "type": "string",
743
+ "format": "uri",
744
+ "pattern": "^https://"
745
+ },
746
+ "email": {
747
+ "type": "string",
748
+ "format": "email"
749
+ },
750
+ "languages": {
751
+ "type": "array",
752
+ "items": {
753
+ "type": "string"
754
+ }
755
+ }
756
+ },
757
+ "anyOf": [
758
+ {
759
+ "required": [
760
+ "url"
761
+ ]
762
+ },
763
+ {
764
+ "required": [
765
+ "email"
766
+ ]
767
+ }
768
+ ],
769
+ "additionalProperties": false
770
+ },
771
+ "brand_kit_override": {
772
+ "type": "object",
773
+ "properties": {
774
+ "logo": {
775
+ "$ref": "#/$defs/external:core~1assets~1image-asset.json"
776
+ },
777
+ "colors": {
778
+ "type": "object",
779
+ "properties": {
780
+ "primary": {
781
+ "type": "string",
782
+ "pattern": "^#[0-9a-fA-F]{6}$"
783
+ },
784
+ "secondary": {
785
+ "type": "string",
786
+ "pattern": "^#[0-9a-fA-F]{6}$"
787
+ },
788
+ "accent": {
789
+ "type": "string",
790
+ "pattern": "^#[0-9a-fA-F]{6}$"
791
+ }
792
+ },
793
+ "additionalProperties": true
794
+ },
795
+ "voice": {
796
+ "type": "string"
797
+ },
798
+ "tagline": {
799
+ "type": "string"
800
+ }
801
+ },
802
+ "additionalProperties": true
803
+ }
804
+ },
805
+ "required": [
806
+ "domain"
807
+ ],
808
+ "additionalProperties": false
809
+ },
810
+ "external:core/brand-id.json": {
811
+ "type": "string",
812
+ "pattern": "^[a-z0-9_]+$",
813
+ "x-entity": "advertiser_brand"
814
+ },
815
+ "external:core/assets/image-asset.json": {
816
+ "type": "object",
817
+ "properties": {
818
+ "asset_type": {
819
+ "type": "string",
820
+ "const": "image"
821
+ },
822
+ "url": {
823
+ "type": "string",
824
+ "format": "uri"
825
+ },
826
+ "width": {
827
+ "type": "integer",
828
+ "minimum": 1
829
+ },
830
+ "height": {
831
+ "type": "integer",
832
+ "minimum": 1
833
+ },
834
+ "pixel_ratio": {
835
+ "type": "number",
836
+ "exclusiveMinimum": 0
837
+ },
838
+ "format": {
839
+ "type": "string"
840
+ },
841
+ "alt_text": {
842
+ "type": "string",
843
+ "x-accessibility": true
844
+ },
845
+ "provenance": {
846
+ "$ref": "#/$defs/external:core~1provenance.json"
847
+ }
848
+ },
849
+ "required": [
850
+ "asset_type",
851
+ "url",
852
+ "width",
853
+ "height"
854
+ ],
855
+ "additionalProperties": true
856
+ },
857
+ "external:core/provenance.json": {
858
+ "type": "object",
859
+ "properties": {
860
+ "digital_source_type": {
861
+ "$ref": "#/$defs/external:enums~1digital-source-type.json"
862
+ },
863
+ "synthetic_depiction": {
864
+ "type": "boolean"
865
+ },
866
+ "ai_tool": {
867
+ "type": "object",
868
+ "properties": {
869
+ "name": {
870
+ "type": "string"
871
+ },
872
+ "version": {
873
+ "type": "string"
874
+ },
875
+ "provider": {
876
+ "type": "string"
877
+ }
878
+ },
879
+ "required": [
880
+ "name"
881
+ ]
882
+ },
883
+ "human_oversight": {
884
+ "type": "string",
885
+ "enum": [
886
+ "none",
887
+ "prompt_only",
888
+ "selected",
889
+ "edited",
890
+ "directed"
891
+ ]
892
+ },
893
+ "declared_by": {
894
+ "type": "object",
895
+ "properties": {
896
+ "agent_url": {
897
+ "type": "string",
898
+ "format": "uri"
899
+ },
900
+ "role": {
901
+ "type": "string",
902
+ "enum": [
903
+ "creator",
904
+ "advertiser",
905
+ "agency",
906
+ "platform",
907
+ "tool"
908
+ ]
909
+ }
910
+ },
911
+ "required": [
912
+ "role"
913
+ ]
914
+ },
915
+ "declared_at": {
916
+ "type": "string",
917
+ "format": "date-time"
918
+ },
919
+ "created_time": {
920
+ "type": "string",
921
+ "format": "date-time"
922
+ },
923
+ "c2pa": {
924
+ "type": "object",
925
+ "properties": {
926
+ "manifest_url": {
927
+ "type": "string",
928
+ "format": "uri"
929
+ }
930
+ },
931
+ "required": [
932
+ "manifest_url"
933
+ ]
934
+ },
935
+ "embedded_provenance": {
936
+ "type": "array",
937
+ "minItems": 1,
938
+ "items": {
939
+ "type": "object",
940
+ "properties": {
941
+ "method": {
942
+ "$ref": "#/$defs/external:enums~1embedded-provenance-method.json"
943
+ },
944
+ "standard": {
945
+ "type": "string"
946
+ },
947
+ "provider": {
948
+ "type": "string"
949
+ },
950
+ "verify_agent": {
951
+ "type": "object",
952
+ "properties": {
953
+ "agent_url": {
954
+ "type": "string",
955
+ "format": "uri",
956
+ "pattern": "^https://"
957
+ },
958
+ "feature_id": {
959
+ "type": "string"
960
+ }
961
+ },
962
+ "required": [
963
+ "agent_url"
964
+ ],
965
+ "additionalProperties": false
966
+ },
967
+ "embedded_at": {
968
+ "type": "string",
969
+ "format": "date-time"
970
+ }
971
+ },
972
+ "required": [
973
+ "method",
974
+ "provider"
975
+ ]
976
+ }
977
+ },
978
+ "watermarks": {
979
+ "type": "array",
980
+ "minItems": 1,
981
+ "items": {
982
+ "type": "object",
983
+ "properties": {
984
+ "media_type": {
985
+ "$ref": "#/$defs/external:enums~1watermark-media-type.json"
986
+ },
987
+ "provider": {
988
+ "type": "string"
989
+ },
990
+ "verify_agent": {
991
+ "type": "object",
992
+ "properties": {
993
+ "agent_url": {
994
+ "type": "string",
995
+ "format": "uri",
996
+ "pattern": "^https://"
997
+ },
998
+ "feature_id": {
999
+ "type": "string"
1000
+ }
1001
+ },
1002
+ "required": [
1003
+ "agent_url"
1004
+ ],
1005
+ "additionalProperties": false
1006
+ },
1007
+ "c2pa_action": {
1008
+ "$ref": "#/$defs/external:enums~1c2pa-watermark-action.json"
1009
+ },
1010
+ "embedded_at": {
1011
+ "type": "string",
1012
+ "format": "date-time"
1013
+ }
1014
+ },
1015
+ "required": [
1016
+ "media_type",
1017
+ "provider"
1018
+ ]
1019
+ }
1020
+ },
1021
+ "disclosure": {
1022
+ "type": "object",
1023
+ "properties": {
1024
+ "required": {
1025
+ "type": "boolean"
1026
+ },
1027
+ "jurisdictions": {
1028
+ "type": "array",
1029
+ "items": {
1030
+ "type": "object",
1031
+ "properties": {
1032
+ "country": {
1033
+ "type": "string"
1034
+ },
1035
+ "region": {
1036
+ "type": "string"
1037
+ },
1038
+ "regulation": {
1039
+ "type": "string"
1040
+ },
1041
+ "label_text": {
1042
+ "type": "string"
1043
+ },
1044
+ "render_guidance": {
1045
+ "type": "object",
1046
+ "minProperties": 1,
1047
+ "properties": {
1048
+ "persistence": {
1049
+ "$ref": "#/$defs/external:enums~1disclosure-persistence.json"
1050
+ },
1051
+ "min_duration_ms": {
1052
+ "type": "integer",
1053
+ "minimum": 1
1054
+ },
1055
+ "positions": {
1056
+ "type": "array",
1057
+ "items": {
1058
+ "$ref": "#/$defs/external:enums~1disclosure-position.json"
1059
+ },
1060
+ "minItems": 1,
1061
+ "uniqueItems": true
1062
+ },
1063
+ "ext": {
1064
+ "$ref": "#/$defs/external:core~1ext.json"
1065
+ }
1066
+ }
1067
+ }
1068
+ },
1069
+ "required": [
1070
+ "country",
1071
+ "regulation"
1072
+ ]
1073
+ },
1074
+ "minItems": 1
1075
+ }
1076
+ },
1077
+ "required": [
1078
+ "required"
1079
+ ]
1080
+ },
1081
+ "verification": {
1082
+ "type": "array",
1083
+ "minItems": 1,
1084
+ "items": {
1085
+ "type": "object",
1086
+ "properties": {
1087
+ "verified_by": {
1088
+ "type": "string"
1089
+ },
1090
+ "verified_time": {
1091
+ "type": "string",
1092
+ "format": "date-time"
1093
+ },
1094
+ "result": {
1095
+ "type": "string",
1096
+ "enum": [
1097
+ "authentic",
1098
+ "ai_generated",
1099
+ "ai_modified",
1100
+ "inconclusive"
1101
+ ]
1102
+ },
1103
+ "confidence": {
1104
+ "type": "number",
1105
+ "minimum": 0,
1106
+ "maximum": 1
1107
+ },
1108
+ "details_url": {
1109
+ "type": "string",
1110
+ "format": "uri"
1111
+ }
1112
+ },
1113
+ "required": [
1114
+ "verified_by",
1115
+ "result"
1116
+ ]
1117
+ }
1118
+ },
1119
+ "ext": {
1120
+ "$ref": "#/$defs/external:core~1ext.json"
1121
+ }
1122
+ }
1123
+ },
1124
+ "external:enums/digital-source-type.json": {
1125
+ "type": "string",
1126
+ "enum": [
1127
+ "digital_capture",
1128
+ "digital_creation",
1129
+ "trained_algorithmic_media",
1130
+ "composite_with_trained_algorithmic_media",
1131
+ "algorithmic_media",
1132
+ "composite_capture",
1133
+ "composite_synthetic",
1134
+ "human_edits",
1135
+ "data_driven_media"
1136
+ ]
1137
+ },
1138
+ "external:enums/embedded-provenance-method.json": {
1139
+ "type": "string",
1140
+ "enum": [
1141
+ "manifest_wrapper",
1142
+ "provenance_markers"
1143
+ ]
1144
+ },
1145
+ "external:enums/watermark-media-type.json": {
1146
+ "type": "string",
1147
+ "enum": [
1148
+ "audio",
1149
+ "image",
1150
+ "video",
1151
+ "text"
1152
+ ]
1153
+ },
1154
+ "external:enums/c2pa-watermark-action.json": {
1155
+ "type": "string",
1156
+ "enum": [
1157
+ "c2pa.watermarked.bound",
1158
+ "c2pa.watermarked.unbound"
1159
+ ]
1160
+ },
1161
+ "external:enums/disclosure-persistence.json": {
1162
+ "type": "string",
1163
+ "enum": [
1164
+ "continuous",
1165
+ "initial",
1166
+ "flexible"
1167
+ ]
1168
+ },
1169
+ "external:enums/disclosure-position.json": {
1170
+ "type": "string",
1171
+ "enum": [
1172
+ "prominent",
1173
+ "footer",
1174
+ "audio",
1175
+ "subtitle",
1176
+ "overlay",
1177
+ "end_card",
1178
+ "pre_roll",
1179
+ "companion"
1180
+ ]
1181
+ },
1182
+ "external:core/ext.json": {
1183
+ "type": "object",
1184
+ "additionalProperties": true
1185
+ },
1186
+ "external:enums/viewability-standard.json": {
1187
+ "type": "string",
1188
+ "enum": [
1189
+ "mrc",
1190
+ "groupm"
1191
+ ]
1192
+ },
1193
+ "external:enums/action-source.json": {
1194
+ "type": "string",
1195
+ "enum": [
1196
+ "website",
1197
+ "app",
1198
+ "offline",
1199
+ "phone_call",
1200
+ "chat",
1201
+ "email",
1202
+ "in_store",
1203
+ "system_generated",
1204
+ "other"
1205
+ ]
1206
+ },
1207
+ "external:core/vendor-metric-value.json": {
1208
+ "type": "object",
1209
+ "properties": {
1210
+ "vendor": {
1211
+ "$ref": "#/$defs/external:core~1brand-ref.json"
1212
+ },
1213
+ "metric_id": {
1214
+ "$ref": "#/$defs/external:core~1vendor-metric-id.json"
1215
+ },
1216
+ "value": {
1217
+ "type": "number"
1218
+ },
1219
+ "unit": {
1220
+ "type": "string"
1221
+ },
1222
+ "measurable_impressions": {
1223
+ "type": "number",
1224
+ "minimum": 0
1225
+ },
1226
+ "breakdown": {
1227
+ "type": "object",
1228
+ "x-adcp-open-payload": true,
1229
+ "additionalProperties": true
1230
+ }
1231
+ },
1232
+ "required": [
1233
+ "vendor",
1234
+ "metric_id",
1235
+ "value"
1236
+ ],
1237
+ "additionalProperties": false
1238
+ },
1239
+ "external:core/vendor-metric-id.json": {
1240
+ "type": "string",
1241
+ "x-entity": "vendor_metric",
1242
+ "minLength": 1,
1243
+ "maxLength": 64,
1244
+ "pattern": "^[a-z][a-z0-9_]*$"
1245
+ },
1246
+ "external:enums/delivery-status.json": {
1247
+ "type": "string",
1248
+ "enum": [
1249
+ "delivering",
1250
+ "not_delivering",
1251
+ "completed",
1252
+ "budget_exhausted",
1253
+ "flight_ended",
1254
+ "goal_met"
1255
+ ]
1256
+ },
1257
+ "external:core/error.json": {
1258
+ "type": "object",
1259
+ "properties": {
1260
+ "code": {
1261
+ "type": "string",
1262
+ "minLength": 1,
1263
+ "maxLength": 64
1264
+ },
1265
+ "message": {
1266
+ "type": "string"
1267
+ },
1268
+ "field": {
1269
+ "type": "string"
1270
+ },
1271
+ "suggestion": {
1272
+ "type": "string"
1273
+ },
1274
+ "retry_after": {
1275
+ "type": "number",
1276
+ "minimum": 1,
1277
+ "maximum": 3600
1278
+ },
1279
+ "issues": {
1280
+ "type": "array",
1281
+ "items": {
1282
+ "type": "object",
1283
+ "properties": {
1284
+ "pointer": {
1285
+ "type": "string"
1286
+ },
1287
+ "message": {
1288
+ "type": "string"
1289
+ },
1290
+ "keyword": {
1291
+ "type": "string"
1292
+ },
1293
+ "schemaPath": {
1294
+ "type": "string"
1295
+ },
1296
+ "schema_id": {
1297
+ "type": "string"
1298
+ },
1299
+ "discriminator": {
1300
+ "type": "array",
1301
+ "items": {
1302
+ "type": "object",
1303
+ "properties": {
1304
+ "property_name": {
1305
+ "type": "string"
1306
+ },
1307
+ "value": {
1308
+ "type": [
1309
+ "string",
1310
+ "number",
1311
+ "boolean",
1312
+ "null"
1313
+ ]
1314
+ }
1315
+ },
1316
+ "required": [
1317
+ "property_name",
1318
+ "value"
1319
+ ],
1320
+ "additionalProperties": false
1321
+ }
1322
+ }
1323
+ },
1324
+ "required": [
1325
+ "pointer",
1326
+ "message",
1327
+ "keyword"
1328
+ ],
1329
+ "additionalProperties": true
1330
+ }
1331
+ },
1332
+ "details": {
1333
+ "type": "object",
1334
+ "additionalProperties": true
1335
+ },
1336
+ "recovery": {
1337
+ "type": "string",
1338
+ "enum": [
1339
+ "transient",
1340
+ "correctable",
1341
+ "terminal"
1342
+ ]
1343
+ },
1344
+ "source": {
1345
+ "type": "string",
1346
+ "enum": [
1347
+ "producer",
1348
+ "sdk"
1349
+ ]
1350
+ },
1351
+ "sdk_id": {
1352
+ "type": "string"
1353
+ }
1354
+ },
1355
+ "required": [
1356
+ "code",
1357
+ "message"
1358
+ ],
1359
+ "additionalProperties": true
1360
+ },
1361
+ "external:core/context.json": {
1362
+ "type": "object",
1363
+ "additionalProperties": true
1364
+ }
1365
+ }
1366
+ }