@adcp/client 3.21.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/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 +135 -307
- 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 +5768 -3311
- package/dist/lib/types/schemas.generated.d.ts.map +1 -1
- package/dist/lib/types/schemas.generated.js +421 -392
- package/dist/lib/types/schemas.generated.js.map +1 -1
- package/dist/lib/types/tools.generated.d.ts +392 -663
- 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
|
-
buyer_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.
|
|
@@ -829,7 +794,6 @@ export interface CPMPricingOption {
|
|
|
829
794
|
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
830
795
|
*/
|
|
831
796
|
min_spend_per_package?: number;
|
|
832
|
-
[k: string]: unknown | undefined;
|
|
833
797
|
}
|
|
834
798
|
/**
|
|
835
799
|
* Optional pricing guidance for auction-based bidding
|
|
@@ -851,7 +815,6 @@ export interface PriceGuidance {
|
|
|
851
815
|
* 90th percentile of recent winning bids
|
|
852
816
|
*/
|
|
853
817
|
p90?: number;
|
|
854
|
-
[k: string]: unknown | undefined;
|
|
855
818
|
}
|
|
856
819
|
/**
|
|
857
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.
|
|
@@ -886,7 +849,6 @@ export interface VCPMPricingOption {
|
|
|
886
849
|
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
887
850
|
*/
|
|
888
851
|
min_spend_per_package?: number;
|
|
889
|
-
[k: string]: unknown | undefined;
|
|
890
852
|
}
|
|
891
853
|
/**
|
|
892
854
|
* Optional pricing guidance for auction-based bidding
|
|
@@ -921,7 +883,6 @@ export interface CPCPricingOption {
|
|
|
921
883
|
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
922
884
|
*/
|
|
923
885
|
min_spend_per_package?: number;
|
|
924
|
-
[k: string]: unknown | undefined;
|
|
925
886
|
}
|
|
926
887
|
/**
|
|
927
888
|
* Optional pricing guidance for auction-based bidding
|
|
@@ -956,7 +917,6 @@ export interface CPCVPricingOption {
|
|
|
956
917
|
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
957
918
|
*/
|
|
958
919
|
min_spend_per_package?: number;
|
|
959
|
-
[k: string]: unknown | undefined;
|
|
960
920
|
}
|
|
961
921
|
/**
|
|
962
922
|
* Optional pricing guidance for auction-based bidding
|
|
@@ -996,15 +956,12 @@ export interface CPVPricingOption {
|
|
|
996
956
|
* Seconds of viewing required
|
|
997
957
|
*/
|
|
998
958
|
duration_seconds: number;
|
|
999
|
-
[k: string]: unknown | undefined;
|
|
1000
959
|
};
|
|
1001
|
-
[k: string]: unknown | undefined;
|
|
1002
960
|
};
|
|
1003
961
|
/**
|
|
1004
962
|
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
1005
963
|
*/
|
|
1006
964
|
min_spend_per_package?: number;
|
|
1007
|
-
[k: string]: unknown | undefined;
|
|
1008
965
|
}
|
|
1009
966
|
/**
|
|
1010
967
|
* Optional pricing guidance for auction-based bidding
|
|
@@ -1044,13 +1001,11 @@ export interface CPPPricingOption {
|
|
|
1044
1001
|
* Minimum GRPs/TRPs required
|
|
1045
1002
|
*/
|
|
1046
1003
|
min_points?: number;
|
|
1047
|
-
[k: string]: unknown | undefined;
|
|
1048
1004
|
};
|
|
1049
1005
|
/**
|
|
1050
1006
|
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
1051
1007
|
*/
|
|
1052
1008
|
min_spend_per_package?: number;
|
|
1053
|
-
[k: string]: unknown | undefined;
|
|
1054
1009
|
}
|
|
1055
1010
|
/**
|
|
1056
1011
|
* Optional pricing guidance for auction-based bidding
|
|
@@ -1088,7 +1043,6 @@ export interface CPAPricingOption {
|
|
|
1088
1043
|
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
1089
1044
|
*/
|
|
1090
1045
|
min_spend_per_package?: number;
|
|
1091
|
-
[k: string]: unknown | undefined;
|
|
1092
1046
|
}
|
|
1093
1047
|
/**
|
|
1094
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.
|
|
@@ -1147,13 +1101,11 @@ export interface FlatRatePricingOption {
|
|
|
1147
1101
|
* Specific daypart for time-based pricing
|
|
1148
1102
|
*/
|
|
1149
1103
|
daypart?: string;
|
|
1150
|
-
[k: string]: unknown | undefined;
|
|
1151
1104
|
};
|
|
1152
1105
|
/**
|
|
1153
1106
|
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
1154
1107
|
*/
|
|
1155
1108
|
min_spend_per_package?: number;
|
|
1156
|
-
[k: string]: unknown | undefined;
|
|
1157
1109
|
}
|
|
1158
1110
|
/**
|
|
1159
1111
|
* Optional pricing guidance for auction-based bidding
|
|
@@ -1196,13 +1148,11 @@ export interface TimeBasedPricingOption {
|
|
|
1196
1148
|
* Maximum booking duration in time_units. Must be >= min_duration when both are present.
|
|
1197
1149
|
*/
|
|
1198
1150
|
max_duration?: number;
|
|
1199
|
-
[k: string]: unknown | undefined;
|
|
1200
1151
|
};
|
|
1201
1152
|
/**
|
|
1202
1153
|
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
1203
1154
|
*/
|
|
1204
1155
|
min_spend_per_package?: number;
|
|
1205
|
-
[k: string]: unknown | undefined;
|
|
1206
1156
|
}
|
|
1207
1157
|
/**
|
|
1208
1158
|
* Optional pricing guidance for auction-based bidding
|
|
@@ -1210,10 +1160,8 @@ export interface TimeBasedPricingOption {
|
|
|
1210
1160
|
export interface DeliveryForecast {
|
|
1211
1161
|
/**
|
|
1212
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.
|
|
1213
|
-
*
|
|
1214
|
-
* @minItems 1
|
|
1215
1163
|
*/
|
|
1216
|
-
points:
|
|
1164
|
+
points: ForecastPoint[];
|
|
1217
1165
|
forecast_range_unit?: ForecastRangeUnit;
|
|
1218
1166
|
method: ForecastMethod;
|
|
1219
1167
|
/**
|
|
@@ -1235,7 +1183,6 @@ export interface DeliveryForecast {
|
|
|
1235
1183
|
*/
|
|
1236
1184
|
valid_until?: string;
|
|
1237
1185
|
ext?: ExtensionObject;
|
|
1238
|
-
[k: string]: unknown | undefined;
|
|
1239
1186
|
}
|
|
1240
1187
|
/**
|
|
1241
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.
|
|
@@ -1251,7 +1198,6 @@ export interface ForecastPoint {
|
|
|
1251
1198
|
metrics: {
|
|
1252
1199
|
[k: string]: ForecastRange | undefined;
|
|
1253
1200
|
};
|
|
1254
|
-
[k: string]: unknown | undefined;
|
|
1255
1201
|
}
|
|
1256
1202
|
/**
|
|
1257
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.
|
|
@@ -1269,7 +1215,6 @@ export interface ForecastRange {
|
|
|
1269
1215
|
* Optimistic (high-end) forecast value
|
|
1270
1216
|
*/
|
|
1271
1217
|
high?: number;
|
|
1272
|
-
[k: string]: unknown | undefined;
|
|
1273
1218
|
}
|
|
1274
1219
|
/**
|
|
1275
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.
|
|
@@ -1291,7 +1236,6 @@ export interface Measurement {
|
|
|
1291
1236
|
* Reporting frequency and format
|
|
1292
1237
|
*/
|
|
1293
1238
|
reporting: string;
|
|
1294
|
-
[k: string]: unknown | undefined;
|
|
1295
1239
|
}
|
|
1296
1240
|
/**
|
|
1297
1241
|
* Reporting capabilities available for a product
|
|
@@ -1299,10 +1243,8 @@ export interface Measurement {
|
|
|
1299
1243
|
export interface ReportingCapabilities {
|
|
1300
1244
|
/**
|
|
1301
1245
|
* Supported reporting frequency options
|
|
1302
|
-
*
|
|
1303
|
-
* @minItems 1
|
|
1304
1246
|
*/
|
|
1305
|
-
available_reporting_frequencies:
|
|
1247
|
+
available_reporting_frequencies: ReportingFrequency[];
|
|
1306
1248
|
/**
|
|
1307
1249
|
* Expected delay in minutes before reporting data becomes available (e.g., 240 for 4-hour delay)
|
|
1308
1250
|
*/
|
|
@@ -1327,7 +1269,6 @@ export interface ReportingCapabilities {
|
|
|
1327
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.
|
|
1328
1270
|
*/
|
|
1329
1271
|
date_range_support: 'date_range' | 'lifetime_only';
|
|
1330
|
-
[k: string]: unknown | undefined;
|
|
1331
1272
|
}
|
|
1332
1273
|
/**
|
|
1333
1274
|
* Creative requirements and restrictions for a product
|
|
@@ -1339,7 +1280,6 @@ export interface CreativePolicy {
|
|
|
1339
1280
|
* Whether creative templates are provided
|
|
1340
1281
|
*/
|
|
1341
1282
|
templates_available: boolean;
|
|
1342
|
-
[k: string]: unknown | undefined;
|
|
1343
1283
|
}
|
|
1344
1284
|
/**
|
|
1345
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.
|
|
@@ -1359,10 +1299,8 @@ export interface Proposal {
|
|
|
1359
1299
|
description?: string;
|
|
1360
1300
|
/**
|
|
1361
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.
|
|
1362
|
-
*
|
|
1363
|
-
* @minItems 1
|
|
1364
1302
|
*/
|
|
1365
|
-
allocations:
|
|
1303
|
+
allocations: ProductAllocation[];
|
|
1366
1304
|
/**
|
|
1367
1305
|
* When this proposal expires and can no longer be executed. After expiration, referenced products or pricing may no longer be available.
|
|
1368
1306
|
*/
|
|
@@ -1387,7 +1325,6 @@ export interface Proposal {
|
|
|
1387
1325
|
* ISO 4217 currency code
|
|
1388
1326
|
*/
|
|
1389
1327
|
currency?: string;
|
|
1390
|
-
[k: string]: unknown | undefined;
|
|
1391
1328
|
};
|
|
1392
1329
|
/**
|
|
1393
1330
|
* Explanation of how this proposal aligns with the campaign brief
|
|
@@ -1395,7 +1332,6 @@ export interface Proposal {
|
|
|
1395
1332
|
brief_alignment?: string;
|
|
1396
1333
|
forecast?: DeliveryForecast;
|
|
1397
1334
|
ext?: ExtensionObject;
|
|
1398
|
-
[k: string]: unknown | undefined;
|
|
1399
1335
|
}
|
|
1400
1336
|
/**
|
|
1401
1337
|
* A budget allocation for a specific product within a proposal. Percentages across all allocations in a proposal should sum to 100.
|
|
@@ -1427,13 +1363,10 @@ export interface ProductAllocation {
|
|
|
1427
1363
|
tags?: string[];
|
|
1428
1364
|
/**
|
|
1429
1365
|
* Recommended time windows for this allocation in spot-plan proposals.
|
|
1430
|
-
*
|
|
1431
|
-
* @minItems 1
|
|
1432
1366
|
*/
|
|
1433
|
-
daypart_targets?:
|
|
1367
|
+
daypart_targets?: DaypartTarget[];
|
|
1434
1368
|
forecast?: DeliveryForecast;
|
|
1435
1369
|
ext?: ExtensionObject;
|
|
1436
|
-
[k: string]: unknown | undefined;
|
|
1437
1370
|
}
|
|
1438
1371
|
/**
|
|
1439
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.
|
|
@@ -1441,10 +1374,8 @@ export interface ProductAllocation {
|
|
|
1441
1374
|
export interface DaypartTarget {
|
|
1442
1375
|
/**
|
|
1443
1376
|
* Days of week this window applies to. Use multiple days for compact targeting (e.g., monday-friday in one object).
|
|
1444
|
-
*
|
|
1445
|
-
* @minItems 1
|
|
1446
1377
|
*/
|
|
1447
|
-
days:
|
|
1378
|
+
days: DayOfWeek[];
|
|
1448
1379
|
/**
|
|
1449
1380
|
* Start hour (inclusive), 0-23 in 24-hour format. 0 = midnight, 6 = 6:00am, 18 = 6:00pm.
|
|
1450
1381
|
*/
|
|
@@ -1485,10 +1416,7 @@ export interface Error {
|
|
|
1485
1416
|
/**
|
|
1486
1417
|
* Additional task-specific error details
|
|
1487
1418
|
*/
|
|
1488
|
-
details?: {
|
|
1489
|
-
[k: string]: unknown | undefined;
|
|
1490
|
-
};
|
|
1491
|
-
[k: string]: unknown | undefined;
|
|
1419
|
+
details?: {};
|
|
1492
1420
|
}
|
|
1493
1421
|
/**
|
|
1494
1422
|
* Standard cursor-based pagination metadata for list responses
|
|
@@ -1583,6 +1511,25 @@ export type UniversalMacro = 'MEDIA_BUY_ID' | 'PACKAGE_ID' | 'CREATIVE_ID' | 'CA
|
|
|
1583
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.
|
|
1584
1512
|
*/
|
|
1585
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
|
+
};
|
|
1586
1533
|
/**
|
|
1587
1534
|
* Standard delivery and performance metrics available for reporting
|
|
1588
1535
|
*/
|
|
@@ -1648,21 +1595,12 @@ export interface Format {
|
|
|
1648
1595
|
accepts_parameters?: FormatIDParameter[];
|
|
1649
1596
|
/**
|
|
1650
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.
|
|
1651
|
-
|
|
1652
|
-
|
|
1653
|
-
|
|
1654
|
-
|
|
1655
|
-
|
|
1656
|
-
|
|
1657
|
-
} | {
|
|
1658
|
-
parameters_from_format_id: true;
|
|
1659
|
-
}),
|
|
1660
|
-
...({
|
|
1661
|
-
[k: string]: unknown | undefined;
|
|
1662
|
-
} | {
|
|
1663
|
-
parameters_from_format_id: true;
|
|
1664
|
-
})[]
|
|
1665
|
-
];
|
|
1598
|
+
*/
|
|
1599
|
+
renders?: ({
|
|
1600
|
+
[k: string]: unknown | undefined;
|
|
1601
|
+
} | {
|
|
1602
|
+
parameters_from_format_id: true;
|
|
1603
|
+
})[];
|
|
1666
1604
|
/**
|
|
1667
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.
|
|
1668
1606
|
*/
|
|
@@ -1699,9 +1637,7 @@ export interface Format {
|
|
|
1699
1637
|
/**
|
|
1700
1638
|
* Delivery method specifications (e.g., hosted, VAST, third-party tags)
|
|
1701
1639
|
*/
|
|
1702
|
-
delivery?: {
|
|
1703
|
-
[k: string]: unknown | undefined;
|
|
1704
|
-
};
|
|
1640
|
+
delivery?: {};
|
|
1705
1641
|
/**
|
|
1706
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.
|
|
1707
1643
|
*/
|
|
@@ -1722,10 +1658,7 @@ export interface Format {
|
|
|
1722
1658
|
/**
|
|
1723
1659
|
* Asset manifest for rendering the card, structure defined by the format
|
|
1724
1660
|
*/
|
|
1725
|
-
manifest: {
|
|
1726
|
-
[k: string]: unknown | undefined;
|
|
1727
|
-
};
|
|
1728
|
-
[k: string]: unknown | undefined;
|
|
1661
|
+
manifest: {};
|
|
1729
1662
|
};
|
|
1730
1663
|
/**
|
|
1731
1664
|
* Accessibility posture of this format. Declares the WCAG conformance level that creatives produced by this format will meet.
|
|
@@ -1745,24 +1678,16 @@ export interface Format {
|
|
|
1745
1678
|
/**
|
|
1746
1679
|
* Asset manifest for rendering the detailed card, structure defined by the format
|
|
1747
1680
|
*/
|
|
1748
|
-
manifest: {
|
|
1749
|
-
[k: string]: unknown | undefined;
|
|
1750
|
-
};
|
|
1751
|
-
[k: string]: unknown | undefined;
|
|
1681
|
+
manifest: {};
|
|
1752
1682
|
};
|
|
1753
1683
|
/**
|
|
1754
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.
|
|
1755
|
-
*
|
|
1756
|
-
* @minItems 1
|
|
1757
1685
|
*/
|
|
1758
|
-
catalog_requirements?:
|
|
1686
|
+
catalog_requirements?: CatalogRequirements[];
|
|
1759
1687
|
/**
|
|
1760
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.
|
|
1761
|
-
*
|
|
1762
|
-
* @minItems 1
|
|
1763
1689
|
*/
|
|
1764
|
-
reported_metrics?:
|
|
1765
|
-
[k: string]: unknown | undefined;
|
|
1690
|
+
reported_metrics?: AvailableMetric[];
|
|
1766
1691
|
}
|
|
1767
1692
|
/**
|
|
1768
1693
|
* Structured format identifier with agent URL and format name
|
|
@@ -1784,6 +1709,65 @@ export interface BaseIndividualAsset {
|
|
|
1784
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.
|
|
1785
1710
|
*/
|
|
1786
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
|
+
};
|
|
1787
1771
|
}
|
|
1788
1772
|
export interface BaseGroupAsset {
|
|
1789
1773
|
/**
|
|
@@ -1798,6 +1782,10 @@ export interface BaseGroupAsset {
|
|
|
1798
1782
|
* Whether this asset is required within each repetition of the group
|
|
1799
1783
|
*/
|
|
1800
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[];
|
|
1801
1789
|
}
|
|
1802
1790
|
/**
|
|
1803
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.
|
|
@@ -1814,23 +1802,20 @@ export interface CatalogRequirements {
|
|
|
1814
1802
|
min_items?: number;
|
|
1815
1803
|
/**
|
|
1816
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).
|
|
1817
|
-
*
|
|
1818
|
-
* @minItems 1
|
|
1819
1805
|
*/
|
|
1820
|
-
required_fields?:
|
|
1806
|
+
required_fields?: string[];
|
|
1821
1807
|
/**
|
|
1822
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.
|
|
1823
|
-
*
|
|
1824
|
-
* @minItems 1
|
|
1825
1809
|
*/
|
|
1826
|
-
feed_formats?:
|
|
1810
|
+
feed_formats?: FeedFormat[];
|
|
1827
1811
|
/**
|
|
1828
|
-
* Per-
|
|
1829
|
-
*
|
|
1830
|
-
* @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.
|
|
1831
1813
|
*/
|
|
1832
|
-
offering_asset_constraints?:
|
|
1833
|
-
|
|
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[];
|
|
1834
1819
|
}
|
|
1835
1820
|
/**
|
|
1836
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.
|
|
@@ -1855,7 +1840,6 @@ export interface OfferingAssetConstraint {
|
|
|
1855
1840
|
max_count?: number;
|
|
1856
1841
|
asset_requirements?: AssetRequirements;
|
|
1857
1842
|
ext?: ExtensionObject;
|
|
1858
|
-
[k: string]: unknown | undefined;
|
|
1859
1843
|
}
|
|
1860
1844
|
/**
|
|
1861
1845
|
* Requirements for image creative assets. These define the technical constraints for image files.
|
|
@@ -1901,7 +1885,6 @@ export interface ImageAssetRequirements {
|
|
|
1901
1885
|
* Maximum animation duration in milliseconds (if animation_allowed is true)
|
|
1902
1886
|
*/
|
|
1903
1887
|
max_animation_duration_ms?: number;
|
|
1904
|
-
[k: string]: unknown | undefined;
|
|
1905
1888
|
}
|
|
1906
1889
|
/**
|
|
1907
1890
|
* Requirements for video creative assets. These define the technical constraints for video files.
|
|
@@ -1963,7 +1946,6 @@ export interface VideoAssetRequirements {
|
|
|
1963
1946
|
* Whether the video must include an audio track
|
|
1964
1947
|
*/
|
|
1965
1948
|
audio_required?: boolean;
|
|
1966
|
-
[k: string]: unknown | undefined;
|
|
1967
1949
|
}
|
|
1968
1950
|
/**
|
|
1969
1951
|
* Requirements for audio creative assets.
|
|
@@ -2001,7 +1983,6 @@ export interface AudioAssetRequirements {
|
|
|
2001
1983
|
* Maximum audio bitrate in kilobits per second
|
|
2002
1984
|
*/
|
|
2003
1985
|
max_bitrate_kbps?: number;
|
|
2004
|
-
[k: string]: unknown | undefined;
|
|
2005
1986
|
}
|
|
2006
1987
|
/**
|
|
2007
1988
|
* Requirements for text creative assets such as headlines, body copy, and CTAs.
|
|
@@ -2031,7 +2012,6 @@ export interface TextAssetRequirements {
|
|
|
2031
2012
|
* List of prohibited words or phrases
|
|
2032
2013
|
*/
|
|
2033
2014
|
prohibited_terms?: string[];
|
|
2034
|
-
[k: string]: unknown | undefined;
|
|
2035
2015
|
}
|
|
2036
2016
|
/**
|
|
2037
2017
|
* Requirements for markdown creative assets.
|
|
@@ -2041,7 +2021,6 @@ export interface MarkdownAssetRequirements {
|
|
|
2041
2021
|
* Maximum character length
|
|
2042
2022
|
*/
|
|
2043
2023
|
max_length?: number;
|
|
2044
|
-
[k: string]: unknown | undefined;
|
|
2045
2024
|
}
|
|
2046
2025
|
/**
|
|
2047
2026
|
* Requirements for HTML creative assets. These define the execution environment constraints that the HTML must be compatible with.
|
|
@@ -2063,7 +2042,6 @@ export interface HTMLAssetRequirements {
|
|
|
2063
2042
|
* List of domains the HTML creative may reference for external resources. Only applicable when external_resources_allowed is true.
|
|
2064
2043
|
*/
|
|
2065
2044
|
allowed_external_domains?: string[];
|
|
2066
|
-
[k: string]: unknown | undefined;
|
|
2067
2045
|
}
|
|
2068
2046
|
/**
|
|
2069
2047
|
* Requirements for CSS creative assets.
|
|
@@ -2073,7 +2051,6 @@ export interface CSSAssetRequirements {
|
|
|
2073
2051
|
* Maximum file size in kilobytes
|
|
2074
2052
|
*/
|
|
2075
2053
|
max_file_size_kb?: number;
|
|
2076
|
-
[k: string]: unknown | undefined;
|
|
2077
2054
|
}
|
|
2078
2055
|
/**
|
|
2079
2056
|
* Requirements for JavaScript creative assets. These define the execution environment constraints that the JavaScript must be compatible with.
|
|
@@ -2099,7 +2076,6 @@ export interface JavaScriptAssetRequirements {
|
|
|
2099
2076
|
* List of domains the JavaScript may reference for external resources. Only applicable when external_resources_allowed is true.
|
|
2100
2077
|
*/
|
|
2101
2078
|
allowed_external_domains?: string[];
|
|
2102
|
-
[k: string]: unknown | undefined;
|
|
2103
2079
|
}
|
|
2104
2080
|
/**
|
|
2105
2081
|
* Requirements for VAST (Video Ad Serving Template) creative assets.
|
|
@@ -2109,7 +2085,6 @@ export interface VASTAssetRequirements {
|
|
|
2109
2085
|
* Required VAST version
|
|
2110
2086
|
*/
|
|
2111
2087
|
vast_version?: '2.0' | '3.0' | '4.0' | '4.1' | '4.2';
|
|
2112
|
-
[k: string]: unknown | undefined;
|
|
2113
2088
|
}
|
|
2114
2089
|
/**
|
|
2115
2090
|
* Requirements for DAAST (Digital Audio Ad Serving Template) creative assets.
|
|
@@ -2119,7 +2094,6 @@ export interface DAASTAssetRequirements {
|
|
|
2119
2094
|
* Required DAAST version. DAAST 1.0 is the current IAB standard.
|
|
2120
2095
|
*/
|
|
2121
2096
|
daast_version?: '1.0';
|
|
2122
|
-
[k: string]: unknown | undefined;
|
|
2123
2097
|
}
|
|
2124
2098
|
/**
|
|
2125
2099
|
* Requirements for URL assets such as click-through URLs, tracking pixels, and landing pages.
|
|
@@ -2145,7 +2119,6 @@ export interface URLAssetRequirements {
|
|
|
2145
2119
|
* Whether the URL supports macro substitution (e.g., ${CACHEBUSTER})
|
|
2146
2120
|
*/
|
|
2147
2121
|
macro_support?: boolean;
|
|
2148
|
-
[k: string]: unknown | undefined;
|
|
2149
2122
|
}
|
|
2150
2123
|
/**
|
|
2151
2124
|
* Requirements for webhook creative assets.
|
|
@@ -2155,11 +2128,40 @@ export interface WebhookAssetRequirements {
|
|
|
2155
2128
|
* Allowed HTTP methods
|
|
2156
2129
|
*/
|
|
2157
2130
|
methods?: ('GET' | 'POST')[];
|
|
2158
|
-
[k: string]: unknown | undefined;
|
|
2159
2131
|
}
|
|
2160
2132
|
/**
|
|
2161
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.
|
|
2162
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
|
+
*/
|
|
2163
2165
|
/**
|
|
2164
2166
|
* Budget pacing strategy
|
|
2165
2167
|
*/
|
|
@@ -2213,7 +2215,6 @@ export type VASTAsset = {
|
|
|
2213
2215
|
* URL to audio description track for visually impaired users
|
|
2214
2216
|
*/
|
|
2215
2217
|
audio_description_url?: string;
|
|
2216
|
-
[k: string]: unknown | undefined;
|
|
2217
2218
|
} | {
|
|
2218
2219
|
/**
|
|
2219
2220
|
* Discriminator indicating VAST is delivered as inline XML content
|
|
@@ -2244,7 +2245,6 @@ export type VASTAsset = {
|
|
|
2244
2245
|
* URL to audio description track for visually impaired users
|
|
2245
2246
|
*/
|
|
2246
2247
|
audio_description_url?: string;
|
|
2247
|
-
[k: string]: unknown | undefined;
|
|
2248
2248
|
};
|
|
2249
2249
|
/**
|
|
2250
2250
|
* VAST specification version
|
|
@@ -2283,7 +2283,6 @@ export type DAASTAsset = {
|
|
|
2283
2283
|
* URL to text transcript of the audio content
|
|
2284
2284
|
*/
|
|
2285
2285
|
transcript_url?: string;
|
|
2286
|
-
[k: string]: unknown | undefined;
|
|
2287
2286
|
} | {
|
|
2288
2287
|
/**
|
|
2289
2288
|
* Discriminator indicating DAAST is delivered as inline XML content
|
|
@@ -2310,7 +2309,6 @@ export type DAASTAsset = {
|
|
|
2310
2309
|
* URL to text transcript of the audio content
|
|
2311
2310
|
*/
|
|
2312
2311
|
transcript_url?: string;
|
|
2313
|
-
[k: string]: unknown | undefined;
|
|
2314
2312
|
};
|
|
2315
2313
|
/**
|
|
2316
2314
|
* DAAST specification version
|
|
@@ -2441,10 +2439,8 @@ export interface PackageRequest {
|
|
|
2441
2439
|
product_id: string;
|
|
2442
2440
|
/**
|
|
2443
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.
|
|
2444
|
-
*
|
|
2445
|
-
* @minItems 1
|
|
2446
2442
|
*/
|
|
2447
|
-
format_ids?:
|
|
2443
|
+
format_ids?: FormatID[];
|
|
2448
2444
|
/**
|
|
2449
2445
|
* Budget allocation for this package in the media buy's currency
|
|
2450
2446
|
*/
|
|
@@ -2471,19 +2467,15 @@ export interface PackageRequest {
|
|
|
2471
2467
|
targeting_overlay?: TargetingOverlay;
|
|
2472
2468
|
/**
|
|
2473
2469
|
* Assign existing library creatives to this package with optional weights and placement targeting
|
|
2474
|
-
*
|
|
2475
|
-
* @minItems 1
|
|
2476
2470
|
*/
|
|
2477
|
-
creative_assignments?:
|
|
2471
|
+
creative_assignments?: CreativeAssignment[];
|
|
2478
2472
|
/**
|
|
2479
2473
|
* Upload new creative assets and assign to this package (creatives will be added to library). Use creative_assignments instead for existing library creatives.
|
|
2480
2474
|
*
|
|
2481
|
-
* @minItems 1
|
|
2482
2475
|
* @maxItems 100
|
|
2483
2476
|
*/
|
|
2484
|
-
creatives?:
|
|
2477
|
+
creatives?: CreativeAsset[];
|
|
2485
2478
|
ext?: ExtensionObject;
|
|
2486
|
-
[k: string]: unknown | undefined;
|
|
2487
2479
|
}
|
|
2488
2480
|
/**
|
|
2489
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.
|
|
@@ -2514,9 +2506,7 @@ export interface OptimizationGoal {
|
|
|
2514
2506
|
* View-through attribution window (e.g. '1d', '7d')
|
|
2515
2507
|
*/
|
|
2516
2508
|
view_through?: string;
|
|
2517
|
-
[k: string]: unknown | undefined;
|
|
2518
2509
|
};
|
|
2519
|
-
[k: string]: unknown | undefined;
|
|
2520
2510
|
}
|
|
2521
2511
|
/**
|
|
2522
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).
|
|
@@ -2524,134 +2514,64 @@ export interface OptimizationGoal {
|
|
|
2524
2514
|
export interface TargetingOverlay {
|
|
2525
2515
|
/**
|
|
2526
2516
|
* Restrict delivery to specific countries. ISO 3166-1 alpha-2 codes (e.g., 'US', 'GB', 'DE').
|
|
2527
|
-
*
|
|
2528
|
-
* @minItems 1
|
|
2529
2517
|
*/
|
|
2530
|
-
geo_countries?:
|
|
2518
|
+
geo_countries?: string[];
|
|
2531
2519
|
/**
|
|
2532
2520
|
* Exclude specific countries from delivery. ISO 3166-1 alpha-2 codes (e.g., 'US', 'GB', 'DE').
|
|
2533
|
-
*
|
|
2534
|
-
* @minItems 1
|
|
2535
2521
|
*/
|
|
2536
|
-
geo_countries_exclude?:
|
|
2522
|
+
geo_countries_exclude?: string[];
|
|
2537
2523
|
/**
|
|
2538
2524
|
* Restrict delivery to specific regions/states. ISO 3166-2 subdivision codes (e.g., 'US-CA', 'GB-SCT').
|
|
2539
|
-
*
|
|
2540
|
-
* @minItems 1
|
|
2541
2525
|
*/
|
|
2542
|
-
geo_regions?:
|
|
2526
|
+
geo_regions?: string[];
|
|
2543
2527
|
/**
|
|
2544
2528
|
* Exclude specific regions/states from delivery. ISO 3166-2 subdivision codes (e.g., 'US-CA', 'GB-SCT').
|
|
2545
|
-
*
|
|
2546
|
-
* @minItems 1
|
|
2547
2529
|
*/
|
|
2548
|
-
geo_regions_exclude?:
|
|
2530
|
+
geo_regions_exclude?: string[];
|
|
2549
2531
|
/**
|
|
2550
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.
|
|
2551
|
-
*
|
|
2552
|
-
* @minItems 1
|
|
2553
2533
|
*/
|
|
2554
|
-
geo_metros?:
|
|
2555
|
-
|
|
2556
|
-
|
|
2557
|
-
|
|
2558
|
-
|
|
2559
|
-
|
|
2560
|
-
|
|
2561
|
-
*/
|
|
2562
|
-
values: [string, ...string[]];
|
|
2563
|
-
},
|
|
2564
|
-
...{
|
|
2565
|
-
system: MetroAreaSystem;
|
|
2566
|
-
/**
|
|
2567
|
-
* Metro codes within the system (e.g., ['501', '602'] for Nielsen DMAs)
|
|
2568
|
-
*
|
|
2569
|
-
* @minItems 1
|
|
2570
|
-
*/
|
|
2571
|
-
values: [string, ...string[]];
|
|
2572
|
-
}[]
|
|
2573
|
-
];
|
|
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
|
+
}[];
|
|
2574
2541
|
/**
|
|
2575
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.
|
|
2576
|
-
*
|
|
2577
|
-
* @minItems 1
|
|
2578
2543
|
*/
|
|
2579
|
-
geo_metros_exclude?:
|
|
2580
|
-
|
|
2581
|
-
|
|
2582
|
-
|
|
2583
|
-
|
|
2584
|
-
|
|
2585
|
-
|
|
2586
|
-
*/
|
|
2587
|
-
values: [string, ...string[]];
|
|
2588
|
-
},
|
|
2589
|
-
...{
|
|
2590
|
-
system: MetroAreaSystem;
|
|
2591
|
-
/**
|
|
2592
|
-
* Metro codes to exclude within the system (e.g., ['501', '602'] for Nielsen DMAs)
|
|
2593
|
-
*
|
|
2594
|
-
* @minItems 1
|
|
2595
|
-
*/
|
|
2596
|
-
values: [string, ...string[]];
|
|
2597
|
-
}[]
|
|
2598
|
-
];
|
|
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
|
+
}[];
|
|
2599
2551
|
/**
|
|
2600
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.
|
|
2601
|
-
*
|
|
2602
|
-
* @minItems 1
|
|
2603
2553
|
*/
|
|
2604
|
-
geo_postal_areas?:
|
|
2605
|
-
|
|
2606
|
-
|
|
2607
|
-
|
|
2608
|
-
|
|
2609
|
-
|
|
2610
|
-
|
|
2611
|
-
*/
|
|
2612
|
-
values: [string, ...string[]];
|
|
2613
|
-
},
|
|
2614
|
-
...{
|
|
2615
|
-
system: PostalCodeSystem;
|
|
2616
|
-
/**
|
|
2617
|
-
* Postal codes within the system (e.g., ['10001', '10002'] for us_zip)
|
|
2618
|
-
*
|
|
2619
|
-
* @minItems 1
|
|
2620
|
-
*/
|
|
2621
|
-
values: [string, ...string[]];
|
|
2622
|
-
}[]
|
|
2623
|
-
];
|
|
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
|
+
}[];
|
|
2624
2561
|
/**
|
|
2625
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.
|
|
2626
|
-
*
|
|
2627
|
-
* @minItems 1
|
|
2628
2563
|
*/
|
|
2629
|
-
geo_postal_areas_exclude?:
|
|
2630
|
-
|
|
2631
|
-
|
|
2632
|
-
|
|
2633
|
-
|
|
2634
|
-
|
|
2635
|
-
|
|
2636
|
-
*/
|
|
2637
|
-
values: [string, ...string[]];
|
|
2638
|
-
},
|
|
2639
|
-
...{
|
|
2640
|
-
system: PostalCodeSystem;
|
|
2641
|
-
/**
|
|
2642
|
-
* Postal codes to exclude within the system (e.g., ['10001', '10002'] for us_zip)
|
|
2643
|
-
*
|
|
2644
|
-
* @minItems 1
|
|
2645
|
-
*/
|
|
2646
|
-
values: [string, ...string[]];
|
|
2647
|
-
}[]
|
|
2648
|
-
];
|
|
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
|
+
}[];
|
|
2649
2571
|
/**
|
|
2650
2572
|
* Restrict delivery to specific time windows. Each entry specifies days of week and an hour range.
|
|
2651
|
-
*
|
|
2652
|
-
* @minItems 1
|
|
2653
2573
|
*/
|
|
2654
|
-
daypart_targets?:
|
|
2574
|
+
daypart_targets?: DaypartTarget[];
|
|
2655
2575
|
/**
|
|
2656
2576
|
* AXE segment ID to include for targeting
|
|
2657
2577
|
*/
|
|
@@ -2662,16 +2582,12 @@ export interface TargetingOverlay {
|
|
|
2662
2582
|
axe_exclude_segment?: string;
|
|
2663
2583
|
/**
|
|
2664
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.
|
|
2665
|
-
*
|
|
2666
|
-
* @minItems 1
|
|
2667
2585
|
*/
|
|
2668
|
-
audience_include?:
|
|
2586
|
+
audience_include?: string[];
|
|
2669
2587
|
/**
|
|
2670
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.
|
|
2671
|
-
*
|
|
2672
|
-
* @minItems 1
|
|
2673
2589
|
*/
|
|
2674
|
-
audience_exclude?:
|
|
2590
|
+
audience_exclude?: string[];
|
|
2675
2591
|
frequency_cap?: FrequencyCap;
|
|
2676
2592
|
property_list?: PropertyListReference;
|
|
2677
2593
|
/**
|
|
@@ -2688,69 +2604,34 @@ export interface TargetingOverlay {
|
|
|
2688
2604
|
verification_required?: boolean;
|
|
2689
2605
|
/**
|
|
2690
2606
|
* Accepted verification methods. If omitted, any method the platform supports is acceptable.
|
|
2691
|
-
*
|
|
2692
|
-
* @minItems 1
|
|
2693
2607
|
*/
|
|
2694
|
-
accepted_methods?:
|
|
2608
|
+
accepted_methods?: AgeVerificationMethod[];
|
|
2695
2609
|
};
|
|
2696
2610
|
/**
|
|
2697
2611
|
* Restrict to specific platforms. Use for technical compatibility (app only works on iOS). Values from Sec-CH-UA-Platform standard, extended for CTV.
|
|
2698
|
-
*
|
|
2699
|
-
* @minItems 1
|
|
2700
2612
|
*/
|
|
2701
|
-
device_platform?:
|
|
2613
|
+
device_platform?: DevicePlatform[];
|
|
2702
2614
|
/**
|
|
2703
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.
|
|
2704
|
-
*
|
|
2705
|
-
* @minItems 1
|
|
2706
2616
|
*/
|
|
2707
|
-
store_catchments?:
|
|
2708
|
-
|
|
2709
|
-
|
|
2710
|
-
|
|
2711
|
-
|
|
2712
|
-
|
|
2713
|
-
|
|
2714
|
-
|
|
2715
|
-
|
|
2716
|
-
|
|
2717
|
-
|
|
2718
|
-
|
|
2719
|
-
|
|
2720
|
-
|
|
2721
|
-
*
|
|
2722
|
-
* @minItems 1
|
|
2723
|
-
*/
|
|
2724
|
-
catchment_ids?: [string, ...string[]];
|
|
2725
|
-
[k: string]: unknown | undefined;
|
|
2726
|
-
},
|
|
2727
|
-
...{
|
|
2728
|
-
/**
|
|
2729
|
-
* Synced store-type catalog ID from sync_catalogs.
|
|
2730
|
-
*/
|
|
2731
|
-
catalog_id: string;
|
|
2732
|
-
/**
|
|
2733
|
-
* Filter to specific stores within the catalog. Omit to target all stores.
|
|
2734
|
-
*
|
|
2735
|
-
* @minItems 1
|
|
2736
|
-
*/
|
|
2737
|
-
store_ids?: [string, ...string[]];
|
|
2738
|
-
/**
|
|
2739
|
-
* Catchment zone IDs to target (e.g., 'walk', 'drive'). Omit to target all catchment zones.
|
|
2740
|
-
*
|
|
2741
|
-
* @minItems 1
|
|
2742
|
-
*/
|
|
2743
|
-
catchment_ids?: [string, ...string[]];
|
|
2744
|
-
[k: string]: unknown | undefined;
|
|
2745
|
-
}[]
|
|
2746
|
-
];
|
|
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
|
+
}[];
|
|
2747
2631
|
/**
|
|
2748
2632
|
* Restrict to users with specific language preferences. ISO 639-1 codes (e.g., 'en', 'es', 'fr').
|
|
2749
|
-
*
|
|
2750
|
-
* @minItems 1
|
|
2751
2633
|
*/
|
|
2752
|
-
language?:
|
|
2753
|
-
[k: string]: unknown | undefined;
|
|
2634
|
+
language?: string[];
|
|
2754
2635
|
}
|
|
2755
2636
|
/**
|
|
2756
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.
|
|
@@ -2760,7 +2641,6 @@ export interface FrequencyCap {
|
|
|
2760
2641
|
* Minutes to suppress after impression
|
|
2761
2642
|
*/
|
|
2762
2643
|
suppress_minutes: number;
|
|
2763
|
-
[k: string]: unknown | undefined;
|
|
2764
2644
|
}
|
|
2765
2645
|
/**
|
|
2766
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.
|
|
@@ -2776,11 +2656,8 @@ export interface CreativeAssignment {
|
|
|
2776
2656
|
weight?: number;
|
|
2777
2657
|
/**
|
|
2778
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.
|
|
2779
|
-
*
|
|
2780
|
-
* @minItems 1
|
|
2781
2659
|
*/
|
|
2782
|
-
placement_ids?:
|
|
2783
|
-
[k: string]: unknown | undefined;
|
|
2660
|
+
placement_ids?: string[];
|
|
2784
2661
|
}
|
|
2785
2662
|
/**
|
|
2786
2663
|
* Creative asset for upload to library - supports static assets, generative formats, and third-party snippets
|
|
@@ -2797,15 +2674,17 @@ export interface CreativeAsset {
|
|
|
2797
2674
|
format_id: FormatID;
|
|
2798
2675
|
/**
|
|
2799
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.
|
|
2800
|
-
*
|
|
2801
|
-
* @minItems 1
|
|
2802
2677
|
*/
|
|
2803
|
-
catalogs?:
|
|
2678
|
+
catalogs?: Catalog[];
|
|
2804
2679
|
/**
|
|
2805
2680
|
* Assets required by the format, keyed by asset_role
|
|
2806
2681
|
*/
|
|
2807
2682
|
assets: {
|
|
2808
|
-
|
|
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;
|
|
2809
2688
|
};
|
|
2810
2689
|
/**
|
|
2811
2690
|
* Preview contexts for generative formats - defines what scenarios to generate previews for
|
|
@@ -2825,7 +2704,6 @@ export interface CreativeAsset {
|
|
|
2825
2704
|
* Natural language description of the context for AI-generated content
|
|
2826
2705
|
*/
|
|
2827
2706
|
context_description?: string;
|
|
2828
|
-
[k: string]: unknown | undefined;
|
|
2829
2707
|
}[];
|
|
2830
2708
|
/**
|
|
2831
2709
|
* User-defined tags for organization and searchability
|
|
@@ -2838,11 +2716,8 @@ export interface CreativeAsset {
|
|
|
2838
2716
|
weight?: number;
|
|
2839
2717
|
/**
|
|
2840
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.
|
|
2841
|
-
*
|
|
2842
|
-
* @minItems 1
|
|
2843
2719
|
*/
|
|
2844
|
-
placement_ids?:
|
|
2845
|
-
[k: string]: unknown | undefined;
|
|
2720
|
+
placement_ids?: string[];
|
|
2846
2721
|
}
|
|
2847
2722
|
/**
|
|
2848
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.
|
|
@@ -2868,7 +2743,6 @@ export interface ImageAsset {
|
|
|
2868
2743
|
* Alternative text for accessibility
|
|
2869
2744
|
*/
|
|
2870
2745
|
alt_text?: string;
|
|
2871
|
-
[k: string]: unknown | undefined;
|
|
2872
2746
|
}
|
|
2873
2747
|
/**
|
|
2874
2748
|
* Video asset with URL and technical specifications including audio track properties
|
|
@@ -2990,7 +2864,6 @@ export interface VideoAsset {
|
|
|
2990
2864
|
* URL to audio description track for visually impaired users
|
|
2991
2865
|
*/
|
|
2992
2866
|
audio_description_url?: string;
|
|
2993
|
-
[k: string]: unknown | undefined;
|
|
2994
2867
|
}
|
|
2995
2868
|
/**
|
|
2996
2869
|
* Audio asset with URL and technical specifications
|
|
@@ -3044,7 +2917,6 @@ export interface AudioAsset {
|
|
|
3044
2917
|
* URL to text transcript of the audio content
|
|
3045
2918
|
*/
|
|
3046
2919
|
transcript_url?: string;
|
|
3047
|
-
[k: string]: unknown | undefined;
|
|
3048
2920
|
}
|
|
3049
2921
|
/**
|
|
3050
2922
|
* Text content asset
|
|
@@ -3058,7 +2930,6 @@ export interface TextAsset {
|
|
|
3058
2930
|
* Language code (e.g., 'en', 'es', 'fr')
|
|
3059
2931
|
*/
|
|
3060
2932
|
language?: string;
|
|
3061
|
-
[k: string]: unknown | undefined;
|
|
3062
2933
|
}
|
|
3063
2934
|
/**
|
|
3064
2935
|
* HTML content asset
|
|
@@ -3093,7 +2964,6 @@ export interface HTMLAsset {
|
|
|
3093
2964
|
*/
|
|
3094
2965
|
screen_reader_tested?: boolean;
|
|
3095
2966
|
};
|
|
3096
|
-
[k: string]: unknown | undefined;
|
|
3097
2967
|
}
|
|
3098
2968
|
/**
|
|
3099
2969
|
* CSS stylesheet asset
|
|
@@ -3107,7 +2977,6 @@ export interface CSSAsset {
|
|
|
3107
2977
|
* CSS media query context (e.g., 'screen', 'print')
|
|
3108
2978
|
*/
|
|
3109
2979
|
media?: string;
|
|
3110
|
-
[k: string]: unknown | undefined;
|
|
3111
2980
|
}
|
|
3112
2981
|
/**
|
|
3113
2982
|
* JavaScript code asset
|
|
@@ -3139,7 +3008,6 @@ export interface JavaScriptAsset {
|
|
|
3139
3008
|
*/
|
|
3140
3009
|
screen_reader_tested?: boolean;
|
|
3141
3010
|
};
|
|
3142
|
-
[k: string]: unknown | undefined;
|
|
3143
3011
|
}
|
|
3144
3012
|
/**
|
|
3145
3013
|
* URL reference asset
|
|
@@ -3154,10 +3022,9 @@ export interface URLAsset {
|
|
|
3154
3022
|
* Description of what this URL points to
|
|
3155
3023
|
*/
|
|
3156
3024
|
description?: string;
|
|
3157
|
-
[k: string]: unknown | undefined;
|
|
3158
3025
|
}
|
|
3159
3026
|
/**
|
|
3160
|
-
*
|
|
3027
|
+
* Brand reference for this media buy. Resolved to full brand identity at execution time from brand.json or the registry.
|
|
3161
3028
|
*/
|
|
3162
3029
|
export interface ReportingWebhook {
|
|
3163
3030
|
/**
|
|
@@ -3175,10 +3042,9 @@ export interface ReportingWebhook {
|
|
|
3175
3042
|
/**
|
|
3176
3043
|
* Array of authentication schemes. Supported: ['Bearer'] for simple token auth, ['HMAC-SHA256'] for signature verification (recommended for production)
|
|
3177
3044
|
*
|
|
3178
|
-
* @minItems 1
|
|
3179
3045
|
* @maxItems 1
|
|
3180
3046
|
*/
|
|
3181
|
-
schemes: [AuthenticationScheme];
|
|
3047
|
+
schemes: [] | [AuthenticationScheme];
|
|
3182
3048
|
/**
|
|
3183
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.
|
|
3184
3050
|
*/
|
|
@@ -3192,7 +3058,6 @@ export interface ReportingWebhook {
|
|
|
3192
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.
|
|
3193
3059
|
*/
|
|
3194
3060
|
requested_metrics?: AvailableMetric[];
|
|
3195
|
-
[k: string]: unknown | undefined;
|
|
3196
3061
|
}
|
|
3197
3062
|
/**
|
|
3198
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.
|
|
@@ -3293,7 +3158,6 @@ export interface Account {
|
|
|
3293
3158
|
*/
|
|
3294
3159
|
sandbox?: boolean;
|
|
3295
3160
|
ext?: ExtensionObject;
|
|
3296
|
-
[k: string]: unknown | undefined;
|
|
3297
3161
|
}
|
|
3298
3162
|
/**
|
|
3299
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.
|
|
@@ -3343,7 +3207,6 @@ export interface Package {
|
|
|
3343
3207
|
*/
|
|
3344
3208
|
paused?: boolean;
|
|
3345
3209
|
ext?: ExtensionObject;
|
|
3346
|
-
[k: string]: unknown | undefined;
|
|
3347
3210
|
}
|
|
3348
3211
|
/**
|
|
3349
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).
|
|
@@ -3427,10 +3290,9 @@ export interface PushNotificationConfig {
|
|
|
3427
3290
|
/**
|
|
3428
3291
|
* Array of authentication schemes. Supported: ['Bearer'] for simple token auth, ['HMAC-SHA256'] for signature verification (recommended for production)
|
|
3429
3292
|
*
|
|
3430
|
-
* @minItems 1
|
|
3431
3293
|
* @maxItems 1
|
|
3432
3294
|
*/
|
|
3433
|
-
schemes: [AuthenticationScheme];
|
|
3295
|
+
schemes: [] | [AuthenticationScheme];
|
|
3434
3296
|
/**
|
|
3435
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.
|
|
3436
3298
|
*/
|
|
@@ -3574,34 +3436,24 @@ export interface ListCreativesRequest {
|
|
|
3574
3436
|
export interface CreativeFilters {
|
|
3575
3437
|
/**
|
|
3576
3438
|
* Filter creatives by owning accounts. Useful for agencies managing multiple client accounts.
|
|
3577
|
-
*
|
|
3578
|
-
* @minItems 1
|
|
3579
3439
|
*/
|
|
3580
|
-
account_ids?:
|
|
3440
|
+
account_ids?: string[];
|
|
3581
3441
|
/**
|
|
3582
3442
|
* Filter by creative format types (e.g., video, audio, display)
|
|
3583
|
-
*
|
|
3584
|
-
* @minItems 1
|
|
3585
3443
|
*/
|
|
3586
|
-
formats?:
|
|
3444
|
+
formats?: string[];
|
|
3587
3445
|
/**
|
|
3588
3446
|
* Filter by creative approval statuses
|
|
3589
|
-
*
|
|
3590
|
-
* @minItems 1
|
|
3591
3447
|
*/
|
|
3592
|
-
statuses?:
|
|
3448
|
+
statuses?: CreativeStatus[];
|
|
3593
3449
|
/**
|
|
3594
3450
|
* Filter by creative tags (all tags must match)
|
|
3595
|
-
*
|
|
3596
|
-
* @minItems 1
|
|
3597
3451
|
*/
|
|
3598
|
-
tags?:
|
|
3452
|
+
tags?: string[];
|
|
3599
3453
|
/**
|
|
3600
3454
|
* Filter by creative tags (any tag must match)
|
|
3601
|
-
*
|
|
3602
|
-
* @minItems 1
|
|
3603
3455
|
*/
|
|
3604
|
-
tags_any?:
|
|
3456
|
+
tags_any?: string[];
|
|
3605
3457
|
/**
|
|
3606
3458
|
* Filter by creative names containing this text (case-insensitive)
|
|
3607
3459
|
*/
|
|
@@ -3609,10 +3461,9 @@ export interface CreativeFilters {
|
|
|
3609
3461
|
/**
|
|
3610
3462
|
* Filter by specific creative IDs
|
|
3611
3463
|
*
|
|
3612
|
-
* @minItems 1
|
|
3613
3464
|
* @maxItems 100
|
|
3614
3465
|
*/
|
|
3615
|
-
creative_ids?:
|
|
3466
|
+
creative_ids?: string[];
|
|
3616
3467
|
/**
|
|
3617
3468
|
* Filter creatives created after this date (ISO 8601)
|
|
3618
3469
|
*/
|
|
@@ -3631,22 +3482,16 @@ export interface CreativeFilters {
|
|
|
3631
3482
|
updated_before?: string;
|
|
3632
3483
|
/**
|
|
3633
3484
|
* Filter creatives assigned to any of these packages
|
|
3634
|
-
*
|
|
3635
|
-
* @minItems 1
|
|
3636
3485
|
*/
|
|
3637
|
-
assigned_to_packages?:
|
|
3486
|
+
assigned_to_packages?: string[];
|
|
3638
3487
|
/**
|
|
3639
3488
|
* Filter creatives assigned to any of these media buys
|
|
3640
|
-
*
|
|
3641
|
-
* @minItems 1
|
|
3642
3489
|
*/
|
|
3643
|
-
media_buy_ids?:
|
|
3490
|
+
media_buy_ids?: string[];
|
|
3644
3491
|
/**
|
|
3645
3492
|
* Filter creatives assigned to media buys with any of these buyer references
|
|
3646
|
-
*
|
|
3647
|
-
* @minItems 1
|
|
3648
3493
|
*/
|
|
3649
|
-
buyer_refs?:
|
|
3494
|
+
buyer_refs?: string[];
|
|
3650
3495
|
/**
|
|
3651
3496
|
* Filter for unassigned creatives when true, assigned creatives when false
|
|
3652
3497
|
*/
|
|
@@ -3655,7 +3500,6 @@ export interface CreativeFilters {
|
|
|
3655
3500
|
* Filter creatives that have performance data when true
|
|
3656
3501
|
*/
|
|
3657
3502
|
has_performance_data?: boolean;
|
|
3658
|
-
[k: string]: unknown | undefined;
|
|
3659
3503
|
}
|
|
3660
3504
|
/**
|
|
3661
3505
|
* Standard cursor-based pagination parameters for list operations
|
|
@@ -3680,7 +3524,6 @@ export type SubAsset = {
|
|
|
3680
3524
|
* URL for media assets (images, videos, etc.)
|
|
3681
3525
|
*/
|
|
3682
3526
|
content_uri: string;
|
|
3683
|
-
[k: string]: unknown | undefined;
|
|
3684
3527
|
} | {
|
|
3685
3528
|
/**
|
|
3686
3529
|
* Discriminator indicating this is a text asset with content
|
|
@@ -3698,7 +3541,6 @@ export type SubAsset = {
|
|
|
3698
3541
|
* Text content for text-based assets like headlines, body text, CTA text, etc.
|
|
3699
3542
|
*/
|
|
3700
3543
|
content: string | string[];
|
|
3701
|
-
[k: string]: unknown | undefined;
|
|
3702
3544
|
};
|
|
3703
3545
|
/**
|
|
3704
3546
|
* Response from creative library query with filtered results, metadata, and optional enriched data
|
|
@@ -3948,12 +3790,10 @@ export type PackageUpdate = {
|
|
|
3948
3790
|
/**
|
|
3949
3791
|
* Upload new creative assets and assign to this package (creatives will be added to library). Use creative_assignments instead for existing library creatives.
|
|
3950
3792
|
*
|
|
3951
|
-
* @minItems 1
|
|
3952
3793
|
* @maxItems 100
|
|
3953
3794
|
*/
|
|
3954
|
-
creatives?:
|
|
3795
|
+
creatives?: CreativeAsset[];
|
|
3955
3796
|
ext?: ExtensionObject;
|
|
3956
|
-
[k: string]: unknown | undefined;
|
|
3957
3797
|
} & {
|
|
3958
3798
|
[k: string]: unknown | undefined;
|
|
3959
3799
|
};
|
|
@@ -4485,7 +4325,6 @@ export interface AttributionWindow {
|
|
|
4485
4325
|
*/
|
|
4486
4326
|
view_window_days?: number;
|
|
4487
4327
|
model: AttributionModel;
|
|
4488
|
-
[k: string]: unknown | undefined;
|
|
4489
4328
|
}
|
|
4490
4329
|
/**
|
|
4491
4330
|
* Standard delivery metrics that can be reported at media buy, package, or creative level
|
|
@@ -4560,7 +4399,6 @@ export interface DeliveryMetrics {
|
|
|
4560
4399
|
* Total monetary value of events of this type
|
|
4561
4400
|
*/
|
|
4562
4401
|
value?: number;
|
|
4563
|
-
[k: string]: unknown | undefined;
|
|
4564
4402
|
}[];
|
|
4565
4403
|
/**
|
|
4566
4404
|
* Gross Rating Points delivered (for CPP)
|
|
@@ -4647,9 +4485,7 @@ export interface DeliveryMetrics {
|
|
|
4647
4485
|
* Number of screens used at this venue
|
|
4648
4486
|
*/
|
|
4649
4487
|
screens_used?: number;
|
|
4650
|
-
[k: string]: unknown | undefined;
|
|
4651
4488
|
}[];
|
|
4652
|
-
[k: string]: unknown | undefined;
|
|
4653
4489
|
};
|
|
4654
4490
|
/**
|
|
4655
4491
|
* Viewability metrics. Viewable rate should be calculated as viewable_impressions / measurable_impressions (not total impressions), since some environments cannot measure viewability.
|
|
@@ -4671,7 +4507,6 @@ export interface DeliveryMetrics {
|
|
|
4671
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.
|
|
4672
4508
|
*/
|
|
4673
4509
|
standard?: 'mrc' | 'groupm';
|
|
4674
|
-
[k: string]: unknown | undefined;
|
|
4675
4510
|
};
|
|
4676
4511
|
/**
|
|
4677
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).
|
|
@@ -4698,9 +4533,7 @@ export interface DeliveryMetrics {
|
|
|
4698
4533
|
* Total monetary value of conversions from this action source
|
|
4699
4534
|
*/
|
|
4700
4535
|
value?: number;
|
|
4701
|
-
[k: string]: unknown | undefined;
|
|
4702
4536
|
}[];
|
|
4703
|
-
[k: string]: unknown | undefined;
|
|
4704
4537
|
}
|
|
4705
4538
|
/**
|
|
4706
4539
|
* Standard error structure for task-specific errors and warnings
|
|
@@ -4920,27 +4753,14 @@ export type UserMatch = {
|
|
|
4920
4753
|
} & {
|
|
4921
4754
|
/**
|
|
4922
4755
|
* Universal ID values for user matching
|
|
4923
|
-
*
|
|
4924
|
-
* @minItems 1
|
|
4925
4756
|
*/
|
|
4926
|
-
uids?:
|
|
4927
|
-
|
|
4928
|
-
|
|
4929
|
-
|
|
4930
|
-
|
|
4931
|
-
|
|
4932
|
-
|
|
4933
|
-
[k: string]: unknown | undefined;
|
|
4934
|
-
},
|
|
4935
|
-
...{
|
|
4936
|
-
type: UIDType;
|
|
4937
|
-
/**
|
|
4938
|
-
* Universal ID value
|
|
4939
|
-
*/
|
|
4940
|
-
value: string;
|
|
4941
|
-
[k: string]: unknown | undefined;
|
|
4942
|
-
}[]
|
|
4943
|
-
];
|
|
4757
|
+
uids?: {
|
|
4758
|
+
type: UIDType;
|
|
4759
|
+
/**
|
|
4760
|
+
* Universal ID value
|
|
4761
|
+
*/
|
|
4762
|
+
value: string;
|
|
4763
|
+
}[];
|
|
4944
4764
|
/**
|
|
4945
4765
|
* SHA-256 hash of lowercase, trimmed email address. Buyer must normalize before hashing: lowercase, trim whitespace.
|
|
4946
4766
|
*/
|
|
@@ -4966,7 +4786,6 @@ export type UserMatch = {
|
|
|
4966
4786
|
*/
|
|
4967
4787
|
client_user_agent?: string;
|
|
4968
4788
|
ext?: ExtensionObject;
|
|
4969
|
-
[k: string]: unknown | undefined;
|
|
4970
4789
|
};
|
|
4971
4790
|
/**
|
|
4972
4791
|
* Universal ID type
|
|
@@ -5018,7 +4837,6 @@ export interface Event {
|
|
|
5018
4837
|
*/
|
|
5019
4838
|
custom_event_name?: string;
|
|
5020
4839
|
ext?: ExtensionObject;
|
|
5021
|
-
[k: string]: unknown | undefined;
|
|
5022
4840
|
}
|
|
5023
4841
|
/**
|
|
5024
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.
|
|
@@ -5080,10 +4898,8 @@ export interface EventCustomData {
|
|
|
5080
4898
|
* Brand name of this item
|
|
5081
4899
|
*/
|
|
5082
4900
|
brand?: string;
|
|
5083
|
-
[k: string]: unknown | undefined;
|
|
5084
4901
|
}[];
|
|
5085
4902
|
ext?: ExtensionObject;
|
|
5086
|
-
[k: string]: unknown | undefined;
|
|
5087
4903
|
}
|
|
5088
4904
|
/**
|
|
5089
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.
|
|
@@ -5166,29 +4982,15 @@ export type AudienceMember = {
|
|
|
5166
4982
|
hashed_phone?: string;
|
|
5167
4983
|
/**
|
|
5168
4984
|
* Universal ID values (MAIDs, RampID, UID2, etc.) for user matching.
|
|
5169
|
-
*
|
|
5170
|
-
* @minItems 1
|
|
5171
4985
|
*/
|
|
5172
|
-
uids?:
|
|
5173
|
-
|
|
5174
|
-
|
|
5175
|
-
|
|
5176
|
-
|
|
5177
|
-
|
|
5178
|
-
|
|
5179
|
-
[k: string]: unknown | undefined;
|
|
5180
|
-
},
|
|
5181
|
-
...{
|
|
5182
|
-
type: UIDType;
|
|
5183
|
-
/**
|
|
5184
|
-
* Universal ID value
|
|
5185
|
-
*/
|
|
5186
|
-
value: string;
|
|
5187
|
-
[k: string]: unknown | undefined;
|
|
5188
|
-
}[]
|
|
5189
|
-
];
|
|
4986
|
+
uids?: {
|
|
4987
|
+
type: UIDType;
|
|
4988
|
+
/**
|
|
4989
|
+
* Universal ID value
|
|
4990
|
+
*/
|
|
4991
|
+
value: string;
|
|
4992
|
+
}[];
|
|
5190
4993
|
ext?: ExtensionObject;
|
|
5191
|
-
[k: string]: unknown | undefined;
|
|
5192
4994
|
};
|
|
5193
4995
|
/**
|
|
5194
4996
|
* Universal ID type
|
|
@@ -5487,20 +5289,21 @@ export interface CreativeManifest {
|
|
|
5487
5289
|
format_id: FormatID;
|
|
5488
5290
|
/**
|
|
5489
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.
|
|
5490
|
-
*
|
|
5491
|
-
* @minItems 1
|
|
5492
5292
|
*/
|
|
5493
|
-
catalogs?:
|
|
5293
|
+
catalogs?: Catalog[];
|
|
5494
5294
|
/**
|
|
5495
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.
|
|
5496
5296
|
*
|
|
5497
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.
|
|
5498
5298
|
*/
|
|
5499
5299
|
assets: {
|
|
5500
|
-
|
|
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;
|
|
5501
5305
|
};
|
|
5502
5306
|
ext?: ExtensionObject;
|
|
5503
|
-
[k: string]: unknown | undefined;
|
|
5504
5307
|
}
|
|
5505
5308
|
/**
|
|
5506
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'}).
|
|
@@ -5538,7 +5341,6 @@ export interface WebhookAsset {
|
|
|
5538
5341
|
*/
|
|
5539
5342
|
api_key_header?: string;
|
|
5540
5343
|
};
|
|
5541
|
-
[k: string]: unknown | undefined;
|
|
5542
5344
|
}
|
|
5543
5345
|
/**
|
|
5544
5346
|
* CSS stylesheet asset
|
|
@@ -5584,13 +5386,11 @@ export interface CreativeBrief {
|
|
|
5584
5386
|
* Key messages to communicate in priority order
|
|
5585
5387
|
*/
|
|
5586
5388
|
key_messages?: string[];
|
|
5587
|
-
[k: string]: unknown | undefined;
|
|
5588
5389
|
};
|
|
5589
5390
|
/**
|
|
5590
5391
|
* Visual and strategic reference materials such as mood boards, product shots, example creatives, and strategy documents
|
|
5591
5392
|
*/
|
|
5592
5393
|
reference_assets?: ReferenceAsset[];
|
|
5593
|
-
[k: string]: unknown | undefined;
|
|
5594
5394
|
}
|
|
5595
5395
|
/**
|
|
5596
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.
|
|
@@ -5608,7 +5408,6 @@ export interface ReferenceAsset {
|
|
|
5608
5408
|
* Human-readable description of the asset and how it should inform creative generation
|
|
5609
5409
|
*/
|
|
5610
5410
|
description?: string;
|
|
5611
|
-
[k: string]: unknown | undefined;
|
|
5612
5411
|
}
|
|
5613
5412
|
/**
|
|
5614
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.
|
|
@@ -5748,20 +5547,21 @@ export interface CreativeManifest1 {
|
|
|
5748
5547
|
format_id: FormatID;
|
|
5749
5548
|
/**
|
|
5750
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.
|
|
5751
|
-
*
|
|
5752
|
-
* @minItems 1
|
|
5753
5550
|
*/
|
|
5754
|
-
catalogs?:
|
|
5551
|
+
catalogs?: Catalog[];
|
|
5755
5552
|
/**
|
|
5756
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.
|
|
5757
5554
|
*
|
|
5758
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.
|
|
5759
5556
|
*/
|
|
5760
5557
|
assets: {
|
|
5761
|
-
|
|
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;
|
|
5762
5563
|
};
|
|
5763
5564
|
ext?: ExtensionObject;
|
|
5764
|
-
[k: string]: unknown | undefined;
|
|
5765
5565
|
}
|
|
5766
5566
|
/**
|
|
5767
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.
|
|
@@ -5815,7 +5615,6 @@ export type PreviewRender = {
|
|
|
5815
5615
|
*/
|
|
5816
5616
|
csp_policy?: string;
|
|
5817
5617
|
};
|
|
5818
|
-
[k: string]: unknown | undefined;
|
|
5819
5618
|
} | {
|
|
5820
5619
|
/**
|
|
5821
5620
|
* Unique identifier for this rendered piece within the variant
|
|
@@ -5861,7 +5660,6 @@ export type PreviewRender = {
|
|
|
5861
5660
|
*/
|
|
5862
5661
|
csp_policy?: string;
|
|
5863
5662
|
};
|
|
5864
|
-
[k: string]: unknown | undefined;
|
|
5865
5663
|
} | {
|
|
5866
5664
|
/**
|
|
5867
5665
|
* Unique identifier for this rendered piece within the variant
|
|
@@ -5911,7 +5709,6 @@ export type PreviewRender = {
|
|
|
5911
5709
|
*/
|
|
5912
5710
|
csp_policy?: string;
|
|
5913
5711
|
};
|
|
5914
|
-
[k: string]: unknown | undefined;
|
|
5915
5712
|
};
|
|
5916
5713
|
/**
|
|
5917
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.
|
|
@@ -6106,7 +5903,6 @@ export type CreativeVariant = DeliveryMetrics & {
|
|
|
6106
5903
|
artifact_id: string;
|
|
6107
5904
|
};
|
|
6108
5905
|
ext?: ExtensionObject;
|
|
6109
|
-
[k: string]: unknown | undefined;
|
|
6110
5906
|
};
|
|
6111
5907
|
};
|
|
6112
5908
|
/**
|
|
@@ -6266,7 +6062,6 @@ export type Destination = {
|
|
|
6266
6062
|
* Optional account identifier on the platform
|
|
6267
6063
|
*/
|
|
6268
6064
|
account?: string;
|
|
6269
|
-
[k: string]: unknown | undefined;
|
|
6270
6065
|
} | {
|
|
6271
6066
|
/**
|
|
6272
6067
|
* Discriminator indicating this is an agent URL-based deployment
|
|
@@ -6280,7 +6075,6 @@ export type Destination = {
|
|
|
6280
6075
|
* Optional account identifier on the agent
|
|
6281
6076
|
*/
|
|
6282
6077
|
account?: string;
|
|
6283
|
-
[k: string]: unknown | undefined;
|
|
6284
6078
|
};
|
|
6285
6079
|
/**
|
|
6286
6080
|
* Types of signal catalogs available for audience targeting
|
|
@@ -6292,16 +6086,12 @@ export type SignalCatalogType = 'marketplace' | 'custom' | 'owned';
|
|
|
6292
6086
|
export interface SignalFilters {
|
|
6293
6087
|
/**
|
|
6294
6088
|
* Filter by catalog type
|
|
6295
|
-
*
|
|
6296
|
-
* @minItems 1
|
|
6297
6089
|
*/
|
|
6298
|
-
catalog_types?:
|
|
6090
|
+
catalog_types?: SignalCatalogType[];
|
|
6299
6091
|
/**
|
|
6300
6092
|
* Filter by specific data providers
|
|
6301
|
-
*
|
|
6302
|
-
* @minItems 1
|
|
6303
6093
|
*/
|
|
6304
|
-
data_providers?:
|
|
6094
|
+
data_providers?: string[];
|
|
6305
6095
|
/**
|
|
6306
6096
|
* Maximum CPM price filter
|
|
6307
6097
|
*/
|
|
@@ -6310,7 +6100,6 @@ export interface SignalFilters {
|
|
|
6310
6100
|
* Minimum coverage requirement
|
|
6311
6101
|
*/
|
|
6312
6102
|
min_coverage_percentage?: number;
|
|
6313
|
-
[k: string]: unknown | undefined;
|
|
6314
6103
|
}
|
|
6315
6104
|
/**
|
|
6316
6105
|
* Standard cursor-based pagination parameters for list operations
|
|
@@ -6348,7 +6137,6 @@ export type Deployment = {
|
|
|
6348
6137
|
* Timestamp when activation completed (if is_live=true)
|
|
6349
6138
|
*/
|
|
6350
6139
|
deployed_at?: string;
|
|
6351
|
-
[k: string]: unknown | undefined;
|
|
6352
6140
|
} | {
|
|
6353
6141
|
/**
|
|
6354
6142
|
* Discriminator indicating this is an agent URL-based deployment
|
|
@@ -6375,7 +6163,6 @@ export type Deployment = {
|
|
|
6375
6163
|
* Timestamp when activation completed (if is_live=true)
|
|
6376
6164
|
*/
|
|
6377
6165
|
deployed_at?: string;
|
|
6378
|
-
[k: string]: unknown | undefined;
|
|
6379
6166
|
};
|
|
6380
6167
|
/**
|
|
6381
6168
|
* The key to use for targeting. Only present if is_live=true AND requester has access to this deployment.
|
|
@@ -6389,7 +6176,6 @@ export type ActivationKey = {
|
|
|
6389
6176
|
* The platform-specific segment identifier to use in campaign targeting
|
|
6390
6177
|
*/
|
|
6391
6178
|
segment_id: string;
|
|
6392
|
-
[k: string]: unknown | undefined;
|
|
6393
6179
|
} | {
|
|
6394
6180
|
/**
|
|
6395
6181
|
* Key-value pair based targeting
|
|
@@ -6403,7 +6189,6 @@ export type ActivationKey = {
|
|
|
6403
6189
|
* The targeting parameter value
|
|
6404
6190
|
*/
|
|
6405
6191
|
value: string;
|
|
6406
|
-
[k: string]: unknown | undefined;
|
|
6407
6192
|
};
|
|
6408
6193
|
/**
|
|
6409
6194
|
* The key to use for targeting. Only present if is_live=true AND requester has access to this deployment.
|
|
@@ -6563,10 +6348,8 @@ export interface PublisherTagsSource {
|
|
|
6563
6348
|
publisher_domain: string;
|
|
6564
6349
|
/**
|
|
6565
6350
|
* Property tags from the publisher's adagents.json. Selects all properties with these tags.
|
|
6566
|
-
*
|
|
6567
|
-
* @minItems 1
|
|
6568
6351
|
*/
|
|
6569
|
-
tags:
|
|
6352
|
+
tags: PropertyTag[];
|
|
6570
6353
|
}
|
|
6571
6354
|
/**
|
|
6572
6355
|
* Select specific properties from a publisher by ID
|
|
@@ -6582,10 +6365,8 @@ export interface PublisherPropertyIDsSource {
|
|
|
6582
6365
|
publisher_domain: string;
|
|
6583
6366
|
/**
|
|
6584
6367
|
* Specific property IDs from the publisher's adagents.json
|
|
6585
|
-
*
|
|
6586
|
-
* @minItems 1
|
|
6587
6368
|
*/
|
|
6588
|
-
property_ids:
|
|
6369
|
+
property_ids: PropertyID[];
|
|
6589
6370
|
}
|
|
6590
6371
|
/**
|
|
6591
6372
|
* Select properties by direct identifiers (domains, app IDs, etc.) without publisher context
|
|
@@ -6597,10 +6378,8 @@ export interface DirectIdentifiersSource {
|
|
|
6597
6378
|
selection_type: 'identifiers';
|
|
6598
6379
|
/**
|
|
6599
6380
|
* Direct property identifiers (domains, app IDs, etc.)
|
|
6600
|
-
*
|
|
6601
|
-
* @minItems 1
|
|
6602
6381
|
*/
|
|
6603
|
-
identifiers:
|
|
6382
|
+
identifiers: Identifier[];
|
|
6604
6383
|
}
|
|
6605
6384
|
/**
|
|
6606
6385
|
* A property identifier with type and value. Used to identify properties across platforms (domains, app store IDs, etc.).
|
|
@@ -6608,34 +6387,24 @@ export interface DirectIdentifiersSource {
|
|
|
6608
6387
|
export interface PropertyListFilters {
|
|
6609
6388
|
/**
|
|
6610
6389
|
* Property must have feature data for ALL listed countries (ISO codes). Required.
|
|
6611
|
-
*
|
|
6612
|
-
* @minItems 1
|
|
6613
6390
|
*/
|
|
6614
|
-
countries_all:
|
|
6391
|
+
countries_all: string[];
|
|
6615
6392
|
/**
|
|
6616
6393
|
* Property must support ANY of the listed channels. Required.
|
|
6617
|
-
*
|
|
6618
|
-
* @minItems 1
|
|
6619
6394
|
*/
|
|
6620
|
-
channels_any:
|
|
6395
|
+
channels_any: MediaChannel[];
|
|
6621
6396
|
/**
|
|
6622
6397
|
* Filter to these property types
|
|
6623
|
-
*
|
|
6624
|
-
* @minItems 1
|
|
6625
6398
|
*/
|
|
6626
|
-
property_types?:
|
|
6399
|
+
property_types?: PropertyType[];
|
|
6627
6400
|
/**
|
|
6628
6401
|
* Feature-based requirements. Property must pass ALL requirements (AND logic).
|
|
6629
|
-
*
|
|
6630
|
-
* @minItems 1
|
|
6631
6402
|
*/
|
|
6632
|
-
feature_requirements?:
|
|
6403
|
+
feature_requirements?: FeatureRequirement[];
|
|
6633
6404
|
/**
|
|
6634
6405
|
* Identifiers to always exclude from results
|
|
6635
|
-
*
|
|
6636
|
-
* @minItems 1
|
|
6637
6406
|
*/
|
|
6638
|
-
exclude_identifiers?:
|
|
6407
|
+
exclude_identifiers?: Identifier[];
|
|
6639
6408
|
}
|
|
6640
6409
|
/**
|
|
6641
6410
|
* A feature-based requirement for property filtering. Use min_value/max_value for quantitative features, allowed_values for binary/categorical features.
|
|
@@ -6655,10 +6424,8 @@ export interface FeatureRequirement {
|
|
|
6655
6424
|
max_value?: number;
|
|
6656
6425
|
/**
|
|
6657
6426
|
* Values that pass the requirement (for binary/categorical features)
|
|
6658
|
-
*
|
|
6659
|
-
* @minItems 1
|
|
6660
6427
|
*/
|
|
6661
|
-
allowed_values?:
|
|
6428
|
+
allowed_values?: unknown[];
|
|
6662
6429
|
/**
|
|
6663
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).
|
|
6664
6431
|
*/
|
|
@@ -6963,9 +6730,7 @@ export type AssetAccess = {
|
|
|
6963
6730
|
/**
|
|
6964
6731
|
* Service account credentials
|
|
6965
6732
|
*/
|
|
6966
|
-
credentials?: {
|
|
6967
|
-
[k: string]: unknown | undefined;
|
|
6968
|
-
};
|
|
6733
|
+
credentials?: {};
|
|
6969
6734
|
} | {
|
|
6970
6735
|
method: 'signed_url';
|
|
6971
6736
|
};
|
|
@@ -6983,22 +6748,16 @@ export interface ContentStandards {
|
|
|
6983
6748
|
name?: string;
|
|
6984
6749
|
/**
|
|
6985
6750
|
* ISO 3166-1 alpha-2 country codes. Standards apply in ALL listed countries (AND logic).
|
|
6986
|
-
*
|
|
6987
|
-
* @minItems 1
|
|
6988
6751
|
*/
|
|
6989
|
-
countries_all?:
|
|
6752
|
+
countries_all?: string[];
|
|
6990
6753
|
/**
|
|
6991
6754
|
* Advertising channels. Standards apply to ANY of the listed channels (OR logic).
|
|
6992
|
-
*
|
|
6993
|
-
* @minItems 1
|
|
6994
6755
|
*/
|
|
6995
|
-
channels_any?:
|
|
6756
|
+
channels_any?: MediaChannel[];
|
|
6996
6757
|
/**
|
|
6997
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.
|
|
6998
|
-
*
|
|
6999
|
-
* @minItems 1
|
|
7000
6759
|
*/
|
|
7001
|
-
languages_any?:
|
|
6760
|
+
languages_any?: string[];
|
|
7002
6761
|
/**
|
|
7003
6762
|
* Natural language policy describing acceptable and unacceptable content contexts. Used by LLMs and human reviewers to make judgments.
|
|
7004
6763
|
*/
|
|
@@ -7150,20 +6909,15 @@ export interface Artifact {
|
|
|
7150
6909
|
/**
|
|
7151
6910
|
* Open Graph protocol metadata
|
|
7152
6911
|
*/
|
|
7153
|
-
open_graph?: {
|
|
7154
|
-
[k: string]: unknown | undefined;
|
|
7155
|
-
};
|
|
6912
|
+
open_graph?: {};
|
|
7156
6913
|
/**
|
|
7157
6914
|
* Twitter Card metadata
|
|
7158
6915
|
*/
|
|
7159
|
-
twitter_card?: {
|
|
7160
|
-
[k: string]: unknown | undefined;
|
|
7161
|
-
};
|
|
6916
|
+
twitter_card?: {};
|
|
7162
6917
|
/**
|
|
7163
6918
|
* JSON-LD structured data (schema.org)
|
|
7164
6919
|
*/
|
|
7165
6920
|
json_ld?: {}[];
|
|
7166
|
-
[k: string]: unknown | undefined;
|
|
7167
6921
|
};
|
|
7168
6922
|
/**
|
|
7169
6923
|
* Platform-specific identifiers for this artifact
|
|
@@ -7189,9 +6943,7 @@ export interface Artifact {
|
|
|
7189
6943
|
* RSS feed URL
|
|
7190
6944
|
*/
|
|
7191
6945
|
rss_url?: string;
|
|
7192
|
-
[k: string]: unknown | undefined;
|
|
7193
6946
|
};
|
|
7194
|
-
[k: string]: unknown | undefined;
|
|
7195
6947
|
}
|
|
7196
6948
|
/**
|
|
7197
6949
|
* Identifier for the property where this artifact appears
|
|
@@ -7856,9 +7608,7 @@ export interface CreativeFeatureResult {
|
|
|
7856
7608
|
/**
|
|
7857
7609
|
* Additional vendor-specific details about this evaluation
|
|
7858
7610
|
*/
|
|
7859
|
-
details?: {
|
|
7860
|
-
[k: string]: unknown | undefined;
|
|
7861
|
-
};
|
|
7611
|
+
details?: {};
|
|
7862
7612
|
ext?: ExtensionObject;
|
|
7863
7613
|
}
|
|
7864
7614
|
/**
|
|
@@ -8056,7 +7806,6 @@ export interface SIIdentity {
|
|
|
8056
7806
|
* Version of policy acknowledged
|
|
8057
7807
|
*/
|
|
8058
7808
|
brand_policy_version?: string;
|
|
8059
|
-
[k: string]: unknown | undefined;
|
|
8060
7809
|
};
|
|
8061
7810
|
/**
|
|
8062
7811
|
* User data (only present if consent_granted is true)
|
|
@@ -8087,15 +7836,12 @@ export interface SIIdentity {
|
|
|
8087
7836
|
state?: string;
|
|
8088
7837
|
postal_code?: string;
|
|
8089
7838
|
country?: string;
|
|
8090
|
-
[k: string]: unknown | undefined;
|
|
8091
7839
|
};
|
|
8092
|
-
[k: string]: unknown | undefined;
|
|
8093
7840
|
};
|
|
8094
7841
|
/**
|
|
8095
7842
|
* Session ID for anonymous users (when consent_granted is false)
|
|
8096
7843
|
*/
|
|
8097
7844
|
anonymous_session_id?: string;
|
|
8098
|
-
[k: string]: unknown | undefined;
|
|
8099
7845
|
}
|
|
8100
7846
|
/**
|
|
8101
7847
|
* What capabilities the host supports
|
|
@@ -8121,7 +7867,6 @@ export interface SICapabilities {
|
|
|
8121
7867
|
* Brand voice identifier
|
|
8122
7868
|
*/
|
|
8123
7869
|
voice_id?: string;
|
|
8124
|
-
[k: string]: unknown | undefined;
|
|
8125
7870
|
};
|
|
8126
7871
|
/**
|
|
8127
7872
|
* Brand video content playback
|
|
@@ -8135,7 +7880,6 @@ export interface SICapabilities {
|
|
|
8135
7880
|
* Maximum video duration
|
|
8136
7881
|
*/
|
|
8137
7882
|
max_duration_seconds?: number;
|
|
8138
|
-
[k: string]: unknown | undefined;
|
|
8139
7883
|
};
|
|
8140
7884
|
/**
|
|
8141
7885
|
* Animated video presence with brand avatar
|
|
@@ -8149,9 +7893,7 @@ export interface SICapabilities {
|
|
|
8149
7893
|
* Brand avatar identifier
|
|
8150
7894
|
*/
|
|
8151
7895
|
avatar_id?: string;
|
|
8152
|
-
[k: string]: unknown | undefined;
|
|
8153
7896
|
};
|
|
8154
|
-
[k: string]: unknown | undefined;
|
|
8155
7897
|
};
|
|
8156
7898
|
/**
|
|
8157
7899
|
* Visual components supported
|
|
@@ -8164,10 +7906,7 @@ export interface SICapabilities {
|
|
|
8164
7906
|
/**
|
|
8165
7907
|
* Platform-specific extensions (chatgpt_apps_sdk, maps, forms, etc.)
|
|
8166
7908
|
*/
|
|
8167
|
-
extensions?: {
|
|
8168
|
-
[k: string]: unknown | undefined;
|
|
8169
|
-
};
|
|
8170
|
-
[k: string]: unknown | undefined;
|
|
7909
|
+
extensions?: {};
|
|
8171
7910
|
};
|
|
8172
7911
|
/**
|
|
8173
7912
|
* Commerce capabilities
|
|
@@ -8177,7 +7916,6 @@ export interface SICapabilities {
|
|
|
8177
7916
|
* Supports ACP (Agentic Commerce Protocol) checkout handoff
|
|
8178
7917
|
*/
|
|
8179
7918
|
acp_checkout?: boolean;
|
|
8180
|
-
[k: string]: unknown | undefined;
|
|
8181
7919
|
};
|
|
8182
7920
|
/**
|
|
8183
7921
|
* A2UI (Agent-to-UI) capabilities
|
|
@@ -8191,13 +7929,11 @@ export interface SICapabilities {
|
|
|
8191
7929
|
* Supported A2UI component catalogs (e.g., 'si-standard', 'standard')
|
|
8192
7930
|
*/
|
|
8193
7931
|
catalogs?: string[];
|
|
8194
|
-
[k: string]: unknown | undefined;
|
|
8195
7932
|
};
|
|
8196
7933
|
/**
|
|
8197
7934
|
* Supports MCP Apps for rendering A2UI surfaces in iframes
|
|
8198
7935
|
*/
|
|
8199
7936
|
mcp_apps?: boolean;
|
|
8200
|
-
[k: string]: unknown | undefined;
|
|
8201
7937
|
}
|
|
8202
7938
|
/**
|
|
8203
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.
|
|
@@ -8215,10 +7951,7 @@ export type SIUIElement = {
|
|
|
8215
7951
|
/**
|
|
8216
7952
|
* Component-specific data
|
|
8217
7953
|
*/
|
|
8218
|
-
data?: {
|
|
8219
|
-
[k: string]: unknown | undefined;
|
|
8220
|
-
};
|
|
8221
|
-
[k: string]: unknown | undefined;
|
|
7954
|
+
data?: {};
|
|
8222
7955
|
};
|
|
8223
7956
|
/**
|
|
8224
7957
|
* Brand agent's response to session initiation
|
|
@@ -8382,10 +8115,7 @@ export interface A2UISurface {
|
|
|
8382
8115
|
/**
|
|
8383
8116
|
* Application data that components can bind to
|
|
8384
8117
|
*/
|
|
8385
|
-
dataModel?: {
|
|
8386
|
-
[k: string]: unknown | undefined;
|
|
8387
|
-
};
|
|
8388
|
-
[k: string]: unknown | undefined;
|
|
8118
|
+
dataModel?: {};
|
|
8389
8119
|
}
|
|
8390
8120
|
/**
|
|
8391
8121
|
* A component in an A2UI surface
|
|
@@ -8408,7 +8138,6 @@ export interface A2UIComponent {
|
|
|
8408
8138
|
*/
|
|
8409
8139
|
[k: string]: {} | undefined;
|
|
8410
8140
|
};
|
|
8411
|
-
[k: string]: unknown | undefined;
|
|
8412
8141
|
}
|
|
8413
8142
|
/**
|
|
8414
8143
|
* Standard error structure for task-specific errors and warnings
|