@adcp/client 4.8.0 → 4.10.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 +346 -0
- package/dist/lib/adapters/governance-adapter.d.ts +88 -0
- package/dist/lib/adapters/governance-adapter.d.ts.map +1 -0
- package/dist/lib/adapters/governance-adapter.js +96 -0
- package/dist/lib/adapters/governance-adapter.js.map +1 -0
- package/dist/lib/adapters/index.d.ts +1 -0
- package/dist/lib/adapters/index.d.ts.map +1 -1
- package/dist/lib/adapters/index.js +7 -1
- package/dist/lib/adapters/index.js.map +1 -1
- package/dist/lib/agents/index.generated.d.ts +33 -1
- package/dist/lib/agents/index.generated.d.ts.map +1 -1
- package/dist/lib/agents/index.generated.js +48 -0
- package/dist/lib/agents/index.generated.js.map +1 -1
- package/dist/lib/core/AgentClient.d.ts +92 -1
- package/dist/lib/core/AgentClient.d.ts.map +1 -1
- package/dist/lib/core/AgentClient.js +237 -0
- package/dist/lib/core/AgentClient.js.map +1 -1
- package/dist/lib/core/AsyncHandler.d.ts +19 -2
- package/dist/lib/core/AsyncHandler.d.ts.map +1 -1
- package/dist/lib/core/AsyncHandler.js.map +1 -1
- package/dist/lib/core/ConversationTypes.d.ts +8 -2
- package/dist/lib/core/ConversationTypes.d.ts.map +1 -1
- package/dist/lib/core/GovernanceMiddleware.d.ts +86 -0
- package/dist/lib/core/GovernanceMiddleware.d.ts.map +1 -0
- package/dist/lib/core/GovernanceMiddleware.js +289 -0
- package/dist/lib/core/GovernanceMiddleware.js.map +1 -0
- package/dist/lib/core/GovernanceTypes.d.ts +118 -0
- package/dist/lib/core/GovernanceTypes.d.ts.map +1 -0
- package/dist/lib/core/GovernanceTypes.js +69 -0
- package/dist/lib/core/GovernanceTypes.js.map +1 -0
- package/dist/lib/core/SingleAgentClient.d.ts +103 -1
- package/dist/lib/core/SingleAgentClient.d.ts.map +1 -1
- package/dist/lib/core/SingleAgentClient.js +151 -0
- package/dist/lib/core/SingleAgentClient.js.map +1 -1
- package/dist/lib/core/TaskExecutor.d.ts +10 -0
- package/dist/lib/core/TaskExecutor.d.ts.map +1 -1
- package/dist/lib/core/TaskExecutor.js +95 -10
- package/dist/lib/core/TaskExecutor.js.map +1 -1
- package/dist/lib/index.d.ts +6 -2
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +22 -4
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/observability/index.d.ts +8 -0
- package/dist/lib/observability/index.d.ts.map +1 -0
- package/dist/lib/observability/index.js +17 -0
- package/dist/lib/observability/index.js.map +1 -0
- package/dist/lib/observability/tracing.d.ts +42 -0
- package/dist/lib/observability/tracing.d.ts.map +1 -0
- package/dist/lib/observability/tracing.js +126 -0
- package/dist/lib/observability/tracing.js.map +1 -0
- package/dist/lib/protocols/a2a.d.ts.map +1 -1
- package/dist/lib/protocols/a2a.js +16 -1
- package/dist/lib/protocols/a2a.js.map +1 -1
- package/dist/lib/protocols/index.d.ts.map +1 -1
- package/dist/lib/protocols/index.js +37 -29
- package/dist/lib/protocols/index.js.map +1 -1
- package/dist/lib/protocols/mcp.d.ts.map +1 -1
- package/dist/lib/protocols/mcp.js +21 -1
- package/dist/lib/protocols/mcp.js.map +1 -1
- package/dist/lib/registry/types.generated.d.ts +754 -5
- package/dist/lib/registry/types.generated.d.ts.map +1 -1
- package/dist/lib/registry/types.generated.js +1 -1
- package/dist/lib/testing/agent-tester.d.ts +1 -1
- package/dist/lib/testing/agent-tester.d.ts.map +1 -1
- package/dist/lib/testing/agent-tester.js +36 -11
- package/dist/lib/testing/agent-tester.js.map +1 -1
- package/dist/lib/testing/client.d.ts +6 -1
- package/dist/lib/testing/client.d.ts.map +1 -1
- package/dist/lib/testing/client.js +36 -19
- package/dist/lib/testing/client.js.map +1 -1
- package/dist/lib/testing/compliance/briefs.d.ts +12 -0
- package/dist/lib/testing/compliance/briefs.d.ts.map +1 -0
- package/dist/lib/testing/compliance/briefs.js +157 -0
- package/dist/lib/testing/compliance/briefs.js.map +1 -0
- package/dist/lib/testing/compliance/comply.d.ts +26 -0
- package/dist/lib/testing/compliance/comply.d.ts.map +1 -0
- package/dist/lib/testing/compliance/comply.js +540 -0
- package/dist/lib/testing/compliance/comply.js.map +1 -0
- package/dist/lib/testing/compliance/convince.d.ts +27 -0
- package/dist/lib/testing/compliance/convince.d.ts.map +1 -0
- package/dist/lib/testing/compliance/convince.js +418 -0
- package/dist/lib/testing/compliance/convince.js.map +1 -0
- package/dist/lib/testing/compliance/index.d.ts +13 -0
- package/dist/lib/testing/compliance/index.d.ts.map +1 -0
- package/dist/lib/testing/compliance/index.js +22 -0
- package/dist/lib/testing/compliance/index.js.map +1 -0
- package/dist/lib/testing/compliance/types.d.ts +123 -0
- package/dist/lib/testing/compliance/types.d.ts.map +1 -0
- package/dist/lib/testing/compliance/types.js +9 -0
- package/dist/lib/testing/compliance/types.js.map +1 -0
- package/dist/lib/testing/index.d.ts +1 -0
- package/dist/lib/testing/index.d.ts.map +1 -1
- package/dist/lib/testing/index.js +15 -1
- package/dist/lib/testing/index.js.map +1 -1
- package/dist/lib/testing/orchestrator.d.ts +0 -2
- package/dist/lib/testing/orchestrator.d.ts.map +1 -1
- package/dist/lib/testing/orchestrator.js +14 -3
- package/dist/lib/testing/orchestrator.js.map +1 -1
- package/dist/lib/testing/scenarios/capabilities.d.ts.map +1 -1
- package/dist/lib/testing/scenarios/capabilities.js +70 -9
- package/dist/lib/testing/scenarios/capabilities.js.map +1 -1
- package/dist/lib/testing/scenarios/creative.d.ts +14 -0
- package/dist/lib/testing/scenarios/creative.d.ts.map +1 -1
- package/dist/lib/testing/scenarios/creative.js +261 -55
- package/dist/lib/testing/scenarios/creative.js.map +1 -1
- package/dist/lib/testing/scenarios/discovery.d.ts.map +1 -1
- package/dist/lib/testing/scenarios/discovery.js +7 -5
- package/dist/lib/testing/scenarios/discovery.js.map +1 -1
- package/dist/lib/testing/scenarios/edge-cases.d.ts.map +1 -1
- package/dist/lib/testing/scenarios/edge-cases.js +90 -112
- package/dist/lib/testing/scenarios/edge-cases.js.map +1 -1
- package/dist/lib/testing/scenarios/governance.d.ts +48 -0
- package/dist/lib/testing/scenarios/governance.d.ts.map +1 -1
- package/dist/lib/testing/scenarios/governance.js +725 -39
- package/dist/lib/testing/scenarios/governance.js.map +1 -1
- package/dist/lib/testing/scenarios/index.d.ts +3 -3
- package/dist/lib/testing/scenarios/index.d.ts.map +1 -1
- package/dist/lib/testing/scenarios/index.js +8 -1
- package/dist/lib/testing/scenarios/index.js.map +1 -1
- package/dist/lib/testing/scenarios/media-buy.d.ts +14 -5
- package/dist/lib/testing/scenarios/media-buy.d.ts.map +1 -1
- package/dist/lib/testing/scenarios/media-buy.js +358 -63
- package/dist/lib/testing/scenarios/media-buy.js.map +1 -1
- package/dist/lib/testing/scenarios/schema-compliance.d.ts.map +1 -1
- package/dist/lib/testing/scenarios/schema-compliance.js +26 -22
- package/dist/lib/testing/scenarios/schema-compliance.js.map +1 -1
- package/dist/lib/testing/scenarios/signals.d.ts +4 -8
- package/dist/lib/testing/scenarios/signals.d.ts.map +1 -1
- package/dist/lib/testing/scenarios/signals.js +17 -59
- package/dist/lib/testing/scenarios/signals.js.map +1 -1
- package/dist/lib/testing/scenarios/sponsored-intelligence.d.ts.map +1 -1
- package/dist/lib/testing/scenarios/sponsored-intelligence.js +23 -19
- package/dist/lib/testing/scenarios/sponsored-intelligence.js.map +1 -1
- package/dist/lib/testing/types.d.ts +3 -2
- package/dist/lib/testing/types.d.ts.map +1 -1
- package/dist/lib/types/core.generated.d.ts +629 -5
- package/dist/lib/types/core.generated.d.ts.map +1 -1
- package/dist/lib/types/core.generated.js +1 -1
- package/dist/lib/types/schemas.generated.d.ts +13059 -11101
- package/dist/lib/types/schemas.generated.d.ts.map +1 -1
- package/dist/lib/types/schemas.generated.js +573 -107
- package/dist/lib/types/schemas.generated.js.map +1 -1
- package/dist/lib/types/tools.generated.d.ts +1827 -360
- package/dist/lib/types/tools.generated.d.ts.map +1 -1
- package/dist/lib/utils/capabilities.d.ts +17 -2
- package/dist/lib/utils/capabilities.d.ts.map +1 -1
- package/dist/lib/utils/capabilities.js +26 -2
- package/dist/lib/utils/capabilities.js.map +1 -1
- package/package.json +13 -3
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
* Brand identifier within the house portfolio. Optional for single-brand domains.
|
|
3
3
|
*/
|
|
4
4
|
export type BrandID = string;
|
|
5
|
+
/**
|
|
6
|
+
* Authentication schemes for push notification endpoints
|
|
7
|
+
*/
|
|
8
|
+
export type AuthenticationScheme = 'Bearer' | 'HMAC-SHA256';
|
|
5
9
|
/**
|
|
6
10
|
* Status of a media buy.
|
|
7
11
|
*/
|
|
@@ -301,6 +305,29 @@ export interface Account {
|
|
|
301
305
|
* How the seller scoped this account. operator: shared across all brands for this operator. brand: shared across all operators for this brand. operator_brand: dedicated to a specific operator+brand combination. agent: the agent's default account with no brand or operator association.
|
|
302
306
|
*/
|
|
303
307
|
account_scope?: 'operator' | 'brand' | 'operator_brand' | 'agent';
|
|
308
|
+
/**
|
|
309
|
+
* Governance agent endpoints for this account. When present, the seller MUST call these agents for governance approval before confirming media buy requests. Each agent can be scoped to specific validation categories. All applicable agents must approve for the action to proceed (unanimous approval).
|
|
310
|
+
*/
|
|
311
|
+
governance_agents?: {
|
|
312
|
+
/**
|
|
313
|
+
* Governance agent endpoint URL.
|
|
314
|
+
*/
|
|
315
|
+
url: string;
|
|
316
|
+
authentication: {
|
|
317
|
+
/**
|
|
318
|
+
* @maxItems 1
|
|
319
|
+
*/
|
|
320
|
+
schemes: [] | [AuthenticationScheme];
|
|
321
|
+
/**
|
|
322
|
+
* Authentication credential (e.g., Bearer token).
|
|
323
|
+
*/
|
|
324
|
+
credentials: string;
|
|
325
|
+
};
|
|
326
|
+
/**
|
|
327
|
+
* Governance categories this agent handles (e.g., ['budget_authority', 'strategic_alignment']). When omitted, the agent handles all categories.
|
|
328
|
+
*/
|
|
329
|
+
categories?: string[];
|
|
330
|
+
}[];
|
|
304
331
|
/**
|
|
305
332
|
* When true, this is a sandbox account — no real platform calls, no real spend. For explicit accounts (require_operator_auth: true), sandbox accounts are pre-existing test accounts on the platform discovered via list_accounts. For implicit accounts, sandbox is part of the natural key: the same brand/operator pair can have both a production and sandbox account.
|
|
306
333
|
*/
|
|
@@ -1653,11 +1680,15 @@ export type PropertyTag = string;
|
|
|
1653
1680
|
/**
|
|
1654
1681
|
* 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.
|
|
1655
1682
|
*/
|
|
1656
|
-
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';
|
|
1683
|
+
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' | 'sponsored_intelligence';
|
|
1657
1684
|
/**
|
|
1658
1685
|
* Type of inventory delivery
|
|
1659
1686
|
*/
|
|
1660
1687
|
export type DeliveryType = 'guaranteed' | 'non_guaranteed';
|
|
1688
|
+
/**
|
|
1689
|
+
* Whether this product offers exclusive access to its inventory. Defaults to 'none' when absent. Most relevant for guaranteed products tied to specific shows or placements.
|
|
1690
|
+
*/
|
|
1691
|
+
export type Exclusivity = 'none' | 'category' | 'exclusive';
|
|
1661
1692
|
/**
|
|
1662
1693
|
* A pricing model option offered by a publisher for a product. Discriminated by pricing_model field. If fixed_price is present, it's fixed pricing. If absent, it's auction-based (floor_price and price_guidance optional). Bid-based auction models may also include max_bid as a boolean signal to interpret bid_price as a buyer ceiling instead of an exact honored price.
|
|
1663
1694
|
*/
|
|
@@ -1733,6 +1764,22 @@ export type DataProviderSignalSelector = {
|
|
|
1733
1764
|
* Where the conversion event originated
|
|
1734
1765
|
*/
|
|
1735
1766
|
export type ActionSource = 'website' | 'app' | 'offline' | 'phone_call' | 'chat' | 'email' | 'in_store' | 'system_generated' | 'other';
|
|
1767
|
+
/**
|
|
1768
|
+
* Lifecycle status of the episode
|
|
1769
|
+
*/
|
|
1770
|
+
export type EpisodeStatus = 'scheduled' | 'tentative' | 'live' | 'postponed' | 'cancelled' | 'aired' | 'published';
|
|
1771
|
+
/**
|
|
1772
|
+
* Rating system used
|
|
1773
|
+
*/
|
|
1774
|
+
export type ContentRatingSystem = 'tv_parental' | 'mpaa' | 'podcast' | 'esrb' | 'bbfc' | 'fsk' | 'acb' | 'custom';
|
|
1775
|
+
/**
|
|
1776
|
+
* Role of this person on the show or episode
|
|
1777
|
+
*/
|
|
1778
|
+
export type TalentRole = 'host' | 'guest' | 'creator' | 'cast' | 'narrator' | 'producer' | 'correspondent';
|
|
1779
|
+
/**
|
|
1780
|
+
* What kind of derivative content this is
|
|
1781
|
+
*/
|
|
1782
|
+
export type DerivativeType = 'clip' | 'highlight' | 'recap' | 'trailer' | 'bonus';
|
|
1736
1783
|
/**
|
|
1737
1784
|
* Represents available advertising inventory
|
|
1738
1785
|
*/
|
|
@@ -1766,6 +1813,7 @@ export interface Product {
|
|
|
1766
1813
|
*/
|
|
1767
1814
|
placements?: Placement[];
|
|
1768
1815
|
delivery_type: DeliveryType;
|
|
1816
|
+
exclusivity?: Exclusivity;
|
|
1769
1817
|
/**
|
|
1770
1818
|
* Available pricing models for this product
|
|
1771
1819
|
*/
|
|
@@ -1773,9 +1821,9 @@ export interface Product {
|
|
|
1773
1821
|
forecast?: DeliveryForecast;
|
|
1774
1822
|
outcome_measurement?: OutcomeMeasurement;
|
|
1775
1823
|
/**
|
|
1776
|
-
* Measurement provider and methodology for delivery metrics. The buyer accepts the declared provider as the source of truth for the buy.
|
|
1824
|
+
* Measurement provider and methodology for delivery metrics. The buyer accepts the declared provider as the source of truth for the buy. When absent, buyers should apply their own measurement defaults.
|
|
1777
1825
|
*/
|
|
1778
|
-
delivery_measurement
|
|
1826
|
+
delivery_measurement?: {
|
|
1779
1827
|
/**
|
|
1780
1828
|
* Measurement provider(s) used for this product (e.g., 'Google Ad Manager with IAS viewability', 'Nielsen DAR', 'Geopath for DOOH impressions')
|
|
1781
1829
|
*/
|
|
@@ -1898,6 +1946,18 @@ export interface Product {
|
|
|
1898
1946
|
*/
|
|
1899
1947
|
manifest: {};
|
|
1900
1948
|
};
|
|
1949
|
+
/**
|
|
1950
|
+
* References to shows in the response's top-level shows array. When present, the product covers inventory associated with these shows. A product can span multiple shows (e.g., a podcast network bundle).
|
|
1951
|
+
*/
|
|
1952
|
+
show_ids?: string[];
|
|
1953
|
+
/**
|
|
1954
|
+
* Specific episodes included in this product. Each episode references its parent show via show_id when the product spans multiple shows. When absent with show_ids present, the product covers the shows broadly (run-of-show).
|
|
1955
|
+
*/
|
|
1956
|
+
episodes?: Episode[];
|
|
1957
|
+
/**
|
|
1958
|
+
* Registry policy IDs the seller enforces for this product. Enforcement level comes from the policy registry. Buyers can filter products by required policies.
|
|
1959
|
+
*/
|
|
1960
|
+
enforced_policies?: string[];
|
|
1901
1961
|
ext?: ExtensionObject;
|
|
1902
1962
|
}
|
|
1903
1963
|
/**
|
|
@@ -2509,6 +2569,118 @@ export interface CreativePolicy {
|
|
|
2509
2569
|
*/
|
|
2510
2570
|
provenance_required?: boolean;
|
|
2511
2571
|
}
|
|
2572
|
+
/**
|
|
2573
|
+
* A specific installment of a show. Episodes inherit show-level fields they don't override: content_rating defaults to the show's baseline, guest_talent is additive to the show's recurring talent, and topics add context beyond the show's genre.
|
|
2574
|
+
*/
|
|
2575
|
+
export interface Episode {
|
|
2576
|
+
/**
|
|
2577
|
+
* Unique identifier for this episode within the show
|
|
2578
|
+
*/
|
|
2579
|
+
episode_id: string;
|
|
2580
|
+
/**
|
|
2581
|
+
* Parent show reference. Required when the product spans multiple shows (has multiple entries in show_ids on the product).
|
|
2582
|
+
*/
|
|
2583
|
+
show_id?: string;
|
|
2584
|
+
/**
|
|
2585
|
+
* Episode title
|
|
2586
|
+
*/
|
|
2587
|
+
name?: string;
|
|
2588
|
+
/**
|
|
2589
|
+
* Season identifier (e.g., '1', '2024', 'spring_2026')
|
|
2590
|
+
*/
|
|
2591
|
+
season?: string;
|
|
2592
|
+
/**
|
|
2593
|
+
* Episode number within the season (e.g., '3', '47')
|
|
2594
|
+
*/
|
|
2595
|
+
episode_number?: string;
|
|
2596
|
+
/**
|
|
2597
|
+
* When the episode airs or publishes (ISO 8601)
|
|
2598
|
+
*/
|
|
2599
|
+
scheduled_at?: string;
|
|
2600
|
+
status?: EpisodeStatus;
|
|
2601
|
+
/**
|
|
2602
|
+
* Expected duration of the episode in seconds
|
|
2603
|
+
*/
|
|
2604
|
+
duration_seconds?: number;
|
|
2605
|
+
/**
|
|
2606
|
+
* Whether the end time is approximate (live events, sports)
|
|
2607
|
+
*/
|
|
2608
|
+
flexible_end?: boolean;
|
|
2609
|
+
/**
|
|
2610
|
+
* When this episode data expires and should be re-queried. Agents should re-query before committing budget to products with tentative episodes.
|
|
2611
|
+
*/
|
|
2612
|
+
valid_until?: string;
|
|
2613
|
+
content_rating?: ContentRating;
|
|
2614
|
+
/**
|
|
2615
|
+
* Content topics for this episode. Uses the same taxonomy as the show's genre_taxonomy when present. Enables episode-level brand safety evaluation beyond content_rating.
|
|
2616
|
+
*/
|
|
2617
|
+
topics?: string[];
|
|
2618
|
+
/**
|
|
2619
|
+
* Episode-specific guests and talent. Additive to the show's recurring talent.
|
|
2620
|
+
*/
|
|
2621
|
+
guest_talent?: Talent[];
|
|
2622
|
+
ad_inventory?: AdInventoryConfiguration;
|
|
2623
|
+
/**
|
|
2624
|
+
* When this episode is a clip, highlight, or recap derived from a full episode. The source episode_id must reference an episode within the same response.
|
|
2625
|
+
*/
|
|
2626
|
+
derivative_of?: {
|
|
2627
|
+
/**
|
|
2628
|
+
* The source episode this content is derived from
|
|
2629
|
+
*/
|
|
2630
|
+
episode_id: string;
|
|
2631
|
+
type: DerivativeType;
|
|
2632
|
+
};
|
|
2633
|
+
ext?: ExtensionObject;
|
|
2634
|
+
}
|
|
2635
|
+
/**
|
|
2636
|
+
* Episode-specific content rating. Overrides the show's baseline content_rating when present.
|
|
2637
|
+
*/
|
|
2638
|
+
export interface ContentRating {
|
|
2639
|
+
system: ContentRatingSystem;
|
|
2640
|
+
/**
|
|
2641
|
+
* Rating value within the system (e.g., 'TV-PG', 'R', 'explicit')
|
|
2642
|
+
*/
|
|
2643
|
+
rating: string;
|
|
2644
|
+
}
|
|
2645
|
+
/**
|
|
2646
|
+
* A person associated with a show or episode, with an optional link to their brand.json identity
|
|
2647
|
+
*/
|
|
2648
|
+
export interface Talent {
|
|
2649
|
+
role: TalentRole;
|
|
2650
|
+
/**
|
|
2651
|
+
* Person's name as credited on the show
|
|
2652
|
+
*/
|
|
2653
|
+
name: string;
|
|
2654
|
+
/**
|
|
2655
|
+
* URL to this person's brand.json entry. Enables buyer agents to evaluate the talent's brand identity and associations.
|
|
2656
|
+
*/
|
|
2657
|
+
brand_url?: string;
|
|
2658
|
+
}
|
|
2659
|
+
/**
|
|
2660
|
+
* Break-based ad inventory for this episode. For non-break formats (host reads, integrations), use product placements.
|
|
2661
|
+
*/
|
|
2662
|
+
export interface AdInventoryConfiguration {
|
|
2663
|
+
/**
|
|
2664
|
+
* Number of planned ad breaks in the episode
|
|
2665
|
+
*/
|
|
2666
|
+
expected_breaks: number;
|
|
2667
|
+
/**
|
|
2668
|
+
* Total seconds of ad time across all breaks
|
|
2669
|
+
*/
|
|
2670
|
+
total_ad_seconds?: number;
|
|
2671
|
+
/**
|
|
2672
|
+
* Maximum duration in seconds for a single ad within a break. Buyers need this to know whether their creative fits.
|
|
2673
|
+
*/
|
|
2674
|
+
max_ad_duration_seconds?: number;
|
|
2675
|
+
/**
|
|
2676
|
+
* Whether ad breaks are dynamic and driven by live conditions (sports timeouts, election coverage). When false, all breaks are pre-defined.
|
|
2677
|
+
*/
|
|
2678
|
+
unplanned_breaks?: boolean;
|
|
2679
|
+
/**
|
|
2680
|
+
* Ad format types supported in breaks (e.g., 'video', 'audio', 'display')
|
|
2681
|
+
*/
|
|
2682
|
+
supported_formats?: string[];
|
|
2683
|
+
}
|
|
2512
2684
|
/**
|
|
2513
2685
|
* Type of advertising property
|
|
2514
2686
|
*/
|
|
@@ -2553,11 +2725,11 @@ export interface Property {
|
|
|
2553
2725
|
/**
|
|
2554
2726
|
* Type of AdCP operation that triggered this webhook. Enables webhook handlers to route to appropriate processing logic.
|
|
2555
2727
|
*/
|
|
2556
|
-
export type TaskType = 'create_media_buy' | 'update_media_buy' | 'sync_creatives' | 'activate_signal' | 'get_signals' | 'create_property_list' | 'update_property_list' | 'get_property_list' | 'list_property_lists' | 'delete_property_list' | 'sync_accounts' | 'get_account_financials' | 'get_creative_delivery' | 'sync_event_sources' | 'sync_audiences' | 'sync_catalogs' | 'log_event';
|
|
2728
|
+
export type TaskType = 'create_media_buy' | 'update_media_buy' | 'sync_creatives' | 'activate_signal' | 'get_signals' | 'create_property_list' | 'update_property_list' | 'get_property_list' | 'list_property_lists' | 'delete_property_list' | 'sync_accounts' | 'get_account_financials' | 'get_creative_delivery' | 'sync_event_sources' | 'sync_audiences' | 'sync_catalogs' | 'log_event' | 'get_brand_identity' | 'get_rights' | 'acquire_rights';
|
|
2557
2729
|
/**
|
|
2558
2730
|
* AdCP domain this task belongs to. Helps classify the operation type at a high level.
|
|
2559
2731
|
*/
|
|
2560
|
-
export type AdCPDomain = 'media-buy' | 'signals' | 'governance' | 'creative';
|
|
2732
|
+
export type AdCPDomain = 'media-buy' | 'signals' | 'governance' | 'creative' | 'brand';
|
|
2561
2733
|
/**
|
|
2562
2734
|
* Current task status. Webhooks are triggered for status changes after initial submission.
|
|
2563
2735
|
*/
|
|
@@ -2566,6 +2738,26 @@ export type TaskStatus = 'submitted' | 'working' | 'input-required' | 'completed
|
|
|
2566
2738
|
* Task-specific payload matching the status. For completed/failed, contains the full task response. For working/input-required/submitted, contains status-specific data. This is the data layer that AdCP specs - same structure used in A2A status.message.parts[].data.
|
|
2567
2739
|
*/
|
|
2568
2740
|
export type AdCPAsyncResponseData = GetProductsResponse | GetProductsAsyncWorking | GetProductsAsyncInputRequired | GetProductsAsyncSubmitted | CreateMediaBuyResponse | CreateMediaBuyAsyncWorking | CreateMediaBuyAsyncInputRequired | CreateMediaBuyAsyncSubmitted | UpdateMediaBuyResponse | UpdateMediaBuyAsyncWorking | UpdateMediaBuyAsyncInputRequired | UpdateMediaBuyAsyncSubmitted | BuildCreativeResponse | BuildCreativeAsyncWorking | BuildCreativeAsyncInputRequired | BuildCreativeAsyncSubmitted | SyncCreativesResponse | SyncCreativesAsyncWorking | SyncCreativesAsyncInputRequired | SyncCreativesAsyncSubmitted | SyncCatalogsResponse | SyncCatalogsAsyncWorking | SyncCatalogsAsyncInputRequired | SyncCatalogsAsyncSubmitted;
|
|
2741
|
+
/**
|
|
2742
|
+
* How frequently the show releases new episodes
|
|
2743
|
+
*/
|
|
2744
|
+
export type ShowCadence = 'daily' | 'weekly' | 'seasonal' | 'event' | 'irregular';
|
|
2745
|
+
/**
|
|
2746
|
+
* Lifecycle status of the show
|
|
2747
|
+
*/
|
|
2748
|
+
export type ShowStatus = 'active' | 'hiatus' | 'ended' | 'upcoming';
|
|
2749
|
+
/**
|
|
2750
|
+
* Production quality tier. Seller-declared. Maps to OpenRTB content.prodq (professional=1, prosumer=2, ugc=3).
|
|
2751
|
+
*/
|
|
2752
|
+
export type ProductionQuality = 'professional' | 'prosumer' | 'ugc';
|
|
2753
|
+
/**
|
|
2754
|
+
* Type of distribution identifier
|
|
2755
|
+
*/
|
|
2756
|
+
export type DistributionIdentifierType = 'apple_podcast_id' | 'spotify_show_id' | 'rss_url' | 'podcast_guid' | 'amazon_music_id' | 'iheart_id' | 'podcast_index_id' | 'youtube_channel_id' | 'youtube_playlist_id' | 'amazon_title_id' | 'roku_channel_id' | 'pluto_channel_id' | 'tubi_id' | 'peacock_id' | 'tiktok_id' | 'twitch_channel' | 'imdb_id' | 'gracenote_id' | 'eidr_id' | 'domain' | 'substack_id';
|
|
2757
|
+
/**
|
|
2758
|
+
* How the shows are related
|
|
2759
|
+
*/
|
|
2760
|
+
export type ShowRelationship = 'spinoff' | 'companion' | 'sequel' | 'prequel' | 'crossover';
|
|
2569
2761
|
/**
|
|
2570
2762
|
* Response for completed or failed create_media_buy
|
|
2571
2763
|
*/
|
|
@@ -2578,6 +2770,157 @@ export type UpdateMediaBuyResponse = UpdateMediaBuySuccess | UpdateMediaBuyError
|
|
|
2578
2770
|
* Response for completed or failed build_creative
|
|
2579
2771
|
*/
|
|
2580
2772
|
export type BuildCreativeResponse = BuildCreativeSuccess | BuildCreativeMultiSuccess | BuildCreativeError;
|
|
2773
|
+
/**
|
|
2774
|
+
* Types of rights usage that can be licensed through the brand protocol. Aligned with DDEX UseType direction for interoperability with music and media rights systems.
|
|
2775
|
+
*/
|
|
2776
|
+
export type RightUse = 'likeness' | 'voice' | 'name' | 'endorsement' | 'motion_capture' | 'signature' | 'catchphrase' | 'sync' | 'background_music' | 'editorial' | 'commercial';
|
|
2777
|
+
/**
|
|
2778
|
+
* Type of rights (talent, music, etc.). Helps identify constraints when a creative combines multiple rights types.
|
|
2779
|
+
*/
|
|
2780
|
+
export type RightType = 'talent' | 'character' | 'brand_ip' | 'music' | 'stock_media';
|
|
2781
|
+
/**
|
|
2782
|
+
* A single rendered piece of a creative preview with discriminated output format
|
|
2783
|
+
*/
|
|
2784
|
+
export type PreviewRender = {
|
|
2785
|
+
/**
|
|
2786
|
+
* Unique identifier for this rendered piece within the variant
|
|
2787
|
+
*/
|
|
2788
|
+
render_id: string;
|
|
2789
|
+
/**
|
|
2790
|
+
* Discriminator indicating preview_url is provided
|
|
2791
|
+
*/
|
|
2792
|
+
output_format: 'url';
|
|
2793
|
+
/**
|
|
2794
|
+
* URL to an HTML page that renders this piece. Can be embedded in an iframe.
|
|
2795
|
+
*/
|
|
2796
|
+
preview_url: string;
|
|
2797
|
+
/**
|
|
2798
|
+
* Semantic role of this rendered piece. Use 'primary' for main content, 'companion' for associated banners, descriptive strings for device variants or custom roles.
|
|
2799
|
+
*/
|
|
2800
|
+
role: string;
|
|
2801
|
+
/**
|
|
2802
|
+
* Dimensions for this rendered piece
|
|
2803
|
+
*/
|
|
2804
|
+
dimensions?: {
|
|
2805
|
+
width: number;
|
|
2806
|
+
height: number;
|
|
2807
|
+
};
|
|
2808
|
+
/**
|
|
2809
|
+
* Optional security and embedding metadata for safe iframe integration
|
|
2810
|
+
*/
|
|
2811
|
+
embedding?: {
|
|
2812
|
+
/**
|
|
2813
|
+
* Recommended iframe sandbox attribute value (e.g., 'allow-scripts allow-same-origin')
|
|
2814
|
+
*/
|
|
2815
|
+
recommended_sandbox?: string;
|
|
2816
|
+
/**
|
|
2817
|
+
* Whether this output requires HTTPS for secure embedding
|
|
2818
|
+
*/
|
|
2819
|
+
requires_https?: boolean;
|
|
2820
|
+
/**
|
|
2821
|
+
* Whether this output supports fullscreen mode
|
|
2822
|
+
*/
|
|
2823
|
+
supports_fullscreen?: boolean;
|
|
2824
|
+
/**
|
|
2825
|
+
* Content Security Policy requirements for embedding
|
|
2826
|
+
*/
|
|
2827
|
+
csp_policy?: string;
|
|
2828
|
+
};
|
|
2829
|
+
} | {
|
|
2830
|
+
/**
|
|
2831
|
+
* Unique identifier for this rendered piece within the variant
|
|
2832
|
+
*/
|
|
2833
|
+
render_id: string;
|
|
2834
|
+
/**
|
|
2835
|
+
* Discriminator indicating preview_html is provided
|
|
2836
|
+
*/
|
|
2837
|
+
output_format: 'html';
|
|
2838
|
+
/**
|
|
2839
|
+
* Raw HTML for this rendered piece. Can be embedded directly in the page without iframe. Security warning: Only use with trusted creative agents as this bypasses iframe sandboxing.
|
|
2840
|
+
*/
|
|
2841
|
+
preview_html: string;
|
|
2842
|
+
/**
|
|
2843
|
+
* Semantic role of this rendered piece. Use 'primary' for main content, 'companion' for associated banners, descriptive strings for device variants or custom roles.
|
|
2844
|
+
*/
|
|
2845
|
+
role: string;
|
|
2846
|
+
/**
|
|
2847
|
+
* Dimensions for this rendered piece
|
|
2848
|
+
*/
|
|
2849
|
+
dimensions?: {
|
|
2850
|
+
width: number;
|
|
2851
|
+
height: number;
|
|
2852
|
+
};
|
|
2853
|
+
/**
|
|
2854
|
+
* Optional security and embedding metadata
|
|
2855
|
+
*/
|
|
2856
|
+
embedding?: {
|
|
2857
|
+
/**
|
|
2858
|
+
* Recommended iframe sandbox attribute value (e.g., 'allow-scripts allow-same-origin')
|
|
2859
|
+
*/
|
|
2860
|
+
recommended_sandbox?: string;
|
|
2861
|
+
/**
|
|
2862
|
+
* Whether this output requires HTTPS for secure embedding
|
|
2863
|
+
*/
|
|
2864
|
+
requires_https?: boolean;
|
|
2865
|
+
/**
|
|
2866
|
+
* Whether this output supports fullscreen mode
|
|
2867
|
+
*/
|
|
2868
|
+
supports_fullscreen?: boolean;
|
|
2869
|
+
/**
|
|
2870
|
+
* Content Security Policy requirements for embedding
|
|
2871
|
+
*/
|
|
2872
|
+
csp_policy?: string;
|
|
2873
|
+
};
|
|
2874
|
+
} | {
|
|
2875
|
+
/**
|
|
2876
|
+
* Unique identifier for this rendered piece within the variant
|
|
2877
|
+
*/
|
|
2878
|
+
render_id: string;
|
|
2879
|
+
/**
|
|
2880
|
+
* Discriminator indicating both preview_url and preview_html are provided
|
|
2881
|
+
*/
|
|
2882
|
+
output_format: 'both';
|
|
2883
|
+
/**
|
|
2884
|
+
* URL to an HTML page that renders this piece. Can be embedded in an iframe.
|
|
2885
|
+
*/
|
|
2886
|
+
preview_url: string;
|
|
2887
|
+
/**
|
|
2888
|
+
* Raw HTML for this rendered piece. Can be embedded directly in the page without iframe. Security warning: Only use with trusted creative agents as this bypasses iframe sandboxing.
|
|
2889
|
+
*/
|
|
2890
|
+
preview_html: string;
|
|
2891
|
+
/**
|
|
2892
|
+
* Semantic role of this rendered piece. Use 'primary' for main content, 'companion' for associated banners, descriptive strings for device variants or custom roles.
|
|
2893
|
+
*/
|
|
2894
|
+
role: string;
|
|
2895
|
+
/**
|
|
2896
|
+
* Dimensions for this rendered piece
|
|
2897
|
+
*/
|
|
2898
|
+
dimensions?: {
|
|
2899
|
+
width: number;
|
|
2900
|
+
height: number;
|
|
2901
|
+
};
|
|
2902
|
+
/**
|
|
2903
|
+
* Optional security and embedding metadata for safe iframe integration
|
|
2904
|
+
*/
|
|
2905
|
+
embedding?: {
|
|
2906
|
+
/**
|
|
2907
|
+
* Recommended iframe sandbox attribute value (e.g., 'allow-scripts allow-same-origin')
|
|
2908
|
+
*/
|
|
2909
|
+
recommended_sandbox?: string;
|
|
2910
|
+
/**
|
|
2911
|
+
* Whether this output requires HTTPS for secure embedding
|
|
2912
|
+
*/
|
|
2913
|
+
requires_https?: boolean;
|
|
2914
|
+
/**
|
|
2915
|
+
* Whether this output supports fullscreen mode
|
|
2916
|
+
*/
|
|
2917
|
+
supports_fullscreen?: boolean;
|
|
2918
|
+
/**
|
|
2919
|
+
* Content Security Policy requirements for embedding
|
|
2920
|
+
*/
|
|
2921
|
+
csp_policy?: string;
|
|
2922
|
+
};
|
|
2923
|
+
};
|
|
2581
2924
|
/**
|
|
2582
2925
|
* Response for completed or failed sync_creatives
|
|
2583
2926
|
*/
|
|
@@ -2635,6 +2978,10 @@ export interface GetProductsResponse {
|
|
|
2635
2978
|
* Array of matching products
|
|
2636
2979
|
*/
|
|
2637
2980
|
products: Product[];
|
|
2981
|
+
/**
|
|
2982
|
+
* Shows referenced by products in this response. Only includes shows referenced by the returned products. Under pagination, each page includes all show objects needed for that page's products.
|
|
2983
|
+
*/
|
|
2984
|
+
shows?: Show[];
|
|
2638
2985
|
/**
|
|
2639
2986
|
* 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 follow-up get_products calls within the same session, or execute them directly via create_media_buy.
|
|
2640
2987
|
*/
|
|
@@ -2697,6 +3044,81 @@ export interface GetProductsResponse {
|
|
|
2697
3044
|
context?: ContextObject;
|
|
2698
3045
|
ext?: ExtensionObject;
|
|
2699
3046
|
}
|
|
3047
|
+
/**
|
|
3048
|
+
* A persistent content program that produces episodes over time. Shows are reusable objects that products reference by show_id. The show_id is seller-scoped — use distribution identifiers for cross-seller matching.
|
|
3049
|
+
*/
|
|
3050
|
+
export interface Show {
|
|
3051
|
+
/**
|
|
3052
|
+
* Seller-assigned identifier for this show. Unique within a single get_products response but not globally unique across sellers. Use distribution identifiers for cross-seller matching.
|
|
3053
|
+
*/
|
|
3054
|
+
show_id: string;
|
|
3055
|
+
/**
|
|
3056
|
+
* Human-readable show name
|
|
3057
|
+
*/
|
|
3058
|
+
name: string;
|
|
3059
|
+
/**
|
|
3060
|
+
* What the show is about
|
|
3061
|
+
*/
|
|
3062
|
+
description?: string;
|
|
3063
|
+
/**
|
|
3064
|
+
* Genre tags. When genre_taxonomy is present, values are taxonomy IDs (e.g., IAB Content Taxonomy 3.0 codes). Otherwise free-form.
|
|
3065
|
+
*/
|
|
3066
|
+
genre?: string[];
|
|
3067
|
+
/**
|
|
3068
|
+
* Taxonomy system for genre values (e.g., 'iab_content_3.0'). When present, genre values should be valid taxonomy IDs. Recommended for machine-readable brand safety evaluation.
|
|
3069
|
+
*/
|
|
3070
|
+
genre_taxonomy?: string;
|
|
3071
|
+
/**
|
|
3072
|
+
* Primary language (BCP 47 tag, e.g., 'en', 'es-MX')
|
|
3073
|
+
*/
|
|
3074
|
+
language?: string;
|
|
3075
|
+
content_rating?: ContentRating;
|
|
3076
|
+
cadence?: ShowCadence;
|
|
3077
|
+
/**
|
|
3078
|
+
* Current or most recent season identifier (e.g., '3', '2026', 'spring_2026'). A lightweight label — not a full season object.
|
|
3079
|
+
*/
|
|
3080
|
+
season?: string;
|
|
3081
|
+
status?: ShowStatus;
|
|
3082
|
+
production_quality?: ProductionQuality;
|
|
3083
|
+
/**
|
|
3084
|
+
* Hosts, recurring cast, creators associated with the show. Each talent entry may include a brand_url linking to their brand.json identity.
|
|
3085
|
+
*/
|
|
3086
|
+
talent?: Talent[];
|
|
3087
|
+
/**
|
|
3088
|
+
* Where this show is distributed. Each entry maps the show to a publisher platform with platform-specific identifiers. Shows SHOULD include at least one platform-independent identifier (imdb_id, gracenote_id, eidr_id) when available.
|
|
3089
|
+
*/
|
|
3090
|
+
distribution?: ShowDistribution[];
|
|
3091
|
+
/**
|
|
3092
|
+
* Relationships to other shows (spin-offs, companion shows, etc.). Each entry references another show by show_id within the same response.
|
|
3093
|
+
*/
|
|
3094
|
+
related_shows?: {
|
|
3095
|
+
/**
|
|
3096
|
+
* The related show's show_id within this seller's response
|
|
3097
|
+
*/
|
|
3098
|
+
show_id: string;
|
|
3099
|
+
relationship: ShowRelationship;
|
|
3100
|
+
}[];
|
|
3101
|
+
ext?: ExtensionObject;
|
|
3102
|
+
}
|
|
3103
|
+
/**
|
|
3104
|
+
* A show's presence on a specific publisher platform, identified by platform-specific identifiers. Enables cross-seller matching when the same show is sold by different agents.
|
|
3105
|
+
*/
|
|
3106
|
+
export interface ShowDistribution {
|
|
3107
|
+
/**
|
|
3108
|
+
* Domain of the publisher platform where the show is distributed (e.g., 'youtube.com', 'spotify.com')
|
|
3109
|
+
*/
|
|
3110
|
+
publisher_domain: string;
|
|
3111
|
+
/**
|
|
3112
|
+
* Platform-specific identifiers for the show on this publisher
|
|
3113
|
+
*/
|
|
3114
|
+
identifiers: {
|
|
3115
|
+
type: DistributionIdentifierType;
|
|
3116
|
+
/**
|
|
3117
|
+
* The identifier value
|
|
3118
|
+
*/
|
|
3119
|
+
value: string;
|
|
3120
|
+
}[];
|
|
3121
|
+
}
|
|
2700
3122
|
/**
|
|
2701
3123
|
* A proposed media plan with budget allocations across products. Represents the publisher's strategic recommendation for how to structure a campaign based on the brief. Proposals are actionable - buyers can execute them directly via create_media_buy by providing the proposal_id.
|
|
2702
3124
|
*/
|
|
@@ -2925,6 +3347,7 @@ export interface CreateMediaBuySuccess {
|
|
|
2925
3347
|
* Array of created packages with complete state information
|
|
2926
3348
|
*/
|
|
2927
3349
|
packages: Package[];
|
|
3350
|
+
planned_delivery?: PlannedDelivery;
|
|
2928
3351
|
/**
|
|
2929
3352
|
* When true, this response contains simulated data from sandbox mode.
|
|
2930
3353
|
*/
|
|
@@ -2932,6 +3355,54 @@ export interface CreateMediaBuySuccess {
|
|
|
2932
3355
|
context?: ContextObject;
|
|
2933
3356
|
ext?: ExtensionObject;
|
|
2934
3357
|
}
|
|
3358
|
+
/**
|
|
3359
|
+
* The seller's interpreted delivery parameters. Describes what the seller will actually run -- geo, channels, flight dates, frequency caps, and budget. Present when the account has governance_agents or when the seller chooses to provide delivery transparency.
|
|
3360
|
+
*/
|
|
3361
|
+
export interface PlannedDelivery {
|
|
3362
|
+
/**
|
|
3363
|
+
* Geographic targeting the seller will apply.
|
|
3364
|
+
*/
|
|
3365
|
+
geo?: {
|
|
3366
|
+
/**
|
|
3367
|
+
* ISO 3166-1 alpha-2 country codes where ads will deliver.
|
|
3368
|
+
*/
|
|
3369
|
+
countries?: string[];
|
|
3370
|
+
/**
|
|
3371
|
+
* ISO 3166-2 subdivision codes where ads will deliver.
|
|
3372
|
+
*/
|
|
3373
|
+
regions?: string[];
|
|
3374
|
+
};
|
|
3375
|
+
/**
|
|
3376
|
+
* Channels the seller will deliver on.
|
|
3377
|
+
*/
|
|
3378
|
+
channels?: MediaChannel[];
|
|
3379
|
+
/**
|
|
3380
|
+
* Actual flight start the seller will use.
|
|
3381
|
+
*/
|
|
3382
|
+
start_time?: string;
|
|
3383
|
+
/**
|
|
3384
|
+
* Actual flight end the seller will use.
|
|
3385
|
+
*/
|
|
3386
|
+
end_time?: string;
|
|
3387
|
+
frequency_cap?: FrequencyCap;
|
|
3388
|
+
/**
|
|
3389
|
+
* Human-readable summary of the audience the seller will target.
|
|
3390
|
+
*/
|
|
3391
|
+
audience_summary?: string;
|
|
3392
|
+
/**
|
|
3393
|
+
* Total budget the seller will deliver against.
|
|
3394
|
+
*/
|
|
3395
|
+
total_budget?: number;
|
|
3396
|
+
/**
|
|
3397
|
+
* ISO 4217 currency code for the budget.
|
|
3398
|
+
*/
|
|
3399
|
+
currency?: string;
|
|
3400
|
+
/**
|
|
3401
|
+
* Registry policy IDs the seller will enforce for this delivery.
|
|
3402
|
+
*/
|
|
3403
|
+
enforced_policies?: string[];
|
|
3404
|
+
ext?: ExtensionObject;
|
|
3405
|
+
}
|
|
2935
3406
|
/**
|
|
2936
3407
|
* Error response - operation failed, no media buy created
|
|
2937
3408
|
*/
|
|
@@ -3080,6 +3551,52 @@ export interface BuildCreativeSuccess {
|
|
|
3080
3551
|
* ISO 8601 timestamp when generated asset URLs in the manifest expire. Set to the earliest expiration across all generated assets. Re-build the creative after this time to get fresh URLs.
|
|
3081
3552
|
*/
|
|
3082
3553
|
expires_at?: string;
|
|
3554
|
+
/**
|
|
3555
|
+
* Preview renders included when the request set include_preview to true and the agent supports it. Contains the same content fields as a preview_creative single response (previews, interactive_url, expires_at) minus the response_type discriminator, so clients can reuse the same preview rendering logic.
|
|
3556
|
+
*/
|
|
3557
|
+
preview?: {
|
|
3558
|
+
/**
|
|
3559
|
+
* Array of preview variants. Each preview corresponds to an input set from preview_inputs, or a single default preview if no inputs were provided.
|
|
3560
|
+
*/
|
|
3561
|
+
previews: {
|
|
3562
|
+
/**
|
|
3563
|
+
* Unique identifier for this preview variant
|
|
3564
|
+
*/
|
|
3565
|
+
preview_id: string;
|
|
3566
|
+
/**
|
|
3567
|
+
* Array of rendered pieces for this preview variant. Most formats render as a single piece. Companion ad formats render as multiple pieces.
|
|
3568
|
+
*/
|
|
3569
|
+
renders: PreviewRender[];
|
|
3570
|
+
/**
|
|
3571
|
+
* The input parameters that generated this preview variant. Echoes back the request input or shows defaults used.
|
|
3572
|
+
*/
|
|
3573
|
+
input: {
|
|
3574
|
+
/**
|
|
3575
|
+
* Human-readable name for this variant
|
|
3576
|
+
*/
|
|
3577
|
+
name: string;
|
|
3578
|
+
/**
|
|
3579
|
+
* Macro values applied to this variant
|
|
3580
|
+
*/
|
|
3581
|
+
macros?: {
|
|
3582
|
+
[k: string]: string | undefined;
|
|
3583
|
+
};
|
|
3584
|
+
/**
|
|
3585
|
+
* Context description applied to this variant
|
|
3586
|
+
*/
|
|
3587
|
+
context_description?: string;
|
|
3588
|
+
};
|
|
3589
|
+
}[];
|
|
3590
|
+
/**
|
|
3591
|
+
* Optional URL to an interactive testing page that shows all preview variants with controls to switch between them.
|
|
3592
|
+
*/
|
|
3593
|
+
interactive_url?: string;
|
|
3594
|
+
/**
|
|
3595
|
+
* ISO 8601 timestamp when preview URLs expire. May differ from the manifest's expires_at.
|
|
3596
|
+
*/
|
|
3597
|
+
expires_at: string;
|
|
3598
|
+
};
|
|
3599
|
+
preview_error?: Error;
|
|
3083
3600
|
context?: ContextObject;
|
|
3084
3601
|
ext?: ExtensionObject;
|
|
3085
3602
|
}
|
|
@@ -3100,9 +3617,69 @@ export interface CreativeManifest {
|
|
|
3100
3617
|
*/
|
|
3101
3618
|
[k: string]: ImageAsset | VideoAsset | AudioAsset | VASTAsset | TextAsset | URLAsset | HTMLAsset | JavaScriptAsset | WebhookAsset | CSSAsset | DAASTAsset | MarkdownAsset | BriefAsset | CatalogAsset;
|
|
3102
3619
|
};
|
|
3620
|
+
/**
|
|
3621
|
+
* Rights constraints attached to this creative. Each entry represents constraints from a single rights holder. A creative may combine multiple rights constraints (e.g., talent likeness + music license). For v1, rights constraints are informational metadata — the buyer/orchestrator manages creative lifecycle against these terms.
|
|
3622
|
+
*/
|
|
3623
|
+
rights?: RightsConstraint[];
|
|
3103
3624
|
provenance?: Provenance;
|
|
3104
3625
|
ext?: ExtensionObject;
|
|
3105
3626
|
}
|
|
3627
|
+
/**
|
|
3628
|
+
* Rights metadata attached to a creative manifest. Each entry represents constraints from a single rights holder. A creative may combine multiple rights constraints (e.g., talent likeness + music license). For v1, rights constraints are informational metadata — the buyer/orchestrator manages creative lifecycle against these terms.
|
|
3629
|
+
*/
|
|
3630
|
+
export interface RightsConstraint {
|
|
3631
|
+
/**
|
|
3632
|
+
* Rights grant identifier from the acquire_rights response
|
|
3633
|
+
*/
|
|
3634
|
+
rights_id: string;
|
|
3635
|
+
/**
|
|
3636
|
+
* The agent that granted these rights
|
|
3637
|
+
*/
|
|
3638
|
+
rights_agent: {
|
|
3639
|
+
/**
|
|
3640
|
+
* MCP endpoint URL of the rights agent
|
|
3641
|
+
*/
|
|
3642
|
+
url: string;
|
|
3643
|
+
/**
|
|
3644
|
+
* Agent identifier
|
|
3645
|
+
*/
|
|
3646
|
+
id: string;
|
|
3647
|
+
};
|
|
3648
|
+
/**
|
|
3649
|
+
* Start of the rights validity period
|
|
3650
|
+
*/
|
|
3651
|
+
valid_from?: string;
|
|
3652
|
+
/**
|
|
3653
|
+
* End of the rights validity period. Creative should not be served after this time.
|
|
3654
|
+
*/
|
|
3655
|
+
valid_until?: string;
|
|
3656
|
+
/**
|
|
3657
|
+
* Rights uses covered by this constraint
|
|
3658
|
+
*/
|
|
3659
|
+
uses: RightUse[];
|
|
3660
|
+
/**
|
|
3661
|
+
* Countries where this creative may be served under these rights (ISO 3166-1 alpha-2). If omitted, no country restriction. When both countries and excluded_countries are present, the effective set is countries minus excluded_countries.
|
|
3662
|
+
*/
|
|
3663
|
+
countries?: string[];
|
|
3664
|
+
/**
|
|
3665
|
+
* Countries excluded from rights availability (ISO 3166-1 alpha-2). Use when the grant is worldwide except specific markets.
|
|
3666
|
+
*/
|
|
3667
|
+
excluded_countries?: string[];
|
|
3668
|
+
/**
|
|
3669
|
+
* Maximum total impressions allowed for the full validity period (valid_from to valid_until). This is the absolute cap across all creatives using this rights grant, not a per-creative or per-period limit.
|
|
3670
|
+
*/
|
|
3671
|
+
impression_cap?: number;
|
|
3672
|
+
right_type?: RightType;
|
|
3673
|
+
/**
|
|
3674
|
+
* Approval status from the rights holder at manifest creation time (snapshot, not a live value)
|
|
3675
|
+
*/
|
|
3676
|
+
approval_status?: 'pending' | 'approved' | 'rejected';
|
|
3677
|
+
/**
|
|
3678
|
+
* URL where downstream supply chain participants can verify this rights grant is active. Returns HTTP 200 with the current grant status, or 404 if revoked. Enables SSPs and verification vendors to confirm rights before serving.
|
|
3679
|
+
*/
|
|
3680
|
+
verification_url?: string;
|
|
3681
|
+
ext?: ExtensionObject;
|
|
3682
|
+
}
|
|
3106
3683
|
/**
|
|
3107
3684
|
* Multi-format success response. Returned when the request used target_format_ids. Contains one manifest per requested format. Multi-format requests are atomic — all formats must succeed or the entire request fails with an error response. Array order corresponds to the target_format_ids request order.
|
|
3108
3685
|
*/
|
|
@@ -3119,6 +3696,53 @@ export interface BuildCreativeMultiSuccess {
|
|
|
3119
3696
|
* ISO 8601 timestamp when the earliest generated asset URL expires across all manifests. Re-build after this time to get fresh URLs.
|
|
3120
3697
|
*/
|
|
3121
3698
|
expires_at?: string;
|
|
3699
|
+
/**
|
|
3700
|
+
* Preview renders included when the request set include_preview to true and the agent supports it. Contains one default preview per requested format. preview_inputs is ignored for multi-format requests.
|
|
3701
|
+
*/
|
|
3702
|
+
preview?: {
|
|
3703
|
+
/**
|
|
3704
|
+
* Array of preview entries, one per requested format. Array order matches creative_manifests. Each entry includes a format_id for explicit correlation.
|
|
3705
|
+
*/
|
|
3706
|
+
previews: {
|
|
3707
|
+
/**
|
|
3708
|
+
* Unique identifier for this preview
|
|
3709
|
+
*/
|
|
3710
|
+
preview_id: string;
|
|
3711
|
+
format_id: FormatID;
|
|
3712
|
+
/**
|
|
3713
|
+
* Array of rendered pieces for this format's preview. Most formats render as a single piece. Companion ad formats render as multiple pieces.
|
|
3714
|
+
*/
|
|
3715
|
+
renders: PreviewRender[];
|
|
3716
|
+
/**
|
|
3717
|
+
* The input parameters that generated this preview. For multi-format responses, this is always a default input.
|
|
3718
|
+
*/
|
|
3719
|
+
input: {
|
|
3720
|
+
/**
|
|
3721
|
+
* Human-readable name for this preview
|
|
3722
|
+
*/
|
|
3723
|
+
name: string;
|
|
3724
|
+
/**
|
|
3725
|
+
* Macro values applied to this preview
|
|
3726
|
+
*/
|
|
3727
|
+
macros?: {
|
|
3728
|
+
[k: string]: string | undefined;
|
|
3729
|
+
};
|
|
3730
|
+
/**
|
|
3731
|
+
* Context description applied to this preview
|
|
3732
|
+
*/
|
|
3733
|
+
context_description?: string;
|
|
3734
|
+
};
|
|
3735
|
+
}[];
|
|
3736
|
+
/**
|
|
3737
|
+
* Optional URL to an interactive testing page that shows all format previews with controls to switch between them.
|
|
3738
|
+
*/
|
|
3739
|
+
interactive_url?: string;
|
|
3740
|
+
/**
|
|
3741
|
+
* ISO 8601 timestamp when preview URLs expire. May differ from the manifest's expires_at.
|
|
3742
|
+
*/
|
|
3743
|
+
expires_at: string;
|
|
3744
|
+
};
|
|
3745
|
+
preview_error?: Error;
|
|
3122
3746
|
context?: ContextObject;
|
|
3123
3747
|
ext?: ExtensionObject;
|
|
3124
3748
|
}
|