@adcp/client 3.7.1 → 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 +502 -238
- 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 +7237 -2284
- package/dist/lib/types/schemas.generated.d.ts.map +1 -1
- package/dist/lib/types/schemas.generated.js +1368 -461
- package/dist/lib/types/schemas.generated.js.map +1 -1
- package/dist/lib/types/tools.generated.d.ts +3128 -507
- 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,17 +15,29 @@ 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;
|
|
31
43
|
property_list?: PropertyListReference;
|
|
@@ -40,6 +52,10 @@ export interface BrandManifest {
|
|
|
40
52
|
* Primary brand URL for context and asset discovery. Creative agents can infer brand information from this URL.
|
|
41
53
|
*/
|
|
42
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;
|
|
43
59
|
/**
|
|
44
60
|
* Brand or business name
|
|
45
61
|
*/
|
|
@@ -111,6 +127,44 @@ export interface BrandManifest {
|
|
|
111
127
|
* Brand voice and messaging tone (e.g., 'professional', 'casual', 'humorous', 'trustworthy', 'innovative')
|
|
112
128
|
*/
|
|
113
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
|
+
};
|
|
114
168
|
/**
|
|
115
169
|
* Brand tagline or slogan
|
|
116
170
|
*/
|
|
@@ -164,9 +218,9 @@ export interface BrandManifest {
|
|
|
164
218
|
* Additional asset-specific metadata
|
|
165
219
|
*/
|
|
166
220
|
metadata?: {
|
|
167
|
-
[k: string]: unknown;
|
|
221
|
+
[k: string]: unknown | undefined;
|
|
168
222
|
};
|
|
169
|
-
[k: string]: unknown;
|
|
223
|
+
[k: string]: unknown | undefined;
|
|
170
224
|
}[];
|
|
171
225
|
/**
|
|
172
226
|
* Product catalog information for e-commerce advertisers. Enables SKU-level creative generation and product selection.
|
|
@@ -177,9 +231,9 @@ export interface BrandManifest {
|
|
|
177
231
|
*/
|
|
178
232
|
feed_url: string;
|
|
179
233
|
/**
|
|
180
|
-
* 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.
|
|
181
235
|
*/
|
|
182
|
-
feed_format?: 'google_merchant_center' | 'facebook_catalog' | 'custom';
|
|
236
|
+
feed_format?: 'google_merchant_center' | 'facebook_catalog' | 'openai_product_feed' | 'custom';
|
|
183
237
|
/**
|
|
184
238
|
* Product categories available in the catalog (for filtering)
|
|
185
239
|
*/
|
|
@@ -192,7 +246,24 @@ export interface BrandManifest {
|
|
|
192
246
|
* How frequently the product catalog is updated
|
|
193
247
|
*/
|
|
194
248
|
update_frequency?: 'realtime' | 'hourly' | 'daily' | 'weekly';
|
|
195
|
-
|
|
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;
|
|
196
267
|
};
|
|
197
268
|
/**
|
|
198
269
|
* Legal disclaimers or required text that must appear in creatives
|
|
@@ -249,7 +320,7 @@ export interface BrandManifest {
|
|
|
249
320
|
*/
|
|
250
321
|
version?: string;
|
|
251
322
|
};
|
|
252
|
-
[k: string]: unknown;
|
|
323
|
+
[k: string]: unknown | undefined;
|
|
253
324
|
}
|
|
254
325
|
/**
|
|
255
326
|
* Structured filters for product discovery
|
|
@@ -257,7 +328,7 @@ export interface BrandManifest {
|
|
|
257
328
|
export interface ProductFilters {
|
|
258
329
|
delivery_type?: DeliveryType;
|
|
259
330
|
/**
|
|
260
|
-
* 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.
|
|
261
332
|
*/
|
|
262
333
|
is_fixed_price?: boolean;
|
|
263
334
|
/**
|
|
@@ -288,17 +359,46 @@ export interface ProductFilters {
|
|
|
288
359
|
* Budget range to filter appropriate products
|
|
289
360
|
*/
|
|
290
361
|
budget_range?: {
|
|
291
|
-
[k: string]: unknown;
|
|
362
|
+
[k: string]: unknown | undefined;
|
|
292
363
|
};
|
|
293
364
|
/**
|
|
294
|
-
* Filter by
|
|
365
|
+
* Filter by country coverage using ISO 3166-1 alpha-2 codes (e.g., ['US', 'CA', 'GB']). Works for all inventory types.
|
|
295
366
|
*/
|
|
296
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
|
+
}[];
|
|
297
382
|
/**
|
|
298
383
|
* Filter by advertising channels (e.g., ['display', 'video', 'dooh'])
|
|
299
384
|
*/
|
|
300
|
-
channels?:
|
|
301
|
-
|
|
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;
|
|
302
402
|
}
|
|
303
403
|
/**
|
|
304
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.
|
|
@@ -324,7 +424,25 @@ export interface FormatID {
|
|
|
324
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.
|
|
325
425
|
*/
|
|
326
426
|
duration_ms?: number;
|
|
327
|
-
[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;
|
|
328
446
|
}
|
|
329
447
|
/**
|
|
330
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.
|
|
@@ -347,13 +465,13 @@ export interface PropertyListReference {
|
|
|
347
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.
|
|
348
466
|
*/
|
|
349
467
|
export interface ContextObject {
|
|
350
|
-
[k: string]: unknown;
|
|
468
|
+
[k: string]: unknown | undefined;
|
|
351
469
|
}
|
|
352
470
|
/**
|
|
353
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.
|
|
354
472
|
*/
|
|
355
473
|
export interface ExtensionObject {
|
|
356
|
-
[k: string]: unknown;
|
|
474
|
+
[k: string]: unknown | undefined;
|
|
357
475
|
}
|
|
358
476
|
/**
|
|
359
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.
|
|
@@ -367,7 +485,7 @@ export type PublisherPropertySelector = {
|
|
|
367
485
|
* Discriminator indicating all properties from this publisher are included
|
|
368
486
|
*/
|
|
369
487
|
selection_type: 'all';
|
|
370
|
-
[k: string]: unknown;
|
|
488
|
+
[k: string]: unknown | undefined;
|
|
371
489
|
} | {
|
|
372
490
|
/**
|
|
373
491
|
* Domain where publisher's adagents.json is hosted (e.g., 'cnn.com')
|
|
@@ -383,7 +501,7 @@ export type PublisherPropertySelector = {
|
|
|
383
501
|
* @minItems 1
|
|
384
502
|
*/
|
|
385
503
|
property_ids: [PropertyID, ...PropertyID[]];
|
|
386
|
-
[k: string]: unknown;
|
|
504
|
+
[k: string]: unknown | undefined;
|
|
387
505
|
} | {
|
|
388
506
|
/**
|
|
389
507
|
* Domain where publisher's adagents.json is hosted (e.g., 'cnn.com')
|
|
@@ -399,7 +517,7 @@ export type PublisherPropertySelector = {
|
|
|
399
517
|
* @minItems 1
|
|
400
518
|
*/
|
|
401
519
|
property_tags: [PropertyTag, ...PropertyTag[]];
|
|
402
|
-
[k: string]: unknown;
|
|
520
|
+
[k: string]: unknown | undefined;
|
|
403
521
|
};
|
|
404
522
|
/**
|
|
405
523
|
* Identifier for a publisher property. Must be lowercase alphanumeric with underscores only.
|
|
@@ -412,7 +530,7 @@ export type PropertyTag = string;
|
|
|
412
530
|
/**
|
|
413
531
|
* Type of inventory delivery
|
|
414
532
|
*/
|
|
415
|
-
export type PricingOption =
|
|
533
|
+
export type PricingOption = CPMPricingOption | VCPMPricingOption | CPCPricingOption | CPCVPricingOption | CPVPricingOption | CPPPricingOption | FlatRatePricingOption;
|
|
416
534
|
/**
|
|
417
535
|
* Available frequencies for delivery reports and metrics updates
|
|
418
536
|
*/
|
|
@@ -437,6 +555,10 @@ export interface GetProductsResponse {
|
|
|
437
555
|
* Array of matching products
|
|
438
556
|
*/
|
|
439
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[];
|
|
440
562
|
/**
|
|
441
563
|
* Task-specific errors and warnings (e.g., product filtering issues)
|
|
442
564
|
*/
|
|
@@ -528,9 +650,9 @@ export interface Product {
|
|
|
528
650
|
* Asset manifest for rendering the card, structure defined by the format
|
|
529
651
|
*/
|
|
530
652
|
manifest: {
|
|
531
|
-
[k: string]: unknown;
|
|
653
|
+
[k: string]: unknown | undefined;
|
|
532
654
|
};
|
|
533
|
-
[k: string]: unknown;
|
|
655
|
+
[k: string]: unknown | undefined;
|
|
534
656
|
};
|
|
535
657
|
/**
|
|
536
658
|
* Optional detailed card with carousel and full specifications. Provides rich product presentation similar to media kit pages.
|
|
@@ -541,12 +663,12 @@ export interface Product {
|
|
|
541
663
|
* Asset manifest for rendering the detailed card, structure defined by the format
|
|
542
664
|
*/
|
|
543
665
|
manifest: {
|
|
544
|
-
[k: string]: unknown;
|
|
666
|
+
[k: string]: unknown | undefined;
|
|
545
667
|
};
|
|
546
|
-
[k: string]: unknown;
|
|
668
|
+
[k: string]: unknown | undefined;
|
|
547
669
|
};
|
|
548
670
|
ext?: ExtensionObject;
|
|
549
|
-
[k: string]: unknown;
|
|
671
|
+
[k: string]: unknown | undefined;
|
|
550
672
|
}
|
|
551
673
|
/**
|
|
552
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.
|
|
@@ -570,66 +692,36 @@ export interface Placement {
|
|
|
570
692
|
* @minItems 1
|
|
571
693
|
*/
|
|
572
694
|
format_ids?: [FormatID, ...FormatID[]];
|
|
573
|
-
[k: string]: unknown;
|
|
695
|
+
[k: string]: unknown | undefined;
|
|
574
696
|
}
|
|
575
697
|
/**
|
|
576
|
-
* 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.
|
|
577
699
|
*/
|
|
578
|
-
export interface
|
|
700
|
+
export interface CPMPricingOption {
|
|
579
701
|
/**
|
|
580
|
-
* Unique identifier for this pricing option within the product
|
|
702
|
+
* Unique identifier for this pricing option within the product
|
|
581
703
|
*/
|
|
582
704
|
pricing_option_id: string;
|
|
583
705
|
/**
|
|
584
706
|
* Cost per 1,000 impressions
|
|
585
707
|
*/
|
|
586
708
|
pricing_model: 'cpm';
|
|
587
|
-
/**
|
|
588
|
-
* Fixed CPM rate (cost per 1,000 impressions)
|
|
589
|
-
*/
|
|
590
|
-
rate: number;
|
|
591
709
|
/**
|
|
592
710
|
* ISO 4217 currency code
|
|
593
711
|
*/
|
|
594
712
|
currency: string;
|
|
595
713
|
/**
|
|
596
|
-
*
|
|
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
|
-
* Minimum
|
|
601
|
-
*/
|
|
602
|
-
min_spend_per_package?: number;
|
|
603
|
-
[k: string]: unknown;
|
|
604
|
-
}
|
|
605
|
-
/**
|
|
606
|
-
* Cost Per Mille (cost per 1,000 impressions) with auction-based pricing - common for programmatic/non-guaranteed inventory
|
|
607
|
-
*/
|
|
608
|
-
export interface CPMAuctionPricingOption {
|
|
609
|
-
/**
|
|
610
|
-
* Unique identifier for this pricing option within the product (e.g., 'cpm_usd_auction')
|
|
611
|
-
*/
|
|
612
|
-
pricing_option_id: string;
|
|
613
|
-
/**
|
|
614
|
-
* Cost per 1,000 impressions
|
|
615
|
-
*/
|
|
616
|
-
pricing_model: 'cpm';
|
|
617
|
-
/**
|
|
618
|
-
* ISO 4217 currency code
|
|
619
|
-
*/
|
|
620
|
-
currency: string;
|
|
621
|
-
/**
|
|
622
|
-
* Whether this is a fixed rate (true) or auction-based (false)
|
|
718
|
+
* Minimum acceptable bid for auction pricing (mutually exclusive with fixed_price). Bids below this value will be rejected.
|
|
623
719
|
*/
|
|
624
|
-
|
|
720
|
+
floor_price?: number;
|
|
625
721
|
/**
|
|
626
|
-
*
|
|
722
|
+
* Optional pricing guidance for auction-based bidding. Helps buyers calibrate bids with historical percentiles.
|
|
627
723
|
*/
|
|
628
|
-
price_guidance
|
|
629
|
-
/**
|
|
630
|
-
* Minimum bid price - publisher will reject bids under this value
|
|
631
|
-
*/
|
|
632
|
-
floor: number;
|
|
724
|
+
price_guidance?: {
|
|
633
725
|
/**
|
|
634
726
|
* 25th percentile winning price
|
|
635
727
|
*/
|
|
@@ -651,66 +743,36 @@ export interface CPMAuctionPricingOption {
|
|
|
651
743
|
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
652
744
|
*/
|
|
653
745
|
min_spend_per_package?: number;
|
|
654
|
-
[k: string]: unknown;
|
|
746
|
+
[k: string]: unknown | undefined;
|
|
655
747
|
}
|
|
656
748
|
/**
|
|
657
|
-
* 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.
|
|
658
750
|
*/
|
|
659
|
-
export interface
|
|
751
|
+
export interface VCPMPricingOption {
|
|
660
752
|
/**
|
|
661
|
-
* Unique identifier for this pricing option within the product
|
|
753
|
+
* Unique identifier for this pricing option within the product
|
|
662
754
|
*/
|
|
663
755
|
pricing_option_id: string;
|
|
664
756
|
/**
|
|
665
757
|
* Cost per 1,000 viewable impressions (MRC standard)
|
|
666
758
|
*/
|
|
667
759
|
pricing_model: 'vcpm';
|
|
668
|
-
/**
|
|
669
|
-
* Fixed vCPM rate (cost per 1,000 viewable impressions)
|
|
670
|
-
*/
|
|
671
|
-
rate: number;
|
|
672
760
|
/**
|
|
673
761
|
* ISO 4217 currency code
|
|
674
762
|
*/
|
|
675
763
|
currency: string;
|
|
676
764
|
/**
|
|
677
|
-
*
|
|
678
|
-
*/
|
|
679
|
-
is_fixed: true;
|
|
680
|
-
/**
|
|
681
|
-
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
682
|
-
*/
|
|
683
|
-
min_spend_per_package?: number;
|
|
684
|
-
[k: string]: unknown;
|
|
685
|
-
}
|
|
686
|
-
/**
|
|
687
|
-
* 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)
|
|
688
|
-
*/
|
|
689
|
-
export interface VCPMAuctionPricingOption {
|
|
690
|
-
/**
|
|
691
|
-
* Unique identifier for this pricing option within the product (e.g., 'vcpm_usd_auction')
|
|
692
|
-
*/
|
|
693
|
-
pricing_option_id: string;
|
|
694
|
-
/**
|
|
695
|
-
* Cost per 1,000 viewable impressions (MRC standard)
|
|
696
|
-
*/
|
|
697
|
-
pricing_model: 'vcpm';
|
|
698
|
-
/**
|
|
699
|
-
* ISO 4217 currency code
|
|
765
|
+
* Fixed price per unit. If present, this is fixed pricing. If absent, auction-based.
|
|
700
766
|
*/
|
|
701
|
-
|
|
767
|
+
fixed_price?: number;
|
|
702
768
|
/**
|
|
703
|
-
*
|
|
769
|
+
* Minimum acceptable bid for auction pricing (mutually exclusive with fixed_price). Bids below this value will be rejected.
|
|
704
770
|
*/
|
|
705
|
-
|
|
771
|
+
floor_price?: number;
|
|
706
772
|
/**
|
|
707
|
-
*
|
|
773
|
+
* Optional pricing guidance for auction-based bidding. Helps buyers calibrate bids with historical percentiles.
|
|
708
774
|
*/
|
|
709
|
-
price_guidance
|
|
710
|
-
/**
|
|
711
|
-
* Minimum acceptable bid price
|
|
712
|
-
*/
|
|
713
|
-
floor: number;
|
|
775
|
+
price_guidance?: {
|
|
714
776
|
/**
|
|
715
777
|
* 25th percentile of recent winning bids
|
|
716
778
|
*/
|
|
@@ -732,218 +794,323 @@ export interface VCPMAuctionPricingOption {
|
|
|
732
794
|
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
733
795
|
*/
|
|
734
796
|
min_spend_per_package?: number;
|
|
735
|
-
[k: string]: unknown;
|
|
797
|
+
[k: string]: unknown | undefined;
|
|
736
798
|
}
|
|
737
799
|
/**
|
|
738
|
-
* Cost Per Click fixed
|
|
800
|
+
* Cost Per Click pricing. If fixed_price is present, it's fixed pricing. If absent, it's auction-based.
|
|
739
801
|
*/
|
|
740
802
|
export interface CPCPricingOption {
|
|
741
803
|
/**
|
|
742
|
-
* Unique identifier for this pricing option within the product
|
|
804
|
+
* Unique identifier for this pricing option within the product
|
|
743
805
|
*/
|
|
744
806
|
pricing_option_id: string;
|
|
745
807
|
/**
|
|
746
808
|
* Cost per click
|
|
747
809
|
*/
|
|
748
810
|
pricing_model: 'cpc';
|
|
749
|
-
/**
|
|
750
|
-
* Fixed CPC rate (cost per click)
|
|
751
|
-
*/
|
|
752
|
-
rate: number;
|
|
753
811
|
/**
|
|
754
812
|
* ISO 4217 currency code
|
|
755
813
|
*/
|
|
756
814
|
currency: string;
|
|
757
815
|
/**
|
|
758
|
-
*
|
|
816
|
+
* Fixed price per click. If present, this is fixed pricing. If absent, auction-based.
|
|
817
|
+
*/
|
|
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.
|
|
759
825
|
*/
|
|
760
|
-
|
|
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
|
+
};
|
|
761
844
|
/**
|
|
762
845
|
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
763
846
|
*/
|
|
764
847
|
min_spend_per_package?: number;
|
|
765
|
-
[k: string]: unknown;
|
|
848
|
+
[k: string]: unknown | undefined;
|
|
766
849
|
}
|
|
767
850
|
/**
|
|
768
|
-
* 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.
|
|
769
852
|
*/
|
|
770
853
|
export interface CPCVPricingOption {
|
|
771
854
|
/**
|
|
772
|
-
* Unique identifier for this pricing option within the product
|
|
855
|
+
* Unique identifier for this pricing option within the product
|
|
773
856
|
*/
|
|
774
857
|
pricing_option_id: string;
|
|
775
858
|
/**
|
|
776
859
|
* Cost per completed view (100% completion)
|
|
777
860
|
*/
|
|
778
861
|
pricing_model: 'cpcv';
|
|
779
|
-
/**
|
|
780
|
-
* Fixed CPCV rate (cost per 100% completion)
|
|
781
|
-
*/
|
|
782
|
-
rate: number;
|
|
783
862
|
/**
|
|
784
863
|
* ISO 4217 currency code
|
|
785
864
|
*/
|
|
786
865
|
currency: string;
|
|
787
866
|
/**
|
|
788
|
-
*
|
|
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.
|
|
789
876
|
*/
|
|
790
|
-
|
|
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
|
+
};
|
|
791
895
|
/**
|
|
792
896
|
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
793
897
|
*/
|
|
794
898
|
min_spend_per_package?: number;
|
|
795
|
-
[k: string]: unknown;
|
|
899
|
+
[k: string]: unknown | undefined;
|
|
796
900
|
}
|
|
797
901
|
/**
|
|
798
|
-
* 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.
|
|
799
903
|
*/
|
|
800
904
|
export interface CPVPricingOption {
|
|
801
905
|
/**
|
|
802
|
-
* Unique identifier for this pricing option within the product
|
|
906
|
+
* Unique identifier for this pricing option within the product
|
|
803
907
|
*/
|
|
804
908
|
pricing_option_id: string;
|
|
805
909
|
/**
|
|
806
910
|
* Cost per view at threshold
|
|
807
911
|
*/
|
|
808
912
|
pricing_model: 'cpv';
|
|
809
|
-
/**
|
|
810
|
-
* Fixed CPV rate (cost per view)
|
|
811
|
-
*/
|
|
812
|
-
rate: number;
|
|
813
913
|
/**
|
|
814
914
|
* ISO 4217 currency code
|
|
815
915
|
*/
|
|
816
916
|
currency: string;
|
|
817
917
|
/**
|
|
818
|
-
*
|
|
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.
|
|
819
923
|
*/
|
|
820
|
-
|
|
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
|
+
};
|
|
821
946
|
/**
|
|
822
947
|
* CPV-specific parameters defining the view threshold
|
|
823
948
|
*/
|
|
824
949
|
parameters: {
|
|
825
950
|
view_threshold: number | {
|
|
826
951
|
/**
|
|
827
|
-
* Seconds of viewing required
|
|
952
|
+
* Seconds of viewing required
|
|
828
953
|
*/
|
|
829
954
|
duration_seconds: number;
|
|
830
|
-
[k: string]: unknown;
|
|
955
|
+
[k: string]: unknown | undefined;
|
|
831
956
|
};
|
|
832
|
-
[k: string]: unknown;
|
|
957
|
+
[k: string]: unknown | undefined;
|
|
833
958
|
};
|
|
834
959
|
/**
|
|
835
960
|
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
836
961
|
*/
|
|
837
962
|
min_spend_per_package?: number;
|
|
838
|
-
[k: string]: unknown;
|
|
963
|
+
[k: string]: unknown | undefined;
|
|
839
964
|
}
|
|
840
965
|
/**
|
|
841
|
-
* 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.
|
|
842
967
|
*/
|
|
843
968
|
export interface CPPPricingOption {
|
|
844
969
|
/**
|
|
845
|
-
* Unique identifier for this pricing option within the product
|
|
970
|
+
* Unique identifier for this pricing option within the product
|
|
846
971
|
*/
|
|
847
972
|
pricing_option_id: string;
|
|
848
973
|
/**
|
|
849
974
|
* Cost per Gross Rating Point
|
|
850
975
|
*/
|
|
851
976
|
pricing_model: 'cpp';
|
|
852
|
-
/**
|
|
853
|
-
* Fixed CPP rate (cost per rating point)
|
|
854
|
-
*/
|
|
855
|
-
rate: number;
|
|
856
977
|
/**
|
|
857
978
|
* ISO 4217 currency code
|
|
858
979
|
*/
|
|
859
980
|
currency: string;
|
|
860
981
|
/**
|
|
861
|
-
*
|
|
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.
|
|
862
991
|
*/
|
|
863
|
-
|
|
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
|
+
};
|
|
864
1010
|
/**
|
|
865
|
-
* CPP-specific parameters for demographic targeting
|
|
1011
|
+
* CPP-specific parameters for demographic targeting
|
|
866
1012
|
*/
|
|
867
1013
|
parameters: {
|
|
868
1014
|
/**
|
|
869
|
-
* Target demographic in Nielsen format
|
|
1015
|
+
* Target demographic in Nielsen format (P18-49, M25-54, W35+, etc.)
|
|
870
1016
|
*/
|
|
871
1017
|
demographic: string;
|
|
872
1018
|
/**
|
|
873
|
-
* Minimum GRPs/TRPs required
|
|
1019
|
+
* Minimum GRPs/TRPs required
|
|
874
1020
|
*/
|
|
875
1021
|
min_points?: number;
|
|
876
|
-
[k: string]: unknown;
|
|
1022
|
+
[k: string]: unknown | undefined;
|
|
877
1023
|
};
|
|
878
1024
|
/**
|
|
879
1025
|
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
880
1026
|
*/
|
|
881
1027
|
min_spend_per_package?: number;
|
|
882
|
-
[k: string]: unknown;
|
|
1028
|
+
[k: string]: unknown | undefined;
|
|
883
1029
|
}
|
|
884
1030
|
/**
|
|
885
|
-
* 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.
|
|
886
1032
|
*/
|
|
887
1033
|
export interface FlatRatePricingOption {
|
|
888
1034
|
/**
|
|
889
|
-
* Unique identifier for this pricing option within the product
|
|
1035
|
+
* Unique identifier for this pricing option within the product
|
|
890
1036
|
*/
|
|
891
1037
|
pricing_option_id: string;
|
|
892
1038
|
/**
|
|
893
1039
|
* Fixed cost regardless of delivery volume
|
|
894
1040
|
*/
|
|
895
1041
|
pricing_model: 'flat_rate';
|
|
896
|
-
/**
|
|
897
|
-
* Flat rate cost
|
|
898
|
-
*/
|
|
899
|
-
rate: number;
|
|
900
1042
|
/**
|
|
901
1043
|
* ISO 4217 currency code
|
|
902
1044
|
*/
|
|
903
1045
|
currency: string;
|
|
904
1046
|
/**
|
|
905
|
-
*
|
|
1047
|
+
* Flat rate cost. If present, this is fixed pricing. If absent, auction-based.
|
|
906
1048
|
*/
|
|
907
|
-
|
|
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.
|
|
1056
|
+
*/
|
|
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
|
+
};
|
|
908
1075
|
/**
|
|
909
1076
|
* Flat rate parameters for DOOH and time-based campaigns
|
|
910
1077
|
*/
|
|
911
1078
|
parameters?: {
|
|
912
1079
|
/**
|
|
913
|
-
* Duration in hours for time-based
|
|
1080
|
+
* Duration in hours for time-based pricing
|
|
914
1081
|
*/
|
|
915
1082
|
duration_hours?: number;
|
|
916
1083
|
/**
|
|
917
|
-
* Guaranteed share of voice
|
|
1084
|
+
* Guaranteed share of voice (0-100)
|
|
918
1085
|
*/
|
|
919
1086
|
sov_percentage?: number;
|
|
920
1087
|
/**
|
|
921
|
-
* Duration of ad loop rotation in seconds
|
|
1088
|
+
* Duration of ad loop rotation in seconds
|
|
922
1089
|
*/
|
|
923
1090
|
loop_duration_seconds?: number;
|
|
924
1091
|
/**
|
|
925
|
-
* Minimum
|
|
1092
|
+
* Minimum plays per hour
|
|
926
1093
|
*/
|
|
927
1094
|
min_plays_per_hour?: number;
|
|
928
1095
|
/**
|
|
929
|
-
* Named venue package identifier
|
|
1096
|
+
* Named venue package identifier
|
|
930
1097
|
*/
|
|
931
1098
|
venue_package?: string;
|
|
932
1099
|
/**
|
|
933
|
-
* Estimated impressions
|
|
1100
|
+
* Estimated impressions (informational)
|
|
934
1101
|
*/
|
|
935
1102
|
estimated_impressions?: number;
|
|
936
1103
|
/**
|
|
937
|
-
* Specific daypart for time-based pricing
|
|
1104
|
+
* Specific daypart for time-based pricing
|
|
938
1105
|
*/
|
|
939
1106
|
daypart?: string;
|
|
940
|
-
[k: string]: unknown;
|
|
1107
|
+
[k: string]: unknown | undefined;
|
|
941
1108
|
};
|
|
942
1109
|
/**
|
|
943
1110
|
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
944
1111
|
*/
|
|
945
1112
|
min_spend_per_package?: number;
|
|
946
|
-
[k: string]: unknown;
|
|
1113
|
+
[k: string]: unknown | undefined;
|
|
947
1114
|
}
|
|
948
1115
|
/**
|
|
949
1116
|
* Measurement capabilities included with a product
|
|
@@ -965,7 +1132,7 @@ export interface Measurement {
|
|
|
965
1132
|
* Reporting frequency and format
|
|
966
1133
|
*/
|
|
967
1134
|
reporting: string;
|
|
968
|
-
[k: string]: unknown;
|
|
1135
|
+
[k: string]: unknown | undefined;
|
|
969
1136
|
}
|
|
970
1137
|
/**
|
|
971
1138
|
* Reporting capabilities available for a product
|
|
@@ -993,7 +1160,7 @@ export interface ReportingCapabilities {
|
|
|
993
1160
|
* Metrics available in reporting. Impressions and spend are always implicitly included.
|
|
994
1161
|
*/
|
|
995
1162
|
available_metrics: AvailableMetric[];
|
|
996
|
-
[k: string]: unknown;
|
|
1163
|
+
[k: string]: unknown | undefined;
|
|
997
1164
|
}
|
|
998
1165
|
/**
|
|
999
1166
|
* Creative requirements and restrictions for a product
|
|
@@ -1005,7 +1172,7 @@ export interface CreativePolicy {
|
|
|
1005
1172
|
* Whether creative templates are provided
|
|
1006
1173
|
*/
|
|
1007
1174
|
templates_available: boolean;
|
|
1008
|
-
[k: string]: unknown;
|
|
1175
|
+
[k: string]: unknown | undefined;
|
|
1009
1176
|
}
|
|
1010
1177
|
/**
|
|
1011
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.
|
|
@@ -1031,7 +1198,7 @@ export interface FormatID1 {
|
|
|
1031
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.
|
|
1032
1199
|
*/
|
|
1033
1200
|
duration_ms?: number;
|
|
1034
|
-
[k: string]: unknown;
|
|
1201
|
+
[k: string]: unknown | undefined;
|
|
1035
1202
|
}
|
|
1036
1203
|
/**
|
|
1037
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.
|
|
@@ -1057,49 +1224,135 @@ export interface FormatID2 {
|
|
|
1057
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.
|
|
1058
1225
|
*/
|
|
1059
1226
|
duration_ms?: number;
|
|
1060
|
-
[k: string]: unknown;
|
|
1227
|
+
[k: string]: unknown | undefined;
|
|
1061
1228
|
}
|
|
1062
1229
|
/**
|
|
1063
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.
|
|
1064
1231
|
*/
|
|
1065
|
-
export interface
|
|
1232
|
+
export interface Proposal {
|
|
1066
1233
|
/**
|
|
1067
|
-
*
|
|
1234
|
+
* Unique identifier for this proposal. Used to refine the proposal in subsequent get_products calls or to execute it via create_media_buy.
|
|
1068
1235
|
*/
|
|
1069
|
-
|
|
1236
|
+
proposal_id: string;
|
|
1070
1237
|
/**
|
|
1071
|
-
* Human-readable
|
|
1238
|
+
* Human-readable name for this media plan proposal
|
|
1072
1239
|
*/
|
|
1073
|
-
|
|
1240
|
+
name: string;
|
|
1074
1241
|
/**
|
|
1075
|
-
*
|
|
1242
|
+
* Explanation of the proposal strategy and what it achieves
|
|
1076
1243
|
*/
|
|
1077
|
-
|
|
1244
|
+
description?: string;
|
|
1078
1245
|
/**
|
|
1079
|
-
*
|
|
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
|
|
1080
1249
|
*/
|
|
1081
|
-
|
|
1250
|
+
allocations: [ProductAllocation, ...ProductAllocation[]];
|
|
1082
1251
|
/**
|
|
1083
|
-
*
|
|
1252
|
+
* When this proposal expires and can no longer be executed. After expiration, referenced products or pricing may no longer be available.
|
|
1084
1253
|
*/
|
|
1085
|
-
|
|
1254
|
+
expires_at?: string;
|
|
1086
1255
|
/**
|
|
1087
|
-
*
|
|
1256
|
+
* Optional budget guidance for this proposal
|
|
1088
1257
|
*/
|
|
1089
|
-
|
|
1090
|
-
|
|
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;
|
|
1091
1276
|
};
|
|
1092
|
-
|
|
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;
|
|
1093
1283
|
}
|
|
1094
1284
|
/**
|
|
1095
|
-
*
|
|
1096
|
-
*/
|
|
1097
|
-
/**
|
|
1098
|
-
* Filter by format type (technical categories with distinct requirements)
|
|
1285
|
+
* A budget allocation for a specific product within a proposal. Percentages across all allocations in a proposal should sum to 100.
|
|
1099
1286
|
*/
|
|
1100
|
-
export interface
|
|
1287
|
+
export interface ProductAllocation {
|
|
1101
1288
|
/**
|
|
1102
|
-
*
|
|
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
|
+
*/
|
|
1350
|
+
/**
|
|
1351
|
+
* Filter by format type (technical categories with distinct requirements)
|
|
1352
|
+
*/
|
|
1353
|
+
export interface ListCreativeFormatsRequest {
|
|
1354
|
+
/**
|
|
1355
|
+
* Return only these specific format IDs (e.g., from get_products response)
|
|
1103
1356
|
*/
|
|
1104
1357
|
format_ids?: FormatID[];
|
|
1105
1358
|
type?: FormatCategory;
|
|
@@ -1145,14 +1398,6 @@ export type FormatIDParameter = 'dimensions' | 'duration';
|
|
|
1145
1398
|
* Type of asset
|
|
1146
1399
|
*/
|
|
1147
1400
|
export type AssetContentType1 = 'image' | 'video' | 'audio' | 'text' | 'markdown' | 'html' | 'css' | 'javascript' | 'vast' | 'daast' | 'promoted_offerings' | 'url' | 'webhook';
|
|
1148
|
-
/**
|
|
1149
|
-
* Type of asset
|
|
1150
|
-
*/
|
|
1151
|
-
export type AssetContentType2 = 'image' | 'video' | 'audio' | 'text' | 'markdown' | 'html' | 'css' | 'javascript' | 'vast' | 'daast' | 'promoted_offerings' | 'url' | 'webhook';
|
|
1152
|
-
/**
|
|
1153
|
-
* Type of asset
|
|
1154
|
-
*/
|
|
1155
|
-
export type AssetContentType3 = 'image' | 'video' | 'audio' | 'text' | 'markdown' | 'html' | 'css' | 'javascript' | 'vast' | 'daast' | 'promoted_offerings' | 'url' | 'webhook';
|
|
1156
1401
|
/**
|
|
1157
1402
|
* Capabilities supported by creative agents for format handling
|
|
1158
1403
|
*/
|
|
@@ -1202,10 +1447,6 @@ export interface Format {
|
|
|
1202
1447
|
* Plain text explanation of what this format does and what assets it requires
|
|
1203
1448
|
*/
|
|
1204
1449
|
description?: string;
|
|
1205
|
-
/**
|
|
1206
|
-
* 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.
|
|
1207
|
-
*/
|
|
1208
|
-
preview_image?: string;
|
|
1209
1450
|
/**
|
|
1210
1451
|
* Optional URL to showcase page with examples and interactive demos of this format
|
|
1211
1452
|
*/
|
|
@@ -1222,86 +1463,16 @@ export interface Format {
|
|
|
1222
1463
|
*/
|
|
1223
1464
|
renders?: [
|
|
1224
1465
|
({
|
|
1225
|
-
[k: string]: unknown;
|
|
1466
|
+
[k: string]: unknown | undefined;
|
|
1226
1467
|
} | {
|
|
1227
1468
|
parameters_from_format_id: true;
|
|
1228
1469
|
}),
|
|
1229
1470
|
...({
|
|
1230
|
-
[k: string]: unknown;
|
|
1471
|
+
[k: string]: unknown | undefined;
|
|
1231
1472
|
} | {
|
|
1232
1473
|
parameters_from_format_id: true;
|
|
1233
1474
|
})[]
|
|
1234
1475
|
];
|
|
1235
|
-
/**
|
|
1236
|
-
* @deprecated
|
|
1237
|
-
* 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.
|
|
1238
|
-
*/
|
|
1239
|
-
assets_required?: ({
|
|
1240
|
-
/**
|
|
1241
|
-
* Discriminator indicating this is an individual asset requirement
|
|
1242
|
-
*/
|
|
1243
|
-
item_type: 'individual';
|
|
1244
|
-
/**
|
|
1245
|
-
* Unique identifier for this asset. Creative manifests MUST use this exact value as the key in the assets object.
|
|
1246
|
-
*/
|
|
1247
|
-
asset_id: string;
|
|
1248
|
-
asset_type: AssetContentType;
|
|
1249
|
-
/**
|
|
1250
|
-
* 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.
|
|
1251
|
-
*/
|
|
1252
|
-
asset_role?: string;
|
|
1253
|
-
/**
|
|
1254
|
-
* Whether this asset is required
|
|
1255
|
-
*/
|
|
1256
|
-
required?: boolean;
|
|
1257
|
-
/**
|
|
1258
|
-
* 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).
|
|
1259
|
-
*/
|
|
1260
|
-
requirements?: {
|
|
1261
|
-
[k: string]: unknown;
|
|
1262
|
-
};
|
|
1263
|
-
} | {
|
|
1264
|
-
/**
|
|
1265
|
-
* Discriminator indicating this is a repeatable asset group
|
|
1266
|
-
*/
|
|
1267
|
-
item_type: 'repeatable_group';
|
|
1268
|
-
/**
|
|
1269
|
-
* Identifier for this asset group (e.g., 'product', 'slide', 'card')
|
|
1270
|
-
*/
|
|
1271
|
-
asset_group_id: string;
|
|
1272
|
-
/**
|
|
1273
|
-
* Minimum number of repetitions required
|
|
1274
|
-
*/
|
|
1275
|
-
min_count: number;
|
|
1276
|
-
/**
|
|
1277
|
-
* Maximum number of repetitions allowed
|
|
1278
|
-
*/
|
|
1279
|
-
max_count: number;
|
|
1280
|
-
/**
|
|
1281
|
-
* Assets within each repetition of this group
|
|
1282
|
-
*/
|
|
1283
|
-
assets: {
|
|
1284
|
-
/**
|
|
1285
|
-
* Identifier for this asset within the group
|
|
1286
|
-
*/
|
|
1287
|
-
asset_id: string;
|
|
1288
|
-
asset_type: AssetContentType1;
|
|
1289
|
-
/**
|
|
1290
|
-
* 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.
|
|
1291
|
-
*/
|
|
1292
|
-
asset_role?: string;
|
|
1293
|
-
/**
|
|
1294
|
-
* Whether this asset is required in each repetition
|
|
1295
|
-
*/
|
|
1296
|
-
required?: boolean;
|
|
1297
|
-
/**
|
|
1298
|
-
* 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).
|
|
1299
|
-
*/
|
|
1300
|
-
requirements?: {
|
|
1301
|
-
[k: string]: unknown;
|
|
1302
|
-
};
|
|
1303
|
-
}[];
|
|
1304
|
-
})[];
|
|
1305
1476
|
/**
|
|
1306
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.
|
|
1307
1478
|
*/
|
|
@@ -1314,7 +1485,7 @@ export interface Format {
|
|
|
1314
1485
|
* Unique identifier for this asset. Creative manifests MUST use this exact value as the key in the assets object.
|
|
1315
1486
|
*/
|
|
1316
1487
|
asset_id: string;
|
|
1317
|
-
asset_type:
|
|
1488
|
+
asset_type: AssetContentType;
|
|
1318
1489
|
/**
|
|
1319
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.
|
|
1320
1491
|
*/
|
|
@@ -1327,7 +1498,7 @@ export interface Format {
|
|
|
1327
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).
|
|
1328
1499
|
*/
|
|
1329
1500
|
requirements?: {
|
|
1330
|
-
[k: string]: unknown;
|
|
1501
|
+
[k: string]: unknown | undefined;
|
|
1331
1502
|
};
|
|
1332
1503
|
} | {
|
|
1333
1504
|
/**
|
|
@@ -1358,7 +1529,7 @@ export interface Format {
|
|
|
1358
1529
|
* Identifier for this asset within the group
|
|
1359
1530
|
*/
|
|
1360
1531
|
asset_id: string;
|
|
1361
|
-
asset_type:
|
|
1532
|
+
asset_type: AssetContentType1;
|
|
1362
1533
|
/**
|
|
1363
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.
|
|
1364
1535
|
*/
|
|
@@ -1371,7 +1542,7 @@ export interface Format {
|
|
|
1371
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).
|
|
1372
1543
|
*/
|
|
1373
1544
|
requirements?: {
|
|
1374
|
-
[k: string]: unknown;
|
|
1545
|
+
[k: string]: unknown | undefined;
|
|
1375
1546
|
};
|
|
1376
1547
|
}[];
|
|
1377
1548
|
})[];
|
|
@@ -1379,7 +1550,7 @@ export interface Format {
|
|
|
1379
1550
|
* Delivery method specifications (e.g., hosted, VAST, third-party tags)
|
|
1380
1551
|
*/
|
|
1381
1552
|
delivery?: {
|
|
1382
|
-
[k: string]: unknown;
|
|
1553
|
+
[k: string]: unknown | undefined;
|
|
1383
1554
|
};
|
|
1384
1555
|
/**
|
|
1385
1556
|
* List of universal macros supported by this format (e.g., MEDIA_BUY_ID, CACHEBUSTER, DEVICE_ID). Used for validation and developer tooling.
|
|
@@ -1398,9 +1569,9 @@ export interface Format {
|
|
|
1398
1569
|
* Asset manifest for rendering the card, structure defined by the format
|
|
1399
1570
|
*/
|
|
1400
1571
|
manifest: {
|
|
1401
|
-
[k: string]: unknown;
|
|
1572
|
+
[k: string]: unknown | undefined;
|
|
1402
1573
|
};
|
|
1403
|
-
[k: string]: unknown;
|
|
1574
|
+
[k: string]: unknown | undefined;
|
|
1404
1575
|
};
|
|
1405
1576
|
/**
|
|
1406
1577
|
* Optional detailed card with carousel and full specifications. Provides rich format documentation similar to ad spec pages.
|
|
@@ -1411,11 +1582,11 @@ export interface Format {
|
|
|
1411
1582
|
* Asset manifest for rendering the detailed card, structure defined by the format
|
|
1412
1583
|
*/
|
|
1413
1584
|
manifest: {
|
|
1414
|
-
[k: string]: unknown;
|
|
1585
|
+
[k: string]: unknown | undefined;
|
|
1415
1586
|
};
|
|
1416
|
-
[k: string]: unknown;
|
|
1587
|
+
[k: string]: unknown | undefined;
|
|
1417
1588
|
};
|
|
1418
|
-
[k: string]: unknown;
|
|
1589
|
+
[k: string]: unknown | undefined;
|
|
1419
1590
|
}
|
|
1420
1591
|
/**
|
|
1421
1592
|
* Structured format identifier with agent URL and format name
|
|
@@ -1441,7 +1612,7 @@ export interface FormatID3 {
|
|
|
1441
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.
|
|
1442
1613
|
*/
|
|
1443
1614
|
duration_ms?: number;
|
|
1444
|
-
[k: string]: unknown;
|
|
1615
|
+
[k: string]: unknown | undefined;
|
|
1445
1616
|
}
|
|
1446
1617
|
/**
|
|
1447
1618
|
* Standard error structure for task-specific errors and warnings
|
|
@@ -1450,6 +1621,10 @@ export interface FormatID3 {
|
|
|
1450
1621
|
* Budget pacing strategy
|
|
1451
1622
|
*/
|
|
1452
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';
|
|
1453
1628
|
/**
|
|
1454
1629
|
* JavaScript module type
|
|
1455
1630
|
*/
|
|
@@ -1479,7 +1654,7 @@ export type VASTAsset = {
|
|
|
1479
1654
|
* Tracking events supported by this VAST tag
|
|
1480
1655
|
*/
|
|
1481
1656
|
tracking_events?: VASTTrackingEvent[];
|
|
1482
|
-
[k: string]: unknown;
|
|
1657
|
+
[k: string]: unknown | undefined;
|
|
1483
1658
|
} | {
|
|
1484
1659
|
/**
|
|
1485
1660
|
* Discriminator indicating VAST is delivered as inline XML content
|
|
@@ -1502,7 +1677,7 @@ export type VASTAsset = {
|
|
|
1502
1677
|
* Tracking events supported by this VAST tag
|
|
1503
1678
|
*/
|
|
1504
1679
|
tracking_events?: VASTTrackingEvent[];
|
|
1505
|
-
[k: string]: unknown;
|
|
1680
|
+
[k: string]: unknown | undefined;
|
|
1506
1681
|
};
|
|
1507
1682
|
/**
|
|
1508
1683
|
* VAST specification version
|
|
@@ -1541,7 +1716,7 @@ export type DAASTAsset = {
|
|
|
1541
1716
|
* Whether companion display ads are included
|
|
1542
1717
|
*/
|
|
1543
1718
|
companion_ads?: boolean;
|
|
1544
|
-
[k: string]: unknown;
|
|
1719
|
+
[k: string]: unknown | undefined;
|
|
1545
1720
|
} | {
|
|
1546
1721
|
/**
|
|
1547
1722
|
* Discriminator indicating DAAST is delivered as inline XML content
|
|
@@ -1564,7 +1739,7 @@ export type DAASTAsset = {
|
|
|
1564
1739
|
* Whether companion display ads are included
|
|
1565
1740
|
*/
|
|
1566
1741
|
companion_ads?: boolean;
|
|
1567
|
-
[k: string]: unknown;
|
|
1742
|
+
[k: string]: unknown | undefined;
|
|
1568
1743
|
};
|
|
1569
1744
|
/**
|
|
1570
1745
|
* DAAST specification version
|
|
@@ -1582,6 +1757,10 @@ export type DAASTVersion1 = '1.0' | '1.1';
|
|
|
1582
1757
|
* Brand information manifest containing assets, themes, and guidelines. Can be provided inline or as a URL reference to a hosted manifest.
|
|
1583
1758
|
*/
|
|
1584
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';
|
|
1585
1764
|
/**
|
|
1586
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.
|
|
1587
1766
|
*/
|
|
@@ -1595,7 +1774,7 @@ export type StartTiming = 'asap' | string;
|
|
|
1595
1774
|
*/
|
|
1596
1775
|
export type AuthenticationScheme = 'Bearer' | 'HMAC-SHA256';
|
|
1597
1776
|
/**
|
|
1598
|
-
*
|
|
1777
|
+
* Standard delivery and performance metrics available for reporting
|
|
1599
1778
|
*/
|
|
1600
1779
|
export interface CreateMediaBuyRequest {
|
|
1601
1780
|
/**
|
|
@@ -1603,9 +1782,26 @@ export interface CreateMediaBuyRequest {
|
|
|
1603
1782
|
*/
|
|
1604
1783
|
buyer_ref: string;
|
|
1605
1784
|
/**
|
|
1606
|
-
*
|
|
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.
|
|
1607
1786
|
*/
|
|
1608
|
-
|
|
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.
|
|
1803
|
+
*/
|
|
1804
|
+
packages?: PackageRequest[];
|
|
1609
1805
|
brand_manifest: BrandManifestReference1;
|
|
1610
1806
|
/**
|
|
1611
1807
|
* Purchase order number for tracking
|
|
@@ -1616,12 +1812,13 @@ export interface CreateMediaBuyRequest {
|
|
|
1616
1812
|
* Campaign end date/time in ISO 8601 format
|
|
1617
1813
|
*/
|
|
1618
1814
|
end_time: string;
|
|
1815
|
+
reporting_webhook?: ReportingWebhook;
|
|
1619
1816
|
/**
|
|
1620
|
-
* 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.
|
|
1621
1818
|
*/
|
|
1622
|
-
|
|
1819
|
+
artifact_webhook?: {
|
|
1623
1820
|
/**
|
|
1624
|
-
* Webhook endpoint URL for
|
|
1821
|
+
* Webhook endpoint URL for artifact delivery
|
|
1625
1822
|
*/
|
|
1626
1823
|
url: string;
|
|
1627
1824
|
/**
|
|
@@ -1644,13 +1841,17 @@ export interface CreateMediaBuyRequest {
|
|
|
1644
1841
|
credentials: string;
|
|
1645
1842
|
};
|
|
1646
1843
|
/**
|
|
1647
|
-
*
|
|
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'.
|
|
1648
1849
|
*/
|
|
1649
|
-
|
|
1850
|
+
batch_frequency?: 'hourly' | 'daily';
|
|
1650
1851
|
/**
|
|
1651
|
-
*
|
|
1852
|
+
* Fraction of impressions to include (0-1). 1.0 = all impressions, 0.1 = 10% sample. Default: 1.0
|
|
1652
1853
|
*/
|
|
1653
|
-
|
|
1854
|
+
sampling_rate?: number;
|
|
1654
1855
|
};
|
|
1655
1856
|
context?: ContextObject;
|
|
1656
1857
|
ext?: ExtensionObject;
|
|
@@ -1696,38 +1897,54 @@ export interface PackageRequest {
|
|
|
1696
1897
|
paused?: boolean;
|
|
1697
1898
|
targeting_overlay?: TargetingOverlay;
|
|
1698
1899
|
/**
|
|
1699
|
-
*
|
|
1900
|
+
* Assign existing library creatives to this package with optional weights and placement targeting
|
|
1700
1901
|
*/
|
|
1701
|
-
|
|
1902
|
+
creative_assignments?: CreativeAssignment[];
|
|
1702
1903
|
/**
|
|
1703
|
-
*
|
|
1904
|
+
* Upload new creative assets and assign to this package (creatives will be added to library). Use creative_assignments instead for existing library creatives.
|
|
1704
1905
|
*
|
|
1705
1906
|
* @maxItems 100
|
|
1706
1907
|
*/
|
|
1707
1908
|
creatives?: CreativeAsset[];
|
|
1708
1909
|
ext?: ExtensionObject;
|
|
1709
|
-
[k: string]: unknown;
|
|
1910
|
+
[k: string]: unknown | undefined;
|
|
1710
1911
|
}
|
|
1711
1912
|
/**
|
|
1712
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.
|
|
1713
1914
|
*/
|
|
1714
1915
|
export interface TargetingOverlay {
|
|
1715
1916
|
/**
|
|
1716
|
-
* Restrict delivery to specific countries
|
|
1917
|
+
* Restrict delivery to specific countries. ISO 3166-1 alpha-2 codes (e.g., 'US', 'GB', 'DE').
|
|
1717
1918
|
*/
|
|
1718
|
-
|
|
1919
|
+
geo_countries?: string[];
|
|
1719
1920
|
/**
|
|
1720
|
-
* Restrict delivery to specific regions/states.
|
|
1921
|
+
* Restrict delivery to specific regions/states. ISO 3166-2 subdivision codes (e.g., 'US-CA', 'GB-SCT').
|
|
1721
1922
|
*/
|
|
1722
|
-
|
|
1923
|
+
geo_regions?: string[];
|
|
1723
1924
|
/**
|
|
1724
|
-
* 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.
|
|
1725
1926
|
*/
|
|
1726
|
-
|
|
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
|
+
}[];
|
|
1727
1936
|
/**
|
|
1728
|
-
* 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.
|
|
1729
1938
|
*/
|
|
1730
|
-
|
|
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
|
+
}[];
|
|
1731
1948
|
/**
|
|
1732
1949
|
* AXE segment ID to include for targeting
|
|
1733
1950
|
*/
|
|
@@ -1737,7 +1954,7 @@ export interface TargetingOverlay {
|
|
|
1737
1954
|
*/
|
|
1738
1955
|
axe_exclude_segment?: string;
|
|
1739
1956
|
frequency_cap?: FrequencyCap;
|
|
1740
|
-
[k: string]: unknown;
|
|
1957
|
+
[k: string]: unknown | undefined;
|
|
1741
1958
|
}
|
|
1742
1959
|
/**
|
|
1743
1960
|
* Frequency capping settings for package-level application
|
|
@@ -1747,7 +1964,27 @@ export interface FrequencyCap {
|
|
|
1747
1964
|
* Minutes to suppress after impression
|
|
1748
1965
|
*/
|
|
1749
1966
|
suppress_minutes: number;
|
|
1750
|
-
[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;
|
|
1751
1988
|
}
|
|
1752
1989
|
/**
|
|
1753
1990
|
* Creative asset for upload to library - supports static assets, generative formats, and third-party snippets
|
|
@@ -1766,7 +2003,7 @@ export interface CreativeAsset {
|
|
|
1766
2003
|
* Assets required by the format, keyed by asset_role
|
|
1767
2004
|
*/
|
|
1768
2005
|
assets: {
|
|
1769
|
-
[k: string]: unknown;
|
|
2006
|
+
[k: string]: unknown | undefined;
|
|
1770
2007
|
};
|
|
1771
2008
|
/**
|
|
1772
2009
|
* Preview contexts for generative formats - defines what scenarios to generate previews for
|
|
@@ -1780,22 +2017,19 @@ export interface CreativeAsset {
|
|
|
1780
2017
|
* Macro values to apply for this preview
|
|
1781
2018
|
*/
|
|
1782
2019
|
macros?: {
|
|
1783
|
-
[k: string]: string;
|
|
2020
|
+
[k: string]: string | undefined;
|
|
1784
2021
|
};
|
|
1785
2022
|
/**
|
|
1786
2023
|
* Natural language description of the context for AI-generated content
|
|
1787
2024
|
*/
|
|
1788
2025
|
context_description?: string;
|
|
1789
|
-
[k: string]: unknown;
|
|
2026
|
+
[k: string]: unknown | undefined;
|
|
1790
2027
|
}[];
|
|
1791
2028
|
/**
|
|
1792
2029
|
* User-defined tags for organization and searchability
|
|
1793
2030
|
*/
|
|
1794
2031
|
tags?: string[];
|
|
1795
|
-
|
|
1796
|
-
* For generative creatives: set to true to approve and finalize, false to request regeneration with updated assets/message. Omit for non-generative creatives.
|
|
1797
|
-
*/
|
|
1798
|
-
approved?: boolean;
|
|
2032
|
+
status?: CreativeStatus;
|
|
1799
2033
|
/**
|
|
1800
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.
|
|
1801
2035
|
*/
|
|
@@ -1806,7 +2040,7 @@ export interface CreativeAsset {
|
|
|
1806
2040
|
* @minItems 1
|
|
1807
2041
|
*/
|
|
1808
2042
|
placement_ids?: [string, ...string[]];
|
|
1809
|
-
[k: string]: unknown;
|
|
2043
|
+
[k: string]: unknown | undefined;
|
|
1810
2044
|
}
|
|
1811
2045
|
/**
|
|
1812
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.
|
|
@@ -1832,7 +2066,7 @@ export interface ImageAsset {
|
|
|
1832
2066
|
* Alternative text for accessibility
|
|
1833
2067
|
*/
|
|
1834
2068
|
alt_text?: string;
|
|
1835
|
-
[k: string]: unknown;
|
|
2069
|
+
[k: string]: unknown | undefined;
|
|
1836
2070
|
}
|
|
1837
2071
|
/**
|
|
1838
2072
|
* Video asset with URL and specifications
|
|
@@ -1862,7 +2096,7 @@ export interface VideoAsset {
|
|
|
1862
2096
|
* Video bitrate in kilobits per second
|
|
1863
2097
|
*/
|
|
1864
2098
|
bitrate_kbps?: number;
|
|
1865
|
-
[k: string]: unknown;
|
|
2099
|
+
[k: string]: unknown | undefined;
|
|
1866
2100
|
}
|
|
1867
2101
|
/**
|
|
1868
2102
|
* Audio asset with URL and specifications
|
|
@@ -1884,7 +2118,7 @@ export interface AudioAsset {
|
|
|
1884
2118
|
* Audio bitrate in kilobits per second
|
|
1885
2119
|
*/
|
|
1886
2120
|
bitrate_kbps?: number;
|
|
1887
|
-
[k: string]: unknown;
|
|
2121
|
+
[k: string]: unknown | undefined;
|
|
1888
2122
|
}
|
|
1889
2123
|
/**
|
|
1890
2124
|
* Text content asset
|
|
@@ -1898,7 +2132,7 @@ export interface TextAsset {
|
|
|
1898
2132
|
* Language code (e.g., 'en', 'es', 'fr')
|
|
1899
2133
|
*/
|
|
1900
2134
|
language?: string;
|
|
1901
|
-
[k: string]: unknown;
|
|
2135
|
+
[k: string]: unknown | undefined;
|
|
1902
2136
|
}
|
|
1903
2137
|
/**
|
|
1904
2138
|
* HTML content asset
|
|
@@ -1912,7 +2146,7 @@ export interface HTMLAsset {
|
|
|
1912
2146
|
* HTML version (e.g., 'HTML5')
|
|
1913
2147
|
*/
|
|
1914
2148
|
version?: string;
|
|
1915
|
-
[k: string]: unknown;
|
|
2149
|
+
[k: string]: unknown | undefined;
|
|
1916
2150
|
}
|
|
1917
2151
|
/**
|
|
1918
2152
|
* CSS stylesheet asset
|
|
@@ -1926,7 +2160,7 @@ export interface CSSAsset {
|
|
|
1926
2160
|
* CSS media query context (e.g., 'screen', 'print')
|
|
1927
2161
|
*/
|
|
1928
2162
|
media?: string;
|
|
1929
|
-
[k: string]: unknown;
|
|
2163
|
+
[k: string]: unknown | undefined;
|
|
1930
2164
|
}
|
|
1931
2165
|
/**
|
|
1932
2166
|
* JavaScript code asset
|
|
@@ -1937,34 +2171,22 @@ export interface JavaScriptAsset {
|
|
|
1937
2171
|
*/
|
|
1938
2172
|
content: string;
|
|
1939
2173
|
module_type?: JavaScriptModuleType;
|
|
1940
|
-
[k: string]: unknown;
|
|
2174
|
+
[k: string]: unknown | undefined;
|
|
1941
2175
|
}
|
|
1942
2176
|
/**
|
|
1943
|
-
* 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.
|
|
1944
2178
|
*/
|
|
1945
2179
|
export interface PromotedOfferings {
|
|
1946
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;
|
|
1947
2185
|
product_selectors?: PromotedProducts;
|
|
1948
2186
|
/**
|
|
1949
|
-
*
|
|
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.
|
|
1950
2188
|
*/
|
|
1951
|
-
offerings?:
|
|
1952
|
-
/**
|
|
1953
|
-
* Offering name (e.g., 'Winter Sale', 'New Product Launch')
|
|
1954
|
-
*/
|
|
1955
|
-
name: string;
|
|
1956
|
-
/**
|
|
1957
|
-
* Description of what's being offered
|
|
1958
|
-
*/
|
|
1959
|
-
description?: string;
|
|
1960
|
-
/**
|
|
1961
|
-
* Assets specific to this offering
|
|
1962
|
-
*/
|
|
1963
|
-
assets?: {
|
|
1964
|
-
[k: string]: unknown;
|
|
1965
|
-
}[];
|
|
1966
|
-
[k: string]: unknown;
|
|
1967
|
-
}[];
|
|
2189
|
+
offerings?: Offering[];
|
|
1968
2190
|
/**
|
|
1969
2191
|
* Selectors to choose specific assets from the brand manifest
|
|
1970
2192
|
*/
|
|
@@ -1981,9 +2203,9 @@ export interface PromotedOfferings {
|
|
|
1981
2203
|
* Exclude assets with these tags
|
|
1982
2204
|
*/
|
|
1983
2205
|
exclude_tags?: string[];
|
|
1984
|
-
[k: string]: unknown;
|
|
2206
|
+
[k: string]: unknown | undefined;
|
|
1985
2207
|
};
|
|
1986
|
-
[k: string]: unknown;
|
|
2208
|
+
[k: string]: unknown | undefined;
|
|
1987
2209
|
}
|
|
1988
2210
|
/**
|
|
1989
2211
|
* Inline brand manifest object
|
|
@@ -2005,10 +2227,67 @@ export interface PromotedProducts {
|
|
|
2005
2227
|
* Natural language query to select products from the brand manifest (e.g., 'all Kraft Heinz pasta sauces', 'organic products under $20')
|
|
2006
2228
|
*/
|
|
2007
2229
|
manifest_query?: string;
|
|
2008
|
-
[k: string]: unknown;
|
|
2230
|
+
[k: string]: unknown | undefined;
|
|
2231
|
+
}
|
|
2232
|
+
/**
|
|
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).
|
|
2234
|
+
*/
|
|
2235
|
+
export interface Offering {
|
|
2236
|
+
/**
|
|
2237
|
+
* Unique identifier for this offering. Used by hosts to reference specific offerings in si_get_offering calls.
|
|
2238
|
+
*/
|
|
2239
|
+
offering_id: string;
|
|
2240
|
+
/**
|
|
2241
|
+
* Human-readable offering name (e.g., 'Winter Sale', 'Free Trial', 'Enterprise Platform')
|
|
2242
|
+
*/
|
|
2243
|
+
name: string;
|
|
2244
|
+
/**
|
|
2245
|
+
* Description of what's being offered
|
|
2246
|
+
*/
|
|
2247
|
+
description?: string;
|
|
2248
|
+
/**
|
|
2249
|
+
* Short promotional tagline for the offering
|
|
2250
|
+
*/
|
|
2251
|
+
tagline?: string;
|
|
2252
|
+
/**
|
|
2253
|
+
* When the offering becomes available. If not specified, offering is immediately available.
|
|
2254
|
+
*/
|
|
2255
|
+
valid_from?: string;
|
|
2256
|
+
/**
|
|
2257
|
+
* When the offering expires. If not specified, offering has no expiration.
|
|
2258
|
+
*/
|
|
2259
|
+
valid_to?: string;
|
|
2260
|
+
/**
|
|
2261
|
+
* URL for checkout/purchase flow when the brand doesn't support agentic checkout.
|
|
2262
|
+
*/
|
|
2263
|
+
checkout_url?: string;
|
|
2264
|
+
/**
|
|
2265
|
+
* Landing page URL for this offering.
|
|
2266
|
+
*/
|
|
2267
|
+
landing_url?: string;
|
|
2268
|
+
/**
|
|
2269
|
+
* Assets specific to this offering (images, videos, copy)
|
|
2270
|
+
*/
|
|
2271
|
+
assets?: {
|
|
2272
|
+
[k: string]: unknown | undefined;
|
|
2273
|
+
}[];
|
|
2274
|
+
/**
|
|
2275
|
+
* Reference to a creative portfolio for this offering. Portfolios contain organized creative assets across formats, enabling consistent ad delivery for this specific offering.
|
|
2276
|
+
*/
|
|
2277
|
+
portfolio_ref?: string;
|
|
2278
|
+
/**
|
|
2279
|
+
* Keywords for matching this offering to user intent. Hosts use these for retrieval/relevance scoring.
|
|
2280
|
+
*/
|
|
2281
|
+
keywords?: string[];
|
|
2282
|
+
/**
|
|
2283
|
+
* Categories this offering belongs to (e.g., 'measurement', 'identity', 'programmatic')
|
|
2284
|
+
*/
|
|
2285
|
+
categories?: string[];
|
|
2286
|
+
ext?: ExtensionObject;
|
|
2287
|
+
[k: string]: unknown | undefined;
|
|
2009
2288
|
}
|
|
2010
2289
|
/**
|
|
2011
|
-
*
|
|
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.
|
|
2012
2291
|
*/
|
|
2013
2292
|
export interface URLAsset {
|
|
2014
2293
|
/**
|
|
@@ -2020,10 +2299,48 @@ export interface URLAsset {
|
|
|
2020
2299
|
* Description of what this URL points to
|
|
2021
2300
|
*/
|
|
2022
2301
|
description?: string;
|
|
2023
|
-
[k: string]: unknown;
|
|
2302
|
+
[k: string]: unknown | undefined;
|
|
2024
2303
|
}
|
|
2025
2304
|
/**
|
|
2026
|
-
*
|
|
2305
|
+
* Optional webhook configuration for automated reporting delivery
|
|
2306
|
+
*/
|
|
2307
|
+
export interface ReportingWebhook {
|
|
2308
|
+
/**
|
|
2309
|
+
* Webhook endpoint URL for reporting notifications
|
|
2310
|
+
*/
|
|
2311
|
+
url: string;
|
|
2312
|
+
/**
|
|
2313
|
+
* Optional client-provided token for webhook validation. Echoed back in webhook payload to validate request authenticity.
|
|
2314
|
+
*/
|
|
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.
|
|
2027
2344
|
*/
|
|
2028
2345
|
/**
|
|
2029
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.
|
|
@@ -2099,34 +2416,14 @@ export interface Package {
|
|
|
2099
2416
|
*/
|
|
2100
2417
|
paused?: boolean;
|
|
2101
2418
|
ext?: ExtensionObject;
|
|
2102
|
-
[k: string]: unknown;
|
|
2419
|
+
[k: string]: unknown | undefined;
|
|
2103
2420
|
}
|
|
2104
2421
|
/**
|
|
2105
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).
|
|
2106
2423
|
*/
|
|
2107
|
-
export interface
|
|
2424
|
+
export interface CreateMediaBuyError {
|
|
2108
2425
|
/**
|
|
2109
|
-
*
|
|
2110
|
-
*/
|
|
2111
|
-
creative_id: string;
|
|
2112
|
-
/**
|
|
2113
|
-
* Delivery weight for this creative
|
|
2114
|
-
*/
|
|
2115
|
-
weight?: number;
|
|
2116
|
-
/**
|
|
2117
|
-
* 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.
|
|
2118
|
-
*
|
|
2119
|
-
* @minItems 1
|
|
2120
|
-
*/
|
|
2121
|
-
placement_ids?: [string, ...string[]];
|
|
2122
|
-
[k: string]: unknown;
|
|
2123
|
-
}
|
|
2124
|
-
/**
|
|
2125
|
-
* 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.
|
|
2126
|
-
*/
|
|
2127
|
-
export interface CreateMediaBuyError {
|
|
2128
|
-
/**
|
|
2129
|
-
* Array of errors explaining why the operation failed
|
|
2426
|
+
* Array of errors explaining why the operation failed
|
|
2130
2427
|
*/
|
|
2131
2428
|
errors: Error[];
|
|
2132
2429
|
context?: ContextObject;
|
|
@@ -2295,17 +2592,9 @@ export interface SyncCreativesError {
|
|
|
2295
2592
|
/**
|
|
2296
2593
|
* Standard error structure for task-specific errors and warnings
|
|
2297
2594
|
*/
|
|
2298
|
-
/**
|
|
2299
|
-
* Filter by creative approval status
|
|
2300
|
-
*/
|
|
2301
|
-
export type CreativeStatus = 'processing' | 'approved' | 'rejected' | 'pending_review';
|
|
2302
2595
|
/**
|
|
2303
2596
|
* Status of a creative asset
|
|
2304
2597
|
*/
|
|
2305
|
-
export type CreativeStatus1 = 'processing' | 'approved' | 'rejected' | 'pending_review';
|
|
2306
|
-
/**
|
|
2307
|
-
* Field to sort by
|
|
2308
|
-
*/
|
|
2309
2598
|
export type CreativeSortField = 'created_date' | 'updated_date' | 'name' | 'status' | 'assignment_count' | 'performance_score';
|
|
2310
2599
|
/**
|
|
2311
2600
|
* Sort direction
|
|
@@ -2356,22 +2645,17 @@ export interface ListCreativesRequest {
|
|
|
2356
2645
|
ext?: ExtensionObject;
|
|
2357
2646
|
}
|
|
2358
2647
|
/**
|
|
2359
|
-
* 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.
|
|
2360
2649
|
*/
|
|
2361
2650
|
export interface CreativeFilters {
|
|
2362
2651
|
/**
|
|
2363
|
-
* Filter by creative format
|
|
2364
|
-
*/
|
|
2365
|
-
format?: string;
|
|
2366
|
-
/**
|
|
2367
|
-
* Filter by multiple creative format types
|
|
2652
|
+
* Filter by creative format types (e.g., video, audio, display)
|
|
2368
2653
|
*/
|
|
2369
2654
|
formats?: string[];
|
|
2370
|
-
status?: CreativeStatus;
|
|
2371
2655
|
/**
|
|
2372
|
-
* Filter by
|
|
2656
|
+
* Filter by creative approval statuses
|
|
2373
2657
|
*/
|
|
2374
|
-
statuses?:
|
|
2658
|
+
statuses?: CreativeStatus[];
|
|
2375
2659
|
/**
|
|
2376
2660
|
* Filter by creative tags (all tags must match)
|
|
2377
2661
|
*/
|
|
@@ -2406,10 +2690,6 @@ export interface CreativeFilters {
|
|
|
2406
2690
|
* Filter creatives last updated before this date (ISO 8601)
|
|
2407
2691
|
*/
|
|
2408
2692
|
updated_before?: string;
|
|
2409
|
-
/**
|
|
2410
|
-
* Filter creatives assigned to this specific package
|
|
2411
|
-
*/
|
|
2412
|
-
assigned_to_package?: string;
|
|
2413
2693
|
/**
|
|
2414
2694
|
* Filter creatives assigned to any of these packages
|
|
2415
2695
|
*/
|
|
@@ -2430,7 +2710,7 @@ export interface CreativeFilters {
|
|
|
2430
2710
|
* Filter creatives that have performance data when true
|
|
2431
2711
|
*/
|
|
2432
2712
|
has_performance_data?: boolean;
|
|
2433
|
-
[k: string]: unknown;
|
|
2713
|
+
[k: string]: unknown | undefined;
|
|
2434
2714
|
}
|
|
2435
2715
|
/**
|
|
2436
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.
|
|
@@ -2455,7 +2735,7 @@ export type SubAsset = {
|
|
|
2455
2735
|
* URL for media assets (images, videos, etc.)
|
|
2456
2736
|
*/
|
|
2457
2737
|
content_uri: string;
|
|
2458
|
-
[k: string]: unknown;
|
|
2738
|
+
[k: string]: unknown | undefined;
|
|
2459
2739
|
} | {
|
|
2460
2740
|
/**
|
|
2461
2741
|
* Discriminator indicating this is a text asset with content
|
|
@@ -2473,7 +2753,7 @@ export type SubAsset = {
|
|
|
2473
2753
|
* Text content for text-based assets like headlines, body text, CTA text, etc.
|
|
2474
2754
|
*/
|
|
2475
2755
|
content: string | string[];
|
|
2476
|
-
[k: string]: unknown;
|
|
2756
|
+
[k: string]: unknown | undefined;
|
|
2477
2757
|
};
|
|
2478
2758
|
/**
|
|
2479
2759
|
* Response from creative library query with filtered results, metadata, and optional enriched data
|
|
@@ -2581,17 +2861,13 @@ export interface ListCreativesResponse {
|
|
|
2581
2861
|
*/
|
|
2582
2862
|
package_id: string;
|
|
2583
2863
|
/**
|
|
2584
|
-
*
|
|
2864
|
+
* Buyer's reference identifier for this package
|
|
2585
2865
|
*/
|
|
2586
|
-
|
|
2866
|
+
buyer_ref?: string;
|
|
2587
2867
|
/**
|
|
2588
2868
|
* When this assignment was created
|
|
2589
2869
|
*/
|
|
2590
2870
|
assigned_date: string;
|
|
2591
|
-
/**
|
|
2592
|
-
* Status of this specific assignment
|
|
2593
|
-
*/
|
|
2594
|
-
status: 'active' | 'paused' | 'ended';
|
|
2595
2871
|
}[];
|
|
2596
2872
|
};
|
|
2597
2873
|
/**
|
|
@@ -2644,6 +2920,10 @@ export interface ListCreativesResponse {
|
|
|
2644
2920
|
* Breakdown of creatives by status
|
|
2645
2921
|
*/
|
|
2646
2922
|
status_summary?: {
|
|
2923
|
+
/**
|
|
2924
|
+
* Number of creatives being processed
|
|
2925
|
+
*/
|
|
2926
|
+
processing?: number;
|
|
2647
2927
|
/**
|
|
2648
2928
|
* Number of approved creatives
|
|
2649
2929
|
*/
|
|
@@ -2670,11 +2950,7 @@ export interface ListCreativesResponse {
|
|
|
2670
2950
|
/**
|
|
2671
2951
|
* Request parameters for updating campaign and package settings
|
|
2672
2952
|
*/
|
|
2673
|
-
export type UpdateMediaBuyRequest =
|
|
2674
|
-
/**
|
|
2675
|
-
* Campaign start timing: 'asap' or ISO 8601 date-time
|
|
2676
|
-
*/
|
|
2677
|
-
export interface UpdateMediaBuyRequest1 {
|
|
2953
|
+
export type UpdateMediaBuyRequest = {
|
|
2678
2954
|
/**
|
|
2679
2955
|
* Publisher's ID of the media buy to update
|
|
2680
2956
|
*/
|
|
@@ -2695,17 +2971,61 @@ export interface UpdateMediaBuyRequest1 {
|
|
|
2695
2971
|
/**
|
|
2696
2972
|
* Package-specific updates
|
|
2697
2973
|
*/
|
|
2698
|
-
packages?:
|
|
2699
|
-
|
|
2700
|
-
} | {
|
|
2701
|
-
[k: string]: unknown;
|
|
2702
|
-
})[];
|
|
2974
|
+
packages?: PackageUpdate[];
|
|
2975
|
+
reporting_webhook?: ReportingWebhook;
|
|
2703
2976
|
push_notification_config?: PushNotificationConfig;
|
|
2704
2977
|
context?: ContextObject;
|
|
2705
2978
|
ext?: ExtensionObject;
|
|
2706
|
-
}
|
|
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
|
+
};
|
|
2707
3027
|
/**
|
|
2708
|
-
*
|
|
3028
|
+
* Budget pacing strategy
|
|
2709
3029
|
*/
|
|
2710
3030
|
/**
|
|
2711
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.
|
|
@@ -3071,63 +3391,11 @@ export interface DeliveryMetrics {
|
|
|
3071
3391
|
* Number of screens used at this venue
|
|
3072
3392
|
*/
|
|
3073
3393
|
screens_used?: number;
|
|
3074
|
-
[k: string]: unknown;
|
|
3394
|
+
[k: string]: unknown | undefined;
|
|
3075
3395
|
}[];
|
|
3076
|
-
[k: string]: unknown;
|
|
3396
|
+
[k: string]: unknown | undefined;
|
|
3077
3397
|
};
|
|
3078
|
-
[k: string]: unknown;
|
|
3079
|
-
}
|
|
3080
|
-
/**
|
|
3081
|
-
* Standard error structure for task-specific errors and warnings
|
|
3082
|
-
*/
|
|
3083
|
-
/**
|
|
3084
|
-
* Request parameters for discovering which publishers this agent is authorized to represent
|
|
3085
|
-
*/
|
|
3086
|
-
export interface ListAuthorizedPropertiesRequest {
|
|
3087
|
-
/**
|
|
3088
|
-
* Filter to specific publisher domains (optional). If omitted, returns all publishers this agent represents.
|
|
3089
|
-
*/
|
|
3090
|
-
publisher_domains?: string[];
|
|
3091
|
-
context?: ContextObject;
|
|
3092
|
-
ext?: ExtensionObject;
|
|
3093
|
-
}
|
|
3094
|
-
/**
|
|
3095
|
-
* 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.
|
|
3096
|
-
*/
|
|
3097
|
-
/**
|
|
3098
|
-
* Standard advertising channels supported by AdCP
|
|
3099
|
-
*/
|
|
3100
|
-
export interface ListAuthorizedPropertiesResponse {
|
|
3101
|
-
/**
|
|
3102
|
-
* 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.
|
|
3103
|
-
*/
|
|
3104
|
-
publisher_domains: string[];
|
|
3105
|
-
/**
|
|
3106
|
-
* Primary advertising channels represented in this property portfolio. Helps buying agents quickly filter relevance.
|
|
3107
|
-
*/
|
|
3108
|
-
primary_channels?: AdvertisingChannels[];
|
|
3109
|
-
/**
|
|
3110
|
-
* Primary countries (ISO 3166-1 alpha-2 codes) where properties are concentrated. Helps buying agents quickly filter relevance.
|
|
3111
|
-
*/
|
|
3112
|
-
primary_countries?: string[];
|
|
3113
|
-
/**
|
|
3114
|
-
* Markdown-formatted description of the property portfolio, including inventory types, audience characteristics, and special features.
|
|
3115
|
-
*/
|
|
3116
|
-
portfolio_description?: string;
|
|
3117
|
-
/**
|
|
3118
|
-
* 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.
|
|
3119
|
-
*/
|
|
3120
|
-
advertising_policies?: string;
|
|
3121
|
-
/**
|
|
3122
|
-
* 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.
|
|
3123
|
-
*/
|
|
3124
|
-
last_updated?: string;
|
|
3125
|
-
/**
|
|
3126
|
-
* Task-specific errors and warnings (e.g., property availability issues)
|
|
3127
|
-
*/
|
|
3128
|
-
errors?: Error[];
|
|
3129
|
-
context?: ContextObject;
|
|
3130
|
-
ext?: ExtensionObject;
|
|
3398
|
+
[k: string]: unknown | undefined;
|
|
3131
3399
|
}
|
|
3132
3400
|
/**
|
|
3133
3401
|
* Standard error structure for task-specific errors and warnings
|
|
@@ -3135,16 +3403,7 @@ export interface ListAuthorizedPropertiesResponse {
|
|
|
3135
3403
|
/**
|
|
3136
3404
|
* Request payload for provide_performance_feedback task
|
|
3137
3405
|
*/
|
|
3138
|
-
export type ProvidePerformanceFeedbackRequest =
|
|
3139
|
-
/**
|
|
3140
|
-
* The business metric being measured
|
|
3141
|
-
*/
|
|
3142
|
-
export type MetricType = 'overall_performance' | 'conversion_rate' | 'brand_lift' | 'click_through_rate' | 'completion_rate' | 'viewability' | 'brand_safety' | 'cost_efficiency';
|
|
3143
|
-
/**
|
|
3144
|
-
* Source of the performance data
|
|
3145
|
-
*/
|
|
3146
|
-
export type FeedbackSource = 'buyer_attribution' | 'third_party_measurement' | 'platform_analytics' | 'verification_partner';
|
|
3147
|
-
export interface ProvidePerformanceFeedbackRequest1 {
|
|
3406
|
+
export type ProvidePerformanceFeedbackRequest = {
|
|
3148
3407
|
/**
|
|
3149
3408
|
* Publisher's media buy identifier
|
|
3150
3409
|
*/
|
|
@@ -3182,7 +3441,17 @@ export interface ProvidePerformanceFeedbackRequest1 {
|
|
|
3182
3441
|
feedback_source?: FeedbackSource;
|
|
3183
3442
|
context?: ContextObject;
|
|
3184
3443
|
ext?: ExtensionObject;
|
|
3185
|
-
}
|
|
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';
|
|
3186
3455
|
/**
|
|
3187
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.
|
|
3188
3457
|
*/
|
|
@@ -3255,10 +3524,10 @@ export interface CreativeManifest {
|
|
|
3255
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.
|
|
3256
3525
|
*/
|
|
3257
3526
|
assets: {
|
|
3258
|
-
[k: string]: unknown;
|
|
3527
|
+
[k: string]: unknown | undefined;
|
|
3259
3528
|
};
|
|
3260
3529
|
ext?: ExtensionObject;
|
|
3261
|
-
[k: string]: unknown;
|
|
3530
|
+
[k: string]: unknown | undefined;
|
|
3262
3531
|
}
|
|
3263
3532
|
/**
|
|
3264
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'}).
|
|
@@ -3296,7 +3565,7 @@ export interface WebhookAsset {
|
|
|
3296
3565
|
*/
|
|
3297
3566
|
api_key_header?: string;
|
|
3298
3567
|
};
|
|
3299
|
-
[k: string]: unknown;
|
|
3568
|
+
[k: string]: unknown | undefined;
|
|
3300
3569
|
}
|
|
3301
3570
|
/**
|
|
3302
3571
|
* CSS stylesheet asset
|
|
@@ -3349,7 +3618,7 @@ export type PreviewCreativeRequest = {
|
|
|
3349
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.
|
|
3350
3619
|
*/
|
|
3351
3620
|
macros?: {
|
|
3352
|
-
[k: string]: string;
|
|
3621
|
+
[k: string]: string | undefined;
|
|
3353
3622
|
};
|
|
3354
3623
|
/**
|
|
3355
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')
|
|
@@ -3388,7 +3657,7 @@ export type PreviewCreativeRequest = {
|
|
|
3388
3657
|
* Macro values to use for this preview
|
|
3389
3658
|
*/
|
|
3390
3659
|
macros?: {
|
|
3391
|
-
[k: string]: string;
|
|
3660
|
+
[k: string]: string | undefined;
|
|
3392
3661
|
};
|
|
3393
3662
|
/**
|
|
3394
3663
|
* Natural language description of the context for AI-generated content
|
|
@@ -3432,10 +3701,10 @@ export interface CreativeManifest1 {
|
|
|
3432
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.
|
|
3433
3702
|
*/
|
|
3434
3703
|
assets: {
|
|
3435
|
-
[k: string]: unknown;
|
|
3704
|
+
[k: string]: unknown | undefined;
|
|
3436
3705
|
};
|
|
3437
3706
|
ext?: ExtensionObject;
|
|
3438
|
-
[k: string]: unknown;
|
|
3707
|
+
[k: string]: unknown | undefined;
|
|
3439
3708
|
}
|
|
3440
3709
|
/**
|
|
3441
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.
|
|
@@ -3489,7 +3758,7 @@ export type PreviewRender = {
|
|
|
3489
3758
|
*/
|
|
3490
3759
|
csp_policy?: string;
|
|
3491
3760
|
};
|
|
3492
|
-
[k: string]: unknown;
|
|
3761
|
+
[k: string]: unknown | undefined;
|
|
3493
3762
|
} | {
|
|
3494
3763
|
/**
|
|
3495
3764
|
* Unique identifier for this rendered piece within the variant
|
|
@@ -3535,7 +3804,7 @@ export type PreviewRender = {
|
|
|
3535
3804
|
*/
|
|
3536
3805
|
csp_policy?: string;
|
|
3537
3806
|
};
|
|
3538
|
-
[k: string]: unknown;
|
|
3807
|
+
[k: string]: unknown | undefined;
|
|
3539
3808
|
} | {
|
|
3540
3809
|
/**
|
|
3541
3810
|
* Unique identifier for this rendered piece within the variant
|
|
@@ -3585,7 +3854,7 @@ export type PreviewRender = {
|
|
|
3585
3854
|
*/
|
|
3586
3855
|
csp_policy?: string;
|
|
3587
3856
|
};
|
|
3588
|
-
[k: string]: unknown;
|
|
3857
|
+
[k: string]: unknown | undefined;
|
|
3589
3858
|
};
|
|
3590
3859
|
/**
|
|
3591
3860
|
* Single preview response - each preview URL returns an HTML page that can be embedded in an iframe
|
|
@@ -3619,7 +3888,7 @@ export interface PreviewCreativeSingleResponse {
|
|
|
3619
3888
|
* Macro values applied to this variant
|
|
3620
3889
|
*/
|
|
3621
3890
|
macros?: {
|
|
3622
|
-
[k: string]: string;
|
|
3891
|
+
[k: string]: string | undefined;
|
|
3623
3892
|
};
|
|
3624
3893
|
/**
|
|
3625
3894
|
* Context description applied to this variant
|
|
@@ -3675,7 +3944,7 @@ export type Destination = {
|
|
|
3675
3944
|
* Optional account identifier on the platform
|
|
3676
3945
|
*/
|
|
3677
3946
|
account?: string;
|
|
3678
|
-
[k: string]: unknown;
|
|
3947
|
+
[k: string]: unknown | undefined;
|
|
3679
3948
|
} | {
|
|
3680
3949
|
/**
|
|
3681
3950
|
* Discriminator indicating this is an agent URL-based deployment
|
|
@@ -3689,7 +3958,7 @@ export type Destination = {
|
|
|
3689
3958
|
* Optional account identifier on the agent
|
|
3690
3959
|
*/
|
|
3691
3960
|
account?: string;
|
|
3692
|
-
[k: string]: unknown;
|
|
3961
|
+
[k: string]: unknown | undefined;
|
|
3693
3962
|
};
|
|
3694
3963
|
/**
|
|
3695
3964
|
* Types of signal catalogs available for audience targeting
|
|
@@ -3744,7 +4013,7 @@ export interface SignalFilters {
|
|
|
3744
4013
|
* Minimum coverage requirement
|
|
3745
4014
|
*/
|
|
3746
4015
|
min_coverage_percentage?: number;
|
|
3747
|
-
[k: string]: unknown;
|
|
4016
|
+
[k: string]: unknown | undefined;
|
|
3748
4017
|
}
|
|
3749
4018
|
/**
|
|
3750
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.
|
|
@@ -3778,7 +4047,7 @@ export type Deployment = {
|
|
|
3778
4047
|
* Timestamp when activation completed (if is_live=true)
|
|
3779
4048
|
*/
|
|
3780
4049
|
deployed_at?: string;
|
|
3781
|
-
[k: string]: unknown;
|
|
4050
|
+
[k: string]: unknown | undefined;
|
|
3782
4051
|
} | {
|
|
3783
4052
|
/**
|
|
3784
4053
|
* Discriminator indicating this is an agent URL-based deployment
|
|
@@ -3805,7 +4074,7 @@ export type Deployment = {
|
|
|
3805
4074
|
* Timestamp when activation completed (if is_live=true)
|
|
3806
4075
|
*/
|
|
3807
4076
|
deployed_at?: string;
|
|
3808
|
-
[k: string]: unknown;
|
|
4077
|
+
[k: string]: unknown | undefined;
|
|
3809
4078
|
};
|
|
3810
4079
|
/**
|
|
3811
4080
|
* The key to use for targeting. Only present if is_live=true AND requester has access to this deployment.
|
|
@@ -3819,7 +4088,7 @@ export type ActivationKey = {
|
|
|
3819
4088
|
* The platform-specific segment identifier to use in campaign targeting
|
|
3820
4089
|
*/
|
|
3821
4090
|
segment_id: string;
|
|
3822
|
-
[k: string]: unknown;
|
|
4091
|
+
[k: string]: unknown | undefined;
|
|
3823
4092
|
} | {
|
|
3824
4093
|
/**
|
|
3825
4094
|
* Key-value pair based targeting
|
|
@@ -3833,7 +4102,7 @@ export type ActivationKey = {
|
|
|
3833
4102
|
* The targeting parameter value
|
|
3834
4103
|
*/
|
|
3835
4104
|
value: string;
|
|
3836
|
-
[k: string]: unknown;
|
|
4105
|
+
[k: string]: unknown | undefined;
|
|
3837
4106
|
};
|
|
3838
4107
|
/**
|
|
3839
4108
|
* The key to use for targeting. Only present if is_live=true AND requester has access to this deployment.
|
|
@@ -3847,7 +4116,7 @@ export type ActivationKey1 = {
|
|
|
3847
4116
|
* The platform-specific segment identifier to use in campaign targeting
|
|
3848
4117
|
*/
|
|
3849
4118
|
segment_id: string;
|
|
3850
|
-
[k: string]: unknown;
|
|
4119
|
+
[k: string]: unknown | undefined;
|
|
3851
4120
|
} | {
|
|
3852
4121
|
/**
|
|
3853
4122
|
* Key-value pair based targeting
|
|
@@ -3861,7 +4130,7 @@ export type ActivationKey1 = {
|
|
|
3861
4130
|
* The targeting parameter value
|
|
3862
4131
|
*/
|
|
3863
4132
|
value: string;
|
|
3864
|
-
[k: string]: unknown;
|
|
4133
|
+
[k: string]: unknown | undefined;
|
|
3865
4134
|
};
|
|
3866
4135
|
/**
|
|
3867
4136
|
* Response payload for get_signals task
|
|
@@ -3967,4 +4236,2356 @@ export interface ActivateSignalError {
|
|
|
3967
4236
|
/**
|
|
3968
4237
|
* Standard error structure for task-specific errors and warnings
|
|
3969
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
|
+
*/
|
|
3970
6591
|
//# sourceMappingURL=tools.generated.d.ts.map
|