@adcp/client 3.20.0 → 3.21.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.
@@ -134,7 +134,7 @@ export interface GetProductsRequest {
134
134
  /**
135
135
  * Buyer's campaign reference label. Groups related discovery and buy operations under a single campaign for CRM and ad server correlation (e.g., 'NovaDrink_Meals_Q2').
136
136
  */
137
- campaign_ref?: string;
137
+ buyer_campaign_ref?: string;
138
138
  filters?: ProductFilters;
139
139
  property_list?: PropertyListReference;
140
140
  pagination?: PaginationRequest;
@@ -820,6 +820,10 @@ export interface CPMPricingOption {
820
820
  * Minimum acceptable bid for auction pricing (mutually exclusive with fixed_price). Bids below this value will be rejected.
821
821
  */
822
822
  floor_price?: number;
823
+ /**
824
+ * When true, bid_price is interpreted as the buyer's maximum willingness to pay (ceiling) rather than an exact price. Sellers may optimize actual clearing prices between floor_price and bid_price based on delivery pacing. When false or absent, bid_price (if provided) is the exact bid/price to honor.
825
+ */
826
+ max_bid?: boolean;
823
827
  price_guidance?: PriceGuidance;
824
828
  /**
825
829
  * Minimum spend requirement per package using this pricing option, in the specified currency
@@ -873,6 +877,10 @@ export interface VCPMPricingOption {
873
877
  * Minimum acceptable bid for auction pricing (mutually exclusive with fixed_price). Bids below this value will be rejected.
874
878
  */
875
879
  floor_price?: number;
880
+ /**
881
+ * When true, bid_price is interpreted as the buyer's maximum willingness to pay (ceiling) rather than an exact price. Sellers may optimize actual clearing prices between floor_price and bid_price based on delivery pacing. When false or absent, bid_price (if provided) is the exact bid/price to honor.
882
+ */
883
+ max_bid?: boolean;
876
884
  price_guidance?: PriceGuidance;
877
885
  /**
878
886
  * Minimum spend requirement per package using this pricing option, in the specified currency
@@ -904,6 +912,10 @@ export interface CPCPricingOption {
904
912
  * Minimum acceptable bid for auction pricing (mutually exclusive with fixed_price). Bids below this value will be rejected.
905
913
  */
906
914
  floor_price?: number;
915
+ /**
916
+ * When true, bid_price is interpreted as the buyer's maximum willingness to pay (ceiling) rather than an exact price. Sellers may optimize actual clearing prices between floor_price and bid_price based on delivery pacing. When false or absent, bid_price (if provided) is the exact bid/price to honor.
917
+ */
918
+ max_bid?: boolean;
907
919
  price_guidance?: PriceGuidance;
908
920
  /**
909
921
  * Minimum spend requirement per package using this pricing option, in the specified currency
@@ -935,6 +947,10 @@ export interface CPCVPricingOption {
935
947
  * Minimum acceptable bid for auction pricing (mutually exclusive with fixed_price). Bids below this value will be rejected.
936
948
  */
937
949
  floor_price?: number;
950
+ /**
951
+ * When true, bid_price is interpreted as the buyer's maximum willingness to pay (ceiling) rather than an exact price. Sellers may optimize actual clearing prices between floor_price and bid_price based on delivery pacing. When false or absent, bid_price (if provided) is the exact bid/price to honor.
952
+ */
953
+ max_bid?: boolean;
938
954
  price_guidance?: PriceGuidance;
939
955
  /**
940
956
  * Minimum spend requirement per package using this pricing option, in the specified currency
@@ -966,6 +982,10 @@ export interface CPVPricingOption {
966
982
  * Minimum acceptable bid for auction pricing (mutually exclusive with fixed_price). Bids below this value will be rejected.
967
983
  */
968
984
  floor_price?: number;
985
+ /**
986
+ * When true, bid_price is interpreted as the buyer's maximum willingness to pay (ceiling) rather than an exact price. Sellers may optimize actual clearing prices between floor_price and bid_price based on delivery pacing. When false or absent, bid_price (if provided) is the exact bid/price to honor.
987
+ */
988
+ max_bid?: boolean;
969
989
  price_guidance?: PriceGuidance;
970
990
  /**
971
991
  * CPV-specific parameters defining the view threshold
@@ -2327,7 +2347,7 @@ export interface CreateMediaBuyRequest {
2327
2347
  /**
2328
2348
  * Buyer's campaign reference label. Groups related discovery and buy operations under a single campaign for CRM and ad server correlation (e.g., 'NovaDrink_Meals_Q2').
2329
2349
  */
2330
- campaign_ref?: string;
2350
+ buyer_campaign_ref?: string;
2331
2351
  /**
2332
2352
  * Account to bill for this media buy. Required when the agent has access to multiple accounts; when omitted, the seller uses the agent's sole account. The seller maps the agent's brand + operator to an account during sync_accounts; the agent passes that account_id here.
2333
2353
  */
@@ -2435,7 +2455,7 @@ export interface PackageRequest {
2435
2455
  */
2436
2456
  pricing_option_id: string;
2437
2457
  /**
2438
- * Bid price for auction-based CPM pricing (required if using cpm-auction-option)
2458
+ * Bid price for auction-based pricing options. This is the exact bid/price to honor unless selected pricing_option has max_bid=true, in which case bid_price is the buyer's maximum willingness to pay (ceiling).
2439
2459
  */
2440
2460
  bid_price?: number;
2441
2461
  /**
@@ -3196,7 +3216,7 @@ export interface CreateMediaBuySuccess {
3196
3216
  /**
3197
3217
  * Buyer's campaign reference label, echoed from the request
3198
3218
  */
3199
- campaign_ref?: string;
3219
+ buyer_campaign_ref?: string;
3200
3220
  account?: Account;
3201
3221
  /**
3202
3222
  * ISO 8601 timestamp for creative upload deadline
@@ -3301,7 +3321,7 @@ export interface Package {
3301
3321
  */
3302
3322
  pricing_option_id?: string;
3303
3323
  /**
3304
- * Bid price for auction-based CPM pricing (present if using cpm-auction-option)
3324
+ * Bid price for auction-based pricing. This is the exact bid/price to honor unless the selected pricing option has max_bid=true, in which case bid_price is the buyer's maximum willingness to pay (ceiling).
3305
3325
  */
3306
3326
  bid_price?: number;
3307
3327
  /**
@@ -3907,7 +3927,7 @@ export type PackageUpdate = {
3907
3927
  budget?: number;
3908
3928
  pacing?: Pacing;
3909
3929
  /**
3910
- * Updated bid price for auction-based pricing options (only applies when pricing_option is auction-based)
3930
+ * Updated bid price for auction-based pricing options. This is the exact bid/price to honor unless selected pricing_option has max_bid=true, in which case bid_price is the buyer's maximum willingness to pay (ceiling).
3911
3931
  */
3912
3932
  bid_price?: number;
3913
3933
  /**
@@ -3990,7 +4010,204 @@ export interface UpdateMediaBuyError {
3990
4010
  */
3991
4011
  export type MediaBuyStatus = 'pending_activation' | 'active' | 'paused' | 'completed';
3992
4012
  /**
3993
- * Request parameters for retrieving comprehensive delivery metrics
4013
+ * Request parameters for retrieving media buy status, creative approval state, and optional delivery snapshots
4014
+ */
4015
+ export interface GetMediaBuysRequest {
4016
+ /**
4017
+ * Filter to a specific account. When omitted, returns media buys across all accessible accounts. Optional if the agent has a single account.
4018
+ */
4019
+ account_id?: string;
4020
+ /**
4021
+ * Array of publisher media buy IDs to retrieve. When omitted along with buyer_refs, returns a paginated set of accessible media buys matching status_filter.
4022
+ */
4023
+ media_buy_ids?: string[];
4024
+ /**
4025
+ * Array of buyer reference IDs to retrieve
4026
+ */
4027
+ buyer_refs?: string[];
4028
+ /**
4029
+ * Filter by status. Can be a single status or array of statuses. Defaults to ["active"] only when media_buy_ids and buyer_refs are both omitted. When media_buy_ids or buyer_refs are provided, no implicit status filter is applied.
4030
+ */
4031
+ status_filter?: MediaBuyStatus | MediaBuyStatus[];
4032
+ /**
4033
+ * When true, include a near-real-time delivery snapshot for each package. Snapshots reflect the latest available entity-level stats from the platform (e.g., updated every ~15 minutes on GAM, ~1 hour on batch-only platforms). The staleness_seconds field on each snapshot indicates data freshness. If a snapshot cannot be returned, package.snapshot_unavailable_reason explains why. Defaults to false.
4034
+ */
4035
+ include_snapshot?: boolean;
4036
+ pagination?: PaginationRequest;
4037
+ context?: ContextObject;
4038
+ ext?: ExtensionObject;
4039
+ }
4040
+ /**
4041
+ * Cursor-based pagination controls. Strongly recommended when querying broad scopes (for example, all active media buys in an account).
4042
+ */
4043
+ /**
4044
+ * Status of a media buy
4045
+ */
4046
+ export type CreativeApprovalStatus = 'pending_review' | 'approved' | 'rejected';
4047
+ /**
4048
+ * Response payload for get_media_buys task. Returns media buy configuration, creative approval state, and optional delivery snapshots.
4049
+ */
4050
+ export interface GetMediaBuysResponse {
4051
+ /**
4052
+ * Array of media buys with status, creative approval state, and optional delivery snapshots
4053
+ */
4054
+ media_buys: {
4055
+ /**
4056
+ * Publisher's unique identifier for the media buy
4057
+ */
4058
+ media_buy_id: string;
4059
+ /**
4060
+ * Buyer's reference identifier for this media buy
4061
+ */
4062
+ buyer_ref?: string;
4063
+ /**
4064
+ * Buyer campaign reference label sourced from create_media_buy.buyer_campaign_ref. Groups related operations under a single campaign; may be absent when not provided at creation time.
4065
+ */
4066
+ buyer_campaign_ref?: string;
4067
+ account?: Account;
4068
+ status: MediaBuyStatus;
4069
+ /**
4070
+ * ISO 4217 currency code (e.g., USD, EUR, GBP) for monetary values at this media buy level. total_budget is always denominated in this currency. Package-level fields may override with package.currency.
4071
+ */
4072
+ currency: string;
4073
+ /**
4074
+ * Total budget amount across all packages, denominated in media_buy.currency
4075
+ */
4076
+ total_budget: number;
4077
+ /**
4078
+ * ISO 8601 timestamp for creative upload deadline
4079
+ */
4080
+ creative_deadline?: string;
4081
+ /**
4082
+ * Creation timestamp
4083
+ */
4084
+ created_at?: string;
4085
+ /**
4086
+ * Last update timestamp
4087
+ */
4088
+ updated_at?: string;
4089
+ /**
4090
+ * Packages within this media buy, augmented with creative approval status and optional delivery snapshots
4091
+ */
4092
+ packages: {
4093
+ /**
4094
+ * Publisher's package identifier
4095
+ */
4096
+ package_id: string;
4097
+ /**
4098
+ * Buyer's reference identifier for this package
4099
+ */
4100
+ buyer_ref?: string;
4101
+ /**
4102
+ * Product identifier this package is purchased from
4103
+ */
4104
+ product_id?: string;
4105
+ /**
4106
+ * Package budget amount, denominated in package.currency when present, otherwise media_buy.currency
4107
+ */
4108
+ budget?: number;
4109
+ /**
4110
+ * ISO 4217 currency code for monetary values at this package level (budget, bid_price, snapshot.spend). When absent, inherit media_buy.currency.
4111
+ */
4112
+ currency?: string;
4113
+ /**
4114
+ * Current bid price for auction-based packages. Denominated in package.currency when present, otherwise media_buy.currency. Relevant for automated price optimization loops.
4115
+ */
4116
+ bid_price?: number;
4117
+ /**
4118
+ * Goal impression count for impression-based packages
4119
+ */
4120
+ impressions?: number;
4121
+ /**
4122
+ * ISO 8601 flight start time for this package. Use to determine whether the package is within its scheduled flight before interpreting delivery status.
4123
+ */
4124
+ start_time?: string;
4125
+ /**
4126
+ * ISO 8601 flight end time for this package
4127
+ */
4128
+ end_time?: string;
4129
+ /**
4130
+ * Whether this package is currently paused by the buyer
4131
+ */
4132
+ paused?: boolean;
4133
+ /**
4134
+ * Approval status for each creative assigned to this package. Absent when no creatives have been assigned.
4135
+ */
4136
+ creative_approvals?: {
4137
+ /**
4138
+ * Creative identifier
4139
+ */
4140
+ creative_id: string;
4141
+ approval_status: CreativeApprovalStatus;
4142
+ /**
4143
+ * Human-readable explanation of why the creative was rejected. Present only when approval_status is 'rejected'.
4144
+ */
4145
+ rejection_reason?: string;
4146
+ }[];
4147
+ /**
4148
+ * Format IDs from the original create_media_buy format_ids_to_provide that have not yet been uploaded via sync_creatives. When empty or absent, all required formats have been provided.
4149
+ */
4150
+ format_ids_pending?: FormatID[];
4151
+ /**
4152
+ * Machine-readable reason the snapshot is omitted. Present only when include_snapshot was true and snapshot is unavailable for this package.
4153
+ */
4154
+ snapshot_unavailable_reason?: 'SNAPSHOT_UNSUPPORTED' | 'SNAPSHOT_TEMPORARILY_UNAVAILABLE' | 'SNAPSHOT_PERMISSION_DENIED';
4155
+ /**
4156
+ * Near-real-time delivery snapshot for this package. Only present when include_snapshot was true in the request. Represents the latest available entity-level stats from the platform — not billing-grade data.
4157
+ */
4158
+ snapshot?: {
4159
+ /**
4160
+ * ISO 8601 timestamp when this snapshot was captured by the platform
4161
+ */
4162
+ as_of: string;
4163
+ /**
4164
+ * Maximum age of this data in seconds. For example, 900 means the data may be up to 15 minutes old. Use this to interpret zero delivery: a value of 900 means zero impressions is likely real; a value of 14400 means reporting may still be catching up.
4165
+ */
4166
+ staleness_seconds: number;
4167
+ /**
4168
+ * Total impressions delivered since package start
4169
+ */
4170
+ impressions: number;
4171
+ /**
4172
+ * Total spend since package start, denominated in snapshot.currency when present, otherwise package.currency or media_buy.currency
4173
+ */
4174
+ spend: number;
4175
+ /**
4176
+ * ISO 4217 currency code for spend in this snapshot. Optional when unchanged from package.currency or media_buy.currency.
4177
+ */
4178
+ currency?: string;
4179
+ /**
4180
+ * Total clicks since package start (when available)
4181
+ */
4182
+ clicks?: number;
4183
+ /**
4184
+ * Current delivery pace relative to expected (1.0 = on track, <1.0 = behind, >1.0 = ahead). Absent when pacing cannot be determined.
4185
+ */
4186
+ pacing_index?: number;
4187
+ /**
4188
+ * Operational delivery state of this package. 'not_delivering' means the package is within its scheduled flight but has delivered zero impressions for at least one full staleness cycle — the signal for automated price adjustments or buyer alerts. Implementers must not return 'not_delivering' until at least staleness_seconds have elapsed since package activation.
4189
+ */
4190
+ delivery_status?: 'delivering' | 'not_delivering' | 'completed' | 'budget_exhausted' | 'flight_ended' | 'goal_met';
4191
+ ext?: ExtensionObject;
4192
+ };
4193
+ ext?: ExtensionObject;
4194
+ }[];
4195
+ ext?: ExtensionObject;
4196
+ }[];
4197
+ /**
4198
+ * Task-specific errors (e.g., media buy not found)
4199
+ */
4200
+ errors?: Error[];
4201
+ pagination?: PaginationResponse;
4202
+ /**
4203
+ * When true, this response contains simulated data from sandbox mode.
4204
+ */
4205
+ sandbox?: boolean;
4206
+ context?: ContextObject;
4207
+ ext?: ExtensionObject;
4208
+ }
4209
+ /**
4210
+ * Account billed for this media buy
3994
4211
  */
3995
4212
  export interface GetMediaBuyDeliveryRequest {
3996
4213
  /**
@@ -4131,13 +4348,13 @@ export interface GetMediaBuyDeliveryResponse {
4131
4348
  */
4132
4349
  buyer_ref?: string;
4133
4350
  /**
4134
- * Buyer's campaign reference label. Groups related operations under a single campaign for CRM and ad server correlation.
4351
+ * Buyer's campaign reference label from create_media_buy.buyer_campaign_ref. Groups related operations under a single campaign for CRM and ad server correlation; may be absent when not provided at creation time.
4135
4352
  */
4136
- campaign_ref?: string;
4353
+ buyer_campaign_ref?: string;
4137
4354
  /**
4138
- * Current media buy status. In webhook context, reporting_delayed indicates data temporarily unavailable.
4355
+ * Current media buy status. Lifecycle states use the same taxonomy as media-buy-status (`pending_activation`, `active`, `paused`, `completed`). In webhook context, reporting_delayed indicates data temporarily unavailable. `pending` is accepted as a legacy alias for pending_activation.
4139
4356
  */
4140
- status: 'pending' | 'active' | 'paused' | 'completed' | 'failed' | 'reporting_delayed';
4357
+ status: 'pending_activation' | 'pending' | 'active' | 'paused' | 'completed' | 'failed' | 'reporting_delayed';
4141
4358
  /**
4142
4359
  * When delayed data is expected to be available (only present when status is reporting_delayed)
4143
4360
  */
@@ -7558,6 +7775,95 @@ export type GetMediaBuyArtifactsResponse = {
7558
7775
  /**
7559
7776
  * Type of identifier
7560
7777
  */
7778
+ /**
7779
+ * Catalog type. Structural types: 'offering' (AdCP Offering objects), 'product' (ecommerce entries), 'inventory' (stock per location), 'store' (physical locations), 'promotion' (deals and pricing). Vertical types: 'hotel', 'flight', 'job', 'vehicle', 'real_estate', 'education', 'destination', 'app' — each with an industry-specific item schema.
7780
+ */
7781
+ export interface GetCreativeFeaturesRequest {
7782
+ creative_manifest: CreativeManifest;
7783
+ /**
7784
+ * Optional filter to specific features. If omitted, returns all available features.
7785
+ */
7786
+ feature_ids?: string[];
7787
+ context?: ContextObject;
7788
+ ext?: ExtensionObject;
7789
+ }
7790
+ /**
7791
+ * The creative manifest to evaluate. Contains format_id and assets.
7792
+ */
7793
+ /**
7794
+ * Response payload for get_creative_features task. Returns feature values for the evaluated creative.
7795
+ */
7796
+ export type GetCreativeFeaturesResponse = {
7797
+ /**
7798
+ * Feature values for the evaluated creative
7799
+ */
7800
+ results: CreativeFeatureResult[];
7801
+ /**
7802
+ * URL to the vendor's full assessment report. The vendor controls what information is disclosed and access control.
7803
+ */
7804
+ detail_url?: string;
7805
+ /**
7806
+ * Field must not be present in success response
7807
+ */
7808
+ errors?: {
7809
+ [k: string]: unknown | undefined;
7810
+ };
7811
+ context?: ContextObject;
7812
+ ext?: ExtensionObject;
7813
+ } | {
7814
+ errors: Error[];
7815
+ /**
7816
+ * Field must not be present in error response
7817
+ */
7818
+ results?: {
7819
+ [k: string]: unknown | undefined;
7820
+ };
7821
+ context?: ContextObject;
7822
+ ext?: ExtensionObject;
7823
+ };
7824
+ /**
7825
+ * A single feature evaluation result for a creative. Uses the same value structure as property-feature-value (value, confidence, expires_at, etc.).
7826
+ */
7827
+ export interface CreativeFeatureResult {
7828
+ /**
7829
+ * The feature that was evaluated (e.g., 'auto_redirect', 'brand_consistency', 'iab_casinos_gambling')
7830
+ */
7831
+ feature_id: string;
7832
+ /**
7833
+ * The feature value. Type depends on feature definition: boolean for binary, number for quantitative, string for categorical.
7834
+ */
7835
+ value: boolean | number | string;
7836
+ /**
7837
+ * Unit of measurement for quantitative values (e.g., 'percentage', 'score')
7838
+ */
7839
+ unit?: string;
7840
+ /**
7841
+ * Confidence score for this value (0-1)
7842
+ */
7843
+ confidence?: number;
7844
+ /**
7845
+ * When this feature was evaluated
7846
+ */
7847
+ measured_at?: string;
7848
+ /**
7849
+ * When this evaluation expires and should be refreshed
7850
+ */
7851
+ expires_at?: string;
7852
+ /**
7853
+ * Version of the methodology used to evaluate this feature
7854
+ */
7855
+ methodology_version?: string;
7856
+ /**
7857
+ * Additional vendor-specific details about this evaluation
7858
+ */
7859
+ details?: {
7860
+ [k: string]: unknown | undefined;
7861
+ };
7862
+ ext?: ExtensionObject;
7863
+ }
7864
+ /**
7865
+ * 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.
7866
+ */
7561
7867
  /**
7562
7868
  * Get offering details and availability before session handoff. Returns offering information, availability status, and optionally matching products based on context.
7563
7869
  */
@@ -8492,7 +8798,7 @@ export interface GetAdCPCapabilitiesResponse {
8492
8798
  };
8493
8799
  };
8494
8800
  /**
8495
- * Governance protocol capabilities. Only present if governance is in supported_protocols. Governance agents provide property data like compliance scores, brand safety ratings, and sustainability metrics.
8801
+ * Governance protocol capabilities. Only present if governance is in supported_protocols. Governance agents provide property and creative data like compliance scores, brand safety ratings, sustainability metrics, and creative quality assessments.
8496
8802
  */
8497
8803
  governance?: {
8498
8804
  /**
@@ -8533,6 +8839,44 @@ export interface GetAdCPCapabilitiesResponse {
8533
8839
  */
8534
8840
  methodology_url?: string;
8535
8841
  }[];
8842
+ /**
8843
+ * Creative features this governance agent can evaluate. Each feature describes a score, rating, or assessment the agent can provide for creatives (e.g., security scanning, creative quality, content categorization).
8844
+ */
8845
+ creative_features?: {
8846
+ /**
8847
+ * Unique identifier for this feature (e.g., 'auto_redirect', 'brand_consistency', 'iab_casinos_gambling')
8848
+ */
8849
+ feature_id: string;
8850
+ /**
8851
+ * Data type: 'binary' for yes/no, 'quantitative' for numeric scores, 'categorical' for enum values
8852
+ */
8853
+ type: 'binary' | 'quantitative' | 'categorical';
8854
+ /**
8855
+ * For quantitative features, the valid range
8856
+ */
8857
+ range?: {
8858
+ /**
8859
+ * Minimum value
8860
+ */
8861
+ min: number;
8862
+ /**
8863
+ * Maximum value
8864
+ */
8865
+ max: number;
8866
+ };
8867
+ /**
8868
+ * For categorical features, the valid values
8869
+ */
8870
+ categories?: string[];
8871
+ /**
8872
+ * Human-readable description of what this feature measures
8873
+ */
8874
+ description?: string;
8875
+ /**
8876
+ * URL to documentation explaining how this feature is calculated or measured.
8877
+ */
8878
+ methodology_url?: string;
8879
+ }[];
8536
8880
  };
8537
8881
  /**
8538
8882
  * Sponsored Intelligence protocol capabilities. Only present if sponsored_intelligence is in supported_protocols. SI agents handle conversational brand experiences.