@adcp/client 3.16.0 → 3.17.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.
Files changed (48) hide show
  1. package/dist/lib/adapters/property-list-adapter.js +2 -2
  2. package/dist/lib/adapters/property-list-adapter.js.map +1 -1
  3. package/dist/lib/adapters/proposal-manager.d.ts +3 -3
  4. package/dist/lib/adapters/proposal-manager.d.ts.map +1 -1
  5. package/dist/lib/adapters/proposal-manager.js.map +1 -1
  6. package/dist/lib/agents/index.generated.d.ts +9 -1
  7. package/dist/lib/agents/index.generated.d.ts.map +1 -1
  8. package/dist/lib/agents/index.generated.js +12 -0
  9. package/dist/lib/agents/index.generated.js.map +1 -1
  10. package/dist/lib/core/TaskExecutor.d.ts.map +1 -1
  11. package/dist/lib/core/TaskExecutor.js +3 -2
  12. package/dist/lib/core/TaskExecutor.js.map +1 -1
  13. package/dist/lib/index.d.ts +3 -1
  14. package/dist/lib/index.d.ts.map +1 -1
  15. package/dist/lib/index.js +6 -4
  16. package/dist/lib/index.js.map +1 -1
  17. package/dist/lib/testing/client.d.ts +6 -0
  18. package/dist/lib/testing/client.d.ts.map +1 -1
  19. package/dist/lib/testing/client.js +13 -5
  20. package/dist/lib/testing/client.js.map +1 -1
  21. package/dist/lib/testing/scenarios/index.d.ts +1 -1
  22. package/dist/lib/testing/scenarios/index.d.ts.map +1 -1
  23. package/dist/lib/testing/scenarios/index.js +2 -1
  24. package/dist/lib/testing/scenarios/index.js.map +1 -1
  25. package/dist/lib/testing/scenarios/media-buy.d.ts +8 -0
  26. package/dist/lib/testing/scenarios/media-buy.d.ts.map +1 -1
  27. package/dist/lib/testing/scenarios/media-buy.js +127 -12
  28. package/dist/lib/testing/scenarios/media-buy.js.map +1 -1
  29. package/dist/lib/testing/types.d.ts +6 -1
  30. package/dist/lib/testing/types.d.ts.map +1 -1
  31. package/dist/lib/types/compat.d.ts +60 -0
  32. package/dist/lib/types/compat.d.ts.map +1 -0
  33. package/dist/lib/types/compat.js +29 -0
  34. package/dist/lib/types/compat.js.map +1 -0
  35. package/dist/lib/types/core.generated.d.ts +29 -322
  36. package/dist/lib/types/core.generated.d.ts.map +1 -1
  37. package/dist/lib/types/core.generated.js +1 -1
  38. package/dist/lib/types/schemas.generated.d.ts +225 -1296
  39. package/dist/lib/types/schemas.generated.d.ts.map +1 -1
  40. package/dist/lib/types/schemas.generated.js +89 -106
  41. package/dist/lib/types/schemas.generated.js.map +1 -1
  42. package/dist/lib/types/tools.generated.d.ts +246 -339
  43. package/dist/lib/types/tools.generated.d.ts.map +1 -1
  44. package/dist/lib/utils/capabilities.d.ts +3 -1
  45. package/dist/lib/utils/capabilities.d.ts.map +1 -1
  46. package/dist/lib/utils/capabilities.js +4 -0
  47. package/dist/lib/utils/capabilities.js.map +1 -1
  48. package/package.json +6 -4
@@ -1,11 +1,7 @@
1
1
  /**
2
- * Brand information manifest providing brand context, assets, and product catalog. Can be provided inline or as a URL reference to a hosted manifest.
2
+ * Brand identifier within the house portfolio. Optional for single-brand domains.
3
3
  */
4
- export type BrandManifestReference = BrandManifest | string;
5
- /**
6
- * 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.
7
- */
8
- export type AssetContentType = 'image' | 'video' | 'audio' | 'text' | 'markdown' | 'html' | 'css' | 'javascript' | 'vast' | 'daast' | 'promoted_offerings' | 'url' | 'webhook';
4
+ export type BrandID = string;
9
5
  /**
10
6
  * Type of inventory delivery
11
7
  */
@@ -173,7 +169,7 @@ export interface GetProductsRequest {
173
169
  * Natural language description of campaign requirements.
174
170
  */
175
171
  brief?: string;
176
- brand_manifest?: BrandManifestReference;
172
+ brand?: BrandReference;
177
173
  product_selectors?: PromotedProducts;
178
174
  /**
179
175
  * Account ID for product lookup. Required when the seller declares account.required_for_products = true in capabilities. Returns products with pricing specific to this account's rate card.
@@ -186,318 +182,17 @@ export interface GetProductsRequest {
186
182
  ext?: ExtensionObject;
187
183
  }
188
184
  /**
189
- * Inline brand manifest object
185
+ * Brand reference for product discovery context. Resolved to full brand identity at execution time.
190
186
  */
191
- export interface BrandManifest {
192
- /**
193
- * Primary brand URL for context and asset discovery. Creative agents can infer brand information from this URL.
194
- */
195
- url?: string;
196
- /**
197
- * 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.
198
- */
199
- privacy_policy_url?: string;
200
- /**
201
- * Brand or business name
202
- */
203
- name: string;
204
- /**
205
- * Brand logo assets with structured fields for orientation, background compatibility, and variant type. Use the orientation, background, and variant enum fields for reliable filtering by creative agents.
206
- */
207
- logos?: {
208
- /**
209
- * URL to the logo asset
210
- */
211
- url: string;
212
- /**
213
- * Logo aspect ratio orientation. square: ~1:1, horizontal: wide, vertical: tall, stacked: vertically arranged elements
214
- */
215
- orientation?: 'square' | 'horizontal' | 'vertical' | 'stacked';
216
- /**
217
- * Background compatibility. dark-bg: use on dark backgrounds, light-bg: use on light backgrounds, transparent-bg: has transparent background
218
- */
219
- background?: 'dark-bg' | 'light-bg' | 'transparent-bg';
220
- /**
221
- * Logo variant type. primary: main logo, secondary: alternative, icon: symbol only, wordmark: text only, full-lockup: complete logo
222
- */
223
- variant?: 'primary' | 'secondary' | 'icon' | 'wordmark' | 'full-lockup';
224
- /**
225
- * Additional semantic tags for custom categorization beyond the standard orientation, background, and variant fields.
226
- */
227
- tags?: string[];
228
- /**
229
- * Human-readable description of when to use this logo variant (e.g., 'Primary logo for use on light backgrounds', 'Icon-only variant for small formats')
230
- */
231
- usage?: string;
232
- /**
233
- * Logo width in pixels
234
- */
235
- width?: number;
236
- /**
237
- * Logo height in pixels
238
- */
239
- height?: number;
240
- }[];
241
- /**
242
- * Brand color palette. Each role accepts a single hex color or an array of hex colors for brands with multiple values per role.
243
- */
244
- colors?: {
245
- /**
246
- * Primary brand color(s)
247
- */
248
- primary?: string | [string, ...string[]];
249
- /**
250
- * Secondary brand color(s)
251
- */
252
- secondary?: string | [string, ...string[]];
253
- /**
254
- * Accent color(s)
255
- */
256
- accent?: string | [string, ...string[]];
257
- /**
258
- * Background color(s)
259
- */
260
- background?: string | [string, ...string[]];
261
- /**
262
- * Text color(s)
263
- */
264
- text?: string | [string, ...string[]];
265
- };
266
- /**
267
- * Brand typography guidelines
268
- */
269
- fonts?: {
270
- /**
271
- * Primary font family name
272
- */
273
- primary?: string;
274
- /**
275
- * Secondary font family name
276
- */
277
- secondary?: string;
278
- /**
279
- * URLs to web font files if using custom fonts
280
- */
281
- font_urls?: string[];
282
- };
283
- /**
284
- * Brand voice and messaging tone guidelines for creative agents.
285
- */
286
- tone?: string | {
287
- /**
288
- * High-level voice descriptor (e.g., 'warm and inviting', 'professional and trustworthy')
289
- */
290
- voice?: string;
291
- /**
292
- * Personality traits that characterize the brand voice
293
- */
294
- attributes?: string[];
295
- /**
296
- * Specific guidance for copy generation - what TO do
297
- */
298
- dos?: string[];
299
- /**
300
- * Guardrails to avoid brand violations - what NOT to do
301
- */
302
- donts?: string[];
303
- };
304
- /**
305
- * Brand voice configuration for audio/conversational experiences
306
- */
307
- voice?: {
308
- /**
309
- * TTS provider (e.g., 'elevenlabs', 'openai', 'amazon_polly')
310
- */
311
- provider?: string;
312
- /**
313
- * Provider-specific voice identifier
314
- */
315
- voice_id?: string;
316
- /**
317
- * Provider-specific voice settings (speed, pitch, etc.)
318
- */
319
- settings?: {
320
- [k: string]: unknown | undefined;
321
- };
322
- };
323
- /**
324
- * Brand avatar configuration for visual conversational experiences
325
- */
326
- avatar?: {
327
- /**
328
- * Avatar provider (e.g., 'd-id', 'heygen', 'synthesia')
329
- */
330
- provider?: string;
331
- /**
332
- * Provider-specific avatar identifier
333
- */
334
- avatar_id?: string;
335
- /**
336
- * Provider-specific avatar settings
337
- */
338
- settings?: {
339
- [k: string]: unknown | undefined;
340
- };
341
- };
342
- /**
343
- * Brand tagline or slogan
344
- */
345
- tagline?: string;
346
- /**
347
- * Brand asset library with explicit assets and tags. Assets are referenced inline with URLs pointing to CDN-hosted files.
348
- */
349
- assets?: {
350
- /**
351
- * Unique identifier for this asset
352
- */
353
- asset_id: string;
354
- asset_type: AssetContentType;
355
- /**
356
- * URL to CDN-hosted asset file
357
- */
358
- url: string;
359
- /**
360
- * Tags for asset discovery (e.g., 'holiday', 'lifestyle', 'product_shot')
361
- */
362
- tags?: string[];
363
- /**
364
- * Human-readable asset name
365
- */
366
- name?: string;
367
- /**
368
- * Asset description or usage notes
369
- */
370
- description?: string;
371
- /**
372
- * Image/video width in pixels
373
- */
374
- width?: number;
375
- /**
376
- * Image/video height in pixels
377
- */
378
- height?: number;
379
- /**
380
- * Video/audio duration in seconds
381
- */
382
- duration_seconds?: number;
383
- /**
384
- * File size in bytes
385
- */
386
- file_size_bytes?: number;
387
- /**
388
- * File format (e.g., 'jpg', 'mp4', 'mp3')
389
- */
390
- format?: string;
391
- /**
392
- * Additional asset-specific metadata
393
- */
394
- metadata?: {
395
- [k: string]: unknown | undefined;
396
- };
397
- [k: string]: unknown | undefined;
398
- }[];
399
- /**
400
- * Product catalog information for e-commerce advertisers. Enables SKU-level creative generation and product selection.
401
- */
402
- product_catalog?: {
403
- /**
404
- * URL to product catalog feed
405
- */
406
- feed_url: string;
407
- /**
408
- * Format of the product feed. Use 'openai_product_feed' for feeds conforming to the OpenAI Commerce Product Feed specification.
409
- */
410
- feed_format?: 'google_merchant_center' | 'facebook_catalog' | 'openai_product_feed' | 'custom';
411
- /**
412
- * Product categories available in the catalog (for filtering)
413
- */
414
- categories?: string[];
415
- /**
416
- * When the product catalog was last updated
417
- */
418
- last_updated?: string;
419
- /**
420
- * How frequently the product catalog is updated
421
- */
422
- update_frequency?: 'realtime' | 'hourly' | 'daily' | 'weekly';
423
- /**
424
- * Agentic checkout endpoint configuration. Enables AI agents to complete purchases on behalf of users through a structured checkout API.
425
- */
426
- agentic_checkout?: {
427
- /**
428
- * Base URL for checkout session API (e.g., https://merchant.com/api/checkout_sessions)
429
- */
430
- endpoint: string;
431
- /**
432
- * Checkout API specification implemented by the endpoint
433
- */
434
- spec: 'openai_agentic_checkout_v1';
435
- /**
436
- * Payment providers supported by this checkout endpoint
437
- */
438
- supported_payment_providers?: string[];
439
- };
440
- [k: string]: unknown | undefined;
441
- };
442
- /**
443
- * Legal disclaimers or required text that must appear in creatives
444
- */
445
- disclaimers?: {
446
- /**
447
- * Disclaimer text
448
- */
449
- text: string;
450
- /**
451
- * When this disclaimer applies (e.g., 'financial_products', 'health_claims', 'all')
452
- */
453
- context?: string;
454
- /**
455
- * Whether this disclaimer must appear
456
- */
457
- required?: boolean;
458
- }[];
459
- /**
460
- * Industry or vertical (e.g., 'retail', 'automotive', 'finance', 'healthcare')
461
- */
462
- industry?: string;
463
- /**
464
- * Primary target audience description
465
- */
466
- target_audience?: string;
467
- /**
468
- * Brand contact information
469
- */
470
- contact?: {
471
- /**
472
- * Contact email
473
- */
474
- email?: string;
475
- /**
476
- * Contact phone number
477
- */
478
- phone?: string;
479
- };
187
+ export interface BrandReference {
480
188
  /**
481
- * Additional brand metadata
189
+ * Domain where /.well-known/brand.json is hosted, or the brand's operating domain
482
190
  */
483
- metadata?: {
484
- /**
485
- * When this brand manifest was created
486
- */
487
- created_date?: string;
488
- /**
489
- * When this brand manifest was last updated
490
- */
491
- updated_date?: string;
492
- /**
493
- * Brand card version number
494
- */
495
- version?: string;
496
- };
497
- [k: string]: unknown | undefined;
191
+ domain: string;
192
+ brand_id?: BrandID;
498
193
  }
499
194
  /**
500
- * Selectors to filter the brand manifest product catalog for product discovery. When provided, sellers should only return advertising products where the selected catalog items have matches. Uses the same selection methods as promoted-offerings.
195
+ * Selectors to filter the brand's product catalog for product discovery. When provided, sellers should only return advertising products where the selected catalog items have matches. Uses the same selection methods as promoted-offerings.
501
196
  */
502
197
  export interface PromotedProducts {
503
198
  /**
@@ -505,19 +200,19 @@ export interface PromotedProducts {
505
200
  */
506
201
  manifest_gtins?: string[];
507
202
  /**
508
- * Direct product SKU references from the brand manifest product catalog
203
+ * Direct product SKU references from the brand's product catalog
509
204
  */
510
205
  manifest_skus?: string[];
511
206
  /**
512
- * Select products by tags from the brand manifest product catalog (e.g., 'organic', 'sauces', 'holiday')
207
+ * Select products by tags from the brand's product catalog (e.g., 'organic', 'sauces', 'holiday')
513
208
  */
514
209
  manifest_tags?: string[];
515
210
  /**
516
- * Select products from a specific category in the brand manifest product catalog (e.g., 'beverages/soft-drinks', 'food/sauces')
211
+ * Select products from a specific category in the brand's product catalog (e.g., 'beverages/soft-drinks', 'food/sauces')
517
212
  */
518
213
  manifest_category?: string;
519
214
  /**
520
- * Natural language query to select products from the brand manifest (e.g., 'all Kraft Heinz pasta sauces', 'organic products under $20')
215
+ * Natural language query to select products from the brand's catalog (e.g., 'all pasta sauces', 'organic products under $20')
521
216
  */
522
217
  manifest_query?: string;
523
218
  [k: string]: unknown | undefined;
@@ -686,6 +381,10 @@ export interface MediaBuyFeatures {
686
381
  * Supports sync_event_sources and log_event tasks for conversion event tracking
687
382
  */
688
383
  conversion_tracking?: boolean;
384
+ /**
385
+ * Supports sync_audiences task and audience_include/audience_exclude in targeting overlays for first-party CRM audience management
386
+ */
387
+ audience_targeting?: boolean;
689
388
  [k: string]: boolean | undefined;
690
389
  }
691
390
  /**
@@ -1012,7 +711,7 @@ export interface Product {
1012
711
  [k: string]: unknown | undefined;
1013
712
  };
1014
713
  /**
1015
- * When the buyer provides a brand_manifest with product_catalog, indicates which of the buyer's catalog items are eligible for this product. Enables buyers to make informed product_selector choices in create_media_buy. Only present for products where catalog matching is relevant (e.g. sponsored product listings on retail media). Sellers SHOULD include at least one of matched_gtins or matched_skus.
714
+ * When the buyer provides a brand with product_catalog, indicates which of the buyer's catalog items are eligible for this product. Enables buyers to make informed product_selector choices in create_media_buy. Only present for products where catalog matching is relevant (e.g. sponsored product listings on retail media). Sellers SHOULD include at least one of matched_gtins or matched_skus.
1016
715
  */
1017
716
  catalog_match?: {
1018
717
  /**
@@ -2058,6 +1757,10 @@ export interface PaginationResponse {
2058
1757
  /**
2059
1758
  * Filter by format type (technical categories with distinct requirements)
2060
1759
  */
1760
+ export type AssetContentType = 'image' | 'video' | 'audio' | 'text' | 'markdown' | 'html' | 'css' | 'javascript' | 'vast' | 'daast' | 'promoted_offerings' | 'url' | 'webhook';
1761
+ /**
1762
+ * Filter to formats that meet at least this WCAG conformance level (A < AA < AAA)
1763
+ */
2061
1764
  export type WCAGLevel = 'A' | 'AA' | 'AAA';
2062
1765
  /**
2063
1766
  * Request parameters for discovering supported creative formats
@@ -2232,7 +1935,7 @@ export interface Format {
2232
1935
  */
2233
1936
  supported_macros?: (UniversalMacro | string)[];
2234
1937
  /**
2235
- * For generative formats: array of format IDs that this format can generate. When a format accepts inputs like brand_manifest and message, this specifies what concrete output formats can be produced (e.g., a generative banner format might output standard image banner formats).
1938
+ * For generative formats: array of format IDs that this format can generate. When a format accepts inputs like brand context and message, this specifies what concrete output formats can be produced (e.g., a generative banner format might output standard image banner formats).
2236
1939
  */
2237
1940
  output_format_ids?: FormatID1[];
2238
1941
  /**
@@ -2520,17 +2223,13 @@ export type DAASTTrackingEvent = 'start' | 'firstQuartile' | 'midpoint' | 'third
2520
2223
  */
2521
2224
  export type DAASTVersion1 = '1.0' | '1.1';
2522
2225
  /**
2523
- * Brand information manifest containing assets, themes, and guidelines. Can be provided inline or as a URL reference to a hosted manifest.
2226
+ * Brand identifier within the house portfolio. Optional for single-brand domains.
2524
2227
  */
2525
2228
  export type URLAssetType = 'clickthrough' | 'tracker_pixel' | 'tracker_script';
2526
2229
  /**
2527
2230
  * 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).
2528
2231
  */
2529
2232
  export type CreativeStatus = 'processing' | 'approved' | 'rejected' | 'pending_review' | 'archived';
2530
- /**
2531
- * 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.
2532
- */
2533
- export type BrandManifestReference1 = BrandManifest | string;
2534
2233
  /**
2535
2234
  * Campaign start timing: 'asap' or ISO 8601 date-time
2536
2235
  */
@@ -2572,7 +2271,7 @@ export interface CreateMediaBuyRequest {
2572
2271
  * 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.
2573
2272
  */
2574
2273
  packages?: PackageRequest[];
2575
- brand_manifest: BrandManifestReference1;
2274
+ brand: BrandReference1;
2576
2275
  /**
2577
2276
  * Purchase order number for tracking
2578
2277
  */
@@ -2858,6 +2557,18 @@ export interface TargetingOverlay {
2858
2557
  * AXE segment ID to exclude from targeting
2859
2558
  */
2860
2559
  axe_exclude_segment?: string;
2560
+ /**
2561
+ * Restrict delivery to members of these first-party CRM audiences. Only users present in the uploaded lists are eligible. References audience_id values from sync_audiences on the same seller account — audience IDs are not portable across sellers. Not for lookalike expansion — express that intent in the campaign brief. Seller must declare support in get_adcp_capabilities.
2562
+ *
2563
+ * @minItems 1
2564
+ */
2565
+ audience_include?: [string, ...string[]];
2566
+ /**
2567
+ * Suppress delivery to members of these first-party CRM audiences. Matched users are excluded regardless of other targeting. References audience_id values from sync_audiences on the same seller account — audience IDs are not portable across sellers. Seller must declare support in get_adcp_capabilities.
2568
+ *
2569
+ * @minItems 1
2570
+ */
2571
+ audience_exclude?: [string, ...string[]];
2861
2572
  frequency_cap?: FrequencyCap;
2862
2573
  property_list?: PropertyListReference;
2863
2574
  /**
@@ -3277,10 +2988,10 @@ export interface JavaScriptAsset {
3277
2988
  [k: string]: unknown | undefined;
3278
2989
  }
3279
2990
  /**
3280
- * 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.
2991
+ * Complete offering specification combining brand reference, 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.
3281
2992
  */
3282
2993
  export interface PromotedOfferings {
3283
- brand_manifest: BrandManifestReference;
2994
+ brand: BrandReference;
3284
2995
  /**
3285
2996
  * 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.
3286
2997
  */
@@ -3291,7 +3002,7 @@ export interface PromotedOfferings {
3291
3002
  */
3292
3003
  offerings?: Offering[];
3293
3004
  /**
3294
- * Selectors to choose specific assets from the brand manifest
3005
+ * Selectors to choose specific assets from the brand's asset library
3295
3006
  */
3296
3007
  asset_selectors?: {
3297
3008
  /**
@@ -3311,7 +3022,7 @@ export interface PromotedOfferings {
3311
3022
  [k: string]: unknown | undefined;
3312
3023
  }
3313
3024
  /**
3314
- * Inline brand manifest object
3025
+ * Brand reference. Resolved to full brand identity (logos, colors, tone, assets) at execution time for creative generation.
3315
3026
  */
3316
3027
  export interface Offering {
3317
3028
  /**
@@ -3382,6 +3093,16 @@ export interface URLAsset {
3382
3093
  description?: string;
3383
3094
  [k: string]: unknown | undefined;
3384
3095
  }
3096
+ /**
3097
+ * Brand reference for this media buy. Resolved to full brand identity at execution time from brand.json or the registry.
3098
+ */
3099
+ export interface BrandReference1 {
3100
+ /**
3101
+ * Domain where /.well-known/brand.json is hosted, or the brand's operating domain
3102
+ */
3103
+ domain: string;
3104
+ brand_id?: BrandID;
3105
+ }
3385
3106
  /**
3386
3107
  * Optional webhook configuration for automated reporting delivery
3387
3108
  */
@@ -5124,6 +4845,160 @@ export interface LogEventError {
5124
4845
  /**
5125
4846
  * Standard error structure for task-specific errors and warnings
5126
4847
  */
4848
+ /**
4849
+ * Hashed identifiers for a CRM audience member. All identifiers must be normalized before hashing: emails to lowercase+trim, phone numbers to E.164 format (e.g. +12065551234). At least one identifier is required. Providing multiple identifiers for the same person improves match rates. Composite identifiers (e.g. hashed first name + last name + zip for Google Customer Match) are not yet standardized — use the ext field for platform-specific extensions.
4850
+ */
4851
+ export type AudienceMember = {
4852
+ [k: string]: unknown | undefined;
4853
+ } & {
4854
+ /**
4855
+ * SHA-256 hash of lowercase, trimmed email address.
4856
+ */
4857
+ hashed_email?: string;
4858
+ /**
4859
+ * SHA-256 hash of E.164-formatted phone number (e.g. +12065551234).
4860
+ */
4861
+ hashed_phone?: string;
4862
+ /**
4863
+ * Universal ID values (MAIDs, RampID, UID2, etc.) for user matching.
4864
+ *
4865
+ * @minItems 1
4866
+ */
4867
+ uids?: [
4868
+ {
4869
+ type: UIDType;
4870
+ /**
4871
+ * Universal ID value
4872
+ */
4873
+ value: string;
4874
+ [k: string]: unknown | undefined;
4875
+ },
4876
+ ...{
4877
+ type: UIDType;
4878
+ /**
4879
+ * Universal ID value
4880
+ */
4881
+ value: string;
4882
+ [k: string]: unknown | undefined;
4883
+ }[]
4884
+ ];
4885
+ ext?: ExtensionObject;
4886
+ [k: string]: unknown | undefined;
4887
+ };
4888
+ /**
4889
+ * Universal ID type
4890
+ */
4891
+ export interface SyncAudiencesRequest {
4892
+ /**
4893
+ * Account to manage audiences for
4894
+ */
4895
+ account_id: string;
4896
+ /**
4897
+ * Audiences to sync (create or update). When omitted, the call is discovery-only and returns all existing audiences on the account without modification.
4898
+ */
4899
+ audiences?: {
4900
+ /**
4901
+ * Buyer's identifier for this audience. Used to reference the audience in targeting overlays.
4902
+ */
4903
+ audience_id: string;
4904
+ /**
4905
+ * Human-readable name for this audience
4906
+ */
4907
+ name?: string;
4908
+ /**
4909
+ * Members to add to this audience. Hashed before sending — normalize emails to lowercase+trim, phones to E.164.
4910
+ */
4911
+ add?: AudienceMember[];
4912
+ /**
4913
+ * Members to remove from this audience. If the same identifier appears in both add and remove in a single request, remove takes precedence.
4914
+ */
4915
+ remove?: AudienceMember[];
4916
+ /**
4917
+ * When true, delete this audience from the account entirely. All other fields on this audience object are ignored. Use this to delete a specific audience without affecting others.
4918
+ */
4919
+ delete?: boolean;
4920
+ /**
4921
+ * GDPR lawful basis for processing this audience list. Informational — not validated by the protocol, but required by some sellers operating in regulated markets (e.g. EU). When omitted, the buyer asserts they have a lawful basis appropriate to their jurisdiction.
4922
+ */
4923
+ consent_basis?: 'consent' | 'legitimate_interest' | 'contract' | 'legal_obligation';
4924
+ }[];
4925
+ /**
4926
+ * When true, buyer-managed audiences on the account not included in this sync will be removed. Does not affect seller-managed audiences. Do not combine with an omitted audiences array or all buyer-managed audiences will be deleted.
4927
+ */
4928
+ delete_missing?: boolean;
4929
+ context?: ContextObject;
4930
+ ext?: ExtensionObject;
4931
+ }
4932
+ /**
4933
+ * 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.
4934
+ */
4935
+ /**
4936
+ * Response from audience sync operation. Returns either per-audience results OR operation-level errors.
4937
+ */
4938
+ export type SyncAudiencesResponse = SyncAudiencesSuccess | SyncAudiencesError;
4939
+ /**
4940
+ * Success response - sync operation processed audiences
4941
+ */
4942
+ export interface SyncAudiencesSuccess {
4943
+ /**
4944
+ * Results for each audience on the account
4945
+ */
4946
+ audiences: {
4947
+ /**
4948
+ * Audience ID from the request (buyer's identifier)
4949
+ */
4950
+ audience_id: string;
4951
+ /**
4952
+ * Name of the audience
4953
+ */
4954
+ name?: string;
4955
+ /**
4956
+ * Seller-assigned identifier for this audience in their ad platform
4957
+ */
4958
+ seller_id?: string;
4959
+ /**
4960
+ * Action taken for this audience. 'status' is present when action is created, updated, or unchanged. 'status' is absent when action is deleted or failed.
4961
+ */
4962
+ action: 'created' | 'updated' | 'unchanged' | 'deleted' | 'failed';
4963
+ /**
4964
+ * Matching status. Present when action is created, updated, or unchanged; absent when action is deleted or failed. 'processing': platform is still matching members against its user base. 'ready': audience is available for targeting, matched_count is populated. 'too_small': matched audience is below the platform's minimum size — add more members and re-sync.
4965
+ */
4966
+ status?: 'processing' | 'ready' | 'too_small';
4967
+ /**
4968
+ * Number of members submitted in this sync operation (delta, not cumulative). In discovery-only calls (no audiences array), this is 0.
4969
+ */
4970
+ uploaded_count?: number;
4971
+ /**
4972
+ * Total members matched to platform users across all syncs (cumulative, not just this call). Populated when status is 'ready'.
4973
+ */
4974
+ matched_count?: number;
4975
+ /**
4976
+ * ISO 8601 timestamp of when the most recent sync operation was accepted by the platform. Useful for agents reasoning about audience freshness. Omitted if the seller does not track this.
4977
+ */
4978
+ last_synced_at?: string;
4979
+ /**
4980
+ * Minimum matched audience size required for targeting on this platform. Populated when status is 'too_small'. Helps agents know how many more members are needed.
4981
+ */
4982
+ minimum_size?: number;
4983
+ /**
4984
+ * Errors for this audience (only present when action='failed')
4985
+ */
4986
+ errors?: Error[];
4987
+ }[];
4988
+ context?: ContextObject;
4989
+ ext?: ExtensionObject;
4990
+ }
4991
+ /**
4992
+ * Standard error structure for task-specific errors and warnings
4993
+ */
4994
+ export interface SyncAudiencesError {
4995
+ /**
4996
+ * Operation-level errors that prevented processing
4997
+ */
4998
+ errors: Error[];
4999
+ context?: ContextObject;
5000
+ ext?: ExtensionObject;
5001
+ }
5127
5002
  /**
5128
5003
  * VAST (Video Ad Serving Template) tag for third-party video ad serving
5129
5004
  */
@@ -5150,7 +5025,7 @@ export interface BuildCreativeRequest {
5150
5025
  message?: string;
5151
5026
  creative_manifest?: CreativeManifest;
5152
5027
  target_format_id: FormatID1;
5153
- brand_manifest?: BrandManifestReference1;
5028
+ brand?: BrandReference1;
5154
5029
  creative_brief?: CreativeBriefReference;
5155
5030
  context?: ContextObject;
5156
5031
  ext?: ExtensionObject;
@@ -6096,7 +5971,7 @@ export interface DeliveryMetrics1 {
6096
5971
  [k: string]: unknown | undefined;
6097
5972
  }
6098
5973
  /**
6099
- * The rendered creative manifest for this variant — the actual output that was served, not the input assets. Contains format_id and the resolved assets (specific headline, image, video, etc. the platform selected or generated). For Tier 2, shows which asset combination was picked. For Tier 3, contains the generated assets which may differ entirely from the input brand manifest. Pass to preview_creative to re-render.
5974
+ * The rendered creative manifest for this variant — the actual output that was served, not the input assets. Contains format_id and the resolved assets (specific headline, image, video, etc. the platform selected or generated). For Tier 2, shows which asset combination was picked. For Tier 3, contains the generated assets which may differ entirely from the input brand identity. Pass to preview_creative to re-render.
6100
5975
  */
6101
5976
  export interface Identifier {
6102
5977
  type: PropertyIdentifierTypes;
@@ -6443,7 +6318,7 @@ export type BasePropertySource = PublisherTagsSource | PublisherPropertyIDsSourc
6443
6318
  */
6444
6319
  export type PropertyType = 'website' | 'mobile_app' | 'ctv_app' | 'desktop_app' | 'dooh' | 'podcast' | 'radio' | 'streaming_audio';
6445
6320
  /**
6446
- * 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.
6321
+ * Brand identifier within the house portfolio. Optional for single-brand domains.
6447
6322
  */
6448
6323
  export interface CreatePropertyListRequest {
6449
6324
  /**
@@ -6459,7 +6334,7 @@ export interface CreatePropertyListRequest {
6459
6334
  */
6460
6335
  base_properties?: BasePropertySource[];
6461
6336
  filters?: PropertyListFilters;
6462
- brand_manifest?: BrandManifest;
6337
+ brand?: BrandReference;
6463
6338
  context?: ContextObject;
6464
6339
  ext?: ExtensionObject;
6465
6340
  }
@@ -6579,7 +6454,7 @@ export interface FeatureRequirement {
6579
6454
  if_not_covered?: 'exclude' | 'include';
6580
6455
  }
6581
6456
  /**
6582
- * Brand identity and requirements. When provided, the agent automatically applies appropriate rules based on brand characteristics (industry, target_audience, etc.).
6457
+ * Brand reference. When provided, the agent automatically applies appropriate rules based on brand characteristics (industry, target_audience, etc.). Resolved at execution time.
6583
6458
  */
6584
6459
  /**
6585
6460
  * A source of properties for a property list. Supports three selection patterns: publisher with tags, publisher with property IDs, or direct identifiers.
@@ -6617,7 +6492,7 @@ export interface PropertyList {
6617
6492
  */
6618
6493
  base_properties?: BasePropertySource[];
6619
6494
  filters?: PropertyListFilters;
6620
- brand_manifest?: BrandManifest;
6495
+ brand?: BrandReference;
6621
6496
  /**
6622
6497
  * URL to receive notifications when the resolved list changes
6623
6498
  */
@@ -6663,7 +6538,7 @@ export interface UpdatePropertyListRequest {
6663
6538
  */
6664
6539
  base_properties?: BasePropertySource[];
6665
6540
  filters?: PropertyListFilters;
6666
- brand_manifest?: BrandManifest;
6541
+ brand?: BrandReference;
6667
6542
  /**
6668
6543
  * Update the webhook URL for list change notifications (set to empty string to remove)
6669
6544
  */
@@ -8738,6 +8613,38 @@ export interface GetAdCPCapabilitiesResponse {
8738
8613
  * Whether seller supports language targeting (ISO 639-1 codes)
8739
8614
  */
8740
8615
  language?: boolean;
8616
+ /**
8617
+ * Whether seller supports audience_include in targeting overlays (requires features.audience_targeting)
8618
+ */
8619
+ audience_include?: boolean;
8620
+ /**
8621
+ * Whether seller supports audience_exclude in targeting overlays (requires features.audience_targeting)
8622
+ */
8623
+ audience_exclude?: boolean;
8624
+ };
8625
+ };
8626
+ /**
8627
+ * Audience targeting capabilities. Only present when features.audience_targeting is true.
8628
+ */
8629
+ audience_targeting?: {
8630
+ /**
8631
+ * Hashed PII types accepted for audience matching. Buyers should only send identifiers the seller supports.
8632
+ */
8633
+ supported_identifier_types: ('hashed_email' | 'hashed_phone')[];
8634
+ /**
8635
+ * Universal ID types accepted for audience matching (MAIDs, RampID, UID2, etc.). MAID support varies significantly by platform — check this field before sending uids with type: maid.
8636
+ */
8637
+ supported_uid_types?: UIDType[];
8638
+ /**
8639
+ * Minimum matched audience size required for targeting. Audiences below this threshold will have status: too_small. Varies by platform (100–1000 is typical).
8640
+ */
8641
+ minimum_audience_size: number;
8642
+ /**
8643
+ * Expected matching latency range in hours after upload. Use to calibrate polling cadence and set appropriate expectations before configuring push_notification_config.
8644
+ */
8645
+ matching_latency_hours?: {
8646
+ min?: number;
8647
+ max?: number;
8741
8648
  };
8742
8649
  };
8743
8650
  /**
@@ -8891,9 +8798,9 @@ export interface GetAdCPCapabilitiesResponse {
8891
8798
  };
8892
8799
  capabilities: SICapabilities;
8893
8800
  /**
8894
- * URL to brand manifest with colors, fonts, logos, tone
8801
+ * URL to brand.json with colors, fonts, logos, tone
8895
8802
  */
8896
- brand_manifest_url?: string;
8803
+ brand_url?: string;
8897
8804
  };
8898
8805
  /**
8899
8806
  * Creative protocol capabilities. Only present if creative is in supported_protocols.