@adcp/client 4.18.0 → 4.18.2

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.
@@ -57,6 +57,10 @@ export type MetroAreaSystem = 'nielsen_dma' | 'uk_itl1' | 'uk_itl2' | 'eurostat_
57
57
  * 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.
58
58
  */
59
59
  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';
60
+ /**
61
+ * What the publisher wants back from a TMP context match. Determines the richness level of the buyer's offer response.
62
+ */
63
+ export type TMPResponseType = 'activation' | 'catalog_items' | 'creative' | 'deal';
60
64
  /**
61
65
  * Geographic targeting level (country, region, metro, postal_area)
62
66
  */
@@ -200,7 +204,7 @@ export interface GetProductsRequest {
200
204
  /**
201
205
  * Specific product fields to include in the response. When omitted, all fields are returned. Use for lightweight discovery calls where only a subset of product data is needed (e.g., just IDs and pricing for comparison). Required fields (product_id, name) are always included regardless of selection.
202
206
  */
203
- fields?: ('product_id' | 'name' | 'description' | 'publisher_properties' | 'channels' | 'format_ids' | 'placements' | 'delivery_type' | 'exclusivity' | 'pricing_options' | 'forecast' | 'outcome_measurement' | 'delivery_measurement' | 'reporting_capabilities' | 'creative_policy' | 'catalog_types' | 'metric_optimization' | 'conversion_tracking' | 'data_provider_signals' | 'max_optimization_goals' | 'catalog_match' | 'collections' | 'collection_targeting_allowed' | 'installments' | 'brief_relevance' | 'expires_at' | 'product_card' | 'product_card_detailed' | 'enforced_policies')[];
207
+ fields?: ('product_id' | 'name' | 'description' | 'publisher_properties' | 'channels' | 'format_ids' | 'placements' | 'delivery_type' | 'exclusivity' | 'pricing_options' | 'forecast' | 'outcome_measurement' | 'delivery_measurement' | 'reporting_capabilities' | 'creative_policy' | 'catalog_types' | 'metric_optimization' | 'conversion_tracking' | 'data_provider_signals' | 'max_optimization_goals' | 'catalog_match' | 'collections' | 'collection_targeting_allowed' | 'installments' | 'brief_relevance' | 'expires_at' | 'product_card' | 'product_card_detailed' | 'enforced_policies' | 'trusted_match')[];
204
208
  /**
205
209
  * Maximum time the buyer will commit to this request. The seller returns the best results achievable within this budget and does not start processes (human approvals, expensive external queries) that cannot complete in time. When omitted, the seller decides timing.
206
210
  */
@@ -390,9 +394,36 @@ export interface ProductFilters {
390
394
  */
391
395
  channels?: MediaChannel[];
392
396
  /**
393
- * Filter to products executable through specific agentic ad exchanges. URLs are canonical identifiers.
397
+ * @deprecated
398
+ * Deprecated: Use trusted_match filter instead. Filter to products executable through specific agentic ad exchanges. URLs are canonical identifiers.
394
399
  */
395
400
  required_axe_integrations?: string[];
401
+ /**
402
+ * Filter products by Trusted Match Protocol capabilities. Only products with matching TMP support are returned.
403
+ */
404
+ trusted_match?: {
405
+ /**
406
+ * Filter to products with specific TMP providers and match types. Each entry identifies a provider by agent_url and optionally requires specific match capabilities. Products must match at least one entry.
407
+ */
408
+ providers?: {
409
+ /**
410
+ * Provider's agent URL from the registry.
411
+ */
412
+ agent_url: string;
413
+ /**
414
+ * When true, require this provider to support context match.
415
+ */
416
+ context_match?: boolean;
417
+ /**
418
+ * When true, require this provider to support identity match.
419
+ */
420
+ identity_match?: boolean;
421
+ }[];
422
+ /**
423
+ * Filter to products supporting specific TMP response types (e.g., 'activation', 'creative', 'catalog_items'). Products must support at least one of the listed types.
424
+ */
425
+ response_types?: TMPResponseType[];
426
+ };
396
427
  required_features?: MediaBuyFeatures;
397
428
  /**
398
429
  * Filter to products from sellers supporting specific geo targeting capabilities. Each entry specifies a targeting level (country, region, metro, postal_area) and optionally a system for levels that have multiple classification systems.
@@ -666,10 +697,6 @@ export type TalentRole = 'host' | 'guest' | 'creator' | 'cast' | 'narrator' | 'p
666
697
  * What kind of derivative content this is
667
698
  */
668
699
  export type DerivativeType = 'clip' | 'highlight' | 'recap' | 'trailer' | 'bonus';
669
- /**
670
- * What the publisher wants back from a TMP context match. Determines the richness level of the buyer's offer response.
671
- */
672
- export type TMPResponseType = 'activation' | 'catalog_items' | 'creative' | 'deal';
673
700
  /**
674
701
  * Days of the week for daypart targeting
675
702
  */
@@ -951,6 +978,23 @@ export interface Product {
951
978
  * Whether the buyer can select a brand at match time. When false (default), the brand must be specified on the media buy/package. When true, the buyer's offer can include any brand — the publisher applies approval rules at match time. Enables multi-brand agreements where the holding company or buyer agent selects brand based on context.
952
979
  */
953
980
  dynamic_brands?: boolean;
981
+ /**
982
+ * TMP providers integrated with this product's inventory. Each entry identifies a provider by agent_url (from the registry) and declares what match types it supports for this product. The product-level context_match and identity_match booleans declare what the product supports overall; the per-provider booleans declare which provider handles each match type. Enables buyer discovery: 'find products where a specific provider does context matching.'
983
+ */
984
+ providers?: {
985
+ /**
986
+ * Provider's agent URL from the registry. Canonical identifier for this TMP provider.
987
+ */
988
+ agent_url: string;
989
+ /**
990
+ * Whether this provider handles context match for this product.
991
+ */
992
+ context_match?: boolean;
993
+ /**
994
+ * Whether this provider handles identity match for this product.
995
+ */
996
+ identity_match?: boolean;
997
+ }[];
954
998
  };
955
999
  /**
956
1000
  * Instructions for submitting physical creative materials (print, static OOH, cinema). Present only for products requiring physical delivery outside the digital creative assignment flow. Buyer agents MUST validate url and email domains against the seller's known domains (from adagents.json) before submitting materials. Never auto-submit without human confirmation.
@@ -973,7 +1017,7 @@ export interface Product {
973
1017
  ext?: ExtensionObject;
974
1018
  }
975
1019
  /**
976
- * Represents a specific ad placement within a product's inventory
1020
+ * Represents a specific ad placement within a product's inventory. When the publisher declares a placement registry in adagents.json, products SHOULD reuse those placement_id values. Reusing a registered placement_id preserves the registry's semantic identity; product-level placement objects may narrow format_ids or add operational detail, but SHOULD NOT redefine the placement's meaning incompatibly.
977
1021
  */
978
1022
  export interface Placement {
979
1023
  /**
@@ -988,6 +1032,10 @@ export interface Placement {
988
1032
  * Detailed description of where and how the placement appears
989
1033
  */
990
1034
  description?: string;
1035
+ /**
1036
+ * Optional tags for grouping placements within a product (e.g., 'homepage', 'native', 'premium'). When the placement_id comes from the publisher registry, these should align with the registry tags unless the product is narrowing scope.
1037
+ */
1038
+ tags?: string[];
991
1039
  /**
992
1040
  * Format IDs supported by this specific placement. Can include: (1) concrete format_ids (fixed dimensions), (2) template format_ids without parameters (accepts any dimensions/duration), or (3) parameterized format_ids (specific dimension/duration constraints).
993
1041
  */
@@ -2996,11 +3044,13 @@ export interface TargetingOverlay {
2996
3044
  */
2997
3045
  daypart_targets?: DaypartTarget[];
2998
3046
  /**
2999
- * AXE segment ID to include for targeting
3047
+ * @deprecated
3048
+ * Deprecated: Use TMP provider fields instead. AXE segment ID to include for targeting.
3000
3049
  */
3001
3050
  axe_include_segment?: string;
3002
3051
  /**
3003
- * AXE segment ID to exclude from targeting
3052
+ * @deprecated
3053
+ * Deprecated: Use TMP provider fields instead. AXE segment ID to exclude from targeting.
3004
3054
  */
3005
3055
  axe_exclude_segment?: string;
3006
3056
  /**