@adcp/client 3.20.0 → 3.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/agents/index.generated.d.ts +17 -1
- package/dist/lib/agents/index.generated.d.ts.map +1 -1
- package/dist/lib/agents/index.generated.js +24 -0
- package/dist/lib/agents/index.generated.js.map +1 -1
- package/dist/lib/core/AgentClient.d.ts +6 -1
- package/dist/lib/core/AgentClient.d.ts.map +1 -1
- package/dist/lib/core/AgentClient.js +13 -0
- package/dist/lib/core/AgentClient.js.map +1 -1
- package/dist/lib/core/AsyncHandler.d.ts +2 -1
- package/dist/lib/core/AsyncHandler.d.ts.map +1 -1
- package/dist/lib/core/AsyncHandler.js +3 -0
- package/dist/lib/core/AsyncHandler.js.map +1 -1
- package/dist/lib/core/SingleAgentClient.d.ts +9 -1
- package/dist/lib/core/SingleAgentClient.d.ts.map +1 -1
- package/dist/lib/core/SingleAgentClient.js +12 -0
- package/dist/lib/core/SingleAgentClient.js.map +1 -1
- package/dist/lib/index.d.ts +1 -1
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/registry/index.d.ts +57 -0
- package/dist/lib/registry/index.d.ts.map +1 -1
- package/dist/lib/registry/index.js +34 -0
- package/dist/lib/registry/index.js.map +1 -1
- package/dist/lib/registry/types.generated.d.ts +159 -0
- package/dist/lib/registry/types.generated.d.ts.map +1 -1
- package/dist/lib/registry/types.generated.js +1 -1
- package/dist/lib/types/core.generated.d.ts +159 -311
- package/dist/lib/types/core.generated.d.ts.map +1 -1
- package/dist/lib/types/core.generated.js +1 -1
- package/dist/lib/types/schemas.generated.d.ts +6032 -3347
- package/dist/lib/types/schemas.generated.d.ts.map +1 -1
- package/dist/lib/types/schemas.generated.js +533 -397
- package/dist/lib/types/schemas.generated.js.map +1 -1
- package/dist/lib/types/tools.generated.d.ts +764 -691
- package/dist/lib/types/tools.generated.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -1,3 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Request parameters for discovering available advertising products
|
|
3
|
+
*/
|
|
4
|
+
export type GetProductsRequest = {
|
|
5
|
+
/**
|
|
6
|
+
* Declares buyer intent for this request. 'brief': publisher curates product recommendations from the provided brief. 'wholesale': buyer requests raw inventory to apply their own audiences — brief must not be provided. When buying_mode is 'wholesale', publishers return only products that support buyer-directed targeting and omit proposals.
|
|
7
|
+
*/
|
|
8
|
+
buying_mode: 'brief' | 'wholesale';
|
|
9
|
+
/**
|
|
10
|
+
* Natural language description of campaign requirements. Required when buying_mode is 'brief'. Must not be provided when buying_mode is 'wholesale'.
|
|
11
|
+
*/
|
|
12
|
+
brief?: string;
|
|
13
|
+
brand?: BrandReference;
|
|
14
|
+
catalog?: Catalog;
|
|
15
|
+
/**
|
|
16
|
+
* Account ID for product lookup. Required when the seller declares account.required_for_products = true in capabilities. Returns products with pricing specific to this account's rate card.
|
|
17
|
+
*/
|
|
18
|
+
account_id?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Buyer's campaign reference label. Groups related discovery and buy operations under a single campaign for CRM and ad server correlation (e.g., 'NovaDrink_Meals_Q2').
|
|
21
|
+
*/
|
|
22
|
+
buyer_campaign_ref?: string;
|
|
23
|
+
filters?: ProductFilters;
|
|
24
|
+
property_list?: PropertyListReference;
|
|
25
|
+
pagination?: PaginationRequest;
|
|
26
|
+
context?: ContextObject;
|
|
27
|
+
ext?: ExtensionObject;
|
|
28
|
+
} & ({
|
|
29
|
+
buying_mode: 'brief';
|
|
30
|
+
} | {
|
|
31
|
+
buying_mode: 'wholesale';
|
|
32
|
+
brief?: never;
|
|
33
|
+
});
|
|
1
34
|
/**
|
|
2
35
|
* Brand identifier within the house portfolio. Optional for single-brand domains.
|
|
3
36
|
*/
|
|
@@ -55,7 +88,6 @@ export type SignalTargeting = {
|
|
|
55
88
|
* Whether to include (true) or exclude (false) users matching this signal
|
|
56
89
|
*/
|
|
57
90
|
value: boolean;
|
|
58
|
-
[k: string]: unknown | undefined;
|
|
59
91
|
} | {
|
|
60
92
|
signal_id: SignalID;
|
|
61
93
|
/**
|
|
@@ -64,11 +96,8 @@ export type SignalTargeting = {
|
|
|
64
96
|
value_type: 'categorical';
|
|
65
97
|
/**
|
|
66
98
|
* Values to target. Users with any of these values will be included.
|
|
67
|
-
*
|
|
68
|
-
* @minItems 1
|
|
69
99
|
*/
|
|
70
|
-
values:
|
|
71
|
-
[k: string]: unknown | undefined;
|
|
100
|
+
values: string[];
|
|
72
101
|
} | {
|
|
73
102
|
signal_id: SignalID;
|
|
74
103
|
/**
|
|
@@ -83,7 +112,6 @@ export type SignalTargeting = {
|
|
|
83
112
|
* Maximum value (inclusive). Omit for no maximum. Must be >= min_value when both are provided. Should be <= signal's range.max if defined.
|
|
84
113
|
*/
|
|
85
114
|
max_value?: number;
|
|
86
|
-
[k: string]: unknown | undefined;
|
|
87
115
|
};
|
|
88
116
|
/**
|
|
89
117
|
* The signal to target
|
|
@@ -101,7 +129,6 @@ export type SignalID = {
|
|
|
101
129
|
* Signal identifier within the data provider's catalog (e.g., 'likely_tesla_buyers', 'income_100k_plus')
|
|
102
130
|
*/
|
|
103
131
|
id: string;
|
|
104
|
-
[k: string]: unknown | undefined;
|
|
105
132
|
} | {
|
|
106
133
|
/**
|
|
107
134
|
* Discriminator indicating this signal is native to the agent (not from a data provider catalog)
|
|
@@ -115,35 +142,10 @@ export type SignalID = {
|
|
|
115
142
|
* Signal identifier within the agent's signal set (e.g., 'custom_auto_intenders')
|
|
116
143
|
*/
|
|
117
144
|
id: string;
|
|
118
|
-
[k: string]: unknown | undefined;
|
|
119
145
|
};
|
|
120
146
|
/**
|
|
121
147
|
* The signal to target
|
|
122
148
|
*/
|
|
123
|
-
export interface GetProductsRequest {
|
|
124
|
-
/**
|
|
125
|
-
* Natural language description of campaign requirements.
|
|
126
|
-
*/
|
|
127
|
-
brief?: string;
|
|
128
|
-
brand?: BrandReference;
|
|
129
|
-
catalog?: Catalog;
|
|
130
|
-
/**
|
|
131
|
-
* Account ID for product lookup. Required when the seller declares account.required_for_products = true in capabilities. Returns products with pricing specific to this account's rate card.
|
|
132
|
-
*/
|
|
133
|
-
account_id?: string;
|
|
134
|
-
/**
|
|
135
|
-
* Buyer's campaign reference label. Groups related discovery and buy operations under a single campaign for CRM and ad server correlation (e.g., 'NovaDrink_Meals_Q2').
|
|
136
|
-
*/
|
|
137
|
-
campaign_ref?: string;
|
|
138
|
-
filters?: ProductFilters;
|
|
139
|
-
property_list?: PropertyListReference;
|
|
140
|
-
pagination?: PaginationRequest;
|
|
141
|
-
context?: ContextObject;
|
|
142
|
-
ext?: ExtensionObject;
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Brand reference for product discovery context. Resolved to full brand identity at execution time.
|
|
146
|
-
*/
|
|
147
149
|
export interface BrandReference {
|
|
148
150
|
/**
|
|
149
151
|
* Domain where /.well-known/brand.json is hosted, or the brand's operating domain
|
|
@@ -172,28 +174,20 @@ export interface Catalog {
|
|
|
172
174
|
update_frequency?: UpdateFrequency;
|
|
173
175
|
/**
|
|
174
176
|
* Inline catalog data. The item schema depends on the catalog type: Offering objects for 'offering', StoreItem for 'store', HotelItem for 'hotel', FlightItem for 'flight', JobItem for 'job', VehicleItem for 'vehicle', RealEstateItem for 'real_estate', EducationItem for 'education', DestinationItem for 'destination', AppItem for 'app', or freeform objects for 'product', 'inventory', and 'promotion'. Mutually exclusive with url — provide one or the other, not both. Implementations should validate items against the type-specific schema.
|
|
175
|
-
*
|
|
176
|
-
* @minItems 1
|
|
177
177
|
*/
|
|
178
|
-
items?:
|
|
178
|
+
items?: {}[];
|
|
179
179
|
/**
|
|
180
180
|
* Filter catalog to specific item IDs. For offering-type catalogs, these are offering_id values. For product-type catalogs, these are SKU identifiers.
|
|
181
|
-
*
|
|
182
|
-
* @minItems 1
|
|
183
181
|
*/
|
|
184
|
-
ids?:
|
|
182
|
+
ids?: string[];
|
|
185
183
|
/**
|
|
186
184
|
* Filter product-type catalogs by GTIN identifiers for cross-retailer catalog matching. Accepts standard GTIN formats (GTIN-8, UPC-A/GTIN-12, EAN-13/GTIN-13, GTIN-14). Only applicable when type is 'product'.
|
|
187
|
-
*
|
|
188
|
-
* @minItems 1
|
|
189
185
|
*/
|
|
190
|
-
gtins?:
|
|
186
|
+
gtins?: string[];
|
|
191
187
|
/**
|
|
192
188
|
* Filter catalog to items with these tags. Tags are matched using OR logic — items matching any tag are included.
|
|
193
|
-
*
|
|
194
|
-
* @minItems 1
|
|
195
189
|
*/
|
|
196
|
-
tags?:
|
|
190
|
+
tags?: string[];
|
|
197
191
|
/**
|
|
198
192
|
* Filter catalog to items in this category (e.g., 'beverages/soft-drinks', 'chef-positions').
|
|
199
193
|
*/
|
|
@@ -204,12 +198,68 @@ export interface Catalog {
|
|
|
204
198
|
query?: string;
|
|
205
199
|
/**
|
|
206
200
|
* Event types that represent conversions for items in this catalog. Declares what events the platform should attribute to catalog items — e.g., a job catalog converts via submit_application, a product catalog via purchase. The event's content_ids field carries the item IDs that connect back to catalog items. Use content_id_type to declare what identifier type content_ids values represent.
|
|
207
|
-
*
|
|
208
|
-
* @minItems 1
|
|
209
201
|
*/
|
|
210
|
-
conversion_events?:
|
|
202
|
+
conversion_events?: EventType[];
|
|
211
203
|
content_id_type?: ContentIDType;
|
|
212
|
-
|
|
204
|
+
/**
|
|
205
|
+
* Declarative normalization rules for external feeds. Maps non-standard feed field names, date formats, price encodings, and image URLs to the AdCP catalog item schema. Applied during sync_catalogs ingestion. Supports field renames, named transforms (date, divide, boolean, split), static literal injection, and assignment of image URLs to typed asset pools.
|
|
206
|
+
*/
|
|
207
|
+
feed_field_mappings?: CatalogFieldMapping[];
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Declares how a field in an external feed maps to the AdCP catalog item schema. Used in sync_catalogs feed_field_mappings to normalize non-AdCP feeds (Google Merchant Center, LinkedIn Jobs XML, hotel XML, etc.) to the standard catalog item schema without requiring the buyer to preprocess every feed. Multiple mappings can assemble a nested object via dot notation (e.g., separate mappings for price.amount and price.currency).
|
|
211
|
+
*/
|
|
212
|
+
export interface CatalogFieldMapping {
|
|
213
|
+
/**
|
|
214
|
+
* Field name in the external feed record. Omit when injecting a static literal value (use the value property instead).
|
|
215
|
+
*/
|
|
216
|
+
feed_field?: string;
|
|
217
|
+
/**
|
|
218
|
+
* Target field on the catalog item schema, using dot notation for nested fields (e.g., 'name', 'price.amount', 'location.city'). Mutually exclusive with asset_group_id.
|
|
219
|
+
*/
|
|
220
|
+
catalog_field?: string;
|
|
221
|
+
/**
|
|
222
|
+
* Places the feed field value (a URL) into a typed asset pool on the catalog item's assets array. The value is wrapped as an image or video asset in a group with this ID. Use standard group IDs: 'images_landscape', 'images_vertical', 'images_square', 'logo', 'video'. Mutually exclusive with catalog_field.
|
|
223
|
+
*/
|
|
224
|
+
asset_group_id?: string;
|
|
225
|
+
/**
|
|
226
|
+
* Static literal value to inject into catalog_field for every item, regardless of what the feed contains. Mutually exclusive with feed_field. Useful for fields the feed omits (e.g., currency when price is always USD, or a constant category value).
|
|
227
|
+
*/
|
|
228
|
+
value?: {
|
|
229
|
+
[k: string]: unknown | undefined;
|
|
230
|
+
};
|
|
231
|
+
/**
|
|
232
|
+
* Named transform to apply to the feed field value before writing to the catalog schema. See transform-specific parameters (format, timezone, by, separator).
|
|
233
|
+
*/
|
|
234
|
+
transform?: 'date' | 'divide' | 'boolean' | 'split';
|
|
235
|
+
/**
|
|
236
|
+
* For transform 'date': the input date format string (e.g., 'YYYYMMDD', 'MM/DD/YYYY', 'DD-MM-YYYY'). Output is always ISO 8601 (e.g., '2025-03-01'). Uses Unicode date pattern tokens.
|
|
237
|
+
*/
|
|
238
|
+
format?: string;
|
|
239
|
+
/**
|
|
240
|
+
* For transform 'date': the timezone of the input value. IANA timezone identifier (e.g., 'UTC', 'America/New_York', 'Europe/Amsterdam'). Defaults to UTC when omitted.
|
|
241
|
+
*/
|
|
242
|
+
timezone?: string;
|
|
243
|
+
/**
|
|
244
|
+
* For transform 'divide': the divisor to apply (e.g., 100 to convert integer cents to decimal dollars).
|
|
245
|
+
*/
|
|
246
|
+
by?: number;
|
|
247
|
+
/**
|
|
248
|
+
* For transform 'split': the separator character or string to split on. Defaults to ','.
|
|
249
|
+
*/
|
|
250
|
+
separator?: string;
|
|
251
|
+
/**
|
|
252
|
+
* Fallback value to use when feed_field is absent, null, or empty. Applied after any transform would have been applied. Allows optional feed fields to have a guaranteed baseline value.
|
|
253
|
+
*/
|
|
254
|
+
default?: {
|
|
255
|
+
[k: string]: unknown | undefined;
|
|
256
|
+
};
|
|
257
|
+
ext?: ExtensionObject;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Extension object for platform-specific, vendor-namespaced parameters. Extensions are always optional and must be namespaced under a vendor/platform key (e.g., ext.gam, ext.roku). Used for custom capabilities, partner-specific configuration, and features being proposed for standardization.
|
|
261
|
+
*/
|
|
262
|
+
export interface ExtensionObject {
|
|
213
263
|
}
|
|
214
264
|
/**
|
|
215
265
|
* Structured filters for product discovery
|
|
@@ -222,16 +272,12 @@ export interface ProductFilters {
|
|
|
222
272
|
is_fixed_price?: boolean;
|
|
223
273
|
/**
|
|
224
274
|
* Filter by format types
|
|
225
|
-
*
|
|
226
|
-
* @minItems 1
|
|
227
275
|
*/
|
|
228
|
-
format_types?:
|
|
276
|
+
format_types?: FormatCategory[];
|
|
229
277
|
/**
|
|
230
278
|
* Filter by specific format IDs
|
|
231
|
-
*
|
|
232
|
-
* @minItems 1
|
|
233
279
|
*/
|
|
234
|
-
format_ids?:
|
|
280
|
+
format_ids?: FormatID[];
|
|
235
281
|
/**
|
|
236
282
|
* Only return products accepting IAB standard formats
|
|
237
283
|
*/
|
|
@@ -256,78 +302,45 @@ export interface ProductFilters {
|
|
|
256
302
|
};
|
|
257
303
|
/**
|
|
258
304
|
* Filter by country coverage using ISO 3166-1 alpha-2 codes (e.g., ['US', 'CA', 'GB']). Works for all inventory types.
|
|
259
|
-
*
|
|
260
|
-
* @minItems 1
|
|
261
305
|
*/
|
|
262
|
-
countries?:
|
|
306
|
+
countries?: string[];
|
|
263
307
|
/**
|
|
264
308
|
* Filter by region coverage using ISO 3166-2 codes (e.g., ['US-NY', 'US-CA', 'GB-SCT']). Use for locally-bound inventory (regional OOH, local TV) where products have region-specific coverage.
|
|
265
|
-
*
|
|
266
|
-
* @minItems 1
|
|
267
309
|
*/
|
|
268
|
-
regions?:
|
|
310
|
+
regions?: string[];
|
|
269
311
|
/**
|
|
270
312
|
* Filter by metro coverage for locally-bound inventory (radio, DOOH, local TV). Use when products have DMA/metro-specific coverage. For digital inventory where products have broad coverage, use required_geo_targeting instead to filter by seller capability.
|
|
271
|
-
*
|
|
272
|
-
* @minItems 1
|
|
273
313
|
*/
|
|
274
|
-
metros?:
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
},
|
|
282
|
-
...{
|
|
283
|
-
system: MetroAreaSystem;
|
|
284
|
-
/**
|
|
285
|
-
* Metro code within the system (e.g., '501' for NYC DMA)
|
|
286
|
-
*/
|
|
287
|
-
code: string;
|
|
288
|
-
}[]
|
|
289
|
-
];
|
|
314
|
+
metros?: {
|
|
315
|
+
system: MetroAreaSystem;
|
|
316
|
+
/**
|
|
317
|
+
* Metro code within the system (e.g., '501' for NYC DMA)
|
|
318
|
+
*/
|
|
319
|
+
code: string;
|
|
320
|
+
}[];
|
|
290
321
|
/**
|
|
291
322
|
* Filter by advertising channels (e.g., ['display', 'ctv', 'dooh'])
|
|
292
|
-
*
|
|
293
|
-
* @minItems 1
|
|
294
323
|
*/
|
|
295
|
-
channels?:
|
|
324
|
+
channels?: MediaChannel[];
|
|
296
325
|
/**
|
|
297
326
|
* Filter to products executable through specific agentic ad exchanges. URLs are canonical identifiers.
|
|
298
|
-
*
|
|
299
|
-
* @minItems 1
|
|
300
327
|
*/
|
|
301
|
-
required_axe_integrations?:
|
|
328
|
+
required_axe_integrations?: string[];
|
|
302
329
|
required_features?: MediaBuyFeatures;
|
|
303
330
|
/**
|
|
304
331
|
* Filter to products from sellers supporting specific geo targeting capabilities. Each entry specifies a targeting level (country, region, metro, postal_area) and optionally a system for levels that have multiple classification systems.
|
|
305
|
-
*
|
|
306
|
-
* @minItems 1
|
|
307
332
|
*/
|
|
308
|
-
required_geo_targeting?:
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
},
|
|
316
|
-
...{
|
|
317
|
-
level: GeographicTargetingLevel;
|
|
318
|
-
/**
|
|
319
|
-
* Classification system within the level. Required for metro (e.g., 'nielsen_dma') and postal_area (e.g., 'us_zip'). Not applicable for country/region which use ISO standards.
|
|
320
|
-
*/
|
|
321
|
-
system?: string;
|
|
322
|
-
}[]
|
|
323
|
-
];
|
|
333
|
+
required_geo_targeting?: {
|
|
334
|
+
level: GeographicTargetingLevel;
|
|
335
|
+
/**
|
|
336
|
+
* Classification system within the level. Required for metro (e.g., 'nielsen_dma') and postal_area (e.g., 'us_zip'). Not applicable for country/region which use ISO standards.
|
|
337
|
+
*/
|
|
338
|
+
system?: string;
|
|
339
|
+
}[];
|
|
324
340
|
/**
|
|
325
341
|
* Filter to products supporting specific signals from data provider catalogs. Products must have the requested signals in their data_provider_signals and signal_targeting_allowed must be true (or all signals requested).
|
|
326
|
-
*
|
|
327
|
-
* @minItems 1
|
|
328
342
|
*/
|
|
329
|
-
signal_targeting?:
|
|
330
|
-
[k: string]: unknown | undefined;
|
|
343
|
+
signal_targeting?: SignalTargeting[];
|
|
331
344
|
}
|
|
332
345
|
/**
|
|
333
346
|
* Structured format identifier with agent URL and format name. Can reference: (1) a concrete format with fixed dimensions (id only), (2) a template format without parameters (id only), or (3) a template format with parameters (id + dimensions/duration). Template formats accept parameters in format_id while concrete formats have fixed dimensions in their definition. Parameterized format IDs create unique, specific format variants.
|
|
@@ -353,7 +366,6 @@ export interface FormatID {
|
|
|
353
366
|
* Duration in milliseconds for time-based formats (video, audio). When specified, creates a parameterized format ID. Omit to reference a template format without parameters.
|
|
354
367
|
*/
|
|
355
368
|
duration_ms?: number;
|
|
356
|
-
[k: string]: unknown | undefined;
|
|
357
369
|
}
|
|
358
370
|
/**
|
|
359
371
|
* Filter to products from sellers supporting specific protocol features. Only features set to true are used for filtering.
|
|
@@ -423,13 +435,6 @@ export interface PaginationRequest {
|
|
|
423
435
|
* Opaque correlation data that is echoed unchanged in responses. Used for internal tracking, UI session IDs, trace IDs, and other caller-specific identifiers that don't affect protocol behavior. Context data is never parsed by AdCP agents - it's simply preserved and returned.
|
|
424
436
|
*/
|
|
425
437
|
export interface ContextObject {
|
|
426
|
-
[k: string]: unknown | undefined;
|
|
427
|
-
}
|
|
428
|
-
/**
|
|
429
|
-
* Extension object for platform-specific, vendor-namespaced parameters. Extensions are always optional and must be namespaced under a vendor/platform key (e.g., ext.gam, ext.roku). Used for custom capabilities, partner-specific configuration, and features being proposed for standardization.
|
|
430
|
-
*/
|
|
431
|
-
export interface ExtensionObject {
|
|
432
|
-
[k: string]: unknown | undefined;
|
|
433
438
|
}
|
|
434
439
|
/**
|
|
435
440
|
* Selects properties from a publisher's adagents.json. Used for both product definitions and agent authorization. Supports three selection patterns: all properties, specific IDs, or by tags.
|
|
@@ -443,7 +448,6 @@ export type PublisherPropertySelector = {
|
|
|
443
448
|
* Discriminator indicating all properties from this publisher are included
|
|
444
449
|
*/
|
|
445
450
|
selection_type: 'all';
|
|
446
|
-
[k: string]: unknown | undefined;
|
|
447
451
|
} | {
|
|
448
452
|
/**
|
|
449
453
|
* Domain where publisher's adagents.json is hosted (e.g., 'cnn.com')
|
|
@@ -455,11 +459,8 @@ export type PublisherPropertySelector = {
|
|
|
455
459
|
selection_type: 'by_id';
|
|
456
460
|
/**
|
|
457
461
|
* Specific property IDs from the publisher's adagents.json
|
|
458
|
-
*
|
|
459
|
-
* @minItems 1
|
|
460
462
|
*/
|
|
461
|
-
property_ids:
|
|
462
|
-
[k: string]: unknown | undefined;
|
|
463
|
+
property_ids: PropertyID[];
|
|
463
464
|
} | {
|
|
464
465
|
/**
|
|
465
466
|
* Domain where publisher's adagents.json is hosted (e.g., 'cnn.com')
|
|
@@ -471,11 +472,8 @@ export type PublisherPropertySelector = {
|
|
|
471
472
|
selection_type: 'by_tag';
|
|
472
473
|
/**
|
|
473
474
|
* Property tags from the publisher's adagents.json. Selector covers all properties with these tags
|
|
474
|
-
*
|
|
475
|
-
* @minItems 1
|
|
476
475
|
*/
|
|
477
|
-
property_tags:
|
|
478
|
-
[k: string]: unknown | undefined;
|
|
476
|
+
property_tags: PropertyTag[];
|
|
479
477
|
};
|
|
480
478
|
/**
|
|
481
479
|
* Identifier for a publisher property. Must be lowercase alphanumeric with underscores only.
|
|
@@ -533,7 +531,6 @@ export type DataProviderSignalSelector = {
|
|
|
533
531
|
* Discriminator indicating all signals from this data provider are included
|
|
534
532
|
*/
|
|
535
533
|
selection_type: 'all';
|
|
536
|
-
[k: string]: unknown | undefined;
|
|
537
534
|
} | {
|
|
538
535
|
/**
|
|
539
536
|
* Domain where data provider's adagents.json is hosted (e.g., 'polk.com')
|
|
@@ -545,11 +542,8 @@ export type DataProviderSignalSelector = {
|
|
|
545
542
|
selection_type: 'by_id';
|
|
546
543
|
/**
|
|
547
544
|
* Specific signal IDs from the data provider's catalog
|
|
548
|
-
*
|
|
549
|
-
* @minItems 1
|
|
550
545
|
*/
|
|
551
|
-
signal_ids:
|
|
552
|
-
[k: string]: unknown | undefined;
|
|
546
|
+
signal_ids: string[];
|
|
553
547
|
} | {
|
|
554
548
|
/**
|
|
555
549
|
* Domain where data provider's adagents.json is hosted (e.g., 'polk.com')
|
|
@@ -561,11 +555,8 @@ export type DataProviderSignalSelector = {
|
|
|
561
555
|
selection_type: 'by_tag';
|
|
562
556
|
/**
|
|
563
557
|
* Signal tags from the data provider's catalog. Selector covers all signals with these tags
|
|
564
|
-
*
|
|
565
|
-
* @minItems 1
|
|
566
558
|
*/
|
|
567
|
-
signal_tags:
|
|
568
|
-
[k: string]: unknown | undefined;
|
|
559
|
+
signal_tags: string[];
|
|
569
560
|
};
|
|
570
561
|
/**
|
|
571
562
|
* The type of catalog feed. Determines the item schema and how the platform resolves catalog items. Multiple catalog types can be synced to the same account and referenced together in creatives.
|
|
@@ -625,10 +616,8 @@ export interface Product {
|
|
|
625
616
|
description: string;
|
|
626
617
|
/**
|
|
627
618
|
* Publisher properties covered by this product. Buyers fetch actual property definitions from each publisher's adagents.json and validate agent authorization. Selection patterns mirror the authorization patterns in adagents.json for consistency.
|
|
628
|
-
*
|
|
629
|
-
* @minItems 1
|
|
630
619
|
*/
|
|
631
|
-
publisher_properties:
|
|
620
|
+
publisher_properties: PublisherPropertySelector[];
|
|
632
621
|
/**
|
|
633
622
|
* Advertising channels this product is sold as. Products inherit from their properties' supported_channels but may narrow the scope. For example, a product covering YouTube properties might be sold as ['ctv'] even though those properties support ['olv', 'social', 'ctv'].
|
|
634
623
|
*/
|
|
@@ -639,17 +628,13 @@ export interface Product {
|
|
|
639
628
|
format_ids: FormatID[];
|
|
640
629
|
/**
|
|
641
630
|
* Optional array of specific placements within this product. When provided, buyers can target specific placements when assigning creatives.
|
|
642
|
-
*
|
|
643
|
-
* @minItems 1
|
|
644
631
|
*/
|
|
645
|
-
placements?:
|
|
632
|
+
placements?: Placement[];
|
|
646
633
|
delivery_type: DeliveryType;
|
|
647
634
|
/**
|
|
648
635
|
* Available pricing models for this product
|
|
649
|
-
*
|
|
650
|
-
* @minItems 1
|
|
651
636
|
*/
|
|
652
|
-
pricing_options:
|
|
637
|
+
pricing_options: PricingOption[];
|
|
653
638
|
forecast?: DeliveryForecast;
|
|
654
639
|
measurement?: Measurement;
|
|
655
640
|
/**
|
|
@@ -685,34 +670,24 @@ export interface Product {
|
|
|
685
670
|
signal_targeting_allowed?: boolean;
|
|
686
671
|
/**
|
|
687
672
|
* Catalog types this product supports for catalog-driven campaigns. A sponsored product listing declares ["product"], a job board declares ["job", "offering"]. Buyers match synced catalogs to products via this field.
|
|
688
|
-
*
|
|
689
|
-
* @minItems 1
|
|
690
673
|
*/
|
|
691
|
-
catalog_types?:
|
|
674
|
+
catalog_types?: CatalogType[];
|
|
692
675
|
/**
|
|
693
676
|
* Conversion tracking for this product. Presence indicates the product supports conversion-optimized delivery. Seller-level capabilities (supported event types, UID types, attribution windows) are declared in get_adcp_capabilities.
|
|
694
677
|
*/
|
|
695
678
|
conversion_tracking?: {
|
|
696
679
|
/**
|
|
697
680
|
* Action sources relevant to this product (e.g. a retail media product might have 'in_store' and 'website', while a display product might only have 'website')
|
|
698
|
-
*
|
|
699
|
-
* @minItems 1
|
|
700
681
|
*/
|
|
701
|
-
action_sources?:
|
|
682
|
+
action_sources?: ActionSource[];
|
|
702
683
|
/**
|
|
703
684
|
* Optimization strategies this product supports when an optimization_goal is set on a package
|
|
704
|
-
*
|
|
705
|
-
* @minItems 1
|
|
706
685
|
*/
|
|
707
|
-
supported_optimization_strategies?: [
|
|
708
|
-
'maximize_conversions' | 'target_cpa' | 'target_roas',
|
|
709
|
-
...('maximize_conversions' | 'target_cpa' | 'target_roas')[]
|
|
710
|
-
];
|
|
686
|
+
supported_optimization_strategies?: ('maximize_conversions' | 'target_cpa' | 'target_roas')[];
|
|
711
687
|
/**
|
|
712
688
|
* Whether the seller provides its own always-on measurement (e.g. Amazon sales attribution for Amazon advertisers). When true, sync_event_sources response will include seller-managed event sources with managed_by='seller'.
|
|
713
689
|
*/
|
|
714
690
|
platform_managed?: boolean;
|
|
715
|
-
[k: string]: unknown | undefined;
|
|
716
691
|
};
|
|
717
692
|
/**
|
|
718
693
|
* When the buyer provides a catalog on get_products, indicates which catalog items are eligible for this product. Only present for products where catalog matching is relevant (e.g., sponsored product listings, job boards, hotel ads).
|
|
@@ -751,10 +726,7 @@ export interface Product {
|
|
|
751
726
|
/**
|
|
752
727
|
* Asset manifest for rendering the card, structure defined by the format
|
|
753
728
|
*/
|
|
754
|
-
manifest: {
|
|
755
|
-
[k: string]: unknown | undefined;
|
|
756
|
-
};
|
|
757
|
-
[k: string]: unknown | undefined;
|
|
729
|
+
manifest: {};
|
|
758
730
|
};
|
|
759
731
|
/**
|
|
760
732
|
* Optional detailed card with carousel and full specifications. Provides rich product presentation similar to media kit pages.
|
|
@@ -764,13 +736,9 @@ export interface Product {
|
|
|
764
736
|
/**
|
|
765
737
|
* Asset manifest for rendering the detailed card, structure defined by the format
|
|
766
738
|
*/
|
|
767
|
-
manifest: {
|
|
768
|
-
[k: string]: unknown | undefined;
|
|
769
|
-
};
|
|
770
|
-
[k: string]: unknown | undefined;
|
|
739
|
+
manifest: {};
|
|
771
740
|
};
|
|
772
741
|
ext?: ExtensionObject;
|
|
773
|
-
[k: string]: unknown | undefined;
|
|
774
742
|
}
|
|
775
743
|
/**
|
|
776
744
|
* Structured format identifier with agent URL and format name. Can reference: (1) a concrete format with fixed dimensions (id only), (2) a template format without parameters (id only), or (3) a template format with parameters (id + dimensions/duration). Template formats accept parameters in format_id while concrete formats have fixed dimensions in their definition. Parameterized format IDs create unique, specific format variants.
|
|
@@ -790,11 +758,8 @@ export interface Placement {
|
|
|
790
758
|
description?: string;
|
|
791
759
|
/**
|
|
792
760
|
* Format IDs supported by this specific placement. Can include: (1) concrete format_ids (fixed dimensions), (2) template format_ids without parameters (accepts any dimensions/duration), or (3) parameterized format_ids (specific dimension/duration constraints).
|
|
793
|
-
*
|
|
794
|
-
* @minItems 1
|
|
795
761
|
*/
|
|
796
|
-
format_ids?:
|
|
797
|
-
[k: string]: unknown | undefined;
|
|
762
|
+
format_ids?: FormatID[];
|
|
798
763
|
}
|
|
799
764
|
/**
|
|
800
765
|
* Cost Per Mille (cost per 1,000 impressions) pricing. If fixed_price is present, it's fixed pricing. If absent, it's auction-based.
|
|
@@ -820,12 +785,15 @@ export interface CPMPricingOption {
|
|
|
820
785
|
* Minimum acceptable bid for auction pricing (mutually exclusive with fixed_price). Bids below this value will be rejected.
|
|
821
786
|
*/
|
|
822
787
|
floor_price?: number;
|
|
788
|
+
/**
|
|
789
|
+
* When true, bid_price is interpreted as the buyer's maximum willingness to pay (ceiling) rather than an exact price. Sellers may optimize actual clearing prices between floor_price and bid_price based on delivery pacing. When false or absent, bid_price (if provided) is the exact bid/price to honor.
|
|
790
|
+
*/
|
|
791
|
+
max_bid?: boolean;
|
|
823
792
|
price_guidance?: PriceGuidance;
|
|
824
793
|
/**
|
|
825
794
|
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
826
795
|
*/
|
|
827
796
|
min_spend_per_package?: number;
|
|
828
|
-
[k: string]: unknown | undefined;
|
|
829
797
|
}
|
|
830
798
|
/**
|
|
831
799
|
* Optional pricing guidance for auction-based bidding
|
|
@@ -847,7 +815,6 @@ export interface PriceGuidance {
|
|
|
847
815
|
* 90th percentile of recent winning bids
|
|
848
816
|
*/
|
|
849
817
|
p90?: number;
|
|
850
|
-
[k: string]: unknown | undefined;
|
|
851
818
|
}
|
|
852
819
|
/**
|
|
853
820
|
* Viewable Cost Per Mille (cost per 1,000 viewable impressions) pricing - MRC viewability standard. If fixed_price is present, it's fixed pricing. If absent, it's auction-based.
|
|
@@ -873,12 +840,15 @@ export interface VCPMPricingOption {
|
|
|
873
840
|
* Minimum acceptable bid for auction pricing (mutually exclusive with fixed_price). Bids below this value will be rejected.
|
|
874
841
|
*/
|
|
875
842
|
floor_price?: number;
|
|
843
|
+
/**
|
|
844
|
+
* When true, bid_price is interpreted as the buyer's maximum willingness to pay (ceiling) rather than an exact price. Sellers may optimize actual clearing prices between floor_price and bid_price based on delivery pacing. When false or absent, bid_price (if provided) is the exact bid/price to honor.
|
|
845
|
+
*/
|
|
846
|
+
max_bid?: boolean;
|
|
876
847
|
price_guidance?: PriceGuidance;
|
|
877
848
|
/**
|
|
878
849
|
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
879
850
|
*/
|
|
880
851
|
min_spend_per_package?: number;
|
|
881
|
-
[k: string]: unknown | undefined;
|
|
882
852
|
}
|
|
883
853
|
/**
|
|
884
854
|
* Optional pricing guidance for auction-based bidding
|
|
@@ -904,12 +874,15 @@ export interface CPCPricingOption {
|
|
|
904
874
|
* Minimum acceptable bid for auction pricing (mutually exclusive with fixed_price). Bids below this value will be rejected.
|
|
905
875
|
*/
|
|
906
876
|
floor_price?: number;
|
|
877
|
+
/**
|
|
878
|
+
* When true, bid_price is interpreted as the buyer's maximum willingness to pay (ceiling) rather than an exact price. Sellers may optimize actual clearing prices between floor_price and bid_price based on delivery pacing. When false or absent, bid_price (if provided) is the exact bid/price to honor.
|
|
879
|
+
*/
|
|
880
|
+
max_bid?: boolean;
|
|
907
881
|
price_guidance?: PriceGuidance;
|
|
908
882
|
/**
|
|
909
883
|
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
910
884
|
*/
|
|
911
885
|
min_spend_per_package?: number;
|
|
912
|
-
[k: string]: unknown | undefined;
|
|
913
886
|
}
|
|
914
887
|
/**
|
|
915
888
|
* Optional pricing guidance for auction-based bidding
|
|
@@ -935,12 +908,15 @@ export interface CPCVPricingOption {
|
|
|
935
908
|
* Minimum acceptable bid for auction pricing (mutually exclusive with fixed_price). Bids below this value will be rejected.
|
|
936
909
|
*/
|
|
937
910
|
floor_price?: number;
|
|
911
|
+
/**
|
|
912
|
+
* When true, bid_price is interpreted as the buyer's maximum willingness to pay (ceiling) rather than an exact price. Sellers may optimize actual clearing prices between floor_price and bid_price based on delivery pacing. When false or absent, bid_price (if provided) is the exact bid/price to honor.
|
|
913
|
+
*/
|
|
914
|
+
max_bid?: boolean;
|
|
938
915
|
price_guidance?: PriceGuidance;
|
|
939
916
|
/**
|
|
940
917
|
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
941
918
|
*/
|
|
942
919
|
min_spend_per_package?: number;
|
|
943
|
-
[k: string]: unknown | undefined;
|
|
944
920
|
}
|
|
945
921
|
/**
|
|
946
922
|
* Optional pricing guidance for auction-based bidding
|
|
@@ -966,6 +942,10 @@ export interface CPVPricingOption {
|
|
|
966
942
|
* Minimum acceptable bid for auction pricing (mutually exclusive with fixed_price). Bids below this value will be rejected.
|
|
967
943
|
*/
|
|
968
944
|
floor_price?: number;
|
|
945
|
+
/**
|
|
946
|
+
* When true, bid_price is interpreted as the buyer's maximum willingness to pay (ceiling) rather than an exact price. Sellers may optimize actual clearing prices between floor_price and bid_price based on delivery pacing. When false or absent, bid_price (if provided) is the exact bid/price to honor.
|
|
947
|
+
*/
|
|
948
|
+
max_bid?: boolean;
|
|
969
949
|
price_guidance?: PriceGuidance;
|
|
970
950
|
/**
|
|
971
951
|
* CPV-specific parameters defining the view threshold
|
|
@@ -976,15 +956,12 @@ export interface CPVPricingOption {
|
|
|
976
956
|
* Seconds of viewing required
|
|
977
957
|
*/
|
|
978
958
|
duration_seconds: number;
|
|
979
|
-
[k: string]: unknown | undefined;
|
|
980
959
|
};
|
|
981
|
-
[k: string]: unknown | undefined;
|
|
982
960
|
};
|
|
983
961
|
/**
|
|
984
962
|
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
985
963
|
*/
|
|
986
964
|
min_spend_per_package?: number;
|
|
987
|
-
[k: string]: unknown | undefined;
|
|
988
965
|
}
|
|
989
966
|
/**
|
|
990
967
|
* Optional pricing guidance for auction-based bidding
|
|
@@ -1024,13 +1001,11 @@ export interface CPPPricingOption {
|
|
|
1024
1001
|
* Minimum GRPs/TRPs required
|
|
1025
1002
|
*/
|
|
1026
1003
|
min_points?: number;
|
|
1027
|
-
[k: string]: unknown | undefined;
|
|
1028
1004
|
};
|
|
1029
1005
|
/**
|
|
1030
1006
|
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
1031
1007
|
*/
|
|
1032
1008
|
min_spend_per_package?: number;
|
|
1033
|
-
[k: string]: unknown | undefined;
|
|
1034
1009
|
}
|
|
1035
1010
|
/**
|
|
1036
1011
|
* Optional pricing guidance for auction-based bidding
|
|
@@ -1068,7 +1043,6 @@ export interface CPAPricingOption {
|
|
|
1068
1043
|
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
1069
1044
|
*/
|
|
1070
1045
|
min_spend_per_package?: number;
|
|
1071
|
-
[k: string]: unknown | undefined;
|
|
1072
1046
|
}
|
|
1073
1047
|
/**
|
|
1074
1048
|
* Flat rate pricing for DOOH, sponsorships, and time-based campaigns. If fixed_price is present, it's fixed pricing. If absent, it's auction-based.
|
|
@@ -1127,13 +1101,11 @@ export interface FlatRatePricingOption {
|
|
|
1127
1101
|
* Specific daypart for time-based pricing
|
|
1128
1102
|
*/
|
|
1129
1103
|
daypart?: string;
|
|
1130
|
-
[k: string]: unknown | undefined;
|
|
1131
1104
|
};
|
|
1132
1105
|
/**
|
|
1133
1106
|
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
1134
1107
|
*/
|
|
1135
1108
|
min_spend_per_package?: number;
|
|
1136
|
-
[k: string]: unknown | undefined;
|
|
1137
1109
|
}
|
|
1138
1110
|
/**
|
|
1139
1111
|
* Optional pricing guidance for auction-based bidding
|
|
@@ -1176,13 +1148,11 @@ export interface TimeBasedPricingOption {
|
|
|
1176
1148
|
* Maximum booking duration in time_units. Must be >= min_duration when both are present.
|
|
1177
1149
|
*/
|
|
1178
1150
|
max_duration?: number;
|
|
1179
|
-
[k: string]: unknown | undefined;
|
|
1180
1151
|
};
|
|
1181
1152
|
/**
|
|
1182
1153
|
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
1183
1154
|
*/
|
|
1184
1155
|
min_spend_per_package?: number;
|
|
1185
|
-
[k: string]: unknown | undefined;
|
|
1186
1156
|
}
|
|
1187
1157
|
/**
|
|
1188
1158
|
* Optional pricing guidance for auction-based bidding
|
|
@@ -1190,10 +1160,8 @@ export interface TimeBasedPricingOption {
|
|
|
1190
1160
|
export interface DeliveryForecast {
|
|
1191
1161
|
/**
|
|
1192
1162
|
* Forecasted delivery at one or more budget levels. A single point is a standard forecast; multiple points ordered by ascending budget form a curve showing how metrics scale with spend. Each point pairs a budget with metric ranges.
|
|
1193
|
-
*
|
|
1194
|
-
* @minItems 1
|
|
1195
1163
|
*/
|
|
1196
|
-
points:
|
|
1164
|
+
points: ForecastPoint[];
|
|
1197
1165
|
forecast_range_unit?: ForecastRangeUnit;
|
|
1198
1166
|
method: ForecastMethod;
|
|
1199
1167
|
/**
|
|
@@ -1215,7 +1183,6 @@ export interface DeliveryForecast {
|
|
|
1215
1183
|
*/
|
|
1216
1184
|
valid_until?: string;
|
|
1217
1185
|
ext?: ExtensionObject;
|
|
1218
|
-
[k: string]: unknown | undefined;
|
|
1219
1186
|
}
|
|
1220
1187
|
/**
|
|
1221
1188
|
* A forecast at a specific budget level. A single point represents a standard forecast; multiple points ordered by ascending budget form a curve showing how delivery metrics scale with spend.
|
|
@@ -1231,7 +1198,6 @@ export interface ForecastPoint {
|
|
|
1231
1198
|
metrics: {
|
|
1232
1199
|
[k: string]: ForecastRange | undefined;
|
|
1233
1200
|
};
|
|
1234
|
-
[k: string]: unknown | undefined;
|
|
1235
1201
|
}
|
|
1236
1202
|
/**
|
|
1237
1203
|
* A forecast value with optional low/high bounds. The mid value represents the most likely outcome. When low and high are provided, they represent conservative and optimistic estimates respectively.
|
|
@@ -1249,7 +1215,6 @@ export interface ForecastRange {
|
|
|
1249
1215
|
* Optimistic (high-end) forecast value
|
|
1250
1216
|
*/
|
|
1251
1217
|
high?: number;
|
|
1252
|
-
[k: string]: unknown | undefined;
|
|
1253
1218
|
}
|
|
1254
1219
|
/**
|
|
1255
1220
|
* Extension object for platform-specific, vendor-namespaced parameters. Extensions are always optional and must be namespaced under a vendor/platform key (e.g., ext.gam, ext.roku). Used for custom capabilities, partner-specific configuration, and features being proposed for standardization.
|
|
@@ -1271,7 +1236,6 @@ export interface Measurement {
|
|
|
1271
1236
|
* Reporting frequency and format
|
|
1272
1237
|
*/
|
|
1273
1238
|
reporting: string;
|
|
1274
|
-
[k: string]: unknown | undefined;
|
|
1275
1239
|
}
|
|
1276
1240
|
/**
|
|
1277
1241
|
* Reporting capabilities available for a product
|
|
@@ -1279,10 +1243,8 @@ export interface Measurement {
|
|
|
1279
1243
|
export interface ReportingCapabilities {
|
|
1280
1244
|
/**
|
|
1281
1245
|
* Supported reporting frequency options
|
|
1282
|
-
*
|
|
1283
|
-
* @minItems 1
|
|
1284
1246
|
*/
|
|
1285
|
-
available_reporting_frequencies:
|
|
1247
|
+
available_reporting_frequencies: ReportingFrequency[];
|
|
1286
1248
|
/**
|
|
1287
1249
|
* Expected delay in minutes before reporting data becomes available (e.g., 240 for 4-hour delay)
|
|
1288
1250
|
*/
|
|
@@ -1307,7 +1269,6 @@ export interface ReportingCapabilities {
|
|
|
1307
1269
|
* Whether delivery data can be filtered to arbitrary date ranges. 'date_range' means the platform supports start_date/end_date parameters. 'lifetime_only' means the platform returns campaign lifetime totals and date range parameters are not accepted.
|
|
1308
1270
|
*/
|
|
1309
1271
|
date_range_support: 'date_range' | 'lifetime_only';
|
|
1310
|
-
[k: string]: unknown | undefined;
|
|
1311
1272
|
}
|
|
1312
1273
|
/**
|
|
1313
1274
|
* Creative requirements and restrictions for a product
|
|
@@ -1319,7 +1280,6 @@ export interface CreativePolicy {
|
|
|
1319
1280
|
* Whether creative templates are provided
|
|
1320
1281
|
*/
|
|
1321
1282
|
templates_available: boolean;
|
|
1322
|
-
[k: string]: unknown | undefined;
|
|
1323
1283
|
}
|
|
1324
1284
|
/**
|
|
1325
1285
|
* Structured format identifier with agent URL and format name. Can reference: (1) a concrete format with fixed dimensions (id only), (2) a template format without parameters (id only), or (3) a template format with parameters (id + dimensions/duration). Template formats accept parameters in format_id while concrete formats have fixed dimensions in their definition. Parameterized format IDs create unique, specific format variants.
|
|
@@ -1339,10 +1299,8 @@ export interface Proposal {
|
|
|
1339
1299
|
description?: string;
|
|
1340
1300
|
/**
|
|
1341
1301
|
* Budget allocations across products. Allocation percentages MUST sum to 100. Publishers are responsible for ensuring the sum equals 100; buyers SHOULD validate this before execution.
|
|
1342
|
-
*
|
|
1343
|
-
* @minItems 1
|
|
1344
1302
|
*/
|
|
1345
|
-
allocations:
|
|
1303
|
+
allocations: ProductAllocation[];
|
|
1346
1304
|
/**
|
|
1347
1305
|
* When this proposal expires and can no longer be executed. After expiration, referenced products or pricing may no longer be available.
|
|
1348
1306
|
*/
|
|
@@ -1367,7 +1325,6 @@ export interface Proposal {
|
|
|
1367
1325
|
* ISO 4217 currency code
|
|
1368
1326
|
*/
|
|
1369
1327
|
currency?: string;
|
|
1370
|
-
[k: string]: unknown | undefined;
|
|
1371
1328
|
};
|
|
1372
1329
|
/**
|
|
1373
1330
|
* Explanation of how this proposal aligns with the campaign brief
|
|
@@ -1375,7 +1332,6 @@ export interface Proposal {
|
|
|
1375
1332
|
brief_alignment?: string;
|
|
1376
1333
|
forecast?: DeliveryForecast;
|
|
1377
1334
|
ext?: ExtensionObject;
|
|
1378
|
-
[k: string]: unknown | undefined;
|
|
1379
1335
|
}
|
|
1380
1336
|
/**
|
|
1381
1337
|
* A budget allocation for a specific product within a proposal. Percentages across all allocations in a proposal should sum to 100.
|
|
@@ -1407,13 +1363,10 @@ export interface ProductAllocation {
|
|
|
1407
1363
|
tags?: string[];
|
|
1408
1364
|
/**
|
|
1409
1365
|
* Recommended time windows for this allocation in spot-plan proposals.
|
|
1410
|
-
*
|
|
1411
|
-
* @minItems 1
|
|
1412
1366
|
*/
|
|
1413
|
-
daypart_targets?:
|
|
1367
|
+
daypart_targets?: DaypartTarget[];
|
|
1414
1368
|
forecast?: DeliveryForecast;
|
|
1415
1369
|
ext?: ExtensionObject;
|
|
1416
|
-
[k: string]: unknown | undefined;
|
|
1417
1370
|
}
|
|
1418
1371
|
/**
|
|
1419
1372
|
* A time window for daypart targeting. Specifies days of week and an hour range. start_hour is inclusive, end_hour is exclusive (e.g., 6-10 = 6:00am to 10:00am). Follows the Google Ads AdScheduleInfo / DV360 DayPartTargeting pattern.
|
|
@@ -1421,10 +1374,8 @@ export interface ProductAllocation {
|
|
|
1421
1374
|
export interface DaypartTarget {
|
|
1422
1375
|
/**
|
|
1423
1376
|
* Days of week this window applies to. Use multiple days for compact targeting (e.g., monday-friday in one object).
|
|
1424
|
-
*
|
|
1425
|
-
* @minItems 1
|
|
1426
1377
|
*/
|
|
1427
|
-
days:
|
|
1378
|
+
days: DayOfWeek[];
|
|
1428
1379
|
/**
|
|
1429
1380
|
* Start hour (inclusive), 0-23 in 24-hour format. 0 = midnight, 6 = 6:00am, 18 = 6:00pm.
|
|
1430
1381
|
*/
|
|
@@ -1465,10 +1416,7 @@ export interface Error {
|
|
|
1465
1416
|
/**
|
|
1466
1417
|
* Additional task-specific error details
|
|
1467
1418
|
*/
|
|
1468
|
-
details?: {
|
|
1469
|
-
[k: string]: unknown | undefined;
|
|
1470
|
-
};
|
|
1471
|
-
[k: string]: unknown | undefined;
|
|
1419
|
+
details?: {};
|
|
1472
1420
|
}
|
|
1473
1421
|
/**
|
|
1474
1422
|
* Standard cursor-based pagination metadata for list responses
|
|
@@ -1563,6 +1511,25 @@ export type UniversalMacro = 'MEDIA_BUY_ID' | 'PACKAGE_ID' | 'CREATIVE_ID' | 'CA
|
|
|
1563
1511
|
* WCAG conformance level that this format achieves. For format-rendered creatives, the format guarantees this level. For opaque creatives, the format requires assets that self-certify to this level.
|
|
1564
1512
|
*/
|
|
1565
1513
|
export type AssetRequirements = ImageAssetRequirements | VideoAssetRequirements | AudioAssetRequirements | TextAssetRequirements | MarkdownAssetRequirements | HTMLAssetRequirements | CSSAssetRequirements | JavaScriptAssetRequirements | VASTAssetRequirements | DAASTAssetRequirements | URLAssetRequirements | WebhookAssetRequirements;
|
|
1514
|
+
/**
|
|
1515
|
+
* Maps a format template slot to a catalog item field or typed asset pool. The 'kind' field identifies the binding variant. All bindings are optional — agents can still infer mappings without them.
|
|
1516
|
+
*/
|
|
1517
|
+
export type CatalogFieldBinding = ScalarBinding | AssetPoolBinding | {
|
|
1518
|
+
kind: 'catalog_group';
|
|
1519
|
+
/**
|
|
1520
|
+
* The asset_group_id of a repeatable_group in the format's assets array.
|
|
1521
|
+
*/
|
|
1522
|
+
format_group_id: string;
|
|
1523
|
+
/**
|
|
1524
|
+
* Each repetition of the format's repeatable_group maps to one item from the catalog.
|
|
1525
|
+
*/
|
|
1526
|
+
catalog_item: true;
|
|
1527
|
+
/**
|
|
1528
|
+
* Scalar and asset pool bindings that apply within each repetition of the group. Nested catalog_group bindings are not permitted.
|
|
1529
|
+
*/
|
|
1530
|
+
per_item_bindings?: (ScalarBinding | AssetPoolBinding)[];
|
|
1531
|
+
ext?: ExtensionObject;
|
|
1532
|
+
};
|
|
1566
1533
|
/**
|
|
1567
1534
|
* Standard delivery and performance metrics available for reporting
|
|
1568
1535
|
*/
|
|
@@ -1628,21 +1595,12 @@ export interface Format {
|
|
|
1628
1595
|
accepts_parameters?: FormatIDParameter[];
|
|
1629
1596
|
/**
|
|
1630
1597
|
* Specification of rendered pieces for this format. Most formats produce a single render. Companion ad formats (video + banner), adaptive formats, and multi-placement formats produce multiple renders. Each render specifies its role and dimensions.
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
|
|
1637
|
-
} | {
|
|
1638
|
-
parameters_from_format_id: true;
|
|
1639
|
-
}),
|
|
1640
|
-
...({
|
|
1641
|
-
[k: string]: unknown | undefined;
|
|
1642
|
-
} | {
|
|
1643
|
-
parameters_from_format_id: true;
|
|
1644
|
-
})[]
|
|
1645
|
-
];
|
|
1598
|
+
*/
|
|
1599
|
+
renders?: ({
|
|
1600
|
+
[k: string]: unknown | undefined;
|
|
1601
|
+
} | {
|
|
1602
|
+
parameters_from_format_id: true;
|
|
1603
|
+
})[];
|
|
1646
1604
|
/**
|
|
1647
1605
|
* Array of all assets supported for this format. Each asset is identified by its asset_id, which must be used as the key in creative manifests. Use the 'required' boolean on each asset to indicate whether it's mandatory.
|
|
1648
1606
|
*/
|
|
@@ -1679,9 +1637,7 @@ export interface Format {
|
|
|
1679
1637
|
/**
|
|
1680
1638
|
* Delivery method specifications (e.g., hosted, VAST, third-party tags)
|
|
1681
1639
|
*/
|
|
1682
|
-
delivery?: {
|
|
1683
|
-
[k: string]: unknown | undefined;
|
|
1684
|
-
};
|
|
1640
|
+
delivery?: {};
|
|
1685
1641
|
/**
|
|
1686
1642
|
* List of universal macros supported by this format (e.g., MEDIA_BUY_ID, CACHEBUSTER, DEVICE_ID). Used for validation and developer tooling. See docs/creative/universal-macros.mdx for full documentation.
|
|
1687
1643
|
*/
|
|
@@ -1702,10 +1658,7 @@ export interface Format {
|
|
|
1702
1658
|
/**
|
|
1703
1659
|
* Asset manifest for rendering the card, structure defined by the format
|
|
1704
1660
|
*/
|
|
1705
|
-
manifest: {
|
|
1706
|
-
[k: string]: unknown | undefined;
|
|
1707
|
-
};
|
|
1708
|
-
[k: string]: unknown | undefined;
|
|
1661
|
+
manifest: {};
|
|
1709
1662
|
};
|
|
1710
1663
|
/**
|
|
1711
1664
|
* Accessibility posture of this format. Declares the WCAG conformance level that creatives produced by this format will meet.
|
|
@@ -1725,24 +1678,16 @@ export interface Format {
|
|
|
1725
1678
|
/**
|
|
1726
1679
|
* Asset manifest for rendering the detailed card, structure defined by the format
|
|
1727
1680
|
*/
|
|
1728
|
-
manifest: {
|
|
1729
|
-
[k: string]: unknown | undefined;
|
|
1730
|
-
};
|
|
1731
|
-
[k: string]: unknown | undefined;
|
|
1681
|
+
manifest: {};
|
|
1732
1682
|
};
|
|
1733
1683
|
/**
|
|
1734
1684
|
* Catalog feeds this format requires for rendering. Formats that display product listings, store locators, inventory availability, or promotional pricing declare what catalog types must be synced to the account. Buyers ensure the required catalogs are synced via sync_catalogs before submitting creatives in this format.
|
|
1735
|
-
*
|
|
1736
|
-
* @minItems 1
|
|
1737
1685
|
*/
|
|
1738
|
-
catalog_requirements?:
|
|
1686
|
+
catalog_requirements?: CatalogRequirements[];
|
|
1739
1687
|
/**
|
|
1740
1688
|
* Metrics this format can produce in delivery reporting. Buyers receive the intersection of format reported_metrics and product available_metrics. If omitted, the format defers entirely to product-level metric declarations.
|
|
1741
|
-
*
|
|
1742
|
-
* @minItems 1
|
|
1743
1689
|
*/
|
|
1744
|
-
reported_metrics?:
|
|
1745
|
-
[k: string]: unknown | undefined;
|
|
1690
|
+
reported_metrics?: AvailableMetric[];
|
|
1746
1691
|
}
|
|
1747
1692
|
/**
|
|
1748
1693
|
* Structured format identifier with agent URL and format name
|
|
@@ -1764,6 +1709,65 @@ export interface BaseIndividualAsset {
|
|
|
1764
1709
|
* Whether this asset is required (true) or optional (false). Required assets must be provided for a valid creative. Optional assets enhance the creative but are not mandatory.
|
|
1765
1710
|
*/
|
|
1766
1711
|
required: boolean;
|
|
1712
|
+
/**
|
|
1713
|
+
* Publisher-controlled elements rendered on top of buyer content at this asset's position (e.g., video player controls, publisher logos). Creative agents should avoid placing critical content (CTAs, logos, key copy) within overlay bounds.
|
|
1714
|
+
*/
|
|
1715
|
+
overlays?: Overlay[];
|
|
1716
|
+
}
|
|
1717
|
+
/**
|
|
1718
|
+
* A publisher-controlled element that renders on top of buyer creative content within the ad placement. Creative agents should avoid placing critical content (CTAs, logos, key copy) within overlay bounds.
|
|
1719
|
+
*/
|
|
1720
|
+
export interface Overlay {
|
|
1721
|
+
/**
|
|
1722
|
+
* Identifier for this overlay (e.g., 'play_pause', 'volume', 'publisher_logo', 'carousel_prev', 'carousel_next')
|
|
1723
|
+
*/
|
|
1724
|
+
id: string;
|
|
1725
|
+
/**
|
|
1726
|
+
* Human-readable explanation of what this overlay is and how buyers should account for it
|
|
1727
|
+
*/
|
|
1728
|
+
description?: string;
|
|
1729
|
+
/**
|
|
1730
|
+
* Optional visual reference for this overlay element. Useful for creative agents compositing previews and for buyers understanding what will appear over their content. Must include at least one of: url, light, or dark.
|
|
1731
|
+
*/
|
|
1732
|
+
visual?: {
|
|
1733
|
+
/**
|
|
1734
|
+
* URL to a theme-neutral overlay graphic (SVG or PNG). Use when a single file works for all backgrounds, e.g. an SVG using CSS custom properties or currentColor.
|
|
1735
|
+
*/
|
|
1736
|
+
url?: string;
|
|
1737
|
+
/**
|
|
1738
|
+
* URL to the overlay graphic for use on light/bright backgrounds (SVG or PNG)
|
|
1739
|
+
*/
|
|
1740
|
+
light?: string;
|
|
1741
|
+
/**
|
|
1742
|
+
* URL to the overlay graphic for use on dark backgrounds (SVG or PNG)
|
|
1743
|
+
*/
|
|
1744
|
+
dark?: string;
|
|
1745
|
+
};
|
|
1746
|
+
/**
|
|
1747
|
+
* Position and size of the overlay relative to the asset's own top-left corner. See 'unit' for coordinate interpretation.
|
|
1748
|
+
*/
|
|
1749
|
+
bounds: {
|
|
1750
|
+
/**
|
|
1751
|
+
* Horizontal offset from the asset's left edge
|
|
1752
|
+
*/
|
|
1753
|
+
x: number;
|
|
1754
|
+
/**
|
|
1755
|
+
* Vertical offset from the asset's top edge
|
|
1756
|
+
*/
|
|
1757
|
+
y: number;
|
|
1758
|
+
/**
|
|
1759
|
+
* Width of the overlay
|
|
1760
|
+
*/
|
|
1761
|
+
width: number;
|
|
1762
|
+
/**
|
|
1763
|
+
* Height of the overlay
|
|
1764
|
+
*/
|
|
1765
|
+
height: number;
|
|
1766
|
+
/**
|
|
1767
|
+
* 'px' = absolute pixels from asset top-left. 'fraction' = proportional to asset dimensions (x/y: 0.0 = asset edge, 1.0 = opposite edge; width/height: 0.12 = 12% of asset dimension).
|
|
1768
|
+
*/
|
|
1769
|
+
unit: 'px' | 'fraction';
|
|
1770
|
+
};
|
|
1767
1771
|
}
|
|
1768
1772
|
export interface BaseGroupAsset {
|
|
1769
1773
|
/**
|
|
@@ -1778,6 +1782,10 @@ export interface BaseGroupAsset {
|
|
|
1778
1782
|
* Whether this asset is required within each repetition of the group
|
|
1779
1783
|
*/
|
|
1780
1784
|
required: boolean;
|
|
1785
|
+
/**
|
|
1786
|
+
* Publisher-controlled elements rendered on top of buyer content at this asset's position (e.g., carousel navigation arrows, slide indicators). Creative agents should avoid placing critical content within overlay bounds.
|
|
1787
|
+
*/
|
|
1788
|
+
overlays?: Overlay[];
|
|
1781
1789
|
}
|
|
1782
1790
|
/**
|
|
1783
1791
|
* Structured format identifier with agent URL and format name. Can reference: (1) a concrete format with fixed dimensions (id only), (2) a template format without parameters (id only), or (3) a template format with parameters (id + dimensions/duration). Template formats accept parameters in format_id while concrete formats have fixed dimensions in their definition. Parameterized format IDs create unique, specific format variants.
|
|
@@ -1794,23 +1802,20 @@ export interface CatalogRequirements {
|
|
|
1794
1802
|
min_items?: number;
|
|
1795
1803
|
/**
|
|
1796
1804
|
* Fields that must be present and non-empty on every item in the catalog. Field names are catalog-type-specific (e.g., 'title', 'price', 'image_url' for product catalogs; 'store_id', 'quantity' for inventory feeds).
|
|
1797
|
-
*
|
|
1798
|
-
* @minItems 1
|
|
1799
1805
|
*/
|
|
1800
|
-
required_fields?:
|
|
1806
|
+
required_fields?: string[];
|
|
1801
1807
|
/**
|
|
1802
1808
|
* Accepted feed formats for this catalog type. When specified, the synced catalog must use one of these formats. When omitted, any format is accepted.
|
|
1803
|
-
*
|
|
1804
|
-
* @minItems 1
|
|
1805
1809
|
*/
|
|
1806
|
-
feed_formats?:
|
|
1810
|
+
feed_formats?: FeedFormat[];
|
|
1807
1811
|
/**
|
|
1808
|
-
* Per-
|
|
1809
|
-
*
|
|
1810
|
-
* @minItems 1
|
|
1812
|
+
* Per-item creative asset requirements. Declares what asset groups (headlines, images, videos) each catalog item must provide in its assets array, along with count bounds and per-asset technical constraints. Applicable to 'offering' and all vertical catalog types (hotel, flight, job, etc.) whose items carry typed assets.
|
|
1811
1813
|
*/
|
|
1812
|
-
offering_asset_constraints?:
|
|
1813
|
-
|
|
1814
|
+
offering_asset_constraints?: OfferingAssetConstraint[];
|
|
1815
|
+
/**
|
|
1816
|
+
* Explicit mappings from format template slots to catalog item fields or typed asset pools. Optional — creative agents can infer mappings without them, but bindings make the relationship self-describing and enable validation. Covers scalar fields (asset_id → catalog_field), asset pools (asset_id → asset_group_id on the catalog item), and repeatable groups that iterate over catalog items.
|
|
1817
|
+
*/
|
|
1818
|
+
field_bindings?: CatalogFieldBinding[];
|
|
1814
1819
|
}
|
|
1815
1820
|
/**
|
|
1816
1821
|
* Declares per-group creative requirements that each offering must satisfy. Allows formats to specify what asset groups (headlines, images, videos) offerings must provide, along with count and per-asset technical constraints.
|
|
@@ -1835,7 +1840,6 @@ export interface OfferingAssetConstraint {
|
|
|
1835
1840
|
max_count?: number;
|
|
1836
1841
|
asset_requirements?: AssetRequirements;
|
|
1837
1842
|
ext?: ExtensionObject;
|
|
1838
|
-
[k: string]: unknown | undefined;
|
|
1839
1843
|
}
|
|
1840
1844
|
/**
|
|
1841
1845
|
* Requirements for image creative assets. These define the technical constraints for image files.
|
|
@@ -1881,7 +1885,6 @@ export interface ImageAssetRequirements {
|
|
|
1881
1885
|
* Maximum animation duration in milliseconds (if animation_allowed is true)
|
|
1882
1886
|
*/
|
|
1883
1887
|
max_animation_duration_ms?: number;
|
|
1884
|
-
[k: string]: unknown | undefined;
|
|
1885
1888
|
}
|
|
1886
1889
|
/**
|
|
1887
1890
|
* Requirements for video creative assets. These define the technical constraints for video files.
|
|
@@ -1943,7 +1946,6 @@ export interface VideoAssetRequirements {
|
|
|
1943
1946
|
* Whether the video must include an audio track
|
|
1944
1947
|
*/
|
|
1945
1948
|
audio_required?: boolean;
|
|
1946
|
-
[k: string]: unknown | undefined;
|
|
1947
1949
|
}
|
|
1948
1950
|
/**
|
|
1949
1951
|
* Requirements for audio creative assets.
|
|
@@ -1981,7 +1983,6 @@ export interface AudioAssetRequirements {
|
|
|
1981
1983
|
* Maximum audio bitrate in kilobits per second
|
|
1982
1984
|
*/
|
|
1983
1985
|
max_bitrate_kbps?: number;
|
|
1984
|
-
[k: string]: unknown | undefined;
|
|
1985
1986
|
}
|
|
1986
1987
|
/**
|
|
1987
1988
|
* Requirements for text creative assets such as headlines, body copy, and CTAs.
|
|
@@ -2011,7 +2012,6 @@ export interface TextAssetRequirements {
|
|
|
2011
2012
|
* List of prohibited words or phrases
|
|
2012
2013
|
*/
|
|
2013
2014
|
prohibited_terms?: string[];
|
|
2014
|
-
[k: string]: unknown | undefined;
|
|
2015
2015
|
}
|
|
2016
2016
|
/**
|
|
2017
2017
|
* Requirements for markdown creative assets.
|
|
@@ -2021,7 +2021,6 @@ export interface MarkdownAssetRequirements {
|
|
|
2021
2021
|
* Maximum character length
|
|
2022
2022
|
*/
|
|
2023
2023
|
max_length?: number;
|
|
2024
|
-
[k: string]: unknown | undefined;
|
|
2025
2024
|
}
|
|
2026
2025
|
/**
|
|
2027
2026
|
* Requirements for HTML creative assets. These define the execution environment constraints that the HTML must be compatible with.
|
|
@@ -2043,7 +2042,6 @@ export interface HTMLAssetRequirements {
|
|
|
2043
2042
|
* List of domains the HTML creative may reference for external resources. Only applicable when external_resources_allowed is true.
|
|
2044
2043
|
*/
|
|
2045
2044
|
allowed_external_domains?: string[];
|
|
2046
|
-
[k: string]: unknown | undefined;
|
|
2047
2045
|
}
|
|
2048
2046
|
/**
|
|
2049
2047
|
* Requirements for CSS creative assets.
|
|
@@ -2053,7 +2051,6 @@ export interface CSSAssetRequirements {
|
|
|
2053
2051
|
* Maximum file size in kilobytes
|
|
2054
2052
|
*/
|
|
2055
2053
|
max_file_size_kb?: number;
|
|
2056
|
-
[k: string]: unknown | undefined;
|
|
2057
2054
|
}
|
|
2058
2055
|
/**
|
|
2059
2056
|
* Requirements for JavaScript creative assets. These define the execution environment constraints that the JavaScript must be compatible with.
|
|
@@ -2079,7 +2076,6 @@ export interface JavaScriptAssetRequirements {
|
|
|
2079
2076
|
* List of domains the JavaScript may reference for external resources. Only applicable when external_resources_allowed is true.
|
|
2080
2077
|
*/
|
|
2081
2078
|
allowed_external_domains?: string[];
|
|
2082
|
-
[k: string]: unknown | undefined;
|
|
2083
2079
|
}
|
|
2084
2080
|
/**
|
|
2085
2081
|
* Requirements for VAST (Video Ad Serving Template) creative assets.
|
|
@@ -2089,7 +2085,6 @@ export interface VASTAssetRequirements {
|
|
|
2089
2085
|
* Required VAST version
|
|
2090
2086
|
*/
|
|
2091
2087
|
vast_version?: '2.0' | '3.0' | '4.0' | '4.1' | '4.2';
|
|
2092
|
-
[k: string]: unknown | undefined;
|
|
2093
2088
|
}
|
|
2094
2089
|
/**
|
|
2095
2090
|
* Requirements for DAAST (Digital Audio Ad Serving Template) creative assets.
|
|
@@ -2099,7 +2094,6 @@ export interface DAASTAssetRequirements {
|
|
|
2099
2094
|
* Required DAAST version. DAAST 1.0 is the current IAB standard.
|
|
2100
2095
|
*/
|
|
2101
2096
|
daast_version?: '1.0';
|
|
2102
|
-
[k: string]: unknown | undefined;
|
|
2103
2097
|
}
|
|
2104
2098
|
/**
|
|
2105
2099
|
* Requirements for URL assets such as click-through URLs, tracking pixels, and landing pages.
|
|
@@ -2125,7 +2119,6 @@ export interface URLAssetRequirements {
|
|
|
2125
2119
|
* Whether the URL supports macro substitution (e.g., ${CACHEBUSTER})
|
|
2126
2120
|
*/
|
|
2127
2121
|
macro_support?: boolean;
|
|
2128
|
-
[k: string]: unknown | undefined;
|
|
2129
2122
|
}
|
|
2130
2123
|
/**
|
|
2131
2124
|
* Requirements for webhook creative assets.
|
|
@@ -2135,11 +2128,40 @@ export interface WebhookAssetRequirements {
|
|
|
2135
2128
|
* Allowed HTTP methods
|
|
2136
2129
|
*/
|
|
2137
2130
|
methods?: ('GET' | 'POST')[];
|
|
2138
|
-
[k: string]: unknown | undefined;
|
|
2139
2131
|
}
|
|
2140
2132
|
/**
|
|
2141
2133
|
* Extension object for platform-specific, vendor-namespaced parameters. Extensions are always optional and must be namespaced under a vendor/platform key (e.g., ext.gam, ext.roku). Used for custom capabilities, partner-specific configuration, and features being proposed for standardization.
|
|
2142
2134
|
*/
|
|
2135
|
+
export interface ScalarBinding {
|
|
2136
|
+
kind: 'scalar';
|
|
2137
|
+
/**
|
|
2138
|
+
* The asset_id from the format's assets array. Identifies which individual template slot this binding applies to.
|
|
2139
|
+
*/
|
|
2140
|
+
asset_id: string;
|
|
2141
|
+
/**
|
|
2142
|
+
* Dot-notation path to the field on the catalog item (e.g., 'name', 'price.amount', 'location.city').
|
|
2143
|
+
*/
|
|
2144
|
+
catalog_field: string;
|
|
2145
|
+
ext?: ExtensionObject;
|
|
2146
|
+
}
|
|
2147
|
+
/**
|
|
2148
|
+
* Maps an individual format asset to a typed asset pool on the catalog item (e.g., images_landscape, images_vertical, logo). The format slot receives the first item in the pool.
|
|
2149
|
+
*/
|
|
2150
|
+
export interface AssetPoolBinding {
|
|
2151
|
+
kind: 'asset_pool';
|
|
2152
|
+
/**
|
|
2153
|
+
* The asset_id from the format's assets array. Identifies which individual template slot this binding applies to.
|
|
2154
|
+
*/
|
|
2155
|
+
asset_id: string;
|
|
2156
|
+
/**
|
|
2157
|
+
* The asset_group_id on the catalog item's assets array to pull from (e.g., 'images_landscape', 'images_vertical', 'logo').
|
|
2158
|
+
*/
|
|
2159
|
+
asset_group_id: string;
|
|
2160
|
+
ext?: ExtensionObject;
|
|
2161
|
+
}
|
|
2162
|
+
/**
|
|
2163
|
+
* Standard error structure for task-specific errors and warnings
|
|
2164
|
+
*/
|
|
2143
2165
|
/**
|
|
2144
2166
|
* Budget pacing strategy
|
|
2145
2167
|
*/
|
|
@@ -2193,7 +2215,6 @@ export type VASTAsset = {
|
|
|
2193
2215
|
* URL to audio description track for visually impaired users
|
|
2194
2216
|
*/
|
|
2195
2217
|
audio_description_url?: string;
|
|
2196
|
-
[k: string]: unknown | undefined;
|
|
2197
2218
|
} | {
|
|
2198
2219
|
/**
|
|
2199
2220
|
* Discriminator indicating VAST is delivered as inline XML content
|
|
@@ -2224,7 +2245,6 @@ export type VASTAsset = {
|
|
|
2224
2245
|
* URL to audio description track for visually impaired users
|
|
2225
2246
|
*/
|
|
2226
2247
|
audio_description_url?: string;
|
|
2227
|
-
[k: string]: unknown | undefined;
|
|
2228
2248
|
};
|
|
2229
2249
|
/**
|
|
2230
2250
|
* VAST specification version
|
|
@@ -2263,7 +2283,6 @@ export type DAASTAsset = {
|
|
|
2263
2283
|
* URL to text transcript of the audio content
|
|
2264
2284
|
*/
|
|
2265
2285
|
transcript_url?: string;
|
|
2266
|
-
[k: string]: unknown | undefined;
|
|
2267
2286
|
} | {
|
|
2268
2287
|
/**
|
|
2269
2288
|
* Discriminator indicating DAAST is delivered as inline XML content
|
|
@@ -2290,7 +2309,6 @@ export type DAASTAsset = {
|
|
|
2290
2309
|
* URL to text transcript of the audio content
|
|
2291
2310
|
*/
|
|
2292
2311
|
transcript_url?: string;
|
|
2293
|
-
[k: string]: unknown | undefined;
|
|
2294
2312
|
};
|
|
2295
2313
|
/**
|
|
2296
2314
|
* DAAST specification version
|
|
@@ -2327,7 +2345,7 @@ export interface CreateMediaBuyRequest {
|
|
|
2327
2345
|
/**
|
|
2328
2346
|
* Buyer's campaign reference label. Groups related discovery and buy operations under a single campaign for CRM and ad server correlation (e.g., 'NovaDrink_Meals_Q2').
|
|
2329
2347
|
*/
|
|
2330
|
-
|
|
2348
|
+
buyer_campaign_ref?: string;
|
|
2331
2349
|
/**
|
|
2332
2350
|
* Account to bill for this media buy. Required when the agent has access to multiple accounts; when omitted, the seller uses the agent's sole account. The seller maps the agent's brand + operator to an account during sync_accounts; the agent passes that account_id here.
|
|
2333
2351
|
*/
|
|
@@ -2421,10 +2439,8 @@ export interface PackageRequest {
|
|
|
2421
2439
|
product_id: string;
|
|
2422
2440
|
/**
|
|
2423
2441
|
* Array of format IDs that will be used for this package - must be supported by the product. If omitted, defaults to all formats supported by the product.
|
|
2424
|
-
*
|
|
2425
|
-
* @minItems 1
|
|
2426
2442
|
*/
|
|
2427
|
-
format_ids?:
|
|
2443
|
+
format_ids?: FormatID[];
|
|
2428
2444
|
/**
|
|
2429
2445
|
* Budget allocation for this package in the media buy's currency
|
|
2430
2446
|
*/
|
|
@@ -2435,7 +2451,7 @@ export interface PackageRequest {
|
|
|
2435
2451
|
*/
|
|
2436
2452
|
pricing_option_id: string;
|
|
2437
2453
|
/**
|
|
2438
|
-
* Bid price for auction-based
|
|
2454
|
+
* Bid price for auction-based pricing options. This is the exact bid/price to honor unless selected pricing_option has max_bid=true, in which case bid_price is the buyer's maximum willingness to pay (ceiling).
|
|
2439
2455
|
*/
|
|
2440
2456
|
bid_price?: number;
|
|
2441
2457
|
/**
|
|
@@ -2451,19 +2467,15 @@ export interface PackageRequest {
|
|
|
2451
2467
|
targeting_overlay?: TargetingOverlay;
|
|
2452
2468
|
/**
|
|
2453
2469
|
* Assign existing library creatives to this package with optional weights and placement targeting
|
|
2454
|
-
*
|
|
2455
|
-
* @minItems 1
|
|
2456
2470
|
*/
|
|
2457
|
-
creative_assignments?:
|
|
2471
|
+
creative_assignments?: CreativeAssignment[];
|
|
2458
2472
|
/**
|
|
2459
2473
|
* Upload new creative assets and assign to this package (creatives will be added to library). Use creative_assignments instead for existing library creatives.
|
|
2460
2474
|
*
|
|
2461
|
-
* @minItems 1
|
|
2462
2475
|
* @maxItems 100
|
|
2463
2476
|
*/
|
|
2464
|
-
creatives?:
|
|
2477
|
+
creatives?: CreativeAsset[];
|
|
2465
2478
|
ext?: ExtensionObject;
|
|
2466
|
-
[k: string]: unknown | undefined;
|
|
2467
2479
|
}
|
|
2468
2480
|
/**
|
|
2469
2481
|
* Structured format identifier with agent URL and format name. Can reference: (1) a concrete format with fixed dimensions (id only), (2) a template format without parameters (id only), or (3) a template format with parameters (id + dimensions/duration). Template formats accept parameters in format_id while concrete formats have fixed dimensions in their definition. Parameterized format IDs create unique, specific format variants.
|
|
@@ -2494,9 +2506,7 @@ export interface OptimizationGoal {
|
|
|
2494
2506
|
* View-through attribution window (e.g. '1d', '7d')
|
|
2495
2507
|
*/
|
|
2496
2508
|
view_through?: string;
|
|
2497
|
-
[k: string]: unknown | undefined;
|
|
2498
2509
|
};
|
|
2499
|
-
[k: string]: unknown | undefined;
|
|
2500
2510
|
}
|
|
2501
2511
|
/**
|
|
2502
2512
|
* Optional restriction overlays for media buys. Most targeting should be expressed in the brief and handled by the publisher. These fields are for functional restrictions: geographic (RCT testing, regulatory compliance), age verification (alcohol, gambling), device platform (app compatibility), and language (localization).
|
|
@@ -2504,134 +2514,64 @@ export interface OptimizationGoal {
|
|
|
2504
2514
|
export interface TargetingOverlay {
|
|
2505
2515
|
/**
|
|
2506
2516
|
* Restrict delivery to specific countries. ISO 3166-1 alpha-2 codes (e.g., 'US', 'GB', 'DE').
|
|
2507
|
-
*
|
|
2508
|
-
* @minItems 1
|
|
2509
2517
|
*/
|
|
2510
|
-
geo_countries?:
|
|
2518
|
+
geo_countries?: string[];
|
|
2511
2519
|
/**
|
|
2512
2520
|
* Exclude specific countries from delivery. ISO 3166-1 alpha-2 codes (e.g., 'US', 'GB', 'DE').
|
|
2513
|
-
*
|
|
2514
|
-
* @minItems 1
|
|
2515
2521
|
*/
|
|
2516
|
-
geo_countries_exclude?:
|
|
2522
|
+
geo_countries_exclude?: string[];
|
|
2517
2523
|
/**
|
|
2518
2524
|
* Restrict delivery to specific regions/states. ISO 3166-2 subdivision codes (e.g., 'US-CA', 'GB-SCT').
|
|
2519
|
-
*
|
|
2520
|
-
* @minItems 1
|
|
2521
2525
|
*/
|
|
2522
|
-
geo_regions?:
|
|
2526
|
+
geo_regions?: string[];
|
|
2523
2527
|
/**
|
|
2524
2528
|
* Exclude specific regions/states from delivery. ISO 3166-2 subdivision codes (e.g., 'US-CA', 'GB-SCT').
|
|
2525
|
-
*
|
|
2526
|
-
* @minItems 1
|
|
2527
2529
|
*/
|
|
2528
|
-
geo_regions_exclude?:
|
|
2530
|
+
geo_regions_exclude?: string[];
|
|
2529
2531
|
/**
|
|
2530
2532
|
* Restrict delivery to specific metro areas. Each entry specifies the classification system and target values. Seller must declare supported systems in get_adcp_capabilities.
|
|
2531
|
-
*
|
|
2532
|
-
* @minItems 1
|
|
2533
2533
|
*/
|
|
2534
|
-
geo_metros?:
|
|
2535
|
-
|
|
2536
|
-
|
|
2537
|
-
|
|
2538
|
-
|
|
2539
|
-
|
|
2540
|
-
|
|
2541
|
-
*/
|
|
2542
|
-
values: [string, ...string[]];
|
|
2543
|
-
},
|
|
2544
|
-
...{
|
|
2545
|
-
system: MetroAreaSystem;
|
|
2546
|
-
/**
|
|
2547
|
-
* Metro codes within the system (e.g., ['501', '602'] for Nielsen DMAs)
|
|
2548
|
-
*
|
|
2549
|
-
* @minItems 1
|
|
2550
|
-
*/
|
|
2551
|
-
values: [string, ...string[]];
|
|
2552
|
-
}[]
|
|
2553
|
-
];
|
|
2534
|
+
geo_metros?: {
|
|
2535
|
+
system: MetroAreaSystem;
|
|
2536
|
+
/**
|
|
2537
|
+
* Metro codes within the system (e.g., ['501', '602'] for Nielsen DMAs)
|
|
2538
|
+
*/
|
|
2539
|
+
values: string[];
|
|
2540
|
+
}[];
|
|
2554
2541
|
/**
|
|
2555
2542
|
* Exclude specific metro areas from delivery. Each entry specifies the classification system and excluded values. Seller must declare supported systems in get_adcp_capabilities.
|
|
2556
|
-
*
|
|
2557
|
-
* @minItems 1
|
|
2558
2543
|
*/
|
|
2559
|
-
geo_metros_exclude?:
|
|
2560
|
-
|
|
2561
|
-
|
|
2562
|
-
|
|
2563
|
-
|
|
2564
|
-
|
|
2565
|
-
|
|
2566
|
-
*/
|
|
2567
|
-
values: [string, ...string[]];
|
|
2568
|
-
},
|
|
2569
|
-
...{
|
|
2570
|
-
system: MetroAreaSystem;
|
|
2571
|
-
/**
|
|
2572
|
-
* Metro codes to exclude within the system (e.g., ['501', '602'] for Nielsen DMAs)
|
|
2573
|
-
*
|
|
2574
|
-
* @minItems 1
|
|
2575
|
-
*/
|
|
2576
|
-
values: [string, ...string[]];
|
|
2577
|
-
}[]
|
|
2578
|
-
];
|
|
2544
|
+
geo_metros_exclude?: {
|
|
2545
|
+
system: MetroAreaSystem;
|
|
2546
|
+
/**
|
|
2547
|
+
* Metro codes to exclude within the system (e.g., ['501', '602'] for Nielsen DMAs)
|
|
2548
|
+
*/
|
|
2549
|
+
values: string[];
|
|
2550
|
+
}[];
|
|
2579
2551
|
/**
|
|
2580
2552
|
* Restrict delivery to specific postal areas. Each entry specifies the postal system and target values. Seller must declare supported systems in get_adcp_capabilities.
|
|
2581
|
-
*
|
|
2582
|
-
* @minItems 1
|
|
2583
2553
|
*/
|
|
2584
|
-
geo_postal_areas?:
|
|
2585
|
-
|
|
2586
|
-
|
|
2587
|
-
|
|
2588
|
-
|
|
2589
|
-
|
|
2590
|
-
|
|
2591
|
-
*/
|
|
2592
|
-
values: [string, ...string[]];
|
|
2593
|
-
},
|
|
2594
|
-
...{
|
|
2595
|
-
system: PostalCodeSystem;
|
|
2596
|
-
/**
|
|
2597
|
-
* Postal codes within the system (e.g., ['10001', '10002'] for us_zip)
|
|
2598
|
-
*
|
|
2599
|
-
* @minItems 1
|
|
2600
|
-
*/
|
|
2601
|
-
values: [string, ...string[]];
|
|
2602
|
-
}[]
|
|
2603
|
-
];
|
|
2554
|
+
geo_postal_areas?: {
|
|
2555
|
+
system: PostalCodeSystem;
|
|
2556
|
+
/**
|
|
2557
|
+
* Postal codes within the system (e.g., ['10001', '10002'] for us_zip)
|
|
2558
|
+
*/
|
|
2559
|
+
values: string[];
|
|
2560
|
+
}[];
|
|
2604
2561
|
/**
|
|
2605
2562
|
* Exclude specific postal areas from delivery. Each entry specifies the postal system and excluded values. Seller must declare supported systems in get_adcp_capabilities.
|
|
2606
|
-
*
|
|
2607
|
-
* @minItems 1
|
|
2608
2563
|
*/
|
|
2609
|
-
geo_postal_areas_exclude?:
|
|
2610
|
-
|
|
2611
|
-
|
|
2612
|
-
|
|
2613
|
-
|
|
2614
|
-
|
|
2615
|
-
|
|
2616
|
-
*/
|
|
2617
|
-
values: [string, ...string[]];
|
|
2618
|
-
},
|
|
2619
|
-
...{
|
|
2620
|
-
system: PostalCodeSystem;
|
|
2621
|
-
/**
|
|
2622
|
-
* Postal codes to exclude within the system (e.g., ['10001', '10002'] for us_zip)
|
|
2623
|
-
*
|
|
2624
|
-
* @minItems 1
|
|
2625
|
-
*/
|
|
2626
|
-
values: [string, ...string[]];
|
|
2627
|
-
}[]
|
|
2628
|
-
];
|
|
2564
|
+
geo_postal_areas_exclude?: {
|
|
2565
|
+
system: PostalCodeSystem;
|
|
2566
|
+
/**
|
|
2567
|
+
* Postal codes to exclude within the system (e.g., ['10001', '10002'] for us_zip)
|
|
2568
|
+
*/
|
|
2569
|
+
values: string[];
|
|
2570
|
+
}[];
|
|
2629
2571
|
/**
|
|
2630
2572
|
* Restrict delivery to specific time windows. Each entry specifies days of week and an hour range.
|
|
2631
|
-
*
|
|
2632
|
-
* @minItems 1
|
|
2633
2573
|
*/
|
|
2634
|
-
daypart_targets?:
|
|
2574
|
+
daypart_targets?: DaypartTarget[];
|
|
2635
2575
|
/**
|
|
2636
2576
|
* AXE segment ID to include for targeting
|
|
2637
2577
|
*/
|
|
@@ -2642,16 +2582,12 @@ export interface TargetingOverlay {
|
|
|
2642
2582
|
axe_exclude_segment?: string;
|
|
2643
2583
|
/**
|
|
2644
2584
|
* Restrict delivery to members of these first-party CRM audiences. Only users present in the uploaded lists are eligible. References audience_id values from sync_audiences on the same seller account — audience IDs are not portable across sellers. Not for lookalike expansion — express that intent in the campaign brief. Seller must declare support in get_adcp_capabilities.
|
|
2645
|
-
*
|
|
2646
|
-
* @minItems 1
|
|
2647
2585
|
*/
|
|
2648
|
-
audience_include?:
|
|
2586
|
+
audience_include?: string[];
|
|
2649
2587
|
/**
|
|
2650
2588
|
* Suppress delivery to members of these first-party CRM audiences. Matched users are excluded regardless of other targeting. References audience_id values from sync_audiences on the same seller account — audience IDs are not portable across sellers. Seller must declare support in get_adcp_capabilities.
|
|
2651
|
-
*
|
|
2652
|
-
* @minItems 1
|
|
2653
2589
|
*/
|
|
2654
|
-
audience_exclude?:
|
|
2590
|
+
audience_exclude?: string[];
|
|
2655
2591
|
frequency_cap?: FrequencyCap;
|
|
2656
2592
|
property_list?: PropertyListReference;
|
|
2657
2593
|
/**
|
|
@@ -2668,69 +2604,34 @@ export interface TargetingOverlay {
|
|
|
2668
2604
|
verification_required?: boolean;
|
|
2669
2605
|
/**
|
|
2670
2606
|
* Accepted verification methods. If omitted, any method the platform supports is acceptable.
|
|
2671
|
-
*
|
|
2672
|
-
* @minItems 1
|
|
2673
2607
|
*/
|
|
2674
|
-
accepted_methods?:
|
|
2608
|
+
accepted_methods?: AgeVerificationMethod[];
|
|
2675
2609
|
};
|
|
2676
2610
|
/**
|
|
2677
2611
|
* Restrict to specific platforms. Use for technical compatibility (app only works on iOS). Values from Sec-CH-UA-Platform standard, extended for CTV.
|
|
2678
|
-
*
|
|
2679
|
-
* @minItems 1
|
|
2680
2612
|
*/
|
|
2681
|
-
device_platform?:
|
|
2613
|
+
device_platform?: DevicePlatform[];
|
|
2682
2614
|
/**
|
|
2683
2615
|
* Target users within store catchment areas from a synced store catalog. Each entry references a store-type catalog and optionally narrows to specific stores or catchment zones.
|
|
2684
|
-
*
|
|
2685
|
-
* @minItems 1
|
|
2686
2616
|
*/
|
|
2687
|
-
store_catchments?:
|
|
2688
|
-
|
|
2689
|
-
|
|
2690
|
-
|
|
2691
|
-
|
|
2692
|
-
|
|
2693
|
-
|
|
2694
|
-
|
|
2695
|
-
|
|
2696
|
-
|
|
2697
|
-
|
|
2698
|
-
|
|
2699
|
-
|
|
2700
|
-
|
|
2701
|
-
*
|
|
2702
|
-
* @minItems 1
|
|
2703
|
-
*/
|
|
2704
|
-
catchment_ids?: [string, ...string[]];
|
|
2705
|
-
[k: string]: unknown | undefined;
|
|
2706
|
-
},
|
|
2707
|
-
...{
|
|
2708
|
-
/**
|
|
2709
|
-
* Synced store-type catalog ID from sync_catalogs.
|
|
2710
|
-
*/
|
|
2711
|
-
catalog_id: string;
|
|
2712
|
-
/**
|
|
2713
|
-
* Filter to specific stores within the catalog. Omit to target all stores.
|
|
2714
|
-
*
|
|
2715
|
-
* @minItems 1
|
|
2716
|
-
*/
|
|
2717
|
-
store_ids?: [string, ...string[]];
|
|
2718
|
-
/**
|
|
2719
|
-
* Catchment zone IDs to target (e.g., 'walk', 'drive'). Omit to target all catchment zones.
|
|
2720
|
-
*
|
|
2721
|
-
* @minItems 1
|
|
2722
|
-
*/
|
|
2723
|
-
catchment_ids?: [string, ...string[]];
|
|
2724
|
-
[k: string]: unknown | undefined;
|
|
2725
|
-
}[]
|
|
2726
|
-
];
|
|
2617
|
+
store_catchments?: {
|
|
2618
|
+
/**
|
|
2619
|
+
* Synced store-type catalog ID from sync_catalogs.
|
|
2620
|
+
*/
|
|
2621
|
+
catalog_id: string;
|
|
2622
|
+
/**
|
|
2623
|
+
* Filter to specific stores within the catalog. Omit to target all stores.
|
|
2624
|
+
*/
|
|
2625
|
+
store_ids?: string[];
|
|
2626
|
+
/**
|
|
2627
|
+
* Catchment zone IDs to target (e.g., 'walk', 'drive'). Omit to target all catchment zones.
|
|
2628
|
+
*/
|
|
2629
|
+
catchment_ids?: string[];
|
|
2630
|
+
}[];
|
|
2727
2631
|
/**
|
|
2728
2632
|
* Restrict to users with specific language preferences. ISO 639-1 codes (e.g., 'en', 'es', 'fr').
|
|
2729
|
-
*
|
|
2730
|
-
* @minItems 1
|
|
2731
2633
|
*/
|
|
2732
|
-
language?:
|
|
2733
|
-
[k: string]: unknown | undefined;
|
|
2634
|
+
language?: string[];
|
|
2734
2635
|
}
|
|
2735
2636
|
/**
|
|
2736
2637
|
* A time window for daypart targeting. Specifies days of week and an hour range. start_hour is inclusive, end_hour is exclusive (e.g., 6-10 = 6:00am to 10:00am). Follows the Google Ads AdScheduleInfo / DV360 DayPartTargeting pattern.
|
|
@@ -2740,7 +2641,6 @@ export interface FrequencyCap {
|
|
|
2740
2641
|
* Minutes to suppress after impression
|
|
2741
2642
|
*/
|
|
2742
2643
|
suppress_minutes: number;
|
|
2743
|
-
[k: string]: unknown | undefined;
|
|
2744
2644
|
}
|
|
2745
2645
|
/**
|
|
2746
2646
|
* Reference to a property list for targeting specific properties within this product. The package runs on the intersection of the product's publisher_properties and this list. Sellers SHOULD return a validation error if the product has property_targeting_allowed: false.
|
|
@@ -2756,11 +2656,8 @@ export interface CreativeAssignment {
|
|
|
2756
2656
|
weight?: number;
|
|
2757
2657
|
/**
|
|
2758
2658
|
* Optional array of placement IDs where this creative should run. When omitted, the creative runs on all placements in the package. References placement_id values from the product's placements array.
|
|
2759
|
-
*
|
|
2760
|
-
* @minItems 1
|
|
2761
2659
|
*/
|
|
2762
|
-
placement_ids?:
|
|
2763
|
-
[k: string]: unknown | undefined;
|
|
2660
|
+
placement_ids?: string[];
|
|
2764
2661
|
}
|
|
2765
2662
|
/**
|
|
2766
2663
|
* Creative asset for upload to library - supports static assets, generative formats, and third-party snippets
|
|
@@ -2777,15 +2674,17 @@ export interface CreativeAsset {
|
|
|
2777
2674
|
format_id: FormatID;
|
|
2778
2675
|
/**
|
|
2779
2676
|
* Catalogs this creative renders. Each entry satisfies one of the format's catalog_requirements, matched by type. Each catalog can be inline (with items), a reference to a synced catalog (by catalog_id), or a URL to an external feed.
|
|
2780
|
-
*
|
|
2781
|
-
* @minItems 1
|
|
2782
2677
|
*/
|
|
2783
|
-
catalogs?:
|
|
2678
|
+
catalogs?: Catalog[];
|
|
2784
2679
|
/**
|
|
2785
2680
|
* Assets required by the format, keyed by asset_role
|
|
2786
2681
|
*/
|
|
2787
2682
|
assets: {
|
|
2788
|
-
|
|
2683
|
+
/**
|
|
2684
|
+
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
2685
|
+
* via the `patternProperty` "^[a-zA-Z0-9_-]+$".
|
|
2686
|
+
*/
|
|
2687
|
+
[k: string]: ImageAsset | VideoAsset | AudioAsset | TextAsset | HTMLAsset | CSSAsset | JavaScriptAsset | VASTAsset | DAASTAsset | URLAsset;
|
|
2789
2688
|
};
|
|
2790
2689
|
/**
|
|
2791
2690
|
* Preview contexts for generative formats - defines what scenarios to generate previews for
|
|
@@ -2805,7 +2704,6 @@ export interface CreativeAsset {
|
|
|
2805
2704
|
* Natural language description of the context for AI-generated content
|
|
2806
2705
|
*/
|
|
2807
2706
|
context_description?: string;
|
|
2808
|
-
[k: string]: unknown | undefined;
|
|
2809
2707
|
}[];
|
|
2810
2708
|
/**
|
|
2811
2709
|
* User-defined tags for organization and searchability
|
|
@@ -2818,11 +2716,8 @@ export interface CreativeAsset {
|
|
|
2818
2716
|
weight?: number;
|
|
2819
2717
|
/**
|
|
2820
2718
|
* Optional array of placement IDs where this creative should run when uploading via create_media_buy or update_media_buy. References placement_id values from the product's placements array. If omitted, creative runs on all placements. Only used during upload to media buy - not stored in creative library.
|
|
2821
|
-
*
|
|
2822
|
-
* @minItems 1
|
|
2823
2719
|
*/
|
|
2824
|
-
placement_ids?:
|
|
2825
|
-
[k: string]: unknown | undefined;
|
|
2720
|
+
placement_ids?: string[];
|
|
2826
2721
|
}
|
|
2827
2722
|
/**
|
|
2828
2723
|
* Structured format identifier with agent URL and format name. Can reference: (1) a concrete format with fixed dimensions (id only), (2) a template format without parameters (id only), or (3) a template format with parameters (id + dimensions/duration). Template formats accept parameters in format_id while concrete formats have fixed dimensions in their definition. Parameterized format IDs create unique, specific format variants.
|
|
@@ -2848,7 +2743,6 @@ export interface ImageAsset {
|
|
|
2848
2743
|
* Alternative text for accessibility
|
|
2849
2744
|
*/
|
|
2850
2745
|
alt_text?: string;
|
|
2851
|
-
[k: string]: unknown | undefined;
|
|
2852
2746
|
}
|
|
2853
2747
|
/**
|
|
2854
2748
|
* Video asset with URL and technical specifications including audio track properties
|
|
@@ -2970,7 +2864,6 @@ export interface VideoAsset {
|
|
|
2970
2864
|
* URL to audio description track for visually impaired users
|
|
2971
2865
|
*/
|
|
2972
2866
|
audio_description_url?: string;
|
|
2973
|
-
[k: string]: unknown | undefined;
|
|
2974
2867
|
}
|
|
2975
2868
|
/**
|
|
2976
2869
|
* Audio asset with URL and technical specifications
|
|
@@ -3024,7 +2917,6 @@ export interface AudioAsset {
|
|
|
3024
2917
|
* URL to text transcript of the audio content
|
|
3025
2918
|
*/
|
|
3026
2919
|
transcript_url?: string;
|
|
3027
|
-
[k: string]: unknown | undefined;
|
|
3028
2920
|
}
|
|
3029
2921
|
/**
|
|
3030
2922
|
* Text content asset
|
|
@@ -3038,7 +2930,6 @@ export interface TextAsset {
|
|
|
3038
2930
|
* Language code (e.g., 'en', 'es', 'fr')
|
|
3039
2931
|
*/
|
|
3040
2932
|
language?: string;
|
|
3041
|
-
[k: string]: unknown | undefined;
|
|
3042
2933
|
}
|
|
3043
2934
|
/**
|
|
3044
2935
|
* HTML content asset
|
|
@@ -3073,7 +2964,6 @@ export interface HTMLAsset {
|
|
|
3073
2964
|
*/
|
|
3074
2965
|
screen_reader_tested?: boolean;
|
|
3075
2966
|
};
|
|
3076
|
-
[k: string]: unknown | undefined;
|
|
3077
2967
|
}
|
|
3078
2968
|
/**
|
|
3079
2969
|
* CSS stylesheet asset
|
|
@@ -3087,7 +2977,6 @@ export interface CSSAsset {
|
|
|
3087
2977
|
* CSS media query context (e.g., 'screen', 'print')
|
|
3088
2978
|
*/
|
|
3089
2979
|
media?: string;
|
|
3090
|
-
[k: string]: unknown | undefined;
|
|
3091
2980
|
}
|
|
3092
2981
|
/**
|
|
3093
2982
|
* JavaScript code asset
|
|
@@ -3119,7 +3008,6 @@ export interface JavaScriptAsset {
|
|
|
3119
3008
|
*/
|
|
3120
3009
|
screen_reader_tested?: boolean;
|
|
3121
3010
|
};
|
|
3122
|
-
[k: string]: unknown | undefined;
|
|
3123
3011
|
}
|
|
3124
3012
|
/**
|
|
3125
3013
|
* URL reference asset
|
|
@@ -3134,10 +3022,9 @@ export interface URLAsset {
|
|
|
3134
3022
|
* Description of what this URL points to
|
|
3135
3023
|
*/
|
|
3136
3024
|
description?: string;
|
|
3137
|
-
[k: string]: unknown | undefined;
|
|
3138
3025
|
}
|
|
3139
3026
|
/**
|
|
3140
|
-
*
|
|
3027
|
+
* Brand reference for this media buy. Resolved to full brand identity at execution time from brand.json or the registry.
|
|
3141
3028
|
*/
|
|
3142
3029
|
export interface ReportingWebhook {
|
|
3143
3030
|
/**
|
|
@@ -3155,10 +3042,9 @@ export interface ReportingWebhook {
|
|
|
3155
3042
|
/**
|
|
3156
3043
|
* Array of authentication schemes. Supported: ['Bearer'] for simple token auth, ['HMAC-SHA256'] for signature verification (recommended for production)
|
|
3157
3044
|
*
|
|
3158
|
-
* @minItems 1
|
|
3159
3045
|
* @maxItems 1
|
|
3160
3046
|
*/
|
|
3161
|
-
schemes: [AuthenticationScheme];
|
|
3047
|
+
schemes: [] | [AuthenticationScheme];
|
|
3162
3048
|
/**
|
|
3163
3049
|
* Credentials for authentication. For Bearer: token sent in Authorization header. For HMAC-SHA256: shared secret used to generate signature. Minimum 32 characters. Exchanged out-of-band during onboarding.
|
|
3164
3050
|
*/
|
|
@@ -3172,7 +3058,6 @@ export interface ReportingWebhook {
|
|
|
3172
3058
|
* Optional list of metrics to include in webhook notifications. If omitted, all available metrics are included. Must be subset of product's available_metrics.
|
|
3173
3059
|
*/
|
|
3174
3060
|
requested_metrics?: AvailableMetric[];
|
|
3175
|
-
[k: string]: unknown | undefined;
|
|
3176
3061
|
}
|
|
3177
3062
|
/**
|
|
3178
3063
|
* Opaque correlation data that is echoed unchanged in responses. Used for internal tracking, UI session IDs, trace IDs, and other caller-specific identifiers that don't affect protocol behavior. Context data is never parsed by AdCP agents - it's simply preserved and returned.
|
|
@@ -3196,7 +3081,7 @@ export interface CreateMediaBuySuccess {
|
|
|
3196
3081
|
/**
|
|
3197
3082
|
* Buyer's campaign reference label, echoed from the request
|
|
3198
3083
|
*/
|
|
3199
|
-
|
|
3084
|
+
buyer_campaign_ref?: string;
|
|
3200
3085
|
account?: Account;
|
|
3201
3086
|
/**
|
|
3202
3087
|
* ISO 8601 timestamp for creative upload deadline
|
|
@@ -3273,7 +3158,6 @@ export interface Account {
|
|
|
3273
3158
|
*/
|
|
3274
3159
|
sandbox?: boolean;
|
|
3275
3160
|
ext?: ExtensionObject;
|
|
3276
|
-
[k: string]: unknown | undefined;
|
|
3277
3161
|
}
|
|
3278
3162
|
/**
|
|
3279
3163
|
* Extension object for platform-specific, vendor-namespaced parameters. Extensions are always optional and must be namespaced under a vendor/platform key (e.g., ext.gam, ext.roku). Used for custom capabilities, partner-specific configuration, and features being proposed for standardization.
|
|
@@ -3301,7 +3185,7 @@ export interface Package {
|
|
|
3301
3185
|
*/
|
|
3302
3186
|
pricing_option_id?: string;
|
|
3303
3187
|
/**
|
|
3304
|
-
* Bid price for auction-based
|
|
3188
|
+
* Bid price for auction-based pricing. This is the exact bid/price to honor unless the selected pricing option has max_bid=true, in which case bid_price is the buyer's maximum willingness to pay (ceiling).
|
|
3305
3189
|
*/
|
|
3306
3190
|
bid_price?: number;
|
|
3307
3191
|
/**
|
|
@@ -3323,7 +3207,6 @@ export interface Package {
|
|
|
3323
3207
|
*/
|
|
3324
3208
|
paused?: boolean;
|
|
3325
3209
|
ext?: ExtensionObject;
|
|
3326
|
-
[k: string]: unknown | undefined;
|
|
3327
3210
|
}
|
|
3328
3211
|
/**
|
|
3329
3212
|
* Optional restriction overlays for media buys. Most targeting should be expressed in the brief and handled by the publisher. These fields are for functional restrictions: geographic (RCT testing, regulatory compliance), age verification (alcohol, gambling), device platform (app compatibility), and language (localization).
|
|
@@ -3407,10 +3290,9 @@ export interface PushNotificationConfig {
|
|
|
3407
3290
|
/**
|
|
3408
3291
|
* Array of authentication schemes. Supported: ['Bearer'] for simple token auth, ['HMAC-SHA256'] for signature verification (recommended for production)
|
|
3409
3292
|
*
|
|
3410
|
-
* @minItems 1
|
|
3411
3293
|
* @maxItems 1
|
|
3412
3294
|
*/
|
|
3413
|
-
schemes: [AuthenticationScheme];
|
|
3295
|
+
schemes: [] | [AuthenticationScheme];
|
|
3414
3296
|
/**
|
|
3415
3297
|
* Credentials for authentication. For Bearer: token sent in Authorization header. For HMAC-SHA256: shared secret used to generate signature. Minimum 32 characters. Exchanged out-of-band during onboarding.
|
|
3416
3298
|
*/
|
|
@@ -3554,34 +3436,24 @@ export interface ListCreativesRequest {
|
|
|
3554
3436
|
export interface CreativeFilters {
|
|
3555
3437
|
/**
|
|
3556
3438
|
* Filter creatives by owning accounts. Useful for agencies managing multiple client accounts.
|
|
3557
|
-
*
|
|
3558
|
-
* @minItems 1
|
|
3559
3439
|
*/
|
|
3560
|
-
account_ids?:
|
|
3440
|
+
account_ids?: string[];
|
|
3561
3441
|
/**
|
|
3562
3442
|
* Filter by creative format types (e.g., video, audio, display)
|
|
3563
|
-
*
|
|
3564
|
-
* @minItems 1
|
|
3565
3443
|
*/
|
|
3566
|
-
formats?:
|
|
3444
|
+
formats?: string[];
|
|
3567
3445
|
/**
|
|
3568
3446
|
* Filter by creative approval statuses
|
|
3569
|
-
*
|
|
3570
|
-
* @minItems 1
|
|
3571
3447
|
*/
|
|
3572
|
-
statuses?:
|
|
3448
|
+
statuses?: CreativeStatus[];
|
|
3573
3449
|
/**
|
|
3574
3450
|
* Filter by creative tags (all tags must match)
|
|
3575
|
-
*
|
|
3576
|
-
* @minItems 1
|
|
3577
3451
|
*/
|
|
3578
|
-
tags?:
|
|
3452
|
+
tags?: string[];
|
|
3579
3453
|
/**
|
|
3580
3454
|
* Filter by creative tags (any tag must match)
|
|
3581
|
-
*
|
|
3582
|
-
* @minItems 1
|
|
3583
3455
|
*/
|
|
3584
|
-
tags_any?:
|
|
3456
|
+
tags_any?: string[];
|
|
3585
3457
|
/**
|
|
3586
3458
|
* Filter by creative names containing this text (case-insensitive)
|
|
3587
3459
|
*/
|
|
@@ -3589,10 +3461,9 @@ export interface CreativeFilters {
|
|
|
3589
3461
|
/**
|
|
3590
3462
|
* Filter by specific creative IDs
|
|
3591
3463
|
*
|
|
3592
|
-
* @minItems 1
|
|
3593
3464
|
* @maxItems 100
|
|
3594
3465
|
*/
|
|
3595
|
-
creative_ids?:
|
|
3466
|
+
creative_ids?: string[];
|
|
3596
3467
|
/**
|
|
3597
3468
|
* Filter creatives created after this date (ISO 8601)
|
|
3598
3469
|
*/
|
|
@@ -3611,22 +3482,16 @@ export interface CreativeFilters {
|
|
|
3611
3482
|
updated_before?: string;
|
|
3612
3483
|
/**
|
|
3613
3484
|
* Filter creatives assigned to any of these packages
|
|
3614
|
-
*
|
|
3615
|
-
* @minItems 1
|
|
3616
3485
|
*/
|
|
3617
|
-
assigned_to_packages?:
|
|
3486
|
+
assigned_to_packages?: string[];
|
|
3618
3487
|
/**
|
|
3619
3488
|
* Filter creatives assigned to any of these media buys
|
|
3620
|
-
*
|
|
3621
|
-
* @minItems 1
|
|
3622
3489
|
*/
|
|
3623
|
-
media_buy_ids?:
|
|
3490
|
+
media_buy_ids?: string[];
|
|
3624
3491
|
/**
|
|
3625
3492
|
* Filter creatives assigned to media buys with any of these buyer references
|
|
3626
|
-
*
|
|
3627
|
-
* @minItems 1
|
|
3628
3493
|
*/
|
|
3629
|
-
buyer_refs?:
|
|
3494
|
+
buyer_refs?: string[];
|
|
3630
3495
|
/**
|
|
3631
3496
|
* Filter for unassigned creatives when true, assigned creatives when false
|
|
3632
3497
|
*/
|
|
@@ -3635,7 +3500,6 @@ export interface CreativeFilters {
|
|
|
3635
3500
|
* Filter creatives that have performance data when true
|
|
3636
3501
|
*/
|
|
3637
3502
|
has_performance_data?: boolean;
|
|
3638
|
-
[k: string]: unknown | undefined;
|
|
3639
3503
|
}
|
|
3640
3504
|
/**
|
|
3641
3505
|
* Standard cursor-based pagination parameters for list operations
|
|
@@ -3660,7 +3524,6 @@ export type SubAsset = {
|
|
|
3660
3524
|
* URL for media assets (images, videos, etc.)
|
|
3661
3525
|
*/
|
|
3662
3526
|
content_uri: string;
|
|
3663
|
-
[k: string]: unknown | undefined;
|
|
3664
3527
|
} | {
|
|
3665
3528
|
/**
|
|
3666
3529
|
* Discriminator indicating this is a text asset with content
|
|
@@ -3678,7 +3541,6 @@ export type SubAsset = {
|
|
|
3678
3541
|
* Text content for text-based assets like headlines, body text, CTA text, etc.
|
|
3679
3542
|
*/
|
|
3680
3543
|
content: string | string[];
|
|
3681
|
-
[k: string]: unknown | undefined;
|
|
3682
3544
|
};
|
|
3683
3545
|
/**
|
|
3684
3546
|
* Response from creative library query with filtered results, metadata, and optional enriched data
|
|
@@ -3907,7 +3769,7 @@ export type PackageUpdate = {
|
|
|
3907
3769
|
budget?: number;
|
|
3908
3770
|
pacing?: Pacing;
|
|
3909
3771
|
/**
|
|
3910
|
-
* Updated bid price for auction-based pricing options
|
|
3772
|
+
* Updated bid price for auction-based pricing options. This is the exact bid/price to honor unless selected pricing_option has max_bid=true, in which case bid_price is the buyer's maximum willingness to pay (ceiling).
|
|
3911
3773
|
*/
|
|
3912
3774
|
bid_price?: number;
|
|
3913
3775
|
/**
|
|
@@ -3928,12 +3790,10 @@ export type PackageUpdate = {
|
|
|
3928
3790
|
/**
|
|
3929
3791
|
* Upload new creative assets and assign to this package (creatives will be added to library). Use creative_assignments instead for existing library creatives.
|
|
3930
3792
|
*
|
|
3931
|
-
* @minItems 1
|
|
3932
3793
|
* @maxItems 100
|
|
3933
3794
|
*/
|
|
3934
|
-
creatives?:
|
|
3795
|
+
creatives?: CreativeAsset[];
|
|
3935
3796
|
ext?: ExtensionObject;
|
|
3936
|
-
[k: string]: unknown | undefined;
|
|
3937
3797
|
} & {
|
|
3938
3798
|
[k: string]: unknown | undefined;
|
|
3939
3799
|
};
|
|
@@ -3961,9 +3821,224 @@ export interface UpdateMediaBuySuccess {
|
|
|
3961
3821
|
*/
|
|
3962
3822
|
implementation_date?: string | null;
|
|
3963
3823
|
/**
|
|
3964
|
-
* Array of packages that were modified with complete state information
|
|
3824
|
+
* Array of packages that were modified with complete state information
|
|
3825
|
+
*/
|
|
3826
|
+
affected_packages?: Package[];
|
|
3827
|
+
/**
|
|
3828
|
+
* When true, this response contains simulated data from sandbox mode.
|
|
3829
|
+
*/
|
|
3830
|
+
sandbox?: boolean;
|
|
3831
|
+
context?: ContextObject;
|
|
3832
|
+
ext?: ExtensionObject;
|
|
3833
|
+
}
|
|
3834
|
+
/**
|
|
3835
|
+
* A specific product within a media buy (line item)
|
|
3836
|
+
*/
|
|
3837
|
+
export interface UpdateMediaBuyError {
|
|
3838
|
+
/**
|
|
3839
|
+
* Array of errors explaining why the operation failed
|
|
3840
|
+
*/
|
|
3841
|
+
errors: Error[];
|
|
3842
|
+
context?: ContextObject;
|
|
3843
|
+
ext?: ExtensionObject;
|
|
3844
|
+
}
|
|
3845
|
+
/**
|
|
3846
|
+
* Standard error structure for task-specific errors and warnings
|
|
3847
|
+
*/
|
|
3848
|
+
/**
|
|
3849
|
+
* Status of a media buy
|
|
3850
|
+
*/
|
|
3851
|
+
export type MediaBuyStatus = 'pending_activation' | 'active' | 'paused' | 'completed';
|
|
3852
|
+
/**
|
|
3853
|
+
* Request parameters for retrieving media buy status, creative approval state, and optional delivery snapshots
|
|
3854
|
+
*/
|
|
3855
|
+
export interface GetMediaBuysRequest {
|
|
3856
|
+
/**
|
|
3857
|
+
* Filter to a specific account. When omitted, returns media buys across all accessible accounts. Optional if the agent has a single account.
|
|
3858
|
+
*/
|
|
3859
|
+
account_id?: string;
|
|
3860
|
+
/**
|
|
3861
|
+
* Array of publisher media buy IDs to retrieve. When omitted along with buyer_refs, returns a paginated set of accessible media buys matching status_filter.
|
|
3862
|
+
*/
|
|
3863
|
+
media_buy_ids?: string[];
|
|
3864
|
+
/**
|
|
3865
|
+
* Array of buyer reference IDs to retrieve
|
|
3866
|
+
*/
|
|
3867
|
+
buyer_refs?: string[];
|
|
3868
|
+
/**
|
|
3869
|
+
* Filter by status. Can be a single status or array of statuses. Defaults to ["active"] only when media_buy_ids and buyer_refs are both omitted. When media_buy_ids or buyer_refs are provided, no implicit status filter is applied.
|
|
3870
|
+
*/
|
|
3871
|
+
status_filter?: MediaBuyStatus | MediaBuyStatus[];
|
|
3872
|
+
/**
|
|
3873
|
+
* When true, include a near-real-time delivery snapshot for each package. Snapshots reflect the latest available entity-level stats from the platform (e.g., updated every ~15 minutes on GAM, ~1 hour on batch-only platforms). The staleness_seconds field on each snapshot indicates data freshness. If a snapshot cannot be returned, package.snapshot_unavailable_reason explains why. Defaults to false.
|
|
3874
|
+
*/
|
|
3875
|
+
include_snapshot?: boolean;
|
|
3876
|
+
pagination?: PaginationRequest;
|
|
3877
|
+
context?: ContextObject;
|
|
3878
|
+
ext?: ExtensionObject;
|
|
3879
|
+
}
|
|
3880
|
+
/**
|
|
3881
|
+
* Cursor-based pagination controls. Strongly recommended when querying broad scopes (for example, all active media buys in an account).
|
|
3882
|
+
*/
|
|
3883
|
+
/**
|
|
3884
|
+
* Status of a media buy
|
|
3885
|
+
*/
|
|
3886
|
+
export type CreativeApprovalStatus = 'pending_review' | 'approved' | 'rejected';
|
|
3887
|
+
/**
|
|
3888
|
+
* Response payload for get_media_buys task. Returns media buy configuration, creative approval state, and optional delivery snapshots.
|
|
3889
|
+
*/
|
|
3890
|
+
export interface GetMediaBuysResponse {
|
|
3891
|
+
/**
|
|
3892
|
+
* Array of media buys with status, creative approval state, and optional delivery snapshots
|
|
3893
|
+
*/
|
|
3894
|
+
media_buys: {
|
|
3895
|
+
/**
|
|
3896
|
+
* Publisher's unique identifier for the media buy
|
|
3897
|
+
*/
|
|
3898
|
+
media_buy_id: string;
|
|
3899
|
+
/**
|
|
3900
|
+
* Buyer's reference identifier for this media buy
|
|
3901
|
+
*/
|
|
3902
|
+
buyer_ref?: string;
|
|
3903
|
+
/**
|
|
3904
|
+
* Buyer campaign reference label sourced from create_media_buy.buyer_campaign_ref. Groups related operations under a single campaign; may be absent when not provided at creation time.
|
|
3905
|
+
*/
|
|
3906
|
+
buyer_campaign_ref?: string;
|
|
3907
|
+
account?: Account;
|
|
3908
|
+
status: MediaBuyStatus;
|
|
3909
|
+
/**
|
|
3910
|
+
* ISO 4217 currency code (e.g., USD, EUR, GBP) for monetary values at this media buy level. total_budget is always denominated in this currency. Package-level fields may override with package.currency.
|
|
3911
|
+
*/
|
|
3912
|
+
currency: string;
|
|
3913
|
+
/**
|
|
3914
|
+
* Total budget amount across all packages, denominated in media_buy.currency
|
|
3915
|
+
*/
|
|
3916
|
+
total_budget: number;
|
|
3917
|
+
/**
|
|
3918
|
+
* ISO 8601 timestamp for creative upload deadline
|
|
3919
|
+
*/
|
|
3920
|
+
creative_deadline?: string;
|
|
3921
|
+
/**
|
|
3922
|
+
* Creation timestamp
|
|
3923
|
+
*/
|
|
3924
|
+
created_at?: string;
|
|
3925
|
+
/**
|
|
3926
|
+
* Last update timestamp
|
|
3927
|
+
*/
|
|
3928
|
+
updated_at?: string;
|
|
3929
|
+
/**
|
|
3930
|
+
* Packages within this media buy, augmented with creative approval status and optional delivery snapshots
|
|
3931
|
+
*/
|
|
3932
|
+
packages: {
|
|
3933
|
+
/**
|
|
3934
|
+
* Publisher's package identifier
|
|
3935
|
+
*/
|
|
3936
|
+
package_id: string;
|
|
3937
|
+
/**
|
|
3938
|
+
* Buyer's reference identifier for this package
|
|
3939
|
+
*/
|
|
3940
|
+
buyer_ref?: string;
|
|
3941
|
+
/**
|
|
3942
|
+
* Product identifier this package is purchased from
|
|
3943
|
+
*/
|
|
3944
|
+
product_id?: string;
|
|
3945
|
+
/**
|
|
3946
|
+
* Package budget amount, denominated in package.currency when present, otherwise media_buy.currency
|
|
3947
|
+
*/
|
|
3948
|
+
budget?: number;
|
|
3949
|
+
/**
|
|
3950
|
+
* ISO 4217 currency code for monetary values at this package level (budget, bid_price, snapshot.spend). When absent, inherit media_buy.currency.
|
|
3951
|
+
*/
|
|
3952
|
+
currency?: string;
|
|
3953
|
+
/**
|
|
3954
|
+
* Current bid price for auction-based packages. Denominated in package.currency when present, otherwise media_buy.currency. Relevant for automated price optimization loops.
|
|
3955
|
+
*/
|
|
3956
|
+
bid_price?: number;
|
|
3957
|
+
/**
|
|
3958
|
+
* Goal impression count for impression-based packages
|
|
3959
|
+
*/
|
|
3960
|
+
impressions?: number;
|
|
3961
|
+
/**
|
|
3962
|
+
* ISO 8601 flight start time for this package. Use to determine whether the package is within its scheduled flight before interpreting delivery status.
|
|
3963
|
+
*/
|
|
3964
|
+
start_time?: string;
|
|
3965
|
+
/**
|
|
3966
|
+
* ISO 8601 flight end time for this package
|
|
3967
|
+
*/
|
|
3968
|
+
end_time?: string;
|
|
3969
|
+
/**
|
|
3970
|
+
* Whether this package is currently paused by the buyer
|
|
3971
|
+
*/
|
|
3972
|
+
paused?: boolean;
|
|
3973
|
+
/**
|
|
3974
|
+
* Approval status for each creative assigned to this package. Absent when no creatives have been assigned.
|
|
3975
|
+
*/
|
|
3976
|
+
creative_approvals?: {
|
|
3977
|
+
/**
|
|
3978
|
+
* Creative identifier
|
|
3979
|
+
*/
|
|
3980
|
+
creative_id: string;
|
|
3981
|
+
approval_status: CreativeApprovalStatus;
|
|
3982
|
+
/**
|
|
3983
|
+
* Human-readable explanation of why the creative was rejected. Present only when approval_status is 'rejected'.
|
|
3984
|
+
*/
|
|
3985
|
+
rejection_reason?: string;
|
|
3986
|
+
}[];
|
|
3987
|
+
/**
|
|
3988
|
+
* Format IDs from the original create_media_buy format_ids_to_provide that have not yet been uploaded via sync_creatives. When empty or absent, all required formats have been provided.
|
|
3989
|
+
*/
|
|
3990
|
+
format_ids_pending?: FormatID[];
|
|
3991
|
+
/**
|
|
3992
|
+
* Machine-readable reason the snapshot is omitted. Present only when include_snapshot was true and snapshot is unavailable for this package.
|
|
3993
|
+
*/
|
|
3994
|
+
snapshot_unavailable_reason?: 'SNAPSHOT_UNSUPPORTED' | 'SNAPSHOT_TEMPORARILY_UNAVAILABLE' | 'SNAPSHOT_PERMISSION_DENIED';
|
|
3995
|
+
/**
|
|
3996
|
+
* Near-real-time delivery snapshot for this package. Only present when include_snapshot was true in the request. Represents the latest available entity-level stats from the platform — not billing-grade data.
|
|
3997
|
+
*/
|
|
3998
|
+
snapshot?: {
|
|
3999
|
+
/**
|
|
4000
|
+
* ISO 8601 timestamp when this snapshot was captured by the platform
|
|
4001
|
+
*/
|
|
4002
|
+
as_of: string;
|
|
4003
|
+
/**
|
|
4004
|
+
* Maximum age of this data in seconds. For example, 900 means the data may be up to 15 minutes old. Use this to interpret zero delivery: a value of 900 means zero impressions is likely real; a value of 14400 means reporting may still be catching up.
|
|
4005
|
+
*/
|
|
4006
|
+
staleness_seconds: number;
|
|
4007
|
+
/**
|
|
4008
|
+
* Total impressions delivered since package start
|
|
4009
|
+
*/
|
|
4010
|
+
impressions: number;
|
|
4011
|
+
/**
|
|
4012
|
+
* Total spend since package start, denominated in snapshot.currency when present, otherwise package.currency or media_buy.currency
|
|
4013
|
+
*/
|
|
4014
|
+
spend: number;
|
|
4015
|
+
/**
|
|
4016
|
+
* ISO 4217 currency code for spend in this snapshot. Optional when unchanged from package.currency or media_buy.currency.
|
|
4017
|
+
*/
|
|
4018
|
+
currency?: string;
|
|
4019
|
+
/**
|
|
4020
|
+
* Total clicks since package start (when available)
|
|
4021
|
+
*/
|
|
4022
|
+
clicks?: number;
|
|
4023
|
+
/**
|
|
4024
|
+
* Current delivery pace relative to expected (1.0 = on track, <1.0 = behind, >1.0 = ahead). Absent when pacing cannot be determined.
|
|
4025
|
+
*/
|
|
4026
|
+
pacing_index?: number;
|
|
4027
|
+
/**
|
|
4028
|
+
* Operational delivery state of this package. 'not_delivering' means the package is within its scheduled flight but has delivered zero impressions for at least one full staleness cycle — the signal for automated price adjustments or buyer alerts. Implementers must not return 'not_delivering' until at least staleness_seconds have elapsed since package activation.
|
|
4029
|
+
*/
|
|
4030
|
+
delivery_status?: 'delivering' | 'not_delivering' | 'completed' | 'budget_exhausted' | 'flight_ended' | 'goal_met';
|
|
4031
|
+
ext?: ExtensionObject;
|
|
4032
|
+
};
|
|
4033
|
+
ext?: ExtensionObject;
|
|
4034
|
+
}[];
|
|
4035
|
+
ext?: ExtensionObject;
|
|
4036
|
+
}[];
|
|
4037
|
+
/**
|
|
4038
|
+
* Task-specific errors (e.g., media buy not found)
|
|
3965
4039
|
*/
|
|
3966
|
-
|
|
4040
|
+
errors?: Error[];
|
|
4041
|
+
pagination?: PaginationResponse;
|
|
3967
4042
|
/**
|
|
3968
4043
|
* When true, this response contains simulated data from sandbox mode.
|
|
3969
4044
|
*/
|
|
@@ -3972,25 +4047,7 @@ export interface UpdateMediaBuySuccess {
|
|
|
3972
4047
|
ext?: ExtensionObject;
|
|
3973
4048
|
}
|
|
3974
4049
|
/**
|
|
3975
|
-
*
|
|
3976
|
-
*/
|
|
3977
|
-
export interface UpdateMediaBuyError {
|
|
3978
|
-
/**
|
|
3979
|
-
* Array of errors explaining why the operation failed
|
|
3980
|
-
*/
|
|
3981
|
-
errors: Error[];
|
|
3982
|
-
context?: ContextObject;
|
|
3983
|
-
ext?: ExtensionObject;
|
|
3984
|
-
}
|
|
3985
|
-
/**
|
|
3986
|
-
* Standard error structure for task-specific errors and warnings
|
|
3987
|
-
*/
|
|
3988
|
-
/**
|
|
3989
|
-
* Status of a media buy
|
|
3990
|
-
*/
|
|
3991
|
-
export type MediaBuyStatus = 'pending_activation' | 'active' | 'paused' | 'completed';
|
|
3992
|
-
/**
|
|
3993
|
-
* Request parameters for retrieving comprehensive delivery metrics
|
|
4050
|
+
* Account billed for this media buy
|
|
3994
4051
|
*/
|
|
3995
4052
|
export interface GetMediaBuyDeliveryRequest {
|
|
3996
4053
|
/**
|
|
@@ -4131,13 +4188,13 @@ export interface GetMediaBuyDeliveryResponse {
|
|
|
4131
4188
|
*/
|
|
4132
4189
|
buyer_ref?: string;
|
|
4133
4190
|
/**
|
|
4134
|
-
* Buyer's campaign reference label. Groups related operations under a single campaign for CRM and ad server correlation.
|
|
4191
|
+
* Buyer's campaign reference label from create_media_buy.buyer_campaign_ref. Groups related operations under a single campaign for CRM and ad server correlation; may be absent when not provided at creation time.
|
|
4135
4192
|
*/
|
|
4136
|
-
|
|
4193
|
+
buyer_campaign_ref?: string;
|
|
4137
4194
|
/**
|
|
4138
|
-
* Current media buy status. In webhook context, reporting_delayed indicates data temporarily unavailable.
|
|
4195
|
+
* Current media buy status. Lifecycle states use the same taxonomy as media-buy-status (`pending_activation`, `active`, `paused`, `completed`). In webhook context, reporting_delayed indicates data temporarily unavailable. `pending` is accepted as a legacy alias for pending_activation.
|
|
4139
4196
|
*/
|
|
4140
|
-
status: 'pending' | 'active' | 'paused' | 'completed' | 'failed' | 'reporting_delayed';
|
|
4197
|
+
status: 'pending_activation' | 'pending' | 'active' | 'paused' | 'completed' | 'failed' | 'reporting_delayed';
|
|
4141
4198
|
/**
|
|
4142
4199
|
* When delayed data is expected to be available (only present when status is reporting_delayed)
|
|
4143
4200
|
*/
|
|
@@ -4268,7 +4325,6 @@ export interface AttributionWindow {
|
|
|
4268
4325
|
*/
|
|
4269
4326
|
view_window_days?: number;
|
|
4270
4327
|
model: AttributionModel;
|
|
4271
|
-
[k: string]: unknown | undefined;
|
|
4272
4328
|
}
|
|
4273
4329
|
/**
|
|
4274
4330
|
* Standard delivery metrics that can be reported at media buy, package, or creative level
|
|
@@ -4343,7 +4399,6 @@ export interface DeliveryMetrics {
|
|
|
4343
4399
|
* Total monetary value of events of this type
|
|
4344
4400
|
*/
|
|
4345
4401
|
value?: number;
|
|
4346
|
-
[k: string]: unknown | undefined;
|
|
4347
4402
|
}[];
|
|
4348
4403
|
/**
|
|
4349
4404
|
* Gross Rating Points delivered (for CPP)
|
|
@@ -4430,9 +4485,7 @@ export interface DeliveryMetrics {
|
|
|
4430
4485
|
* Number of screens used at this venue
|
|
4431
4486
|
*/
|
|
4432
4487
|
screens_used?: number;
|
|
4433
|
-
[k: string]: unknown | undefined;
|
|
4434
4488
|
}[];
|
|
4435
|
-
[k: string]: unknown | undefined;
|
|
4436
4489
|
};
|
|
4437
4490
|
/**
|
|
4438
4491
|
* Viewability metrics. Viewable rate should be calculated as viewable_impressions / measurable_impressions (not total impressions), since some environments cannot measure viewability.
|
|
@@ -4454,7 +4507,6 @@ export interface DeliveryMetrics {
|
|
|
4454
4507
|
* Viewability measurement standard. 'mrc': 50% of pixels in view for 1 second (display) or 2 seconds (video), per MRC/IAB guidelines. 'groupm': 100% of pixels in view for the same durations. These are materially different thresholds and should not be compared across standards.
|
|
4455
4508
|
*/
|
|
4456
4509
|
standard?: 'mrc' | 'groupm';
|
|
4457
|
-
[k: string]: unknown | undefined;
|
|
4458
4510
|
};
|
|
4459
4511
|
/**
|
|
4460
4512
|
* Platform-specific engagement rate (0.0 to 1.0). Definition varies by platform (e.g., likes+comments+shares/impressions on social, interactions/impressions on rich media).
|
|
@@ -4481,9 +4533,7 @@ export interface DeliveryMetrics {
|
|
|
4481
4533
|
* Total monetary value of conversions from this action source
|
|
4482
4534
|
*/
|
|
4483
4535
|
value?: number;
|
|
4484
|
-
[k: string]: unknown | undefined;
|
|
4485
4536
|
}[];
|
|
4486
|
-
[k: string]: unknown | undefined;
|
|
4487
4537
|
}
|
|
4488
4538
|
/**
|
|
4489
4539
|
* Standard error structure for task-specific errors and warnings
|
|
@@ -4703,27 +4753,14 @@ export type UserMatch = {
|
|
|
4703
4753
|
} & {
|
|
4704
4754
|
/**
|
|
4705
4755
|
* Universal ID values for user matching
|
|
4706
|
-
*
|
|
4707
|
-
* @minItems 1
|
|
4708
4756
|
*/
|
|
4709
|
-
uids?:
|
|
4710
|
-
|
|
4711
|
-
|
|
4712
|
-
|
|
4713
|
-
|
|
4714
|
-
|
|
4715
|
-
|
|
4716
|
-
[k: string]: unknown | undefined;
|
|
4717
|
-
},
|
|
4718
|
-
...{
|
|
4719
|
-
type: UIDType;
|
|
4720
|
-
/**
|
|
4721
|
-
* Universal ID value
|
|
4722
|
-
*/
|
|
4723
|
-
value: string;
|
|
4724
|
-
[k: string]: unknown | undefined;
|
|
4725
|
-
}[]
|
|
4726
|
-
];
|
|
4757
|
+
uids?: {
|
|
4758
|
+
type: UIDType;
|
|
4759
|
+
/**
|
|
4760
|
+
* Universal ID value
|
|
4761
|
+
*/
|
|
4762
|
+
value: string;
|
|
4763
|
+
}[];
|
|
4727
4764
|
/**
|
|
4728
4765
|
* SHA-256 hash of lowercase, trimmed email address. Buyer must normalize before hashing: lowercase, trim whitespace.
|
|
4729
4766
|
*/
|
|
@@ -4749,7 +4786,6 @@ export type UserMatch = {
|
|
|
4749
4786
|
*/
|
|
4750
4787
|
client_user_agent?: string;
|
|
4751
4788
|
ext?: ExtensionObject;
|
|
4752
|
-
[k: string]: unknown | undefined;
|
|
4753
4789
|
};
|
|
4754
4790
|
/**
|
|
4755
4791
|
* Universal ID type
|
|
@@ -4801,7 +4837,6 @@ export interface Event {
|
|
|
4801
4837
|
*/
|
|
4802
4838
|
custom_event_name?: string;
|
|
4803
4839
|
ext?: ExtensionObject;
|
|
4804
|
-
[k: string]: unknown | undefined;
|
|
4805
4840
|
}
|
|
4806
4841
|
/**
|
|
4807
4842
|
* Extension object for platform-specific, vendor-namespaced parameters. Extensions are always optional and must be namespaced under a vendor/platform key (e.g., ext.gam, ext.roku). Used for custom capabilities, partner-specific configuration, and features being proposed for standardization.
|
|
@@ -4863,10 +4898,8 @@ export interface EventCustomData {
|
|
|
4863
4898
|
* Brand name of this item
|
|
4864
4899
|
*/
|
|
4865
4900
|
brand?: string;
|
|
4866
|
-
[k: string]: unknown | undefined;
|
|
4867
4901
|
}[];
|
|
4868
4902
|
ext?: ExtensionObject;
|
|
4869
|
-
[k: string]: unknown | undefined;
|
|
4870
4903
|
}
|
|
4871
4904
|
/**
|
|
4872
4905
|
* Opaque correlation data that is echoed unchanged in responses. Used for internal tracking, UI session IDs, trace IDs, and other caller-specific identifiers that don't affect protocol behavior. Context data is never parsed by AdCP agents - it's simply preserved and returned.
|
|
@@ -4949,29 +4982,15 @@ export type AudienceMember = {
|
|
|
4949
4982
|
hashed_phone?: string;
|
|
4950
4983
|
/**
|
|
4951
4984
|
* Universal ID values (MAIDs, RampID, UID2, etc.) for user matching.
|
|
4952
|
-
*
|
|
4953
|
-
* @minItems 1
|
|
4954
4985
|
*/
|
|
4955
|
-
uids?:
|
|
4956
|
-
|
|
4957
|
-
|
|
4958
|
-
|
|
4959
|
-
|
|
4960
|
-
|
|
4961
|
-
|
|
4962
|
-
[k: string]: unknown | undefined;
|
|
4963
|
-
},
|
|
4964
|
-
...{
|
|
4965
|
-
type: UIDType;
|
|
4966
|
-
/**
|
|
4967
|
-
* Universal ID value
|
|
4968
|
-
*/
|
|
4969
|
-
value: string;
|
|
4970
|
-
[k: string]: unknown | undefined;
|
|
4971
|
-
}[]
|
|
4972
|
-
];
|
|
4986
|
+
uids?: {
|
|
4987
|
+
type: UIDType;
|
|
4988
|
+
/**
|
|
4989
|
+
* Universal ID value
|
|
4990
|
+
*/
|
|
4991
|
+
value: string;
|
|
4992
|
+
}[];
|
|
4973
4993
|
ext?: ExtensionObject;
|
|
4974
|
-
[k: string]: unknown | undefined;
|
|
4975
4994
|
};
|
|
4976
4995
|
/**
|
|
4977
4996
|
* Universal ID type
|
|
@@ -5270,20 +5289,21 @@ export interface CreativeManifest {
|
|
|
5270
5289
|
format_id: FormatID;
|
|
5271
5290
|
/**
|
|
5272
5291
|
* Catalogs this creative renders. Each entry satisfies one of the format's catalog_requirements, matched by type. Tells the creative what data to display — product listings for a carousel, job vacancies for a recruitment ad, store locations for a locator. This is a data reference, not a campaign expansion directive; campaign structure and budget allocation are handled by create_media_buy packages. Each catalog can be inline (with items), a reference to a synced catalog (by catalog_id), or a URL to an external feed.
|
|
5273
|
-
*
|
|
5274
|
-
* @minItems 1
|
|
5275
5292
|
*/
|
|
5276
|
-
catalogs?:
|
|
5293
|
+
catalogs?: Catalog[];
|
|
5277
5294
|
/**
|
|
5278
5295
|
* Map of asset IDs to actual asset content. Each key MUST match an asset_id from the format's assets array (e.g., 'banner_image', 'clickthrough_url', 'video_file', 'vast_tag'). The asset_id is the technical identifier used to match assets to format requirements.
|
|
5279
5296
|
*
|
|
5280
5297
|
* IMPORTANT: Full validation requires format context. The format defines what type each asset_id should be. Standalone schema validation only checks structural conformance — each asset must match at least one valid asset type schema.
|
|
5281
5298
|
*/
|
|
5282
5299
|
assets: {
|
|
5283
|
-
|
|
5300
|
+
/**
|
|
5301
|
+
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
5302
|
+
* via the `patternProperty` "^[a-z0-9_]+$".
|
|
5303
|
+
*/
|
|
5304
|
+
[k: string]: ImageAsset | VideoAsset | AudioAsset | VASTAsset | TextAsset | URLAsset | HTMLAsset | JavaScriptAsset | WebhookAsset | CSSAsset | DAASTAsset;
|
|
5284
5305
|
};
|
|
5285
5306
|
ext?: ExtensionObject;
|
|
5286
|
-
[k: string]: unknown | undefined;
|
|
5287
5307
|
}
|
|
5288
5308
|
/**
|
|
5289
5309
|
* Format identifier this manifest is for. Can be a template format (id only) or a deterministic format (id + dimensions/duration). For dimension-specific creatives, include width/height/unit in the format_id to create a unique identifier (e.g., {id: 'display_static', width: 300, height: 250, unit: 'px'}).
|
|
@@ -5321,7 +5341,6 @@ export interface WebhookAsset {
|
|
|
5321
5341
|
*/
|
|
5322
5342
|
api_key_header?: string;
|
|
5323
5343
|
};
|
|
5324
|
-
[k: string]: unknown | undefined;
|
|
5325
5344
|
}
|
|
5326
5345
|
/**
|
|
5327
5346
|
* CSS stylesheet asset
|
|
@@ -5367,13 +5386,11 @@ export interface CreativeBrief {
|
|
|
5367
5386
|
* Key messages to communicate in priority order
|
|
5368
5387
|
*/
|
|
5369
5388
|
key_messages?: string[];
|
|
5370
|
-
[k: string]: unknown | undefined;
|
|
5371
5389
|
};
|
|
5372
5390
|
/**
|
|
5373
5391
|
* Visual and strategic reference materials such as mood boards, product shots, example creatives, and strategy documents
|
|
5374
5392
|
*/
|
|
5375
5393
|
reference_assets?: ReferenceAsset[];
|
|
5376
|
-
[k: string]: unknown | undefined;
|
|
5377
5394
|
}
|
|
5378
5395
|
/**
|
|
5379
5396
|
* A reference asset that provides creative context. Carries visual materials (mood boards, product shots, example creatives) with semantic roles that tell creative agents how to use them.
|
|
@@ -5391,7 +5408,6 @@ export interface ReferenceAsset {
|
|
|
5391
5408
|
* Human-readable description of the asset and how it should inform creative generation
|
|
5392
5409
|
*/
|
|
5393
5410
|
description?: string;
|
|
5394
|
-
[k: string]: unknown | undefined;
|
|
5395
5411
|
}
|
|
5396
5412
|
/**
|
|
5397
5413
|
* Opaque correlation data that is echoed unchanged in responses. Used for internal tracking, UI session IDs, trace IDs, and other caller-specific identifiers that don't affect protocol behavior. Context data is never parsed by AdCP agents - it's simply preserved and returned.
|
|
@@ -5531,20 +5547,21 @@ export interface CreativeManifest1 {
|
|
|
5531
5547
|
format_id: FormatID;
|
|
5532
5548
|
/**
|
|
5533
5549
|
* Catalogs this creative renders. Each entry satisfies one of the format's catalog_requirements, matched by type. Tells the creative what data to display — product listings for a carousel, job vacancies for a recruitment ad, store locations for a locator. This is a data reference, not a campaign expansion directive; campaign structure and budget allocation are handled by create_media_buy packages. Each catalog can be inline (with items), a reference to a synced catalog (by catalog_id), or a URL to an external feed.
|
|
5534
|
-
*
|
|
5535
|
-
* @minItems 1
|
|
5536
5550
|
*/
|
|
5537
|
-
catalogs?:
|
|
5551
|
+
catalogs?: Catalog[];
|
|
5538
5552
|
/**
|
|
5539
5553
|
* Map of asset IDs to actual asset content. Each key MUST match an asset_id from the format's assets array (e.g., 'banner_image', 'clickthrough_url', 'video_file', 'vast_tag'). The asset_id is the technical identifier used to match assets to format requirements.
|
|
5540
5554
|
*
|
|
5541
5555
|
* IMPORTANT: Full validation requires format context. The format defines what type each asset_id should be. Standalone schema validation only checks structural conformance — each asset must match at least one valid asset type schema.
|
|
5542
5556
|
*/
|
|
5543
5557
|
assets: {
|
|
5544
|
-
|
|
5558
|
+
/**
|
|
5559
|
+
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
5560
|
+
* via the `patternProperty` "^[a-z0-9_]+$".
|
|
5561
|
+
*/
|
|
5562
|
+
[k: string]: ImageAsset | VideoAsset | AudioAsset | VASTAsset | TextAsset | URLAsset | HTMLAsset | JavaScriptAsset | WebhookAsset | CSSAsset | DAASTAsset;
|
|
5545
5563
|
};
|
|
5546
5564
|
ext?: ExtensionObject;
|
|
5547
|
-
[k: string]: unknown | undefined;
|
|
5548
5565
|
}
|
|
5549
5566
|
/**
|
|
5550
5567
|
* Response containing preview links for one or more creatives. Format matches the request: single preview response for single requests, batch results for batch requests.
|
|
@@ -5598,7 +5615,6 @@ export type PreviewRender = {
|
|
|
5598
5615
|
*/
|
|
5599
5616
|
csp_policy?: string;
|
|
5600
5617
|
};
|
|
5601
|
-
[k: string]: unknown | undefined;
|
|
5602
5618
|
} | {
|
|
5603
5619
|
/**
|
|
5604
5620
|
* Unique identifier for this rendered piece within the variant
|
|
@@ -5644,7 +5660,6 @@ export type PreviewRender = {
|
|
|
5644
5660
|
*/
|
|
5645
5661
|
csp_policy?: string;
|
|
5646
5662
|
};
|
|
5647
|
-
[k: string]: unknown | undefined;
|
|
5648
5663
|
} | {
|
|
5649
5664
|
/**
|
|
5650
5665
|
* Unique identifier for this rendered piece within the variant
|
|
@@ -5694,7 +5709,6 @@ export type PreviewRender = {
|
|
|
5694
5709
|
*/
|
|
5695
5710
|
csp_policy?: string;
|
|
5696
5711
|
};
|
|
5697
|
-
[k: string]: unknown | undefined;
|
|
5698
5712
|
};
|
|
5699
5713
|
/**
|
|
5700
5714
|
* Catalog type. Structural types: 'offering' (AdCP Offering objects), 'product' (ecommerce entries), 'inventory' (stock per location), 'store' (physical locations), 'promotion' (deals and pricing). Vertical types: 'hotel', 'flight', 'job', 'vehicle', 'real_estate', 'education', 'destination', 'app' — each with an industry-specific item schema.
|
|
@@ -5889,7 +5903,6 @@ export type CreativeVariant = DeliveryMetrics & {
|
|
|
5889
5903
|
artifact_id: string;
|
|
5890
5904
|
};
|
|
5891
5905
|
ext?: ExtensionObject;
|
|
5892
|
-
[k: string]: unknown | undefined;
|
|
5893
5906
|
};
|
|
5894
5907
|
};
|
|
5895
5908
|
/**
|
|
@@ -6049,7 +6062,6 @@ export type Destination = {
|
|
|
6049
6062
|
* Optional account identifier on the platform
|
|
6050
6063
|
*/
|
|
6051
6064
|
account?: string;
|
|
6052
|
-
[k: string]: unknown | undefined;
|
|
6053
6065
|
} | {
|
|
6054
6066
|
/**
|
|
6055
6067
|
* Discriminator indicating this is an agent URL-based deployment
|
|
@@ -6063,7 +6075,6 @@ export type Destination = {
|
|
|
6063
6075
|
* Optional account identifier on the agent
|
|
6064
6076
|
*/
|
|
6065
6077
|
account?: string;
|
|
6066
|
-
[k: string]: unknown | undefined;
|
|
6067
6078
|
};
|
|
6068
6079
|
/**
|
|
6069
6080
|
* Types of signal catalogs available for audience targeting
|
|
@@ -6075,16 +6086,12 @@ export type SignalCatalogType = 'marketplace' | 'custom' | 'owned';
|
|
|
6075
6086
|
export interface SignalFilters {
|
|
6076
6087
|
/**
|
|
6077
6088
|
* Filter by catalog type
|
|
6078
|
-
*
|
|
6079
|
-
* @minItems 1
|
|
6080
6089
|
*/
|
|
6081
|
-
catalog_types?:
|
|
6090
|
+
catalog_types?: SignalCatalogType[];
|
|
6082
6091
|
/**
|
|
6083
6092
|
* Filter by specific data providers
|
|
6084
|
-
*
|
|
6085
|
-
* @minItems 1
|
|
6086
6093
|
*/
|
|
6087
|
-
data_providers?:
|
|
6094
|
+
data_providers?: string[];
|
|
6088
6095
|
/**
|
|
6089
6096
|
* Maximum CPM price filter
|
|
6090
6097
|
*/
|
|
@@ -6093,7 +6100,6 @@ export interface SignalFilters {
|
|
|
6093
6100
|
* Minimum coverage requirement
|
|
6094
6101
|
*/
|
|
6095
6102
|
min_coverage_percentage?: number;
|
|
6096
|
-
[k: string]: unknown | undefined;
|
|
6097
6103
|
}
|
|
6098
6104
|
/**
|
|
6099
6105
|
* Standard cursor-based pagination parameters for list operations
|
|
@@ -6131,7 +6137,6 @@ export type Deployment = {
|
|
|
6131
6137
|
* Timestamp when activation completed (if is_live=true)
|
|
6132
6138
|
*/
|
|
6133
6139
|
deployed_at?: string;
|
|
6134
|
-
[k: string]: unknown | undefined;
|
|
6135
6140
|
} | {
|
|
6136
6141
|
/**
|
|
6137
6142
|
* Discriminator indicating this is an agent URL-based deployment
|
|
@@ -6158,7 +6163,6 @@ export type Deployment = {
|
|
|
6158
6163
|
* Timestamp when activation completed (if is_live=true)
|
|
6159
6164
|
*/
|
|
6160
6165
|
deployed_at?: string;
|
|
6161
|
-
[k: string]: unknown | undefined;
|
|
6162
6166
|
};
|
|
6163
6167
|
/**
|
|
6164
6168
|
* The key to use for targeting. Only present if is_live=true AND requester has access to this deployment.
|
|
@@ -6172,7 +6176,6 @@ export type ActivationKey = {
|
|
|
6172
6176
|
* The platform-specific segment identifier to use in campaign targeting
|
|
6173
6177
|
*/
|
|
6174
6178
|
segment_id: string;
|
|
6175
|
-
[k: string]: unknown | undefined;
|
|
6176
6179
|
} | {
|
|
6177
6180
|
/**
|
|
6178
6181
|
* Key-value pair based targeting
|
|
@@ -6186,7 +6189,6 @@ export type ActivationKey = {
|
|
|
6186
6189
|
* The targeting parameter value
|
|
6187
6190
|
*/
|
|
6188
6191
|
value: string;
|
|
6189
|
-
[k: string]: unknown | undefined;
|
|
6190
6192
|
};
|
|
6191
6193
|
/**
|
|
6192
6194
|
* The key to use for targeting. Only present if is_live=true AND requester has access to this deployment.
|
|
@@ -6346,10 +6348,8 @@ export interface PublisherTagsSource {
|
|
|
6346
6348
|
publisher_domain: string;
|
|
6347
6349
|
/**
|
|
6348
6350
|
* Property tags from the publisher's adagents.json. Selects all properties with these tags.
|
|
6349
|
-
*
|
|
6350
|
-
* @minItems 1
|
|
6351
6351
|
*/
|
|
6352
|
-
tags:
|
|
6352
|
+
tags: PropertyTag[];
|
|
6353
6353
|
}
|
|
6354
6354
|
/**
|
|
6355
6355
|
* Select specific properties from a publisher by ID
|
|
@@ -6365,10 +6365,8 @@ export interface PublisherPropertyIDsSource {
|
|
|
6365
6365
|
publisher_domain: string;
|
|
6366
6366
|
/**
|
|
6367
6367
|
* Specific property IDs from the publisher's adagents.json
|
|
6368
|
-
*
|
|
6369
|
-
* @minItems 1
|
|
6370
6368
|
*/
|
|
6371
|
-
property_ids:
|
|
6369
|
+
property_ids: PropertyID[];
|
|
6372
6370
|
}
|
|
6373
6371
|
/**
|
|
6374
6372
|
* Select properties by direct identifiers (domains, app IDs, etc.) without publisher context
|
|
@@ -6380,10 +6378,8 @@ export interface DirectIdentifiersSource {
|
|
|
6380
6378
|
selection_type: 'identifiers';
|
|
6381
6379
|
/**
|
|
6382
6380
|
* Direct property identifiers (domains, app IDs, etc.)
|
|
6383
|
-
*
|
|
6384
|
-
* @minItems 1
|
|
6385
6381
|
*/
|
|
6386
|
-
identifiers:
|
|
6382
|
+
identifiers: Identifier[];
|
|
6387
6383
|
}
|
|
6388
6384
|
/**
|
|
6389
6385
|
* A property identifier with type and value. Used to identify properties across platforms (domains, app store IDs, etc.).
|
|
@@ -6391,34 +6387,24 @@ export interface DirectIdentifiersSource {
|
|
|
6391
6387
|
export interface PropertyListFilters {
|
|
6392
6388
|
/**
|
|
6393
6389
|
* Property must have feature data for ALL listed countries (ISO codes). Required.
|
|
6394
|
-
*
|
|
6395
|
-
* @minItems 1
|
|
6396
6390
|
*/
|
|
6397
|
-
countries_all:
|
|
6391
|
+
countries_all: string[];
|
|
6398
6392
|
/**
|
|
6399
6393
|
* Property must support ANY of the listed channels. Required.
|
|
6400
|
-
*
|
|
6401
|
-
* @minItems 1
|
|
6402
6394
|
*/
|
|
6403
|
-
channels_any:
|
|
6395
|
+
channels_any: MediaChannel[];
|
|
6404
6396
|
/**
|
|
6405
6397
|
* Filter to these property types
|
|
6406
|
-
*
|
|
6407
|
-
* @minItems 1
|
|
6408
6398
|
*/
|
|
6409
|
-
property_types?:
|
|
6399
|
+
property_types?: PropertyType[];
|
|
6410
6400
|
/**
|
|
6411
6401
|
* Feature-based requirements. Property must pass ALL requirements (AND logic).
|
|
6412
|
-
*
|
|
6413
|
-
* @minItems 1
|
|
6414
6402
|
*/
|
|
6415
|
-
feature_requirements?:
|
|
6403
|
+
feature_requirements?: FeatureRequirement[];
|
|
6416
6404
|
/**
|
|
6417
6405
|
* Identifiers to always exclude from results
|
|
6418
|
-
*
|
|
6419
|
-
* @minItems 1
|
|
6420
6406
|
*/
|
|
6421
|
-
exclude_identifiers?:
|
|
6407
|
+
exclude_identifiers?: Identifier[];
|
|
6422
6408
|
}
|
|
6423
6409
|
/**
|
|
6424
6410
|
* A feature-based requirement for property filtering. Use min_value/max_value for quantitative features, allowed_values for binary/categorical features.
|
|
@@ -6438,10 +6424,8 @@ export interface FeatureRequirement {
|
|
|
6438
6424
|
max_value?: number;
|
|
6439
6425
|
/**
|
|
6440
6426
|
* Values that pass the requirement (for binary/categorical features)
|
|
6441
|
-
*
|
|
6442
|
-
* @minItems 1
|
|
6443
6427
|
*/
|
|
6444
|
-
allowed_values?:
|
|
6428
|
+
allowed_values?: unknown[];
|
|
6445
6429
|
/**
|
|
6446
6430
|
* How to handle properties where this feature is not covered. 'exclude' (default): property is removed from the list. 'include': property passes this requirement (fail-open).
|
|
6447
6431
|
*/
|
|
@@ -6746,9 +6730,7 @@ export type AssetAccess = {
|
|
|
6746
6730
|
/**
|
|
6747
6731
|
* Service account credentials
|
|
6748
6732
|
*/
|
|
6749
|
-
credentials?: {
|
|
6750
|
-
[k: string]: unknown | undefined;
|
|
6751
|
-
};
|
|
6733
|
+
credentials?: {};
|
|
6752
6734
|
} | {
|
|
6753
6735
|
method: 'signed_url';
|
|
6754
6736
|
};
|
|
@@ -6766,22 +6748,16 @@ export interface ContentStandards {
|
|
|
6766
6748
|
name?: string;
|
|
6767
6749
|
/**
|
|
6768
6750
|
* ISO 3166-1 alpha-2 country codes. Standards apply in ALL listed countries (AND logic).
|
|
6769
|
-
*
|
|
6770
|
-
* @minItems 1
|
|
6771
6751
|
*/
|
|
6772
|
-
countries_all?:
|
|
6752
|
+
countries_all?: string[];
|
|
6773
6753
|
/**
|
|
6774
6754
|
* Advertising channels. Standards apply to ANY of the listed channels (OR logic).
|
|
6775
|
-
*
|
|
6776
|
-
* @minItems 1
|
|
6777
6755
|
*/
|
|
6778
|
-
channels_any?:
|
|
6756
|
+
channels_any?: MediaChannel[];
|
|
6779
6757
|
/**
|
|
6780
6758
|
* BCP 47 language tags (e.g., 'en', 'de', 'fr'). Standards apply to content in ANY of these languages (OR logic). Content in unlisted languages is not covered by these standards.
|
|
6781
|
-
*
|
|
6782
|
-
* @minItems 1
|
|
6783
6759
|
*/
|
|
6784
|
-
languages_any?:
|
|
6760
|
+
languages_any?: string[];
|
|
6785
6761
|
/**
|
|
6786
6762
|
* Natural language policy describing acceptable and unacceptable content contexts. Used by LLMs and human reviewers to make judgments.
|
|
6787
6763
|
*/
|
|
@@ -6933,20 +6909,15 @@ export interface Artifact {
|
|
|
6933
6909
|
/**
|
|
6934
6910
|
* Open Graph protocol metadata
|
|
6935
6911
|
*/
|
|
6936
|
-
open_graph?: {
|
|
6937
|
-
[k: string]: unknown | undefined;
|
|
6938
|
-
};
|
|
6912
|
+
open_graph?: {};
|
|
6939
6913
|
/**
|
|
6940
6914
|
* Twitter Card metadata
|
|
6941
6915
|
*/
|
|
6942
|
-
twitter_card?: {
|
|
6943
|
-
[k: string]: unknown | undefined;
|
|
6944
|
-
};
|
|
6916
|
+
twitter_card?: {};
|
|
6945
6917
|
/**
|
|
6946
6918
|
* JSON-LD structured data (schema.org)
|
|
6947
6919
|
*/
|
|
6948
6920
|
json_ld?: {}[];
|
|
6949
|
-
[k: string]: unknown | undefined;
|
|
6950
6921
|
};
|
|
6951
6922
|
/**
|
|
6952
6923
|
* Platform-specific identifiers for this artifact
|
|
@@ -6972,9 +6943,7 @@ export interface Artifact {
|
|
|
6972
6943
|
* RSS feed URL
|
|
6973
6944
|
*/
|
|
6974
6945
|
rss_url?: string;
|
|
6975
|
-
[k: string]: unknown | undefined;
|
|
6976
6946
|
};
|
|
6977
|
-
[k: string]: unknown | undefined;
|
|
6978
6947
|
}
|
|
6979
6948
|
/**
|
|
6980
6949
|
* Identifier for the property where this artifact appears
|
|
@@ -7558,6 +7527,93 @@ export type GetMediaBuyArtifactsResponse = {
|
|
|
7558
7527
|
/**
|
|
7559
7528
|
* Type of identifier
|
|
7560
7529
|
*/
|
|
7530
|
+
/**
|
|
7531
|
+
* Catalog type. Structural types: 'offering' (AdCP Offering objects), 'product' (ecommerce entries), 'inventory' (stock per location), 'store' (physical locations), 'promotion' (deals and pricing). Vertical types: 'hotel', 'flight', 'job', 'vehicle', 'real_estate', 'education', 'destination', 'app' — each with an industry-specific item schema.
|
|
7532
|
+
*/
|
|
7533
|
+
export interface GetCreativeFeaturesRequest {
|
|
7534
|
+
creative_manifest: CreativeManifest;
|
|
7535
|
+
/**
|
|
7536
|
+
* Optional filter to specific features. If omitted, returns all available features.
|
|
7537
|
+
*/
|
|
7538
|
+
feature_ids?: string[];
|
|
7539
|
+
context?: ContextObject;
|
|
7540
|
+
ext?: ExtensionObject;
|
|
7541
|
+
}
|
|
7542
|
+
/**
|
|
7543
|
+
* The creative manifest to evaluate. Contains format_id and assets.
|
|
7544
|
+
*/
|
|
7545
|
+
/**
|
|
7546
|
+
* Response payload for get_creative_features task. Returns feature values for the evaluated creative.
|
|
7547
|
+
*/
|
|
7548
|
+
export type GetCreativeFeaturesResponse = {
|
|
7549
|
+
/**
|
|
7550
|
+
* Feature values for the evaluated creative
|
|
7551
|
+
*/
|
|
7552
|
+
results: CreativeFeatureResult[];
|
|
7553
|
+
/**
|
|
7554
|
+
* URL to the vendor's full assessment report. The vendor controls what information is disclosed and access control.
|
|
7555
|
+
*/
|
|
7556
|
+
detail_url?: string;
|
|
7557
|
+
/**
|
|
7558
|
+
* Field must not be present in success response
|
|
7559
|
+
*/
|
|
7560
|
+
errors?: {
|
|
7561
|
+
[k: string]: unknown | undefined;
|
|
7562
|
+
};
|
|
7563
|
+
context?: ContextObject;
|
|
7564
|
+
ext?: ExtensionObject;
|
|
7565
|
+
} | {
|
|
7566
|
+
errors: Error[];
|
|
7567
|
+
/**
|
|
7568
|
+
* Field must not be present in error response
|
|
7569
|
+
*/
|
|
7570
|
+
results?: {
|
|
7571
|
+
[k: string]: unknown | undefined;
|
|
7572
|
+
};
|
|
7573
|
+
context?: ContextObject;
|
|
7574
|
+
ext?: ExtensionObject;
|
|
7575
|
+
};
|
|
7576
|
+
/**
|
|
7577
|
+
* A single feature evaluation result for a creative. Uses the same value structure as property-feature-value (value, confidence, expires_at, etc.).
|
|
7578
|
+
*/
|
|
7579
|
+
export interface CreativeFeatureResult {
|
|
7580
|
+
/**
|
|
7581
|
+
* The feature that was evaluated (e.g., 'auto_redirect', 'brand_consistency', 'iab_casinos_gambling')
|
|
7582
|
+
*/
|
|
7583
|
+
feature_id: string;
|
|
7584
|
+
/**
|
|
7585
|
+
* The feature value. Type depends on feature definition: boolean for binary, number for quantitative, string for categorical.
|
|
7586
|
+
*/
|
|
7587
|
+
value: boolean | number | string;
|
|
7588
|
+
/**
|
|
7589
|
+
* Unit of measurement for quantitative values (e.g., 'percentage', 'score')
|
|
7590
|
+
*/
|
|
7591
|
+
unit?: string;
|
|
7592
|
+
/**
|
|
7593
|
+
* Confidence score for this value (0-1)
|
|
7594
|
+
*/
|
|
7595
|
+
confidence?: number;
|
|
7596
|
+
/**
|
|
7597
|
+
* When this feature was evaluated
|
|
7598
|
+
*/
|
|
7599
|
+
measured_at?: string;
|
|
7600
|
+
/**
|
|
7601
|
+
* When this evaluation expires and should be refreshed
|
|
7602
|
+
*/
|
|
7603
|
+
expires_at?: string;
|
|
7604
|
+
/**
|
|
7605
|
+
* Version of the methodology used to evaluate this feature
|
|
7606
|
+
*/
|
|
7607
|
+
methodology_version?: string;
|
|
7608
|
+
/**
|
|
7609
|
+
* Additional vendor-specific details about this evaluation
|
|
7610
|
+
*/
|
|
7611
|
+
details?: {};
|
|
7612
|
+
ext?: ExtensionObject;
|
|
7613
|
+
}
|
|
7614
|
+
/**
|
|
7615
|
+
* Extension object for platform-specific, vendor-namespaced parameters. Extensions are always optional and must be namespaced under a vendor/platform key (e.g., ext.gam, ext.roku). Used for custom capabilities, partner-specific configuration, and features being proposed for standardization.
|
|
7616
|
+
*/
|
|
7561
7617
|
/**
|
|
7562
7618
|
* Get offering details and availability before session handoff. Returns offering information, availability status, and optionally matching products based on context.
|
|
7563
7619
|
*/
|
|
@@ -7750,7 +7806,6 @@ export interface SIIdentity {
|
|
|
7750
7806
|
* Version of policy acknowledged
|
|
7751
7807
|
*/
|
|
7752
7808
|
brand_policy_version?: string;
|
|
7753
|
-
[k: string]: unknown | undefined;
|
|
7754
7809
|
};
|
|
7755
7810
|
/**
|
|
7756
7811
|
* User data (only present if consent_granted is true)
|
|
@@ -7781,15 +7836,12 @@ export interface SIIdentity {
|
|
|
7781
7836
|
state?: string;
|
|
7782
7837
|
postal_code?: string;
|
|
7783
7838
|
country?: string;
|
|
7784
|
-
[k: string]: unknown | undefined;
|
|
7785
7839
|
};
|
|
7786
|
-
[k: string]: unknown | undefined;
|
|
7787
7840
|
};
|
|
7788
7841
|
/**
|
|
7789
7842
|
* Session ID for anonymous users (when consent_granted is false)
|
|
7790
7843
|
*/
|
|
7791
7844
|
anonymous_session_id?: string;
|
|
7792
|
-
[k: string]: unknown | undefined;
|
|
7793
7845
|
}
|
|
7794
7846
|
/**
|
|
7795
7847
|
* What capabilities the host supports
|
|
@@ -7815,7 +7867,6 @@ export interface SICapabilities {
|
|
|
7815
7867
|
* Brand voice identifier
|
|
7816
7868
|
*/
|
|
7817
7869
|
voice_id?: string;
|
|
7818
|
-
[k: string]: unknown | undefined;
|
|
7819
7870
|
};
|
|
7820
7871
|
/**
|
|
7821
7872
|
* Brand video content playback
|
|
@@ -7829,7 +7880,6 @@ export interface SICapabilities {
|
|
|
7829
7880
|
* Maximum video duration
|
|
7830
7881
|
*/
|
|
7831
7882
|
max_duration_seconds?: number;
|
|
7832
|
-
[k: string]: unknown | undefined;
|
|
7833
7883
|
};
|
|
7834
7884
|
/**
|
|
7835
7885
|
* Animated video presence with brand avatar
|
|
@@ -7843,9 +7893,7 @@ export interface SICapabilities {
|
|
|
7843
7893
|
* Brand avatar identifier
|
|
7844
7894
|
*/
|
|
7845
7895
|
avatar_id?: string;
|
|
7846
|
-
[k: string]: unknown | undefined;
|
|
7847
7896
|
};
|
|
7848
|
-
[k: string]: unknown | undefined;
|
|
7849
7897
|
};
|
|
7850
7898
|
/**
|
|
7851
7899
|
* Visual components supported
|
|
@@ -7858,10 +7906,7 @@ export interface SICapabilities {
|
|
|
7858
7906
|
/**
|
|
7859
7907
|
* Platform-specific extensions (chatgpt_apps_sdk, maps, forms, etc.)
|
|
7860
7908
|
*/
|
|
7861
|
-
extensions?: {
|
|
7862
|
-
[k: string]: unknown | undefined;
|
|
7863
|
-
};
|
|
7864
|
-
[k: string]: unknown | undefined;
|
|
7909
|
+
extensions?: {};
|
|
7865
7910
|
};
|
|
7866
7911
|
/**
|
|
7867
7912
|
* Commerce capabilities
|
|
@@ -7871,7 +7916,6 @@ export interface SICapabilities {
|
|
|
7871
7916
|
* Supports ACP (Agentic Commerce Protocol) checkout handoff
|
|
7872
7917
|
*/
|
|
7873
7918
|
acp_checkout?: boolean;
|
|
7874
|
-
[k: string]: unknown | undefined;
|
|
7875
7919
|
};
|
|
7876
7920
|
/**
|
|
7877
7921
|
* A2UI (Agent-to-UI) capabilities
|
|
@@ -7885,13 +7929,11 @@ export interface SICapabilities {
|
|
|
7885
7929
|
* Supported A2UI component catalogs (e.g., 'si-standard', 'standard')
|
|
7886
7930
|
*/
|
|
7887
7931
|
catalogs?: string[];
|
|
7888
|
-
[k: string]: unknown | undefined;
|
|
7889
7932
|
};
|
|
7890
7933
|
/**
|
|
7891
7934
|
* Supports MCP Apps for rendering A2UI surfaces in iframes
|
|
7892
7935
|
*/
|
|
7893
7936
|
mcp_apps?: boolean;
|
|
7894
|
-
[k: string]: unknown | undefined;
|
|
7895
7937
|
}
|
|
7896
7938
|
/**
|
|
7897
7939
|
* Extension object for platform-specific, vendor-namespaced parameters. Extensions are always optional and must be namespaced under a vendor/platform key (e.g., ext.gam, ext.roku). Used for custom capabilities, partner-specific configuration, and features being proposed for standardization.
|
|
@@ -7909,10 +7951,7 @@ export type SIUIElement = {
|
|
|
7909
7951
|
/**
|
|
7910
7952
|
* Component-specific data
|
|
7911
7953
|
*/
|
|
7912
|
-
data?: {
|
|
7913
|
-
[k: string]: unknown | undefined;
|
|
7914
|
-
};
|
|
7915
|
-
[k: string]: unknown | undefined;
|
|
7954
|
+
data?: {};
|
|
7916
7955
|
};
|
|
7917
7956
|
/**
|
|
7918
7957
|
* Brand agent's response to session initiation
|
|
@@ -8076,10 +8115,7 @@ export interface A2UISurface {
|
|
|
8076
8115
|
/**
|
|
8077
8116
|
* Application data that components can bind to
|
|
8078
8117
|
*/
|
|
8079
|
-
dataModel?: {
|
|
8080
|
-
[k: string]: unknown | undefined;
|
|
8081
|
-
};
|
|
8082
|
-
[k: string]: unknown | undefined;
|
|
8118
|
+
dataModel?: {};
|
|
8083
8119
|
}
|
|
8084
8120
|
/**
|
|
8085
8121
|
* A component in an A2UI surface
|
|
@@ -8102,7 +8138,6 @@ export interface A2UIComponent {
|
|
|
8102
8138
|
*/
|
|
8103
8139
|
[k: string]: {} | undefined;
|
|
8104
8140
|
};
|
|
8105
|
-
[k: string]: unknown | undefined;
|
|
8106
8141
|
}
|
|
8107
8142
|
/**
|
|
8108
8143
|
* Standard error structure for task-specific errors and warnings
|
|
@@ -8492,7 +8527,7 @@ export interface GetAdCPCapabilitiesResponse {
|
|
|
8492
8527
|
};
|
|
8493
8528
|
};
|
|
8494
8529
|
/**
|
|
8495
|
-
* Governance protocol capabilities. Only present if governance is in supported_protocols. Governance agents provide property data like compliance scores, brand safety ratings, and
|
|
8530
|
+
* Governance protocol capabilities. Only present if governance is in supported_protocols. Governance agents provide property and creative data like compliance scores, brand safety ratings, sustainability metrics, and creative quality assessments.
|
|
8496
8531
|
*/
|
|
8497
8532
|
governance?: {
|
|
8498
8533
|
/**
|
|
@@ -8533,6 +8568,44 @@ export interface GetAdCPCapabilitiesResponse {
|
|
|
8533
8568
|
*/
|
|
8534
8569
|
methodology_url?: string;
|
|
8535
8570
|
}[];
|
|
8571
|
+
/**
|
|
8572
|
+
* Creative features this governance agent can evaluate. Each feature describes a score, rating, or assessment the agent can provide for creatives (e.g., security scanning, creative quality, content categorization).
|
|
8573
|
+
*/
|
|
8574
|
+
creative_features?: {
|
|
8575
|
+
/**
|
|
8576
|
+
* Unique identifier for this feature (e.g., 'auto_redirect', 'brand_consistency', 'iab_casinos_gambling')
|
|
8577
|
+
*/
|
|
8578
|
+
feature_id: string;
|
|
8579
|
+
/**
|
|
8580
|
+
* Data type: 'binary' for yes/no, 'quantitative' for numeric scores, 'categorical' for enum values
|
|
8581
|
+
*/
|
|
8582
|
+
type: 'binary' | 'quantitative' | 'categorical';
|
|
8583
|
+
/**
|
|
8584
|
+
* For quantitative features, the valid range
|
|
8585
|
+
*/
|
|
8586
|
+
range?: {
|
|
8587
|
+
/**
|
|
8588
|
+
* Minimum value
|
|
8589
|
+
*/
|
|
8590
|
+
min: number;
|
|
8591
|
+
/**
|
|
8592
|
+
* Maximum value
|
|
8593
|
+
*/
|
|
8594
|
+
max: number;
|
|
8595
|
+
};
|
|
8596
|
+
/**
|
|
8597
|
+
* For categorical features, the valid values
|
|
8598
|
+
*/
|
|
8599
|
+
categories?: string[];
|
|
8600
|
+
/**
|
|
8601
|
+
* Human-readable description of what this feature measures
|
|
8602
|
+
*/
|
|
8603
|
+
description?: string;
|
|
8604
|
+
/**
|
|
8605
|
+
* URL to documentation explaining how this feature is calculated or measured.
|
|
8606
|
+
*/
|
|
8607
|
+
methodology_url?: string;
|
|
8608
|
+
}[];
|
|
8536
8609
|
};
|
|
8537
8610
|
/**
|
|
8538
8611
|
* Sponsored Intelligence protocol capabilities. Only present if sponsored_intelligence is in supported_protocols. SI agents handle conversational brand experiences.
|