@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,3780 @@
1
+ {
2
+ "type": "object",
3
+ "properties": {
4
+ "adcp_version": {
5
+ "$ref": "#/$defs/external:core~1version-envelope.json/properties/adcp_version"
6
+ },
7
+ "adcp_major_version": {
8
+ "$ref": "#/$defs/external:core~1version-envelope.json/properties/adcp_major_version"
9
+ },
10
+ "idempotency_key": {
11
+ "type": "string"
12
+ },
13
+ "context_id": {
14
+ "type": "string"
15
+ },
16
+ "context": {
17
+ "allOf": [
18
+ {
19
+ "$ref": "#/$defs/external:core~1context.json"
20
+ }
21
+ ]
22
+ },
23
+ "governance_context": {
24
+ "type": "string"
25
+ },
26
+ "push_notification_config": {
27
+ "allOf": [
28
+ {
29
+ "$ref": "#/$defs/external:core~1push-notification-config.json"
30
+ }
31
+ ]
32
+ },
33
+ "account": {
34
+ "allOf": [
35
+ {
36
+ "$ref": "#/$defs/external:core~1canonical-account-ref.json"
37
+ }
38
+ ]
39
+ },
40
+ "brand": {
41
+ "$ref": "#/$defs/external:core~1brand-key.json"
42
+ },
43
+ "criteria": {
44
+ "$ref": "#/$defs/external:media-buy~1product-discovery-criteria.json"
45
+ },
46
+ "fields": {
47
+ "$ref": "#/$defs/external:media-buy~1product-fields.json"
48
+ },
49
+ "cursor": {
50
+ "type": "string"
51
+ },
52
+ "max_results": {
53
+ "type": "integer"
54
+ },
55
+ "if_feed_version": {
56
+ "type": "string"
57
+ },
58
+ "if_pricing_version": {
59
+ "type": "string"
60
+ }
61
+ },
62
+ "allOf": [
63
+ {
64
+ "if": {
65
+ "properties": {
66
+ "criteria": {
67
+ "required": [
68
+ "catalog"
69
+ ]
70
+ }
71
+ },
72
+ "required": [
73
+ "criteria"
74
+ ]
75
+ },
76
+ "then": {
77
+ "anyOf": [
78
+ {
79
+ "required": [
80
+ "brand"
81
+ ]
82
+ },
83
+ {
84
+ "properties": {
85
+ "account": {
86
+ "required": [
87
+ "brand",
88
+ "operator"
89
+ ]
90
+ }
91
+ },
92
+ "required": [
93
+ "account"
94
+ ]
95
+ }
96
+ ]
97
+ }
98
+ },
99
+ {
100
+ "not": {
101
+ "properties": {
102
+ "account": {
103
+ "required": [
104
+ "brand",
105
+ "operator"
106
+ ]
107
+ }
108
+ },
109
+ "required": [
110
+ "account",
111
+ "brand"
112
+ ]
113
+ }
114
+ }
115
+ ],
116
+ "$defs": {
117
+ "external:core/version-envelope.json": {
118
+ "type": "object",
119
+ "properties": {
120
+ "adcp_version": {
121
+ "type": "string"
122
+ },
123
+ "adcp_major_version": {
124
+ "type": "integer"
125
+ }
126
+ }
127
+ },
128
+ "external:core/context.json": {
129
+ "type": "object",
130
+ "additionalProperties": true
131
+ },
132
+ "external:core/push-notification-config.json": {
133
+ "type": "object",
134
+ "properties": {
135
+ "url": {
136
+ "type": "string"
137
+ },
138
+ "operation_id": {
139
+ "type": "string"
140
+ },
141
+ "token": {
142
+ "type": "string"
143
+ },
144
+ "authentication": {
145
+ "type": "object",
146
+ "properties": {
147
+ "schemes": {
148
+ "type": "array",
149
+ "items": {
150
+ "$ref": "#/$defs/external:enums~1auth-scheme.json"
151
+ }
152
+ },
153
+ "credentials": {
154
+ "type": "string"
155
+ }
156
+ },
157
+ "required": [
158
+ "schemes",
159
+ "credentials"
160
+ ]
161
+ }
162
+ },
163
+ "required": [
164
+ "url"
165
+ ]
166
+ },
167
+ "external:enums/auth-scheme.json": {
168
+ "type": "string",
169
+ "enum": [
170
+ "Bearer",
171
+ "HMAC-SHA256"
172
+ ]
173
+ },
174
+ "external:core/canonical-account-ref.json": {
175
+ "type": "object",
176
+ "anyOf": [
177
+ {
178
+ "properties": {
179
+ "account_id": {
180
+ "type": "string"
181
+ }
182
+ },
183
+ "required": [
184
+ "account_id"
185
+ ]
186
+ },
187
+ {
188
+ "properties": {
189
+ "brand": {
190
+ "$ref": "#/$defs/external:core~1brand-key.json"
191
+ },
192
+ "operator": {
193
+ "type": "string"
194
+ },
195
+ "operator_unit": {
196
+ "$ref": "#/$defs/external:core~1operator-unit.json"
197
+ },
198
+ "currency": {
199
+ "type": "string"
200
+ },
201
+ "timezone": {
202
+ "type": "string"
203
+ },
204
+ "sandbox": {
205
+ "type": "boolean"
206
+ }
207
+ },
208
+ "required": [
209
+ "brand",
210
+ "operator"
211
+ ]
212
+ }
213
+ ]
214
+ },
215
+ "external:core/brand-key.json": {
216
+ "type": "object",
217
+ "properties": {
218
+ "domain": {
219
+ "type": "string"
220
+ },
221
+ "brand_id": {
222
+ "$ref": "#/$defs/external:core~1brand-id.json"
223
+ },
224
+ "countries": {
225
+ "type": "array",
226
+ "items": {
227
+ "type": "string"
228
+ }
229
+ }
230
+ },
231
+ "required": [
232
+ "domain"
233
+ ]
234
+ },
235
+ "external:core/brand-id.json": {
236
+ "type": "string"
237
+ },
238
+ "external:core/operator-unit.json": {
239
+ "type": "object",
240
+ "properties": {
241
+ "id": {
242
+ "type": "string"
243
+ },
244
+ "name": {
245
+ "type": "string"
246
+ }
247
+ },
248
+ "required": [
249
+ "id"
250
+ ]
251
+ },
252
+ "external:media-buy/product-discovery-criteria.json": {
253
+ "type": "object",
254
+ "properties": {
255
+ "product_ids": {
256
+ "type": "array",
257
+ "items": {
258
+ "type": "string"
259
+ }
260
+ },
261
+ "offer_filters": {
262
+ "$ref": "#/$defs/external:core~1product-offer-filters.json"
263
+ },
264
+ "targeting_overlay": {
265
+ "$ref": "#/$defs/external:core~1targeting.json"
266
+ },
267
+ "required_overlay_support": {
268
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json"
269
+ },
270
+ "catalog": {
271
+ "$ref": "#/$defs/external:core~1catalog-selection.json"
272
+ },
273
+ "policy_ids": {
274
+ "type": "array",
275
+ "items": {
276
+ "type": "string"
277
+ }
278
+ },
279
+ "ext": {
280
+ "type": "object",
281
+ "additionalProperties": true
282
+ }
283
+ }
284
+ },
285
+ "external:core/product-offer-filters.json": {
286
+ "type": "object",
287
+ "properties": {
288
+ "delivery_type": {
289
+ "$ref": "#/$defs/external:enums~1delivery-type.json"
290
+ },
291
+ "exclusivity": {
292
+ "$ref": "#/$defs/external:enums~1exclusivity.json"
293
+ },
294
+ "is_fixed_price": {
295
+ "type": "boolean"
296
+ },
297
+ "pricing_structures": {
298
+ "type": "array",
299
+ "items": {
300
+ "$ref": "#/$defs/external:enums~1pricing-structure.json"
301
+ }
302
+ },
303
+ "pricing_currencies": {
304
+ "type": "array",
305
+ "items": {
306
+ "type": "string"
307
+ }
308
+ },
309
+ "format_kinds": {
310
+ "type": "array",
311
+ "items": {
312
+ "$ref": "#/$defs/external:core~1canonical-format-kind.json"
313
+ }
314
+ },
315
+ "format_option_refs": {
316
+ "type": "array",
317
+ "items": {
318
+ "$ref": "#/$defs/external:core~1format-option-ref.json"
319
+ }
320
+ },
321
+ "standard_formats_only": {
322
+ "type": "boolean"
323
+ },
324
+ "min_exposures": {
325
+ "type": "integer"
326
+ },
327
+ "start_date": {
328
+ "type": "string"
329
+ },
330
+ "end_date": {
331
+ "type": "string"
332
+ },
333
+ "budget_range": {
334
+ "$ref": "#/$defs/external:core~1budget-range.json"
335
+ },
336
+ "countries": {
337
+ "type": "array",
338
+ "items": {
339
+ "type": "string"
340
+ }
341
+ },
342
+ "property_list": {
343
+ "$ref": "#/$defs/external:core~1property-list-ref.json"
344
+ },
345
+ "channels": {
346
+ "type": "array",
347
+ "items": {
348
+ "$ref": "#/$defs/external:enums~1channels.json"
349
+ }
350
+ },
351
+ "video_placement_types": {
352
+ "type": "array",
353
+ "items": {
354
+ "$ref": "#/$defs/external:enums~1video-placement-type.json"
355
+ }
356
+ },
357
+ "audio_distribution_types": {
358
+ "type": "array",
359
+ "items": {
360
+ "$ref": "#/$defs/external:enums~1audio-distribution-type.json"
361
+ }
362
+ },
363
+ "sponsored_placement_types": {
364
+ "type": "array",
365
+ "items": {
366
+ "$ref": "#/$defs/external:enums~1sponsored-placement-type.json"
367
+ }
368
+ },
369
+ "social_placement_surfaces": {
370
+ "type": "array",
371
+ "items": {
372
+ "$ref": "#/$defs/external:enums~1social-placement-surface.json"
373
+ }
374
+ },
375
+ "trusted_match": {
376
+ "type": "object",
377
+ "properties": {
378
+ "providers": {
379
+ "type": "array",
380
+ "items": {
381
+ "type": "object",
382
+ "properties": {
383
+ "agent_url": {
384
+ "type": "string"
385
+ },
386
+ "context_match": {
387
+ "type": "boolean"
388
+ },
389
+ "identity_match": {
390
+ "type": "boolean"
391
+ }
392
+ },
393
+ "required": [
394
+ "agent_url"
395
+ ],
396
+ "additionalProperties": true
397
+ }
398
+ },
399
+ "response_types": {
400
+ "type": "array",
401
+ "items": {
402
+ "$ref": "#/$defs/external:enums~1response-type.json"
403
+ }
404
+ }
405
+ }
406
+ },
407
+ "required_features": {
408
+ "allOf": [
409
+ {
410
+ "$ref": "#/$defs/external:core~1canonical-media-buy-features.json"
411
+ }
412
+ ]
413
+ },
414
+ "required_performance_standards": {
415
+ "type": "array",
416
+ "items": {
417
+ "type": "object",
418
+ "properties": {
419
+ "metric": {
420
+ "$ref": "#/$defs/external:enums~1performance-standard-metric.json"
421
+ },
422
+ "threshold": {
423
+ "type": "number"
424
+ },
425
+ "standard": {
426
+ "$ref": "#/$defs/external:enums~1viewability-standard.json"
427
+ },
428
+ "vendor": {
429
+ "$ref": "#/$defs/external:core~1brand-key.json"
430
+ }
431
+ },
432
+ "required": [
433
+ "metric",
434
+ "threshold",
435
+ "vendor"
436
+ ],
437
+ "additionalProperties": true
438
+ }
439
+ },
440
+ "required_metrics": {
441
+ "type": "array",
442
+ "items": {
443
+ "$ref": "#/$defs/external:enums~1available-metric.json"
444
+ }
445
+ },
446
+ "required_vendor_metrics": {
447
+ "type": "array",
448
+ "items": {
449
+ "type": "object",
450
+ "properties": {
451
+ "vendor": {
452
+ "$ref": "#/$defs/external:core~1brand-key.json"
453
+ },
454
+ "metric_id": {
455
+ "$ref": "#/$defs/external:core~1vendor-metric-id.json"
456
+ }
457
+ },
458
+ "anyOf": [
459
+ {
460
+ "required": [
461
+ "vendor"
462
+ ]
463
+ },
464
+ {
465
+ "required": [
466
+ "metric_id"
467
+ ]
468
+ }
469
+ ]
470
+ }
471
+ },
472
+ "audience_evidence_requirements": {
473
+ "$ref": "#/$defs/external:core~1product-audience-evidence-requirements.json"
474
+ },
475
+ "ext": {
476
+ "$ref": "#/$defs/external:core~1ext.json"
477
+ }
478
+ }
479
+ },
480
+ "external:enums/delivery-type.json": {
481
+ "type": "string",
482
+ "enum": [
483
+ "guaranteed",
484
+ "non_guaranteed"
485
+ ]
486
+ },
487
+ "external:enums/exclusivity.json": {
488
+ "type": "string",
489
+ "enum": [
490
+ "none",
491
+ "category",
492
+ "exclusive"
493
+ ]
494
+ },
495
+ "external:enums/pricing-structure.json": {
496
+ "type": "string",
497
+ "enum": [
498
+ "fixed",
499
+ "auction",
500
+ "contingent"
501
+ ]
502
+ },
503
+ "external:core/canonical-format-kind.json": {
504
+ "type": "string",
505
+ "enum": [
506
+ "image",
507
+ "html5",
508
+ "display_tag",
509
+ "image_carousel",
510
+ "video_hosted",
511
+ "video_vast",
512
+ "audio_hosted",
513
+ "audio_daast",
514
+ "sponsored_placement",
515
+ "native_in_feed",
516
+ "responsive_creative",
517
+ "agent_placement",
518
+ "custom"
519
+ ]
520
+ },
521
+ "external:core/format-option-ref.json": {
522
+ "type": "object",
523
+ "discriminator": {
524
+ "propertyName": "scope"
525
+ },
526
+ "oneOf": [
527
+ {
528
+ "type": "object",
529
+ "properties": {
530
+ "scope": {
531
+ "type": "string",
532
+ "const": "publisher"
533
+ },
534
+ "publisher_domain": {
535
+ "type": "string"
536
+ },
537
+ "format_option_id": {
538
+ "type": "string"
539
+ }
540
+ },
541
+ "required": [
542
+ "scope",
543
+ "publisher_domain",
544
+ "format_option_id"
545
+ ],
546
+ "additionalProperties": true
547
+ },
548
+ {
549
+ "type": "object",
550
+ "properties": {
551
+ "scope": {
552
+ "type": "string",
553
+ "const": "product"
554
+ },
555
+ "format_option_id": {
556
+ "type": "string"
557
+ },
558
+ "publisher_domain": false
559
+ },
560
+ "required": [
561
+ "scope",
562
+ "format_option_id"
563
+ ],
564
+ "additionalProperties": true
565
+ }
566
+ ],
567
+ "additionalProperties": true
568
+ },
569
+ "external:core/budget-range.json": {
570
+ "type": "object",
571
+ "properties": {
572
+ "min": {
573
+ "type": "number"
574
+ },
575
+ "max": {
576
+ "type": "number"
577
+ },
578
+ "currency": {
579
+ "type": "string"
580
+ }
581
+ },
582
+ "required": [
583
+ "currency"
584
+ ],
585
+ "anyOf": [
586
+ {
587
+ "required": [
588
+ "min"
589
+ ]
590
+ },
591
+ {
592
+ "required": [
593
+ "max"
594
+ ]
595
+ }
596
+ ],
597
+ "additionalProperties": true
598
+ },
599
+ "external:core/property-list-ref.json": {
600
+ "type": "object",
601
+ "properties": {
602
+ "agent_url": {
603
+ "type": "string"
604
+ },
605
+ "list_id": {
606
+ "type": "string"
607
+ },
608
+ "auth_token": {
609
+ "type": "string"
610
+ }
611
+ },
612
+ "required": [
613
+ "agent_url",
614
+ "list_id"
615
+ ]
616
+ },
617
+ "external:enums/channels.json": {
618
+ "type": "string",
619
+ "enum": [
620
+ "display",
621
+ "olv",
622
+ "social",
623
+ "search",
624
+ "ctv",
625
+ "linear_tv",
626
+ "radio",
627
+ "streaming_audio",
628
+ "podcast",
629
+ "dooh",
630
+ "ooh",
631
+ "print",
632
+ "cinema",
633
+ "email",
634
+ "gaming",
635
+ "retail_media",
636
+ "influencer",
637
+ "affiliate",
638
+ "product_placement",
639
+ "sponsored_intelligence"
640
+ ]
641
+ },
642
+ "external:enums/video-placement-type.json": {
643
+ "type": "string",
644
+ "enum": [
645
+ "instream",
646
+ "accompanying_content",
647
+ "interstitial",
648
+ "standalone"
649
+ ]
650
+ },
651
+ "external:enums/audio-distribution-type.json": {
652
+ "type": "string",
653
+ "enum": [
654
+ "music_streaming_service",
655
+ "fm_am_broadcast",
656
+ "podcast",
657
+ "catch_up_radio",
658
+ "web_radio",
659
+ "video_game",
660
+ "text_to_speech"
661
+ ]
662
+ },
663
+ "external:enums/sponsored-placement-type.json": {
664
+ "type": "string",
665
+ "enum": [
666
+ "sponsored_search",
667
+ "sponsored_display",
668
+ "sponsored_native"
669
+ ]
670
+ },
671
+ "external:enums/social-placement-surface.json": {
672
+ "type": "string",
673
+ "enum": [
674
+ "feed",
675
+ "stories",
676
+ "short_video",
677
+ "explore",
678
+ "search"
679
+ ]
680
+ },
681
+ "external:enums/response-type.json": {
682
+ "type": "string",
683
+ "enum": [
684
+ "activation",
685
+ "catalog_items",
686
+ "creative",
687
+ "deal"
688
+ ]
689
+ },
690
+ "external:core/canonical-media-buy-features.json": {
691
+ "type": "object",
692
+ "properties": {
693
+ "property_filtering": {
694
+ "type": "boolean"
695
+ },
696
+ "catalog_management": {
697
+ "type": "boolean"
698
+ },
699
+ "reporting_commitment_snapshots": {
700
+ "type": "boolean"
701
+ },
702
+ "seller_optimized_budget": {
703
+ "type": "boolean"
704
+ },
705
+ "bidding_policy": {
706
+ "$ref": "#/$defs/external:core~1bidding-policy-capability.json"
707
+ }
708
+ },
709
+ "additionalProperties": {
710
+ "type": "boolean"
711
+ }
712
+ },
713
+ "external:core/bidding-policy-capability.json": {
714
+ "type": "object",
715
+ "properties": {
716
+ "media_buy": {
717
+ "$ref": "#/$defs/external:core~1bidding-policy-capability.json/$defs/scope_capability"
718
+ },
719
+ "package": {
720
+ "$ref": "#/$defs/external:core~1bidding-policy-capability.json/$defs/scope_capability"
721
+ }
722
+ },
723
+ "$defs": {
724
+ "scope_capability": {
725
+ "type": "object",
726
+ "properties": {
727
+ "fixed": {
728
+ "$ref": "#/$defs/external:core~1bidding-policy-capability.json/$defs/policy_profile"
729
+ },
730
+ "seller_optimized": {
731
+ "$ref": "#/$defs/external:core~1bidding-policy-capability.json/$defs/policy_profile"
732
+ }
733
+ }
734
+ },
735
+ "policy_profile": {
736
+ "type": "object",
737
+ "properties": {
738
+ "modes": {
739
+ "type": "array",
740
+ "items": {
741
+ "type": "string",
742
+ "enum": [
743
+ "automatic",
744
+ "bid_amount",
745
+ "max_bid",
746
+ "cost_per",
747
+ "roas"
748
+ ]
749
+ }
750
+ },
751
+ "cost_per_strengths": {
752
+ "type": "array",
753
+ "items": {
754
+ "type": "string",
755
+ "enum": [
756
+ "cap",
757
+ "target"
758
+ ]
759
+ }
760
+ },
761
+ "roas_strengths": {
762
+ "type": "array",
763
+ "items": {
764
+ "type": "string",
765
+ "enum": [
766
+ "floor",
767
+ "target"
768
+ ]
769
+ }
770
+ },
771
+ "supported_combinations": {
772
+ "type": "array",
773
+ "items": {
774
+ "oneOf": [
775
+ {
776
+ "$ref": "#/$defs/external:core~1bidding-policy-capability.json/$defs/max_bid_with_cost_per"
777
+ },
778
+ {
779
+ "$ref": "#/$defs/external:core~1bidding-policy-capability.json/$defs/max_bid_with_roas"
780
+ }
781
+ ]
782
+ }
783
+ }
784
+ },
785
+ "anyOf": [
786
+ {
787
+ "required": [
788
+ "modes"
789
+ ]
790
+ },
791
+ {
792
+ "required": [
793
+ "supported_combinations"
794
+ ]
795
+ }
796
+ ],
797
+ "allOf": [
798
+ {
799
+ "if": {
800
+ "properties": {
801
+ "modes": {
802
+ "contains": {
803
+ "const": "cost_per"
804
+ }
805
+ }
806
+ },
807
+ "required": [
808
+ "modes"
809
+ ]
810
+ },
811
+ "then": {
812
+ "required": [
813
+ "cost_per_strengths"
814
+ ]
815
+ },
816
+ "else": {
817
+ "not": {
818
+ "required": [
819
+ "cost_per_strengths"
820
+ ]
821
+ }
822
+ }
823
+ },
824
+ {
825
+ "if": {
826
+ "properties": {
827
+ "modes": {
828
+ "contains": {
829
+ "const": "roas"
830
+ }
831
+ }
832
+ },
833
+ "required": [
834
+ "modes"
835
+ ]
836
+ },
837
+ "then": {
838
+ "required": [
839
+ "roas_strengths"
840
+ ]
841
+ },
842
+ "else": {
843
+ "not": {
844
+ "required": [
845
+ "roas_strengths"
846
+ ]
847
+ }
848
+ }
849
+ }
850
+ ]
851
+ },
852
+ "max_bid_with_cost_per": {
853
+ "type": "object",
854
+ "properties": {
855
+ "kind": {
856
+ "type": "string",
857
+ "const": "max_bid_with_cost_per"
858
+ },
859
+ "cost_per_strengths": {
860
+ "type": "array",
861
+ "items": {
862
+ "type": "string",
863
+ "enum": [
864
+ "cap",
865
+ "target"
866
+ ]
867
+ }
868
+ }
869
+ },
870
+ "required": [
871
+ "kind",
872
+ "cost_per_strengths"
873
+ ]
874
+ },
875
+ "max_bid_with_roas": {
876
+ "type": "object",
877
+ "properties": {
878
+ "kind": {
879
+ "type": "string",
880
+ "const": "max_bid_with_roas"
881
+ },
882
+ "roas_strengths": {
883
+ "type": "array",
884
+ "items": {
885
+ "type": "string",
886
+ "enum": [
887
+ "floor",
888
+ "target"
889
+ ]
890
+ }
891
+ }
892
+ },
893
+ "required": [
894
+ "kind",
895
+ "roas_strengths"
896
+ ]
897
+ }
898
+ }
899
+ },
900
+ "external:enums/performance-standard-metric.json": {
901
+ "type": "string",
902
+ "enum": [
903
+ "viewability",
904
+ "ivt",
905
+ "completion_rate",
906
+ "brand_safety",
907
+ "attention_score"
908
+ ]
909
+ },
910
+ "external:enums/viewability-standard.json": {
911
+ "type": "string",
912
+ "enum": [
913
+ "mrc",
914
+ "groupm"
915
+ ]
916
+ },
917
+ "external:enums/available-metric.json": {
918
+ "type": "string",
919
+ "enum": [
920
+ "impressions",
921
+ "spend",
922
+ "clicks",
923
+ "ctr",
924
+ "views",
925
+ "completed_views",
926
+ "completion_rate",
927
+ "conversions",
928
+ "conversion_value",
929
+ "commissionable_value",
930
+ "roas",
931
+ "cost_per_acquisition",
932
+ "new_to_brand_rate",
933
+ "leads",
934
+ "reach",
935
+ "frequency",
936
+ "grps",
937
+ "engagements",
938
+ "engagement_rate",
939
+ "follows",
940
+ "saves",
941
+ "profile_visits",
942
+ "viewability",
943
+ "quartile_data",
944
+ "dooh_metrics",
945
+ "cost_per_click",
946
+ "cost_per_completed_view",
947
+ "cpm",
948
+ "downloads",
949
+ "units_sold",
950
+ "new_to_brand_units",
951
+ "plays",
952
+ "incremental_sales_lift",
953
+ "brand_lift",
954
+ "foot_traffic",
955
+ "conversion_lift",
956
+ "brand_search_lift"
957
+ ]
958
+ },
959
+ "external:core/vendor-metric-id.json": {
960
+ "type": "string"
961
+ },
962
+ "external:core/product-audience-evidence-requirements.json": {
963
+ "type": "object",
964
+ "properties": {
965
+ "requirement_mode": {
966
+ "type": "string",
967
+ "enum": [
968
+ "required",
969
+ "preferred"
970
+ ]
971
+ },
972
+ "evidence_presence": {
973
+ "type": "string",
974
+ "enum": [
975
+ "required",
976
+ "when_available"
977
+ ]
978
+ },
979
+ "accepted_methodologies": {
980
+ "type": "array",
981
+ "items": {
982
+ "$ref": "#/$defs/external:enums~1audience-evidence-methodology.json"
983
+ }
984
+ },
985
+ "excluded_methodologies": {
986
+ "type": "array",
987
+ "items": {
988
+ "$ref": "#/$defs/external:enums~1audience-evidence-methodology.json"
989
+ }
990
+ },
991
+ "accepted_evidence_types": {
992
+ "type": "array",
993
+ "items": {
994
+ "type": "string",
995
+ "enum": [
996
+ "measured",
997
+ "forecast",
998
+ "seller_declared"
999
+ ]
1000
+ }
1001
+ },
1002
+ "accepted_providers": {
1003
+ "type": "array",
1004
+ "items": {
1005
+ "$ref": "#/$defs/external:core~1brand-key.json"
1006
+ }
1007
+ },
1008
+ "excluded_providers": {
1009
+ "type": "array",
1010
+ "items": {
1011
+ "$ref": "#/$defs/external:core~1brand-key.json"
1012
+ }
1013
+ },
1014
+ "accepted_subject_types": {
1015
+ "type": "array",
1016
+ "items": {
1017
+ "$ref": "#/$defs/external:enums~1audience-subject-type.json"
1018
+ }
1019
+ },
1020
+ "accepted_resolution_methods": {
1021
+ "type": "array",
1022
+ "items": {
1023
+ "$ref": "#/$defs/external:enums~1audience-resolution-method.json"
1024
+ }
1025
+ },
1026
+ "minimum_confidence": {
1027
+ "type": "number"
1028
+ },
1029
+ "maximum_age": {
1030
+ "allOf": [
1031
+ {
1032
+ "$ref": "#/$defs/external:core~1duration.json"
1033
+ },
1034
+ {
1035
+ "properties": {
1036
+ "unit": {
1037
+ "enum": [
1038
+ "seconds",
1039
+ "minutes",
1040
+ "hours",
1041
+ "days"
1042
+ ]
1043
+ }
1044
+ }
1045
+ }
1046
+ ]
1047
+ },
1048
+ "methodology_documentation_required": {
1049
+ "type": "boolean"
1050
+ },
1051
+ "independent_attestation_required": {
1052
+ "type": "boolean"
1053
+ },
1054
+ "accepted_attestation_issuers": {
1055
+ "type": "array",
1056
+ "items": {
1057
+ "discriminator": {
1058
+ "propertyName": "type"
1059
+ },
1060
+ "oneOf": [
1061
+ {
1062
+ "type": "object",
1063
+ "properties": {
1064
+ "type": {
1065
+ "type": "string",
1066
+ "const": "brand"
1067
+ },
1068
+ "brand": {
1069
+ "$ref": "#/$defs/external:core~1brand-key.json"
1070
+ },
1071
+ "ext": {
1072
+ "$ref": "#/$defs/external:core~1ext.json"
1073
+ }
1074
+ },
1075
+ "required": [
1076
+ "type",
1077
+ "brand"
1078
+ ]
1079
+ },
1080
+ {
1081
+ "type": "object",
1082
+ "properties": {
1083
+ "type": {
1084
+ "type": "string",
1085
+ "const": "agent"
1086
+ },
1087
+ "agent_url": {
1088
+ "type": "string"
1089
+ },
1090
+ "ext": {
1091
+ "$ref": "#/$defs/external:core~1ext.json"
1092
+ }
1093
+ },
1094
+ "required": [
1095
+ "type",
1096
+ "agent_url"
1097
+ ]
1098
+ },
1099
+ {
1100
+ "type": "object",
1101
+ "properties": {
1102
+ "type": {
1103
+ "type": "string",
1104
+ "const": "origin"
1105
+ },
1106
+ "origin": {
1107
+ "type": "string"
1108
+ },
1109
+ "ext": {
1110
+ "$ref": "#/$defs/external:core~1ext.json"
1111
+ }
1112
+ },
1113
+ "required": [
1114
+ "type",
1115
+ "origin"
1116
+ ]
1117
+ }
1118
+ ]
1119
+ }
1120
+ },
1121
+ "accepted_attestation_claim_types": {
1122
+ "type": "array",
1123
+ "items": {
1124
+ "type": "string"
1125
+ }
1126
+ },
1127
+ "ext": {
1128
+ "$ref": "#/$defs/external:core~1ext.json"
1129
+ }
1130
+ },
1131
+ "required": [
1132
+ "requirement_mode",
1133
+ "evidence_presence"
1134
+ ],
1135
+ "allOf": [
1136
+ {
1137
+ "if": {
1138
+ "properties": {
1139
+ "independent_attestation_required": {
1140
+ "const": true
1141
+ }
1142
+ },
1143
+ "required": [
1144
+ "independent_attestation_required"
1145
+ ]
1146
+ },
1147
+ "then": {
1148
+ "required": [
1149
+ "accepted_attestation_issuers"
1150
+ ]
1151
+ }
1152
+ }
1153
+ ]
1154
+ },
1155
+ "external:enums/audience-evidence-methodology.json": {
1156
+ "type": "string",
1157
+ "enum": [
1158
+ "observed",
1159
+ "declared",
1160
+ "derived",
1161
+ "inferred",
1162
+ "modeled",
1163
+ "projected"
1164
+ ]
1165
+ },
1166
+ "external:enums/audience-subject-type.json": {
1167
+ "type": "string",
1168
+ "enum": [
1169
+ "individual",
1170
+ "household",
1171
+ "business",
1172
+ "contextual",
1173
+ "none"
1174
+ ]
1175
+ },
1176
+ "external:enums/audience-resolution-method.json": {
1177
+ "type": "string",
1178
+ "enum": [
1179
+ "deterministic_id",
1180
+ "probabilistic_device",
1181
+ "browser",
1182
+ "geographic",
1183
+ "content_signal",
1184
+ "mixed"
1185
+ ]
1186
+ },
1187
+ "external:core/duration.json": {
1188
+ "type": "object",
1189
+ "properties": {
1190
+ "interval": {
1191
+ "type": "integer"
1192
+ },
1193
+ "unit": {
1194
+ "type": "string",
1195
+ "enum": [
1196
+ "seconds",
1197
+ "minutes",
1198
+ "hours",
1199
+ "days",
1200
+ "campaign"
1201
+ ]
1202
+ }
1203
+ },
1204
+ "required": [
1205
+ "interval",
1206
+ "unit"
1207
+ ]
1208
+ },
1209
+ "external:core/ext.json": {
1210
+ "type": "object",
1211
+ "additionalProperties": true
1212
+ },
1213
+ "external:core/targeting.json": {
1214
+ "type": "object",
1215
+ "properties": {
1216
+ "geo_countries": {
1217
+ "type": "array",
1218
+ "items": {
1219
+ "type": "string"
1220
+ }
1221
+ },
1222
+ "geo_countries_exclude": {
1223
+ "type": "array",
1224
+ "items": {
1225
+ "type": "string"
1226
+ }
1227
+ },
1228
+ "geo_regions": {
1229
+ "type": "array",
1230
+ "items": {
1231
+ "type": "string"
1232
+ }
1233
+ },
1234
+ "geo_regions_exclude": {
1235
+ "type": "array",
1236
+ "items": {
1237
+ "type": "string"
1238
+ }
1239
+ },
1240
+ "geo_metros": {
1241
+ "type": "array",
1242
+ "items": {
1243
+ "type": "object",
1244
+ "properties": {
1245
+ "system": {
1246
+ "$ref": "#/$defs/external:enums~1metro-system.json"
1247
+ },
1248
+ "values": {
1249
+ "type": "array",
1250
+ "items": {
1251
+ "type": "string"
1252
+ }
1253
+ }
1254
+ },
1255
+ "required": [
1256
+ "system",
1257
+ "values"
1258
+ ]
1259
+ }
1260
+ },
1261
+ "geo_metros_exclude": {
1262
+ "type": "array",
1263
+ "items": {
1264
+ "type": "object",
1265
+ "properties": {
1266
+ "system": {
1267
+ "$ref": "#/$defs/external:enums~1metro-system.json"
1268
+ },
1269
+ "values": {
1270
+ "type": "array",
1271
+ "items": {
1272
+ "type": "string"
1273
+ }
1274
+ }
1275
+ },
1276
+ "required": [
1277
+ "system",
1278
+ "values"
1279
+ ]
1280
+ }
1281
+ },
1282
+ "geo_postal_areas": {
1283
+ "type": "array",
1284
+ "items": {
1285
+ "$ref": "#/$defs/external:core~1postal-area.json"
1286
+ }
1287
+ },
1288
+ "geo_postal_areas_exclude": {
1289
+ "type": "array",
1290
+ "items": {
1291
+ "$ref": "#/$defs/external:core~1postal-area.json"
1292
+ }
1293
+ },
1294
+ "geo_places": {
1295
+ "type": "array",
1296
+ "items": {
1297
+ "$ref": "#/$defs/external:core~1geo-place-area.json"
1298
+ }
1299
+ },
1300
+ "geo_places_exclude": {
1301
+ "type": "array",
1302
+ "items": {
1303
+ "$ref": "#/$defs/external:core~1geo-place-area.json"
1304
+ }
1305
+ },
1306
+ "daypart_targets": {
1307
+ "type": "array",
1308
+ "items": {
1309
+ "$ref": "#/$defs/external:core~1daypart-target.json"
1310
+ }
1311
+ },
1312
+ "axe_include_segment": {
1313
+ "type": "string"
1314
+ },
1315
+ "axe_exclude_segment": {
1316
+ "type": "string"
1317
+ },
1318
+ "audience_include": {
1319
+ "type": "array",
1320
+ "items": {
1321
+ "type": "string"
1322
+ }
1323
+ },
1324
+ "audience_exclude": {
1325
+ "type": "array",
1326
+ "items": {
1327
+ "type": "string"
1328
+ }
1329
+ },
1330
+ "signal_targeting_groups": {
1331
+ "$ref": "#/$defs/external:core~1package-signal-targeting-groups.json"
1332
+ },
1333
+ "signal_targeting": {
1334
+ "type": "array",
1335
+ "items": {
1336
+ "$ref": "#/$defs/external:core~1signal-targeting.json"
1337
+ }
1338
+ },
1339
+ "demographics": {
1340
+ "$ref": "#/$defs/external:core~1demographic-targeting-intent.json"
1341
+ },
1342
+ "frequency_cap": {
1343
+ "$ref": "#/$defs/external:core~1frequency-cap.json"
1344
+ },
1345
+ "property_list": {
1346
+ "$ref": "#/$defs/external:core~1property-list-ref.json"
1347
+ },
1348
+ "property_list_exclude": {
1349
+ "$ref": "#/$defs/external:core~1property-list-ref.json"
1350
+ },
1351
+ "collection_list": {
1352
+ "$ref": "#/$defs/external:core~1collection-list-ref.json"
1353
+ },
1354
+ "collection_list_exclude": {
1355
+ "$ref": "#/$defs/external:core~1collection-list-ref.json"
1356
+ },
1357
+ "placement_selection": {
1358
+ "$ref": "#/$defs/external:core~1placement-selection.json"
1359
+ },
1360
+ "age_restriction": {
1361
+ "type": "object",
1362
+ "properties": {
1363
+ "min": {
1364
+ "type": "integer"
1365
+ },
1366
+ "verification_required": {
1367
+ "type": "boolean"
1368
+ },
1369
+ "accepted_methods": {
1370
+ "type": "array",
1371
+ "items": {
1372
+ "$ref": "#/$defs/external:enums~1age-verification-method.json"
1373
+ }
1374
+ }
1375
+ },
1376
+ "required": [
1377
+ "min"
1378
+ ]
1379
+ },
1380
+ "device_platform": {
1381
+ "type": "array",
1382
+ "items": {
1383
+ "$ref": "#/$defs/external:enums~1device-platform.json"
1384
+ }
1385
+ },
1386
+ "device_platform_exclude": {
1387
+ "type": "array",
1388
+ "items": {
1389
+ "$ref": "#/$defs/external:enums~1device-platform.json"
1390
+ }
1391
+ },
1392
+ "device_type": {
1393
+ "type": "array",
1394
+ "items": {
1395
+ "$ref": "#/$defs/external:enums~1device-type.json"
1396
+ }
1397
+ },
1398
+ "device_type_exclude": {
1399
+ "type": "array",
1400
+ "items": {
1401
+ "$ref": "#/$defs/external:enums~1device-type.json"
1402
+ }
1403
+ },
1404
+ "browser": {
1405
+ "type": "array",
1406
+ "items": {
1407
+ "$ref": "#/$defs/external:enums~1browser-family.json"
1408
+ }
1409
+ },
1410
+ "browser_exclude": {
1411
+ "type": "array",
1412
+ "items": {
1413
+ "$ref": "#/$defs/external:enums~1browser-family.json"
1414
+ }
1415
+ },
1416
+ "store_catchments": {
1417
+ "type": "array",
1418
+ "items": {
1419
+ "type": "object",
1420
+ "properties": {
1421
+ "catalog_id": {
1422
+ "type": "string"
1423
+ },
1424
+ "store_ids": {
1425
+ "type": "array",
1426
+ "items": {
1427
+ "type": "string"
1428
+ }
1429
+ },
1430
+ "catchment_ids": {
1431
+ "type": "array",
1432
+ "items": {
1433
+ "type": "string"
1434
+ }
1435
+ }
1436
+ },
1437
+ "required": [
1438
+ "catalog_id"
1439
+ ],
1440
+ "additionalProperties": true
1441
+ }
1442
+ },
1443
+ "geo_proximity": {
1444
+ "type": "array",
1445
+ "items": {
1446
+ "type": "object",
1447
+ "properties": {
1448
+ "lat": {
1449
+ "type": "number"
1450
+ },
1451
+ "lng": {
1452
+ "type": "number"
1453
+ },
1454
+ "label": {
1455
+ "type": "string"
1456
+ },
1457
+ "travel_time": {
1458
+ "type": "object",
1459
+ "properties": {
1460
+ "value": {
1461
+ "type": "number"
1462
+ },
1463
+ "unit": {
1464
+ "$ref": "#/$defs/external:enums~1travel-time-unit.json"
1465
+ }
1466
+ },
1467
+ "required": [
1468
+ "value",
1469
+ "unit"
1470
+ ]
1471
+ },
1472
+ "transport_mode": {
1473
+ "$ref": "#/$defs/external:enums~1transport-mode.json"
1474
+ },
1475
+ "radius": {
1476
+ "type": "object",
1477
+ "properties": {
1478
+ "value": {
1479
+ "type": "number"
1480
+ },
1481
+ "unit": {
1482
+ "$ref": "#/$defs/external:enums~1distance-unit.json"
1483
+ }
1484
+ },
1485
+ "required": [
1486
+ "value",
1487
+ "unit"
1488
+ ]
1489
+ },
1490
+ "geometry": {
1491
+ "type": "object",
1492
+ "properties": {
1493
+ "type": {
1494
+ "type": "string",
1495
+ "enum": [
1496
+ "Polygon",
1497
+ "MultiPolygon"
1498
+ ]
1499
+ },
1500
+ "coordinates": {
1501
+ "type": "array"
1502
+ }
1503
+ },
1504
+ "required": [
1505
+ "type",
1506
+ "coordinates"
1507
+ ]
1508
+ },
1509
+ "ext": {
1510
+ "$ref": "#/$defs/external:core~1ext.json"
1511
+ }
1512
+ },
1513
+ "oneOf": [
1514
+ {
1515
+ "required": [
1516
+ "lat",
1517
+ "lng",
1518
+ "travel_time",
1519
+ "transport_mode"
1520
+ ],
1521
+ "not": {
1522
+ "anyOf": [
1523
+ {
1524
+ "required": [
1525
+ "radius"
1526
+ ]
1527
+ },
1528
+ {
1529
+ "required": [
1530
+ "geometry"
1531
+ ]
1532
+ }
1533
+ ]
1534
+ }
1535
+ },
1536
+ {
1537
+ "required": [
1538
+ "lat",
1539
+ "lng",
1540
+ "radius"
1541
+ ],
1542
+ "not": {
1543
+ "anyOf": [
1544
+ {
1545
+ "required": [
1546
+ "travel_time"
1547
+ ]
1548
+ },
1549
+ {
1550
+ "required": [
1551
+ "geometry"
1552
+ ]
1553
+ }
1554
+ ]
1555
+ }
1556
+ },
1557
+ {
1558
+ "required": [
1559
+ "geometry"
1560
+ ],
1561
+ "not": {
1562
+ "anyOf": [
1563
+ {
1564
+ "required": [
1565
+ "travel_time"
1566
+ ]
1567
+ },
1568
+ {
1569
+ "required": [
1570
+ "radius"
1571
+ ]
1572
+ }
1573
+ ]
1574
+ }
1575
+ }
1576
+ ],
1577
+ "additionalProperties": true
1578
+ }
1579
+ },
1580
+ "language": {
1581
+ "type": "array",
1582
+ "items": {
1583
+ "$ref": "#/$defs/external:core~1locale-tag.json"
1584
+ }
1585
+ },
1586
+ "keyword_targets": {
1587
+ "type": "array",
1588
+ "items": {
1589
+ "type": "object",
1590
+ "properties": {
1591
+ "keyword": {
1592
+ "type": "string"
1593
+ },
1594
+ "match_type": {
1595
+ "$ref": "#/$defs/external:enums~1match-type.json"
1596
+ },
1597
+ "bid_price": {
1598
+ "type": "number"
1599
+ }
1600
+ },
1601
+ "required": [
1602
+ "keyword",
1603
+ "match_type"
1604
+ ]
1605
+ }
1606
+ },
1607
+ "negative_keywords": {
1608
+ "type": "array",
1609
+ "items": {
1610
+ "type": "object",
1611
+ "properties": {
1612
+ "keyword": {
1613
+ "type": "string"
1614
+ },
1615
+ "match_type": {
1616
+ "$ref": "#/$defs/external:enums~1match-type.json"
1617
+ }
1618
+ },
1619
+ "required": [
1620
+ "keyword",
1621
+ "match_type"
1622
+ ]
1623
+ }
1624
+ }
1625
+ },
1626
+ "allOf": [
1627
+ {
1628
+ "if": {
1629
+ "required": [
1630
+ "demographics",
1631
+ "age_restriction"
1632
+ ]
1633
+ },
1634
+ "then": {
1635
+ "properties": {
1636
+ "demographics": {
1637
+ "properties": {
1638
+ "age": {
1639
+ "properties": {
1640
+ "include_unknown": {
1641
+ "const": false
1642
+ }
1643
+ }
1644
+ }
1645
+ }
1646
+ }
1647
+ }
1648
+ }
1649
+ },
1650
+ {
1651
+ "if": {
1652
+ "properties": {
1653
+ "age_restriction": {
1654
+ "properties": {
1655
+ "verification_required": {
1656
+ "const": true
1657
+ }
1658
+ },
1659
+ "required": [
1660
+ "verification_required"
1661
+ ]
1662
+ },
1663
+ "demographics": {
1664
+ "properties": {
1665
+ "age": {
1666
+ "required": [
1667
+ "accepted_bases"
1668
+ ]
1669
+ }
1670
+ },
1671
+ "required": [
1672
+ "age"
1673
+ ]
1674
+ }
1675
+ },
1676
+ "required": [
1677
+ "demographics",
1678
+ "age_restriction"
1679
+ ]
1680
+ },
1681
+ "then": {
1682
+ "properties": {
1683
+ "demographics": {
1684
+ "properties": {
1685
+ "age": {
1686
+ "properties": {
1687
+ "accepted_bases": {
1688
+ "contains": {
1689
+ "const": "verified"
1690
+ }
1691
+ }
1692
+ }
1693
+ }
1694
+ }
1695
+ }
1696
+ }
1697
+ }
1698
+ }
1699
+ ],
1700
+ "additionalProperties": true
1701
+ },
1702
+ "external:enums/metro-system.json": {
1703
+ "type": "string",
1704
+ "enum": [
1705
+ "nielsen_dma",
1706
+ "uk_itl1",
1707
+ "uk_itl2",
1708
+ "eurostat_nuts2",
1709
+ "custom"
1710
+ ]
1711
+ },
1712
+ "external:core/postal-area.json": {
1713
+ "anyOf": [
1714
+ {
1715
+ "type": "object",
1716
+ "allOf": [
1717
+ {
1718
+ "$ref": "#/$defs/external:core~1postal-country-system.json"
1719
+ }
1720
+ ],
1721
+ "properties": {
1722
+ "country": {
1723
+ "type": "string"
1724
+ },
1725
+ "system": {
1726
+ "$ref": "#/$defs/external:enums~1postal-system.json"
1727
+ },
1728
+ "values": {
1729
+ "type": "array",
1730
+ "items": {
1731
+ "type": "string"
1732
+ }
1733
+ }
1734
+ },
1735
+ "required": [
1736
+ "country",
1737
+ "system",
1738
+ "values"
1739
+ ]
1740
+ },
1741
+ {
1742
+ "type": "object",
1743
+ "properties": {
1744
+ "system": {
1745
+ "$ref": "#/$defs/external:enums~1legacy-postal-system.json"
1746
+ },
1747
+ "values": {
1748
+ "type": "array",
1749
+ "items": {
1750
+ "type": "string"
1751
+ }
1752
+ }
1753
+ },
1754
+ "required": [
1755
+ "system",
1756
+ "values"
1757
+ ]
1758
+ }
1759
+ ]
1760
+ },
1761
+ "external:core/postal-country-system.json": {
1762
+ "type": "object",
1763
+ "properties": {
1764
+ "country": {
1765
+ "type": "string"
1766
+ },
1767
+ "system": {
1768
+ "$ref": "#/$defs/external:enums~1postal-system.json"
1769
+ }
1770
+ },
1771
+ "required": [
1772
+ "country",
1773
+ "system"
1774
+ ],
1775
+ "anyOf": [
1776
+ {
1777
+ "properties": {
1778
+ "country": {
1779
+ "const": "US"
1780
+ },
1781
+ "system": {
1782
+ "enum": [
1783
+ "zip",
1784
+ "zip_plus_four"
1785
+ ]
1786
+ }
1787
+ }
1788
+ },
1789
+ {
1790
+ "properties": {
1791
+ "country": {
1792
+ "const": "GB"
1793
+ },
1794
+ "system": {
1795
+ "enum": [
1796
+ "outward",
1797
+ "full"
1798
+ ]
1799
+ }
1800
+ }
1801
+ },
1802
+ {
1803
+ "properties": {
1804
+ "country": {
1805
+ "const": "CA"
1806
+ },
1807
+ "system": {
1808
+ "enum": [
1809
+ "fsa",
1810
+ "full"
1811
+ ]
1812
+ }
1813
+ }
1814
+ },
1815
+ {
1816
+ "properties": {
1817
+ "country": {
1818
+ "enum": [
1819
+ "DE",
1820
+ "CH",
1821
+ "AT"
1822
+ ]
1823
+ },
1824
+ "system": {
1825
+ "const": "plz"
1826
+ }
1827
+ }
1828
+ },
1829
+ {
1830
+ "properties": {
1831
+ "country": {
1832
+ "const": "FR"
1833
+ },
1834
+ "system": {
1835
+ "const": "code_postal"
1836
+ }
1837
+ }
1838
+ },
1839
+ {
1840
+ "properties": {
1841
+ "country": {
1842
+ "const": "AU"
1843
+ },
1844
+ "system": {
1845
+ "const": "postcode"
1846
+ }
1847
+ }
1848
+ },
1849
+ {
1850
+ "properties": {
1851
+ "country": {
1852
+ "const": "BR"
1853
+ },
1854
+ "system": {
1855
+ "const": "cep"
1856
+ }
1857
+ }
1858
+ },
1859
+ {
1860
+ "properties": {
1861
+ "country": {
1862
+ "const": "IN"
1863
+ },
1864
+ "system": {
1865
+ "const": "pin"
1866
+ }
1867
+ }
1868
+ },
1869
+ {
1870
+ "properties": {
1871
+ "country": {
1872
+ "const": "ZA"
1873
+ },
1874
+ "system": {
1875
+ "const": "postal_code"
1876
+ }
1877
+ }
1878
+ },
1879
+ {
1880
+ "properties": {
1881
+ "country": {
1882
+ "not": {
1883
+ "enum": [
1884
+ "US",
1885
+ "GB",
1886
+ "CA",
1887
+ "DE",
1888
+ "CH",
1889
+ "AT",
1890
+ "FR",
1891
+ "AU",
1892
+ "BR",
1893
+ "IN",
1894
+ "ZA"
1895
+ ]
1896
+ }
1897
+ },
1898
+ "system": {
1899
+ "enum": [
1900
+ "postal_code",
1901
+ "custom"
1902
+ ]
1903
+ }
1904
+ }
1905
+ }
1906
+ ]
1907
+ },
1908
+ "external:enums/postal-system.json": {
1909
+ "type": "string",
1910
+ "enum": [
1911
+ "postal_code",
1912
+ "zip",
1913
+ "zip_plus_four",
1914
+ "outward",
1915
+ "full",
1916
+ "fsa",
1917
+ "plz",
1918
+ "code_postal",
1919
+ "postcode",
1920
+ "cep",
1921
+ "pin",
1922
+ "custom",
1923
+ "us_zip",
1924
+ "us_zip_plus_four",
1925
+ "gb_outward",
1926
+ "gb_full",
1927
+ "ca_fsa",
1928
+ "ca_full",
1929
+ "de_plz",
1930
+ "fr_code_postal",
1931
+ "au_postcode",
1932
+ "ch_plz",
1933
+ "at_plz"
1934
+ ]
1935
+ },
1936
+ "external:enums/legacy-postal-system.json": {
1937
+ "type": "string",
1938
+ "enum": [
1939
+ "us_zip",
1940
+ "us_zip_plus_four",
1941
+ "gb_outward",
1942
+ "gb_full",
1943
+ "ca_fsa",
1944
+ "ca_full",
1945
+ "de_plz",
1946
+ "fr_code_postal",
1947
+ "au_postcode",
1948
+ "ch_plz",
1949
+ "at_plz"
1950
+ ]
1951
+ },
1952
+ "external:core/geo-place-area.json": {
1953
+ "type": "object",
1954
+ "properties": {
1955
+ "country": {
1956
+ "type": "string"
1957
+ },
1958
+ "system": {
1959
+ "$ref": "#/$defs/external:core~1geo-place-system.json"
1960
+ },
1961
+ "system_version": {
1962
+ "type": "string"
1963
+ },
1964
+ "place_type": {
1965
+ "$ref": "#/$defs/external:core~1geo-place-type.json"
1966
+ },
1967
+ "values": {
1968
+ "type": "array",
1969
+ "items": {
1970
+ "type": "string"
1971
+ }
1972
+ },
1973
+ "value_labels": {
1974
+ "type": "object",
1975
+ "additionalProperties": {
1976
+ "type": "string"
1977
+ }
1978
+ },
1979
+ "ext": {
1980
+ "$ref": "#/$defs/external:core~1ext.json"
1981
+ }
1982
+ },
1983
+ "required": [
1984
+ "country",
1985
+ "system",
1986
+ "place_type",
1987
+ "values"
1988
+ ],
1989
+ "allOf": [
1990
+ {
1991
+ "if": {
1992
+ "properties": {
1993
+ "system": {
1994
+ "enum": [
1995
+ "geonames",
1996
+ "google_ads",
1997
+ "microsoft_ads"
1998
+ ]
1999
+ }
2000
+ },
2001
+ "required": [
2002
+ "system"
2003
+ ]
2004
+ },
2005
+ "then": {
2006
+ "properties": {
2007
+ "values": {
2008
+ "items": {
2009
+ "type": "string"
2010
+ }
2011
+ }
2012
+ }
2013
+ }
2014
+ }
2015
+ ]
2016
+ },
2017
+ "external:core/geo-place-system.json": {
2018
+ "anyOf": [
2019
+ {
2020
+ "type": "string",
2021
+ "enum": [
2022
+ "geonames",
2023
+ "google_ads",
2024
+ "microsoft_ads"
2025
+ ]
2026
+ },
2027
+ {
2028
+ "type": "string"
2029
+ }
2030
+ ]
2031
+ },
2032
+ "external:core/geo-place-type.json": {
2033
+ "anyOf": [
2034
+ {
2035
+ "type": "string",
2036
+ "enum": [
2037
+ "airport",
2038
+ "borough",
2039
+ "city",
2040
+ "city_region",
2041
+ "commune",
2042
+ "county",
2043
+ "district",
2044
+ "municipality",
2045
+ "neighborhood",
2046
+ "post_town",
2047
+ "prefecture",
2048
+ "province",
2049
+ "quarter",
2050
+ "state",
2051
+ "territory",
2052
+ "ward"
2053
+ ]
2054
+ },
2055
+ {
2056
+ "type": "string"
2057
+ }
2058
+ ]
2059
+ },
2060
+ "external:core/daypart-target.json": {
2061
+ "type": "object",
2062
+ "properties": {
2063
+ "days": {
2064
+ "type": "array",
2065
+ "items": {
2066
+ "$ref": "#/$defs/external:enums~1day-of-week.json"
2067
+ }
2068
+ },
2069
+ "start_hour": {
2070
+ "type": "integer"
2071
+ },
2072
+ "end_hour": {
2073
+ "type": "integer"
2074
+ },
2075
+ "label": {
2076
+ "type": "string"
2077
+ }
2078
+ },
2079
+ "required": [
2080
+ "days",
2081
+ "start_hour",
2082
+ "end_hour"
2083
+ ]
2084
+ },
2085
+ "external:enums/day-of-week.json": {
2086
+ "type": "string",
2087
+ "enum": [
2088
+ "monday",
2089
+ "tuesday",
2090
+ "wednesday",
2091
+ "thursday",
2092
+ "friday",
2093
+ "saturday",
2094
+ "sunday"
2095
+ ]
2096
+ },
2097
+ "external:core/package-signal-targeting-groups.json": {
2098
+ "type": "object",
2099
+ "properties": {
2100
+ "operator": {
2101
+ "type": "string",
2102
+ "enum": [
2103
+ "all"
2104
+ ]
2105
+ },
2106
+ "groups": {
2107
+ "type": "array",
2108
+ "items": {
2109
+ "$ref": "#/$defs/external:core~1package-signal-targeting-group.json"
2110
+ }
2111
+ }
2112
+ },
2113
+ "required": [
2114
+ "operator",
2115
+ "groups"
2116
+ ],
2117
+ "additionalProperties": true
2118
+ },
2119
+ "external:core/package-signal-targeting-group.json": {
2120
+ "type": "object",
2121
+ "properties": {
2122
+ "operator": {
2123
+ "type": "string",
2124
+ "enum": [
2125
+ "any",
2126
+ "none"
2127
+ ]
2128
+ },
2129
+ "signals": {
2130
+ "type": "array",
2131
+ "items": {
2132
+ "$ref": "#/$defs/external:core~1package-signal-targeting.json"
2133
+ }
2134
+ }
2135
+ },
2136
+ "required": [
2137
+ "operator",
2138
+ "signals"
2139
+ ],
2140
+ "additionalProperties": true
2141
+ },
2142
+ "external:core/package-signal-targeting.json": {
2143
+ "type": "object",
2144
+ "allOf": [
2145
+ {
2146
+ "$ref": "#/$defs/external:core~1signal-targeting-expression.json"
2147
+ }
2148
+ ],
2149
+ "properties": {
2150
+ "pricing_option_id": {
2151
+ "type": "string"
2152
+ },
2153
+ "signal_agent_segment_id": {
2154
+ "type": "string"
2155
+ },
2156
+ "activation_key": {
2157
+ "$ref": "#/$defs/external:core~1activation-key.json"
2158
+ }
2159
+ },
2160
+ "additionalProperties": true
2161
+ },
2162
+ "external:core/signal-targeting-expression.json": {
2163
+ "discriminator": {
2164
+ "propertyName": "value_type"
2165
+ },
2166
+ "oneOf": [
2167
+ {
2168
+ "type": "object",
2169
+ "properties": {
2170
+ "signal_ref": {
2171
+ "$ref": "#/$defs/external:core~1signal-ref.json"
2172
+ },
2173
+ "value_type": {
2174
+ "type": "string",
2175
+ "const": "binary"
2176
+ },
2177
+ "value": {
2178
+ "type": "boolean",
2179
+ "const": true
2180
+ }
2181
+ },
2182
+ "required": [
2183
+ "signal_ref",
2184
+ "value_type",
2185
+ "value"
2186
+ ],
2187
+ "additionalProperties": true
2188
+ },
2189
+ {
2190
+ "type": "object",
2191
+ "properties": {
2192
+ "signal_ref": {
2193
+ "$ref": "#/$defs/external:core~1signal-ref.json"
2194
+ },
2195
+ "value_type": {
2196
+ "type": "string",
2197
+ "const": "categorical"
2198
+ },
2199
+ "values": {
2200
+ "type": "array",
2201
+ "items": {
2202
+ "type": "string"
2203
+ }
2204
+ }
2205
+ },
2206
+ "required": [
2207
+ "signal_ref",
2208
+ "value_type",
2209
+ "values"
2210
+ ],
2211
+ "additionalProperties": true
2212
+ },
2213
+ {
2214
+ "type": "object",
2215
+ "properties": {
2216
+ "signal_ref": {
2217
+ "$ref": "#/$defs/external:core~1signal-ref.json"
2218
+ },
2219
+ "value_type": {
2220
+ "type": "string",
2221
+ "const": "numeric"
2222
+ },
2223
+ "min_value": {
2224
+ "type": "number"
2225
+ },
2226
+ "max_value": {
2227
+ "type": "number"
2228
+ }
2229
+ },
2230
+ "required": [
2231
+ "signal_ref",
2232
+ "value_type"
2233
+ ],
2234
+ "anyOf": [
2235
+ {
2236
+ "required": [
2237
+ "min_value"
2238
+ ]
2239
+ },
2240
+ {
2241
+ "required": [
2242
+ "max_value"
2243
+ ]
2244
+ }
2245
+ ],
2246
+ "additionalProperties": true
2247
+ }
2248
+ ]
2249
+ },
2250
+ "external:core/signal-ref.json": {
2251
+ "discriminator": {
2252
+ "propertyName": "scope"
2253
+ },
2254
+ "oneOf": [
2255
+ {
2256
+ "type": "object",
2257
+ "properties": {
2258
+ "scope": {
2259
+ "type": "string",
2260
+ "const": "product"
2261
+ },
2262
+ "signal_id": {
2263
+ "type": "string"
2264
+ }
2265
+ },
2266
+ "required": [
2267
+ "scope",
2268
+ "signal_id"
2269
+ ],
2270
+ "not": {
2271
+ "anyOf": [
2272
+ {
2273
+ "required": [
2274
+ "data_provider_domain"
2275
+ ]
2276
+ },
2277
+ {
2278
+ "required": [
2279
+ "signal_source_url"
2280
+ ]
2281
+ },
2282
+ {
2283
+ "required": [
2284
+ "agent_url"
2285
+ ]
2286
+ },
2287
+ {
2288
+ "required": [
2289
+ "source"
2290
+ ]
2291
+ },
2292
+ {
2293
+ "required": [
2294
+ "id"
2295
+ ]
2296
+ }
2297
+ ]
2298
+ },
2299
+ "additionalProperties": true
2300
+ },
2301
+ {
2302
+ "type": "object",
2303
+ "properties": {
2304
+ "scope": {
2305
+ "type": "string",
2306
+ "const": "data_provider"
2307
+ },
2308
+ "data_provider_domain": {
2309
+ "type": "string"
2310
+ },
2311
+ "signal_id": {
2312
+ "type": "string"
2313
+ }
2314
+ },
2315
+ "required": [
2316
+ "scope",
2317
+ "data_provider_domain",
2318
+ "signal_id"
2319
+ ],
2320
+ "not": {
2321
+ "anyOf": [
2322
+ {
2323
+ "required": [
2324
+ "agent_url"
2325
+ ]
2326
+ },
2327
+ {
2328
+ "required": [
2329
+ "signal_source_url"
2330
+ ]
2331
+ },
2332
+ {
2333
+ "required": [
2334
+ "source"
2335
+ ]
2336
+ },
2337
+ {
2338
+ "required": [
2339
+ "id"
2340
+ ]
2341
+ }
2342
+ ]
2343
+ },
2344
+ "additionalProperties": true
2345
+ },
2346
+ {
2347
+ "type": "object",
2348
+ "properties": {
2349
+ "scope": {
2350
+ "type": "string",
2351
+ "const": "signal_source"
2352
+ },
2353
+ "signal_source_url": {
2354
+ "type": "string"
2355
+ },
2356
+ "signal_id": {
2357
+ "type": "string"
2358
+ }
2359
+ },
2360
+ "required": [
2361
+ "scope",
2362
+ "signal_source_url",
2363
+ "signal_id"
2364
+ ],
2365
+ "not": {
2366
+ "anyOf": [
2367
+ {
2368
+ "required": [
2369
+ "data_provider_domain"
2370
+ ]
2371
+ },
2372
+ {
2373
+ "required": [
2374
+ "agent_url"
2375
+ ]
2376
+ },
2377
+ {
2378
+ "required": [
2379
+ "source"
2380
+ ]
2381
+ },
2382
+ {
2383
+ "required": [
2384
+ "id"
2385
+ ]
2386
+ }
2387
+ ]
2388
+ },
2389
+ "additionalProperties": true
2390
+ }
2391
+ ]
2392
+ },
2393
+ "external:core/activation-key.json": {
2394
+ "type": "object",
2395
+ "discriminator": {
2396
+ "propertyName": "type"
2397
+ },
2398
+ "oneOf": [
2399
+ {
2400
+ "properties": {
2401
+ "type": {
2402
+ "type": "string",
2403
+ "const": "segment_id"
2404
+ },
2405
+ "segment_id": {
2406
+ "type": "string"
2407
+ }
2408
+ },
2409
+ "required": [
2410
+ "type",
2411
+ "segment_id"
2412
+ ],
2413
+ "additionalProperties": true
2414
+ },
2415
+ {
2416
+ "properties": {
2417
+ "type": {
2418
+ "type": "string",
2419
+ "const": "key_value"
2420
+ },
2421
+ "key": {
2422
+ "type": "string"
2423
+ },
2424
+ "value": {
2425
+ "type": "string"
2426
+ }
2427
+ },
2428
+ "required": [
2429
+ "type",
2430
+ "key",
2431
+ "value"
2432
+ ],
2433
+ "additionalProperties": true
2434
+ }
2435
+ ]
2436
+ },
2437
+ "external:core/signal-targeting.json": {
2438
+ "discriminator": {
2439
+ "propertyName": "value_type"
2440
+ },
2441
+ "oneOf": [
2442
+ {
2443
+ "type": "object",
2444
+ "properties": {
2445
+ "signal_ref": {
2446
+ "$ref": "#/$defs/external:core~1signal-ref.json"
2447
+ },
2448
+ "signal_id": {
2449
+ "$ref": "#/$defs/external:core~1signal-id.json"
2450
+ },
2451
+ "value_type": {
2452
+ "type": "string",
2453
+ "const": "binary"
2454
+ },
2455
+ "value": {
2456
+ "type": "boolean"
2457
+ }
2458
+ },
2459
+ "required": [
2460
+ "value_type",
2461
+ "value"
2462
+ ],
2463
+ "anyOf": [
2464
+ {
2465
+ "required": [
2466
+ "signal_ref"
2467
+ ]
2468
+ },
2469
+ {
2470
+ "required": [
2471
+ "signal_id"
2472
+ ]
2473
+ }
2474
+ ],
2475
+ "additionalProperties": true
2476
+ },
2477
+ {
2478
+ "type": "object",
2479
+ "properties": {
2480
+ "signal_ref": {
2481
+ "$ref": "#/$defs/external:core~1signal-ref.json"
2482
+ },
2483
+ "signal_id": {
2484
+ "$ref": "#/$defs/external:core~1signal-id.json"
2485
+ },
2486
+ "value_type": {
2487
+ "type": "string",
2488
+ "const": "categorical"
2489
+ },
2490
+ "values": {
2491
+ "type": "array",
2492
+ "items": {
2493
+ "type": "string"
2494
+ }
2495
+ }
2496
+ },
2497
+ "required": [
2498
+ "value_type",
2499
+ "values"
2500
+ ],
2501
+ "anyOf": [
2502
+ {
2503
+ "required": [
2504
+ "signal_ref"
2505
+ ]
2506
+ },
2507
+ {
2508
+ "required": [
2509
+ "signal_id"
2510
+ ]
2511
+ }
2512
+ ],
2513
+ "additionalProperties": true
2514
+ },
2515
+ {
2516
+ "type": "object",
2517
+ "properties": {
2518
+ "signal_ref": {
2519
+ "$ref": "#/$defs/external:core~1signal-ref.json"
2520
+ },
2521
+ "signal_id": {
2522
+ "$ref": "#/$defs/external:core~1signal-id.json"
2523
+ },
2524
+ "value_type": {
2525
+ "type": "string",
2526
+ "const": "numeric"
2527
+ },
2528
+ "min_value": {
2529
+ "type": "number"
2530
+ },
2531
+ "max_value": {
2532
+ "type": "number"
2533
+ }
2534
+ },
2535
+ "required": [
2536
+ "value_type"
2537
+ ],
2538
+ "anyOf": [
2539
+ {
2540
+ "required": [
2541
+ "signal_ref"
2542
+ ]
2543
+ },
2544
+ {
2545
+ "required": [
2546
+ "signal_id"
2547
+ ]
2548
+ }
2549
+ ],
2550
+ "additionalProperties": true
2551
+ }
2552
+ ]
2553
+ },
2554
+ "external:core/signal-id.json": {
2555
+ "discriminator": {
2556
+ "propertyName": "source"
2557
+ },
2558
+ "oneOf": [
2559
+ {
2560
+ "type": "object",
2561
+ "properties": {
2562
+ "source": {
2563
+ "type": "string",
2564
+ "const": "catalog"
2565
+ },
2566
+ "data_provider_domain": {
2567
+ "type": "string"
2568
+ },
2569
+ "id": {
2570
+ "type": "string"
2571
+ }
2572
+ },
2573
+ "required": [
2574
+ "source",
2575
+ "data_provider_domain",
2576
+ "id"
2577
+ ],
2578
+ "additionalProperties": true
2579
+ },
2580
+ {
2581
+ "type": "object",
2582
+ "properties": {
2583
+ "source": {
2584
+ "type": "string",
2585
+ "const": "agent"
2586
+ },
2587
+ "agent_url": {
2588
+ "type": "string"
2589
+ },
2590
+ "id": {
2591
+ "type": "string"
2592
+ }
2593
+ },
2594
+ "required": [
2595
+ "source",
2596
+ "agent_url",
2597
+ "id"
2598
+ ],
2599
+ "additionalProperties": true
2600
+ }
2601
+ ]
2602
+ },
2603
+ "external:core/demographic-targeting-intent.json": {
2604
+ "type": "object",
2605
+ "properties": {
2606
+ "age": {
2607
+ "allOf": [
2608
+ {
2609
+ "$ref": "#/$defs/external:core~1demographic-age-range.json"
2610
+ },
2611
+ {
2612
+ "type": "object",
2613
+ "properties": {
2614
+ "accepted_bases": {
2615
+ "type": "array",
2616
+ "items": {
2617
+ "$ref": "#/$defs/external:enums~1age-determination-basis.json"
2618
+ }
2619
+ },
2620
+ "accepted_verification_methods": {
2621
+ "type": "array",
2622
+ "items": {
2623
+ "$ref": "#/$defs/external:enums~1age-verification-method.json"
2624
+ }
2625
+ }
2626
+ },
2627
+ "allOf": [
2628
+ {
2629
+ "if": {
2630
+ "required": [
2631
+ "accepted_verification_methods"
2632
+ ]
2633
+ },
2634
+ "then": {
2635
+ "required": [
2636
+ "accepted_bases"
2637
+ ],
2638
+ "properties": {
2639
+ "accepted_bases": {
2640
+ "contains": {
2641
+ "const": "verified"
2642
+ }
2643
+ }
2644
+ }
2645
+ }
2646
+ }
2647
+ ],
2648
+ "additionalProperties": true
2649
+ }
2650
+ ]
2651
+ }
2652
+ },
2653
+ "required": [
2654
+ "age"
2655
+ ],
2656
+ "additionalProperties": true
2657
+ },
2658
+ "external:core/demographic-age-range.json": {
2659
+ "type": "object",
2660
+ "properties": {
2661
+ "min": {
2662
+ "type": "integer"
2663
+ },
2664
+ "max": {
2665
+ "type": "integer"
2666
+ },
2667
+ "include_unknown": {
2668
+ "type": "boolean"
2669
+ }
2670
+ },
2671
+ "required": [
2672
+ "include_unknown"
2673
+ ],
2674
+ "anyOf": [
2675
+ {
2676
+ "required": [
2677
+ "min"
2678
+ ]
2679
+ },
2680
+ {
2681
+ "required": [
2682
+ "max"
2683
+ ]
2684
+ }
2685
+ ],
2686
+ "additionalProperties": true
2687
+ },
2688
+ "external:enums/age-determination-basis.json": {
2689
+ "type": "string",
2690
+ "enum": [
2691
+ "verified",
2692
+ "declared",
2693
+ "inferred"
2694
+ ]
2695
+ },
2696
+ "external:enums/age-verification-method.json": {
2697
+ "type": "string",
2698
+ "enum": [
2699
+ "facial_age_estimation",
2700
+ "id_document",
2701
+ "digital_id",
2702
+ "credit_card",
2703
+ "world_id"
2704
+ ]
2705
+ },
2706
+ "external:core/frequency-cap.json": {
2707
+ "type": "object",
2708
+ "properties": {
2709
+ "suppress": {
2710
+ "allOf": [
2711
+ {
2712
+ "$ref": "#/$defs/external:core~1duration.json"
2713
+ }
2714
+ ]
2715
+ },
2716
+ "suppress_minutes": {
2717
+ "type": "number"
2718
+ },
2719
+ "max_impressions": {
2720
+ "type": "integer"
2721
+ },
2722
+ "per": {
2723
+ "allOf": [
2724
+ {
2725
+ "$ref": "#/$defs/external:enums~1reach-unit.json"
2726
+ }
2727
+ ]
2728
+ },
2729
+ "window": {
2730
+ "allOf": [
2731
+ {
2732
+ "$ref": "#/$defs/external:core~1duration.json"
2733
+ }
2734
+ ]
2735
+ }
2736
+ },
2737
+ "anyOf": [
2738
+ {
2739
+ "required": [
2740
+ "suppress"
2741
+ ]
2742
+ },
2743
+ {
2744
+ "required": [
2745
+ "suppress_minutes"
2746
+ ]
2747
+ },
2748
+ {
2749
+ "required": [
2750
+ "max_impressions"
2751
+ ]
2752
+ }
2753
+ ],
2754
+ "additionalProperties": true,
2755
+ "dependentRequired": {
2756
+ "max_impressions": [
2757
+ "per",
2758
+ "window"
2759
+ ],
2760
+ "per": [
2761
+ "max_impressions"
2762
+ ],
2763
+ "window": [
2764
+ "max_impressions"
2765
+ ]
2766
+ }
2767
+ },
2768
+ "external:enums/reach-unit.json": {
2769
+ "type": "string",
2770
+ "enum": [
2771
+ "individuals",
2772
+ "households",
2773
+ "devices",
2774
+ "accounts",
2775
+ "cookies",
2776
+ "custom"
2777
+ ]
2778
+ },
2779
+ "external:core/collection-list-ref.json": {
2780
+ "type": "object",
2781
+ "properties": {
2782
+ "agent_url": {
2783
+ "type": "string"
2784
+ },
2785
+ "list_id": {
2786
+ "type": "string"
2787
+ },
2788
+ "auth_token": {
2789
+ "type": "string"
2790
+ }
2791
+ },
2792
+ "required": [
2793
+ "agent_url",
2794
+ "list_id"
2795
+ ]
2796
+ },
2797
+ "external:core/placement-selection.json": {
2798
+ "type": "object",
2799
+ "discriminator": {
2800
+ "propertyName": "mode"
2801
+ },
2802
+ "oneOf": [
2803
+ {
2804
+ "type": "object",
2805
+ "properties": {
2806
+ "mode": {
2807
+ "type": "string",
2808
+ "const": "selected"
2809
+ },
2810
+ "placement_refs": {
2811
+ "type": "array",
2812
+ "items": {
2813
+ "allOf": [
2814
+ {
2815
+ "$ref": "#/$defs/external:core~1placement-ref.json"
2816
+ },
2817
+ {
2818
+ "required": [
2819
+ "publisher_domain"
2820
+ ]
2821
+ }
2822
+ ]
2823
+ }
2824
+ },
2825
+ "ext": {
2826
+ "$ref": "#/$defs/external:core~1ext.json"
2827
+ }
2828
+ },
2829
+ "required": [
2830
+ "mode",
2831
+ "placement_refs"
2832
+ ]
2833
+ },
2834
+ {
2835
+ "type": "object",
2836
+ "properties": {
2837
+ "mode": {
2838
+ "type": "string",
2839
+ "const": "default"
2840
+ },
2841
+ "ext": {
2842
+ "$ref": "#/$defs/external:core~1ext.json"
2843
+ }
2844
+ },
2845
+ "required": [
2846
+ "mode"
2847
+ ]
2848
+ }
2849
+ ]
2850
+ },
2851
+ "external:core/placement-ref.json": {
2852
+ "type": "object",
2853
+ "properties": {
2854
+ "publisher_domain": {
2855
+ "type": "string"
2856
+ },
2857
+ "placement_id": {
2858
+ "type": "string"
2859
+ }
2860
+ },
2861
+ "required": [
2862
+ "placement_id"
2863
+ ],
2864
+ "additionalProperties": true
2865
+ },
2866
+ "external:enums/device-platform.json": {
2867
+ "type": "string",
2868
+ "enum": [
2869
+ "ios",
2870
+ "android",
2871
+ "windows",
2872
+ "macos",
2873
+ "linux",
2874
+ "chromeos",
2875
+ "tvos",
2876
+ "tizen",
2877
+ "webos",
2878
+ "fire_os",
2879
+ "roku_os",
2880
+ "unknown"
2881
+ ]
2882
+ },
2883
+ "external:enums/device-type.json": {
2884
+ "type": "string",
2885
+ "enum": [
2886
+ "desktop",
2887
+ "mobile",
2888
+ "tablet",
2889
+ "ctv",
2890
+ "dooh",
2891
+ "unknown"
2892
+ ]
2893
+ },
2894
+ "external:enums/browser-family.json": {
2895
+ "type": "string",
2896
+ "enum": [
2897
+ "chrome",
2898
+ "safari",
2899
+ "firefox",
2900
+ "edge",
2901
+ "opera",
2902
+ "samsung_internet",
2903
+ "android_webview",
2904
+ "other",
2905
+ "unknown"
2906
+ ]
2907
+ },
2908
+ "external:enums/travel-time-unit.json": {
2909
+ "type": "string",
2910
+ "enum": [
2911
+ "min",
2912
+ "hr"
2913
+ ]
2914
+ },
2915
+ "external:enums/transport-mode.json": {
2916
+ "type": "string",
2917
+ "enum": [
2918
+ "walking",
2919
+ "cycling",
2920
+ "driving",
2921
+ "public_transport"
2922
+ ]
2923
+ },
2924
+ "external:enums/distance-unit.json": {
2925
+ "type": "string",
2926
+ "enum": [
2927
+ "km",
2928
+ "mi",
2929
+ "m"
2930
+ ]
2931
+ },
2932
+ "external:core/locale-tag.json": {
2933
+ "type": "string"
2934
+ },
2935
+ "external:enums/match-type.json": {
2936
+ "type": "string",
2937
+ "enum": [
2938
+ "broad",
2939
+ "phrase",
2940
+ "exact"
2941
+ ]
2942
+ },
2943
+ "external:core/targeting-overlay-requirements.json": {
2944
+ "type": "object",
2945
+ "properties": {
2946
+ "geo_countries": {
2947
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json/$defs/required"
2948
+ },
2949
+ "geo_countries_exclude": {
2950
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json/$defs/required"
2951
+ },
2952
+ "geo_regions": {
2953
+ "anyOf": [
2954
+ {
2955
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json/$defs/required"
2956
+ },
2957
+ {
2958
+ "$ref": "#/$defs/external:core~1geo-region-requirement.json"
2959
+ }
2960
+ ]
2961
+ },
2962
+ "geo_regions_exclude": {
2963
+ "anyOf": [
2964
+ {
2965
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json/$defs/required"
2966
+ },
2967
+ {
2968
+ "$ref": "#/$defs/external:core~1geo-region-requirement.json"
2969
+ }
2970
+ ]
2971
+ },
2972
+ "geo_metros": {
2973
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json/$defs/metroRequirement"
2974
+ },
2975
+ "geo_metros_exclude": {
2976
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json/$defs/metroRequirement"
2977
+ },
2978
+ "geo_places": {
2979
+ "$ref": "#/$defs/external:core~1geo-place-requirement.json"
2980
+ },
2981
+ "geo_places_exclude": {
2982
+ "$ref": "#/$defs/external:core~1geo-place-requirement.json"
2983
+ },
2984
+ "geo_postal_areas": {
2985
+ "anyOf": [
2986
+ {
2987
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json/$defs/required"
2988
+ },
2989
+ {
2990
+ "$ref": "#/$defs/external:core~1positive-postal-area-support.json"
2991
+ }
2992
+ ]
2993
+ },
2994
+ "geo_postal_areas_exclude": {
2995
+ "anyOf": [
2996
+ {
2997
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json/$defs/required"
2998
+ },
2999
+ {
3000
+ "$ref": "#/$defs/external:core~1positive-postal-area-support.json"
3001
+ }
3002
+ ]
3003
+ },
3004
+ "geo_proximity": {
3005
+ "anyOf": [
3006
+ {
3007
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json/$defs/required"
3008
+ },
3009
+ {
3010
+ "type": "object",
3011
+ "properties": {
3012
+ "radius": {
3013
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json/$defs/required"
3014
+ },
3015
+ "travel_time": {
3016
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json/$defs/required"
3017
+ },
3018
+ "geometry": {
3019
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json/$defs/required"
3020
+ },
3021
+ "transport_modes": {
3022
+ "type": "array",
3023
+ "items": {
3024
+ "$ref": "#/$defs/external:enums~1transport-mode.json"
3025
+ }
3026
+ }
3027
+ },
3028
+ "anyOf": [
3029
+ {
3030
+ "required": [
3031
+ "radius"
3032
+ ]
3033
+ },
3034
+ {
3035
+ "required": [
3036
+ "travel_time"
3037
+ ]
3038
+ },
3039
+ {
3040
+ "required": [
3041
+ "geometry"
3042
+ ]
3043
+ },
3044
+ {
3045
+ "required": [
3046
+ "transport_modes"
3047
+ ]
3048
+ }
3049
+ ]
3050
+ }
3051
+ ]
3052
+ },
3053
+ "daypart_targets": {
3054
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json/$defs/required"
3055
+ },
3056
+ "audience_include": {
3057
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json/$defs/required"
3058
+ },
3059
+ "audience_exclude": {
3060
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json/$defs/required"
3061
+ },
3062
+ "signal_targeting_groups": {
3063
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json/$defs/required"
3064
+ },
3065
+ "demographics": {
3066
+ "anyOf": [
3067
+ {
3068
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json/$defs/required"
3069
+ },
3070
+ {
3071
+ "type": "object",
3072
+ "properties": {
3073
+ "age": {
3074
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json/$defs/required"
3075
+ }
3076
+ },
3077
+ "required": [
3078
+ "age"
3079
+ ]
3080
+ }
3081
+ ]
3082
+ },
3083
+ "frequency_cap": {
3084
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json/$defs/required"
3085
+ },
3086
+ "property_list": {
3087
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json/$defs/required"
3088
+ },
3089
+ "property_list_exclude": {
3090
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json/$defs/required"
3091
+ },
3092
+ "collection_list": {
3093
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json/$defs/required"
3094
+ },
3095
+ "collection_list_exclude": {
3096
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json/$defs/required"
3097
+ },
3098
+ "placement_selection": {
3099
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json/$defs/required"
3100
+ },
3101
+ "age_restriction": {
3102
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json/$defs/required"
3103
+ },
3104
+ "device_platform": {
3105
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json/$defs/required"
3106
+ },
3107
+ "device_platform_exclude": {
3108
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json/$defs/required"
3109
+ },
3110
+ "device_type": {
3111
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json/$defs/required"
3112
+ },
3113
+ "device_type_exclude": {
3114
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json/$defs/required"
3115
+ },
3116
+ "browser": {
3117
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json/$defs/browserRequirement"
3118
+ },
3119
+ "browser_exclude": {
3120
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json/$defs/browserRequirement"
3121
+ },
3122
+ "store_catchments": {
3123
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json/$defs/required"
3124
+ },
3125
+ "language": {
3126
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json/$defs/required"
3127
+ },
3128
+ "keyword_targets": {
3129
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json/$defs/keywordRequirement"
3130
+ },
3131
+ "negative_keywords": {
3132
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json/$defs/keywordRequirement"
3133
+ },
3134
+ "ext": {
3135
+ "$ref": "#/$defs/external:core~1ext.json"
3136
+ }
3137
+ },
3138
+ "$defs": {
3139
+ "required": {
3140
+ "type": "boolean",
3141
+ "const": true
3142
+ },
3143
+ "metroRequirement": {
3144
+ "anyOf": [
3145
+ {
3146
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json/$defs/required"
3147
+ },
3148
+ {
3149
+ "type": "object",
3150
+ "properties": {
3151
+ "systems": {
3152
+ "type": "array",
3153
+ "items": {
3154
+ "$ref": "#/$defs/external:enums~1metro-system.json"
3155
+ }
3156
+ }
3157
+ },
3158
+ "required": [
3159
+ "systems"
3160
+ ]
3161
+ }
3162
+ ]
3163
+ },
3164
+ "keywordRequirement": {
3165
+ "anyOf": [
3166
+ {
3167
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json/$defs/required"
3168
+ },
3169
+ {
3170
+ "type": "object",
3171
+ "properties": {
3172
+ "supported_match_types": {
3173
+ "type": "array",
3174
+ "items": {
3175
+ "$ref": "#/$defs/external:enums~1match-type.json"
3176
+ }
3177
+ }
3178
+ },
3179
+ "required": [
3180
+ "supported_match_types"
3181
+ ]
3182
+ }
3183
+ ]
3184
+ },
3185
+ "browserRequirement": {
3186
+ "anyOf": [
3187
+ {
3188
+ "$ref": "#/$defs/external:core~1targeting-overlay-requirements.json/$defs/required"
3189
+ },
3190
+ {
3191
+ "type": "object",
3192
+ "properties": {
3193
+ "families": {
3194
+ "type": "array",
3195
+ "items": {
3196
+ "$ref": "#/$defs/external:enums~1browser-family.json"
3197
+ }
3198
+ }
3199
+ },
3200
+ "required": [
3201
+ "families"
3202
+ ]
3203
+ }
3204
+ ]
3205
+ }
3206
+ }
3207
+ },
3208
+ "external:core/geo-region-requirement.json": {
3209
+ "type": "object",
3210
+ "properties": {
3211
+ "countries": {
3212
+ "type": "object",
3213
+ "propertyNames": {},
3214
+ "additionalProperties": {
3215
+ "anyOf": [
3216
+ {
3217
+ "type": "object",
3218
+ "properties": {
3219
+ "all_values": {
3220
+ "type": "boolean",
3221
+ "const": true
3222
+ }
3223
+ },
3224
+ "required": [
3225
+ "all_values"
3226
+ ]
3227
+ },
3228
+ {
3229
+ "type": "object",
3230
+ "properties": {
3231
+ "values": {
3232
+ "type": "array",
3233
+ "items": {
3234
+ "type": "string"
3235
+ }
3236
+ }
3237
+ },
3238
+ "required": [
3239
+ "values"
3240
+ ]
3241
+ }
3242
+ ]
3243
+ }
3244
+ }
3245
+ },
3246
+ "required": [
3247
+ "countries"
3248
+ ]
3249
+ },
3250
+ "external:core/geo-place-requirement.json": {
3251
+ "type": "object",
3252
+ "properties": {
3253
+ "systems": {
3254
+ "type": "object",
3255
+ "propertyNames": {
3256
+ "$ref": "#/$defs/external:core~1geo-place-system.json"
3257
+ },
3258
+ "additionalProperties": {
3259
+ "$ref": "#/$defs/external:core~1geo-place-requirement.json/$defs/catalogRequirement"
3260
+ }
3261
+ }
3262
+ },
3263
+ "required": [
3264
+ "systems"
3265
+ ],
3266
+ "$defs": {
3267
+ "catalogRequirement": {
3268
+ "type": "object",
3269
+ "properties": {
3270
+ "countries": {
3271
+ "type": "object",
3272
+ "propertyNames": {},
3273
+ "additionalProperties": {
3274
+ "type": "array",
3275
+ "items": {
3276
+ "$ref": "#/$defs/external:core~1geo-place-type.json"
3277
+ }
3278
+ }
3279
+ },
3280
+ "system_versions": {
3281
+ "type": "array",
3282
+ "items": {
3283
+ "type": "string"
3284
+ }
3285
+ }
3286
+ },
3287
+ "required": [
3288
+ "countries"
3289
+ ]
3290
+ }
3291
+ }
3292
+ },
3293
+ "external:core/positive-postal-area-support.json": {
3294
+ "allOf": [
3295
+ {
3296
+ "$ref": "#/$defs/external:core~1postal-area-support.json"
3297
+ },
3298
+ {
3299
+ "type": "object",
3300
+ "properties": {
3301
+ "us_zip": {
3302
+ "const": true
3303
+ },
3304
+ "us_zip_plus_four": {
3305
+ "const": true
3306
+ },
3307
+ "gb_outward": {
3308
+ "const": true
3309
+ },
3310
+ "gb_full": {
3311
+ "const": true
3312
+ },
3313
+ "ca_fsa": {
3314
+ "const": true
3315
+ },
3316
+ "ca_full": {
3317
+ "const": true
3318
+ },
3319
+ "de_plz": {
3320
+ "const": true
3321
+ },
3322
+ "fr_code_postal": {
3323
+ "const": true
3324
+ },
3325
+ "au_postcode": {
3326
+ "const": true
3327
+ },
3328
+ "ch_plz": {
3329
+ "const": true
3330
+ },
3331
+ "at_plz": {
3332
+ "const": true
3333
+ }
3334
+ }
3335
+ }
3336
+ ]
3337
+ },
3338
+ "external:core/postal-area-support.json": {
3339
+ "type": "object",
3340
+ "properties": {
3341
+ "US": {
3342
+ "type": "array",
3343
+ "items": {
3344
+ "enum": [
3345
+ "zip",
3346
+ "zip_plus_four"
3347
+ ]
3348
+ }
3349
+ },
3350
+ "GB": {
3351
+ "type": "array",
3352
+ "items": {
3353
+ "enum": [
3354
+ "outward",
3355
+ "full"
3356
+ ]
3357
+ }
3358
+ },
3359
+ "CA": {
3360
+ "type": "array",
3361
+ "items": {
3362
+ "enum": [
3363
+ "fsa",
3364
+ "full"
3365
+ ]
3366
+ }
3367
+ },
3368
+ "DE": {
3369
+ "type": "array",
3370
+ "items": {
3371
+ "const": "plz"
3372
+ }
3373
+ },
3374
+ "CH": {
3375
+ "type": "array",
3376
+ "items": {
3377
+ "const": "plz"
3378
+ }
3379
+ },
3380
+ "AT": {
3381
+ "type": "array",
3382
+ "items": {
3383
+ "const": "plz"
3384
+ }
3385
+ },
3386
+ "FR": {
3387
+ "type": "array",
3388
+ "items": {
3389
+ "const": "code_postal"
3390
+ }
3391
+ },
3392
+ "AU": {
3393
+ "type": "array",
3394
+ "items": {
3395
+ "const": "postcode"
3396
+ }
3397
+ },
3398
+ "BR": {
3399
+ "type": "array",
3400
+ "items": {
3401
+ "const": "cep"
3402
+ }
3403
+ },
3404
+ "IN": {
3405
+ "type": "array",
3406
+ "items": {
3407
+ "const": "pin"
3408
+ }
3409
+ },
3410
+ "ZA": {
3411
+ "type": "array",
3412
+ "items": {
3413
+ "const": "postal_code"
3414
+ }
3415
+ },
3416
+ "us_zip": {
3417
+ "type": "boolean"
3418
+ },
3419
+ "us_zip_plus_four": {
3420
+ "type": "boolean"
3421
+ },
3422
+ "gb_outward": {
3423
+ "type": "boolean"
3424
+ },
3425
+ "gb_full": {
3426
+ "type": "boolean"
3427
+ },
3428
+ "ca_fsa": {
3429
+ "type": "boolean"
3430
+ },
3431
+ "ca_full": {
3432
+ "type": "boolean"
3433
+ },
3434
+ "de_plz": {
3435
+ "type": "boolean"
3436
+ },
3437
+ "fr_code_postal": {
3438
+ "type": "boolean"
3439
+ },
3440
+ "au_postcode": {
3441
+ "type": "boolean"
3442
+ },
3443
+ "ch_plz": {
3444
+ "type": "boolean"
3445
+ },
3446
+ "at_plz": {
3447
+ "type": "boolean"
3448
+ }
3449
+ },
3450
+ "propertyNames": {
3451
+ "anyOf": [
3452
+ {},
3453
+ {
3454
+ "$ref": "#/$defs/external:enums~1legacy-postal-system.json"
3455
+ }
3456
+ ]
3457
+ },
3458
+ "additionalProperties": {
3459
+ "type": "array",
3460
+ "items": {
3461
+ "enum": [
3462
+ "postal_code",
3463
+ "custom"
3464
+ ]
3465
+ }
3466
+ }
3467
+ },
3468
+ "external:core/catalog-selection.json": {
3469
+ "type": "object",
3470
+ "properties": {
3471
+ "catalog_id": {
3472
+ "type": "string"
3473
+ },
3474
+ "type": {
3475
+ "$ref": "#/$defs/external:core~1catalog.json/properties/type"
3476
+ },
3477
+ "ids": {
3478
+ "allOf": [
3479
+ {
3480
+ "$ref": "#/$defs/external:core~1catalog.json/properties/ids"
3481
+ }
3482
+ ]
3483
+ },
3484
+ "gtins": {
3485
+ "allOf": [
3486
+ {
3487
+ "$ref": "#/$defs/external:core~1catalog.json/properties/gtins"
3488
+ }
3489
+ ]
3490
+ },
3491
+ "tags": {
3492
+ "allOf": [
3493
+ {
3494
+ "$ref": "#/$defs/external:core~1catalog.json/properties/tags"
3495
+ }
3496
+ ]
3497
+ },
3498
+ "category": {
3499
+ "$ref": "#/$defs/external:core~1catalog.json/properties/category"
3500
+ },
3501
+ "query": {
3502
+ "allOf": [
3503
+ {
3504
+ "$ref": "#/$defs/external:core~1catalog.json/properties/query"
3505
+ }
3506
+ ]
3507
+ }
3508
+ },
3509
+ "required": [
3510
+ "catalog_id"
3511
+ ]
3512
+ },
3513
+ "external:core/catalog.json": {
3514
+ "type": "object",
3515
+ "properties": {
3516
+ "catalog_id": {
3517
+ "type": "string"
3518
+ },
3519
+ "name": {
3520
+ "type": "string"
3521
+ },
3522
+ "type": {
3523
+ "$ref": "#/$defs/external:enums~1catalog-type.json"
3524
+ },
3525
+ "url": {
3526
+ "type": "string"
3527
+ },
3528
+ "feed_format": {
3529
+ "$ref": "#/$defs/external:enums~1feed-format.json"
3530
+ },
3531
+ "update_frequency": {
3532
+ "$ref": "#/$defs/external:enums~1update-frequency.json"
3533
+ },
3534
+ "items": {
3535
+ "type": "array",
3536
+ "items": {
3537
+ "type": "object"
3538
+ }
3539
+ },
3540
+ "ids": {
3541
+ "type": "array",
3542
+ "items": {
3543
+ "type": "string"
3544
+ }
3545
+ },
3546
+ "gtins": {
3547
+ "type": "array",
3548
+ "items": {
3549
+ "type": "string"
3550
+ }
3551
+ },
3552
+ "tags": {
3553
+ "type": "array",
3554
+ "items": {
3555
+ "type": "string"
3556
+ }
3557
+ },
3558
+ "category": {
3559
+ "type": "string"
3560
+ },
3561
+ "query": {
3562
+ "type": "string"
3563
+ },
3564
+ "conversion_events": {
3565
+ "type": "array",
3566
+ "items": {
3567
+ "$ref": "#/$defs/external:enums~1event-type.json"
3568
+ }
3569
+ },
3570
+ "content_id_type": {
3571
+ "$ref": "#/$defs/external:enums~1content-id-type.json"
3572
+ },
3573
+ "feed_field_mappings": {
3574
+ "type": "array",
3575
+ "items": {
3576
+ "$ref": "#/$defs/external:core~1catalog-field-mapping.json"
3577
+ }
3578
+ }
3579
+ },
3580
+ "required": [
3581
+ "type"
3582
+ ],
3583
+ "additionalProperties": true
3584
+ },
3585
+ "external:enums/catalog-type.json": {
3586
+ "type": "string",
3587
+ "enum": [
3588
+ "offering",
3589
+ "product",
3590
+ "inventory",
3591
+ "store",
3592
+ "promotion",
3593
+ "hotel",
3594
+ "flight",
3595
+ "job",
3596
+ "vehicle",
3597
+ "real_estate",
3598
+ "education",
3599
+ "destination",
3600
+ "app"
3601
+ ]
3602
+ },
3603
+ "external:enums/feed-format.json": {
3604
+ "type": "string",
3605
+ "enum": [
3606
+ "google_merchant_center",
3607
+ "facebook_catalog",
3608
+ "shopify",
3609
+ "linkedin_jobs",
3610
+ "tiktok_shop",
3611
+ "pinterest_catalog",
3612
+ "openai_product_feed",
3613
+ "custom"
3614
+ ]
3615
+ },
3616
+ "external:enums/update-frequency.json": {
3617
+ "type": "string",
3618
+ "enum": [
3619
+ "realtime",
3620
+ "hourly",
3621
+ "daily",
3622
+ "weekly"
3623
+ ]
3624
+ },
3625
+ "external:enums/event-type.json": {
3626
+ "type": "string",
3627
+ "enum": [
3628
+ "page_view",
3629
+ "view_content",
3630
+ "select_content",
3631
+ "select_item",
3632
+ "search",
3633
+ "share",
3634
+ "add_to_cart",
3635
+ "remove_from_cart",
3636
+ "viewed_cart",
3637
+ "add_to_wishlist",
3638
+ "initiate_checkout",
3639
+ "add_payment_info",
3640
+ "purchase",
3641
+ "refund",
3642
+ "lead",
3643
+ "qualify_lead",
3644
+ "close_convert_lead",
3645
+ "disqualify_lead",
3646
+ "complete_registration",
3647
+ "subscribe",
3648
+ "follow",
3649
+ "content_view",
3650
+ "watch_milestone",
3651
+ "start_trial",
3652
+ "app_install",
3653
+ "app_launch",
3654
+ "contact",
3655
+ "schedule",
3656
+ "donate",
3657
+ "submit_application",
3658
+ "custom"
3659
+ ]
3660
+ },
3661
+ "external:enums/content-id-type.json": {
3662
+ "type": "string",
3663
+ "enum": [
3664
+ "sku",
3665
+ "gtin",
3666
+ "offering_id",
3667
+ "job_id",
3668
+ "hotel_id",
3669
+ "flight_id",
3670
+ "vehicle_id",
3671
+ "listing_id",
3672
+ "store_id",
3673
+ "program_id",
3674
+ "destination_id",
3675
+ "app_id"
3676
+ ]
3677
+ },
3678
+ "external:core/catalog-field-mapping.json": {
3679
+ "type": "object",
3680
+ "properties": {
3681
+ "feed_field": {
3682
+ "type": "string"
3683
+ },
3684
+ "catalog_field": {
3685
+ "type": "string"
3686
+ },
3687
+ "asset_group_id": {
3688
+ "type": "string"
3689
+ },
3690
+ "value": {},
3691
+ "transform": {
3692
+ "type": "string",
3693
+ "enum": [
3694
+ "date",
3695
+ "divide",
3696
+ "boolean",
3697
+ "split"
3698
+ ]
3699
+ },
3700
+ "format": {
3701
+ "type": "string"
3702
+ },
3703
+ "timezone": {
3704
+ "type": "string"
3705
+ },
3706
+ "by": {
3707
+ "type": "number"
3708
+ },
3709
+ "separator": {
3710
+ "type": "string"
3711
+ },
3712
+ "default": {},
3713
+ "ext": {
3714
+ "$ref": "#/$defs/external:core~1ext.json"
3715
+ }
3716
+ },
3717
+ "allOf": [
3718
+ {
3719
+ "not": {
3720
+ "required": [
3721
+ "feed_field",
3722
+ "value"
3723
+ ]
3724
+ }
3725
+ },
3726
+ {
3727
+ "not": {
3728
+ "required": [
3729
+ "catalog_field",
3730
+ "asset_group_id"
3731
+ ]
3732
+ }
3733
+ }
3734
+ ],
3735
+ "additionalProperties": true
3736
+ },
3737
+ "external:media-buy/product-fields.json": {
3738
+ "type": "array",
3739
+ "items": {
3740
+ "type": "string",
3741
+ "enum": [
3742
+ "product_id",
3743
+ "name",
3744
+ "description",
3745
+ "publisher_properties",
3746
+ "channels",
3747
+ "video_placement_types",
3748
+ "audio_distribution_types",
3749
+ "sponsored_placement_types",
3750
+ "social_placement_surfaces",
3751
+ "format_options",
3752
+ "placements",
3753
+ "delivery_type",
3754
+ "exclusivity",
3755
+ "pricing_options",
3756
+ "forecast",
3757
+ "reporting_capabilities",
3758
+ "measurement_terms",
3759
+ "performance_standards",
3760
+ "catalog_types",
3761
+ "signal_targeting_allowed",
3762
+ "signal_targeting_rules",
3763
+ "demographic_targeting",
3764
+ "audience_evidence",
3765
+ "audience_evidence_selections",
3766
+ "max_optimization_goals",
3767
+ "catalog_match",
3768
+ "brief_relevance",
3769
+ "expires_at",
3770
+ "allowed_actions"
3771
+ ]
3772
+ }
3773
+ }
3774
+ },
3775
+ "dependentRequired": {
3776
+ "if_pricing_version": [
3777
+ "if_feed_version"
3778
+ ]
3779
+ }
3780
+ }