@adcp/client 3.14.1 → 3.15.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.
@@ -170,13 +170,9 @@ export type SignalID2 = {
170
170
  */
171
171
  export interface GetProductsRequest {
172
172
  /**
173
- * Natural language description of campaign requirements. When refining a proposal, can include instructions like 'focus more on German speakers' or 'increase mobile allocation'.
173
+ * Natural language description of campaign requirements.
174
174
  */
175
175
  brief?: string;
176
- /**
177
- * 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.
178
- */
179
- proposal_id?: string;
180
176
  brand_manifest?: BrandManifestReference;
181
177
  product_selectors?: PromotedProducts;
182
178
  /**
@@ -800,6 +796,22 @@ export type DemographicSystem = 'nielsen' | 'barb' | 'agf' | 'oztam' | 'mediamet
800
796
  * Standard marketing event types for event logging, aligned with IAB ECAPI
801
797
  */
802
798
  export type EventType = 'page_view' | 'view_content' | 'select_content' | 'select_item' | 'search' | 'share' | 'add_to_cart' | 'remove_from_cart' | 'viewed_cart' | 'add_to_wishlist' | 'initiate_checkout' | 'add_payment_info' | 'purchase' | 'refund' | 'lead' | 'qualify_lead' | 'close_convert_lead' | 'disqualify_lead' | 'complete_registration' | 'subscribe' | 'start_trial' | 'app_install' | 'app_launch' | 'contact' | 'schedule' | 'donate' | 'submit_application' | 'custom';
799
+ /**
800
+ * How to interpret the points array. 'spend' (default when omitted): points at ascending budget levels. 'reach_freq': points at ascending reach/frequency targets. 'weekly'/'daily': metrics are per-period values. 'clicks'/'conversions': points at ascending outcome targets.
801
+ */
802
+ export type ForecastRangeUnit = 'spend' | 'reach_freq' | 'weekly' | 'daily' | 'clicks' | 'conversions';
803
+ /**
804
+ * Method used to produce this forecast
805
+ */
806
+ export type ForecastMethod = 'estimate' | 'modeled' | 'guaranteed';
807
+ /**
808
+ * Measurement system for the demographic field. Ensures buyer and seller agree on demographic notation.
809
+ */
810
+ export type DemographicSystem1 = 'nielsen' | 'barb' | 'agf' | 'oztam' | 'mediametrie' | 'custom';
811
+ /**
812
+ * Unit of measurement for reach and audience_size metrics in this forecast. Required for cross-channel forecast comparison.
813
+ */
814
+ export type ReachUnit = 'individuals' | 'households' | 'devices' | 'accounts' | 'cookies' | 'custom';
803
815
  /**
804
816
  * Available frequencies for delivery reports and metrics updates
805
817
  */
@@ -870,22 +882,6 @@ export type ActionSource = 'website' | 'app' | 'offline' | 'phone_call' | 'chat'
870
882
  * Days of the week for daypart targeting
871
883
  */
872
884
  export type DayOfWeek = 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sunday';
873
- /**
874
- * How to interpret the points array. 'spend' (default when omitted): points at ascending budget levels. 'reach_freq': points at ascending reach/frequency targets. 'weekly'/'daily': metrics are per-period values. 'clicks'/'conversions': points at ascending outcome targets.
875
- */
876
- export type ForecastRangeUnit = 'spend' | 'reach_freq' | 'weekly' | 'daily' | 'clicks' | 'conversions';
877
- /**
878
- * Method used to produce this forecast
879
- */
880
- export type ForecastMethod = 'estimate' | 'modeled' | 'guaranteed';
881
- /**
882
- * Measurement system for the demographic field. Ensures buyer and seller agree on demographic notation.
883
- */
884
- export type DemographicSystem1 = 'nielsen' | 'barb' | 'agf' | 'oztam' | 'mediametrie' | 'custom';
885
- /**
886
- * Unit of measurement for reach and audience_size metrics in this forecast. Required for cross-channel forecast comparison.
887
- */
888
- export type ReachUnit = 'individuals' | 'households' | 'devices' | 'accounts' | 'cookies' | 'custom';
889
885
  /**
890
886
  * Response payload for get_products task
891
887
  */
@@ -895,7 +891,7 @@ export interface GetProductsResponse {
895
891
  */
896
892
  products: Product[];
897
893
  /**
898
- * 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.
894
+ * 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.
899
895
  */
900
896
  proposals?: Proposal[];
901
897
  /**
@@ -957,10 +953,7 @@ export interface Product {
957
953
  * @minItems 1
958
954
  */
959
955
  pricing_options: [PricingOption, ...PricingOption[]];
960
- /**
961
- * Estimated exposures/impressions for guaranteed products
962
- */
963
- estimated_exposures?: number;
956
+ forecast?: DeliveryForecast;
964
957
  measurement?: Measurement;
965
958
  /**
966
959
  * Measurement provider and methodology for delivery metrics. The buyer accepts the declared provider as the source of truth for the buy. REQUIRED for all products.
@@ -1639,7 +1632,74 @@ export interface PriceGuidance7 {
1639
1632
  [k: string]: unknown | undefined;
1640
1633
  }
1641
1634
  /**
1642
- * Measurement capabilities included with a product
1635
+ * Forecasted delivery metrics for this product. Gives buyers an estimate of expected performance before requesting a proposal.
1636
+ */
1637
+ export interface DeliveryForecast {
1638
+ /**
1639
+ * Forecasted delivery at one or more budget levels. A single point is a standard forecast; multiple points ordered by ascending budget form a curve showing how metrics scale with spend. Each point pairs a budget with metric ranges.
1640
+ *
1641
+ * @minItems 1
1642
+ */
1643
+ points: [ForecastPoint, ...ForecastPoint[]];
1644
+ forecast_range_unit?: ForecastRangeUnit;
1645
+ method: ForecastMethod;
1646
+ /**
1647
+ * ISO 4217 currency code for monetary values in this forecast (spend, budget)
1648
+ */
1649
+ currency: string;
1650
+ demographic_system?: DemographicSystem1;
1651
+ /**
1652
+ * Target demographic code within the specified demographic_system. For Nielsen: P18-49, M25-54, W35+. For BARB: ABC1 Adults, 16-34. For AGF: E 14-49.
1653
+ */
1654
+ demographic?: string;
1655
+ reach_unit?: ReachUnit;
1656
+ /**
1657
+ * When this forecast was computed
1658
+ */
1659
+ generated_at?: string;
1660
+ /**
1661
+ * When this forecast expires. After this time, the forecast should be refreshed. Forecast expiry does not affect proposal executability.
1662
+ */
1663
+ valid_until?: string;
1664
+ ext?: ExtensionObject;
1665
+ [k: string]: unknown | undefined;
1666
+ }
1667
+ /**
1668
+ * A forecast at a specific budget level. A single point represents a standard forecast; multiple points ordered by ascending budget form a curve showing how delivery metrics scale with spend.
1669
+ */
1670
+ export interface ForecastPoint {
1671
+ /**
1672
+ * Budget amount for this forecast point. For allocation-level forecasts, this is the absolute budget for that allocation (not the percentage). For proposal-level forecasts, this is the total proposal budget.
1673
+ */
1674
+ budget: number;
1675
+ /**
1676
+ * Forecasted metric values at this budget level. Keys are either forecastable-metric values for delivery/engagement (impressions, reach, spend, etc.) or event-type values for outcomes (purchase, lead, app_install, etc.). Values are ForecastRange objects (low/mid/high). Use { "mid": value } for point estimates. Include spend when the platform predicts it will differ from budget.
1677
+ */
1678
+ metrics: {
1679
+ [k: string]: ForecastRange | undefined;
1680
+ };
1681
+ [k: string]: unknown | undefined;
1682
+ }
1683
+ /**
1684
+ * A forecast value with optional low/high bounds. The mid value represents the most likely outcome. When low and high are provided, they represent conservative and optimistic estimates respectively.
1685
+ */
1686
+ export interface ForecastRange {
1687
+ /**
1688
+ * Conservative (low-end) forecast value
1689
+ */
1690
+ low?: number;
1691
+ /**
1692
+ * Expected (most likely) forecast value
1693
+ */
1694
+ mid: number;
1695
+ /**
1696
+ * Optimistic (high-end) forecast value
1697
+ */
1698
+ high?: number;
1699
+ [k: string]: unknown | undefined;
1700
+ }
1701
+ /**
1702
+ * 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.
1643
1703
  */
1644
1704
  export interface Measurement {
1645
1705
  /**
@@ -1761,11 +1821,11 @@ export interface FormatID2 {
1761
1821
  [k: string]: unknown | undefined;
1762
1822
  }
1763
1823
  /**
1764
- * 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.
1824
+ * 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.
1765
1825
  */
1766
1826
  export interface Proposal {
1767
1827
  /**
1768
- * Unique identifier for this proposal. Used to refine the proposal in subsequent get_products calls or to execute it via create_media_buy.
1828
+ * Unique identifier for this proposal. Used to execute it via create_media_buy.
1769
1829
  */
1770
1830
  proposal_id: string;
1771
1831
  /**
@@ -1812,7 +1872,7 @@ export interface Proposal {
1812
1872
  * Explanation of how this proposal aligns with the campaign brief
1813
1873
  */
1814
1874
  brief_alignment?: string;
1815
- forecast?: DeliveryForecast1;
1875
+ forecast?: DeliveryForecast2;
1816
1876
  ext?: ExtensionObject;
1817
1877
  [k: string]: unknown | undefined;
1818
1878
  }
@@ -1850,7 +1910,7 @@ export interface ProductAllocation {
1850
1910
  * @minItems 1
1851
1911
  */
1852
1912
  daypart_targets?: [DaypartTarget, ...DaypartTarget[]];
1853
- forecast?: DeliveryForecast;
1913
+ forecast?: DeliveryForecast1;
1854
1914
  ext?: ExtensionObject;
1855
1915
  [k: string]: unknown | undefined;
1856
1916
  }
@@ -1880,7 +1940,7 @@ export interface DaypartTarget {
1880
1940
  /**
1881
1941
  * Forecasted delivery metrics for this allocation
1882
1942
  */
1883
- export interface DeliveryForecast {
1943
+ export interface DeliveryForecast1 {
1884
1944
  /**
1885
1945
  * Forecasted delivery at one or more budget levels. A single point is a standard forecast; multiple points ordered by ascending budget form a curve showing how metrics scale with spend. Each point pairs a budget with metric ranges.
1886
1946
  *
@@ -1910,44 +1970,10 @@ export interface DeliveryForecast {
1910
1970
  ext?: ExtensionObject;
1911
1971
  [k: string]: unknown | undefined;
1912
1972
  }
1913
- /**
1914
- * A forecast at a specific budget level. A single point represents a standard forecast; multiple points ordered by ascending budget form a curve showing how delivery metrics scale with spend.
1915
- */
1916
- export interface ForecastPoint {
1917
- /**
1918
- * Budget amount for this forecast point. For allocation-level forecasts, this is the absolute budget for that allocation (not the percentage). For proposal-level forecasts, this is the total proposal budget.
1919
- */
1920
- budget: number;
1921
- /**
1922
- * Forecasted metric values at this budget level. Keys are either forecastable-metric values for delivery/engagement (impressions, reach, spend, etc.) or event-type values for outcomes (purchase, lead, app_install, etc.). Values are ForecastRange objects (low/mid/high). Use { "mid": value } for point estimates. Include spend when the platform predicts it will differ from budget.
1923
- */
1924
- metrics: {
1925
- [k: string]: ForecastRange | undefined;
1926
- };
1927
- [k: string]: unknown | undefined;
1928
- }
1929
- /**
1930
- * A forecast value with optional low/high bounds. The mid value represents the most likely outcome. When low and high are provided, they represent conservative and optimistic estimates respectively.
1931
- */
1932
- export interface ForecastRange {
1933
- /**
1934
- * Conservative (low-end) forecast value
1935
- */
1936
- low?: number;
1937
- /**
1938
- * Expected (most likely) forecast value
1939
- */
1940
- mid: number;
1941
- /**
1942
- * Optimistic (high-end) forecast value
1943
- */
1944
- high?: number;
1945
- [k: string]: unknown | undefined;
1946
- }
1947
1973
  /**
1948
1974
  * Aggregate forecasted delivery metrics for the entire proposal. When both proposal-level and allocation-level forecasts are present, the proposal-level forecast is authoritative for total delivery estimation.
1949
1975
  */
1950
- export interface DeliveryForecast1 {
1976
+ export interface DeliveryForecast2 {
1951
1977
  /**
1952
1978
  * Forecasted delivery at one or more budget levels. A single point is a standard forecast; multiple points ordered by ascending budget form a curve showing how metrics scale with spend. Each point pairs a budget with metric ranges.
1953
1979
  *
@@ -5113,6 +5139,10 @@ export type WebhookSecurityMethod = 'hmac_sha256' | 'api_key' | 'none';
5113
5139
  /**
5114
5140
  * DAAST (Digital Audio Ad Serving Template) tag for third-party audio ad serving
5115
5141
  */
5142
+ export type CreativeBriefReference = CreativeBrief | string;
5143
+ /**
5144
+ * Request to transform or generate a creative manifest. Takes a source manifest (which may be minimal for pure generation) and produces a target manifest in the specified format. The source manifest should include all assets required by the target format (e.g., promoted_offerings for generative formats).
5145
+ */
5116
5146
  export interface BuildCreativeRequest {
5117
5147
  /**
5118
5148
  * Natural language instructions for the transformation or generation. For pure generation, this is the creative brief. For transformation, this provides guidance on how to adapt the creative.
@@ -5120,6 +5150,8 @@ export interface BuildCreativeRequest {
5120
5150
  message?: string;
5121
5151
  creative_manifest?: CreativeManifest;
5122
5152
  target_format_id: FormatID1;
5153
+ brand_manifest?: BrandManifestReference1;
5154
+ creative_brief?: CreativeBriefReference;
5123
5155
  context?: ContextObject;
5124
5156
  ext?: ExtensionObject;
5125
5157
  }
@@ -5184,6 +5216,76 @@ export interface WebhookAsset {
5184
5216
  /**
5185
5217
  * CSS stylesheet asset
5186
5218
  */
5219
+ export interface CreativeBrief {
5220
+ /**
5221
+ * Campaign or flight name for identification
5222
+ */
5223
+ name: string;
5224
+ /**
5225
+ * Campaign objective that guides creative tone and call-to-action strategy
5226
+ */
5227
+ objective?: 'awareness' | 'consideration' | 'conversion' | 'retention' | 'engagement';
5228
+ /**
5229
+ * Desired tone for this campaign, modulating the brand's base tone (e.g., 'playful and festive', 'premium and aspirational')
5230
+ */
5231
+ tone?: string;
5232
+ /**
5233
+ * Target audience description for this campaign
5234
+ */
5235
+ audience?: string;
5236
+ /**
5237
+ * Creative territory or positioning the campaign should occupy
5238
+ */
5239
+ territory?: string;
5240
+ /**
5241
+ * Messaging framework for the campaign
5242
+ */
5243
+ messaging?: {
5244
+ /**
5245
+ * Primary headline
5246
+ */
5247
+ headline?: string;
5248
+ /**
5249
+ * Supporting tagline or sub-headline
5250
+ */
5251
+ tagline?: string;
5252
+ /**
5253
+ * Call-to-action text
5254
+ */
5255
+ cta?: string;
5256
+ /**
5257
+ * Key messages to communicate in priority order
5258
+ */
5259
+ key_messages?: string[];
5260
+ [k: string]: unknown | undefined;
5261
+ };
5262
+ /**
5263
+ * Visual and strategic reference materials such as mood boards, product shots, example creatives, and strategy documents
5264
+ */
5265
+ reference_assets?: ReferenceAsset[];
5266
+ [k: string]: unknown | undefined;
5267
+ }
5268
+ /**
5269
+ * A reference asset that provides creative context. Carries visual materials (mood boards, product shots, example creatives) with semantic roles that tell creative agents how to use them.
5270
+ */
5271
+ export interface ReferenceAsset {
5272
+ /**
5273
+ * URL to the reference asset (image, video, or document)
5274
+ */
5275
+ url: string;
5276
+ /**
5277
+ * How the creative agent should use this asset. style_reference: match the visual style; product_shot: include this product; mood_board: overall look and feel; example_creative: example of a similar execution; logo: logo to use; strategy_doc: strategy or planning document for context
5278
+ */
5279
+ role: 'style_reference' | 'product_shot' | 'mood_board' | 'example_creative' | 'logo' | 'strategy_doc';
5280
+ /**
5281
+ * Human-readable description of the asset and how it should inform creative generation
5282
+ */
5283
+ description?: string;
5284
+ [k: string]: unknown | undefined;
5285
+ }
5286
+ /**
5287
+ * 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.
5288
+ */
5187
5289
  /**
5188
5290
  * Response containing the transformed or generated creative manifest, ready for use with preview_creative or sync_creatives. Returns either the complete creative manifest OR error information, never both.
5189
5291
  */
@@ -8793,6 +8895,15 @@ export interface GetAdCPCapabilitiesResponse {
8793
8895
  */
8794
8896
  brand_manifest_url?: string;
8795
8897
  };
8898
+ /**
8899
+ * Creative protocol capabilities. Only present if creative is in supported_protocols.
8900
+ */
8901
+ creative?: {
8902
+ /**
8903
+ * Whether this creative agent accepts creative_brief in build_creative requests for structured campaign-level creative direction
8904
+ */
8905
+ supports_brief?: boolean;
8906
+ };
8796
8907
  /**
8797
8908
  * 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.
8798
8909
  */