@adcp/client 3.7.0 → 3.8.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/bin/adcp.js +42 -3
- package/dist/lib/adapters/content-standards-adapter.d.ts +106 -0
- package/dist/lib/adapters/content-standards-adapter.d.ts.map +1 -0
- package/dist/lib/adapters/content-standards-adapter.js +199 -0
- package/dist/lib/adapters/content-standards-adapter.js.map +1 -0
- package/dist/lib/adapters/index.d.ts +18 -0
- package/dist/lib/adapters/index.d.ts.map +1 -0
- package/dist/lib/adapters/index.js +41 -0
- package/dist/lib/adapters/index.js.map +1 -0
- package/dist/lib/adapters/property-list-adapter.d.ts +123 -0
- package/dist/lib/adapters/property-list-adapter.d.ts.map +1 -0
- package/dist/lib/adapters/property-list-adapter.js +212 -0
- package/dist/lib/adapters/property-list-adapter.js.map +1 -0
- package/dist/lib/adapters/proposal-manager.d.ts +142 -0
- package/dist/lib/adapters/proposal-manager.d.ts.map +1 -0
- package/dist/lib/adapters/proposal-manager.js +184 -0
- package/dist/lib/adapters/proposal-manager.js.map +1 -0
- package/dist/lib/adapters/si-session-manager.d.ts +161 -0
- package/dist/lib/adapters/si-session-manager.d.ts.map +1 -0
- package/dist/lib/adapters/si-session-manager.js +320 -0
- package/dist/lib/adapters/si-session-manager.js.map +1 -0
- package/dist/lib/agents/index.generated.d.ts +109 -33
- package/dist/lib/agents/index.generated.d.ts.map +1 -1
- package/dist/lib/agents/index.generated.js +162 -36
- package/dist/lib/agents/index.generated.js.map +1 -1
- package/dist/lib/core/ADCPMultiAgentClient.d.ts +5 -7
- package/dist/lib/core/ADCPMultiAgentClient.d.ts.map +1 -1
- package/dist/lib/core/ADCPMultiAgentClient.js +47 -35
- package/dist/lib/core/ADCPMultiAgentClient.js.map +1 -1
- package/dist/lib/core/AgentClient.d.ts +13 -6
- package/dist/lib/core/AgentClient.d.ts.map +1 -1
- package/dist/lib/core/AgentClient.js +23 -13
- package/dist/lib/core/AgentClient.js.map +1 -1
- package/dist/lib/core/AsyncHandler.d.ts +1 -2
- package/dist/lib/core/AsyncHandler.d.ts.map +1 -1
- package/dist/lib/core/AsyncHandler.js +0 -3
- package/dist/lib/core/AsyncHandler.js.map +1 -1
- package/dist/lib/core/ResponseValidator.d.ts.map +1 -1
- package/dist/lib/core/ResponseValidator.js +0 -1
- package/dist/lib/core/ResponseValidator.js.map +1 -1
- package/dist/lib/core/SingleAgentClient.d.ts +102 -10
- package/dist/lib/core/SingleAgentClient.d.ts.map +1 -1
- package/dist/lib/core/SingleAgentClient.js +244 -17
- package/dist/lib/core/SingleAgentClient.js.map +1 -1
- package/dist/lib/discovery/property-crawler.d.ts +13 -2
- package/dist/lib/discovery/property-crawler.d.ts.map +1 -1
- package/dist/lib/discovery/property-crawler.js +48 -13
- package/dist/lib/discovery/property-crawler.js.map +1 -1
- package/dist/lib/discovery/types.d.ts +7 -1
- package/dist/lib/discovery/types.d.ts.map +1 -1
- package/dist/lib/index.d.ts +13 -4
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +79 -5
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/types/core.generated.d.ts +507 -239
- package/dist/lib/types/core.generated.d.ts.map +1 -1
- package/dist/lib/types/core.generated.js +2 -2
- package/dist/lib/types/core.generated.js.map +1 -1
- package/dist/lib/types/schemas.generated.d.ts +7246 -2278
- package/dist/lib/types/schemas.generated.d.ts.map +1 -1
- package/dist/lib/types/schemas.generated.js +1376 -460
- package/dist/lib/types/schemas.generated.js.map +1 -1
- package/dist/lib/types/tools.generated.d.ts +3202 -551
- package/dist/lib/types/tools.generated.d.ts.map +1 -1
- package/dist/lib/types/tools.generated.js +1 -1
- package/dist/lib/types/tools.generated.js.map +1 -1
- package/dist/lib/utils/capabilities.d.ts +98 -0
- package/dist/lib/utils/capabilities.d.ts.map +1 -0
- package/dist/lib/utils/capabilities.js +155 -0
- package/dist/lib/utils/capabilities.js.map +1 -0
- package/dist/lib/utils/creative-adapter.d.ts +87 -0
- package/dist/lib/utils/creative-adapter.d.ts.map +1 -0
- package/dist/lib/utils/creative-adapter.js +125 -0
- package/dist/lib/utils/creative-adapter.js.map +1 -0
- package/dist/lib/utils/format-assets.d.ts +4 -16
- package/dist/lib/utils/format-assets.d.ts.map +1 -1
- package/dist/lib/utils/format-assets.js +16 -14
- package/dist/lib/utils/format-assets.js.map +1 -1
- package/dist/lib/utils/format-renders.d.ts +82 -0
- package/dist/lib/utils/format-renders.d.ts.map +1 -0
- package/dist/lib/utils/format-renders.js +137 -0
- package/dist/lib/utils/format-renders.js.map +1 -0
- package/dist/lib/utils/index.d.ts +2 -1
- package/dist/lib/utils/index.d.ts.map +1 -1
- package/dist/lib/utils/index.js +13 -3
- package/dist/lib/utils/index.js.map +1 -1
- package/dist/lib/utils/preview-normalizer.d.ts +109 -0
- package/dist/lib/utils/preview-normalizer.d.ts.map +1 -0
- package/dist/lib/utils/preview-normalizer.js +122 -0
- package/dist/lib/utils/preview-normalizer.js.map +1 -0
- package/dist/lib/utils/pricing-adapter.d.ts +121 -0
- package/dist/lib/utils/pricing-adapter.d.ts.map +1 -0
- package/dist/lib/utils/pricing-adapter.js +213 -0
- package/dist/lib/utils/pricing-adapter.js.map +1 -0
- package/dist/lib/utils/response-unwrapper.d.ts +2 -2
- package/dist/lib/utils/response-unwrapper.d.ts.map +1 -1
- package/dist/lib/utils/response-unwrapper.js +2 -2
- package/dist/lib/utils/response-unwrapper.js.map +1 -1
- package/dist/lib/version.d.ts +15 -7
- package/dist/lib/version.d.ts.map +1 -1
- package/dist/lib/version.js +20 -11
- package/dist/lib/version.js.map +1 -1
- package/package.json +3 -3
|
@@ -15,19 +15,32 @@ export type DeliveryType = 'guaranteed' | 'non_guaranteed';
|
|
|
15
15
|
*/
|
|
16
16
|
export type FormatCategory = 'audio' | 'video' | 'display' | 'native' | 'dooh' | 'rich_media' | 'universal';
|
|
17
17
|
/**
|
|
18
|
-
*
|
|
18
|
+
* Metro classification system
|
|
19
19
|
*/
|
|
20
|
-
export type
|
|
20
|
+
export type MetroAreaSystem = 'nielsen_dma' | 'uk_itl1' | 'uk_itl2' | 'eurostat_nuts2' | 'custom';
|
|
21
|
+
/**
|
|
22
|
+
* Standardized advertising media channels describing how buyers allocate budget. Channels are planning abstractions, not technical substrates. See the Media Channel Taxonomy specification for detailed definitions.
|
|
23
|
+
*/
|
|
24
|
+
export type MediaChannel = 'display' | 'olv' | 'social' | 'search' | 'ctv' | 'linear_tv' | 'radio' | 'streaming_audio' | 'podcast' | 'dooh' | 'ooh' | 'print' | 'cinema' | 'email' | 'gaming' | 'retail_media' | 'influencer' | 'affiliate' | 'product_placement';
|
|
25
|
+
/**
|
|
26
|
+
* Geographic targeting level (country, region, metro, postal_area)
|
|
27
|
+
*/
|
|
28
|
+
export type GeographicTargetingLevel = 'country' | 'region' | 'metro' | 'postal_area';
|
|
21
29
|
/**
|
|
22
30
|
* Request parameters for discovering available advertising products
|
|
23
31
|
*/
|
|
24
32
|
export interface GetProductsRequest {
|
|
25
33
|
/**
|
|
26
|
-
* Natural language description of campaign requirements
|
|
34
|
+
* Natural language description of campaign requirements. When refining a proposal, can include instructions like 'focus more on German speakers' or 'increase mobile allocation'.
|
|
27
35
|
*/
|
|
28
36
|
brief?: string;
|
|
37
|
+
/**
|
|
38
|
+
* Optional proposal ID to refine. When provided with a brief, the publisher will use the brief as refinement instructions for the specified proposal and return an updated version.
|
|
39
|
+
*/
|
|
40
|
+
proposal_id?: string;
|
|
29
41
|
brand_manifest?: BrandManifestReference;
|
|
30
42
|
filters?: ProductFilters;
|
|
43
|
+
property_list?: PropertyListReference;
|
|
31
44
|
context?: ContextObject;
|
|
32
45
|
ext?: ExtensionObject;
|
|
33
46
|
}
|
|
@@ -39,6 +52,10 @@ export interface BrandManifest {
|
|
|
39
52
|
* Primary brand URL for context and asset discovery. Creative agents can infer brand information from this URL.
|
|
40
53
|
*/
|
|
41
54
|
url?: string;
|
|
55
|
+
/**
|
|
56
|
+
* URL to the brand's privacy policy. Used for consumer consent flows when personal data may be shared with the advertiser. AI platforms can use this to present explicit privacy choices to users before data handoff.
|
|
57
|
+
*/
|
|
58
|
+
privacy_policy_url?: string;
|
|
42
59
|
/**
|
|
43
60
|
* Brand or business name
|
|
44
61
|
*/
|
|
@@ -110,6 +127,44 @@ export interface BrandManifest {
|
|
|
110
127
|
* Brand voice and messaging tone (e.g., 'professional', 'casual', 'humorous', 'trustworthy', 'innovative')
|
|
111
128
|
*/
|
|
112
129
|
tone?: string;
|
|
130
|
+
/**
|
|
131
|
+
* Brand voice configuration for audio/conversational experiences
|
|
132
|
+
*/
|
|
133
|
+
voice?: {
|
|
134
|
+
/**
|
|
135
|
+
* TTS provider (e.g., 'elevenlabs', 'openai', 'amazon_polly')
|
|
136
|
+
*/
|
|
137
|
+
provider?: string;
|
|
138
|
+
/**
|
|
139
|
+
* Provider-specific voice identifier
|
|
140
|
+
*/
|
|
141
|
+
voice_id?: string;
|
|
142
|
+
/**
|
|
143
|
+
* Provider-specific voice settings (speed, pitch, etc.)
|
|
144
|
+
*/
|
|
145
|
+
settings?: {
|
|
146
|
+
[k: string]: unknown | undefined;
|
|
147
|
+
};
|
|
148
|
+
};
|
|
149
|
+
/**
|
|
150
|
+
* Brand avatar configuration for visual conversational experiences
|
|
151
|
+
*/
|
|
152
|
+
avatar?: {
|
|
153
|
+
/**
|
|
154
|
+
* Avatar provider (e.g., 'd-id', 'heygen', 'synthesia')
|
|
155
|
+
*/
|
|
156
|
+
provider?: string;
|
|
157
|
+
/**
|
|
158
|
+
* Provider-specific avatar identifier
|
|
159
|
+
*/
|
|
160
|
+
avatar_id?: string;
|
|
161
|
+
/**
|
|
162
|
+
* Provider-specific avatar settings
|
|
163
|
+
*/
|
|
164
|
+
settings?: {
|
|
165
|
+
[k: string]: unknown | undefined;
|
|
166
|
+
};
|
|
167
|
+
};
|
|
113
168
|
/**
|
|
114
169
|
* Brand tagline or slogan
|
|
115
170
|
*/
|
|
@@ -163,9 +218,9 @@ export interface BrandManifest {
|
|
|
163
218
|
* Additional asset-specific metadata
|
|
164
219
|
*/
|
|
165
220
|
metadata?: {
|
|
166
|
-
[k: string]: unknown;
|
|
221
|
+
[k: string]: unknown | undefined;
|
|
167
222
|
};
|
|
168
|
-
[k: string]: unknown;
|
|
223
|
+
[k: string]: unknown | undefined;
|
|
169
224
|
}[];
|
|
170
225
|
/**
|
|
171
226
|
* Product catalog information for e-commerce advertisers. Enables SKU-level creative generation and product selection.
|
|
@@ -176,9 +231,9 @@ export interface BrandManifest {
|
|
|
176
231
|
*/
|
|
177
232
|
feed_url: string;
|
|
178
233
|
/**
|
|
179
|
-
* Format of the product feed
|
|
234
|
+
* Format of the product feed. Use 'openai_product_feed' for feeds conforming to the OpenAI Commerce Product Feed specification.
|
|
180
235
|
*/
|
|
181
|
-
feed_format?: 'google_merchant_center' | 'facebook_catalog' | 'custom';
|
|
236
|
+
feed_format?: 'google_merchant_center' | 'facebook_catalog' | 'openai_product_feed' | 'custom';
|
|
182
237
|
/**
|
|
183
238
|
* Product categories available in the catalog (for filtering)
|
|
184
239
|
*/
|
|
@@ -191,7 +246,24 @@ export interface BrandManifest {
|
|
|
191
246
|
* How frequently the product catalog is updated
|
|
192
247
|
*/
|
|
193
248
|
update_frequency?: 'realtime' | 'hourly' | 'daily' | 'weekly';
|
|
194
|
-
|
|
249
|
+
/**
|
|
250
|
+
* Agentic checkout endpoint configuration. Enables AI agents to complete purchases on behalf of users through a structured checkout API.
|
|
251
|
+
*/
|
|
252
|
+
agentic_checkout?: {
|
|
253
|
+
/**
|
|
254
|
+
* Base URL for checkout session API (e.g., https://merchant.com/api/checkout_sessions)
|
|
255
|
+
*/
|
|
256
|
+
endpoint: string;
|
|
257
|
+
/**
|
|
258
|
+
* Checkout API specification implemented by the endpoint
|
|
259
|
+
*/
|
|
260
|
+
spec: 'openai_agentic_checkout_v1';
|
|
261
|
+
/**
|
|
262
|
+
* Payment providers supported by this checkout endpoint
|
|
263
|
+
*/
|
|
264
|
+
supported_payment_providers?: string[];
|
|
265
|
+
};
|
|
266
|
+
[k: string]: unknown | undefined;
|
|
195
267
|
};
|
|
196
268
|
/**
|
|
197
269
|
* Legal disclaimers or required text that must appear in creatives
|
|
@@ -248,7 +320,7 @@ export interface BrandManifest {
|
|
|
248
320
|
*/
|
|
249
321
|
version?: string;
|
|
250
322
|
};
|
|
251
|
-
[k: string]: unknown;
|
|
323
|
+
[k: string]: unknown | undefined;
|
|
252
324
|
}
|
|
253
325
|
/**
|
|
254
326
|
* Structured filters for product discovery
|
|
@@ -256,7 +328,7 @@ export interface BrandManifest {
|
|
|
256
328
|
export interface ProductFilters {
|
|
257
329
|
delivery_type?: DeliveryType;
|
|
258
330
|
/**
|
|
259
|
-
* Filter
|
|
331
|
+
* Filter by pricing availability: true = products offering fixed pricing (at least one option with fixed_price), false = products offering auction pricing (at least one option without fixed_price). Products with both fixed and auction options match both true and false.
|
|
260
332
|
*/
|
|
261
333
|
is_fixed_price?: boolean;
|
|
262
334
|
/**
|
|
@@ -287,17 +359,46 @@ export interface ProductFilters {
|
|
|
287
359
|
* Budget range to filter appropriate products
|
|
288
360
|
*/
|
|
289
361
|
budget_range?: {
|
|
290
|
-
[k: string]: unknown;
|
|
362
|
+
[k: string]: unknown | undefined;
|
|
291
363
|
};
|
|
292
364
|
/**
|
|
293
|
-
* Filter by
|
|
365
|
+
* Filter by country coverage using ISO 3166-1 alpha-2 codes (e.g., ['US', 'CA', 'GB']). Works for all inventory types.
|
|
294
366
|
*/
|
|
295
367
|
countries?: string[];
|
|
368
|
+
/**
|
|
369
|
+
* 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.
|
|
370
|
+
*/
|
|
371
|
+
regions?: string[];
|
|
372
|
+
/**
|
|
373
|
+
* 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.
|
|
374
|
+
*/
|
|
375
|
+
metros?: {
|
|
376
|
+
system: MetroAreaSystem;
|
|
377
|
+
/**
|
|
378
|
+
* Metro code within the system (e.g., '501' for NYC DMA)
|
|
379
|
+
*/
|
|
380
|
+
code: string;
|
|
381
|
+
}[];
|
|
296
382
|
/**
|
|
297
383
|
* Filter by advertising channels (e.g., ['display', 'video', 'dooh'])
|
|
298
384
|
*/
|
|
299
|
-
channels?:
|
|
300
|
-
|
|
385
|
+
channels?: MediaChannel[];
|
|
386
|
+
/**
|
|
387
|
+
* Filter to products executable through specific agentic ad exchanges. URLs are canonical identifiers.
|
|
388
|
+
*/
|
|
389
|
+
required_axe_integrations?: string[];
|
|
390
|
+
required_features?: MediaBuyFeatures;
|
|
391
|
+
/**
|
|
392
|
+
* 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.
|
|
393
|
+
*/
|
|
394
|
+
required_geo_targeting?: {
|
|
395
|
+
level: GeographicTargetingLevel;
|
|
396
|
+
/**
|
|
397
|
+
* 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.
|
|
398
|
+
*/
|
|
399
|
+
system?: string;
|
|
400
|
+
}[];
|
|
401
|
+
[k: string]: unknown | undefined;
|
|
301
402
|
}
|
|
302
403
|
/**
|
|
303
404
|
* 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.
|
|
@@ -323,19 +424,54 @@ export interface FormatID {
|
|
|
323
424
|
* Duration in milliseconds for time-based formats (video, audio). When specified, creates a parameterized format ID. Omit to reference a template format without parameters.
|
|
324
425
|
*/
|
|
325
426
|
duration_ms?: number;
|
|
326
|
-
[k: string]: unknown;
|
|
427
|
+
[k: string]: unknown | undefined;
|
|
428
|
+
}
|
|
429
|
+
/**
|
|
430
|
+
* Filter to products from sellers supporting specific protocol features. Only features set to true are used for filtering.
|
|
431
|
+
*/
|
|
432
|
+
export interface MediaBuyFeatures {
|
|
433
|
+
/**
|
|
434
|
+
* Supports creatives provided inline in create_media_buy requests
|
|
435
|
+
*/
|
|
436
|
+
inline_creative_management?: boolean;
|
|
437
|
+
/**
|
|
438
|
+
* Honors property_list parameter in get_products to filter results to buyer-approved properties
|
|
439
|
+
*/
|
|
440
|
+
property_list_filtering?: boolean;
|
|
441
|
+
/**
|
|
442
|
+
* Full support for content_standards configuration including sampling rates and category filtering
|
|
443
|
+
*/
|
|
444
|
+
content_standards?: boolean;
|
|
445
|
+
[k: string]: boolean | undefined;
|
|
446
|
+
}
|
|
447
|
+
/**
|
|
448
|
+
* [AdCP 3.0] Reference to an externally managed property list. When provided, the sales agent should filter products to only those available on properties in the list.
|
|
449
|
+
*/
|
|
450
|
+
export interface PropertyListReference {
|
|
451
|
+
/**
|
|
452
|
+
* URL of the agent managing the property list
|
|
453
|
+
*/
|
|
454
|
+
agent_url: string;
|
|
455
|
+
/**
|
|
456
|
+
* Identifier for the property list within the agent
|
|
457
|
+
*/
|
|
458
|
+
list_id: string;
|
|
459
|
+
/**
|
|
460
|
+
* JWT or other authorization token for accessing the list. Optional if the list is public or caller has implicit access.
|
|
461
|
+
*/
|
|
462
|
+
auth_token?: string;
|
|
327
463
|
}
|
|
328
464
|
/**
|
|
329
465
|
* 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.
|
|
330
466
|
*/
|
|
331
467
|
export interface ContextObject {
|
|
332
|
-
[k: string]: unknown;
|
|
468
|
+
[k: string]: unknown | undefined;
|
|
333
469
|
}
|
|
334
470
|
/**
|
|
335
471
|
* 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.
|
|
336
472
|
*/
|
|
337
473
|
export interface ExtensionObject {
|
|
338
|
-
[k: string]: unknown;
|
|
474
|
+
[k: string]: unknown | undefined;
|
|
339
475
|
}
|
|
340
476
|
/**
|
|
341
477
|
* 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.
|
|
@@ -349,7 +485,7 @@ export type PublisherPropertySelector = {
|
|
|
349
485
|
* Discriminator indicating all properties from this publisher are included
|
|
350
486
|
*/
|
|
351
487
|
selection_type: 'all';
|
|
352
|
-
[k: string]: unknown;
|
|
488
|
+
[k: string]: unknown | undefined;
|
|
353
489
|
} | {
|
|
354
490
|
/**
|
|
355
491
|
* Domain where publisher's adagents.json is hosted (e.g., 'cnn.com')
|
|
@@ -365,7 +501,7 @@ export type PublisherPropertySelector = {
|
|
|
365
501
|
* @minItems 1
|
|
366
502
|
*/
|
|
367
503
|
property_ids: [PropertyID, ...PropertyID[]];
|
|
368
|
-
[k: string]: unknown;
|
|
504
|
+
[k: string]: unknown | undefined;
|
|
369
505
|
} | {
|
|
370
506
|
/**
|
|
371
507
|
* Domain where publisher's adagents.json is hosted (e.g., 'cnn.com')
|
|
@@ -381,7 +517,7 @@ export type PublisherPropertySelector = {
|
|
|
381
517
|
* @minItems 1
|
|
382
518
|
*/
|
|
383
519
|
property_tags: [PropertyTag, ...PropertyTag[]];
|
|
384
|
-
[k: string]: unknown;
|
|
520
|
+
[k: string]: unknown | undefined;
|
|
385
521
|
};
|
|
386
522
|
/**
|
|
387
523
|
* Identifier for a publisher property. Must be lowercase alphanumeric with underscores only.
|
|
@@ -394,7 +530,7 @@ export type PropertyTag = string;
|
|
|
394
530
|
/**
|
|
395
531
|
* Type of inventory delivery
|
|
396
532
|
*/
|
|
397
|
-
export type PricingOption =
|
|
533
|
+
export type PricingOption = CPMPricingOption | VCPMPricingOption | CPCPricingOption | CPCVPricingOption | CPVPricingOption | CPPPricingOption | FlatRatePricingOption;
|
|
398
534
|
/**
|
|
399
535
|
* Available frequencies for delivery reports and metrics updates
|
|
400
536
|
*/
|
|
@@ -419,10 +555,18 @@ export interface GetProductsResponse {
|
|
|
419
555
|
* Array of matching products
|
|
420
556
|
*/
|
|
421
557
|
products: Product[];
|
|
558
|
+
/**
|
|
559
|
+
* Optional array of proposed media plans with budget allocations across products. Publishers include proposals when they can provide strategic guidance based on the brief. Proposals are actionable - buyers can refine them via subsequent get_products calls or execute them directly via create_media_buy.
|
|
560
|
+
*/
|
|
561
|
+
proposals?: Proposal[];
|
|
422
562
|
/**
|
|
423
563
|
* Task-specific errors and warnings (e.g., product filtering issues)
|
|
424
564
|
*/
|
|
425
565
|
errors?: Error[];
|
|
566
|
+
/**
|
|
567
|
+
* [AdCP 3.0] Indicates whether property_list filtering was applied. True if the agent filtered products based on the provided property_list. Absent or false if property_list was not provided or not supported by this agent.
|
|
568
|
+
*/
|
|
569
|
+
property_list_applied?: boolean;
|
|
426
570
|
context?: ContextObject;
|
|
427
571
|
ext?: ExtensionObject;
|
|
428
572
|
}
|
|
@@ -506,9 +650,9 @@ export interface Product {
|
|
|
506
650
|
* Asset manifest for rendering the card, structure defined by the format
|
|
507
651
|
*/
|
|
508
652
|
manifest: {
|
|
509
|
-
[k: string]: unknown;
|
|
653
|
+
[k: string]: unknown | undefined;
|
|
510
654
|
};
|
|
511
|
-
[k: string]: unknown;
|
|
655
|
+
[k: string]: unknown | undefined;
|
|
512
656
|
};
|
|
513
657
|
/**
|
|
514
658
|
* Optional detailed card with carousel and full specifications. Provides rich product presentation similar to media kit pages.
|
|
@@ -519,12 +663,12 @@ export interface Product {
|
|
|
519
663
|
* Asset manifest for rendering the detailed card, structure defined by the format
|
|
520
664
|
*/
|
|
521
665
|
manifest: {
|
|
522
|
-
[k: string]: unknown;
|
|
666
|
+
[k: string]: unknown | undefined;
|
|
523
667
|
};
|
|
524
|
-
[k: string]: unknown;
|
|
668
|
+
[k: string]: unknown | undefined;
|
|
525
669
|
};
|
|
526
670
|
ext?: ExtensionObject;
|
|
527
|
-
[k: string]: unknown;
|
|
671
|
+
[k: string]: unknown | undefined;
|
|
528
672
|
}
|
|
529
673
|
/**
|
|
530
674
|
* 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.
|
|
@@ -548,66 +692,36 @@ export interface Placement {
|
|
|
548
692
|
* @minItems 1
|
|
549
693
|
*/
|
|
550
694
|
format_ids?: [FormatID, ...FormatID[]];
|
|
551
|
-
[k: string]: unknown;
|
|
695
|
+
[k: string]: unknown | undefined;
|
|
552
696
|
}
|
|
553
697
|
/**
|
|
554
|
-
* Cost Per Mille (cost per 1,000 impressions)
|
|
698
|
+
* Cost Per Mille (cost per 1,000 impressions) pricing. If fixed_price is present, it's fixed pricing. If absent, it's auction-based.
|
|
555
699
|
*/
|
|
556
|
-
export interface
|
|
700
|
+
export interface CPMPricingOption {
|
|
557
701
|
/**
|
|
558
|
-
* Unique identifier for this pricing option within the product
|
|
702
|
+
* Unique identifier for this pricing option within the product
|
|
559
703
|
*/
|
|
560
704
|
pricing_option_id: string;
|
|
561
705
|
/**
|
|
562
706
|
* Cost per 1,000 impressions
|
|
563
707
|
*/
|
|
564
708
|
pricing_model: 'cpm';
|
|
565
|
-
/**
|
|
566
|
-
* Fixed CPM rate (cost per 1,000 impressions)
|
|
567
|
-
*/
|
|
568
|
-
rate: number;
|
|
569
709
|
/**
|
|
570
710
|
* ISO 4217 currency code
|
|
571
711
|
*/
|
|
572
712
|
currency: string;
|
|
573
713
|
/**
|
|
574
|
-
*
|
|
575
|
-
*/
|
|
576
|
-
is_fixed: true;
|
|
577
|
-
/**
|
|
578
|
-
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
579
|
-
*/
|
|
580
|
-
min_spend_per_package?: number;
|
|
581
|
-
[k: string]: unknown;
|
|
582
|
-
}
|
|
583
|
-
/**
|
|
584
|
-
* Cost Per Mille (cost per 1,000 impressions) with auction-based pricing - common for programmatic/non-guaranteed inventory
|
|
585
|
-
*/
|
|
586
|
-
export interface CPMAuctionPricingOption {
|
|
587
|
-
/**
|
|
588
|
-
* Unique identifier for this pricing option within the product (e.g., 'cpm_usd_auction')
|
|
589
|
-
*/
|
|
590
|
-
pricing_option_id: string;
|
|
591
|
-
/**
|
|
592
|
-
* Cost per 1,000 impressions
|
|
593
|
-
*/
|
|
594
|
-
pricing_model: 'cpm';
|
|
595
|
-
/**
|
|
596
|
-
* ISO 4217 currency code
|
|
714
|
+
* Fixed price per unit. If present, this is fixed pricing. If absent, auction-based.
|
|
597
715
|
*/
|
|
598
|
-
|
|
716
|
+
fixed_price?: number;
|
|
599
717
|
/**
|
|
600
|
-
*
|
|
718
|
+
* Minimum acceptable bid for auction pricing (mutually exclusive with fixed_price). Bids below this value will be rejected.
|
|
601
719
|
*/
|
|
602
|
-
|
|
720
|
+
floor_price?: number;
|
|
603
721
|
/**
|
|
604
|
-
*
|
|
722
|
+
* Optional pricing guidance for auction-based bidding. Helps buyers calibrate bids with historical percentiles.
|
|
605
723
|
*/
|
|
606
|
-
price_guidance
|
|
607
|
-
/**
|
|
608
|
-
* Minimum bid price - publisher will reject bids under this value
|
|
609
|
-
*/
|
|
610
|
-
floor: number;
|
|
724
|
+
price_guidance?: {
|
|
611
725
|
/**
|
|
612
726
|
* 25th percentile winning price
|
|
613
727
|
*/
|
|
@@ -629,66 +743,36 @@ export interface CPMAuctionPricingOption {
|
|
|
629
743
|
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
630
744
|
*/
|
|
631
745
|
min_spend_per_package?: number;
|
|
632
|
-
[k: string]: unknown;
|
|
746
|
+
[k: string]: unknown | undefined;
|
|
633
747
|
}
|
|
634
748
|
/**
|
|
635
|
-
* Viewable Cost Per Mille (cost per 1,000 viewable impressions)
|
|
749
|
+
* 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.
|
|
636
750
|
*/
|
|
637
|
-
export interface
|
|
751
|
+
export interface VCPMPricingOption {
|
|
638
752
|
/**
|
|
639
|
-
* Unique identifier for this pricing option within the product
|
|
753
|
+
* Unique identifier for this pricing option within the product
|
|
640
754
|
*/
|
|
641
755
|
pricing_option_id: string;
|
|
642
756
|
/**
|
|
643
757
|
* Cost per 1,000 viewable impressions (MRC standard)
|
|
644
758
|
*/
|
|
645
759
|
pricing_model: 'vcpm';
|
|
646
|
-
/**
|
|
647
|
-
* Fixed vCPM rate (cost per 1,000 viewable impressions)
|
|
648
|
-
*/
|
|
649
|
-
rate: number;
|
|
650
760
|
/**
|
|
651
761
|
* ISO 4217 currency code
|
|
652
762
|
*/
|
|
653
763
|
currency: string;
|
|
654
764
|
/**
|
|
655
|
-
*
|
|
656
|
-
*/
|
|
657
|
-
is_fixed: true;
|
|
658
|
-
/**
|
|
659
|
-
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
660
|
-
*/
|
|
661
|
-
min_spend_per_package?: number;
|
|
662
|
-
[k: string]: unknown;
|
|
663
|
-
}
|
|
664
|
-
/**
|
|
665
|
-
* Viewable Cost Per Mille (cost per 1,000 viewable impressions) with auction-based pricing - impressions meeting MRC viewability standard (50% pixels in-view for 1 second for display, 2 seconds for video)
|
|
666
|
-
*/
|
|
667
|
-
export interface VCPMAuctionPricingOption {
|
|
668
|
-
/**
|
|
669
|
-
* Unique identifier for this pricing option within the product (e.g., 'vcpm_usd_auction')
|
|
670
|
-
*/
|
|
671
|
-
pricing_option_id: string;
|
|
672
|
-
/**
|
|
673
|
-
* Cost per 1,000 viewable impressions (MRC standard)
|
|
674
|
-
*/
|
|
675
|
-
pricing_model: 'vcpm';
|
|
676
|
-
/**
|
|
677
|
-
* ISO 4217 currency code
|
|
765
|
+
* Fixed price per unit. If present, this is fixed pricing. If absent, auction-based.
|
|
678
766
|
*/
|
|
679
|
-
|
|
767
|
+
fixed_price?: number;
|
|
680
768
|
/**
|
|
681
|
-
*
|
|
769
|
+
* Minimum acceptable bid for auction pricing (mutually exclusive with fixed_price). Bids below this value will be rejected.
|
|
682
770
|
*/
|
|
683
|
-
|
|
771
|
+
floor_price?: number;
|
|
684
772
|
/**
|
|
685
|
-
*
|
|
773
|
+
* Optional pricing guidance for auction-based bidding. Helps buyers calibrate bids with historical percentiles.
|
|
686
774
|
*/
|
|
687
|
-
price_guidance
|
|
688
|
-
/**
|
|
689
|
-
* Minimum acceptable bid price
|
|
690
|
-
*/
|
|
691
|
-
floor: number;
|
|
775
|
+
price_guidance?: {
|
|
692
776
|
/**
|
|
693
777
|
* 25th percentile of recent winning bids
|
|
694
778
|
*/
|
|
@@ -710,218 +794,323 @@ export interface VCPMAuctionPricingOption {
|
|
|
710
794
|
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
711
795
|
*/
|
|
712
796
|
min_spend_per_package?: number;
|
|
713
|
-
[k: string]: unknown;
|
|
797
|
+
[k: string]: unknown | undefined;
|
|
714
798
|
}
|
|
715
799
|
/**
|
|
716
|
-
* Cost Per Click fixed
|
|
800
|
+
* Cost Per Click pricing. If fixed_price is present, it's fixed pricing. If absent, it's auction-based.
|
|
717
801
|
*/
|
|
718
802
|
export interface CPCPricingOption {
|
|
719
803
|
/**
|
|
720
|
-
* Unique identifier for this pricing option within the product
|
|
804
|
+
* Unique identifier for this pricing option within the product
|
|
721
805
|
*/
|
|
722
806
|
pricing_option_id: string;
|
|
723
807
|
/**
|
|
724
808
|
* Cost per click
|
|
725
809
|
*/
|
|
726
810
|
pricing_model: 'cpc';
|
|
727
|
-
/**
|
|
728
|
-
* Fixed CPC rate (cost per click)
|
|
729
|
-
*/
|
|
730
|
-
rate: number;
|
|
731
811
|
/**
|
|
732
812
|
* ISO 4217 currency code
|
|
733
813
|
*/
|
|
734
814
|
currency: string;
|
|
735
815
|
/**
|
|
736
|
-
*
|
|
816
|
+
* Fixed price per click. If present, this is fixed pricing. If absent, auction-based.
|
|
737
817
|
*/
|
|
738
|
-
|
|
818
|
+
fixed_price?: number;
|
|
819
|
+
/**
|
|
820
|
+
* Minimum acceptable bid for auction pricing (mutually exclusive with fixed_price). Bids below this value will be rejected.
|
|
821
|
+
*/
|
|
822
|
+
floor_price?: number;
|
|
823
|
+
/**
|
|
824
|
+
* Optional pricing guidance for auction-based bidding. Helps buyers calibrate bids with historical percentiles.
|
|
825
|
+
*/
|
|
826
|
+
price_guidance?: {
|
|
827
|
+
/**
|
|
828
|
+
* 25th percentile of recent winning bids
|
|
829
|
+
*/
|
|
830
|
+
p25?: number;
|
|
831
|
+
/**
|
|
832
|
+
* Median of recent winning bids
|
|
833
|
+
*/
|
|
834
|
+
p50?: number;
|
|
835
|
+
/**
|
|
836
|
+
* 75th percentile of recent winning bids
|
|
837
|
+
*/
|
|
838
|
+
p75?: number;
|
|
839
|
+
/**
|
|
840
|
+
* 90th percentile of recent winning bids
|
|
841
|
+
*/
|
|
842
|
+
p90?: number;
|
|
843
|
+
};
|
|
739
844
|
/**
|
|
740
845
|
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
741
846
|
*/
|
|
742
847
|
min_spend_per_package?: number;
|
|
743
|
-
[k: string]: unknown;
|
|
848
|
+
[k: string]: unknown | undefined;
|
|
744
849
|
}
|
|
745
850
|
/**
|
|
746
|
-
* Cost Per Completed View (100% video/audio completion) fixed
|
|
851
|
+
* Cost Per Completed View (100% video/audio completion) pricing. If fixed_price is present, it's fixed pricing. If absent, it's auction-based.
|
|
747
852
|
*/
|
|
748
853
|
export interface CPCVPricingOption {
|
|
749
854
|
/**
|
|
750
|
-
* Unique identifier for this pricing option within the product
|
|
855
|
+
* Unique identifier for this pricing option within the product
|
|
751
856
|
*/
|
|
752
857
|
pricing_option_id: string;
|
|
753
858
|
/**
|
|
754
859
|
* Cost per completed view (100% completion)
|
|
755
860
|
*/
|
|
756
861
|
pricing_model: 'cpcv';
|
|
757
|
-
/**
|
|
758
|
-
* Fixed CPCV rate (cost per 100% completion)
|
|
759
|
-
*/
|
|
760
|
-
rate: number;
|
|
761
862
|
/**
|
|
762
863
|
* ISO 4217 currency code
|
|
763
864
|
*/
|
|
764
865
|
currency: string;
|
|
765
866
|
/**
|
|
766
|
-
*
|
|
867
|
+
* Fixed price per completed view. If present, this is fixed pricing. If absent, auction-based.
|
|
868
|
+
*/
|
|
869
|
+
fixed_price?: number;
|
|
870
|
+
/**
|
|
871
|
+
* Minimum acceptable bid for auction pricing (mutually exclusive with fixed_price). Bids below this value will be rejected.
|
|
872
|
+
*/
|
|
873
|
+
floor_price?: number;
|
|
874
|
+
/**
|
|
875
|
+
* Optional pricing guidance for auction-based bidding. Helps buyers calibrate bids with historical percentiles.
|
|
767
876
|
*/
|
|
768
|
-
|
|
877
|
+
price_guidance?: {
|
|
878
|
+
/**
|
|
879
|
+
* 25th percentile of recent winning bids
|
|
880
|
+
*/
|
|
881
|
+
p25?: number;
|
|
882
|
+
/**
|
|
883
|
+
* Median of recent winning bids
|
|
884
|
+
*/
|
|
885
|
+
p50?: number;
|
|
886
|
+
/**
|
|
887
|
+
* 75th percentile of recent winning bids
|
|
888
|
+
*/
|
|
889
|
+
p75?: number;
|
|
890
|
+
/**
|
|
891
|
+
* 90th percentile of recent winning bids
|
|
892
|
+
*/
|
|
893
|
+
p90?: number;
|
|
894
|
+
};
|
|
769
895
|
/**
|
|
770
896
|
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
771
897
|
*/
|
|
772
898
|
min_spend_per_package?: number;
|
|
773
|
-
[k: string]: unknown;
|
|
899
|
+
[k: string]: unknown | undefined;
|
|
774
900
|
}
|
|
775
901
|
/**
|
|
776
|
-
* Cost Per View (at publisher-defined threshold)
|
|
902
|
+
* Cost Per View (at publisher-defined threshold) pricing for video/audio. If fixed_price is present, it's fixed pricing. If absent, it's auction-based.
|
|
777
903
|
*/
|
|
778
904
|
export interface CPVPricingOption {
|
|
779
905
|
/**
|
|
780
|
-
* Unique identifier for this pricing option within the product
|
|
906
|
+
* Unique identifier for this pricing option within the product
|
|
781
907
|
*/
|
|
782
908
|
pricing_option_id: string;
|
|
783
909
|
/**
|
|
784
910
|
* Cost per view at threshold
|
|
785
911
|
*/
|
|
786
912
|
pricing_model: 'cpv';
|
|
787
|
-
/**
|
|
788
|
-
* Fixed CPV rate (cost per view)
|
|
789
|
-
*/
|
|
790
|
-
rate: number;
|
|
791
913
|
/**
|
|
792
914
|
* ISO 4217 currency code
|
|
793
915
|
*/
|
|
794
916
|
currency: string;
|
|
795
917
|
/**
|
|
796
|
-
*
|
|
918
|
+
* Fixed price per view. If present, this is fixed pricing. If absent, auction-based.
|
|
919
|
+
*/
|
|
920
|
+
fixed_price?: number;
|
|
921
|
+
/**
|
|
922
|
+
* Minimum acceptable bid for auction pricing (mutually exclusive with fixed_price). Bids below this value will be rejected.
|
|
797
923
|
*/
|
|
798
|
-
|
|
924
|
+
floor_price?: number;
|
|
925
|
+
/**
|
|
926
|
+
* Optional pricing guidance for auction-based bidding. Helps buyers calibrate bids with historical percentiles.
|
|
927
|
+
*/
|
|
928
|
+
price_guidance?: {
|
|
929
|
+
/**
|
|
930
|
+
* 25th percentile of recent winning bids
|
|
931
|
+
*/
|
|
932
|
+
p25?: number;
|
|
933
|
+
/**
|
|
934
|
+
* Median of recent winning bids
|
|
935
|
+
*/
|
|
936
|
+
p50?: number;
|
|
937
|
+
/**
|
|
938
|
+
* 75th percentile of recent winning bids
|
|
939
|
+
*/
|
|
940
|
+
p75?: number;
|
|
941
|
+
/**
|
|
942
|
+
* 90th percentile of recent winning bids
|
|
943
|
+
*/
|
|
944
|
+
p90?: number;
|
|
945
|
+
};
|
|
799
946
|
/**
|
|
800
947
|
* CPV-specific parameters defining the view threshold
|
|
801
948
|
*/
|
|
802
949
|
parameters: {
|
|
803
950
|
view_threshold: number | {
|
|
804
951
|
/**
|
|
805
|
-
* Seconds of viewing required
|
|
952
|
+
* Seconds of viewing required
|
|
806
953
|
*/
|
|
807
954
|
duration_seconds: number;
|
|
808
|
-
[k: string]: unknown;
|
|
955
|
+
[k: string]: unknown | undefined;
|
|
809
956
|
};
|
|
810
|
-
[k: string]: unknown;
|
|
957
|
+
[k: string]: unknown | undefined;
|
|
811
958
|
};
|
|
812
959
|
/**
|
|
813
960
|
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
814
961
|
*/
|
|
815
962
|
min_spend_per_package?: number;
|
|
816
|
-
[k: string]: unknown;
|
|
963
|
+
[k: string]: unknown | undefined;
|
|
817
964
|
}
|
|
818
965
|
/**
|
|
819
|
-
* Cost Per Point (Gross Rating Point)
|
|
966
|
+
* Cost Per Point (Gross Rating Point) pricing for TV and audio campaigns. If fixed_price is present, it's fixed pricing. If absent, it's auction-based.
|
|
820
967
|
*/
|
|
821
968
|
export interface CPPPricingOption {
|
|
822
969
|
/**
|
|
823
|
-
* Unique identifier for this pricing option within the product
|
|
970
|
+
* Unique identifier for this pricing option within the product
|
|
824
971
|
*/
|
|
825
972
|
pricing_option_id: string;
|
|
826
973
|
/**
|
|
827
974
|
* Cost per Gross Rating Point
|
|
828
975
|
*/
|
|
829
976
|
pricing_model: 'cpp';
|
|
830
|
-
/**
|
|
831
|
-
* Fixed CPP rate (cost per rating point)
|
|
832
|
-
*/
|
|
833
|
-
rate: number;
|
|
834
977
|
/**
|
|
835
978
|
* ISO 4217 currency code
|
|
836
979
|
*/
|
|
837
980
|
currency: string;
|
|
838
981
|
/**
|
|
839
|
-
*
|
|
982
|
+
* Fixed price per rating point. If present, this is fixed pricing. If absent, auction-based.
|
|
983
|
+
*/
|
|
984
|
+
fixed_price?: number;
|
|
985
|
+
/**
|
|
986
|
+
* Minimum acceptable bid for auction pricing (mutually exclusive with fixed_price). Bids below this value will be rejected.
|
|
987
|
+
*/
|
|
988
|
+
floor_price?: number;
|
|
989
|
+
/**
|
|
990
|
+
* Optional pricing guidance for auction-based bidding. Helps buyers calibrate bids with historical percentiles.
|
|
840
991
|
*/
|
|
841
|
-
|
|
992
|
+
price_guidance?: {
|
|
993
|
+
/**
|
|
994
|
+
* 25th percentile of recent winning bids
|
|
995
|
+
*/
|
|
996
|
+
p25?: number;
|
|
997
|
+
/**
|
|
998
|
+
* Median of recent winning bids
|
|
999
|
+
*/
|
|
1000
|
+
p50?: number;
|
|
1001
|
+
/**
|
|
1002
|
+
* 75th percentile of recent winning bids
|
|
1003
|
+
*/
|
|
1004
|
+
p75?: number;
|
|
1005
|
+
/**
|
|
1006
|
+
* 90th percentile of recent winning bids
|
|
1007
|
+
*/
|
|
1008
|
+
p90?: number;
|
|
1009
|
+
};
|
|
842
1010
|
/**
|
|
843
|
-
* CPP-specific parameters for demographic targeting
|
|
1011
|
+
* CPP-specific parameters for demographic targeting
|
|
844
1012
|
*/
|
|
845
1013
|
parameters: {
|
|
846
1014
|
/**
|
|
847
|
-
* Target demographic in Nielsen format
|
|
1015
|
+
* Target demographic in Nielsen format (P18-49, M25-54, W35+, etc.)
|
|
848
1016
|
*/
|
|
849
1017
|
demographic: string;
|
|
850
1018
|
/**
|
|
851
|
-
* Minimum GRPs/TRPs required
|
|
1019
|
+
* Minimum GRPs/TRPs required
|
|
852
1020
|
*/
|
|
853
1021
|
min_points?: number;
|
|
854
|
-
[k: string]: unknown;
|
|
1022
|
+
[k: string]: unknown | undefined;
|
|
855
1023
|
};
|
|
856
1024
|
/**
|
|
857
1025
|
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
858
1026
|
*/
|
|
859
1027
|
min_spend_per_package?: number;
|
|
860
|
-
[k: string]: unknown;
|
|
1028
|
+
[k: string]: unknown | undefined;
|
|
861
1029
|
}
|
|
862
1030
|
/**
|
|
863
|
-
* Flat rate pricing for DOOH, sponsorships, and time-based campaigns
|
|
1031
|
+
* 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.
|
|
864
1032
|
*/
|
|
865
1033
|
export interface FlatRatePricingOption {
|
|
866
1034
|
/**
|
|
867
|
-
* Unique identifier for this pricing option within the product
|
|
1035
|
+
* Unique identifier for this pricing option within the product
|
|
868
1036
|
*/
|
|
869
1037
|
pricing_option_id: string;
|
|
870
1038
|
/**
|
|
871
1039
|
* Fixed cost regardless of delivery volume
|
|
872
1040
|
*/
|
|
873
1041
|
pricing_model: 'flat_rate';
|
|
874
|
-
/**
|
|
875
|
-
* Flat rate cost
|
|
876
|
-
*/
|
|
877
|
-
rate: number;
|
|
878
1042
|
/**
|
|
879
1043
|
* ISO 4217 currency code
|
|
880
1044
|
*/
|
|
881
1045
|
currency: string;
|
|
882
1046
|
/**
|
|
883
|
-
*
|
|
1047
|
+
* Flat rate cost. If present, this is fixed pricing. If absent, auction-based.
|
|
1048
|
+
*/
|
|
1049
|
+
fixed_price?: number;
|
|
1050
|
+
/**
|
|
1051
|
+
* Minimum acceptable bid for auction pricing (mutually exclusive with fixed_price). Bids below this value will be rejected.
|
|
1052
|
+
*/
|
|
1053
|
+
floor_price?: number;
|
|
1054
|
+
/**
|
|
1055
|
+
* Optional pricing guidance for auction-based bidding. Helps buyers calibrate bids with historical percentiles.
|
|
884
1056
|
*/
|
|
885
|
-
|
|
1057
|
+
price_guidance?: {
|
|
1058
|
+
/**
|
|
1059
|
+
* 25th percentile of recent winning bids
|
|
1060
|
+
*/
|
|
1061
|
+
p25?: number;
|
|
1062
|
+
/**
|
|
1063
|
+
* Median of recent winning bids
|
|
1064
|
+
*/
|
|
1065
|
+
p50?: number;
|
|
1066
|
+
/**
|
|
1067
|
+
* 75th percentile of recent winning bids
|
|
1068
|
+
*/
|
|
1069
|
+
p75?: number;
|
|
1070
|
+
/**
|
|
1071
|
+
* 90th percentile of recent winning bids
|
|
1072
|
+
*/
|
|
1073
|
+
p90?: number;
|
|
1074
|
+
};
|
|
886
1075
|
/**
|
|
887
1076
|
* Flat rate parameters for DOOH and time-based campaigns
|
|
888
1077
|
*/
|
|
889
1078
|
parameters?: {
|
|
890
1079
|
/**
|
|
891
|
-
* Duration in hours for time-based
|
|
1080
|
+
* Duration in hours for time-based pricing
|
|
892
1081
|
*/
|
|
893
1082
|
duration_hours?: number;
|
|
894
1083
|
/**
|
|
895
|
-
* Guaranteed share of voice
|
|
1084
|
+
* Guaranteed share of voice (0-100)
|
|
896
1085
|
*/
|
|
897
1086
|
sov_percentage?: number;
|
|
898
1087
|
/**
|
|
899
|
-
* Duration of ad loop rotation in seconds
|
|
1088
|
+
* Duration of ad loop rotation in seconds
|
|
900
1089
|
*/
|
|
901
1090
|
loop_duration_seconds?: number;
|
|
902
1091
|
/**
|
|
903
|
-
* Minimum
|
|
1092
|
+
* Minimum plays per hour
|
|
904
1093
|
*/
|
|
905
1094
|
min_plays_per_hour?: number;
|
|
906
1095
|
/**
|
|
907
|
-
* Named venue package identifier
|
|
1096
|
+
* Named venue package identifier
|
|
908
1097
|
*/
|
|
909
1098
|
venue_package?: string;
|
|
910
1099
|
/**
|
|
911
|
-
* Estimated impressions
|
|
1100
|
+
* Estimated impressions (informational)
|
|
912
1101
|
*/
|
|
913
1102
|
estimated_impressions?: number;
|
|
914
1103
|
/**
|
|
915
|
-
* Specific daypart for time-based pricing
|
|
1104
|
+
* Specific daypart for time-based pricing
|
|
916
1105
|
*/
|
|
917
1106
|
daypart?: string;
|
|
918
|
-
[k: string]: unknown;
|
|
1107
|
+
[k: string]: unknown | undefined;
|
|
919
1108
|
};
|
|
920
1109
|
/**
|
|
921
1110
|
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
922
1111
|
*/
|
|
923
1112
|
min_spend_per_package?: number;
|
|
924
|
-
[k: string]: unknown;
|
|
1113
|
+
[k: string]: unknown | undefined;
|
|
925
1114
|
}
|
|
926
1115
|
/**
|
|
927
1116
|
* Measurement capabilities included with a product
|
|
@@ -943,7 +1132,7 @@ export interface Measurement {
|
|
|
943
1132
|
* Reporting frequency and format
|
|
944
1133
|
*/
|
|
945
1134
|
reporting: string;
|
|
946
|
-
[k: string]: unknown;
|
|
1135
|
+
[k: string]: unknown | undefined;
|
|
947
1136
|
}
|
|
948
1137
|
/**
|
|
949
1138
|
* Reporting capabilities available for a product
|
|
@@ -971,7 +1160,7 @@ export interface ReportingCapabilities {
|
|
|
971
1160
|
* Metrics available in reporting. Impressions and spend are always implicitly included.
|
|
972
1161
|
*/
|
|
973
1162
|
available_metrics: AvailableMetric[];
|
|
974
|
-
[k: string]: unknown;
|
|
1163
|
+
[k: string]: unknown | undefined;
|
|
975
1164
|
}
|
|
976
1165
|
/**
|
|
977
1166
|
* Creative requirements and restrictions for a product
|
|
@@ -983,7 +1172,7 @@ export interface CreativePolicy {
|
|
|
983
1172
|
* Whether creative templates are provided
|
|
984
1173
|
*/
|
|
985
1174
|
templates_available: boolean;
|
|
986
|
-
[k: string]: unknown;
|
|
1175
|
+
[k: string]: unknown | undefined;
|
|
987
1176
|
}
|
|
988
1177
|
/**
|
|
989
1178
|
* 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.
|
|
@@ -1009,7 +1198,7 @@ export interface FormatID1 {
|
|
|
1009
1198
|
* Duration in milliseconds for time-based formats (video, audio). When specified, creates a parameterized format ID. Omit to reference a template format without parameters.
|
|
1010
1199
|
*/
|
|
1011
1200
|
duration_ms?: number;
|
|
1012
|
-
[k: string]: unknown;
|
|
1201
|
+
[k: string]: unknown | undefined;
|
|
1013
1202
|
}
|
|
1014
1203
|
/**
|
|
1015
1204
|
* 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.
|
|
@@ -1035,43 +1224,129 @@ export interface FormatID2 {
|
|
|
1035
1224
|
* Duration in milliseconds for time-based formats (video, audio). When specified, creates a parameterized format ID. Omit to reference a template format without parameters.
|
|
1036
1225
|
*/
|
|
1037
1226
|
duration_ms?: number;
|
|
1038
|
-
[k: string]: unknown;
|
|
1227
|
+
[k: string]: unknown | undefined;
|
|
1039
1228
|
}
|
|
1040
1229
|
/**
|
|
1041
1230
|
* 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.
|
|
1042
1231
|
*/
|
|
1043
|
-
export interface
|
|
1232
|
+
export interface Proposal {
|
|
1044
1233
|
/**
|
|
1045
|
-
*
|
|
1234
|
+
* Unique identifier for this proposal. Used to refine the proposal in subsequent get_products calls or to execute it via create_media_buy.
|
|
1046
1235
|
*/
|
|
1047
|
-
|
|
1236
|
+
proposal_id: string;
|
|
1048
1237
|
/**
|
|
1049
|
-
* Human-readable
|
|
1238
|
+
* Human-readable name for this media plan proposal
|
|
1050
1239
|
*/
|
|
1051
|
-
|
|
1240
|
+
name: string;
|
|
1052
1241
|
/**
|
|
1053
|
-
*
|
|
1242
|
+
* Explanation of the proposal strategy and what it achieves
|
|
1054
1243
|
*/
|
|
1055
|
-
|
|
1244
|
+
description?: string;
|
|
1056
1245
|
/**
|
|
1057
|
-
*
|
|
1246
|
+
* 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.
|
|
1247
|
+
*
|
|
1248
|
+
* @minItems 1
|
|
1058
1249
|
*/
|
|
1059
|
-
|
|
1250
|
+
allocations: [ProductAllocation, ...ProductAllocation[]];
|
|
1060
1251
|
/**
|
|
1061
|
-
*
|
|
1252
|
+
* When this proposal expires and can no longer be executed. After expiration, referenced products or pricing may no longer be available.
|
|
1062
1253
|
*/
|
|
1063
|
-
|
|
1254
|
+
expires_at?: string;
|
|
1064
1255
|
/**
|
|
1065
|
-
*
|
|
1256
|
+
* Optional budget guidance for this proposal
|
|
1066
1257
|
*/
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
/**
|
|
1073
|
-
|
|
1074
|
-
|
|
1258
|
+
total_budget_guidance?: {
|
|
1259
|
+
/**
|
|
1260
|
+
* Minimum recommended budget
|
|
1261
|
+
*/
|
|
1262
|
+
min?: number;
|
|
1263
|
+
/**
|
|
1264
|
+
* Recommended budget for optimal performance
|
|
1265
|
+
*/
|
|
1266
|
+
recommended?: number;
|
|
1267
|
+
/**
|
|
1268
|
+
* Maximum budget before diminishing returns
|
|
1269
|
+
*/
|
|
1270
|
+
max?: number;
|
|
1271
|
+
/**
|
|
1272
|
+
* ISO 4217 currency code
|
|
1273
|
+
*/
|
|
1274
|
+
currency?: string;
|
|
1275
|
+
[k: string]: unknown | undefined;
|
|
1276
|
+
};
|
|
1277
|
+
/**
|
|
1278
|
+
* Explanation of how this proposal aligns with the campaign brief
|
|
1279
|
+
*/
|
|
1280
|
+
brief_alignment?: string;
|
|
1281
|
+
ext?: ExtensionObject;
|
|
1282
|
+
[k: string]: unknown | undefined;
|
|
1283
|
+
}
|
|
1284
|
+
/**
|
|
1285
|
+
* A budget allocation for a specific product within a proposal. Percentages across all allocations in a proposal should sum to 100.
|
|
1286
|
+
*/
|
|
1287
|
+
export interface ProductAllocation {
|
|
1288
|
+
/**
|
|
1289
|
+
* ID of the product (must reference a product in the products array)
|
|
1290
|
+
*/
|
|
1291
|
+
product_id: string;
|
|
1292
|
+
/**
|
|
1293
|
+
* Percentage of total budget allocated to this product (0-100)
|
|
1294
|
+
*/
|
|
1295
|
+
allocation_percentage: number;
|
|
1296
|
+
/**
|
|
1297
|
+
* Recommended pricing option ID from the product's pricing_options array
|
|
1298
|
+
*/
|
|
1299
|
+
pricing_option_id?: string;
|
|
1300
|
+
/**
|
|
1301
|
+
* Explanation of why this product and allocation are recommended
|
|
1302
|
+
*/
|
|
1303
|
+
rationale?: string;
|
|
1304
|
+
/**
|
|
1305
|
+
* Optional ordering hint for multi-line-item plans (1-based)
|
|
1306
|
+
*/
|
|
1307
|
+
sequence?: number;
|
|
1308
|
+
/**
|
|
1309
|
+
* Categorical tags for this allocation (e.g., 'desktop', 'german', 'mobile') - useful for grouping/filtering allocations by dimension
|
|
1310
|
+
*/
|
|
1311
|
+
tags?: string[];
|
|
1312
|
+
ext?: ExtensionObject;
|
|
1313
|
+
[k: string]: unknown | undefined;
|
|
1314
|
+
}
|
|
1315
|
+
/**
|
|
1316
|
+
* Standard error structure for task-specific errors and warnings
|
|
1317
|
+
*/
|
|
1318
|
+
export interface Error {
|
|
1319
|
+
/**
|
|
1320
|
+
* Error code for programmatic handling
|
|
1321
|
+
*/
|
|
1322
|
+
code: string;
|
|
1323
|
+
/**
|
|
1324
|
+
* Human-readable error message
|
|
1325
|
+
*/
|
|
1326
|
+
message: string;
|
|
1327
|
+
/**
|
|
1328
|
+
* Field path associated with the error (e.g., 'packages[0].targeting')
|
|
1329
|
+
*/
|
|
1330
|
+
field?: string;
|
|
1331
|
+
/**
|
|
1332
|
+
* Suggested fix for the error
|
|
1333
|
+
*/
|
|
1334
|
+
suggestion?: string;
|
|
1335
|
+
/**
|
|
1336
|
+
* Seconds to wait before retrying the operation
|
|
1337
|
+
*/
|
|
1338
|
+
retry_after?: number;
|
|
1339
|
+
/**
|
|
1340
|
+
* Additional task-specific error details
|
|
1341
|
+
*/
|
|
1342
|
+
details?: {
|
|
1343
|
+
[k: string]: unknown | undefined;
|
|
1344
|
+
};
|
|
1345
|
+
[k: string]: unknown | undefined;
|
|
1346
|
+
}
|
|
1347
|
+
/**
|
|
1348
|
+
* 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.
|
|
1349
|
+
*/
|
|
1075
1350
|
/**
|
|
1076
1351
|
* Filter by format type (technical categories with distinct requirements)
|
|
1077
1352
|
*/
|
|
@@ -1123,14 +1398,6 @@ export type FormatIDParameter = 'dimensions' | 'duration';
|
|
|
1123
1398
|
* Type of asset
|
|
1124
1399
|
*/
|
|
1125
1400
|
export type AssetContentType1 = 'image' | 'video' | 'audio' | 'text' | 'markdown' | 'html' | 'css' | 'javascript' | 'vast' | 'daast' | 'promoted_offerings' | 'url' | 'webhook';
|
|
1126
|
-
/**
|
|
1127
|
-
* Type of asset
|
|
1128
|
-
*/
|
|
1129
|
-
export type AssetContentType2 = 'image' | 'video' | 'audio' | 'text' | 'markdown' | 'html' | 'css' | 'javascript' | 'vast' | 'daast' | 'promoted_offerings' | 'url' | 'webhook';
|
|
1130
|
-
/**
|
|
1131
|
-
* Type of asset
|
|
1132
|
-
*/
|
|
1133
|
-
export type AssetContentType3 = 'image' | 'video' | 'audio' | 'text' | 'markdown' | 'html' | 'css' | 'javascript' | 'vast' | 'daast' | 'promoted_offerings' | 'url' | 'webhook';
|
|
1134
1401
|
/**
|
|
1135
1402
|
* Capabilities supported by creative agents for format handling
|
|
1136
1403
|
*/
|
|
@@ -1180,10 +1447,6 @@ export interface Format {
|
|
|
1180
1447
|
* Plain text explanation of what this format does and what assets it requires
|
|
1181
1448
|
*/
|
|
1182
1449
|
description?: string;
|
|
1183
|
-
/**
|
|
1184
|
-
* DEPRECATED: Use format_card instead. Optional preview image URL for format browsing/discovery UI. Should be 400x300px (4:3 aspect ratio) PNG or JPG. Used as thumbnail/card image in format browsers. This field is maintained for backward compatibility but format_card provides a more flexible, structured approach.
|
|
1185
|
-
*/
|
|
1186
|
-
preview_image?: string;
|
|
1187
1450
|
/**
|
|
1188
1451
|
* Optional URL to showcase page with examples and interactive demos of this format
|
|
1189
1452
|
*/
|
|
@@ -1200,86 +1463,16 @@ export interface Format {
|
|
|
1200
1463
|
*/
|
|
1201
1464
|
renders?: [
|
|
1202
1465
|
({
|
|
1203
|
-
[k: string]: unknown;
|
|
1466
|
+
[k: string]: unknown | undefined;
|
|
1204
1467
|
} | {
|
|
1205
1468
|
parameters_from_format_id: true;
|
|
1206
1469
|
}),
|
|
1207
1470
|
...({
|
|
1208
|
-
[k: string]: unknown;
|
|
1471
|
+
[k: string]: unknown | undefined;
|
|
1209
1472
|
} | {
|
|
1210
1473
|
parameters_from_format_id: true;
|
|
1211
1474
|
})[]
|
|
1212
1475
|
];
|
|
1213
|
-
/**
|
|
1214
|
-
* @deprecated
|
|
1215
|
-
* DEPRECATED: Use 'assets' instead. Array of required assets or asset groups for this format. Each asset is identified by its asset_id, which must be used as the key in creative manifests. Can contain individual assets or repeatable asset sequences (e.g., carousel products, slideshow frames). This field is maintained for backward compatibility; new implementations should use 'assets' with the 'required' boolean on each asset.
|
|
1216
|
-
*/
|
|
1217
|
-
assets_required?: ({
|
|
1218
|
-
/**
|
|
1219
|
-
* Discriminator indicating this is an individual asset requirement
|
|
1220
|
-
*/
|
|
1221
|
-
item_type: 'individual';
|
|
1222
|
-
/**
|
|
1223
|
-
* Unique identifier for this asset. Creative manifests MUST use this exact value as the key in the assets object.
|
|
1224
|
-
*/
|
|
1225
|
-
asset_id: string;
|
|
1226
|
-
asset_type: AssetContentType;
|
|
1227
|
-
/**
|
|
1228
|
-
* Optional descriptive label for this asset's purpose (e.g., 'hero_image', 'logo'). Not used for referencing assets in manifests—use asset_id instead. This field is for human-readable documentation and UI display only.
|
|
1229
|
-
*/
|
|
1230
|
-
asset_role?: string;
|
|
1231
|
-
/**
|
|
1232
|
-
* Whether this asset is required
|
|
1233
|
-
*/
|
|
1234
|
-
required?: boolean;
|
|
1235
|
-
/**
|
|
1236
|
-
* Technical requirements for this asset (dimensions, file size, duration, etc.). For template formats, use parameters_from_format_id: true to indicate asset parameters must match the format_id parameters (width/height/unit and/or duration_ms).
|
|
1237
|
-
*/
|
|
1238
|
-
requirements?: {
|
|
1239
|
-
[k: string]: unknown;
|
|
1240
|
-
};
|
|
1241
|
-
} | {
|
|
1242
|
-
/**
|
|
1243
|
-
* Discriminator indicating this is a repeatable asset group
|
|
1244
|
-
*/
|
|
1245
|
-
item_type: 'repeatable_group';
|
|
1246
|
-
/**
|
|
1247
|
-
* Identifier for this asset group (e.g., 'product', 'slide', 'card')
|
|
1248
|
-
*/
|
|
1249
|
-
asset_group_id: string;
|
|
1250
|
-
/**
|
|
1251
|
-
* Minimum number of repetitions required
|
|
1252
|
-
*/
|
|
1253
|
-
min_count: number;
|
|
1254
|
-
/**
|
|
1255
|
-
* Maximum number of repetitions allowed
|
|
1256
|
-
*/
|
|
1257
|
-
max_count: number;
|
|
1258
|
-
/**
|
|
1259
|
-
* Assets within each repetition of this group
|
|
1260
|
-
*/
|
|
1261
|
-
assets: {
|
|
1262
|
-
/**
|
|
1263
|
-
* Identifier for this asset within the group
|
|
1264
|
-
*/
|
|
1265
|
-
asset_id: string;
|
|
1266
|
-
asset_type: AssetContentType1;
|
|
1267
|
-
/**
|
|
1268
|
-
* Optional descriptive label for this asset's purpose (e.g., 'hero_image', 'logo'). Not used for referencing assets in manifests—use asset_id instead. This field is for human-readable documentation and UI display only.
|
|
1269
|
-
*/
|
|
1270
|
-
asset_role?: string;
|
|
1271
|
-
/**
|
|
1272
|
-
* Whether this asset is required in each repetition
|
|
1273
|
-
*/
|
|
1274
|
-
required?: boolean;
|
|
1275
|
-
/**
|
|
1276
|
-
* Technical requirements for this asset. For template formats, use parameters_from_format_id: true to indicate asset parameters must match the format_id parameters (width/height/unit and/or duration_ms).
|
|
1277
|
-
*/
|
|
1278
|
-
requirements?: {
|
|
1279
|
-
[k: string]: unknown;
|
|
1280
|
-
};
|
|
1281
|
-
}[];
|
|
1282
|
-
})[];
|
|
1283
1476
|
/**
|
|
1284
1477
|
* 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. This field replaces the deprecated 'assets_required' and enables full asset discovery for buyers and AI agents.
|
|
1285
1478
|
*/
|
|
@@ -1292,7 +1485,7 @@ export interface Format {
|
|
|
1292
1485
|
* Unique identifier for this asset. Creative manifests MUST use this exact value as the key in the assets object.
|
|
1293
1486
|
*/
|
|
1294
1487
|
asset_id: string;
|
|
1295
|
-
asset_type:
|
|
1488
|
+
asset_type: AssetContentType;
|
|
1296
1489
|
/**
|
|
1297
1490
|
* Optional descriptive label for this asset's purpose (e.g., 'hero_image', 'logo', 'third_party_tracking'). Not used for referencing assets in manifests—use asset_id instead. This field is for human-readable documentation and UI display only.
|
|
1298
1491
|
*/
|
|
@@ -1305,7 +1498,7 @@ export interface Format {
|
|
|
1305
1498
|
* Technical requirements for this asset (dimensions, file size, duration, etc.). For template formats, use parameters_from_format_id: true to indicate asset parameters must match the format_id parameters (width/height/unit and/or duration_ms).
|
|
1306
1499
|
*/
|
|
1307
1500
|
requirements?: {
|
|
1308
|
-
[k: string]: unknown;
|
|
1501
|
+
[k: string]: unknown | undefined;
|
|
1309
1502
|
};
|
|
1310
1503
|
} | {
|
|
1311
1504
|
/**
|
|
@@ -1336,7 +1529,7 @@ export interface Format {
|
|
|
1336
1529
|
* Identifier for this asset within the group
|
|
1337
1530
|
*/
|
|
1338
1531
|
asset_id: string;
|
|
1339
|
-
asset_type:
|
|
1532
|
+
asset_type: AssetContentType1;
|
|
1340
1533
|
/**
|
|
1341
1534
|
* Optional descriptive label for this asset's purpose. Not used for referencing assets in manifests—use asset_id instead. This field is for human-readable documentation and UI display only.
|
|
1342
1535
|
*/
|
|
@@ -1349,7 +1542,7 @@ export interface Format {
|
|
|
1349
1542
|
* Technical requirements for this asset. For template formats, use parameters_from_format_id: true to indicate asset parameters must match the format_id parameters (width/height/unit and/or duration_ms).
|
|
1350
1543
|
*/
|
|
1351
1544
|
requirements?: {
|
|
1352
|
-
[k: string]: unknown;
|
|
1545
|
+
[k: string]: unknown | undefined;
|
|
1353
1546
|
};
|
|
1354
1547
|
}[];
|
|
1355
1548
|
})[];
|
|
@@ -1357,7 +1550,7 @@ export interface Format {
|
|
|
1357
1550
|
* Delivery method specifications (e.g., hosted, VAST, third-party tags)
|
|
1358
1551
|
*/
|
|
1359
1552
|
delivery?: {
|
|
1360
|
-
[k: string]: unknown;
|
|
1553
|
+
[k: string]: unknown | undefined;
|
|
1361
1554
|
};
|
|
1362
1555
|
/**
|
|
1363
1556
|
* List of universal macros supported by this format (e.g., MEDIA_BUY_ID, CACHEBUSTER, DEVICE_ID). Used for validation and developer tooling.
|
|
@@ -1376,9 +1569,9 @@ export interface Format {
|
|
|
1376
1569
|
* Asset manifest for rendering the card, structure defined by the format
|
|
1377
1570
|
*/
|
|
1378
1571
|
manifest: {
|
|
1379
|
-
[k: string]: unknown;
|
|
1572
|
+
[k: string]: unknown | undefined;
|
|
1380
1573
|
};
|
|
1381
|
-
[k: string]: unknown;
|
|
1574
|
+
[k: string]: unknown | undefined;
|
|
1382
1575
|
};
|
|
1383
1576
|
/**
|
|
1384
1577
|
* Optional detailed card with carousel and full specifications. Provides rich format documentation similar to ad spec pages.
|
|
@@ -1389,11 +1582,11 @@ export interface Format {
|
|
|
1389
1582
|
* Asset manifest for rendering the detailed card, structure defined by the format
|
|
1390
1583
|
*/
|
|
1391
1584
|
manifest: {
|
|
1392
|
-
[k: string]: unknown;
|
|
1585
|
+
[k: string]: unknown | undefined;
|
|
1393
1586
|
};
|
|
1394
|
-
[k: string]: unknown;
|
|
1587
|
+
[k: string]: unknown | undefined;
|
|
1395
1588
|
};
|
|
1396
|
-
[k: string]: unknown;
|
|
1589
|
+
[k: string]: unknown | undefined;
|
|
1397
1590
|
}
|
|
1398
1591
|
/**
|
|
1399
1592
|
* Structured format identifier with agent URL and format name
|
|
@@ -1419,7 +1612,7 @@ export interface FormatID3 {
|
|
|
1419
1612
|
* Duration in milliseconds for time-based formats (video, audio). When specified, creates a parameterized format ID. Omit to reference a template format without parameters.
|
|
1420
1613
|
*/
|
|
1421
1614
|
duration_ms?: number;
|
|
1422
|
-
[k: string]: unknown;
|
|
1615
|
+
[k: string]: unknown | undefined;
|
|
1423
1616
|
}
|
|
1424
1617
|
/**
|
|
1425
1618
|
* Standard error structure for task-specific errors and warnings
|
|
@@ -1428,6 +1621,10 @@ export interface FormatID3 {
|
|
|
1428
1621
|
* Budget pacing strategy
|
|
1429
1622
|
*/
|
|
1430
1623
|
export type Pacing = 'even' | 'asap' | 'front_loaded';
|
|
1624
|
+
/**
|
|
1625
|
+
* Metro area classification system (e.g., 'nielsen_dma', 'uk_itl2')
|
|
1626
|
+
*/
|
|
1627
|
+
export type PostalCodeSystem = 'us_zip' | 'us_zip_plus_four' | 'gb_outward' | 'gb_full' | 'ca_fsa' | 'ca_full' | 'de_plz' | 'fr_code_postal' | 'au_postcode';
|
|
1431
1628
|
/**
|
|
1432
1629
|
* JavaScript module type
|
|
1433
1630
|
*/
|
|
@@ -1457,7 +1654,7 @@ export type VASTAsset = {
|
|
|
1457
1654
|
* Tracking events supported by this VAST tag
|
|
1458
1655
|
*/
|
|
1459
1656
|
tracking_events?: VASTTrackingEvent[];
|
|
1460
|
-
[k: string]: unknown;
|
|
1657
|
+
[k: string]: unknown | undefined;
|
|
1461
1658
|
} | {
|
|
1462
1659
|
/**
|
|
1463
1660
|
* Discriminator indicating VAST is delivered as inline XML content
|
|
@@ -1480,7 +1677,7 @@ export type VASTAsset = {
|
|
|
1480
1677
|
* Tracking events supported by this VAST tag
|
|
1481
1678
|
*/
|
|
1482
1679
|
tracking_events?: VASTTrackingEvent[];
|
|
1483
|
-
[k: string]: unknown;
|
|
1680
|
+
[k: string]: unknown | undefined;
|
|
1484
1681
|
};
|
|
1485
1682
|
/**
|
|
1486
1683
|
* VAST specification version
|
|
@@ -1519,7 +1716,7 @@ export type DAASTAsset = {
|
|
|
1519
1716
|
* Whether companion display ads are included
|
|
1520
1717
|
*/
|
|
1521
1718
|
companion_ads?: boolean;
|
|
1522
|
-
[k: string]: unknown;
|
|
1719
|
+
[k: string]: unknown | undefined;
|
|
1523
1720
|
} | {
|
|
1524
1721
|
/**
|
|
1525
1722
|
* Discriminator indicating DAAST is delivered as inline XML content
|
|
@@ -1542,7 +1739,7 @@ export type DAASTAsset = {
|
|
|
1542
1739
|
* Whether companion display ads are included
|
|
1543
1740
|
*/
|
|
1544
1741
|
companion_ads?: boolean;
|
|
1545
|
-
[k: string]: unknown;
|
|
1742
|
+
[k: string]: unknown | undefined;
|
|
1546
1743
|
};
|
|
1547
1744
|
/**
|
|
1548
1745
|
* DAAST specification version
|
|
@@ -1560,6 +1757,10 @@ export type DAASTVersion1 = '1.0' | '1.1';
|
|
|
1560
1757
|
* Brand information manifest containing assets, themes, and guidelines. Can be provided inline or as a URL reference to a hosted manifest.
|
|
1561
1758
|
*/
|
|
1562
1759
|
export type URLAssetType = 'clickthrough' | 'tracker_pixel' | 'tracker_script';
|
|
1760
|
+
/**
|
|
1761
|
+
* For generative creatives: set to 'approved' to finalize, 'rejected' to request regeneration with updated assets/message. Omit for non-generative creatives (system will set based on processing state).
|
|
1762
|
+
*/
|
|
1763
|
+
export type CreativeStatus = 'processing' | 'approved' | 'rejected' | 'pending_review' | 'archived';
|
|
1563
1764
|
/**
|
|
1564
1765
|
* Brand information manifest serving as the namespace and identity for this media buy. Provides brand context, assets, and product catalog. Can be provided inline or as a URL reference to a hosted manifest. Can be cached and reused across multiple requests.
|
|
1565
1766
|
*/
|
|
@@ -1573,7 +1774,7 @@ export type StartTiming = 'asap' | string;
|
|
|
1573
1774
|
*/
|
|
1574
1775
|
export type AuthenticationScheme = 'Bearer' | 'HMAC-SHA256';
|
|
1575
1776
|
/**
|
|
1576
|
-
*
|
|
1777
|
+
* Standard delivery and performance metrics available for reporting
|
|
1577
1778
|
*/
|
|
1578
1779
|
export interface CreateMediaBuyRequest {
|
|
1579
1780
|
/**
|
|
@@ -1581,9 +1782,26 @@ export interface CreateMediaBuyRequest {
|
|
|
1581
1782
|
*/
|
|
1582
1783
|
buyer_ref: string;
|
|
1583
1784
|
/**
|
|
1584
|
-
*
|
|
1785
|
+
* ID of a proposal from get_products to execute. When provided with total_budget, the publisher converts the proposal's allocation percentages into packages automatically. Alternative to providing packages array.
|
|
1786
|
+
*/
|
|
1787
|
+
proposal_id?: string;
|
|
1788
|
+
/**
|
|
1789
|
+
* Total budget for the media buy when executing a proposal. The publisher applies the proposal's allocation percentages to this amount to derive package budgets.
|
|
1790
|
+
*/
|
|
1791
|
+
total_budget?: {
|
|
1792
|
+
/**
|
|
1793
|
+
* Total budget amount
|
|
1794
|
+
*/
|
|
1795
|
+
amount: number;
|
|
1796
|
+
/**
|
|
1797
|
+
* ISO 4217 currency code
|
|
1798
|
+
*/
|
|
1799
|
+
currency: string;
|
|
1800
|
+
};
|
|
1801
|
+
/**
|
|
1802
|
+
* Array of package configurations. Required when not using proposal_id. When executing a proposal, this can be omitted and packages will be derived from the proposal's allocations.
|
|
1585
1803
|
*/
|
|
1586
|
-
packages
|
|
1804
|
+
packages?: PackageRequest[];
|
|
1587
1805
|
brand_manifest: BrandManifestReference1;
|
|
1588
1806
|
/**
|
|
1589
1807
|
* Purchase order number for tracking
|
|
@@ -1594,12 +1812,13 @@ export interface CreateMediaBuyRequest {
|
|
|
1594
1812
|
* Campaign end date/time in ISO 8601 format
|
|
1595
1813
|
*/
|
|
1596
1814
|
end_time: string;
|
|
1815
|
+
reporting_webhook?: ReportingWebhook;
|
|
1597
1816
|
/**
|
|
1598
|
-
* Optional webhook configuration for
|
|
1817
|
+
* Optional webhook configuration for content artifact delivery. Used by governance agents to validate content adjacency. Seller pushes artifacts to this endpoint; orchestrator forwards to governance agent for validation.
|
|
1599
1818
|
*/
|
|
1600
|
-
|
|
1819
|
+
artifact_webhook?: {
|
|
1601
1820
|
/**
|
|
1602
|
-
* Webhook endpoint URL for
|
|
1821
|
+
* Webhook endpoint URL for artifact delivery
|
|
1603
1822
|
*/
|
|
1604
1823
|
url: string;
|
|
1605
1824
|
/**
|
|
@@ -1622,13 +1841,17 @@ export interface CreateMediaBuyRequest {
|
|
|
1622
1841
|
credentials: string;
|
|
1623
1842
|
};
|
|
1624
1843
|
/**
|
|
1625
|
-
*
|
|
1844
|
+
* How artifacts are delivered. 'realtime' pushes artifacts as impressions occur. 'batched' aggregates artifacts and pushes periodically (see batch_frequency).
|
|
1845
|
+
*/
|
|
1846
|
+
delivery_mode: 'realtime' | 'batched';
|
|
1847
|
+
/**
|
|
1848
|
+
* For batched delivery, how often to push artifacts. Required when delivery_mode is 'batched'.
|
|
1626
1849
|
*/
|
|
1627
|
-
|
|
1850
|
+
batch_frequency?: 'hourly' | 'daily';
|
|
1628
1851
|
/**
|
|
1629
|
-
*
|
|
1852
|
+
* Fraction of impressions to include (0-1). 1.0 = all impressions, 0.1 = 10% sample. Default: 1.0
|
|
1630
1853
|
*/
|
|
1631
|
-
|
|
1854
|
+
sampling_rate?: number;
|
|
1632
1855
|
};
|
|
1633
1856
|
context?: ContextObject;
|
|
1634
1857
|
ext?: ExtensionObject;
|
|
@@ -1664,40 +1887,64 @@ export interface PackageRequest {
|
|
|
1664
1887
|
* Bid price for auction-based CPM pricing (required if using cpm-auction-option)
|
|
1665
1888
|
*/
|
|
1666
1889
|
bid_price?: number;
|
|
1890
|
+
/**
|
|
1891
|
+
* Impression goal for this package
|
|
1892
|
+
*/
|
|
1893
|
+
impressions?: number;
|
|
1894
|
+
/**
|
|
1895
|
+
* Whether this package should be created in a paused state. Paused packages do not deliver impressions. Defaults to false.
|
|
1896
|
+
*/
|
|
1897
|
+
paused?: boolean;
|
|
1667
1898
|
targeting_overlay?: TargetingOverlay;
|
|
1668
1899
|
/**
|
|
1669
|
-
*
|
|
1900
|
+
* Assign existing library creatives to this package with optional weights and placement targeting
|
|
1670
1901
|
*/
|
|
1671
|
-
|
|
1902
|
+
creative_assignments?: CreativeAssignment[];
|
|
1672
1903
|
/**
|
|
1673
|
-
*
|
|
1904
|
+
* Upload new creative assets and assign to this package (creatives will be added to library). Use creative_assignments instead for existing library creatives.
|
|
1674
1905
|
*
|
|
1675
1906
|
* @maxItems 100
|
|
1676
1907
|
*/
|
|
1677
1908
|
creatives?: CreativeAsset[];
|
|
1678
1909
|
ext?: ExtensionObject;
|
|
1679
|
-
[k: string]: unknown;
|
|
1910
|
+
[k: string]: unknown | undefined;
|
|
1680
1911
|
}
|
|
1681
1912
|
/**
|
|
1682
1913
|
* 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.
|
|
1683
1914
|
*/
|
|
1684
1915
|
export interface TargetingOverlay {
|
|
1685
1916
|
/**
|
|
1686
|
-
* Restrict delivery to specific countries
|
|
1917
|
+
* Restrict delivery to specific countries. ISO 3166-1 alpha-2 codes (e.g., 'US', 'GB', 'DE').
|
|
1687
1918
|
*/
|
|
1688
|
-
|
|
1919
|
+
geo_countries?: string[];
|
|
1689
1920
|
/**
|
|
1690
|
-
* Restrict delivery to specific regions/states.
|
|
1921
|
+
* Restrict delivery to specific regions/states. ISO 3166-2 subdivision codes (e.g., 'US-CA', 'GB-SCT').
|
|
1691
1922
|
*/
|
|
1692
|
-
|
|
1923
|
+
geo_regions?: string[];
|
|
1693
1924
|
/**
|
|
1694
|
-
* Restrict delivery to specific metro areas
|
|
1925
|
+
* Restrict delivery to specific metro areas. Each entry specifies the classification system and target values. Seller must declare supported systems in get_adcp_capabilities.
|
|
1695
1926
|
*/
|
|
1696
|
-
|
|
1927
|
+
geo_metros?: {
|
|
1928
|
+
system: MetroAreaSystem;
|
|
1929
|
+
/**
|
|
1930
|
+
* Metro codes within the system (e.g., ['501', '602'] for Nielsen DMAs)
|
|
1931
|
+
*
|
|
1932
|
+
* @minItems 1
|
|
1933
|
+
*/
|
|
1934
|
+
values: [string, ...string[]];
|
|
1935
|
+
}[];
|
|
1697
1936
|
/**
|
|
1698
|
-
* Restrict delivery to specific postal
|
|
1937
|
+
* Restrict delivery to specific postal areas. Each entry specifies the postal system and target values. Seller must declare supported systems in get_adcp_capabilities.
|
|
1699
1938
|
*/
|
|
1700
|
-
|
|
1939
|
+
geo_postal_areas?: {
|
|
1940
|
+
system: PostalCodeSystem;
|
|
1941
|
+
/**
|
|
1942
|
+
* Postal codes within the system (e.g., ['10001', '10002'] for us_zip)
|
|
1943
|
+
*
|
|
1944
|
+
* @minItems 1
|
|
1945
|
+
*/
|
|
1946
|
+
values: [string, ...string[]];
|
|
1947
|
+
}[];
|
|
1701
1948
|
/**
|
|
1702
1949
|
* AXE segment ID to include for targeting
|
|
1703
1950
|
*/
|
|
@@ -1707,7 +1954,7 @@ export interface TargetingOverlay {
|
|
|
1707
1954
|
*/
|
|
1708
1955
|
axe_exclude_segment?: string;
|
|
1709
1956
|
frequency_cap?: FrequencyCap;
|
|
1710
|
-
[k: string]: unknown;
|
|
1957
|
+
[k: string]: unknown | undefined;
|
|
1711
1958
|
}
|
|
1712
1959
|
/**
|
|
1713
1960
|
* Frequency capping settings for package-level application
|
|
@@ -1717,7 +1964,27 @@ export interface FrequencyCap {
|
|
|
1717
1964
|
* Minutes to suppress after impression
|
|
1718
1965
|
*/
|
|
1719
1966
|
suppress_minutes: number;
|
|
1720
|
-
[k: string]: unknown;
|
|
1967
|
+
[k: string]: unknown | undefined;
|
|
1968
|
+
}
|
|
1969
|
+
/**
|
|
1970
|
+
* Assignment of a creative asset to a package with optional placement targeting. Used in create_media_buy and update_media_buy requests. Note: sync_creatives does not support placement_ids - use create/update_media_buy for placement-level targeting.
|
|
1971
|
+
*/
|
|
1972
|
+
export interface CreativeAssignment {
|
|
1973
|
+
/**
|
|
1974
|
+
* Unique identifier for the creative
|
|
1975
|
+
*/
|
|
1976
|
+
creative_id: string;
|
|
1977
|
+
/**
|
|
1978
|
+
* Delivery weight for this creative
|
|
1979
|
+
*/
|
|
1980
|
+
weight?: number;
|
|
1981
|
+
/**
|
|
1982
|
+
* 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.
|
|
1983
|
+
*
|
|
1984
|
+
* @minItems 1
|
|
1985
|
+
*/
|
|
1986
|
+
placement_ids?: [string, ...string[]];
|
|
1987
|
+
[k: string]: unknown | undefined;
|
|
1721
1988
|
}
|
|
1722
1989
|
/**
|
|
1723
1990
|
* Creative asset for upload to library - supports static assets, generative formats, and third-party snippets
|
|
@@ -1736,7 +2003,7 @@ export interface CreativeAsset {
|
|
|
1736
2003
|
* Assets required by the format, keyed by asset_role
|
|
1737
2004
|
*/
|
|
1738
2005
|
assets: {
|
|
1739
|
-
[k: string]: unknown;
|
|
2006
|
+
[k: string]: unknown | undefined;
|
|
1740
2007
|
};
|
|
1741
2008
|
/**
|
|
1742
2009
|
* Preview contexts for generative formats - defines what scenarios to generate previews for
|
|
@@ -1750,22 +2017,19 @@ export interface CreativeAsset {
|
|
|
1750
2017
|
* Macro values to apply for this preview
|
|
1751
2018
|
*/
|
|
1752
2019
|
macros?: {
|
|
1753
|
-
[k: string]: string;
|
|
2020
|
+
[k: string]: string | undefined;
|
|
1754
2021
|
};
|
|
1755
2022
|
/**
|
|
1756
2023
|
* Natural language description of the context for AI-generated content
|
|
1757
2024
|
*/
|
|
1758
2025
|
context_description?: string;
|
|
1759
|
-
[k: string]: unknown;
|
|
2026
|
+
[k: string]: unknown | undefined;
|
|
1760
2027
|
}[];
|
|
1761
2028
|
/**
|
|
1762
2029
|
* User-defined tags for organization and searchability
|
|
1763
2030
|
*/
|
|
1764
2031
|
tags?: string[];
|
|
1765
|
-
|
|
1766
|
-
* For generative creatives: set to true to approve and finalize, false to request regeneration with updated assets/message. Omit for non-generative creatives.
|
|
1767
|
-
*/
|
|
1768
|
-
approved?: boolean;
|
|
2032
|
+
status?: CreativeStatus;
|
|
1769
2033
|
/**
|
|
1770
2034
|
* Optional delivery weight for creative rotation when uploading via create_media_buy or update_media_buy (0-100). If omitted, platform determines rotation. Only used during upload to media buy - not stored in creative library.
|
|
1771
2035
|
*/
|
|
@@ -1776,7 +2040,7 @@ export interface CreativeAsset {
|
|
|
1776
2040
|
* @minItems 1
|
|
1777
2041
|
*/
|
|
1778
2042
|
placement_ids?: [string, ...string[]];
|
|
1779
|
-
[k: string]: unknown;
|
|
2043
|
+
[k: string]: unknown | undefined;
|
|
1780
2044
|
}
|
|
1781
2045
|
/**
|
|
1782
2046
|
* 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.
|
|
@@ -1802,7 +2066,7 @@ export interface ImageAsset {
|
|
|
1802
2066
|
* Alternative text for accessibility
|
|
1803
2067
|
*/
|
|
1804
2068
|
alt_text?: string;
|
|
1805
|
-
[k: string]: unknown;
|
|
2069
|
+
[k: string]: unknown | undefined;
|
|
1806
2070
|
}
|
|
1807
2071
|
/**
|
|
1808
2072
|
* Video asset with URL and specifications
|
|
@@ -1832,7 +2096,7 @@ export interface VideoAsset {
|
|
|
1832
2096
|
* Video bitrate in kilobits per second
|
|
1833
2097
|
*/
|
|
1834
2098
|
bitrate_kbps?: number;
|
|
1835
|
-
[k: string]: unknown;
|
|
2099
|
+
[k: string]: unknown | undefined;
|
|
1836
2100
|
}
|
|
1837
2101
|
/**
|
|
1838
2102
|
* Audio asset with URL and specifications
|
|
@@ -1854,7 +2118,7 @@ export interface AudioAsset {
|
|
|
1854
2118
|
* Audio bitrate in kilobits per second
|
|
1855
2119
|
*/
|
|
1856
2120
|
bitrate_kbps?: number;
|
|
1857
|
-
[k: string]: unknown;
|
|
2121
|
+
[k: string]: unknown | undefined;
|
|
1858
2122
|
}
|
|
1859
2123
|
/**
|
|
1860
2124
|
* Text content asset
|
|
@@ -1868,7 +2132,7 @@ export interface TextAsset {
|
|
|
1868
2132
|
* Language code (e.g., 'en', 'es', 'fr')
|
|
1869
2133
|
*/
|
|
1870
2134
|
language?: string;
|
|
1871
|
-
[k: string]: unknown;
|
|
2135
|
+
[k: string]: unknown | undefined;
|
|
1872
2136
|
}
|
|
1873
2137
|
/**
|
|
1874
2138
|
* HTML content asset
|
|
@@ -1882,7 +2146,7 @@ export interface HTMLAsset {
|
|
|
1882
2146
|
* HTML version (e.g., 'HTML5')
|
|
1883
2147
|
*/
|
|
1884
2148
|
version?: string;
|
|
1885
|
-
[k: string]: unknown;
|
|
2149
|
+
[k: string]: unknown | undefined;
|
|
1886
2150
|
}
|
|
1887
2151
|
/**
|
|
1888
2152
|
* CSS stylesheet asset
|
|
@@ -1896,7 +2160,7 @@ export interface CSSAsset {
|
|
|
1896
2160
|
* CSS media query context (e.g., 'screen', 'print')
|
|
1897
2161
|
*/
|
|
1898
2162
|
media?: string;
|
|
1899
|
-
[k: string]: unknown;
|
|
2163
|
+
[k: string]: unknown | undefined;
|
|
1900
2164
|
}
|
|
1901
2165
|
/**
|
|
1902
2166
|
* JavaScript code asset
|
|
@@ -1907,34 +2171,22 @@ export interface JavaScriptAsset {
|
|
|
1907
2171
|
*/
|
|
1908
2172
|
content: string;
|
|
1909
2173
|
module_type?: JavaScriptModuleType;
|
|
1910
|
-
[k: string]: unknown;
|
|
2174
|
+
[k: string]: unknown | undefined;
|
|
1911
2175
|
}
|
|
1912
2176
|
/**
|
|
1913
|
-
* Complete offering specification combining brand manifest, product selectors, and
|
|
2177
|
+
* Complete offering specification combining brand manifest, product selectors, and optional SI agent endpoint. Provides all context needed for creative generation and/or conversational experiences about what is being promoted. When si_agent_url is present, hosts can connect users to conversational experiences about any of the offerings.
|
|
1914
2178
|
*/
|
|
1915
2179
|
export interface PromotedOfferings {
|
|
1916
2180
|
brand_manifest: BrandManifestReference;
|
|
2181
|
+
/**
|
|
2182
|
+
* MCP endpoint URL for the brand's SI agent. When present, hosts can connect users to conversational experiences about any of the offerings. The agent handles si_get_offering lookups and full conversations.
|
|
2183
|
+
*/
|
|
2184
|
+
si_agent_url?: string;
|
|
1917
2185
|
product_selectors?: PromotedProducts;
|
|
1918
2186
|
/**
|
|
1919
|
-
*
|
|
2187
|
+
* Offerings available for promotion. Each offering can include creative assets (via portfolio_ref or inline assets) for traditional ads. When si_agent_url is set at the parent level, hosts can offer conversational experiences about any of these offerings.
|
|
1920
2188
|
*/
|
|
1921
|
-
offerings?:
|
|
1922
|
-
/**
|
|
1923
|
-
* Offering name (e.g., 'Winter Sale', 'New Product Launch')
|
|
1924
|
-
*/
|
|
1925
|
-
name: string;
|
|
1926
|
-
/**
|
|
1927
|
-
* Description of what's being offered
|
|
1928
|
-
*/
|
|
1929
|
-
description?: string;
|
|
1930
|
-
/**
|
|
1931
|
-
* Assets specific to this offering
|
|
1932
|
-
*/
|
|
1933
|
-
assets?: {
|
|
1934
|
-
[k: string]: unknown;
|
|
1935
|
-
}[];
|
|
1936
|
-
[k: string]: unknown;
|
|
1937
|
-
}[];
|
|
2189
|
+
offerings?: Offering[];
|
|
1938
2190
|
/**
|
|
1939
2191
|
* Selectors to choose specific assets from the brand manifest
|
|
1940
2192
|
*/
|
|
@@ -1951,9 +2203,9 @@ export interface PromotedOfferings {
|
|
|
1951
2203
|
* Exclude assets with these tags
|
|
1952
2204
|
*/
|
|
1953
2205
|
exclude_tags?: string[];
|
|
1954
|
-
[k: string]: unknown;
|
|
2206
|
+
[k: string]: unknown | undefined;
|
|
1955
2207
|
};
|
|
1956
|
-
[k: string]: unknown;
|
|
2208
|
+
[k: string]: unknown | undefined;
|
|
1957
2209
|
}
|
|
1958
2210
|
/**
|
|
1959
2211
|
* Inline brand manifest object
|
|
@@ -1975,124 +2227,199 @@ export interface PromotedProducts {
|
|
|
1975
2227
|
* Natural language query to select products from the brand manifest (e.g., 'all Kraft Heinz pasta sauces', 'organic products under $20')
|
|
1976
2228
|
*/
|
|
1977
2229
|
manifest_query?: string;
|
|
1978
|
-
[k: string]: unknown;
|
|
2230
|
+
[k: string]: unknown | undefined;
|
|
1979
2231
|
}
|
|
1980
2232
|
/**
|
|
1981
|
-
*
|
|
2233
|
+
* A promotable offering from a brand. Can represent a campaign, product promotion, service, or any other thing the brand wants to make available. Offerings can be promoted via traditional creatives (using portfolio_ref or assets) or conversational SI experiences (via si_agent_url at the promoted-offerings level).
|
|
1982
2234
|
*/
|
|
1983
|
-
export interface
|
|
2235
|
+
export interface Offering {
|
|
1984
2236
|
/**
|
|
1985
|
-
*
|
|
2237
|
+
* Unique identifier for this offering. Used by hosts to reference specific offerings in si_get_offering calls.
|
|
1986
2238
|
*/
|
|
1987
|
-
|
|
1988
|
-
url_type?: URLAssetType;
|
|
2239
|
+
offering_id: string;
|
|
1989
2240
|
/**
|
|
1990
|
-
*
|
|
2241
|
+
* Human-readable offering name (e.g., 'Winter Sale', 'Free Trial', 'Enterprise Platform')
|
|
1991
2242
|
*/
|
|
1992
|
-
|
|
1993
|
-
[k: string]: unknown;
|
|
1994
|
-
}
|
|
1995
|
-
/**
|
|
1996
|
-
* 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.
|
|
1997
|
-
*/
|
|
1998
|
-
/**
|
|
1999
|
-
* Response payload for create_media_buy task. Returns either complete success data OR error information, never both. This enforces atomic operation semantics - the media buy is either fully created or not created at all.
|
|
2000
|
-
*/
|
|
2001
|
-
export type CreateMediaBuyResponse = CreateMediaBuySuccess | CreateMediaBuyError;
|
|
2002
|
-
/**
|
|
2003
|
-
* Budget pacing strategy
|
|
2004
|
-
*/
|
|
2005
|
-
export interface CreateMediaBuySuccess {
|
|
2243
|
+
name: string;
|
|
2006
2244
|
/**
|
|
2007
|
-
*
|
|
2245
|
+
* Description of what's being offered
|
|
2008
2246
|
*/
|
|
2009
|
-
|
|
2247
|
+
description?: string;
|
|
2010
2248
|
/**
|
|
2011
|
-
*
|
|
2249
|
+
* Short promotional tagline for the offering
|
|
2012
2250
|
*/
|
|
2013
|
-
|
|
2251
|
+
tagline?: string;
|
|
2014
2252
|
/**
|
|
2015
|
-
*
|
|
2253
|
+
* When the offering becomes available. If not specified, offering is immediately available.
|
|
2016
2254
|
*/
|
|
2017
|
-
|
|
2255
|
+
valid_from?: string;
|
|
2018
2256
|
/**
|
|
2019
|
-
*
|
|
2257
|
+
* When the offering expires. If not specified, offering has no expiration.
|
|
2020
2258
|
*/
|
|
2021
|
-
|
|
2022
|
-
context?: ContextObject;
|
|
2023
|
-
ext?: ExtensionObject;
|
|
2024
|
-
}
|
|
2025
|
-
/**
|
|
2026
|
-
* A specific product within a media buy (line item)
|
|
2027
|
-
*/
|
|
2028
|
-
export interface Package {
|
|
2259
|
+
valid_to?: string;
|
|
2029
2260
|
/**
|
|
2030
|
-
*
|
|
2261
|
+
* URL for checkout/purchase flow when the brand doesn't support agentic checkout.
|
|
2031
2262
|
*/
|
|
2032
|
-
|
|
2263
|
+
checkout_url?: string;
|
|
2033
2264
|
/**
|
|
2034
|
-
*
|
|
2265
|
+
* Landing page URL for this offering.
|
|
2035
2266
|
*/
|
|
2036
|
-
|
|
2267
|
+
landing_url?: string;
|
|
2037
2268
|
/**
|
|
2038
|
-
*
|
|
2269
|
+
* Assets specific to this offering (images, videos, copy)
|
|
2039
2270
|
*/
|
|
2040
|
-
|
|
2271
|
+
assets?: {
|
|
2272
|
+
[k: string]: unknown | undefined;
|
|
2273
|
+
}[];
|
|
2041
2274
|
/**
|
|
2042
|
-
*
|
|
2275
|
+
* Reference to a creative portfolio for this offering. Portfolios contain organized creative assets across formats, enabling consistent ad delivery for this specific offering.
|
|
2043
2276
|
*/
|
|
2044
|
-
|
|
2045
|
-
pacing?: Pacing;
|
|
2277
|
+
portfolio_ref?: string;
|
|
2046
2278
|
/**
|
|
2047
|
-
*
|
|
2279
|
+
* Keywords for matching this offering to user intent. Hosts use these for retrieval/relevance scoring.
|
|
2048
2280
|
*/
|
|
2049
|
-
|
|
2281
|
+
keywords?: string[];
|
|
2050
2282
|
/**
|
|
2051
|
-
*
|
|
2283
|
+
* Categories this offering belongs to (e.g., 'measurement', 'identity', 'programmatic')
|
|
2052
2284
|
*/
|
|
2053
|
-
|
|
2054
|
-
|
|
2055
|
-
|
|
2285
|
+
categories?: string[];
|
|
2286
|
+
ext?: ExtensionObject;
|
|
2287
|
+
[k: string]: unknown | undefined;
|
|
2288
|
+
}
|
|
2289
|
+
/**
|
|
2290
|
+
* 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.
|
|
2291
|
+
*/
|
|
2292
|
+
export interface URLAsset {
|
|
2293
|
+
/**
|
|
2294
|
+
* URL reference
|
|
2056
2295
|
*/
|
|
2057
|
-
|
|
2058
|
-
|
|
2296
|
+
url: string;
|
|
2297
|
+
url_type?: URLAssetType;
|
|
2059
2298
|
/**
|
|
2060
|
-
*
|
|
2299
|
+
* Description of what this URL points to
|
|
2061
2300
|
*/
|
|
2062
|
-
|
|
2301
|
+
description?: string;
|
|
2302
|
+
[k: string]: unknown | undefined;
|
|
2303
|
+
}
|
|
2304
|
+
/**
|
|
2305
|
+
* Optional webhook configuration for automated reporting delivery
|
|
2306
|
+
*/
|
|
2307
|
+
export interface ReportingWebhook {
|
|
2063
2308
|
/**
|
|
2064
|
-
*
|
|
2309
|
+
* Webhook endpoint URL for reporting notifications
|
|
2065
2310
|
*/
|
|
2066
|
-
|
|
2311
|
+
url: string;
|
|
2067
2312
|
/**
|
|
2068
|
-
*
|
|
2313
|
+
* Optional client-provided token for webhook validation. Echoed back in webhook payload to validate request authenticity.
|
|
2069
2314
|
*/
|
|
2070
|
-
|
|
2315
|
+
token?: string;
|
|
2316
|
+
/**
|
|
2317
|
+
* Authentication configuration for webhook delivery (A2A-compatible)
|
|
2318
|
+
*/
|
|
2319
|
+
authentication: {
|
|
2320
|
+
/**
|
|
2321
|
+
* Array of authentication schemes. Supported: ['Bearer'] for simple token auth, ['HMAC-SHA256'] for signature verification (recommended for production)
|
|
2322
|
+
*
|
|
2323
|
+
* @minItems 1
|
|
2324
|
+
* @maxItems 1
|
|
2325
|
+
*/
|
|
2326
|
+
schemes: [AuthenticationScheme];
|
|
2327
|
+
/**
|
|
2328
|
+
* 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.
|
|
2329
|
+
*/
|
|
2330
|
+
credentials: string;
|
|
2331
|
+
};
|
|
2332
|
+
/**
|
|
2333
|
+
* Frequency for automated reporting delivery. Must be supported by all products in the media buy.
|
|
2334
|
+
*/
|
|
2335
|
+
reporting_frequency: 'hourly' | 'daily' | 'monthly';
|
|
2336
|
+
/**
|
|
2337
|
+
* Optional list of metrics to include in webhook notifications. If omitted, all available metrics are included. Must be subset of product's available_metrics.
|
|
2338
|
+
*/
|
|
2339
|
+
requested_metrics?: AvailableMetric[];
|
|
2340
|
+
[k: string]: unknown | undefined;
|
|
2341
|
+
}
|
|
2342
|
+
/**
|
|
2343
|
+
* 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.
|
|
2344
|
+
*/
|
|
2345
|
+
/**
|
|
2346
|
+
* Response payload for create_media_buy task. Returns either complete success data OR error information, never both. This enforces atomic operation semantics - the media buy is either fully created or not created at all.
|
|
2347
|
+
*/
|
|
2348
|
+
export type CreateMediaBuyResponse = CreateMediaBuySuccess | CreateMediaBuyError;
|
|
2349
|
+
/**
|
|
2350
|
+
* Budget pacing strategy
|
|
2351
|
+
*/
|
|
2352
|
+
export interface CreateMediaBuySuccess {
|
|
2353
|
+
/**
|
|
2354
|
+
* Publisher's unique identifier for the created media buy
|
|
2355
|
+
*/
|
|
2356
|
+
media_buy_id: string;
|
|
2357
|
+
/**
|
|
2358
|
+
* Buyer's reference identifier for this media buy
|
|
2359
|
+
*/
|
|
2360
|
+
buyer_ref: string;
|
|
2361
|
+
/**
|
|
2362
|
+
* ISO 8601 timestamp for creative upload deadline
|
|
2363
|
+
*/
|
|
2364
|
+
creative_deadline?: string;
|
|
2365
|
+
/**
|
|
2366
|
+
* Array of created packages with complete state information
|
|
2367
|
+
*/
|
|
2368
|
+
packages: Package[];
|
|
2369
|
+
context?: ContextObject;
|
|
2071
2370
|
ext?: ExtensionObject;
|
|
2072
|
-
[k: string]: unknown;
|
|
2073
2371
|
}
|
|
2074
2372
|
/**
|
|
2075
|
-
*
|
|
2373
|
+
* A specific product within a media buy (line item)
|
|
2076
2374
|
*/
|
|
2077
|
-
export interface
|
|
2375
|
+
export interface Package {
|
|
2078
2376
|
/**
|
|
2079
|
-
*
|
|
2377
|
+
* Publisher's unique identifier for the package
|
|
2080
2378
|
*/
|
|
2081
|
-
|
|
2379
|
+
package_id: string;
|
|
2082
2380
|
/**
|
|
2083
|
-
*
|
|
2381
|
+
* Buyer's reference identifier for this package
|
|
2084
2382
|
*/
|
|
2085
|
-
|
|
2383
|
+
buyer_ref?: string;
|
|
2086
2384
|
/**
|
|
2087
|
-
*
|
|
2088
|
-
*
|
|
2089
|
-
* @minItems 1
|
|
2385
|
+
* ID of the product this package is based on
|
|
2090
2386
|
*/
|
|
2091
|
-
|
|
2092
|
-
|
|
2387
|
+
product_id?: string;
|
|
2388
|
+
/**
|
|
2389
|
+
* Budget allocation for this package in the currency specified by the pricing option
|
|
2390
|
+
*/
|
|
2391
|
+
budget?: number;
|
|
2392
|
+
pacing?: Pacing;
|
|
2393
|
+
/**
|
|
2394
|
+
* ID of the selected pricing option from the product's pricing_options array
|
|
2395
|
+
*/
|
|
2396
|
+
pricing_option_id?: string;
|
|
2397
|
+
/**
|
|
2398
|
+
* Bid price for auction-based CPM pricing (present if using cpm-auction-option)
|
|
2399
|
+
*/
|
|
2400
|
+
bid_price?: number;
|
|
2401
|
+
/**
|
|
2402
|
+
* Impression goal for this package
|
|
2403
|
+
*/
|
|
2404
|
+
impressions?: number;
|
|
2405
|
+
targeting_overlay?: TargetingOverlay;
|
|
2406
|
+
/**
|
|
2407
|
+
* Creative assets assigned to this package
|
|
2408
|
+
*/
|
|
2409
|
+
creative_assignments?: CreativeAssignment[];
|
|
2410
|
+
/**
|
|
2411
|
+
* Format IDs that creative assets will be provided for this package
|
|
2412
|
+
*/
|
|
2413
|
+
format_ids_to_provide?: FormatID[];
|
|
2414
|
+
/**
|
|
2415
|
+
* Whether this package is paused by the buyer. Paused packages do not deliver impressions. Defaults to false.
|
|
2416
|
+
*/
|
|
2417
|
+
paused?: boolean;
|
|
2418
|
+
ext?: ExtensionObject;
|
|
2419
|
+
[k: string]: unknown | undefined;
|
|
2093
2420
|
}
|
|
2094
2421
|
/**
|
|
2095
|
-
*
|
|
2422
|
+
* Optional geographic refinements for media buys. Most targeting should be expressed in the brief and handled by the publisher. These fields are primarily for geographic restrictions (RCT testing, regulatory compliance).
|
|
2096
2423
|
*/
|
|
2097
2424
|
export interface CreateMediaBuyError {
|
|
2098
2425
|
/**
|
|
@@ -2265,17 +2592,9 @@ export interface SyncCreativesError {
|
|
|
2265
2592
|
/**
|
|
2266
2593
|
* Standard error structure for task-specific errors and warnings
|
|
2267
2594
|
*/
|
|
2268
|
-
/**
|
|
2269
|
-
* Filter by creative approval status
|
|
2270
|
-
*/
|
|
2271
|
-
export type CreativeStatus = 'processing' | 'approved' | 'rejected' | 'pending_review';
|
|
2272
2595
|
/**
|
|
2273
2596
|
* Status of a creative asset
|
|
2274
2597
|
*/
|
|
2275
|
-
export type CreativeStatus1 = 'processing' | 'approved' | 'rejected' | 'pending_review';
|
|
2276
|
-
/**
|
|
2277
|
-
* Field to sort by
|
|
2278
|
-
*/
|
|
2279
2598
|
export type CreativeSortField = 'created_date' | 'updated_date' | 'name' | 'status' | 'assignment_count' | 'performance_score';
|
|
2280
2599
|
/**
|
|
2281
2600
|
* Sort direction
|
|
@@ -2326,22 +2645,17 @@ export interface ListCreativesRequest {
|
|
|
2326
2645
|
ext?: ExtensionObject;
|
|
2327
2646
|
}
|
|
2328
2647
|
/**
|
|
2329
|
-
* Filter criteria for querying creative assets from the centralized library
|
|
2648
|
+
* Filter criteria for querying creative assets from the centralized library. By default, archived creatives are excluded from results. To include archived creatives, explicitly filter by status='archived' or include 'archived' in the statuses array.
|
|
2330
2649
|
*/
|
|
2331
2650
|
export interface CreativeFilters {
|
|
2332
2651
|
/**
|
|
2333
|
-
* Filter by creative format
|
|
2334
|
-
*/
|
|
2335
|
-
format?: string;
|
|
2336
|
-
/**
|
|
2337
|
-
* Filter by multiple creative format types
|
|
2652
|
+
* Filter by creative format types (e.g., video, audio, display)
|
|
2338
2653
|
*/
|
|
2339
2654
|
formats?: string[];
|
|
2340
|
-
status?: CreativeStatus;
|
|
2341
2655
|
/**
|
|
2342
|
-
* Filter by
|
|
2656
|
+
* Filter by creative approval statuses
|
|
2343
2657
|
*/
|
|
2344
|
-
statuses?:
|
|
2658
|
+
statuses?: CreativeStatus[];
|
|
2345
2659
|
/**
|
|
2346
2660
|
* Filter by creative tags (all tags must match)
|
|
2347
2661
|
*/
|
|
@@ -2376,10 +2690,6 @@ export interface CreativeFilters {
|
|
|
2376
2690
|
* Filter creatives last updated before this date (ISO 8601)
|
|
2377
2691
|
*/
|
|
2378
2692
|
updated_before?: string;
|
|
2379
|
-
/**
|
|
2380
|
-
* Filter creatives assigned to this specific package
|
|
2381
|
-
*/
|
|
2382
|
-
assigned_to_package?: string;
|
|
2383
2693
|
/**
|
|
2384
2694
|
* Filter creatives assigned to any of these packages
|
|
2385
2695
|
*/
|
|
@@ -2400,7 +2710,7 @@ export interface CreativeFilters {
|
|
|
2400
2710
|
* Filter creatives that have performance data when true
|
|
2401
2711
|
*/
|
|
2402
2712
|
has_performance_data?: boolean;
|
|
2403
|
-
[k: string]: unknown;
|
|
2713
|
+
[k: string]: unknown | undefined;
|
|
2404
2714
|
}
|
|
2405
2715
|
/**
|
|
2406
2716
|
* 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.
|
|
@@ -2425,7 +2735,7 @@ export type SubAsset = {
|
|
|
2425
2735
|
* URL for media assets (images, videos, etc.)
|
|
2426
2736
|
*/
|
|
2427
2737
|
content_uri: string;
|
|
2428
|
-
[k: string]: unknown;
|
|
2738
|
+
[k: string]: unknown | undefined;
|
|
2429
2739
|
} | {
|
|
2430
2740
|
/**
|
|
2431
2741
|
* Discriminator indicating this is a text asset with content
|
|
@@ -2443,7 +2753,7 @@ export type SubAsset = {
|
|
|
2443
2753
|
* Text content for text-based assets like headlines, body text, CTA text, etc.
|
|
2444
2754
|
*/
|
|
2445
2755
|
content: string | string[];
|
|
2446
|
-
[k: string]: unknown;
|
|
2756
|
+
[k: string]: unknown | undefined;
|
|
2447
2757
|
};
|
|
2448
2758
|
/**
|
|
2449
2759
|
* Response from creative library query with filtered results, metadata, and optional enriched data
|
|
@@ -2551,17 +2861,13 @@ export interface ListCreativesResponse {
|
|
|
2551
2861
|
*/
|
|
2552
2862
|
package_id: string;
|
|
2553
2863
|
/**
|
|
2554
|
-
*
|
|
2864
|
+
* Buyer's reference identifier for this package
|
|
2555
2865
|
*/
|
|
2556
|
-
|
|
2866
|
+
buyer_ref?: string;
|
|
2557
2867
|
/**
|
|
2558
2868
|
* When this assignment was created
|
|
2559
2869
|
*/
|
|
2560
2870
|
assigned_date: string;
|
|
2561
|
-
/**
|
|
2562
|
-
* Status of this specific assignment
|
|
2563
|
-
*/
|
|
2564
|
-
status: 'active' | 'paused' | 'ended';
|
|
2565
2871
|
}[];
|
|
2566
2872
|
};
|
|
2567
2873
|
/**
|
|
@@ -2614,6 +2920,10 @@ export interface ListCreativesResponse {
|
|
|
2614
2920
|
* Breakdown of creatives by status
|
|
2615
2921
|
*/
|
|
2616
2922
|
status_summary?: {
|
|
2923
|
+
/**
|
|
2924
|
+
* Number of creatives being processed
|
|
2925
|
+
*/
|
|
2926
|
+
processing?: number;
|
|
2617
2927
|
/**
|
|
2618
2928
|
* Number of approved creatives
|
|
2619
2929
|
*/
|
|
@@ -2640,11 +2950,7 @@ export interface ListCreativesResponse {
|
|
|
2640
2950
|
/**
|
|
2641
2951
|
* Request parameters for updating campaign and package settings
|
|
2642
2952
|
*/
|
|
2643
|
-
export type UpdateMediaBuyRequest =
|
|
2644
|
-
/**
|
|
2645
|
-
* Campaign start timing: 'asap' or ISO 8601 date-time
|
|
2646
|
-
*/
|
|
2647
|
-
export interface UpdateMediaBuyRequest1 {
|
|
2953
|
+
export type UpdateMediaBuyRequest = {
|
|
2648
2954
|
/**
|
|
2649
2955
|
* Publisher's ID of the media buy to update
|
|
2650
2956
|
*/
|
|
@@ -2665,17 +2971,61 @@ export interface UpdateMediaBuyRequest1 {
|
|
|
2665
2971
|
/**
|
|
2666
2972
|
* Package-specific updates
|
|
2667
2973
|
*/
|
|
2668
|
-
packages?:
|
|
2669
|
-
|
|
2670
|
-
} | {
|
|
2671
|
-
[k: string]: unknown;
|
|
2672
|
-
})[];
|
|
2974
|
+
packages?: PackageUpdate[];
|
|
2975
|
+
reporting_webhook?: ReportingWebhook;
|
|
2673
2976
|
push_notification_config?: PushNotificationConfig;
|
|
2674
2977
|
context?: ContextObject;
|
|
2675
2978
|
ext?: ExtensionObject;
|
|
2676
|
-
}
|
|
2979
|
+
} & {
|
|
2980
|
+
[k: string]: unknown | undefined;
|
|
2981
|
+
};
|
|
2982
|
+
/**
|
|
2983
|
+
* Campaign start timing: 'asap' or ISO 8601 date-time
|
|
2984
|
+
*/
|
|
2985
|
+
export type PackageUpdate = {
|
|
2986
|
+
/**
|
|
2987
|
+
* Publisher's ID of package to update
|
|
2988
|
+
*/
|
|
2989
|
+
package_id?: string;
|
|
2990
|
+
/**
|
|
2991
|
+
* Buyer's reference for the package to update
|
|
2992
|
+
*/
|
|
2993
|
+
buyer_ref?: string;
|
|
2994
|
+
/**
|
|
2995
|
+
* Updated budget allocation for this package in the currency specified by the pricing option
|
|
2996
|
+
*/
|
|
2997
|
+
budget?: number;
|
|
2998
|
+
pacing?: Pacing;
|
|
2999
|
+
/**
|
|
3000
|
+
* Updated bid price for auction-based pricing options (only applies when pricing_option is auction-based)
|
|
3001
|
+
*/
|
|
3002
|
+
bid_price?: number;
|
|
3003
|
+
/**
|
|
3004
|
+
* Updated impression goal for this package
|
|
3005
|
+
*/
|
|
3006
|
+
impressions?: number;
|
|
3007
|
+
/**
|
|
3008
|
+
* Pause/resume specific package (true = paused, false = active)
|
|
3009
|
+
*/
|
|
3010
|
+
paused?: boolean;
|
|
3011
|
+
targeting_overlay?: TargetingOverlay;
|
|
3012
|
+
/**
|
|
3013
|
+
* Replace creative assignments for this package with optional weights and placement targeting. Uses replacement semantics - omit to leave assignments unchanged.
|
|
3014
|
+
*/
|
|
3015
|
+
creative_assignments?: CreativeAssignment[];
|
|
3016
|
+
/**
|
|
3017
|
+
* Upload new creative assets and assign to this package (creatives will be added to library). Use creative_assignments instead for existing library creatives.
|
|
3018
|
+
*
|
|
3019
|
+
* @maxItems 100
|
|
3020
|
+
*/
|
|
3021
|
+
creatives?: CreativeAsset[];
|
|
3022
|
+
ext?: ExtensionObject;
|
|
3023
|
+
[k: string]: unknown | undefined;
|
|
3024
|
+
} & {
|
|
3025
|
+
[k: string]: unknown | undefined;
|
|
3026
|
+
};
|
|
2677
3027
|
/**
|
|
2678
|
-
*
|
|
3028
|
+
* Budget pacing strategy
|
|
2679
3029
|
*/
|
|
2680
3030
|
/**
|
|
2681
3031
|
* Response payload for update_media_buy task. Returns either complete success data OR error information, never both. This enforces atomic operation semantics - updates are either fully applied or not applied at all.
|
|
@@ -3041,63 +3391,11 @@ export interface DeliveryMetrics {
|
|
|
3041
3391
|
* Number of screens used at this venue
|
|
3042
3392
|
*/
|
|
3043
3393
|
screens_used?: number;
|
|
3044
|
-
[k: string]: unknown;
|
|
3394
|
+
[k: string]: unknown | undefined;
|
|
3045
3395
|
}[];
|
|
3046
|
-
[k: string]: unknown;
|
|
3396
|
+
[k: string]: unknown | undefined;
|
|
3047
3397
|
};
|
|
3048
|
-
[k: string]: unknown;
|
|
3049
|
-
}
|
|
3050
|
-
/**
|
|
3051
|
-
* Standard error structure for task-specific errors and warnings
|
|
3052
|
-
*/
|
|
3053
|
-
/**
|
|
3054
|
-
* Request parameters for discovering which publishers this agent is authorized to represent
|
|
3055
|
-
*/
|
|
3056
|
-
export interface ListAuthorizedPropertiesRequest {
|
|
3057
|
-
/**
|
|
3058
|
-
* Filter to specific publisher domains (optional). If omitted, returns all publishers this agent represents.
|
|
3059
|
-
*/
|
|
3060
|
-
publisher_domains?: string[];
|
|
3061
|
-
context?: ContextObject;
|
|
3062
|
-
ext?: ExtensionObject;
|
|
3063
|
-
}
|
|
3064
|
-
/**
|
|
3065
|
-
* 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.
|
|
3066
|
-
*/
|
|
3067
|
-
/**
|
|
3068
|
-
* Standard advertising channels supported by AdCP
|
|
3069
|
-
*/
|
|
3070
|
-
export interface ListAuthorizedPropertiesResponse {
|
|
3071
|
-
/**
|
|
3072
|
-
* Publisher domains this agent is authorized to represent. Buyers should fetch each publisher's adagents.json to see property definitions and verify this agent is in their authorized_agents list with authorization scope.
|
|
3073
|
-
*/
|
|
3074
|
-
publisher_domains: string[];
|
|
3075
|
-
/**
|
|
3076
|
-
* Primary advertising channels represented in this property portfolio. Helps buying agents quickly filter relevance.
|
|
3077
|
-
*/
|
|
3078
|
-
primary_channels?: AdvertisingChannels[];
|
|
3079
|
-
/**
|
|
3080
|
-
* Primary countries (ISO 3166-1 alpha-2 codes) where properties are concentrated. Helps buying agents quickly filter relevance.
|
|
3081
|
-
*/
|
|
3082
|
-
primary_countries?: string[];
|
|
3083
|
-
/**
|
|
3084
|
-
* Markdown-formatted description of the property portfolio, including inventory types, audience characteristics, and special features.
|
|
3085
|
-
*/
|
|
3086
|
-
portfolio_description?: string;
|
|
3087
|
-
/**
|
|
3088
|
-
* Publisher's advertising content policies, restrictions, and guidelines in natural language. May include prohibited categories, blocked advertisers, restricted tactics, brand safety requirements, or links to full policy documentation.
|
|
3089
|
-
*/
|
|
3090
|
-
advertising_policies?: string;
|
|
3091
|
-
/**
|
|
3092
|
-
* ISO 8601 timestamp of when the agent's publisher authorization list was last updated. Buyers can use this to determine if their cached publisher adagents.json files might be stale.
|
|
3093
|
-
*/
|
|
3094
|
-
last_updated?: string;
|
|
3095
|
-
/**
|
|
3096
|
-
* Task-specific errors and warnings (e.g., property availability issues)
|
|
3097
|
-
*/
|
|
3098
|
-
errors?: Error[];
|
|
3099
|
-
context?: ContextObject;
|
|
3100
|
-
ext?: ExtensionObject;
|
|
3398
|
+
[k: string]: unknown | undefined;
|
|
3101
3399
|
}
|
|
3102
3400
|
/**
|
|
3103
3401
|
* Standard error structure for task-specific errors and warnings
|
|
@@ -3105,16 +3403,7 @@ export interface ListAuthorizedPropertiesResponse {
|
|
|
3105
3403
|
/**
|
|
3106
3404
|
* Request payload for provide_performance_feedback task
|
|
3107
3405
|
*/
|
|
3108
|
-
export type ProvidePerformanceFeedbackRequest =
|
|
3109
|
-
/**
|
|
3110
|
-
* The business metric being measured
|
|
3111
|
-
*/
|
|
3112
|
-
export type MetricType = 'overall_performance' | 'conversion_rate' | 'brand_lift' | 'click_through_rate' | 'completion_rate' | 'viewability' | 'brand_safety' | 'cost_efficiency';
|
|
3113
|
-
/**
|
|
3114
|
-
* Source of the performance data
|
|
3115
|
-
*/
|
|
3116
|
-
export type FeedbackSource = 'buyer_attribution' | 'third_party_measurement' | 'platform_analytics' | 'verification_partner';
|
|
3117
|
-
export interface ProvidePerformanceFeedbackRequest1 {
|
|
3406
|
+
export type ProvidePerformanceFeedbackRequest = {
|
|
3118
3407
|
/**
|
|
3119
3408
|
* Publisher's media buy identifier
|
|
3120
3409
|
*/
|
|
@@ -3152,7 +3441,17 @@ export interface ProvidePerformanceFeedbackRequest1 {
|
|
|
3152
3441
|
feedback_source?: FeedbackSource;
|
|
3153
3442
|
context?: ContextObject;
|
|
3154
3443
|
ext?: ExtensionObject;
|
|
3155
|
-
}
|
|
3444
|
+
} & {
|
|
3445
|
+
[k: string]: unknown | undefined;
|
|
3446
|
+
};
|
|
3447
|
+
/**
|
|
3448
|
+
* The business metric being measured
|
|
3449
|
+
*/
|
|
3450
|
+
export type MetricType = 'overall_performance' | 'conversion_rate' | 'brand_lift' | 'click_through_rate' | 'completion_rate' | 'viewability' | 'brand_safety' | 'cost_efficiency';
|
|
3451
|
+
/**
|
|
3452
|
+
* Source of the performance data
|
|
3453
|
+
*/
|
|
3454
|
+
export type FeedbackSource = 'buyer_attribution' | 'third_party_measurement' | 'platform_analytics' | 'verification_partner';
|
|
3156
3455
|
/**
|
|
3157
3456
|
* 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.
|
|
3158
3457
|
*/
|
|
@@ -3225,10 +3524,10 @@ export interface CreativeManifest {
|
|
|
3225
3524
|
* IMPORTANT: Creative manifest validation MUST be performed in the context of the format specification. The format defines what type each asset_id should be, which eliminates any validation ambiguity.
|
|
3226
3525
|
*/
|
|
3227
3526
|
assets: {
|
|
3228
|
-
[k: string]: unknown;
|
|
3527
|
+
[k: string]: unknown | undefined;
|
|
3229
3528
|
};
|
|
3230
3529
|
ext?: ExtensionObject;
|
|
3231
|
-
[k: string]: unknown;
|
|
3530
|
+
[k: string]: unknown | undefined;
|
|
3232
3531
|
}
|
|
3233
3532
|
/**
|
|
3234
3533
|
* 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'}).
|
|
@@ -3266,7 +3565,7 @@ export interface WebhookAsset {
|
|
|
3266
3565
|
*/
|
|
3267
3566
|
api_key_header?: string;
|
|
3268
3567
|
};
|
|
3269
|
-
[k: string]: unknown;
|
|
3568
|
+
[k: string]: unknown | undefined;
|
|
3270
3569
|
}
|
|
3271
3570
|
/**
|
|
3272
3571
|
* CSS stylesheet asset
|
|
@@ -3319,7 +3618,7 @@ export type PreviewCreativeRequest = {
|
|
|
3319
3618
|
* Macro values to use for this preview. Supports all universal macros from the format's supported_macros list. See docs/creative/universal-macros.md for available macros.
|
|
3320
3619
|
*/
|
|
3321
3620
|
macros?: {
|
|
3322
|
-
[k: string]: string;
|
|
3621
|
+
[k: string]: string | undefined;
|
|
3323
3622
|
};
|
|
3324
3623
|
/**
|
|
3325
3624
|
* Natural language description of the context for AI-generated content (e.g., 'User just searched for running shoes', 'Podcast discussing weather patterns', 'Article about electric vehicles')
|
|
@@ -3358,7 +3657,7 @@ export type PreviewCreativeRequest = {
|
|
|
3358
3657
|
* Macro values to use for this preview
|
|
3359
3658
|
*/
|
|
3360
3659
|
macros?: {
|
|
3361
|
-
[k: string]: string;
|
|
3660
|
+
[k: string]: string | undefined;
|
|
3362
3661
|
};
|
|
3363
3662
|
/**
|
|
3364
3663
|
* Natural language description of the context for AI-generated content
|
|
@@ -3402,10 +3701,10 @@ export interface CreativeManifest1 {
|
|
|
3402
3701
|
* IMPORTANT: Creative manifest validation MUST be performed in the context of the format specification. The format defines what type each asset_id should be, which eliminates any validation ambiguity.
|
|
3403
3702
|
*/
|
|
3404
3703
|
assets: {
|
|
3405
|
-
[k: string]: unknown;
|
|
3704
|
+
[k: string]: unknown | undefined;
|
|
3406
3705
|
};
|
|
3407
3706
|
ext?: ExtensionObject;
|
|
3408
|
-
[k: string]: unknown;
|
|
3707
|
+
[k: string]: unknown | undefined;
|
|
3409
3708
|
}
|
|
3410
3709
|
/**
|
|
3411
3710
|
* Response containing preview links for one or more creatives. Format matches the request: single preview response for single requests, batch results for batch requests.
|
|
@@ -3459,7 +3758,7 @@ export type PreviewRender = {
|
|
|
3459
3758
|
*/
|
|
3460
3759
|
csp_policy?: string;
|
|
3461
3760
|
};
|
|
3462
|
-
[k: string]: unknown;
|
|
3761
|
+
[k: string]: unknown | undefined;
|
|
3463
3762
|
} | {
|
|
3464
3763
|
/**
|
|
3465
3764
|
* Unique identifier for this rendered piece within the variant
|
|
@@ -3505,7 +3804,7 @@ export type PreviewRender = {
|
|
|
3505
3804
|
*/
|
|
3506
3805
|
csp_policy?: string;
|
|
3507
3806
|
};
|
|
3508
|
-
[k: string]: unknown;
|
|
3807
|
+
[k: string]: unknown | undefined;
|
|
3509
3808
|
} | {
|
|
3510
3809
|
/**
|
|
3511
3810
|
* Unique identifier for this rendered piece within the variant
|
|
@@ -3555,7 +3854,7 @@ export type PreviewRender = {
|
|
|
3555
3854
|
*/
|
|
3556
3855
|
csp_policy?: string;
|
|
3557
3856
|
};
|
|
3558
|
-
[k: string]: unknown;
|
|
3857
|
+
[k: string]: unknown | undefined;
|
|
3559
3858
|
};
|
|
3560
3859
|
/**
|
|
3561
3860
|
* Single preview response - each preview URL returns an HTML page that can be embedded in an iframe
|
|
@@ -3589,7 +3888,7 @@ export interface PreviewCreativeSingleResponse {
|
|
|
3589
3888
|
* Macro values applied to this variant
|
|
3590
3889
|
*/
|
|
3591
3890
|
macros?: {
|
|
3592
|
-
[k: string]: string;
|
|
3891
|
+
[k: string]: string | undefined;
|
|
3593
3892
|
};
|
|
3594
3893
|
/**
|
|
3595
3894
|
* Context description applied to this variant
|
|
@@ -3645,7 +3944,7 @@ export type Destination = {
|
|
|
3645
3944
|
* Optional account identifier on the platform
|
|
3646
3945
|
*/
|
|
3647
3946
|
account?: string;
|
|
3648
|
-
[k: string]: unknown;
|
|
3947
|
+
[k: string]: unknown | undefined;
|
|
3649
3948
|
} | {
|
|
3650
3949
|
/**
|
|
3651
3950
|
* Discriminator indicating this is an agent URL-based deployment
|
|
@@ -3659,7 +3958,7 @@ export type Destination = {
|
|
|
3659
3958
|
* Optional account identifier on the agent
|
|
3660
3959
|
*/
|
|
3661
3960
|
account?: string;
|
|
3662
|
-
[k: string]: unknown;
|
|
3961
|
+
[k: string]: unknown | undefined;
|
|
3663
3962
|
};
|
|
3664
3963
|
/**
|
|
3665
3964
|
* Types of signal catalogs available for audience targeting
|
|
@@ -3714,7 +4013,7 @@ export interface SignalFilters {
|
|
|
3714
4013
|
* Minimum coverage requirement
|
|
3715
4014
|
*/
|
|
3716
4015
|
min_coverage_percentage?: number;
|
|
3717
|
-
[k: string]: unknown;
|
|
4016
|
+
[k: string]: unknown | undefined;
|
|
3718
4017
|
}
|
|
3719
4018
|
/**
|
|
3720
4019
|
* 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.
|
|
@@ -3748,7 +4047,7 @@ export type Deployment = {
|
|
|
3748
4047
|
* Timestamp when activation completed (if is_live=true)
|
|
3749
4048
|
*/
|
|
3750
4049
|
deployed_at?: string;
|
|
3751
|
-
[k: string]: unknown;
|
|
4050
|
+
[k: string]: unknown | undefined;
|
|
3752
4051
|
} | {
|
|
3753
4052
|
/**
|
|
3754
4053
|
* Discriminator indicating this is an agent URL-based deployment
|
|
@@ -3775,7 +4074,7 @@ export type Deployment = {
|
|
|
3775
4074
|
* Timestamp when activation completed (if is_live=true)
|
|
3776
4075
|
*/
|
|
3777
4076
|
deployed_at?: string;
|
|
3778
|
-
[k: string]: unknown;
|
|
4077
|
+
[k: string]: unknown | undefined;
|
|
3779
4078
|
};
|
|
3780
4079
|
/**
|
|
3781
4080
|
* The key to use for targeting. Only present if is_live=true AND requester has access to this deployment.
|
|
@@ -3789,7 +4088,7 @@ export type ActivationKey = {
|
|
|
3789
4088
|
* The platform-specific segment identifier to use in campaign targeting
|
|
3790
4089
|
*/
|
|
3791
4090
|
segment_id: string;
|
|
3792
|
-
[k: string]: unknown;
|
|
4091
|
+
[k: string]: unknown | undefined;
|
|
3793
4092
|
} | {
|
|
3794
4093
|
/**
|
|
3795
4094
|
* Key-value pair based targeting
|
|
@@ -3803,7 +4102,7 @@ export type ActivationKey = {
|
|
|
3803
4102
|
* The targeting parameter value
|
|
3804
4103
|
*/
|
|
3805
4104
|
value: string;
|
|
3806
|
-
[k: string]: unknown;
|
|
4105
|
+
[k: string]: unknown | undefined;
|
|
3807
4106
|
};
|
|
3808
4107
|
/**
|
|
3809
4108
|
* The key to use for targeting. Only present if is_live=true AND requester has access to this deployment.
|
|
@@ -3817,7 +4116,7 @@ export type ActivationKey1 = {
|
|
|
3817
4116
|
* The platform-specific segment identifier to use in campaign targeting
|
|
3818
4117
|
*/
|
|
3819
4118
|
segment_id: string;
|
|
3820
|
-
[k: string]: unknown;
|
|
4119
|
+
[k: string]: unknown | undefined;
|
|
3821
4120
|
} | {
|
|
3822
4121
|
/**
|
|
3823
4122
|
* Key-value pair based targeting
|
|
@@ -3831,7 +4130,7 @@ export type ActivationKey1 = {
|
|
|
3831
4130
|
* The targeting parameter value
|
|
3832
4131
|
*/
|
|
3833
4132
|
value: string;
|
|
3834
|
-
[k: string]: unknown;
|
|
4133
|
+
[k: string]: unknown | undefined;
|
|
3835
4134
|
};
|
|
3836
4135
|
/**
|
|
3837
4136
|
* Response payload for get_signals task
|
|
@@ -3937,4 +4236,2356 @@ export interface ActivateSignalError {
|
|
|
3937
4236
|
/**
|
|
3938
4237
|
* Standard error structure for task-specific errors and warnings
|
|
3939
4238
|
*/
|
|
4239
|
+
/**
|
|
4240
|
+
* A source of properties for a property list. Supports three selection patterns: publisher with tags, publisher with property IDs, or direct identifiers.
|
|
4241
|
+
*/
|
|
4242
|
+
export type BasePropertySource = PublisherTagsSource | PublisherPropertyIDsSource | DirectIdentifiersSource;
|
|
4243
|
+
/**
|
|
4244
|
+
* Tag for categorizing publisher properties. Must be lowercase alphanumeric with underscores only.
|
|
4245
|
+
*/
|
|
4246
|
+
export type PropertyIdentifierTypes = 'domain' | 'subdomain' | 'network_id' | 'ios_bundle' | 'android_package' | 'apple_app_store_id' | 'google_play_id' | 'roku_store_id' | 'fire_tv_asin' | 'samsung_app_id' | 'apple_tv_bundle' | 'bundle_id' | 'venue_id' | 'screen_id' | 'openooh_venue_type' | 'rss_url' | 'apple_podcast_id' | 'spotify_show_id' | 'podcast_guid';
|
|
4247
|
+
/**
|
|
4248
|
+
* Standardized advertising media channels describing how buyers allocate budget. Channels are planning abstractions, not technical substrates. See the Media Channel Taxonomy specification for detailed definitions.
|
|
4249
|
+
*/
|
|
4250
|
+
export type PropertyType = 'website' | 'mobile_app' | 'ctv_app' | 'desktop_app' | 'dooh' | 'podcast' | 'radio' | 'streaming_audio';
|
|
4251
|
+
/**
|
|
4252
|
+
* Type of asset. Note: Brand manifests typically contain basic media assets (image, video, audio, text). Code assets (html, javascript, css) and ad markup (vast, daast) are usually not part of brand asset libraries.
|
|
4253
|
+
*/
|
|
4254
|
+
export interface CreatePropertyListRequest {
|
|
4255
|
+
/**
|
|
4256
|
+
* Human-readable name for the list
|
|
4257
|
+
*/
|
|
4258
|
+
name: string;
|
|
4259
|
+
/**
|
|
4260
|
+
* Description of the list's purpose
|
|
4261
|
+
*/
|
|
4262
|
+
description?: string;
|
|
4263
|
+
/**
|
|
4264
|
+
* Array of property sources to evaluate. Each entry is a discriminated union: publisher_tags (publisher_domain + tags), publisher_ids (publisher_domain + property_ids), or identifiers (direct identifiers). If omitted, queries the agent's entire property database.
|
|
4265
|
+
*/
|
|
4266
|
+
base_properties?: BasePropertySource[];
|
|
4267
|
+
filters?: PropertyListFilters;
|
|
4268
|
+
brand_manifest?: BrandManifest;
|
|
4269
|
+
context?: ContextObject;
|
|
4270
|
+
ext?: ExtensionObject;
|
|
4271
|
+
}
|
|
4272
|
+
/**
|
|
4273
|
+
* Select properties from a publisher by tag membership
|
|
4274
|
+
*/
|
|
4275
|
+
export interface PublisherTagsSource {
|
|
4276
|
+
/**
|
|
4277
|
+
* Discriminator indicating selection by property tags within a publisher
|
|
4278
|
+
*/
|
|
4279
|
+
selection_type: 'publisher_tags';
|
|
4280
|
+
/**
|
|
4281
|
+
* Domain where publisher's adagents.json is hosted (e.g., 'raptive.com')
|
|
4282
|
+
*/
|
|
4283
|
+
publisher_domain: string;
|
|
4284
|
+
/**
|
|
4285
|
+
* Property tags from the publisher's adagents.json. Selects all properties with these tags.
|
|
4286
|
+
*
|
|
4287
|
+
* @minItems 1
|
|
4288
|
+
*/
|
|
4289
|
+
tags: [PropertyTag, ...PropertyTag[]];
|
|
4290
|
+
}
|
|
4291
|
+
/**
|
|
4292
|
+
* Select specific properties from a publisher by ID
|
|
4293
|
+
*/
|
|
4294
|
+
export interface PublisherPropertyIDsSource {
|
|
4295
|
+
/**
|
|
4296
|
+
* Discriminator indicating selection by specific property IDs within a publisher
|
|
4297
|
+
*/
|
|
4298
|
+
selection_type: 'publisher_ids';
|
|
4299
|
+
/**
|
|
4300
|
+
* Domain where publisher's adagents.json is hosted (e.g., 'raptive.com')
|
|
4301
|
+
*/
|
|
4302
|
+
publisher_domain: string;
|
|
4303
|
+
/**
|
|
4304
|
+
* Specific property IDs from the publisher's adagents.json
|
|
4305
|
+
*
|
|
4306
|
+
* @minItems 1
|
|
4307
|
+
*/
|
|
4308
|
+
property_ids: [PropertyID, ...PropertyID[]];
|
|
4309
|
+
}
|
|
4310
|
+
/**
|
|
4311
|
+
* Select properties by direct identifiers (domains, app IDs, etc.) without publisher context
|
|
4312
|
+
*/
|
|
4313
|
+
export interface DirectIdentifiersSource {
|
|
4314
|
+
/**
|
|
4315
|
+
* Discriminator indicating selection by direct identifiers
|
|
4316
|
+
*/
|
|
4317
|
+
selection_type: 'identifiers';
|
|
4318
|
+
/**
|
|
4319
|
+
* Direct property identifiers (domains, app IDs, etc.)
|
|
4320
|
+
*
|
|
4321
|
+
* @minItems 1
|
|
4322
|
+
*/
|
|
4323
|
+
identifiers: [Identifier, ...Identifier[]];
|
|
4324
|
+
}
|
|
4325
|
+
/**
|
|
4326
|
+
* A property identifier with type and value. Used to identify properties across platforms (domains, app store IDs, etc.).
|
|
4327
|
+
*/
|
|
4328
|
+
export interface Identifier {
|
|
4329
|
+
type: PropertyIdentifierTypes;
|
|
4330
|
+
/**
|
|
4331
|
+
* The identifier value. For domain type: 'example.com' matches base domain plus www and m subdomains; 'edition.example.com' matches that specific subdomain; '*.example.com' matches ALL subdomains but NOT base domain
|
|
4332
|
+
*/
|
|
4333
|
+
value: string;
|
|
4334
|
+
}
|
|
4335
|
+
/**
|
|
4336
|
+
* Dynamic filters to apply when resolving the list
|
|
4337
|
+
*/
|
|
4338
|
+
export interface PropertyListFilters {
|
|
4339
|
+
/**
|
|
4340
|
+
* Property must have feature data for ALL listed countries (ISO codes). Required.
|
|
4341
|
+
*/
|
|
4342
|
+
countries_all: string[];
|
|
4343
|
+
/**
|
|
4344
|
+
* Property must support ANY of the listed channels. Required.
|
|
4345
|
+
*/
|
|
4346
|
+
channels_any: MediaChannel[];
|
|
4347
|
+
/**
|
|
4348
|
+
* Filter to these property types
|
|
4349
|
+
*/
|
|
4350
|
+
property_types?: PropertyType[];
|
|
4351
|
+
/**
|
|
4352
|
+
* Feature-based requirements. Property must pass ALL requirements (AND logic).
|
|
4353
|
+
*/
|
|
4354
|
+
feature_requirements?: FeatureRequirement[];
|
|
4355
|
+
/**
|
|
4356
|
+
* Identifiers to always exclude from results
|
|
4357
|
+
*/
|
|
4358
|
+
exclude_identifiers?: Identifier[];
|
|
4359
|
+
}
|
|
4360
|
+
/**
|
|
4361
|
+
* A feature-based requirement for property filtering. Use min_value/max_value for quantitative features, allowed_values for binary/categorical features.
|
|
4362
|
+
*/
|
|
4363
|
+
export interface FeatureRequirement {
|
|
4364
|
+
/**
|
|
4365
|
+
* Feature to evaluate (discovered via list_property_features)
|
|
4366
|
+
*/
|
|
4367
|
+
feature_id: string;
|
|
4368
|
+
/**
|
|
4369
|
+
* Minimum numeric value required (for quantitative features)
|
|
4370
|
+
*/
|
|
4371
|
+
min_value?: number;
|
|
4372
|
+
/**
|
|
4373
|
+
* Maximum numeric value allowed (for quantitative features)
|
|
4374
|
+
*/
|
|
4375
|
+
max_value?: number;
|
|
4376
|
+
/**
|
|
4377
|
+
* Values that pass the requirement (for binary/categorical features)
|
|
4378
|
+
*/
|
|
4379
|
+
allowed_values?: unknown[];
|
|
4380
|
+
/**
|
|
4381
|
+
* 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).
|
|
4382
|
+
*/
|
|
4383
|
+
if_not_covered?: 'exclude' | 'include';
|
|
4384
|
+
}
|
|
4385
|
+
/**
|
|
4386
|
+
* Brand identity and requirements. When provided, the agent automatically applies appropriate rules based on brand characteristics (industry, target_audience, etc.).
|
|
4387
|
+
*/
|
|
4388
|
+
/**
|
|
4389
|
+
* A source of properties for a property list. Supports three selection patterns: publisher with tags, publisher with property IDs, or direct identifiers.
|
|
4390
|
+
*/
|
|
4391
|
+
export interface CreatePropertyListResponse {
|
|
4392
|
+
list: PropertyList;
|
|
4393
|
+
/**
|
|
4394
|
+
* Token that can be shared with sellers to authorize fetching this list. Store this - it is only returned at creation time.
|
|
4395
|
+
*/
|
|
4396
|
+
auth_token: string;
|
|
4397
|
+
ext?: ExtensionObject;
|
|
4398
|
+
}
|
|
4399
|
+
/**
|
|
4400
|
+
* The created property list
|
|
4401
|
+
*/
|
|
4402
|
+
export interface PropertyList {
|
|
4403
|
+
/**
|
|
4404
|
+
* Unique identifier for this property list
|
|
4405
|
+
*/
|
|
4406
|
+
list_id: string;
|
|
4407
|
+
/**
|
|
4408
|
+
* Human-readable name for the list
|
|
4409
|
+
*/
|
|
4410
|
+
name: string;
|
|
4411
|
+
/**
|
|
4412
|
+
* Description of the list's purpose
|
|
4413
|
+
*/
|
|
4414
|
+
description?: string;
|
|
4415
|
+
/**
|
|
4416
|
+
* Principal identity that owns this list
|
|
4417
|
+
*/
|
|
4418
|
+
principal?: string;
|
|
4419
|
+
/**
|
|
4420
|
+
* Array of property sources to evaluate. Each entry is a discriminated union: publisher_tags (publisher_domain + tags), publisher_ids (publisher_domain + property_ids), or identifiers (direct identifiers). If omitted, queries the agent's entire property database.
|
|
4421
|
+
*/
|
|
4422
|
+
base_properties?: BasePropertySource[];
|
|
4423
|
+
filters?: PropertyListFilters;
|
|
4424
|
+
brand_manifest?: BrandManifest;
|
|
4425
|
+
/**
|
|
4426
|
+
* URL to receive notifications when the resolved list changes
|
|
4427
|
+
*/
|
|
4428
|
+
webhook_url?: string;
|
|
4429
|
+
/**
|
|
4430
|
+
* Recommended cache duration for resolved list. Consumers should re-fetch after this period.
|
|
4431
|
+
*/
|
|
4432
|
+
cache_duration_hours?: number;
|
|
4433
|
+
/**
|
|
4434
|
+
* When the list was created
|
|
4435
|
+
*/
|
|
4436
|
+
created_at?: string;
|
|
4437
|
+
/**
|
|
4438
|
+
* When the list was last modified
|
|
4439
|
+
*/
|
|
4440
|
+
updated_at?: string;
|
|
4441
|
+
/**
|
|
4442
|
+
* Number of properties in the resolved list (at time of last resolution)
|
|
4443
|
+
*/
|
|
4444
|
+
property_count?: number;
|
|
4445
|
+
}
|
|
4446
|
+
/**
|
|
4447
|
+
* Select properties from a publisher by tag membership
|
|
4448
|
+
*/
|
|
4449
|
+
/**
|
|
4450
|
+
* A source of properties for a property list. Supports three selection patterns: publisher with tags, publisher with property IDs, or direct identifiers.
|
|
4451
|
+
*/
|
|
4452
|
+
export interface UpdatePropertyListRequest {
|
|
4453
|
+
/**
|
|
4454
|
+
* ID of the property list to update
|
|
4455
|
+
*/
|
|
4456
|
+
list_id: string;
|
|
4457
|
+
/**
|
|
4458
|
+
* New name for the list
|
|
4459
|
+
*/
|
|
4460
|
+
name?: string;
|
|
4461
|
+
/**
|
|
4462
|
+
* New description
|
|
4463
|
+
*/
|
|
4464
|
+
description?: string;
|
|
4465
|
+
/**
|
|
4466
|
+
* Complete replacement for the base properties list (not a patch). Each entry is a discriminated union: publisher_tags (publisher_domain + tags), publisher_ids (publisher_domain + property_ids), or identifiers (direct identifiers).
|
|
4467
|
+
*/
|
|
4468
|
+
base_properties?: BasePropertySource[];
|
|
4469
|
+
filters?: PropertyListFilters;
|
|
4470
|
+
brand_manifest?: BrandManifest;
|
|
4471
|
+
/**
|
|
4472
|
+
* Update the webhook URL for list change notifications (set to empty string to remove)
|
|
4473
|
+
*/
|
|
4474
|
+
webhook_url?: string;
|
|
4475
|
+
context?: ContextObject;
|
|
4476
|
+
ext?: ExtensionObject;
|
|
4477
|
+
}
|
|
4478
|
+
/**
|
|
4479
|
+
* Select properties from a publisher by tag membership
|
|
4480
|
+
*/
|
|
4481
|
+
/**
|
|
4482
|
+
* A source of properties for a property list. Supports three selection patterns: publisher with tags, publisher with property IDs, or direct identifiers.
|
|
4483
|
+
*/
|
|
4484
|
+
export interface UpdatePropertyListResponse {
|
|
4485
|
+
list: PropertyList;
|
|
4486
|
+
ext?: ExtensionObject;
|
|
4487
|
+
}
|
|
4488
|
+
/**
|
|
4489
|
+
* The updated property list
|
|
4490
|
+
*/
|
|
4491
|
+
/**
|
|
4492
|
+
* Request parameters for retrieving a property list with resolved identifiers
|
|
4493
|
+
*/
|
|
4494
|
+
export interface GetPropertyListRequest {
|
|
4495
|
+
/**
|
|
4496
|
+
* ID of the property list to retrieve
|
|
4497
|
+
*/
|
|
4498
|
+
list_id: string;
|
|
4499
|
+
/**
|
|
4500
|
+
* Whether to apply filters and return resolved identifiers (default: true)
|
|
4501
|
+
*/
|
|
4502
|
+
resolve?: boolean;
|
|
4503
|
+
/**
|
|
4504
|
+
* Maximum identifiers to return (for large lists)
|
|
4505
|
+
*/
|
|
4506
|
+
max_results?: number;
|
|
4507
|
+
/**
|
|
4508
|
+
* Pagination cursor for large result sets
|
|
4509
|
+
*/
|
|
4510
|
+
cursor?: string;
|
|
4511
|
+
context?: ContextObject;
|
|
4512
|
+
ext?: ExtensionObject;
|
|
4513
|
+
}
|
|
4514
|
+
/**
|
|
4515
|
+
* 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.
|
|
4516
|
+
*/
|
|
4517
|
+
/**
|
|
4518
|
+
* A source of properties for a property list. Supports three selection patterns: publisher with tags, publisher with property IDs, or direct identifiers.
|
|
4519
|
+
*/
|
|
4520
|
+
export interface GetPropertyListResponse {
|
|
4521
|
+
list: PropertyList;
|
|
4522
|
+
/**
|
|
4523
|
+
* Resolved identifiers that passed filters (if resolve=true). Cache these locally for real-time use.
|
|
4524
|
+
*/
|
|
4525
|
+
identifiers?: Identifier[];
|
|
4526
|
+
/**
|
|
4527
|
+
* Total number of identifiers in resolved list
|
|
4528
|
+
*/
|
|
4529
|
+
total_count?: number;
|
|
4530
|
+
/**
|
|
4531
|
+
* Number of identifiers returned in this response
|
|
4532
|
+
*/
|
|
4533
|
+
returned_count?: number;
|
|
4534
|
+
/**
|
|
4535
|
+
* Pagination information
|
|
4536
|
+
*/
|
|
4537
|
+
pagination?: {
|
|
4538
|
+
/**
|
|
4539
|
+
* Whether more results are available
|
|
4540
|
+
*/
|
|
4541
|
+
has_more?: boolean;
|
|
4542
|
+
/**
|
|
4543
|
+
* Cursor for next page
|
|
4544
|
+
*/
|
|
4545
|
+
cursor?: string;
|
|
4546
|
+
};
|
|
4547
|
+
/**
|
|
4548
|
+
* When the list was resolved
|
|
4549
|
+
*/
|
|
4550
|
+
resolved_at?: string;
|
|
4551
|
+
/**
|
|
4552
|
+
* Cache expiration timestamp. Re-fetch the list after this time to get updated identifiers.
|
|
4553
|
+
*/
|
|
4554
|
+
cache_valid_until?: string;
|
|
4555
|
+
/**
|
|
4556
|
+
* Properties included in the list despite missing feature data. Only present when a feature_requirement has if_not_covered='include'. Maps feature_id to list of identifiers not covered for that feature.
|
|
4557
|
+
*/
|
|
4558
|
+
coverage_gaps?: {
|
|
4559
|
+
[k: string]: Identifier[] | undefined;
|
|
4560
|
+
};
|
|
4561
|
+
ext?: ExtensionObject;
|
|
4562
|
+
}
|
|
4563
|
+
/**
|
|
4564
|
+
* The property list metadata (always returned)
|
|
4565
|
+
*/
|
|
4566
|
+
/**
|
|
4567
|
+
* Request parameters for listing property lists
|
|
4568
|
+
*/
|
|
4569
|
+
export interface ListPropertyListsRequest {
|
|
4570
|
+
/**
|
|
4571
|
+
* Filter to lists owned by this principal
|
|
4572
|
+
*/
|
|
4573
|
+
principal?: string;
|
|
4574
|
+
/**
|
|
4575
|
+
* Filter to lists whose name contains this string
|
|
4576
|
+
*/
|
|
4577
|
+
name_contains?: string;
|
|
4578
|
+
/**
|
|
4579
|
+
* Maximum lists to return
|
|
4580
|
+
*/
|
|
4581
|
+
max_results?: number;
|
|
4582
|
+
/**
|
|
4583
|
+
* Pagination cursor
|
|
4584
|
+
*/
|
|
4585
|
+
cursor?: string;
|
|
4586
|
+
context?: ContextObject;
|
|
4587
|
+
ext?: ExtensionObject;
|
|
4588
|
+
}
|
|
4589
|
+
/**
|
|
4590
|
+
* 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.
|
|
4591
|
+
*/
|
|
4592
|
+
/**
|
|
4593
|
+
* A source of properties for a property list. Supports three selection patterns: publisher with tags, publisher with property IDs, or direct identifiers.
|
|
4594
|
+
*/
|
|
4595
|
+
export interface ListPropertyListsResponse {
|
|
4596
|
+
/**
|
|
4597
|
+
* Array of property lists (metadata only, not resolved properties)
|
|
4598
|
+
*/
|
|
4599
|
+
lists: PropertyList[];
|
|
4600
|
+
/**
|
|
4601
|
+
* Total number of lists matching criteria
|
|
4602
|
+
*/
|
|
4603
|
+
total_count?: number;
|
|
4604
|
+
/**
|
|
4605
|
+
* Number of lists returned in this response
|
|
4606
|
+
*/
|
|
4607
|
+
returned_count?: number;
|
|
4608
|
+
/**
|
|
4609
|
+
* Pagination information
|
|
4610
|
+
*/
|
|
4611
|
+
pagination?: {
|
|
4612
|
+
/**
|
|
4613
|
+
* Whether more results are available
|
|
4614
|
+
*/
|
|
4615
|
+
has_more?: boolean;
|
|
4616
|
+
/**
|
|
4617
|
+
* Cursor for next page
|
|
4618
|
+
*/
|
|
4619
|
+
cursor?: string;
|
|
4620
|
+
};
|
|
4621
|
+
ext?: ExtensionObject;
|
|
4622
|
+
}
|
|
4623
|
+
/**
|
|
4624
|
+
* A managed property list with optional filters for dynamic evaluation. Lists are resolved at setup time and cached by orchestrators/sellers for real-time use.
|
|
4625
|
+
*/
|
|
4626
|
+
/**
|
|
4627
|
+
* Request parameters for deleting a property list
|
|
4628
|
+
*/
|
|
4629
|
+
export interface DeletePropertyListRequest {
|
|
4630
|
+
/**
|
|
4631
|
+
* ID of the property list to delete
|
|
4632
|
+
*/
|
|
4633
|
+
list_id: string;
|
|
4634
|
+
context?: ContextObject;
|
|
4635
|
+
ext?: ExtensionObject;
|
|
4636
|
+
}
|
|
4637
|
+
/**
|
|
4638
|
+
* 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.
|
|
4639
|
+
*/
|
|
4640
|
+
/**
|
|
4641
|
+
* Response payload for delete_property_list task
|
|
4642
|
+
*/
|
|
4643
|
+
export interface DeletePropertyListResponse {
|
|
4644
|
+
/**
|
|
4645
|
+
* Whether the list was successfully deleted
|
|
4646
|
+
*/
|
|
4647
|
+
deleted: boolean;
|
|
4648
|
+
/**
|
|
4649
|
+
* ID of the deleted list
|
|
4650
|
+
*/
|
|
4651
|
+
list_id: string;
|
|
4652
|
+
ext?: ExtensionObject;
|
|
4653
|
+
}
|
|
4654
|
+
/**
|
|
4655
|
+
* 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.
|
|
4656
|
+
*/
|
|
4657
|
+
/**
|
|
4658
|
+
* Standardized advertising media channels describing how buyers allocate budget. Channels are planning abstractions, not technical substrates. See the Media Channel Taxonomy specification for detailed definitions.
|
|
4659
|
+
*/
|
|
4660
|
+
export interface ListContentStandardsRequest {
|
|
4661
|
+
/**
|
|
4662
|
+
* Filter by channel
|
|
4663
|
+
*/
|
|
4664
|
+
channels?: MediaChannel[];
|
|
4665
|
+
/**
|
|
4666
|
+
* Filter by BCP 47 language tags
|
|
4667
|
+
*/
|
|
4668
|
+
languages?: string[];
|
|
4669
|
+
/**
|
|
4670
|
+
* Filter by ISO 3166-1 alpha-2 country codes
|
|
4671
|
+
*/
|
|
4672
|
+
countries?: string[];
|
|
4673
|
+
context?: ContextObject;
|
|
4674
|
+
ext?: ExtensionObject;
|
|
4675
|
+
}
|
|
4676
|
+
/**
|
|
4677
|
+
* 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.
|
|
4678
|
+
*/
|
|
4679
|
+
/**
|
|
4680
|
+
* Response payload with list of content standards configurations
|
|
4681
|
+
*/
|
|
4682
|
+
export type ListContentStandardsResponse = {
|
|
4683
|
+
/**
|
|
4684
|
+
* Array of content standards configurations matching the filter criteria
|
|
4685
|
+
*/
|
|
4686
|
+
standards: ContentStandards[];
|
|
4687
|
+
/**
|
|
4688
|
+
* Field must not be present in success response
|
|
4689
|
+
*/
|
|
4690
|
+
errors?: {
|
|
4691
|
+
[k: string]: unknown | undefined;
|
|
4692
|
+
};
|
|
4693
|
+
context?: ContextObject;
|
|
4694
|
+
ext?: ExtensionObject;
|
|
4695
|
+
} | {
|
|
4696
|
+
errors: Error[];
|
|
4697
|
+
/**
|
|
4698
|
+
* Field must not be present in error response
|
|
4699
|
+
*/
|
|
4700
|
+
standards?: {
|
|
4701
|
+
[k: string]: unknown | undefined;
|
|
4702
|
+
};
|
|
4703
|
+
context?: ContextObject;
|
|
4704
|
+
ext?: ExtensionObject;
|
|
4705
|
+
};
|
|
4706
|
+
/**
|
|
4707
|
+
* Standardized advertising media channels describing how buyers allocate budget. Channels are planning abstractions, not technical substrates. See the Media Channel Taxonomy specification for detailed definitions.
|
|
4708
|
+
*/
|
|
4709
|
+
export type AssetAccess = {
|
|
4710
|
+
method: 'bearer_token';
|
|
4711
|
+
/**
|
|
4712
|
+
* OAuth2 bearer token for Authorization header
|
|
4713
|
+
*/
|
|
4714
|
+
token: string;
|
|
4715
|
+
} | {
|
|
4716
|
+
method: 'service_account';
|
|
4717
|
+
/**
|
|
4718
|
+
* Cloud provider
|
|
4719
|
+
*/
|
|
4720
|
+
provider: 'gcp' | 'aws';
|
|
4721
|
+
/**
|
|
4722
|
+
* Service account credentials
|
|
4723
|
+
*/
|
|
4724
|
+
credentials?: {
|
|
4725
|
+
[k: string]: unknown | undefined;
|
|
4726
|
+
};
|
|
4727
|
+
} | {
|
|
4728
|
+
method: 'signed_url';
|
|
4729
|
+
};
|
|
4730
|
+
/**
|
|
4731
|
+
* Authentication for secured URLs
|
|
4732
|
+
*/
|
|
4733
|
+
export type AssetAccess1 = {
|
|
4734
|
+
method: 'bearer_token';
|
|
4735
|
+
/**
|
|
4736
|
+
* OAuth2 bearer token for Authorization header
|
|
4737
|
+
*/
|
|
4738
|
+
token: string;
|
|
4739
|
+
} | {
|
|
4740
|
+
method: 'service_account';
|
|
4741
|
+
/**
|
|
4742
|
+
* Cloud provider
|
|
4743
|
+
*/
|
|
4744
|
+
provider: 'gcp' | 'aws';
|
|
4745
|
+
/**
|
|
4746
|
+
* Service account credentials
|
|
4747
|
+
*/
|
|
4748
|
+
credentials?: {
|
|
4749
|
+
[k: string]: unknown | undefined;
|
|
4750
|
+
};
|
|
4751
|
+
} | {
|
|
4752
|
+
method: 'signed_url';
|
|
4753
|
+
};
|
|
4754
|
+
/**
|
|
4755
|
+
* Authentication for secured URLs
|
|
4756
|
+
*/
|
|
4757
|
+
export type AssetAccess2 = {
|
|
4758
|
+
method: 'bearer_token';
|
|
4759
|
+
/**
|
|
4760
|
+
* OAuth2 bearer token for Authorization header
|
|
4761
|
+
*/
|
|
4762
|
+
token: string;
|
|
4763
|
+
} | {
|
|
4764
|
+
method: 'service_account';
|
|
4765
|
+
/**
|
|
4766
|
+
* Cloud provider
|
|
4767
|
+
*/
|
|
4768
|
+
provider: 'gcp' | 'aws';
|
|
4769
|
+
/**
|
|
4770
|
+
* Service account credentials
|
|
4771
|
+
*/
|
|
4772
|
+
credentials?: {
|
|
4773
|
+
[k: string]: unknown | undefined;
|
|
4774
|
+
};
|
|
4775
|
+
} | {
|
|
4776
|
+
method: 'signed_url';
|
|
4777
|
+
};
|
|
4778
|
+
/**
|
|
4779
|
+
* A content standards configuration defining brand safety and suitability policies. Standards are scoped by brand, geography, and channel. Multiple standards can be active simultaneously for different scopes.
|
|
4780
|
+
*/
|
|
4781
|
+
export interface ContentStandards {
|
|
4782
|
+
/**
|
|
4783
|
+
* Unique identifier for this standards configuration
|
|
4784
|
+
*/
|
|
4785
|
+
standards_id: string;
|
|
4786
|
+
/**
|
|
4787
|
+
* Human-readable name for this standards configuration
|
|
4788
|
+
*/
|
|
4789
|
+
name?: string;
|
|
4790
|
+
/**
|
|
4791
|
+
* ISO 3166-1 alpha-2 country codes. Standards apply in ALL listed countries (AND logic).
|
|
4792
|
+
*/
|
|
4793
|
+
countries_all?: string[];
|
|
4794
|
+
/**
|
|
4795
|
+
* Advertising channels. Standards apply to ANY of the listed channels (OR logic).
|
|
4796
|
+
*/
|
|
4797
|
+
channels_any?: MediaChannel[];
|
|
4798
|
+
/**
|
|
4799
|
+
* 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.
|
|
4800
|
+
*
|
|
4801
|
+
* @minItems 1
|
|
4802
|
+
*/
|
|
4803
|
+
languages_any?: [string, ...string[]];
|
|
4804
|
+
/**
|
|
4805
|
+
* Natural language policy describing acceptable and unacceptable content contexts. Used by LLMs and human reviewers to make judgments.
|
|
4806
|
+
*/
|
|
4807
|
+
policy?: string;
|
|
4808
|
+
/**
|
|
4809
|
+
* Training/test set to calibrate policy interpretation. Provides concrete examples of pass/fail decisions.
|
|
4810
|
+
*/
|
|
4811
|
+
calibration_exemplars?: {
|
|
4812
|
+
/**
|
|
4813
|
+
* Artifacts that pass the content standards
|
|
4814
|
+
*/
|
|
4815
|
+
pass?: Artifact[];
|
|
4816
|
+
/**
|
|
4817
|
+
* Artifacts that fail the content standards
|
|
4818
|
+
*/
|
|
4819
|
+
fail?: Artifact[];
|
|
4820
|
+
};
|
|
4821
|
+
ext?: ExtensionObject;
|
|
4822
|
+
}
|
|
4823
|
+
/**
|
|
4824
|
+
* Content artifact for safety and suitability evaluation. An artifact represents content adjacent to an ad placement - a news article, podcast segment, video chapter, or social post. Artifacts are collections of assets (text, images, video, audio) plus metadata and signals.
|
|
4825
|
+
*/
|
|
4826
|
+
export interface Artifact {
|
|
4827
|
+
property_id: Identifier;
|
|
4828
|
+
/**
|
|
4829
|
+
* Identifier for this artifact within the property. The property owner defines the scheme (e.g., 'article_12345', 'episode_42_segment_3', 'post_abc123').
|
|
4830
|
+
*/
|
|
4831
|
+
artifact_id: string;
|
|
4832
|
+
/**
|
|
4833
|
+
* Identifies a specific variant of this artifact. Use for A/B tests, translations, or temporal versions. Examples: 'en', 'es-MX', 'v2', 'headline_test_b'. The combination of artifact_id + variant_id must be unique.
|
|
4834
|
+
*/
|
|
4835
|
+
variant_id?: string;
|
|
4836
|
+
format_id?: FormatID;
|
|
4837
|
+
/**
|
|
4838
|
+
* Optional URL for this artifact (web page, podcast feed, video page). Not all artifacts have URLs (e.g., Instagram content, podcast segments, TV scenes).
|
|
4839
|
+
*/
|
|
4840
|
+
url?: string;
|
|
4841
|
+
/**
|
|
4842
|
+
* When the artifact was published (ISO 8601 format)
|
|
4843
|
+
*/
|
|
4844
|
+
published_time?: string;
|
|
4845
|
+
/**
|
|
4846
|
+
* When the artifact was last modified (ISO 8601 format)
|
|
4847
|
+
*/
|
|
4848
|
+
last_update_time?: string;
|
|
4849
|
+
/**
|
|
4850
|
+
* Artifact assets in document flow order - text blocks, images, video, audio
|
|
4851
|
+
*/
|
|
4852
|
+
assets: ({
|
|
4853
|
+
type: 'text';
|
|
4854
|
+
/**
|
|
4855
|
+
* Role of this text in the document. Use 'title' for the main artifact title, 'description' for summaries.
|
|
4856
|
+
*/
|
|
4857
|
+
role?: 'title' | 'paragraph' | 'heading' | 'caption' | 'quote' | 'list_item' | 'description';
|
|
4858
|
+
/**
|
|
4859
|
+
* Text content
|
|
4860
|
+
*/
|
|
4861
|
+
content: string;
|
|
4862
|
+
/**
|
|
4863
|
+
* BCP 47 language tag for this text (e.g., 'en', 'es-MX'). Useful when artifact contains mixed-language content.
|
|
4864
|
+
*/
|
|
4865
|
+
language?: string;
|
|
4866
|
+
/**
|
|
4867
|
+
* Heading level (1-6), only for role=heading
|
|
4868
|
+
*/
|
|
4869
|
+
heading_level?: number;
|
|
4870
|
+
} | {
|
|
4871
|
+
type: 'image';
|
|
4872
|
+
/**
|
|
4873
|
+
* Image URL
|
|
4874
|
+
*/
|
|
4875
|
+
url: string;
|
|
4876
|
+
access?: AssetAccess;
|
|
4877
|
+
/**
|
|
4878
|
+
* Alt text or image description
|
|
4879
|
+
*/
|
|
4880
|
+
alt_text?: string;
|
|
4881
|
+
/**
|
|
4882
|
+
* Image caption
|
|
4883
|
+
*/
|
|
4884
|
+
caption?: string;
|
|
4885
|
+
/**
|
|
4886
|
+
* Image width in pixels
|
|
4887
|
+
*/
|
|
4888
|
+
width?: number;
|
|
4889
|
+
/**
|
|
4890
|
+
* Image height in pixels
|
|
4891
|
+
*/
|
|
4892
|
+
height?: number;
|
|
4893
|
+
} | {
|
|
4894
|
+
type: 'video';
|
|
4895
|
+
/**
|
|
4896
|
+
* Video URL
|
|
4897
|
+
*/
|
|
4898
|
+
url: string;
|
|
4899
|
+
access?: AssetAccess1;
|
|
4900
|
+
/**
|
|
4901
|
+
* Video duration in milliseconds
|
|
4902
|
+
*/
|
|
4903
|
+
duration_ms?: number;
|
|
4904
|
+
/**
|
|
4905
|
+
* Video transcript
|
|
4906
|
+
*/
|
|
4907
|
+
transcript?: string;
|
|
4908
|
+
/**
|
|
4909
|
+
* How the transcript was generated
|
|
4910
|
+
*/
|
|
4911
|
+
transcript_source?: 'original_script' | 'subtitles' | 'closed_captions' | 'dub' | 'generated';
|
|
4912
|
+
/**
|
|
4913
|
+
* Video thumbnail URL
|
|
4914
|
+
*/
|
|
4915
|
+
thumbnail_url?: string;
|
|
4916
|
+
} | {
|
|
4917
|
+
type: 'audio';
|
|
4918
|
+
/**
|
|
4919
|
+
* Audio URL
|
|
4920
|
+
*/
|
|
4921
|
+
url: string;
|
|
4922
|
+
access?: AssetAccess2;
|
|
4923
|
+
/**
|
|
4924
|
+
* Audio duration in milliseconds
|
|
4925
|
+
*/
|
|
4926
|
+
duration_ms?: number;
|
|
4927
|
+
/**
|
|
4928
|
+
* Audio transcript
|
|
4929
|
+
*/
|
|
4930
|
+
transcript?: string;
|
|
4931
|
+
/**
|
|
4932
|
+
* How the transcript was generated
|
|
4933
|
+
*/
|
|
4934
|
+
transcript_source?: 'original_script' | 'closed_captions' | 'generated';
|
|
4935
|
+
})[];
|
|
4936
|
+
/**
|
|
4937
|
+
* Rich metadata extracted from the artifact
|
|
4938
|
+
*/
|
|
4939
|
+
metadata?: {
|
|
4940
|
+
/**
|
|
4941
|
+
* Canonical URL
|
|
4942
|
+
*/
|
|
4943
|
+
canonical?: string;
|
|
4944
|
+
/**
|
|
4945
|
+
* Artifact author name
|
|
4946
|
+
*/
|
|
4947
|
+
author?: string;
|
|
4948
|
+
/**
|
|
4949
|
+
* Artifact keywords
|
|
4950
|
+
*/
|
|
4951
|
+
keywords?: string;
|
|
4952
|
+
/**
|
|
4953
|
+
* Open Graph protocol metadata
|
|
4954
|
+
*/
|
|
4955
|
+
open_graph?: {
|
|
4956
|
+
[k: string]: unknown | undefined;
|
|
4957
|
+
};
|
|
4958
|
+
/**
|
|
4959
|
+
* Twitter Card metadata
|
|
4960
|
+
*/
|
|
4961
|
+
twitter_card?: {
|
|
4962
|
+
[k: string]: unknown | undefined;
|
|
4963
|
+
};
|
|
4964
|
+
/**
|
|
4965
|
+
* JSON-LD structured data (schema.org)
|
|
4966
|
+
*/
|
|
4967
|
+
json_ld?: {}[];
|
|
4968
|
+
[k: string]: unknown | undefined;
|
|
4969
|
+
};
|
|
4970
|
+
/**
|
|
4971
|
+
* Platform-specific identifiers for this artifact
|
|
4972
|
+
*/
|
|
4973
|
+
identifiers?: {
|
|
4974
|
+
/**
|
|
4975
|
+
* Apple Podcasts ID
|
|
4976
|
+
*/
|
|
4977
|
+
apple_podcast_id?: string;
|
|
4978
|
+
/**
|
|
4979
|
+
* Spotify show ID
|
|
4980
|
+
*/
|
|
4981
|
+
spotify_show_id?: string;
|
|
4982
|
+
/**
|
|
4983
|
+
* Podcast GUID (from RSS feed)
|
|
4984
|
+
*/
|
|
4985
|
+
podcast_guid?: string;
|
|
4986
|
+
/**
|
|
4987
|
+
* YouTube video ID
|
|
4988
|
+
*/
|
|
4989
|
+
youtube_video_id?: string;
|
|
4990
|
+
/**
|
|
4991
|
+
* RSS feed URL
|
|
4992
|
+
*/
|
|
4993
|
+
rss_url?: string;
|
|
4994
|
+
[k: string]: unknown | undefined;
|
|
4995
|
+
};
|
|
4996
|
+
[k: string]: unknown | undefined;
|
|
4997
|
+
}
|
|
4998
|
+
/**
|
|
4999
|
+
* Identifier for the property where this artifact appears
|
|
5000
|
+
*/
|
|
5001
|
+
/**
|
|
5002
|
+
* Request parameters for retrieving content safety policies
|
|
5003
|
+
*/
|
|
5004
|
+
export interface GetContentStandardsRequest {
|
|
5005
|
+
/**
|
|
5006
|
+
* Identifier for the standards configuration to retrieve
|
|
5007
|
+
*/
|
|
5008
|
+
standards_id: string;
|
|
5009
|
+
context?: ContextObject;
|
|
5010
|
+
ext?: ExtensionObject;
|
|
5011
|
+
}
|
|
5012
|
+
/**
|
|
5013
|
+
* 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.
|
|
5014
|
+
*/
|
|
5015
|
+
/**
|
|
5016
|
+
* Response payload with content safety policies
|
|
5017
|
+
*/
|
|
5018
|
+
export type GetContentStandardsResponse = ContentStandards | {
|
|
5019
|
+
errors: Error[];
|
|
5020
|
+
/**
|
|
5021
|
+
* Field must not be present in error response
|
|
5022
|
+
*/
|
|
5023
|
+
standards_id?: {
|
|
5024
|
+
[k: string]: unknown | undefined;
|
|
5025
|
+
};
|
|
5026
|
+
context?: ContextObject;
|
|
5027
|
+
ext?: ExtensionObject;
|
|
5028
|
+
};
|
|
5029
|
+
/**
|
|
5030
|
+
* Standardized advertising media channels describing how buyers allocate budget. Channels are planning abstractions, not technical substrates. See the Media Channel Taxonomy specification for detailed definitions.
|
|
5031
|
+
*/
|
|
5032
|
+
/**
|
|
5033
|
+
* Standardized advertising media channels describing how buyers allocate budget. Channels are planning abstractions, not technical substrates. See the Media Channel Taxonomy specification for detailed definitions.
|
|
5034
|
+
*/
|
|
5035
|
+
export interface CreateContentStandardsRequest {
|
|
5036
|
+
/**
|
|
5037
|
+
* Where this standards configuration applies
|
|
5038
|
+
*/
|
|
5039
|
+
scope: {
|
|
5040
|
+
/**
|
|
5041
|
+
* ISO 3166-1 alpha-2 country codes. Standards apply in ALL listed countries (AND logic).
|
|
5042
|
+
*/
|
|
5043
|
+
countries_all?: string[];
|
|
5044
|
+
/**
|
|
5045
|
+
* Advertising channels. Standards apply to ANY of the listed channels (OR logic).
|
|
5046
|
+
*/
|
|
5047
|
+
channels_any?: MediaChannel[];
|
|
5048
|
+
/**
|
|
5049
|
+
* 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.
|
|
5050
|
+
*/
|
|
5051
|
+
languages_any: string[];
|
|
5052
|
+
/**
|
|
5053
|
+
* Human-readable description of this scope
|
|
5054
|
+
*/
|
|
5055
|
+
description?: string;
|
|
5056
|
+
};
|
|
5057
|
+
/**
|
|
5058
|
+
* Natural language policy describing acceptable and unacceptable content contexts. Used by LLMs and human reviewers to make judgments.
|
|
5059
|
+
*/
|
|
5060
|
+
policy: string;
|
|
5061
|
+
/**
|
|
5062
|
+
* Training/test set to calibrate policy interpretation. Use URL references for pages to be fetched and analyzed, or full artifacts for pre-extracted content.
|
|
5063
|
+
*/
|
|
5064
|
+
calibration_exemplars?: {
|
|
5065
|
+
/**
|
|
5066
|
+
* Content that passes the standards
|
|
5067
|
+
*/
|
|
5068
|
+
pass?: ({
|
|
5069
|
+
/**
|
|
5070
|
+
* Indicates this is a URL reference
|
|
5071
|
+
*/
|
|
5072
|
+
type: 'url';
|
|
5073
|
+
/**
|
|
5074
|
+
* Full URL to a specific page (e.g., 'https://espn.com/nba/story/_/id/12345/lakers-win')
|
|
5075
|
+
*/
|
|
5076
|
+
value: string;
|
|
5077
|
+
/**
|
|
5078
|
+
* BCP 47 language tag for content at this URL
|
|
5079
|
+
*/
|
|
5080
|
+
language?: string;
|
|
5081
|
+
} | Artifact)[];
|
|
5082
|
+
/**
|
|
5083
|
+
* Content that fails the standards
|
|
5084
|
+
*/
|
|
5085
|
+
fail?: ({
|
|
5086
|
+
/**
|
|
5087
|
+
* Indicates this is a URL reference
|
|
5088
|
+
*/
|
|
5089
|
+
type: 'url';
|
|
5090
|
+
/**
|
|
5091
|
+
* Full URL to a specific page (e.g., 'https://news.example.com/controversial-article')
|
|
5092
|
+
*/
|
|
5093
|
+
value: string;
|
|
5094
|
+
/**
|
|
5095
|
+
* BCP 47 language tag for content at this URL
|
|
5096
|
+
*/
|
|
5097
|
+
language?: string;
|
|
5098
|
+
} | Artifact1)[];
|
|
5099
|
+
};
|
|
5100
|
+
context?: ContextObject;
|
|
5101
|
+
ext?: ExtensionObject;
|
|
5102
|
+
}
|
|
5103
|
+
/**
|
|
5104
|
+
* Full artifact with pre-extracted content (text, images, video, audio)
|
|
5105
|
+
*/
|
|
5106
|
+
export interface Artifact1 {
|
|
5107
|
+
property_id: Identifier;
|
|
5108
|
+
/**
|
|
5109
|
+
* Identifier for this artifact within the property. The property owner defines the scheme (e.g., 'article_12345', 'episode_42_segment_3', 'post_abc123').
|
|
5110
|
+
*/
|
|
5111
|
+
artifact_id: string;
|
|
5112
|
+
/**
|
|
5113
|
+
* Identifies a specific variant of this artifact. Use for A/B tests, translations, or temporal versions. Examples: 'en', 'es-MX', 'v2', 'headline_test_b'. The combination of artifact_id + variant_id must be unique.
|
|
5114
|
+
*/
|
|
5115
|
+
variant_id?: string;
|
|
5116
|
+
format_id?: FormatID;
|
|
5117
|
+
/**
|
|
5118
|
+
* Optional URL for this artifact (web page, podcast feed, video page). Not all artifacts have URLs (e.g., Instagram content, podcast segments, TV scenes).
|
|
5119
|
+
*/
|
|
5120
|
+
url?: string;
|
|
5121
|
+
/**
|
|
5122
|
+
* When the artifact was published (ISO 8601 format)
|
|
5123
|
+
*/
|
|
5124
|
+
published_time?: string;
|
|
5125
|
+
/**
|
|
5126
|
+
* When the artifact was last modified (ISO 8601 format)
|
|
5127
|
+
*/
|
|
5128
|
+
last_update_time?: string;
|
|
5129
|
+
/**
|
|
5130
|
+
* Artifact assets in document flow order - text blocks, images, video, audio
|
|
5131
|
+
*/
|
|
5132
|
+
assets: ({
|
|
5133
|
+
type: 'text';
|
|
5134
|
+
/**
|
|
5135
|
+
* Role of this text in the document. Use 'title' for the main artifact title, 'description' for summaries.
|
|
5136
|
+
*/
|
|
5137
|
+
role?: 'title' | 'paragraph' | 'heading' | 'caption' | 'quote' | 'list_item' | 'description';
|
|
5138
|
+
/**
|
|
5139
|
+
* Text content
|
|
5140
|
+
*/
|
|
5141
|
+
content: string;
|
|
5142
|
+
/**
|
|
5143
|
+
* BCP 47 language tag for this text (e.g., 'en', 'es-MX'). Useful when artifact contains mixed-language content.
|
|
5144
|
+
*/
|
|
5145
|
+
language?: string;
|
|
5146
|
+
/**
|
|
5147
|
+
* Heading level (1-6), only for role=heading
|
|
5148
|
+
*/
|
|
5149
|
+
heading_level?: number;
|
|
5150
|
+
} | {
|
|
5151
|
+
type: 'image';
|
|
5152
|
+
/**
|
|
5153
|
+
* Image URL
|
|
5154
|
+
*/
|
|
5155
|
+
url: string;
|
|
5156
|
+
access?: AssetAccess;
|
|
5157
|
+
/**
|
|
5158
|
+
* Alt text or image description
|
|
5159
|
+
*/
|
|
5160
|
+
alt_text?: string;
|
|
5161
|
+
/**
|
|
5162
|
+
* Image caption
|
|
5163
|
+
*/
|
|
5164
|
+
caption?: string;
|
|
5165
|
+
/**
|
|
5166
|
+
* Image width in pixels
|
|
5167
|
+
*/
|
|
5168
|
+
width?: number;
|
|
5169
|
+
/**
|
|
5170
|
+
* Image height in pixels
|
|
5171
|
+
*/
|
|
5172
|
+
height?: number;
|
|
5173
|
+
} | {
|
|
5174
|
+
type: 'video';
|
|
5175
|
+
/**
|
|
5176
|
+
* Video URL
|
|
5177
|
+
*/
|
|
5178
|
+
url: string;
|
|
5179
|
+
access?: AssetAccess1;
|
|
5180
|
+
/**
|
|
5181
|
+
* Video duration in milliseconds
|
|
5182
|
+
*/
|
|
5183
|
+
duration_ms?: number;
|
|
5184
|
+
/**
|
|
5185
|
+
* Video transcript
|
|
5186
|
+
*/
|
|
5187
|
+
transcript?: string;
|
|
5188
|
+
/**
|
|
5189
|
+
* How the transcript was generated
|
|
5190
|
+
*/
|
|
5191
|
+
transcript_source?: 'original_script' | 'subtitles' | 'closed_captions' | 'dub' | 'generated';
|
|
5192
|
+
/**
|
|
5193
|
+
* Video thumbnail URL
|
|
5194
|
+
*/
|
|
5195
|
+
thumbnail_url?: string;
|
|
5196
|
+
} | {
|
|
5197
|
+
type: 'audio';
|
|
5198
|
+
/**
|
|
5199
|
+
* Audio URL
|
|
5200
|
+
*/
|
|
5201
|
+
url: string;
|
|
5202
|
+
access?: AssetAccess2;
|
|
5203
|
+
/**
|
|
5204
|
+
* Audio duration in milliseconds
|
|
5205
|
+
*/
|
|
5206
|
+
duration_ms?: number;
|
|
5207
|
+
/**
|
|
5208
|
+
* Audio transcript
|
|
5209
|
+
*/
|
|
5210
|
+
transcript?: string;
|
|
5211
|
+
/**
|
|
5212
|
+
* How the transcript was generated
|
|
5213
|
+
*/
|
|
5214
|
+
transcript_source?: 'original_script' | 'closed_captions' | 'generated';
|
|
5215
|
+
})[];
|
|
5216
|
+
/**
|
|
5217
|
+
* Rich metadata extracted from the artifact
|
|
5218
|
+
*/
|
|
5219
|
+
metadata?: {
|
|
5220
|
+
/**
|
|
5221
|
+
* Canonical URL
|
|
5222
|
+
*/
|
|
5223
|
+
canonical?: string;
|
|
5224
|
+
/**
|
|
5225
|
+
* Artifact author name
|
|
5226
|
+
*/
|
|
5227
|
+
author?: string;
|
|
5228
|
+
/**
|
|
5229
|
+
* Artifact keywords
|
|
5230
|
+
*/
|
|
5231
|
+
keywords?: string;
|
|
5232
|
+
/**
|
|
5233
|
+
* Open Graph protocol metadata
|
|
5234
|
+
*/
|
|
5235
|
+
open_graph?: {
|
|
5236
|
+
[k: string]: unknown | undefined;
|
|
5237
|
+
};
|
|
5238
|
+
/**
|
|
5239
|
+
* Twitter Card metadata
|
|
5240
|
+
*/
|
|
5241
|
+
twitter_card?: {
|
|
5242
|
+
[k: string]: unknown | undefined;
|
|
5243
|
+
};
|
|
5244
|
+
/**
|
|
5245
|
+
* JSON-LD structured data (schema.org)
|
|
5246
|
+
*/
|
|
5247
|
+
json_ld?: {}[];
|
|
5248
|
+
[k: string]: unknown | undefined;
|
|
5249
|
+
};
|
|
5250
|
+
/**
|
|
5251
|
+
* Platform-specific identifiers for this artifact
|
|
5252
|
+
*/
|
|
5253
|
+
identifiers?: {
|
|
5254
|
+
/**
|
|
5255
|
+
* Apple Podcasts ID
|
|
5256
|
+
*/
|
|
5257
|
+
apple_podcast_id?: string;
|
|
5258
|
+
/**
|
|
5259
|
+
* Spotify show ID
|
|
5260
|
+
*/
|
|
5261
|
+
spotify_show_id?: string;
|
|
5262
|
+
/**
|
|
5263
|
+
* Podcast GUID (from RSS feed)
|
|
5264
|
+
*/
|
|
5265
|
+
podcast_guid?: string;
|
|
5266
|
+
/**
|
|
5267
|
+
* YouTube video ID
|
|
5268
|
+
*/
|
|
5269
|
+
youtube_video_id?: string;
|
|
5270
|
+
/**
|
|
5271
|
+
* RSS feed URL
|
|
5272
|
+
*/
|
|
5273
|
+
rss_url?: string;
|
|
5274
|
+
[k: string]: unknown | undefined;
|
|
5275
|
+
};
|
|
5276
|
+
[k: string]: unknown | undefined;
|
|
5277
|
+
}
|
|
5278
|
+
/**
|
|
5279
|
+
* 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.
|
|
5280
|
+
*/
|
|
5281
|
+
/**
|
|
5282
|
+
* Response payload for creating a content standards configuration
|
|
5283
|
+
*/
|
|
5284
|
+
export type CreateContentStandardsResponse = {
|
|
5285
|
+
/**
|
|
5286
|
+
* Unique identifier for the created standards configuration
|
|
5287
|
+
*/
|
|
5288
|
+
standards_id: string;
|
|
5289
|
+
/**
|
|
5290
|
+
* Field must not be present in success response
|
|
5291
|
+
*/
|
|
5292
|
+
errors?: {
|
|
5293
|
+
[k: string]: unknown | undefined;
|
|
5294
|
+
};
|
|
5295
|
+
context?: ContextObject;
|
|
5296
|
+
ext?: ExtensionObject;
|
|
5297
|
+
} | {
|
|
5298
|
+
errors: Error[];
|
|
5299
|
+
/**
|
|
5300
|
+
* If the error is a scope conflict, the ID of the existing standards that conflict
|
|
5301
|
+
*/
|
|
5302
|
+
conflicting_standards_id?: string;
|
|
5303
|
+
/**
|
|
5304
|
+
* Field must not be present in error response
|
|
5305
|
+
*/
|
|
5306
|
+
standards_id?: {
|
|
5307
|
+
[k: string]: unknown | undefined;
|
|
5308
|
+
};
|
|
5309
|
+
context?: ContextObject;
|
|
5310
|
+
ext?: ExtensionObject;
|
|
5311
|
+
};
|
|
5312
|
+
/**
|
|
5313
|
+
* 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.
|
|
5314
|
+
*/
|
|
5315
|
+
/**
|
|
5316
|
+
* Standardized advertising media channels describing how buyers allocate budget. Channels are planning abstractions, not technical substrates. See the Media Channel Taxonomy specification for detailed definitions.
|
|
5317
|
+
*/
|
|
5318
|
+
export interface UpdateContentStandardsRequest {
|
|
5319
|
+
/**
|
|
5320
|
+
* ID of the standards configuration to update
|
|
5321
|
+
*/
|
|
5322
|
+
standards_id: string;
|
|
5323
|
+
/**
|
|
5324
|
+
* Updated scope for where this standards configuration applies
|
|
5325
|
+
*/
|
|
5326
|
+
scope?: {
|
|
5327
|
+
/**
|
|
5328
|
+
* ISO 3166-1 alpha-2 country codes. Standards apply in ALL listed countries (AND logic).
|
|
5329
|
+
*/
|
|
5330
|
+
countries_all?: string[];
|
|
5331
|
+
/**
|
|
5332
|
+
* Advertising channels. Standards apply to ANY of the listed channels (OR logic).
|
|
5333
|
+
*/
|
|
5334
|
+
channels_any?: MediaChannel[];
|
|
5335
|
+
/**
|
|
5336
|
+
* 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.
|
|
5337
|
+
*/
|
|
5338
|
+
languages_any?: string[];
|
|
5339
|
+
/**
|
|
5340
|
+
* Human-readable description of this scope
|
|
5341
|
+
*/
|
|
5342
|
+
description?: string;
|
|
5343
|
+
};
|
|
5344
|
+
/**
|
|
5345
|
+
* Updated natural language policy describing acceptable and unacceptable content contexts.
|
|
5346
|
+
*/
|
|
5347
|
+
policy?: string;
|
|
5348
|
+
/**
|
|
5349
|
+
* Updated training/test set to calibrate policy interpretation. Use URL references for pages to be fetched and analyzed, or full artifacts for pre-extracted content.
|
|
5350
|
+
*/
|
|
5351
|
+
calibration_exemplars?: {
|
|
5352
|
+
/**
|
|
5353
|
+
* Content that passes the standards
|
|
5354
|
+
*/
|
|
5355
|
+
pass?: ({
|
|
5356
|
+
/**
|
|
5357
|
+
* Indicates this is a URL reference
|
|
5358
|
+
*/
|
|
5359
|
+
type: 'url';
|
|
5360
|
+
/**
|
|
5361
|
+
* Full URL to a specific page (e.g., 'https://espn.com/nba/story/_/id/12345/lakers-win')
|
|
5362
|
+
*/
|
|
5363
|
+
value: string;
|
|
5364
|
+
/**
|
|
5365
|
+
* BCP 47 language tag for content at this URL
|
|
5366
|
+
*/
|
|
5367
|
+
language?: string;
|
|
5368
|
+
} | Artifact)[];
|
|
5369
|
+
/**
|
|
5370
|
+
* Content that fails the standards
|
|
5371
|
+
*/
|
|
5372
|
+
fail?: ({
|
|
5373
|
+
/**
|
|
5374
|
+
* Indicates this is a URL reference
|
|
5375
|
+
*/
|
|
5376
|
+
type: 'url';
|
|
5377
|
+
/**
|
|
5378
|
+
* Full URL to a specific page (e.g., 'https://news.example.com/controversial-article')
|
|
5379
|
+
*/
|
|
5380
|
+
value: string;
|
|
5381
|
+
/**
|
|
5382
|
+
* BCP 47 language tag for content at this URL
|
|
5383
|
+
*/
|
|
5384
|
+
language?: string;
|
|
5385
|
+
} | Artifact1)[];
|
|
5386
|
+
};
|
|
5387
|
+
context?: ContextObject;
|
|
5388
|
+
ext?: ExtensionObject;
|
|
5389
|
+
}
|
|
5390
|
+
/**
|
|
5391
|
+
* Full artifact with pre-extracted content (text, images, video, audio)
|
|
5392
|
+
*/
|
|
5393
|
+
/**
|
|
5394
|
+
* Response from updating a content standards configuration
|
|
5395
|
+
*/
|
|
5396
|
+
export interface UpdateContentStandardsResponse {
|
|
5397
|
+
/**
|
|
5398
|
+
* ID of the updated standards configuration
|
|
5399
|
+
*/
|
|
5400
|
+
standards_id?: string;
|
|
5401
|
+
/**
|
|
5402
|
+
* Errors that occurred during the update
|
|
5403
|
+
*/
|
|
5404
|
+
errors?: Error[];
|
|
5405
|
+
/**
|
|
5406
|
+
* If scope change conflicts with another configuration, the ID of the conflicting standards
|
|
5407
|
+
*/
|
|
5408
|
+
conflicting_standards_id?: string;
|
|
5409
|
+
context?: ContextObject;
|
|
5410
|
+
ext?: ExtensionObject;
|
|
5411
|
+
}
|
|
5412
|
+
/**
|
|
5413
|
+
* Standard error structure for task-specific errors and warnings
|
|
5414
|
+
*/
|
|
5415
|
+
/**
|
|
5416
|
+
* Type of identifier
|
|
5417
|
+
*/
|
|
5418
|
+
export interface CalibrateContentRequest {
|
|
5419
|
+
/**
|
|
5420
|
+
* Standards configuration to calibrate against
|
|
5421
|
+
*/
|
|
5422
|
+
standards_id: string;
|
|
5423
|
+
artifact: Artifact;
|
|
5424
|
+
}
|
|
5425
|
+
/**
|
|
5426
|
+
* Artifact to evaluate
|
|
5427
|
+
*/
|
|
5428
|
+
/**
|
|
5429
|
+
* Response payload with verdict and detailed explanations for collaborative calibration
|
|
5430
|
+
*/
|
|
5431
|
+
export type CalibrateContentResponse = {
|
|
5432
|
+
/**
|
|
5433
|
+
* Overall pass/fail verdict for the content evaluation
|
|
5434
|
+
*/
|
|
5435
|
+
verdict: 'pass' | 'fail';
|
|
5436
|
+
/**
|
|
5437
|
+
* Model confidence in the verdict (0-1)
|
|
5438
|
+
*/
|
|
5439
|
+
confidence?: number;
|
|
5440
|
+
/**
|
|
5441
|
+
* Detailed natural language explanation of the decision
|
|
5442
|
+
*/
|
|
5443
|
+
explanation?: string;
|
|
5444
|
+
/**
|
|
5445
|
+
* Per-feature breakdown with explanations
|
|
5446
|
+
*/
|
|
5447
|
+
features?: {
|
|
5448
|
+
/**
|
|
5449
|
+
* Which feature was evaluated (e.g., brand_safety, brand_suitability, competitor_adjacency)
|
|
5450
|
+
*/
|
|
5451
|
+
feature_id: string;
|
|
5452
|
+
/**
|
|
5453
|
+
* Evaluation status for this feature
|
|
5454
|
+
*/
|
|
5455
|
+
status: 'passed' | 'failed' | 'warning' | 'unevaluated';
|
|
5456
|
+
/**
|
|
5457
|
+
* Human-readable explanation of why this feature passed or failed
|
|
5458
|
+
*/
|
|
5459
|
+
explanation?: string;
|
|
5460
|
+
}[];
|
|
5461
|
+
/**
|
|
5462
|
+
* Field must not be present in success response
|
|
5463
|
+
*/
|
|
5464
|
+
errors?: {
|
|
5465
|
+
[k: string]: unknown | undefined;
|
|
5466
|
+
};
|
|
5467
|
+
} | {
|
|
5468
|
+
errors: Error[];
|
|
5469
|
+
/**
|
|
5470
|
+
* Field must not be present in error response
|
|
5471
|
+
*/
|
|
5472
|
+
verdict?: {
|
|
5473
|
+
[k: string]: unknown | undefined;
|
|
5474
|
+
};
|
|
5475
|
+
};
|
|
5476
|
+
/**
|
|
5477
|
+
* Standard error structure for task-specific errors and warnings
|
|
5478
|
+
*/
|
|
5479
|
+
/**
|
|
5480
|
+
* Type of identifier
|
|
5481
|
+
*/
|
|
5482
|
+
export interface ValidateContentDeliveryRequest {
|
|
5483
|
+
/**
|
|
5484
|
+
* Standards configuration to validate against
|
|
5485
|
+
*/
|
|
5486
|
+
standards_id: string;
|
|
5487
|
+
/**
|
|
5488
|
+
* Delivery records to validate (max 10,000)
|
|
5489
|
+
*
|
|
5490
|
+
* @maxItems 10000
|
|
5491
|
+
*/
|
|
5492
|
+
records: {
|
|
5493
|
+
/**
|
|
5494
|
+
* Unique identifier for this delivery record
|
|
5495
|
+
*/
|
|
5496
|
+
record_id: string;
|
|
5497
|
+
/**
|
|
5498
|
+
* Media buy this record belongs to (when batching across multiple buys)
|
|
5499
|
+
*/
|
|
5500
|
+
media_buy_id?: string;
|
|
5501
|
+
/**
|
|
5502
|
+
* When the delivery occurred
|
|
5503
|
+
*/
|
|
5504
|
+
timestamp?: string;
|
|
5505
|
+
artifact: Artifact;
|
|
5506
|
+
/**
|
|
5507
|
+
* ISO 3166-1 alpha-2 country code where delivery occurred
|
|
5508
|
+
*/
|
|
5509
|
+
country?: string;
|
|
5510
|
+
/**
|
|
5511
|
+
* Channel type (e.g., display, video, audio, social)
|
|
5512
|
+
*/
|
|
5513
|
+
channel?: string;
|
|
5514
|
+
/**
|
|
5515
|
+
* Brand information for policy evaluation. Schema TBD - placeholder for brand identifiers.
|
|
5516
|
+
*/
|
|
5517
|
+
brand_context?: {
|
|
5518
|
+
/**
|
|
5519
|
+
* Brand identifier
|
|
5520
|
+
*/
|
|
5521
|
+
brand_id?: string;
|
|
5522
|
+
/**
|
|
5523
|
+
* Product/SKU identifier if applicable
|
|
5524
|
+
*/
|
|
5525
|
+
sku_id?: string;
|
|
5526
|
+
};
|
|
5527
|
+
}[];
|
|
5528
|
+
/**
|
|
5529
|
+
* Specific features to evaluate (defaults to all)
|
|
5530
|
+
*/
|
|
5531
|
+
feature_ids?: string[];
|
|
5532
|
+
/**
|
|
5533
|
+
* Include passed records in results
|
|
5534
|
+
*/
|
|
5535
|
+
include_passed?: boolean;
|
|
5536
|
+
context?: ContextObject;
|
|
5537
|
+
ext?: ExtensionObject;
|
|
5538
|
+
}
|
|
5539
|
+
/**
|
|
5540
|
+
* Artifact where ad was delivered
|
|
5541
|
+
*/
|
|
5542
|
+
/**
|
|
5543
|
+
* Response payload with per-record verdicts and optional feature breakdown
|
|
5544
|
+
*/
|
|
5545
|
+
export type ValidateContentDeliveryResponse = {
|
|
5546
|
+
/**
|
|
5547
|
+
* Summary counts across all records
|
|
5548
|
+
*/
|
|
5549
|
+
summary: {
|
|
5550
|
+
total_records: number;
|
|
5551
|
+
passed_records: number;
|
|
5552
|
+
failed_records: number;
|
|
5553
|
+
};
|
|
5554
|
+
/**
|
|
5555
|
+
* Per-record evaluation results
|
|
5556
|
+
*/
|
|
5557
|
+
results: {
|
|
5558
|
+
/**
|
|
5559
|
+
* Which delivery record was evaluated
|
|
5560
|
+
*/
|
|
5561
|
+
record_id: string;
|
|
5562
|
+
/**
|
|
5563
|
+
* Overall pass/fail verdict for this record
|
|
5564
|
+
*/
|
|
5565
|
+
verdict: 'pass' | 'fail';
|
|
5566
|
+
/**
|
|
5567
|
+
* Optional feature-level breakdown
|
|
5568
|
+
*/
|
|
5569
|
+
features?: {
|
|
5570
|
+
feature_id: string;
|
|
5571
|
+
status: 'passed' | 'failed' | 'warning' | 'unevaluated';
|
|
5572
|
+
value?: unknown;
|
|
5573
|
+
message?: string;
|
|
5574
|
+
/**
|
|
5575
|
+
* Which rule triggered this result (e.g., GARM category, Scope3 standard)
|
|
5576
|
+
*/
|
|
5577
|
+
rule_id?: string;
|
|
5578
|
+
}[];
|
|
5579
|
+
}[];
|
|
5580
|
+
/**
|
|
5581
|
+
* Field must not be present in success response
|
|
5582
|
+
*/
|
|
5583
|
+
errors?: {
|
|
5584
|
+
[k: string]: unknown | undefined;
|
|
5585
|
+
};
|
|
5586
|
+
context?: ContextObject;
|
|
5587
|
+
ext?: ExtensionObject;
|
|
5588
|
+
} | {
|
|
5589
|
+
errors: Error[];
|
|
5590
|
+
/**
|
|
5591
|
+
* Field must not be present in error response
|
|
5592
|
+
*/
|
|
5593
|
+
summary?: {
|
|
5594
|
+
[k: string]: unknown | undefined;
|
|
5595
|
+
};
|
|
5596
|
+
context?: ContextObject;
|
|
5597
|
+
ext?: ExtensionObject;
|
|
5598
|
+
};
|
|
5599
|
+
/**
|
|
5600
|
+
* 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.
|
|
5601
|
+
*/
|
|
5602
|
+
/**
|
|
5603
|
+
* Request parameters for retrieving content artifacts from a media buy for validation
|
|
5604
|
+
*/
|
|
5605
|
+
export interface GetMediaBuyArtifactsRequest {
|
|
5606
|
+
/**
|
|
5607
|
+
* Media buy to get artifacts from
|
|
5608
|
+
*/
|
|
5609
|
+
media_buy_id: string;
|
|
5610
|
+
/**
|
|
5611
|
+
* Filter to specific packages within the media buy
|
|
5612
|
+
*/
|
|
5613
|
+
package_ids?: string[];
|
|
5614
|
+
/**
|
|
5615
|
+
* Sampling parameters. Defaults to the sampling rate agreed in the media buy.
|
|
5616
|
+
*/
|
|
5617
|
+
sampling?: {
|
|
5618
|
+
/**
|
|
5619
|
+
* Sampling rate (0-1). 1.0 = all deliveries, 0.25 = 25% sample.
|
|
5620
|
+
*/
|
|
5621
|
+
rate?: number;
|
|
5622
|
+
/**
|
|
5623
|
+
* How to select the sample
|
|
5624
|
+
*/
|
|
5625
|
+
method?: 'random' | 'stratified' | 'recent' | 'failures_only';
|
|
5626
|
+
};
|
|
5627
|
+
/**
|
|
5628
|
+
* Filter to specific time period
|
|
5629
|
+
*/
|
|
5630
|
+
time_range?: {
|
|
5631
|
+
/**
|
|
5632
|
+
* Start of time range (inclusive)
|
|
5633
|
+
*/
|
|
5634
|
+
start?: string;
|
|
5635
|
+
/**
|
|
5636
|
+
* End of time range (exclusive)
|
|
5637
|
+
*/
|
|
5638
|
+
end?: string;
|
|
5639
|
+
};
|
|
5640
|
+
/**
|
|
5641
|
+
* Maximum artifacts to return per request
|
|
5642
|
+
*/
|
|
5643
|
+
limit?: number;
|
|
5644
|
+
/**
|
|
5645
|
+
* Pagination cursor for fetching subsequent pages
|
|
5646
|
+
*/
|
|
5647
|
+
cursor?: string;
|
|
5648
|
+
context?: ContextObject;
|
|
5649
|
+
ext?: ExtensionObject;
|
|
5650
|
+
}
|
|
5651
|
+
/**
|
|
5652
|
+
* 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.
|
|
5653
|
+
*/
|
|
5654
|
+
/**
|
|
5655
|
+
* Response containing content artifacts from a media buy for validation
|
|
5656
|
+
*/
|
|
5657
|
+
export type GetMediaBuyArtifactsResponse = {
|
|
5658
|
+
/**
|
|
5659
|
+
* Media buy these artifacts belong to
|
|
5660
|
+
*/
|
|
5661
|
+
media_buy_id: string;
|
|
5662
|
+
/**
|
|
5663
|
+
* Delivery records with full artifact content
|
|
5664
|
+
*/
|
|
5665
|
+
artifacts: {
|
|
5666
|
+
/**
|
|
5667
|
+
* Unique identifier for this delivery record
|
|
5668
|
+
*/
|
|
5669
|
+
record_id: string;
|
|
5670
|
+
/**
|
|
5671
|
+
* When the delivery occurred
|
|
5672
|
+
*/
|
|
5673
|
+
timestamp?: string;
|
|
5674
|
+
/**
|
|
5675
|
+
* Which package this delivery belongs to
|
|
5676
|
+
*/
|
|
5677
|
+
package_id?: string;
|
|
5678
|
+
artifact: Artifact;
|
|
5679
|
+
/**
|
|
5680
|
+
* ISO 3166-1 alpha-2 country code where delivery occurred
|
|
5681
|
+
*/
|
|
5682
|
+
country?: string;
|
|
5683
|
+
/**
|
|
5684
|
+
* Channel type (e.g., display, video, audio, social)
|
|
5685
|
+
*/
|
|
5686
|
+
channel?: string;
|
|
5687
|
+
/**
|
|
5688
|
+
* Brand information for policy evaluation. Schema TBD - placeholder for brand identifiers.
|
|
5689
|
+
*/
|
|
5690
|
+
brand_context?: {
|
|
5691
|
+
/**
|
|
5692
|
+
* Brand identifier
|
|
5693
|
+
*/
|
|
5694
|
+
brand_id?: string;
|
|
5695
|
+
/**
|
|
5696
|
+
* Product/SKU identifier if applicable
|
|
5697
|
+
*/
|
|
5698
|
+
sku_id?: string;
|
|
5699
|
+
};
|
|
5700
|
+
/**
|
|
5701
|
+
* Seller's local model verdict for this artifact
|
|
5702
|
+
*/
|
|
5703
|
+
local_verdict?: 'pass' | 'fail' | 'unevaluated';
|
|
5704
|
+
}[];
|
|
5705
|
+
/**
|
|
5706
|
+
* Information about how the sample was generated
|
|
5707
|
+
*/
|
|
5708
|
+
sampling_info?: {
|
|
5709
|
+
/**
|
|
5710
|
+
* Total deliveries in the time range
|
|
5711
|
+
*/
|
|
5712
|
+
total_deliveries?: number;
|
|
5713
|
+
/**
|
|
5714
|
+
* Number of artifacts in this response
|
|
5715
|
+
*/
|
|
5716
|
+
sampled_count?: number;
|
|
5717
|
+
/**
|
|
5718
|
+
* Actual sampling rate achieved
|
|
5719
|
+
*/
|
|
5720
|
+
effective_rate?: number;
|
|
5721
|
+
/**
|
|
5722
|
+
* Sampling method used
|
|
5723
|
+
*/
|
|
5724
|
+
method?: 'random' | 'stratified' | 'recent' | 'failures_only';
|
|
5725
|
+
};
|
|
5726
|
+
/**
|
|
5727
|
+
* Pagination information for large result sets
|
|
5728
|
+
*/
|
|
5729
|
+
pagination?: {
|
|
5730
|
+
/**
|
|
5731
|
+
* Cursor for fetching the next page
|
|
5732
|
+
*/
|
|
5733
|
+
cursor?: string;
|
|
5734
|
+
/**
|
|
5735
|
+
* Whether more results are available
|
|
5736
|
+
*/
|
|
5737
|
+
has_more?: boolean;
|
|
5738
|
+
};
|
|
5739
|
+
/**
|
|
5740
|
+
* Field must not be present in success response
|
|
5741
|
+
*/
|
|
5742
|
+
errors?: {
|
|
5743
|
+
[k: string]: unknown | undefined;
|
|
5744
|
+
};
|
|
5745
|
+
context?: ContextObject;
|
|
5746
|
+
ext?: ExtensionObject;
|
|
5747
|
+
} | {
|
|
5748
|
+
errors: Error[];
|
|
5749
|
+
/**
|
|
5750
|
+
* Field must not be present in error response
|
|
5751
|
+
*/
|
|
5752
|
+
media_buy_id?: {
|
|
5753
|
+
[k: string]: unknown | undefined;
|
|
5754
|
+
};
|
|
5755
|
+
context?: ContextObject;
|
|
5756
|
+
ext?: ExtensionObject;
|
|
5757
|
+
};
|
|
5758
|
+
/**
|
|
5759
|
+
* Type of identifier
|
|
5760
|
+
*/
|
|
5761
|
+
/**
|
|
5762
|
+
* Get offering details and availability before session handoff. Returns offering information, availability status, and optionally matching products based on context.
|
|
5763
|
+
*/
|
|
5764
|
+
export interface SIGetOfferingRequest {
|
|
5765
|
+
/**
|
|
5766
|
+
* Offering identifier from promoted offerings to get details for
|
|
5767
|
+
*/
|
|
5768
|
+
offering_id: string;
|
|
5769
|
+
/**
|
|
5770
|
+
* Optional natural language context about user intent for personalized results (e.g., 'mens size 14 near Cincinnati'). Must be anonymous - no PII.
|
|
5771
|
+
*/
|
|
5772
|
+
context?: string;
|
|
5773
|
+
/**
|
|
5774
|
+
* Whether to include matching products in the response
|
|
5775
|
+
*/
|
|
5776
|
+
include_products?: boolean;
|
|
5777
|
+
/**
|
|
5778
|
+
* Maximum number of matching products to return
|
|
5779
|
+
*/
|
|
5780
|
+
product_limit?: number;
|
|
5781
|
+
ext?: ExtensionObject;
|
|
5782
|
+
}
|
|
5783
|
+
/**
|
|
5784
|
+
* 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.
|
|
5785
|
+
*/
|
|
5786
|
+
/**
|
|
5787
|
+
* Offering details, availability status, and optionally matching products. Use the offering_token in si_initiate_session for correlation.
|
|
5788
|
+
*/
|
|
5789
|
+
export interface SIGetOfferingResponse {
|
|
5790
|
+
/**
|
|
5791
|
+
* Whether the offering is currently available
|
|
5792
|
+
*/
|
|
5793
|
+
available: boolean;
|
|
5794
|
+
/**
|
|
5795
|
+
* Token to pass to si_initiate_session for session continuity. Brand stores the full query context server-side (products shown, order, context) so they can resolve references like 'the second one' when the session starts.
|
|
5796
|
+
*/
|
|
5797
|
+
offering_token?: string;
|
|
5798
|
+
/**
|
|
5799
|
+
* How long this offering information is valid (seconds). Host should re-fetch after TTL expires.
|
|
5800
|
+
*/
|
|
5801
|
+
ttl_seconds?: number;
|
|
5802
|
+
/**
|
|
5803
|
+
* When this offering information was retrieved
|
|
5804
|
+
*/
|
|
5805
|
+
checked_at?: string;
|
|
5806
|
+
/**
|
|
5807
|
+
* Offering details
|
|
5808
|
+
*/
|
|
5809
|
+
offering?: {
|
|
5810
|
+
/**
|
|
5811
|
+
* Offering identifier
|
|
5812
|
+
*/
|
|
5813
|
+
offering_id?: string;
|
|
5814
|
+
/**
|
|
5815
|
+
* Offering title
|
|
5816
|
+
*/
|
|
5817
|
+
title?: string;
|
|
5818
|
+
/**
|
|
5819
|
+
* Brief summary of the offering
|
|
5820
|
+
*/
|
|
5821
|
+
summary?: string;
|
|
5822
|
+
/**
|
|
5823
|
+
* Short promotional tagline
|
|
5824
|
+
*/
|
|
5825
|
+
tagline?: string;
|
|
5826
|
+
/**
|
|
5827
|
+
* When this offering expires
|
|
5828
|
+
*/
|
|
5829
|
+
expires_at?: string;
|
|
5830
|
+
/**
|
|
5831
|
+
* Price indication (e.g., 'from $199', '50% off')
|
|
5832
|
+
*/
|
|
5833
|
+
price_hint?: string;
|
|
5834
|
+
/**
|
|
5835
|
+
* Hero image for the offering
|
|
5836
|
+
*/
|
|
5837
|
+
image_url?: string;
|
|
5838
|
+
/**
|
|
5839
|
+
* Landing page URL
|
|
5840
|
+
*/
|
|
5841
|
+
landing_url?: string;
|
|
5842
|
+
};
|
|
5843
|
+
/**
|
|
5844
|
+
* Products matching the request context. Only included if include_products was true.
|
|
5845
|
+
*/
|
|
5846
|
+
matching_products?: {
|
|
5847
|
+
/**
|
|
5848
|
+
* Product identifier
|
|
5849
|
+
*/
|
|
5850
|
+
product_id: string;
|
|
5851
|
+
/**
|
|
5852
|
+
* Product name
|
|
5853
|
+
*/
|
|
5854
|
+
name: string;
|
|
5855
|
+
/**
|
|
5856
|
+
* Display price (e.g., '$129', '$89.99')
|
|
5857
|
+
*/
|
|
5858
|
+
price?: string;
|
|
5859
|
+
/**
|
|
5860
|
+
* Original price if on sale
|
|
5861
|
+
*/
|
|
5862
|
+
original_price?: string;
|
|
5863
|
+
/**
|
|
5864
|
+
* Product image
|
|
5865
|
+
*/
|
|
5866
|
+
image_url?: string;
|
|
5867
|
+
/**
|
|
5868
|
+
* Brief availability info (e.g., 'In stock', 'Size 14 available', '3 left')
|
|
5869
|
+
*/
|
|
5870
|
+
availability_summary?: string;
|
|
5871
|
+
/**
|
|
5872
|
+
* Product detail page URL
|
|
5873
|
+
*/
|
|
5874
|
+
url?: string;
|
|
5875
|
+
}[];
|
|
5876
|
+
/**
|
|
5877
|
+
* Total number of products matching the context (may be more than returned in matching_products)
|
|
5878
|
+
*/
|
|
5879
|
+
total_matching?: number;
|
|
5880
|
+
/**
|
|
5881
|
+
* If not available, why (e.g., 'expired', 'sold_out', 'region_restricted')
|
|
5882
|
+
*/
|
|
5883
|
+
unavailable_reason?: string;
|
|
5884
|
+
/**
|
|
5885
|
+
* Alternative offerings to consider if this one is unavailable
|
|
5886
|
+
*/
|
|
5887
|
+
alternative_offering_ids?: string[];
|
|
5888
|
+
/**
|
|
5889
|
+
* Errors during offering lookup
|
|
5890
|
+
*/
|
|
5891
|
+
errors?: Error[];
|
|
5892
|
+
ext?: ExtensionObject;
|
|
5893
|
+
}
|
|
5894
|
+
/**
|
|
5895
|
+
* Standard error structure for task-specific errors and warnings
|
|
5896
|
+
*/
|
|
5897
|
+
/**
|
|
5898
|
+
* Host initiates a session with a brand agent
|
|
5899
|
+
*/
|
|
5900
|
+
export interface SIInitiateSessionRequest {
|
|
5901
|
+
/**
|
|
5902
|
+
* Conversation handoff from the host describing what the user needs
|
|
5903
|
+
*/
|
|
5904
|
+
context: string;
|
|
5905
|
+
identity: SIIdentity;
|
|
5906
|
+
/**
|
|
5907
|
+
* AdCP media buy ID if session was triggered by advertising
|
|
5908
|
+
*/
|
|
5909
|
+
media_buy_id?: string;
|
|
5910
|
+
/**
|
|
5911
|
+
* Where this session was triggered (e.g., 'chatgpt_search', 'claude_chat')
|
|
5912
|
+
*/
|
|
5913
|
+
placement?: string;
|
|
5914
|
+
/**
|
|
5915
|
+
* Brand-specific offering identifier to apply
|
|
5916
|
+
*/
|
|
5917
|
+
offering_id?: string;
|
|
5918
|
+
supported_capabilities?: SICapabilities;
|
|
5919
|
+
/**
|
|
5920
|
+
* Token from si_get_offering response for session continuity. Brand uses this to recall what products were shown to the user, enabling natural references like 'the second one' or 'that blue shoe'.
|
|
5921
|
+
*/
|
|
5922
|
+
offering_token?: string;
|
|
5923
|
+
ext?: ExtensionObject;
|
|
5924
|
+
}
|
|
5925
|
+
/**
|
|
5926
|
+
* User identity shared with brand agent (with explicit consent)
|
|
5927
|
+
*/
|
|
5928
|
+
export interface SIIdentity {
|
|
5929
|
+
/**
|
|
5930
|
+
* Whether user consented to share identity
|
|
5931
|
+
*/
|
|
5932
|
+
consent_granted: boolean;
|
|
5933
|
+
/**
|
|
5934
|
+
* When consent was granted (ISO 8601)
|
|
5935
|
+
*/
|
|
5936
|
+
consent_timestamp?: string;
|
|
5937
|
+
/**
|
|
5938
|
+
* What data was consented to share
|
|
5939
|
+
*/
|
|
5940
|
+
consent_scope?: ('name' | 'email' | 'shipping_address' | 'phone' | 'locale')[];
|
|
5941
|
+
/**
|
|
5942
|
+
* Brand privacy policy acknowledgment
|
|
5943
|
+
*/
|
|
5944
|
+
privacy_policy_acknowledged?: {
|
|
5945
|
+
/**
|
|
5946
|
+
* URL to brand's privacy policy
|
|
5947
|
+
*/
|
|
5948
|
+
brand_policy_url?: string;
|
|
5949
|
+
/**
|
|
5950
|
+
* Version of policy acknowledged
|
|
5951
|
+
*/
|
|
5952
|
+
brand_policy_version?: string;
|
|
5953
|
+
[k: string]: unknown | undefined;
|
|
5954
|
+
};
|
|
5955
|
+
/**
|
|
5956
|
+
* User data (only present if consent_granted is true)
|
|
5957
|
+
*/
|
|
5958
|
+
user?: {
|
|
5959
|
+
/**
|
|
5960
|
+
* User's email address
|
|
5961
|
+
*/
|
|
5962
|
+
email?: string;
|
|
5963
|
+
/**
|
|
5964
|
+
* User's display name
|
|
5965
|
+
*/
|
|
5966
|
+
name?: string;
|
|
5967
|
+
/**
|
|
5968
|
+
* User's locale (e.g., en-US)
|
|
5969
|
+
*/
|
|
5970
|
+
locale?: string;
|
|
5971
|
+
/**
|
|
5972
|
+
* User's phone number
|
|
5973
|
+
*/
|
|
5974
|
+
phone?: string;
|
|
5975
|
+
/**
|
|
5976
|
+
* User's shipping address for accurate pricing
|
|
5977
|
+
*/
|
|
5978
|
+
shipping_address?: {
|
|
5979
|
+
street?: string;
|
|
5980
|
+
city?: string;
|
|
5981
|
+
state?: string;
|
|
5982
|
+
postal_code?: string;
|
|
5983
|
+
country?: string;
|
|
5984
|
+
[k: string]: unknown | undefined;
|
|
5985
|
+
};
|
|
5986
|
+
[k: string]: unknown | undefined;
|
|
5987
|
+
};
|
|
5988
|
+
/**
|
|
5989
|
+
* Session ID for anonymous users (when consent_granted is false)
|
|
5990
|
+
*/
|
|
5991
|
+
anonymous_session_id?: string;
|
|
5992
|
+
[k: string]: unknown | undefined;
|
|
5993
|
+
}
|
|
5994
|
+
/**
|
|
5995
|
+
* What capabilities the host supports
|
|
5996
|
+
*/
|
|
5997
|
+
export interface SICapabilities {
|
|
5998
|
+
/**
|
|
5999
|
+
* Interaction modalities supported
|
|
6000
|
+
*/
|
|
6001
|
+
modalities?: {
|
|
6002
|
+
/**
|
|
6003
|
+
* Pure text exchange - the baseline modality
|
|
6004
|
+
*/
|
|
6005
|
+
conversational?: boolean;
|
|
6006
|
+
/**
|
|
6007
|
+
* Audio-based interaction using brand voice
|
|
6008
|
+
*/
|
|
6009
|
+
voice?: boolean | {
|
|
6010
|
+
/**
|
|
6011
|
+
* TTS provider (elevenlabs, openai, etc.)
|
|
6012
|
+
*/
|
|
6013
|
+
provider?: string;
|
|
6014
|
+
/**
|
|
6015
|
+
* Brand voice identifier
|
|
6016
|
+
*/
|
|
6017
|
+
voice_id?: string;
|
|
6018
|
+
[k: string]: unknown | undefined;
|
|
6019
|
+
};
|
|
6020
|
+
/**
|
|
6021
|
+
* Brand video content playback
|
|
6022
|
+
*/
|
|
6023
|
+
video?: boolean | {
|
|
6024
|
+
/**
|
|
6025
|
+
* Supported video formats (mp4, webm, etc.)
|
|
6026
|
+
*/
|
|
6027
|
+
formats?: string[];
|
|
6028
|
+
/**
|
|
6029
|
+
* Maximum video duration
|
|
6030
|
+
*/
|
|
6031
|
+
max_duration_seconds?: number;
|
|
6032
|
+
[k: string]: unknown | undefined;
|
|
6033
|
+
};
|
|
6034
|
+
/**
|
|
6035
|
+
* Animated video presence with brand avatar
|
|
6036
|
+
*/
|
|
6037
|
+
avatar?: boolean | {
|
|
6038
|
+
/**
|
|
6039
|
+
* Avatar provider (d-id, heygen, synthesia, etc.)
|
|
6040
|
+
*/
|
|
6041
|
+
provider?: string;
|
|
6042
|
+
/**
|
|
6043
|
+
* Brand avatar identifier
|
|
6044
|
+
*/
|
|
6045
|
+
avatar_id?: string;
|
|
6046
|
+
[k: string]: unknown | undefined;
|
|
6047
|
+
};
|
|
6048
|
+
[k: string]: unknown | undefined;
|
|
6049
|
+
};
|
|
6050
|
+
/**
|
|
6051
|
+
* Visual components supported
|
|
6052
|
+
*/
|
|
6053
|
+
components?: {
|
|
6054
|
+
/**
|
|
6055
|
+
* Standard components that all SI hosts must render
|
|
6056
|
+
*/
|
|
6057
|
+
standard?: ('text' | 'link' | 'image' | 'product_card' | 'carousel' | 'action_button')[];
|
|
6058
|
+
/**
|
|
6059
|
+
* Platform-specific extensions (chatgpt_apps_sdk, maps, forms, etc.)
|
|
6060
|
+
*/
|
|
6061
|
+
extensions?: {
|
|
6062
|
+
[k: string]: unknown | undefined;
|
|
6063
|
+
};
|
|
6064
|
+
[k: string]: unknown | undefined;
|
|
6065
|
+
};
|
|
6066
|
+
/**
|
|
6067
|
+
* Commerce capabilities
|
|
6068
|
+
*/
|
|
6069
|
+
commerce?: {
|
|
6070
|
+
/**
|
|
6071
|
+
* Supports ACP (Agentic Commerce Protocol) checkout handoff
|
|
6072
|
+
*/
|
|
6073
|
+
acp_checkout?: boolean;
|
|
6074
|
+
[k: string]: unknown | undefined;
|
|
6075
|
+
};
|
|
6076
|
+
[k: string]: unknown | undefined;
|
|
6077
|
+
}
|
|
6078
|
+
/**
|
|
6079
|
+
* 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.
|
|
6080
|
+
*/
|
|
6081
|
+
/**
|
|
6082
|
+
* Standard visual component that brand returns and host renders
|
|
6083
|
+
*/
|
|
6084
|
+
export type SIUIElement = {
|
|
6085
|
+
[k: string]: unknown | undefined;
|
|
6086
|
+
} & {
|
|
6087
|
+
/**
|
|
6088
|
+
* Component type
|
|
6089
|
+
*/
|
|
6090
|
+
type: 'text' | 'link' | 'image' | 'product_card' | 'carousel' | 'action_button' | 'app_handoff' | 'integration_actions';
|
|
6091
|
+
/**
|
|
6092
|
+
* Component-specific data
|
|
6093
|
+
*/
|
|
6094
|
+
data?: {
|
|
6095
|
+
[k: string]: unknown | undefined;
|
|
6096
|
+
};
|
|
6097
|
+
[k: string]: unknown | undefined;
|
|
6098
|
+
};
|
|
6099
|
+
/**
|
|
6100
|
+
* Brand agent's response to session initiation
|
|
6101
|
+
*/
|
|
6102
|
+
export interface SIInitiateSessionResponse {
|
|
6103
|
+
/**
|
|
6104
|
+
* Unique session identifier for subsequent messages
|
|
6105
|
+
*/
|
|
6106
|
+
session_id: string;
|
|
6107
|
+
/**
|
|
6108
|
+
* Brand agent's initial response
|
|
6109
|
+
*/
|
|
6110
|
+
response?: {
|
|
6111
|
+
/**
|
|
6112
|
+
* Conversational message from brand agent
|
|
6113
|
+
*/
|
|
6114
|
+
message?: string;
|
|
6115
|
+
/**
|
|
6116
|
+
* Visual components to render
|
|
6117
|
+
*/
|
|
6118
|
+
ui_elements?: SIUIElement[];
|
|
6119
|
+
};
|
|
6120
|
+
negotiated_capabilities?: SICapabilities;
|
|
6121
|
+
/**
|
|
6122
|
+
* Errors during session initiation
|
|
6123
|
+
*/
|
|
6124
|
+
errors?: Error[];
|
|
6125
|
+
ext?: ExtensionObject;
|
|
6126
|
+
}
|
|
6127
|
+
/**
|
|
6128
|
+
* Intersection of brand and host capabilities for this session
|
|
6129
|
+
*/
|
|
6130
|
+
/**
|
|
6131
|
+
* Send a message to the brand agent within an active session
|
|
6132
|
+
*/
|
|
6133
|
+
export type SISendMessageRequest = {
|
|
6134
|
+
[k: string]: unknown | undefined;
|
|
6135
|
+
} & {
|
|
6136
|
+
/**
|
|
6137
|
+
* Active session identifier
|
|
6138
|
+
*/
|
|
6139
|
+
session_id: string;
|
|
6140
|
+
/**
|
|
6141
|
+
* User's message to the brand agent
|
|
6142
|
+
*/
|
|
6143
|
+
message?: string;
|
|
6144
|
+
/**
|
|
6145
|
+
* Response to a previous action_button (e.g., user clicked checkout)
|
|
6146
|
+
*/
|
|
6147
|
+
action_response?: {
|
|
6148
|
+
/**
|
|
6149
|
+
* The action that was triggered
|
|
6150
|
+
*/
|
|
6151
|
+
action?: string;
|
|
6152
|
+
/**
|
|
6153
|
+
* Action-specific response data
|
|
6154
|
+
*/
|
|
6155
|
+
payload?: {};
|
|
6156
|
+
};
|
|
6157
|
+
ext?: ExtensionObject;
|
|
6158
|
+
};
|
|
6159
|
+
/**
|
|
6160
|
+
* 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.
|
|
6161
|
+
*/
|
|
6162
|
+
/**
|
|
6163
|
+
* Standard visual component that brand returns and host renders
|
|
6164
|
+
*/
|
|
6165
|
+
export interface SISendMessageResponse {
|
|
6166
|
+
/**
|
|
6167
|
+
* Session identifier
|
|
6168
|
+
*/
|
|
6169
|
+
session_id: string;
|
|
6170
|
+
/**
|
|
6171
|
+
* Brand agent's response
|
|
6172
|
+
*/
|
|
6173
|
+
response?: {
|
|
6174
|
+
/**
|
|
6175
|
+
* Conversational message from brand agent
|
|
6176
|
+
*/
|
|
6177
|
+
message?: string;
|
|
6178
|
+
/**
|
|
6179
|
+
* Visual components to render
|
|
6180
|
+
*/
|
|
6181
|
+
ui_elements?: SIUIElement[];
|
|
6182
|
+
};
|
|
6183
|
+
/**
|
|
6184
|
+
* Current session status
|
|
6185
|
+
*/
|
|
6186
|
+
session_status: 'active' | 'pending_handoff' | 'complete';
|
|
6187
|
+
/**
|
|
6188
|
+
* Handoff request when session_status is pending_handoff
|
|
6189
|
+
*/
|
|
6190
|
+
handoff?: {
|
|
6191
|
+
/**
|
|
6192
|
+
* Type of handoff: transaction (ready for ACP checkout) or complete (conversation done)
|
|
6193
|
+
*/
|
|
6194
|
+
type?: 'transaction' | 'complete';
|
|
6195
|
+
/**
|
|
6196
|
+
* For transaction handoffs: what the user wants to purchase
|
|
6197
|
+
*/
|
|
6198
|
+
intent?: {
|
|
6199
|
+
/**
|
|
6200
|
+
* The commerce action (e.g., 'purchase')
|
|
6201
|
+
*/
|
|
6202
|
+
action?: string;
|
|
6203
|
+
/**
|
|
6204
|
+
* Product details for checkout
|
|
6205
|
+
*/
|
|
6206
|
+
product?: {};
|
|
6207
|
+
/**
|
|
6208
|
+
* Price information
|
|
6209
|
+
*/
|
|
6210
|
+
price?: {
|
|
6211
|
+
amount?: number;
|
|
6212
|
+
currency?: string;
|
|
6213
|
+
};
|
|
6214
|
+
};
|
|
6215
|
+
/**
|
|
6216
|
+
* Context to pass to ACP for seamless checkout
|
|
6217
|
+
*/
|
|
6218
|
+
context_for_checkout?: {
|
|
6219
|
+
/**
|
|
6220
|
+
* Summary of the conversation leading to purchase
|
|
6221
|
+
*/
|
|
6222
|
+
conversation_summary?: string;
|
|
6223
|
+
/**
|
|
6224
|
+
* Offer IDs that were applied during the conversation
|
|
6225
|
+
*/
|
|
6226
|
+
applied_offers?: string[];
|
|
6227
|
+
};
|
|
6228
|
+
};
|
|
6229
|
+
errors?: Error[];
|
|
6230
|
+
ext?: ExtensionObject;
|
|
6231
|
+
}
|
|
6232
|
+
/**
|
|
6233
|
+
* Standard error structure for task-specific errors and warnings
|
|
6234
|
+
*/
|
|
6235
|
+
/**
|
|
6236
|
+
* Request to terminate an SI session
|
|
6237
|
+
*/
|
|
6238
|
+
export interface SITerminateSessionRequest {
|
|
6239
|
+
/**
|
|
6240
|
+
* Session identifier to terminate
|
|
6241
|
+
*/
|
|
6242
|
+
session_id: string;
|
|
6243
|
+
/**
|
|
6244
|
+
* Reason for termination
|
|
6245
|
+
*/
|
|
6246
|
+
reason: 'handoff_transaction' | 'handoff_complete' | 'user_exit' | 'session_timeout' | 'host_terminated';
|
|
6247
|
+
/**
|
|
6248
|
+
* Context for the termination
|
|
6249
|
+
*/
|
|
6250
|
+
termination_context?: {
|
|
6251
|
+
/**
|
|
6252
|
+
* Summary of the conversation
|
|
6253
|
+
*/
|
|
6254
|
+
summary?: string;
|
|
6255
|
+
/**
|
|
6256
|
+
* For handoff_transaction - what user wants to buy
|
|
6257
|
+
*/
|
|
6258
|
+
transaction_intent?: {
|
|
6259
|
+
action?: 'purchase' | 'subscribe';
|
|
6260
|
+
/**
|
|
6261
|
+
* Product/service details
|
|
6262
|
+
*/
|
|
6263
|
+
product?: {};
|
|
6264
|
+
};
|
|
6265
|
+
/**
|
|
6266
|
+
* For host_terminated - why host ended session
|
|
6267
|
+
*/
|
|
6268
|
+
cause?: string;
|
|
6269
|
+
};
|
|
6270
|
+
ext?: ExtensionObject;
|
|
6271
|
+
}
|
|
6272
|
+
/**
|
|
6273
|
+
* 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.
|
|
6274
|
+
*/
|
|
6275
|
+
/**
|
|
6276
|
+
* Confirmation of session termination
|
|
6277
|
+
*/
|
|
6278
|
+
export interface SITerminateSessionResponse {
|
|
6279
|
+
/**
|
|
6280
|
+
* Terminated session identifier
|
|
6281
|
+
*/
|
|
6282
|
+
session_id: string;
|
|
6283
|
+
/**
|
|
6284
|
+
* Whether session was successfully terminated
|
|
6285
|
+
*/
|
|
6286
|
+
terminated: boolean;
|
|
6287
|
+
/**
|
|
6288
|
+
* ACP checkout handoff data (for handoff_transaction)
|
|
6289
|
+
*/
|
|
6290
|
+
acp_handoff?: {
|
|
6291
|
+
/**
|
|
6292
|
+
* ACP checkout initiation URL
|
|
6293
|
+
*/
|
|
6294
|
+
checkout_url?: string;
|
|
6295
|
+
/**
|
|
6296
|
+
* Token for ACP checkout flow
|
|
6297
|
+
*/
|
|
6298
|
+
checkout_token?: string;
|
|
6299
|
+
/**
|
|
6300
|
+
* Product details for checkout
|
|
6301
|
+
*/
|
|
6302
|
+
product?: {};
|
|
6303
|
+
};
|
|
6304
|
+
/**
|
|
6305
|
+
* Suggested follow-up actions
|
|
6306
|
+
*/
|
|
6307
|
+
follow_up?: {
|
|
6308
|
+
action?: 'save_for_later' | 'set_reminder' | 'subscribe_updates' | 'none';
|
|
6309
|
+
/**
|
|
6310
|
+
* Data for follow-up action
|
|
6311
|
+
*/
|
|
6312
|
+
data?: {};
|
|
6313
|
+
};
|
|
6314
|
+
errors?: Error[];
|
|
6315
|
+
ext?: ExtensionObject;
|
|
6316
|
+
}
|
|
6317
|
+
/**
|
|
6318
|
+
* Standard error structure for task-specific errors and warnings
|
|
6319
|
+
*/
|
|
6320
|
+
/**
|
|
6321
|
+
* Request payload for get_adcp_capabilities task. Protocol-level capability discovery that works across all AdCP protocols.
|
|
6322
|
+
*/
|
|
6323
|
+
export interface GetAdCPCapabilitiesRequest {
|
|
6324
|
+
/**
|
|
6325
|
+
* Specific protocols to query capabilities for. If omitted, returns capabilities for all supported protocols.
|
|
6326
|
+
*/
|
|
6327
|
+
protocols?: ('media_buy' | 'signals' | 'sponsored_intelligence')[];
|
|
6328
|
+
context?: ContextObject;
|
|
6329
|
+
ext?: ExtensionObject;
|
|
6330
|
+
}
|
|
6331
|
+
/**
|
|
6332
|
+
* 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.
|
|
6333
|
+
*/
|
|
6334
|
+
/**
|
|
6335
|
+
* Standardized advertising media channels describing how buyers allocate budget. Channels are planning abstractions, not technical substrates. See the Media Channel Taxonomy specification for detailed definitions.
|
|
6336
|
+
*/
|
|
6337
|
+
export interface GetAdCPCapabilitiesResponse {
|
|
6338
|
+
/**
|
|
6339
|
+
* Core AdCP protocol information
|
|
6340
|
+
*/
|
|
6341
|
+
adcp: {
|
|
6342
|
+
/**
|
|
6343
|
+
* AdCP major versions supported by this seller. Major versions indicate breaking changes.
|
|
6344
|
+
*/
|
|
6345
|
+
major_versions: number[];
|
|
6346
|
+
};
|
|
6347
|
+
/**
|
|
6348
|
+
* Which AdCP domain protocols this seller supports
|
|
6349
|
+
*/
|
|
6350
|
+
supported_protocols: ('media_buy' | 'signals' | 'governance' | 'sponsored_intelligence')[];
|
|
6351
|
+
/**
|
|
6352
|
+
* Media-buy protocol capabilities. Only present if media_buy is in supported_protocols.
|
|
6353
|
+
*/
|
|
6354
|
+
media_buy?: {
|
|
6355
|
+
features?: MediaBuyFeatures;
|
|
6356
|
+
/**
|
|
6357
|
+
* Technical execution capabilities for media buying
|
|
6358
|
+
*/
|
|
6359
|
+
execution?: {
|
|
6360
|
+
/**
|
|
6361
|
+
* Agentic ad exchange (AXE) integrations supported. URLs are canonical identifiers for exchanges this seller can execute through.
|
|
6362
|
+
*/
|
|
6363
|
+
axe_integrations?: string[];
|
|
6364
|
+
/**
|
|
6365
|
+
* Creative specification support
|
|
6366
|
+
*/
|
|
6367
|
+
creative_specs?: {
|
|
6368
|
+
/**
|
|
6369
|
+
* VAST versions supported for video creatives
|
|
6370
|
+
*/
|
|
6371
|
+
vast_versions?: string[];
|
|
6372
|
+
/**
|
|
6373
|
+
* MRAID versions supported for rich media mobile creatives
|
|
6374
|
+
*/
|
|
6375
|
+
mraid_versions?: string[];
|
|
6376
|
+
/**
|
|
6377
|
+
* VPAID support for interactive video ads
|
|
6378
|
+
*/
|
|
6379
|
+
vpaid?: boolean;
|
|
6380
|
+
/**
|
|
6381
|
+
* SIMID support for interactive video ads
|
|
6382
|
+
*/
|
|
6383
|
+
simid?: boolean;
|
|
6384
|
+
};
|
|
6385
|
+
/**
|
|
6386
|
+
* Targeting capabilities. If declared true/supported, buyer can use these targeting parameters and seller MUST honor them.
|
|
6387
|
+
*/
|
|
6388
|
+
targeting?: {
|
|
6389
|
+
/**
|
|
6390
|
+
* Supports country-level geo targeting using ISO 3166-1 alpha-2 codes (e.g., 'US', 'GB', 'DE')
|
|
6391
|
+
*/
|
|
6392
|
+
geo_countries?: boolean;
|
|
6393
|
+
/**
|
|
6394
|
+
* Supports region/state-level geo targeting using ISO 3166-2 subdivision codes (e.g., 'US-NY', 'GB-SCT', 'DE-BY')
|
|
6395
|
+
*/
|
|
6396
|
+
geo_regions?: boolean;
|
|
6397
|
+
/**
|
|
6398
|
+
* Metro area targeting support. Specifies which classification systems are supported.
|
|
6399
|
+
*/
|
|
6400
|
+
geo_metros?: {
|
|
6401
|
+
/**
|
|
6402
|
+
* Supports Nielsen DMA codes (US market, e.g., '501' for NYC)
|
|
6403
|
+
*/
|
|
6404
|
+
nielsen_dma?: boolean;
|
|
6405
|
+
/**
|
|
6406
|
+
* Supports UK ITL Level 1 regions
|
|
6407
|
+
*/
|
|
6408
|
+
uk_itl1?: boolean;
|
|
6409
|
+
/**
|
|
6410
|
+
* Supports UK ITL Level 2 regions
|
|
6411
|
+
*/
|
|
6412
|
+
uk_itl2?: boolean;
|
|
6413
|
+
/**
|
|
6414
|
+
* Supports Eurostat NUTS Level 2 regions (EU)
|
|
6415
|
+
*/
|
|
6416
|
+
eurostat_nuts2?: boolean;
|
|
6417
|
+
};
|
|
6418
|
+
/**
|
|
6419
|
+
* Postal area targeting support. Specifies which postal code systems are supported. System names encode country and precision.
|
|
6420
|
+
*/
|
|
6421
|
+
geo_postal_areas?: {
|
|
6422
|
+
/**
|
|
6423
|
+
* US 5-digit ZIP codes (e.g., '10001')
|
|
6424
|
+
*/
|
|
6425
|
+
us_zip?: boolean;
|
|
6426
|
+
/**
|
|
6427
|
+
* US 9-digit ZIP+4 codes (e.g., '10001-1234')
|
|
6428
|
+
*/
|
|
6429
|
+
us_zip_plus_four?: boolean;
|
|
6430
|
+
/**
|
|
6431
|
+
* UK postcode district / outward code (e.g., 'SW1', 'EC1')
|
|
6432
|
+
*/
|
|
6433
|
+
gb_outward?: boolean;
|
|
6434
|
+
/**
|
|
6435
|
+
* UK full postcode (e.g., 'SW1A 1AA')
|
|
6436
|
+
*/
|
|
6437
|
+
gb_full?: boolean;
|
|
6438
|
+
/**
|
|
6439
|
+
* Canadian Forward Sortation Area (e.g., 'K1A')
|
|
6440
|
+
*/
|
|
6441
|
+
ca_fsa?: boolean;
|
|
6442
|
+
/**
|
|
6443
|
+
* Canadian full postal code (e.g., 'K1A 0B1')
|
|
6444
|
+
*/
|
|
6445
|
+
ca_full?: boolean;
|
|
6446
|
+
/**
|
|
6447
|
+
* German Postleitzahl, 5 digits (e.g., '10115')
|
|
6448
|
+
*/
|
|
6449
|
+
de_plz?: boolean;
|
|
6450
|
+
/**
|
|
6451
|
+
* French code postal, 5 digits (e.g., '75001')
|
|
6452
|
+
*/
|
|
6453
|
+
fr_code_postal?: boolean;
|
|
6454
|
+
/**
|
|
6455
|
+
* Australian postcode, 4 digits (e.g., '2000')
|
|
6456
|
+
*/
|
|
6457
|
+
au_postcode?: boolean;
|
|
6458
|
+
};
|
|
6459
|
+
};
|
|
6460
|
+
};
|
|
6461
|
+
/**
|
|
6462
|
+
* Information about the seller's media inventory portfolio
|
|
6463
|
+
*/
|
|
6464
|
+
portfolio?: {
|
|
6465
|
+
/**
|
|
6466
|
+
* Publisher domains this seller is authorized to represent. Buyers should fetch each publisher's adagents.json for property definitions.
|
|
6467
|
+
*/
|
|
6468
|
+
publisher_domains: string[];
|
|
6469
|
+
/**
|
|
6470
|
+
* Primary advertising channels in this portfolio
|
|
6471
|
+
*/
|
|
6472
|
+
primary_channels?: MediaChannel[];
|
|
6473
|
+
/**
|
|
6474
|
+
* Primary countries (ISO 3166-1 alpha-2) where inventory is concentrated
|
|
6475
|
+
*/
|
|
6476
|
+
primary_countries?: string[];
|
|
6477
|
+
/**
|
|
6478
|
+
* Markdown-formatted description of the inventory portfolio
|
|
6479
|
+
*/
|
|
6480
|
+
description?: string;
|
|
6481
|
+
/**
|
|
6482
|
+
* Advertising content policies, restrictions, and guidelines
|
|
6483
|
+
*/
|
|
6484
|
+
advertising_policies?: string;
|
|
6485
|
+
};
|
|
6486
|
+
};
|
|
6487
|
+
/**
|
|
6488
|
+
* Signals protocol capabilities. Only present if signals is in supported_protocols. Reserved for future use.
|
|
6489
|
+
*/
|
|
6490
|
+
signals?: {
|
|
6491
|
+
/**
|
|
6492
|
+
* Optional signals features supported
|
|
6493
|
+
*/
|
|
6494
|
+
features?: {
|
|
6495
|
+
[k: string]: boolean | undefined;
|
|
6496
|
+
};
|
|
6497
|
+
};
|
|
6498
|
+
/**
|
|
6499
|
+
* Governance protocol capabilities. Only present if governance is in supported_protocols. Governance agents provide property data like compliance scores, brand safety ratings, and sustainability metrics.
|
|
6500
|
+
*/
|
|
6501
|
+
governance?: {
|
|
6502
|
+
/**
|
|
6503
|
+
* Property features this governance agent can evaluate. Each feature describes a score, rating, or certification the agent can provide for properties.
|
|
6504
|
+
*/
|
|
6505
|
+
property_features?: {
|
|
6506
|
+
/**
|
|
6507
|
+
* Unique identifier for this feature (e.g., 'consent_quality', 'coppa_certified', 'carbon_score')
|
|
6508
|
+
*/
|
|
6509
|
+
feature_id: string;
|
|
6510
|
+
/**
|
|
6511
|
+
* Data type: 'binary' for yes/no, 'quantitative' for numeric scores, 'categorical' for enum values
|
|
6512
|
+
*/
|
|
6513
|
+
type: 'binary' | 'quantitative' | 'categorical';
|
|
6514
|
+
/**
|
|
6515
|
+
* For quantitative features, the valid range
|
|
6516
|
+
*/
|
|
6517
|
+
range?: {
|
|
6518
|
+
/**
|
|
6519
|
+
* Minimum value
|
|
6520
|
+
*/
|
|
6521
|
+
min: number;
|
|
6522
|
+
/**
|
|
6523
|
+
* Maximum value
|
|
6524
|
+
*/
|
|
6525
|
+
max: number;
|
|
6526
|
+
};
|
|
6527
|
+
/**
|
|
6528
|
+
* For categorical features, the valid values
|
|
6529
|
+
*/
|
|
6530
|
+
categories?: string[];
|
|
6531
|
+
/**
|
|
6532
|
+
* Human-readable description of what this feature measures
|
|
6533
|
+
*/
|
|
6534
|
+
description?: string;
|
|
6535
|
+
/**
|
|
6536
|
+
* URL to documentation explaining how this feature is calculated or measured. Helps buyers understand and compare methodologies across vendors.
|
|
6537
|
+
*/
|
|
6538
|
+
methodology_url?: string;
|
|
6539
|
+
}[];
|
|
6540
|
+
};
|
|
6541
|
+
/**
|
|
6542
|
+
* Sponsored Intelligence protocol capabilities. Only present if sponsored_intelligence is in supported_protocols. SI agents handle conversational brand experiences.
|
|
6543
|
+
*/
|
|
6544
|
+
sponsored_intelligence?: {
|
|
6545
|
+
/**
|
|
6546
|
+
* SI agent endpoint configuration
|
|
6547
|
+
*/
|
|
6548
|
+
endpoint: {
|
|
6549
|
+
/**
|
|
6550
|
+
* Available protocol transports. Hosts select based on their capabilities.
|
|
6551
|
+
*/
|
|
6552
|
+
transports: {
|
|
6553
|
+
/**
|
|
6554
|
+
* Protocol transport type
|
|
6555
|
+
*/
|
|
6556
|
+
type: 'mcp' | 'a2a';
|
|
6557
|
+
/**
|
|
6558
|
+
* Agent endpoint URL for this transport
|
|
6559
|
+
*/
|
|
6560
|
+
url: string;
|
|
6561
|
+
}[];
|
|
6562
|
+
/**
|
|
6563
|
+
* Preferred transport when host supports multiple
|
|
6564
|
+
*/
|
|
6565
|
+
preferred?: 'mcp' | 'a2a';
|
|
6566
|
+
};
|
|
6567
|
+
capabilities: SICapabilities;
|
|
6568
|
+
/**
|
|
6569
|
+
* URL to brand manifest with colors, fonts, logos, tone
|
|
6570
|
+
*/
|
|
6571
|
+
brand_manifest_url?: string;
|
|
6572
|
+
};
|
|
6573
|
+
/**
|
|
6574
|
+
* Extension namespaces this agent supports. Buyers can expect meaningful data in ext.{namespace} fields on responses from this agent. Extension schemas are published in the AdCP extension registry.
|
|
6575
|
+
*/
|
|
6576
|
+
extensions_supported?: string[];
|
|
6577
|
+
/**
|
|
6578
|
+
* ISO 8601 timestamp of when capabilities were last updated. Buyers can use this for cache invalidation.
|
|
6579
|
+
*/
|
|
6580
|
+
last_updated?: string;
|
|
6581
|
+
/**
|
|
6582
|
+
* Task-specific errors and warnings
|
|
6583
|
+
*/
|
|
6584
|
+
errors?: Error[];
|
|
6585
|
+
context?: ContextObject;
|
|
6586
|
+
ext?: ExtensionObject;
|
|
6587
|
+
}
|
|
6588
|
+
/**
|
|
6589
|
+
* Optional media-buy protocol features. Used in capability declarations (seller declares support) and product filters (buyer requires support). If a seller declares a feature as true, they MUST honor requests using that feature.
|
|
6590
|
+
*/
|
|
3940
6591
|
//# sourceMappingURL=tools.generated.d.ts.map
|