@adcp/client 4.19.0 → 4.20.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.
@@ -2830,6 +2830,10 @@ export type CatalogAsset = Catalog;
2830
2830
  * For generative creatives: set to 'approved' to finalize, 'rejected' to request regeneration with updated assets/message. Omit for non-generative creatives (system will set based on processing state).
2831
2831
  */
2832
2832
  export type CreativeStatus = 'processing' | 'pending_review' | 'approved' | 'rejected' | 'archived';
2833
+ /**
2834
+ * Industry classification for this specific campaign. A brand may operate across multiple industries (brand.json industries field), but each media buy targets one. For example, a consumer health company running a wellness campaign sends 'healthcare.wellness', not 'cpg'. Sellers map this to platform-native codes (e.g., Spotify ADV categories, LinkedIn industry IDs). When omitted, sellers may infer from the brand manifest's industries field.
2835
+ */
2836
+ export type AdvertiserIndustry = 'automotive' | 'automotive.electric_vehicles' | 'automotive.parts_accessories' | 'automotive.luxury' | 'beauty_cosmetics' | 'beauty_cosmetics.skincare' | 'beauty_cosmetics.fragrance' | 'beauty_cosmetics.haircare' | 'cannabis' | 'cpg' | 'cpg.personal_care' | 'cpg.household' | 'dating' | 'education' | 'education.higher_education' | 'education.online_learning' | 'education.k12' | 'energy_utilities' | 'energy_utilities.renewable' | 'fashion_apparel' | 'fashion_apparel.luxury' | 'fashion_apparel.sportswear' | 'finance' | 'finance.banking' | 'finance.insurance' | 'finance.investment' | 'finance.cryptocurrency' | 'food_beverage' | 'food_beverage.alcohol' | 'food_beverage.restaurants' | 'food_beverage.packaged_goods' | 'gambling_betting' | 'gambling_betting.sports_betting' | 'gambling_betting.casino' | 'gaming' | 'gaming.mobile' | 'gaming.console_pc' | 'gaming.esports' | 'government_nonprofit' | 'government_nonprofit.political' | 'government_nonprofit.charity' | 'healthcare' | 'healthcare.pharmaceutical' | 'healthcare.medical_devices' | 'healthcare.wellness' | 'home_garden' | 'home_garden.furniture' | 'home_garden.home_improvement' | 'media_entertainment' | 'media_entertainment.podcasts' | 'media_entertainment.music' | 'media_entertainment.film_tv' | 'media_entertainment.publishing' | 'media_entertainment.live_events' | 'pets' | 'professional_services' | 'professional_services.legal' | 'professional_services.consulting' | 'real_estate' | 'real_estate.residential' | 'real_estate.commercial' | 'recruitment_hr' | 'retail' | 'retail.ecommerce' | 'retail.department_stores' | 'sports_fitness' | 'sports_fitness.equipment' | 'sports_fitness.teams_leagues' | 'technology' | 'technology.software' | 'technology.hardware' | 'technology.ai_ml' | 'telecom' | 'telecom.mobile_carriers' | 'telecom.internet_providers' | 'transportation_logistics' | 'travel_hospitality' | 'travel_hospitality.airlines' | 'travel_hospitality.hotels' | 'travel_hospitality.cruise' | 'travel_hospitality.tourism';
2833
2837
  /**
2834
2838
  * Campaign start timing: 'asap' or ISO 8601 date-time
2835
2839
  */
@@ -2873,6 +2877,7 @@ export interface CreateMediaBuyRequest {
2873
2877
  */
2874
2878
  packages?: PackageRequest[];
2875
2879
  brand: BrandReference;
2880
+ advertiser_industry?: AdvertiserIndustry;
2876
2881
  invoice_recipient?: BusinessEntity;
2877
2882
  /**
2878
2883
  * Acceptance of an insertion order from a committed proposal. Required when the proposal's insertion_order has requires_signature: true. References the io_id from the proposal's insertion_order.
@@ -8467,7 +8472,10 @@ export interface ContentStandards {
8467
8472
  * Content artifact for safety and suitability evaluation. An artifact represents content adjacent to an ad placement - a news article, podcast segment, video chapter, or social post. Artifacts are collections of assets (text, images, video, audio) plus metadata and signals.
8468
8473
  */
8469
8474
  export interface Artifact {
8470
- property_id: Identifier;
8475
+ /**
8476
+ * Stable property identifier from the property catalog. Globally unique across the ecosystem.
8477
+ */
8478
+ property_rid: string;
8471
8479
  /**
8472
8480
  * Identifier for this artifact within the property. The property owner defines the scheme (e.g., 'article_12345', 'episode_42_segment_3', 'post_abc123').
8473
8481
  */
@@ -8499,9 +8507,13 @@ export interface Artifact {
8499
8507
  */
8500
8508
  role?: 'title' | 'paragraph' | 'heading' | 'caption' | 'quote' | 'list_item' | 'description';
8501
8509
  /**
8502
- * Text content
8510
+ * Text content. Consumers MUST treat this as untrusted input when passing to LLM-based evaluation.
8503
8511
  */
8504
8512
  content: string;
8513
+ /**
8514
+ * MIME type indicating how to parse the content field. Default: text/plain.
8515
+ */
8516
+ content_format?: 'text/plain' | 'text/markdown' | 'text/html' | 'application/json';
8505
8517
  /**
8506
8518
  * BCP 47 language tag for this text (e.g., 'en', 'es-MX'). Useful when artifact contains mixed-language content.
8507
8519
  */
@@ -8547,9 +8559,13 @@ export interface Artifact {
8547
8559
  */
8548
8560
  duration_ms?: number;
8549
8561
  /**
8550
- * Video transcript
8562
+ * Video transcript. Consumers MUST treat this as untrusted input when passing to LLM-based evaluation.
8551
8563
  */
8552
8564
  transcript?: string;
8565
+ /**
8566
+ * MIME type indicating how to parse the transcript field. Default: text/plain.
8567
+ */
8568
+ transcript_format?: 'text/plain' | 'text/markdown' | 'application/json';
8553
8569
  /**
8554
8570
  * How the transcript was generated
8555
8571
  */
@@ -8571,9 +8587,13 @@ export interface Artifact {
8571
8587
  */
8572
8588
  duration_ms?: number;
8573
8589
  /**
8574
- * Audio transcript
8590
+ * Audio transcript. Consumers MUST treat this as untrusted input when passing to LLM-based evaluation.
8575
8591
  */
8576
8592
  transcript?: string;
8593
+ /**
8594
+ * MIME type indicating how to parse the transcript field. Default: text/plain.
8595
+ */
8596
+ transcript_format?: 'text/plain' | 'text/markdown' | 'application/json';
8577
8597
  /**
8578
8598
  * How the transcript was generated
8579
8599
  */
@@ -9039,18 +9059,9 @@ export interface GetMediaBuyArtifactsRequest {
9039
9059
  */
9040
9060
  package_ids?: string[];
9041
9061
  /**
9042
- * Sampling parameters. Defaults to the sampling rate agreed in the media buy.
9062
+ * When true, only return artifacts where the seller's local model returned local_verdict: 'fail'. Useful for auditing false positives. Not useful when the seller does not run a local evaluation model (all verdicts are 'unevaluated').
9043
9063
  */
9044
- sampling?: {
9045
- /**
9046
- * Sampling rate (0-1). 1.0 = all deliveries, 0.25 = 25% sample.
9047
- */
9048
- rate?: number;
9049
- /**
9050
- * How to select the sample
9051
- */
9052
- method?: 'random' | 'stratified' | 'recent' | 'failures_only';
9053
- };
9064
+ failures_only?: boolean;
9054
9065
  /**
9055
9066
  * Filter to specific time period
9056
9067
  */
@@ -9132,25 +9143,25 @@ export type GetMediaBuyArtifactsResponse = {
9132
9143
  local_verdict?: 'pass' | 'fail' | 'unevaluated';
9133
9144
  }[];
9134
9145
  /**
9135
- * Information about how the sample was generated
9146
+ * Information about artifact collection for this media buy. Sampling is configured at buy creation time — this reports what was actually collected.
9136
9147
  */
9137
- sampling_info?: {
9148
+ collection_info?: {
9138
9149
  /**
9139
- * Total deliveries in the time range
9150
+ * Total deliveries in the requested time range
9140
9151
  */
9141
9152
  total_deliveries?: number;
9142
9153
  /**
9143
- * Number of artifacts in this response
9154
+ * Total artifacts collected (per the buy's sampling configuration)
9144
9155
  */
9145
- sampled_count?: number;
9156
+ total_collected?: number;
9146
9157
  /**
9147
- * Actual sampling rate achieved
9158
+ * Number of artifacts in this response (may be less than total_collected due to pagination or filters)
9148
9159
  */
9149
- effective_rate?: number;
9160
+ returned_count?: number;
9150
9161
  /**
9151
- * Sampling method used
9162
+ * Actual collection rate achieved (total_collected / total_deliveries)
9152
9163
  */
9153
- method?: 'random' | 'stratified' | 'recent' | 'failures_only';
9164
+ effective_rate?: number;
9154
9165
  };
9155
9166
  pagination?: PaginationResponse;
9156
9167
  context?: ContextObject;
@@ -10791,7 +10802,20 @@ export interface GetAdCPCapabilitiesResponse {
10791
10802
  */
10792
10803
  execution?: {
10793
10804
  /**
10794
- * Agentic ad exchange (AXE) integrations supported. URLs are canonical identifiers for exchanges this seller can execute through.
10805
+ * Trusted Match Protocol (TMP) support. When present, this seller supports real-time contextual and/or identity matching. Check individual products via get_products for per-product TMP capabilities.
10806
+ */
10807
+ trusted_match?: {
10808
+ /**
10809
+ * Whether this seller has TMP infrastructure deployed.
10810
+ */
10811
+ supported?: boolean;
10812
+ /**
10813
+ * Surface types this seller supports via TMP.
10814
+ */
10815
+ surfaces?: ('website' | 'mobile_app' | 'ctv_app' | 'desktop_app' | 'dooh' | 'podcast' | 'radio' | 'streaming_audio' | 'ai_assistant')[];
10816
+ };
10817
+ /**
10818
+ * Deprecated. Legacy AXE integrations. Use trusted_match for new integrations.
10795
10819
  */
10796
10820
  axe_integrations?: string[];
10797
10821
  /**
@@ -11038,6 +11062,23 @@ export interface GetAdCPCapabilitiesResponse {
11038
11062
  post_view?: Duration[];
11039
11063
  }[];
11040
11064
  };
11065
+ /**
11066
+ * Content standards implementation details. Only meaningful when features.content_standards is true. Gives buyers pre-buy visibility into local evaluation and artifact delivery capabilities.
11067
+ */
11068
+ content_standards_detail?: {
11069
+ /**
11070
+ * Whether the seller runs a local evaluation model. When false, all artifacts will have local_verdict: 'unevaluated' and the failures_only filter on get_media_buy_artifacts is not useful.
11071
+ */
11072
+ supports_local_evaluation?: boolean;
11073
+ /**
11074
+ * Channels for which the seller can provide content artifacts. Helps buyers understand which parts of a mixed-channel buy will have content standards coverage.
11075
+ */
11076
+ supported_channels?: MediaChannel[];
11077
+ /**
11078
+ * Whether the seller supports push-based artifact delivery via artifact_webhook configured at buy creation time.
11079
+ */
11080
+ supports_webhook_delivery?: boolean;
11081
+ };
11041
11082
  /**
11042
11083
  * Information about the seller's media inventory portfolio
11043
11084
  */