@adcp/client 3.11.2 → 3.12.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/dist/lib/adapters/property-list-adapter.d.ts.map +1 -1
- package/dist/lib/adapters/property-list-adapter.js +10 -5
- package/dist/lib/adapters/property-list-adapter.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/index.d.ts +4 -2
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +14 -3
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/testing/scenarios/creative.js +11 -1
- package/dist/lib/testing/scenarios/creative.js.map +1 -1
- package/dist/lib/testing/types.d.ts +12 -0
- package/dist/lib/testing/types.d.ts.map +1 -1
- package/dist/lib/types/adcp.d.ts +1 -0
- package/dist/lib/types/adcp.d.ts.map +1 -1
- package/dist/lib/types/core.generated.d.ts +478 -42
- 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 +3031 -1004
- package/dist/lib/types/schemas.generated.d.ts.map +1 -1
- package/dist/lib/types/schemas.generated.js +623 -138
- package/dist/lib/types/schemas.generated.js.map +1 -1
- package/dist/lib/types/tools.generated.d.ts +1940 -305
- package/dist/lib/types/tools.generated.d.ts.map +1 -1
- package/dist/lib/types/tools.generated.js +0 -3
- package/dist/lib/types/tools.generated.js.map +1 -1
- package/dist/lib/utils/capabilities.d.ts +4 -0
- package/dist/lib/utils/capabilities.d.ts.map +1 -1
- package/dist/lib/utils/capabilities.js +6 -1
- package/dist/lib/utils/capabilities.js.map +1 -1
- package/dist/lib/utils/index.d.ts +2 -1
- package/dist/lib/utils/index.d.ts.map +1 -1
- package/dist/lib/utils/index.js +6 -1
- package/dist/lib/utils/index.js.map +1 -1
- package/dist/lib/utils/pagination.d.ts +31 -0
- package/dist/lib/utils/pagination.d.ts.map +1 -0
- package/dist/lib/utils/pagination.js +51 -0
- package/dist/lib/utils/pagination.js.map +1 -0
- package/dist/lib/utils/pricing-adapter.d.ts +4 -0
- package/dist/lib/utils/pricing-adapter.d.ts.map +1 -1
- package/dist/lib/utils/pricing-adapter.js +7 -0
- package/dist/lib/utils/pricing-adapter.js.map +1 -1
- package/dist/lib/version.d.ts +3 -3
- package/dist/lib/version.d.ts.map +1 -1
- package/dist/lib/version.js +3 -3
- package/dist/lib/version.js.map +1 -1
- package/package.json +1 -1
|
@@ -11,7 +11,7 @@ export type AssetContentType = 'image' | 'video' | 'audio' | 'text' | 'markdown'
|
|
|
11
11
|
*/
|
|
12
12
|
export type DeliveryType = 'guaranteed' | 'non_guaranteed';
|
|
13
13
|
/**
|
|
14
|
-
* High-level categories for creative formats
|
|
14
|
+
* DEPRECATED: High-level categories for creative formats. These categories are lossy abstractions that don't scale well to emerging ad formats. Use the assets array in Format objects to understand creative requirements instead - it provides precise information about what asset types are needed (video, image, text, etc.).
|
|
15
15
|
*/
|
|
16
16
|
export type FormatCategory = 'audio' | 'video' | 'display' | 'native' | 'dooh' | 'rich_media' | 'universal';
|
|
17
17
|
/**
|
|
@@ -178,12 +178,14 @@ export interface GetProductsRequest {
|
|
|
178
178
|
*/
|
|
179
179
|
proposal_id?: string;
|
|
180
180
|
brand_manifest?: BrandManifestReference;
|
|
181
|
+
product_selectors?: PromotedProducts;
|
|
181
182
|
/**
|
|
182
|
-
* Account
|
|
183
|
+
* Account ID for product lookup. Required when the seller declares account.required_for_products = true in capabilities. Returns products with pricing specific to this account's rate card.
|
|
183
184
|
*/
|
|
184
185
|
account_id?: string;
|
|
185
186
|
filters?: ProductFilters;
|
|
186
187
|
property_list?: PropertyListReference;
|
|
188
|
+
pagination?: PaginationRequest;
|
|
187
189
|
context?: ContextObject;
|
|
188
190
|
ext?: ExtensionObject;
|
|
189
191
|
}
|
|
@@ -241,29 +243,29 @@ export interface BrandManifest {
|
|
|
241
243
|
height?: number;
|
|
242
244
|
}[];
|
|
243
245
|
/**
|
|
244
|
-
* Brand color palette
|
|
246
|
+
* Brand color palette. Each role accepts a single hex color or an array of hex colors for brands with multiple values per role.
|
|
245
247
|
*/
|
|
246
248
|
colors?: {
|
|
247
249
|
/**
|
|
248
|
-
* Primary brand color
|
|
250
|
+
* Primary brand color(s)
|
|
249
251
|
*/
|
|
250
|
-
primary?: string;
|
|
252
|
+
primary?: string | [string, ...string[]];
|
|
251
253
|
/**
|
|
252
|
-
* Secondary brand color
|
|
254
|
+
* Secondary brand color(s)
|
|
253
255
|
*/
|
|
254
|
-
secondary?: string;
|
|
256
|
+
secondary?: string | [string, ...string[]];
|
|
255
257
|
/**
|
|
256
|
-
* Accent color
|
|
258
|
+
* Accent color(s)
|
|
257
259
|
*/
|
|
258
|
-
accent?: string;
|
|
260
|
+
accent?: string | [string, ...string[]];
|
|
259
261
|
/**
|
|
260
|
-
* Background color
|
|
262
|
+
* Background color(s)
|
|
261
263
|
*/
|
|
262
|
-
background?: string;
|
|
264
|
+
background?: string | [string, ...string[]];
|
|
263
265
|
/**
|
|
264
|
-
* Text color
|
|
266
|
+
* Text color(s)
|
|
265
267
|
*/
|
|
266
|
-
text?: string;
|
|
268
|
+
text?: string | [string, ...string[]];
|
|
267
269
|
};
|
|
268
270
|
/**
|
|
269
271
|
* Brand typography guidelines
|
|
@@ -285,7 +287,7 @@ export interface BrandManifest {
|
|
|
285
287
|
/**
|
|
286
288
|
* Brand voice and messaging tone guidelines for creative agents.
|
|
287
289
|
*/
|
|
288
|
-
tone?: {
|
|
290
|
+
tone?: string | {
|
|
289
291
|
/**
|
|
290
292
|
* High-level voice descriptor (e.g., 'warm and inviting', 'professional and trustworthy')
|
|
291
293
|
*/
|
|
@@ -498,6 +500,32 @@ export interface BrandManifest {
|
|
|
498
500
|
};
|
|
499
501
|
[k: string]: unknown | undefined;
|
|
500
502
|
}
|
|
503
|
+
/**
|
|
504
|
+
* Selectors to filter the brand manifest product catalog for product discovery. When provided, sellers should only return advertising products where the selected catalog items have matches. Uses the same selection methods as promoted-offerings.
|
|
505
|
+
*/
|
|
506
|
+
export interface PromotedProducts {
|
|
507
|
+
/**
|
|
508
|
+
* GTIN product identifiers for cross-retailer catalog matching. Accepts standard GTIN formats (GTIN-8, UPC-A/GTIN-12, EAN-13/GTIN-13, GTIN-14).
|
|
509
|
+
*/
|
|
510
|
+
manifest_gtins?: string[];
|
|
511
|
+
/**
|
|
512
|
+
* Direct product SKU references from the brand manifest product catalog
|
|
513
|
+
*/
|
|
514
|
+
manifest_skus?: string[];
|
|
515
|
+
/**
|
|
516
|
+
* Select products by tags from the brand manifest product catalog (e.g., 'organic', 'sauces', 'holiday')
|
|
517
|
+
*/
|
|
518
|
+
manifest_tags?: string[];
|
|
519
|
+
/**
|
|
520
|
+
* Select products from a specific category in the brand manifest product catalog (e.g., 'beverages/soft-drinks', 'food/sauces')
|
|
521
|
+
*/
|
|
522
|
+
manifest_category?: string;
|
|
523
|
+
/**
|
|
524
|
+
* Natural language query to select products from the brand manifest (e.g., 'all Kraft Heinz pasta sauces', 'organic products under $20')
|
|
525
|
+
*/
|
|
526
|
+
manifest_query?: string;
|
|
527
|
+
[k: string]: unknown | undefined;
|
|
528
|
+
}
|
|
501
529
|
/**
|
|
502
530
|
* Structured filters for product discovery
|
|
503
531
|
*/
|
|
@@ -509,12 +537,16 @@ export interface ProductFilters {
|
|
|
509
537
|
is_fixed_price?: boolean;
|
|
510
538
|
/**
|
|
511
539
|
* Filter by format types
|
|
540
|
+
*
|
|
541
|
+
* @minItems 1
|
|
512
542
|
*/
|
|
513
|
-
format_types?: FormatCategory[];
|
|
543
|
+
format_types?: [FormatCategory, ...FormatCategory[]];
|
|
514
544
|
/**
|
|
515
545
|
* Filter by specific format IDs
|
|
546
|
+
*
|
|
547
|
+
* @minItems 1
|
|
516
548
|
*/
|
|
517
|
-
format_ids?: FormatID[];
|
|
549
|
+
format_ids?: [FormatID, ...FormatID[]];
|
|
518
550
|
/**
|
|
519
551
|
* Only return products accepting IAB standard formats
|
|
520
552
|
*/
|
|
@@ -539,45 +571,77 @@ export interface ProductFilters {
|
|
|
539
571
|
};
|
|
540
572
|
/**
|
|
541
573
|
* Filter by country coverage using ISO 3166-1 alpha-2 codes (e.g., ['US', 'CA', 'GB']). Works for all inventory types.
|
|
574
|
+
*
|
|
575
|
+
* @minItems 1
|
|
542
576
|
*/
|
|
543
|
-
countries?: string[];
|
|
577
|
+
countries?: [string, ...string[]];
|
|
544
578
|
/**
|
|
545
579
|
* Filter by region coverage using ISO 3166-2 codes (e.g., ['US-NY', 'US-CA', 'GB-SCT']). Use for locally-bound inventory (regional OOH, local TV) where products have region-specific coverage.
|
|
580
|
+
*
|
|
581
|
+
* @minItems 1
|
|
546
582
|
*/
|
|
547
|
-
regions?: string[];
|
|
583
|
+
regions?: [string, ...string[]];
|
|
548
584
|
/**
|
|
549
585
|
* Filter by metro coverage for locally-bound inventory (radio, DOOH, local TV). Use when products have DMA/metro-specific coverage. For digital inventory where products have broad coverage, use required_geo_targeting instead to filter by seller capability.
|
|
586
|
+
*
|
|
587
|
+
* @minItems 1
|
|
550
588
|
*/
|
|
551
|
-
metros?:
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
589
|
+
metros?: [
|
|
590
|
+
{
|
|
591
|
+
system: MetroAreaSystem;
|
|
592
|
+
/**
|
|
593
|
+
* Metro code within the system (e.g., '501' for NYC DMA)
|
|
594
|
+
*/
|
|
595
|
+
code: string;
|
|
596
|
+
},
|
|
597
|
+
...{
|
|
598
|
+
system: MetroAreaSystem;
|
|
599
|
+
/**
|
|
600
|
+
* Metro code within the system (e.g., '501' for NYC DMA)
|
|
601
|
+
*/
|
|
602
|
+
code: string;
|
|
603
|
+
}[]
|
|
604
|
+
];
|
|
558
605
|
/**
|
|
559
|
-
* Filter by advertising channels (e.g., ['display', '
|
|
606
|
+
* Filter by advertising channels (e.g., ['display', 'ctv', 'dooh'])
|
|
607
|
+
*
|
|
608
|
+
* @minItems 1
|
|
560
609
|
*/
|
|
561
|
-
channels?: MediaChannel[];
|
|
610
|
+
channels?: [MediaChannel, ...MediaChannel[]];
|
|
562
611
|
/**
|
|
563
612
|
* Filter to products executable through specific agentic ad exchanges. URLs are canonical identifiers.
|
|
613
|
+
*
|
|
614
|
+
* @minItems 1
|
|
564
615
|
*/
|
|
565
|
-
required_axe_integrations?: string[];
|
|
616
|
+
required_axe_integrations?: [string, ...string[]];
|
|
566
617
|
required_features?: MediaBuyFeatures;
|
|
567
618
|
/**
|
|
568
619
|
* 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.
|
|
620
|
+
*
|
|
621
|
+
* @minItems 1
|
|
569
622
|
*/
|
|
570
|
-
required_geo_targeting?:
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
623
|
+
required_geo_targeting?: [
|
|
624
|
+
{
|
|
625
|
+
level: GeographicTargetingLevel;
|
|
626
|
+
/**
|
|
627
|
+
* Classification system within the level. Required for metro (e.g., 'nielsen_dma') and postal_area (e.g., 'us_zip'). Not applicable for country/region which use ISO standards.
|
|
628
|
+
*/
|
|
629
|
+
system?: string;
|
|
630
|
+
},
|
|
631
|
+
...{
|
|
632
|
+
level: GeographicTargetingLevel;
|
|
633
|
+
/**
|
|
634
|
+
* Classification system within the level. Required for metro (e.g., 'nielsen_dma') and postal_area (e.g., 'us_zip'). Not applicable for country/region which use ISO standards.
|
|
635
|
+
*/
|
|
636
|
+
system?: string;
|
|
637
|
+
}[]
|
|
638
|
+
];
|
|
577
639
|
/**
|
|
578
640
|
* Filter to products supporting specific signals from data provider catalogs. Products must have the requested signals in their data_provider_signals and signal_targeting_allowed must be true (or all signals requested).
|
|
641
|
+
*
|
|
642
|
+
* @minItems 1
|
|
579
643
|
*/
|
|
580
|
-
signal_targeting?: SignalTargeting[];
|
|
644
|
+
signal_targeting?: [SignalTargeting, ...SignalTargeting[]];
|
|
581
645
|
[k: string]: unknown | undefined;
|
|
582
646
|
}
|
|
583
647
|
/**
|
|
@@ -622,6 +686,10 @@ export interface MediaBuyFeatures {
|
|
|
622
686
|
* Full support for content_standards configuration including sampling rates and category filtering
|
|
623
687
|
*/
|
|
624
688
|
content_standards?: boolean;
|
|
689
|
+
/**
|
|
690
|
+
* Supports sync_event_sources and log_event tasks for conversion event tracking
|
|
691
|
+
*/
|
|
692
|
+
conversion_tracking?: boolean;
|
|
625
693
|
[k: string]: boolean | undefined;
|
|
626
694
|
}
|
|
627
695
|
/**
|
|
@@ -641,6 +709,19 @@ export interface PropertyListReference {
|
|
|
641
709
|
*/
|
|
642
710
|
auth_token?: string;
|
|
643
711
|
}
|
|
712
|
+
/**
|
|
713
|
+
* Standard cursor-based pagination parameters for list operations
|
|
714
|
+
*/
|
|
715
|
+
export interface PaginationRequest {
|
|
716
|
+
/**
|
|
717
|
+
* Maximum number of items to return per page
|
|
718
|
+
*/
|
|
719
|
+
max_results?: number;
|
|
720
|
+
/**
|
|
721
|
+
* Opaque cursor from a previous response to fetch the next page
|
|
722
|
+
*/
|
|
723
|
+
cursor?: string;
|
|
724
|
+
}
|
|
644
725
|
/**
|
|
645
726
|
* 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.
|
|
646
727
|
*/
|
|
@@ -708,9 +789,13 @@ export type PropertyID = string;
|
|
|
708
789
|
*/
|
|
709
790
|
export type PropertyTag = string;
|
|
710
791
|
/**
|
|
711
|
-
*
|
|
792
|
+
* 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.
|
|
793
|
+
*/
|
|
794
|
+
export type PricingOption = CPMPricingOption | VCPMPricingOption | CPCPricingOption | CPCVPricingOption | CPVPricingOption | CPPPricingOption | CPAPricingOption | FlatRatePricingOption | TimeBasedPricingOption;
|
|
795
|
+
/**
|
|
796
|
+
* Standard marketing event types for event logging, aligned with IAB ECAPI
|
|
712
797
|
*/
|
|
713
|
-
export type
|
|
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';
|
|
714
799
|
/**
|
|
715
800
|
* Available frequencies for delivery reports and metrics updates
|
|
716
801
|
*/
|
|
@@ -718,7 +803,7 @@ export type ReportingFrequency = 'hourly' | 'daily' | 'monthly';
|
|
|
718
803
|
/**
|
|
719
804
|
* Standard delivery and performance metrics available for reporting
|
|
720
805
|
*/
|
|
721
|
-
export type AvailableMetric = 'impressions' | 'spend' | 'clicks' | 'ctr' | 'video_completions' | 'completion_rate' | 'conversions' | 'viewability' | 'engagement_rate';
|
|
806
|
+
export type AvailableMetric = 'impressions' | 'spend' | 'clicks' | 'ctr' | 'video_completions' | 'completion_rate' | 'conversions' | 'conversion_value' | 'roas' | 'cost_per_acquisition' | 'new_to_brand_rate' | 'viewability' | 'engagement_rate' | 'views' | 'completed_views' | 'leads' | 'reach' | 'frequency' | 'grps' | 'quartile_data' | 'dooh_metrics' | 'cost_per_click';
|
|
722
807
|
/**
|
|
723
808
|
* Co-branding requirement
|
|
724
809
|
*/
|
|
@@ -773,6 +858,10 @@ export type DataProviderSignalSelector = {
|
|
|
773
858
|
signal_tags: [string, ...string[]];
|
|
774
859
|
[k: string]: unknown | undefined;
|
|
775
860
|
};
|
|
861
|
+
/**
|
|
862
|
+
* Where the conversion event originated
|
|
863
|
+
*/
|
|
864
|
+
export type ActionSource = 'website' | 'app' | 'offline' | 'phone_call' | 'chat' | 'email' | 'in_store' | 'system_generated' | 'other';
|
|
776
865
|
/**
|
|
777
866
|
* Response payload for get_products task
|
|
778
867
|
*/
|
|
@@ -793,6 +882,11 @@ export interface GetProductsResponse {
|
|
|
793
882
|
* [AdCP 3.0] Indicates whether property_list filtering was applied. True if the agent filtered products based on the provided property_list. Absent or false if property_list was not provided or not supported by this agent.
|
|
794
883
|
*/
|
|
795
884
|
property_list_applied?: boolean;
|
|
885
|
+
/**
|
|
886
|
+
* Indicates whether product_selectors filtering was applied. True if the seller filtered results based on the provided product_selectors. Absent or false if product_selectors was not provided or not supported by this agent.
|
|
887
|
+
*/
|
|
888
|
+
product_selectors_applied?: boolean;
|
|
889
|
+
pagination?: PaginationResponse;
|
|
796
890
|
context?: ContextObject;
|
|
797
891
|
ext?: ExtensionObject;
|
|
798
892
|
}
|
|
@@ -818,6 +912,10 @@ export interface Product {
|
|
|
818
912
|
* @minItems 1
|
|
819
913
|
*/
|
|
820
914
|
publisher_properties: [PublisherPropertySelector, ...PublisherPropertySelector[]];
|
|
915
|
+
/**
|
|
916
|
+
* Advertising channels this product is sold as. Products inherit from their properties' supported_channels but may narrow the scope. For example, a product covering YouTube properties might be sold as ['ctv'] even though those properties support ['olv', 'social', 'ctv'].
|
|
917
|
+
*/
|
|
918
|
+
channels?: MediaChannel[];
|
|
821
919
|
/**
|
|
822
920
|
* Array of supported creative format IDs - structured format_id objects with agent_url and id
|
|
823
921
|
*/
|
|
@@ -871,6 +969,31 @@ export interface Product {
|
|
|
871
969
|
* Whether buyers can filter this product to a subset of its data_provider_signals. When false (default), the product includes all listed signals as a bundle. When true, buyers can target specific signals.
|
|
872
970
|
*/
|
|
873
971
|
signal_targeting_allowed?: boolean;
|
|
972
|
+
/**
|
|
973
|
+
* Conversion tracking for this product. Presence indicates the product supports conversion-optimized delivery. Seller-level capabilities (supported event types, UID types, attribution windows) are declared in get_adcp_capabilities.
|
|
974
|
+
*/
|
|
975
|
+
conversion_tracking?: {
|
|
976
|
+
/**
|
|
977
|
+
* Action sources relevant to this product (e.g. a retail media product might have 'in_store' and 'website', while a display product might only have 'website')
|
|
978
|
+
*
|
|
979
|
+
* @minItems 1
|
|
980
|
+
*/
|
|
981
|
+
action_sources?: [ActionSource, ...ActionSource[]];
|
|
982
|
+
/**
|
|
983
|
+
* Optimization strategies this product supports when an optimization_goal is set on a package
|
|
984
|
+
*
|
|
985
|
+
* @minItems 1
|
|
986
|
+
*/
|
|
987
|
+
supported_optimization_strategies?: [
|
|
988
|
+
'maximize_conversions' | 'target_cpa' | 'target_roas',
|
|
989
|
+
...('maximize_conversions' | 'target_cpa' | 'target_roas')[]
|
|
990
|
+
];
|
|
991
|
+
/**
|
|
992
|
+
* Whether the seller provides its own always-on measurement (e.g. Amazon sales attribution for Amazon advertisers). When true, sync_event_sources response will include seller-managed event sources with managed_by='seller'.
|
|
993
|
+
*/
|
|
994
|
+
platform_managed?: boolean;
|
|
995
|
+
[k: string]: unknown | undefined;
|
|
996
|
+
};
|
|
874
997
|
/**
|
|
875
998
|
* Explanation of why this product matches the brief (only included when brief is provided)
|
|
876
999
|
*/
|
|
@@ -1277,6 +1400,44 @@ export interface PriceGuidance5 {
|
|
|
1277
1400
|
p90?: number;
|
|
1278
1401
|
[k: string]: unknown | undefined;
|
|
1279
1402
|
}
|
|
1403
|
+
/**
|
|
1404
|
+
* Cost Per Acquisition pricing. Advertiser pays a fixed price when a specified conversion event occurs. The event_type field declares which event triggers billing (e.g., purchase, lead, app_install).
|
|
1405
|
+
*/
|
|
1406
|
+
export interface CPAPricingOption {
|
|
1407
|
+
/**
|
|
1408
|
+
* Unique identifier for this pricing option within the product
|
|
1409
|
+
*/
|
|
1410
|
+
pricing_option_id: string;
|
|
1411
|
+
/**
|
|
1412
|
+
* Cost per acquisition (conversion event)
|
|
1413
|
+
*/
|
|
1414
|
+
pricing_model: 'cpa';
|
|
1415
|
+
/**
|
|
1416
|
+
* The conversion event type that triggers billing (e.g., purchase, lead, app_install)
|
|
1417
|
+
*/
|
|
1418
|
+
event_type: EventType;
|
|
1419
|
+
/**
|
|
1420
|
+
* Name of the custom event when event_type is 'custom'. Required when event_type is 'custom', ignored otherwise.
|
|
1421
|
+
*/
|
|
1422
|
+
custom_event_name?: string;
|
|
1423
|
+
/**
|
|
1424
|
+
* When present, only events from this specific event source count toward billing. Allows different CPA rates for different sources (e.g., online vs in-store purchases). Must match an event source configured via sync_event_sources.
|
|
1425
|
+
*/
|
|
1426
|
+
event_source_id?: string;
|
|
1427
|
+
/**
|
|
1428
|
+
* ISO 4217 currency code
|
|
1429
|
+
*/
|
|
1430
|
+
currency: string;
|
|
1431
|
+
/**
|
|
1432
|
+
* Fixed price per acquisition in the specified currency
|
|
1433
|
+
*/
|
|
1434
|
+
fixed_price: number;
|
|
1435
|
+
/**
|
|
1436
|
+
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
1437
|
+
*/
|
|
1438
|
+
min_spend_per_package?: number;
|
|
1439
|
+
[k: string]: unknown | undefined;
|
|
1440
|
+
}
|
|
1280
1441
|
/**
|
|
1281
1442
|
* Flat rate pricing for DOOH, sponsorships, and time-based campaigns. If fixed_price is present, it's fixed pricing. If absent, it's auction-based.
|
|
1282
1443
|
*/
|
|
@@ -1364,6 +1525,77 @@ export interface PriceGuidance6 {
|
|
|
1364
1525
|
p90?: number;
|
|
1365
1526
|
[k: string]: unknown | undefined;
|
|
1366
1527
|
}
|
|
1528
|
+
/**
|
|
1529
|
+
* Cost per time unit (hour, day, week, or month) - rate scales with campaign duration. If fixed_price is present, it's fixed pricing. If absent, it's auction-based.
|
|
1530
|
+
*/
|
|
1531
|
+
export interface TimeBasedPricingOption {
|
|
1532
|
+
/**
|
|
1533
|
+
* Unique identifier for this pricing option within the product
|
|
1534
|
+
*/
|
|
1535
|
+
pricing_option_id: string;
|
|
1536
|
+
/**
|
|
1537
|
+
* Cost per time unit - rate scales with campaign duration
|
|
1538
|
+
*/
|
|
1539
|
+
pricing_model: 'time';
|
|
1540
|
+
/**
|
|
1541
|
+
* ISO 4217 currency code
|
|
1542
|
+
*/
|
|
1543
|
+
currency: string;
|
|
1544
|
+
/**
|
|
1545
|
+
* Cost per time unit. If present, this is fixed pricing. If absent, auction-based.
|
|
1546
|
+
*/
|
|
1547
|
+
fixed_price?: number;
|
|
1548
|
+
/**
|
|
1549
|
+
* Minimum acceptable bid per time unit for auction pricing (mutually exclusive with fixed_price). Bids below this value will be rejected.
|
|
1550
|
+
*/
|
|
1551
|
+
floor_price?: number;
|
|
1552
|
+
price_guidance?: PriceGuidance7;
|
|
1553
|
+
/**
|
|
1554
|
+
* Time-based pricing parameters
|
|
1555
|
+
*/
|
|
1556
|
+
parameters: {
|
|
1557
|
+
/**
|
|
1558
|
+
* The time unit for pricing. Total cost = fixed_price × number of time_units in the campaign flight.
|
|
1559
|
+
*/
|
|
1560
|
+
time_unit: 'hour' | 'day' | 'week' | 'month';
|
|
1561
|
+
/**
|
|
1562
|
+
* Minimum booking duration in time_units
|
|
1563
|
+
*/
|
|
1564
|
+
min_duration?: number;
|
|
1565
|
+
/**
|
|
1566
|
+
* Maximum booking duration in time_units. Must be >= min_duration when both are present.
|
|
1567
|
+
*/
|
|
1568
|
+
max_duration?: number;
|
|
1569
|
+
[k: string]: unknown | undefined;
|
|
1570
|
+
};
|
|
1571
|
+
/**
|
|
1572
|
+
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
1573
|
+
*/
|
|
1574
|
+
min_spend_per_package?: number;
|
|
1575
|
+
[k: string]: unknown | undefined;
|
|
1576
|
+
}
|
|
1577
|
+
/**
|
|
1578
|
+
* Optional pricing guidance for auction-based bidding
|
|
1579
|
+
*/
|
|
1580
|
+
export interface PriceGuidance7 {
|
|
1581
|
+
/**
|
|
1582
|
+
* 25th percentile of recent winning bids
|
|
1583
|
+
*/
|
|
1584
|
+
p25?: number;
|
|
1585
|
+
/**
|
|
1586
|
+
* Median of recent winning bids
|
|
1587
|
+
*/
|
|
1588
|
+
p50?: number;
|
|
1589
|
+
/**
|
|
1590
|
+
* 75th percentile of recent winning bids
|
|
1591
|
+
*/
|
|
1592
|
+
p75?: number;
|
|
1593
|
+
/**
|
|
1594
|
+
* 90th percentile of recent winning bids
|
|
1595
|
+
*/
|
|
1596
|
+
p90?: number;
|
|
1597
|
+
[k: string]: unknown | undefined;
|
|
1598
|
+
}
|
|
1367
1599
|
/**
|
|
1368
1600
|
* Measurement capabilities included with a product
|
|
1369
1601
|
*/
|
|
@@ -1409,9 +1641,17 @@ export interface ReportingCapabilities {
|
|
|
1409
1641
|
*/
|
|
1410
1642
|
supports_webhooks: boolean;
|
|
1411
1643
|
/**
|
|
1412
|
-
* Metrics available in reporting. Impressions and spend are always implicitly included.
|
|
1644
|
+
* Metrics available in reporting. Impressions and spend are always implicitly included. When a creative format declares reported_metrics, buyers receive the intersection of these product-level metrics and the format's reported_metrics.
|
|
1413
1645
|
*/
|
|
1414
1646
|
available_metrics: AvailableMetric[];
|
|
1647
|
+
/**
|
|
1648
|
+
* Whether this product supports creative-level metric breakdowns in delivery reporting (by_creative within by_package)
|
|
1649
|
+
*/
|
|
1650
|
+
supports_creative_breakdown?: boolean;
|
|
1651
|
+
/**
|
|
1652
|
+
* Whether delivery data can be filtered to arbitrary date ranges. 'date_range' means the platform supports start_date/end_date parameters. 'lifetime_only' means the platform returns campaign lifetime totals and date range parameters are not accepted.
|
|
1653
|
+
*/
|
|
1654
|
+
date_range_support: 'date_range' | 'lifetime_only';
|
|
1415
1655
|
[k: string]: unknown | undefined;
|
|
1416
1656
|
}
|
|
1417
1657
|
/**
|
|
@@ -1596,12 +1836,33 @@ export interface Error {
|
|
|
1596
1836
|
};
|
|
1597
1837
|
[k: string]: unknown | undefined;
|
|
1598
1838
|
}
|
|
1839
|
+
/**
|
|
1840
|
+
* Standard cursor-based pagination metadata for list responses
|
|
1841
|
+
*/
|
|
1842
|
+
export interface PaginationResponse {
|
|
1843
|
+
/**
|
|
1844
|
+
* Whether more results are available beyond this page
|
|
1845
|
+
*/
|
|
1846
|
+
has_more: boolean;
|
|
1847
|
+
/**
|
|
1848
|
+
* Opaque cursor to pass in the next request to fetch the next page. Only present when has_more is true.
|
|
1849
|
+
*/
|
|
1850
|
+
cursor?: string;
|
|
1851
|
+
/**
|
|
1852
|
+
* Total number of items matching the query across all pages. Optional because not all backends can efficiently compute this.
|
|
1853
|
+
*/
|
|
1854
|
+
total_count?: number;
|
|
1855
|
+
}
|
|
1599
1856
|
/**
|
|
1600
1857
|
* 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.
|
|
1601
1858
|
*/
|
|
1602
1859
|
/**
|
|
1603
1860
|
* Filter by format type (technical categories with distinct requirements)
|
|
1604
1861
|
*/
|
|
1862
|
+
export type WCAGLevel = 'A' | 'AA' | 'AAA';
|
|
1863
|
+
/**
|
|
1864
|
+
* Request parameters for discovering supported creative formats
|
|
1865
|
+
*/
|
|
1605
1866
|
export interface ListCreativeFormatsRequest {
|
|
1606
1867
|
/**
|
|
1607
1868
|
* Return only these specific format IDs (e.g., from get_products response)
|
|
@@ -1636,6 +1897,8 @@ export interface ListCreativeFormatsRequest {
|
|
|
1636
1897
|
* Search for formats by name (case-insensitive partial match)
|
|
1637
1898
|
*/
|
|
1638
1899
|
name_search?: string;
|
|
1900
|
+
wcag_level?: WCAGLevel;
|
|
1901
|
+
pagination?: PaginationRequest;
|
|
1639
1902
|
context?: ContextObject;
|
|
1640
1903
|
ext?: ExtensionObject;
|
|
1641
1904
|
}
|
|
@@ -1643,13 +1906,17 @@ export interface ListCreativeFormatsRequest {
|
|
|
1643
1906
|
* Structured format identifier with agent URL and format name. Can reference: (1) a concrete format with fixed dimensions (id only), (2) a template format without parameters (id only), or (3) a template format with parameters (id + dimensions/duration). Template formats accept parameters in format_id while concrete formats have fixed dimensions in their definition. Parameterized format IDs create unique, specific format variants.
|
|
1644
1907
|
*/
|
|
1645
1908
|
/**
|
|
1646
|
-
*
|
|
1909
|
+
* DEPRECATED: High-level category for this format. Use the assets array to understand creative requirements instead - it provides precise information about what asset types are needed.
|
|
1647
1910
|
*/
|
|
1648
1911
|
export type FormatIDParameter = 'dimensions' | 'duration';
|
|
1649
1912
|
/**
|
|
1650
|
-
*
|
|
1913
|
+
* Standardized macro placeholders for dynamic value substitution in creative tracking URLs. Macros are replaced with actual values at impression time. See docs/creative/universal-macros.mdx for detailed documentation.
|
|
1651
1914
|
*/
|
|
1652
|
-
export type
|
|
1915
|
+
export type UniversalMacro = 'MEDIA_BUY_ID' | 'PACKAGE_ID' | 'CREATIVE_ID' | 'CACHEBUSTER' | 'TIMESTAMP' | 'CLICK_URL' | 'GDPR' | 'GDPR_CONSENT' | 'US_PRIVACY' | 'GPP_STRING' | 'GPP_SID' | 'IP_ADDRESS' | 'LIMIT_AD_TRACKING' | 'DEVICE_TYPE' | 'OS' | 'OS_VERSION' | 'DEVICE_MAKE' | 'DEVICE_MODEL' | 'USER_AGENT' | 'APP_BUNDLE' | 'APP_NAME' | 'COUNTRY' | 'REGION' | 'CITY' | 'ZIP' | 'DMA' | 'LAT' | 'LONG' | 'DEVICE_ID' | 'DEVICE_ID_TYPE' | 'DOMAIN' | 'PAGE_URL' | 'REFERRER' | 'KEYWORDS' | 'PLACEMENT_ID' | 'FOLD_POSITION' | 'AD_WIDTH' | 'AD_HEIGHT' | 'VIDEO_ID' | 'VIDEO_TITLE' | 'VIDEO_DURATION' | 'VIDEO_CATEGORY' | 'CONTENT_GENRE' | 'CONTENT_RATING' | 'PLAYER_WIDTH' | 'PLAYER_HEIGHT' | 'POD_POSITION' | 'POD_SIZE' | 'AD_BREAK_ID' | 'STATION_ID' | 'SHOW_NAME' | 'EPISODE_ID' | 'AUDIO_DURATION' | 'AXEM';
|
|
1916
|
+
/**
|
|
1917
|
+
* WCAG conformance level that this format achieves. For format-rendered creatives, the format guarantees this level. For opaque creatives, the format requires assets that self-certify to this level.
|
|
1918
|
+
*/
|
|
1919
|
+
export type CreativeAgentCapability = 'validation' | 'assembly' | 'generation' | 'preview' | 'delivery';
|
|
1653
1920
|
/**
|
|
1654
1921
|
* Response payload for list_creative_formats task
|
|
1655
1922
|
*/
|
|
@@ -1679,6 +1946,7 @@ export interface ListCreativeFormatsResponse {
|
|
|
1679
1946
|
* Task-specific errors and warnings (e.g., format availability issues)
|
|
1680
1947
|
*/
|
|
1681
1948
|
errors?: Error[];
|
|
1949
|
+
pagination?: PaginationResponse;
|
|
1682
1950
|
context?: ContextObject;
|
|
1683
1951
|
ext?: ExtensionObject;
|
|
1684
1952
|
}
|
|
@@ -1699,7 +1967,7 @@ export interface Format {
|
|
|
1699
1967
|
* Optional URL to showcase page with examples and interactive demos of this format
|
|
1700
1968
|
*/
|
|
1701
1969
|
example_url?: string;
|
|
1702
|
-
type
|
|
1970
|
+
type?: FormatCategory;
|
|
1703
1971
|
/**
|
|
1704
1972
|
* List of parameters this format accepts in format_id. Template formats define which parameters (dimensions, duration, etc.) can be specified when instantiating the format. Empty or omitted means this is a concrete format with fixed parameters.
|
|
1705
1973
|
*/
|
|
@@ -1745,6 +2013,10 @@ export interface Format {
|
|
|
1745
2013
|
* Maximum number of repetitions allowed
|
|
1746
2014
|
*/
|
|
1747
2015
|
max_count: number;
|
|
2016
|
+
/**
|
|
2017
|
+
* How the platform uses repetitions of this group. 'sequential' means all items display in order (carousels, playlists). 'optimize' means the platform selects the best-performing combination from alternatives (asset group optimization like Meta Advantage+ or Google Pmax).
|
|
2018
|
+
*/
|
|
2019
|
+
selection_mode?: 'sequential' | 'optimize';
|
|
1748
2020
|
/**
|
|
1749
2021
|
* Assets within each repetition of this group
|
|
1750
2022
|
*/
|
|
@@ -1757,9 +2029,9 @@ export interface Format {
|
|
|
1757
2029
|
[k: string]: unknown | undefined;
|
|
1758
2030
|
};
|
|
1759
2031
|
/**
|
|
1760
|
-
* List of universal macros supported by this format (e.g., MEDIA_BUY_ID, CACHEBUSTER, DEVICE_ID). Used for validation and developer tooling.
|
|
2032
|
+
* List of universal macros supported by this format (e.g., MEDIA_BUY_ID, CACHEBUSTER, DEVICE_ID). Used for validation and developer tooling. See docs/creative/universal-macros.mdx for full documentation.
|
|
1761
2033
|
*/
|
|
1762
|
-
supported_macros?: string[];
|
|
2034
|
+
supported_macros?: (UniversalMacro | string)[];
|
|
1763
2035
|
/**
|
|
1764
2036
|
* For generative formats: array of format IDs that this format can generate. When a format accepts inputs like brand_manifest and message, this specifies what concrete output formats can be produced (e.g., a generative banner format might output standard image banner formats).
|
|
1765
2037
|
*/
|
|
@@ -1777,6 +2049,16 @@ export interface Format {
|
|
|
1777
2049
|
};
|
|
1778
2050
|
[k: string]: unknown | undefined;
|
|
1779
2051
|
};
|
|
2052
|
+
/**
|
|
2053
|
+
* Accessibility posture of this format. Declares the WCAG conformance level that creatives produced by this format will meet.
|
|
2054
|
+
*/
|
|
2055
|
+
accessibility?: {
|
|
2056
|
+
wcag_level: WCAGLevel;
|
|
2057
|
+
/**
|
|
2058
|
+
* When true, all assets with x-accessibility fields must include those fields. For inspectable assets (image, video, audio), this means providing accessibility metadata like alt_text or captions. For opaque assets (HTML, JavaScript), this means providing self-declared accessibility properties.
|
|
2059
|
+
*/
|
|
2060
|
+
requires_accessible_assets?: boolean;
|
|
2061
|
+
};
|
|
1780
2062
|
/**
|
|
1781
2063
|
* Optional detailed card with carousel and full specifications. Provides rich format documentation similar to ad spec pages.
|
|
1782
2064
|
*/
|
|
@@ -1790,6 +2072,12 @@ export interface Format {
|
|
|
1790
2072
|
};
|
|
1791
2073
|
[k: string]: unknown | undefined;
|
|
1792
2074
|
};
|
|
2075
|
+
/**
|
|
2076
|
+
* Metrics this format can produce in delivery reporting. Buyers receive the intersection of format reported_metrics and product available_metrics. If omitted, the format defers entirely to product-level metric declarations.
|
|
2077
|
+
*
|
|
2078
|
+
* @minItems 1
|
|
2079
|
+
*/
|
|
2080
|
+
reported_metrics?: [AvailableMetric, ...AvailableMetric[]];
|
|
1793
2081
|
[k: string]: unknown | undefined;
|
|
1794
2082
|
}
|
|
1795
2083
|
/**
|
|
@@ -1861,9 +2149,17 @@ export interface FormatID3 {
|
|
|
1861
2149
|
*/
|
|
1862
2150
|
export type Pacing = 'even' | 'asap' | 'front_loaded';
|
|
1863
2151
|
/**
|
|
1864
|
-
*
|
|
2152
|
+
* Event type to optimize for (e.g. purchase, lead)
|
|
2153
|
+
*/
|
|
2154
|
+
export type MetroAreaSystem1 = 'nielsen_dma' | 'uk_itl1' | 'uk_itl2' | 'eurostat_nuts2' | 'custom';
|
|
2155
|
+
/**
|
|
2156
|
+
* Postal code system (e.g., 'us_zip', 'gb_outward'). System name encodes country and precision.
|
|
1865
2157
|
*/
|
|
1866
2158
|
export type PostalCodeSystem = 'us_zip' | 'us_zip_plus_four' | 'gb_outward' | 'gb_full' | 'ca_fsa' | 'ca_full' | 'de_plz' | 'fr_code_postal' | 'au_postcode';
|
|
2159
|
+
/**
|
|
2160
|
+
* Postal code system (e.g., 'us_zip', 'gb_outward'). System name encodes country and precision.
|
|
2161
|
+
*/
|
|
2162
|
+
export type PostalCodeSystem1 = 'us_zip' | 'us_zip_plus_four' | 'gb_outward' | 'gb_full' | 'ca_fsa' | 'ca_full' | 'de_plz' | 'fr_code_postal' | 'au_postcode';
|
|
1867
2163
|
/**
|
|
1868
2164
|
* Methods for verifying user age for compliance. Does not include 'inferred' as it is not accepted for regulatory compliance.
|
|
1869
2165
|
*/
|
|
@@ -1901,6 +2197,14 @@ export type VASTAsset = {
|
|
|
1901
2197
|
* Tracking events supported by this VAST tag
|
|
1902
2198
|
*/
|
|
1903
2199
|
tracking_events?: VASTTrackingEvent[];
|
|
2200
|
+
/**
|
|
2201
|
+
* URL to captions file (WebVTT, SRT, etc.)
|
|
2202
|
+
*/
|
|
2203
|
+
captions_url?: string;
|
|
2204
|
+
/**
|
|
2205
|
+
* URL to audio description track for visually impaired users
|
|
2206
|
+
*/
|
|
2207
|
+
audio_description_url?: string;
|
|
1904
2208
|
[k: string]: unknown | undefined;
|
|
1905
2209
|
} | {
|
|
1906
2210
|
/**
|
|
@@ -1924,6 +2228,14 @@ export type VASTAsset = {
|
|
|
1924
2228
|
* Tracking events supported by this VAST tag
|
|
1925
2229
|
*/
|
|
1926
2230
|
tracking_events?: VASTTrackingEvent[];
|
|
2231
|
+
/**
|
|
2232
|
+
* URL to captions file (WebVTT, SRT, etc.)
|
|
2233
|
+
*/
|
|
2234
|
+
captions_url?: string;
|
|
2235
|
+
/**
|
|
2236
|
+
* URL to audio description track for visually impaired users
|
|
2237
|
+
*/
|
|
2238
|
+
audio_description_url?: string;
|
|
1927
2239
|
[k: string]: unknown | undefined;
|
|
1928
2240
|
};
|
|
1929
2241
|
/**
|
|
@@ -1963,6 +2275,10 @@ export type DAASTAsset = {
|
|
|
1963
2275
|
* Whether companion display ads are included
|
|
1964
2276
|
*/
|
|
1965
2277
|
companion_ads?: boolean;
|
|
2278
|
+
/**
|
|
2279
|
+
* URL to text transcript of the audio content
|
|
2280
|
+
*/
|
|
2281
|
+
transcript_url?: string;
|
|
1966
2282
|
[k: string]: unknown | undefined;
|
|
1967
2283
|
} | {
|
|
1968
2284
|
/**
|
|
@@ -1986,6 +2302,10 @@ export type DAASTAsset = {
|
|
|
1986
2302
|
* Whether companion display ads are included
|
|
1987
2303
|
*/
|
|
1988
2304
|
companion_ads?: boolean;
|
|
2305
|
+
/**
|
|
2306
|
+
* URL to text transcript of the audio content
|
|
2307
|
+
*/
|
|
2308
|
+
transcript_url?: string;
|
|
1989
2309
|
[k: string]: unknown | undefined;
|
|
1990
2310
|
};
|
|
1991
2311
|
/**
|
|
@@ -2029,9 +2349,9 @@ export interface CreateMediaBuyRequest {
|
|
|
2029
2349
|
*/
|
|
2030
2350
|
buyer_ref: string;
|
|
2031
2351
|
/**
|
|
2032
|
-
* Account to bill for this media buy.
|
|
2352
|
+
* Account to bill for this media buy. The seller maps the agent's brand + operator to an account during sync_accounts; the agent passes that account_id here.
|
|
2033
2353
|
*/
|
|
2034
|
-
account_id
|
|
2354
|
+
account_id: string;
|
|
2035
2355
|
/**
|
|
2036
2356
|
* ID of a proposal from get_products to execute. When provided with total_budget, the publisher converts the proposal's allocation percentages into packages automatically. Alternative to providing packages array.
|
|
2037
2357
|
*/
|
|
@@ -2146,63 +2466,192 @@ export interface PackageRequest {
|
|
|
2146
2466
|
* Whether this package should be created in a paused state. Paused packages do not deliver impressions. Defaults to false.
|
|
2147
2467
|
*/
|
|
2148
2468
|
paused?: boolean;
|
|
2469
|
+
optimization_goal?: OptimizationGoal;
|
|
2149
2470
|
targeting_overlay?: TargetingOverlay;
|
|
2150
2471
|
/**
|
|
2151
2472
|
* Assign existing library creatives to this package with optional weights and placement targeting
|
|
2473
|
+
*
|
|
2474
|
+
* @minItems 1
|
|
2152
2475
|
*/
|
|
2153
|
-
creative_assignments?: CreativeAssignment[];
|
|
2476
|
+
creative_assignments?: [CreativeAssignment, ...CreativeAssignment[]];
|
|
2154
2477
|
/**
|
|
2155
2478
|
* Upload new creative assets and assign to this package (creatives will be added to library). Use creative_assignments instead for existing library creatives.
|
|
2156
2479
|
*
|
|
2480
|
+
* @minItems 1
|
|
2157
2481
|
* @maxItems 100
|
|
2158
2482
|
*/
|
|
2159
|
-
creatives?: CreativeAsset[];
|
|
2483
|
+
creatives?: [CreativeAsset, ...CreativeAsset[]];
|
|
2160
2484
|
ext?: ExtensionObject;
|
|
2161
2485
|
[k: string]: unknown | undefined;
|
|
2162
2486
|
}
|
|
2163
2487
|
/**
|
|
2164
2488
|
* Structured format identifier with agent URL and format name. Can reference: (1) a concrete format with fixed dimensions (id only), (2) a template format without parameters (id only), or (3) a template format with parameters (id + dimensions/duration). Template formats accept parameters in format_id while concrete formats have fixed dimensions in their definition. Parameterized format IDs create unique, specific format variants.
|
|
2165
2489
|
*/
|
|
2166
|
-
export interface
|
|
2490
|
+
export interface OptimizationGoal {
|
|
2167
2491
|
/**
|
|
2168
|
-
*
|
|
2492
|
+
* Event source to optimize against (must be configured on this account via sync_event_sources)
|
|
2169
2493
|
*/
|
|
2170
|
-
|
|
2494
|
+
event_source_id: string;
|
|
2495
|
+
event_type: EventType;
|
|
2171
2496
|
/**
|
|
2172
|
-
*
|
|
2497
|
+
* Target return on ad spend (e.g. 4.0 = $4 conversion value per $1 spent). Mutually exclusive with target_cpa.
|
|
2173
2498
|
*/
|
|
2174
|
-
|
|
2499
|
+
target_roas?: number;
|
|
2175
2500
|
/**
|
|
2176
|
-
*
|
|
2501
|
+
* Target cost per acquisition in the buy currency. Mutually exclusive with target_roas.
|
|
2177
2502
|
*/
|
|
2178
|
-
|
|
2179
|
-
system: MetroAreaSystem;
|
|
2180
|
-
/**
|
|
2181
|
-
* Metro codes within the system (e.g., ['501', '602'] for Nielsen DMAs)
|
|
2182
|
-
*
|
|
2183
|
-
* @minItems 1
|
|
2184
|
-
*/
|
|
2185
|
-
values: [string, ...string[]];
|
|
2186
|
-
}[];
|
|
2503
|
+
target_cpa?: number;
|
|
2187
2504
|
/**
|
|
2188
|
-
*
|
|
2505
|
+
* Attribution window for this optimization goal. Values must match an option declared in the seller's conversion_tracking.attribution_windows capability. When omitted, the seller uses their default window.
|
|
2189
2506
|
*/
|
|
2190
|
-
|
|
2191
|
-
system: PostalCodeSystem;
|
|
2507
|
+
attribution_window?: {
|
|
2192
2508
|
/**
|
|
2193
|
-
*
|
|
2194
|
-
*
|
|
2195
|
-
* @minItems 1
|
|
2509
|
+
* Click-through attribution window (e.g. '7d', '28d', '30d')
|
|
2196
2510
|
*/
|
|
2197
|
-
|
|
2198
|
-
|
|
2199
|
-
|
|
2200
|
-
|
|
2201
|
-
|
|
2202
|
-
|
|
2203
|
-
|
|
2204
|
-
|
|
2205
|
-
|
|
2511
|
+
click_through: string;
|
|
2512
|
+
/**
|
|
2513
|
+
* View-through attribution window (e.g. '1d', '7d')
|
|
2514
|
+
*/
|
|
2515
|
+
view_through?: string;
|
|
2516
|
+
[k: string]: unknown | undefined;
|
|
2517
|
+
};
|
|
2518
|
+
[k: string]: unknown | undefined;
|
|
2519
|
+
}
|
|
2520
|
+
/**
|
|
2521
|
+
* Optional restriction overlays for media buys. Most targeting should be expressed in the brief and handled by the publisher. These fields are for functional restrictions: geographic (RCT testing, regulatory compliance), age verification (alcohol, gambling), device platform (app compatibility), and language (localization).
|
|
2522
|
+
*/
|
|
2523
|
+
export interface TargetingOverlay {
|
|
2524
|
+
/**
|
|
2525
|
+
* Restrict delivery to specific countries. ISO 3166-1 alpha-2 codes (e.g., 'US', 'GB', 'DE').
|
|
2526
|
+
*
|
|
2527
|
+
* @minItems 1
|
|
2528
|
+
*/
|
|
2529
|
+
geo_countries?: [string, ...string[]];
|
|
2530
|
+
/**
|
|
2531
|
+
* Exclude specific countries from delivery. ISO 3166-1 alpha-2 codes (e.g., 'US', 'GB', 'DE').
|
|
2532
|
+
*
|
|
2533
|
+
* @minItems 1
|
|
2534
|
+
*/
|
|
2535
|
+
geo_countries_exclude?: [string, ...string[]];
|
|
2536
|
+
/**
|
|
2537
|
+
* Restrict delivery to specific regions/states. ISO 3166-2 subdivision codes (e.g., 'US-CA', 'GB-SCT').
|
|
2538
|
+
*
|
|
2539
|
+
* @minItems 1
|
|
2540
|
+
*/
|
|
2541
|
+
geo_regions?: [string, ...string[]];
|
|
2542
|
+
/**
|
|
2543
|
+
* Exclude specific regions/states from delivery. ISO 3166-2 subdivision codes (e.g., 'US-CA', 'GB-SCT').
|
|
2544
|
+
*
|
|
2545
|
+
* @minItems 1
|
|
2546
|
+
*/
|
|
2547
|
+
geo_regions_exclude?: [string, ...string[]];
|
|
2548
|
+
/**
|
|
2549
|
+
* Restrict delivery to specific metro areas. Each entry specifies the classification system and target values. Seller must declare supported systems in get_adcp_capabilities.
|
|
2550
|
+
*
|
|
2551
|
+
* @minItems 1
|
|
2552
|
+
*/
|
|
2553
|
+
geo_metros?: [
|
|
2554
|
+
{
|
|
2555
|
+
system: MetroAreaSystem;
|
|
2556
|
+
/**
|
|
2557
|
+
* Metro codes within the system (e.g., ['501', '602'] for Nielsen DMAs)
|
|
2558
|
+
*
|
|
2559
|
+
* @minItems 1
|
|
2560
|
+
*/
|
|
2561
|
+
values: [string, ...string[]];
|
|
2562
|
+
},
|
|
2563
|
+
...{
|
|
2564
|
+
system: MetroAreaSystem;
|
|
2565
|
+
/**
|
|
2566
|
+
* Metro codes within the system (e.g., ['501', '602'] for Nielsen DMAs)
|
|
2567
|
+
*
|
|
2568
|
+
* @minItems 1
|
|
2569
|
+
*/
|
|
2570
|
+
values: [string, ...string[]];
|
|
2571
|
+
}[]
|
|
2572
|
+
];
|
|
2573
|
+
/**
|
|
2574
|
+
* Exclude specific metro areas from delivery. Each entry specifies the classification system and excluded values. Seller must declare supported systems in get_adcp_capabilities.
|
|
2575
|
+
*
|
|
2576
|
+
* @minItems 1
|
|
2577
|
+
*/
|
|
2578
|
+
geo_metros_exclude?: [
|
|
2579
|
+
{
|
|
2580
|
+
system: MetroAreaSystem1;
|
|
2581
|
+
/**
|
|
2582
|
+
* Metro codes to exclude within the system (e.g., ['501', '602'] for Nielsen DMAs)
|
|
2583
|
+
*
|
|
2584
|
+
* @minItems 1
|
|
2585
|
+
*/
|
|
2586
|
+
values: [string, ...string[]];
|
|
2587
|
+
},
|
|
2588
|
+
...{
|
|
2589
|
+
system: MetroAreaSystem1;
|
|
2590
|
+
/**
|
|
2591
|
+
* Metro codes to exclude within the system (e.g., ['501', '602'] for Nielsen DMAs)
|
|
2592
|
+
*
|
|
2593
|
+
* @minItems 1
|
|
2594
|
+
*/
|
|
2595
|
+
values: [string, ...string[]];
|
|
2596
|
+
}[]
|
|
2597
|
+
];
|
|
2598
|
+
/**
|
|
2599
|
+
* Restrict delivery to specific postal areas. Each entry specifies the postal system and target values. Seller must declare supported systems in get_adcp_capabilities.
|
|
2600
|
+
*
|
|
2601
|
+
* @minItems 1
|
|
2602
|
+
*/
|
|
2603
|
+
geo_postal_areas?: [
|
|
2604
|
+
{
|
|
2605
|
+
system: PostalCodeSystem;
|
|
2606
|
+
/**
|
|
2607
|
+
* Postal codes within the system (e.g., ['10001', '10002'] for us_zip)
|
|
2608
|
+
*
|
|
2609
|
+
* @minItems 1
|
|
2610
|
+
*/
|
|
2611
|
+
values: [string, ...string[]];
|
|
2612
|
+
},
|
|
2613
|
+
...{
|
|
2614
|
+
system: PostalCodeSystem;
|
|
2615
|
+
/**
|
|
2616
|
+
* Postal codes within the system (e.g., ['10001', '10002'] for us_zip)
|
|
2617
|
+
*
|
|
2618
|
+
* @minItems 1
|
|
2619
|
+
*/
|
|
2620
|
+
values: [string, ...string[]];
|
|
2621
|
+
}[]
|
|
2622
|
+
];
|
|
2623
|
+
/**
|
|
2624
|
+
* Exclude specific postal areas from delivery. Each entry specifies the postal system and excluded values. Seller must declare supported systems in get_adcp_capabilities.
|
|
2625
|
+
*
|
|
2626
|
+
* @minItems 1
|
|
2627
|
+
*/
|
|
2628
|
+
geo_postal_areas_exclude?: [
|
|
2629
|
+
{
|
|
2630
|
+
system: PostalCodeSystem1;
|
|
2631
|
+
/**
|
|
2632
|
+
* Postal codes to exclude within the system (e.g., ['10001', '10002'] for us_zip)
|
|
2633
|
+
*
|
|
2634
|
+
* @minItems 1
|
|
2635
|
+
*/
|
|
2636
|
+
values: [string, ...string[]];
|
|
2637
|
+
},
|
|
2638
|
+
...{
|
|
2639
|
+
system: PostalCodeSystem1;
|
|
2640
|
+
/**
|
|
2641
|
+
* Postal codes to exclude within the system (e.g., ['10001', '10002'] for us_zip)
|
|
2642
|
+
*
|
|
2643
|
+
* @minItems 1
|
|
2644
|
+
*/
|
|
2645
|
+
values: [string, ...string[]];
|
|
2646
|
+
}[]
|
|
2647
|
+
];
|
|
2648
|
+
/**
|
|
2649
|
+
* AXE segment ID to include for targeting
|
|
2650
|
+
*/
|
|
2651
|
+
axe_include_segment?: string;
|
|
2652
|
+
/**
|
|
2653
|
+
* AXE segment ID to exclude from targeting
|
|
2654
|
+
*/
|
|
2206
2655
|
axe_exclude_segment?: string;
|
|
2207
2656
|
frequency_cap?: FrequencyCap;
|
|
2208
2657
|
property_list?: PropertyListReference;
|
|
@@ -2220,8 +2669,10 @@ export interface TargetingOverlay {
|
|
|
2220
2669
|
verification_required?: boolean;
|
|
2221
2670
|
/**
|
|
2222
2671
|
* Accepted verification methods. If omitted, any method the platform supports is acceptable.
|
|
2672
|
+
*
|
|
2673
|
+
* @minItems 1
|
|
2223
2674
|
*/
|
|
2224
|
-
accepted_methods?: AgeVerificationMethod[];
|
|
2675
|
+
accepted_methods?: [AgeVerificationMethod, ...AgeVerificationMethod[]];
|
|
2225
2676
|
};
|
|
2226
2677
|
/**
|
|
2227
2678
|
* Restrict to specific platforms. Use for technical compatibility (app only works on iOS). Values from Sec-CH-UA-Platform standard, extended for CTV.
|
|
@@ -2457,6 +2908,18 @@ export interface VideoAsset {
|
|
|
2457
2908
|
* True peak level in dBFS
|
|
2458
2909
|
*/
|
|
2459
2910
|
audio_true_peak_dbfs?: number;
|
|
2911
|
+
/**
|
|
2912
|
+
* URL to captions file (WebVTT, SRT, etc.)
|
|
2913
|
+
*/
|
|
2914
|
+
captions_url?: string;
|
|
2915
|
+
/**
|
|
2916
|
+
* URL to text transcript of the video content
|
|
2917
|
+
*/
|
|
2918
|
+
transcript_url?: string;
|
|
2919
|
+
/**
|
|
2920
|
+
* URL to audio description track for visually impaired users
|
|
2921
|
+
*/
|
|
2922
|
+
audio_description_url?: string;
|
|
2460
2923
|
[k: string]: unknown | undefined;
|
|
2461
2924
|
}
|
|
2462
2925
|
/**
|
|
@@ -2507,6 +2970,10 @@ export interface AudioAsset {
|
|
|
2507
2970
|
* True peak level in dBFS
|
|
2508
2971
|
*/
|
|
2509
2972
|
true_peak_dbfs?: number;
|
|
2973
|
+
/**
|
|
2974
|
+
* URL to text transcript of the audio content
|
|
2975
|
+
*/
|
|
2976
|
+
transcript_url?: string;
|
|
2510
2977
|
[k: string]: unknown | undefined;
|
|
2511
2978
|
}
|
|
2512
2979
|
/**
|
|
@@ -2535,6 +3002,27 @@ export interface HTMLAsset {
|
|
|
2535
3002
|
* HTML version (e.g., 'HTML5')
|
|
2536
3003
|
*/
|
|
2537
3004
|
version?: string;
|
|
3005
|
+
/**
|
|
3006
|
+
* Self-declared accessibility properties for this opaque creative
|
|
3007
|
+
*/
|
|
3008
|
+
accessibility?: {
|
|
3009
|
+
/**
|
|
3010
|
+
* Text alternative describing the creative content
|
|
3011
|
+
*/
|
|
3012
|
+
alt_text?: string;
|
|
3013
|
+
/**
|
|
3014
|
+
* Whether the creative can be fully operated via keyboard
|
|
3015
|
+
*/
|
|
3016
|
+
keyboard_navigable?: boolean;
|
|
3017
|
+
/**
|
|
3018
|
+
* Whether the creative respects prefers-reduced-motion or provides pause/stop controls
|
|
3019
|
+
*/
|
|
3020
|
+
motion_control?: boolean;
|
|
3021
|
+
/**
|
|
3022
|
+
* Whether the creative has been tested with screen readers
|
|
3023
|
+
*/
|
|
3024
|
+
screen_reader_tested?: boolean;
|
|
3025
|
+
};
|
|
2538
3026
|
[k: string]: unknown | undefined;
|
|
2539
3027
|
}
|
|
2540
3028
|
/**
|
|
@@ -2560,6 +3048,27 @@ export interface JavaScriptAsset {
|
|
|
2560
3048
|
*/
|
|
2561
3049
|
content: string;
|
|
2562
3050
|
module_type?: JavaScriptModuleType;
|
|
3051
|
+
/**
|
|
3052
|
+
* Self-declared accessibility properties for this opaque creative
|
|
3053
|
+
*/
|
|
3054
|
+
accessibility?: {
|
|
3055
|
+
/**
|
|
3056
|
+
* Text alternative describing the creative content
|
|
3057
|
+
*/
|
|
3058
|
+
alt_text?: string;
|
|
3059
|
+
/**
|
|
3060
|
+
* Whether the creative can be fully operated via keyboard
|
|
3061
|
+
*/
|
|
3062
|
+
keyboard_navigable?: boolean;
|
|
3063
|
+
/**
|
|
3064
|
+
* Whether the creative respects prefers-reduced-motion or provides pause/stop controls
|
|
3065
|
+
*/
|
|
3066
|
+
motion_control?: boolean;
|
|
3067
|
+
/**
|
|
3068
|
+
* Whether the creative has been tested with screen readers
|
|
3069
|
+
*/
|
|
3070
|
+
screen_reader_tested?: boolean;
|
|
3071
|
+
};
|
|
2563
3072
|
[k: string]: unknown | undefined;
|
|
2564
3073
|
}
|
|
2565
3074
|
/**
|
|
@@ -2599,28 +3108,6 @@ export interface PromotedOfferings {
|
|
|
2599
3108
|
/**
|
|
2600
3109
|
* Inline brand manifest object
|
|
2601
3110
|
*/
|
|
2602
|
-
export interface PromotedProducts {
|
|
2603
|
-
/**
|
|
2604
|
-
* Direct product SKU references from the brand manifest product catalog
|
|
2605
|
-
*/
|
|
2606
|
-
manifest_skus?: string[];
|
|
2607
|
-
/**
|
|
2608
|
-
* Select products by tags from the brand manifest product catalog (e.g., 'organic', 'sauces', 'holiday')
|
|
2609
|
-
*/
|
|
2610
|
-
manifest_tags?: string[];
|
|
2611
|
-
/**
|
|
2612
|
-
* Select products from a specific category in the brand manifest product catalog (e.g., 'beverages/soft-drinks', 'food/sauces')
|
|
2613
|
-
*/
|
|
2614
|
-
manifest_category?: string;
|
|
2615
|
-
/**
|
|
2616
|
-
* Natural language query to select products from the brand manifest (e.g., 'all Kraft Heinz pasta sauces', 'organic products under $20')
|
|
2617
|
-
*/
|
|
2618
|
-
manifest_query?: string;
|
|
2619
|
-
[k: string]: unknown | undefined;
|
|
2620
|
-
}
|
|
2621
|
-
/**
|
|
2622
|
-
* A promotable offering from a brand. Can represent a campaign, product promotion, service, or any other thing the brand wants to make available. Offerings can be promoted via traditional creatives (using portfolio_ref or assets) or conversational SI experiences (via si_agent_url at the promoted-offerings level).
|
|
2623
|
-
*/
|
|
2624
3111
|
export interface Offering {
|
|
2625
3112
|
/**
|
|
2626
3113
|
* Unique identifier for this offering. Used by hosts to reference specific offerings in si_get_offering calls.
|
|
@@ -2780,9 +3267,25 @@ export interface Account {
|
|
|
2780
3267
|
*/
|
|
2781
3268
|
billing_proxy?: string;
|
|
2782
3269
|
/**
|
|
2783
|
-
* Account status
|
|
3270
|
+
* Account status. pending_approval: seller reviewing (credit, contracts). payment_required: credit limit reached or funds depleted. suspended: was active, now paused. closed: terminated.
|
|
3271
|
+
*/
|
|
3272
|
+
status: 'active' | 'pending_approval' | 'payment_required' | 'suspended' | 'closed';
|
|
3273
|
+
/**
|
|
3274
|
+
* House domain where brand.json is hosted. Canonical identity anchor for the brand.
|
|
3275
|
+
*/
|
|
3276
|
+
house?: string;
|
|
3277
|
+
/**
|
|
3278
|
+
* Brand ID within the house portfolio (from brand.json)
|
|
3279
|
+
*/
|
|
3280
|
+
brand_id?: string;
|
|
3281
|
+
/**
|
|
3282
|
+
* Domain of the entity operating this account
|
|
3283
|
+
*/
|
|
3284
|
+
operator?: string;
|
|
3285
|
+
/**
|
|
3286
|
+
* Who is invoiced on this account. brand: seller invoices the brand directly. operator: seller invoices the operator (agency). agent: agent consolidates billing.
|
|
2784
3287
|
*/
|
|
2785
|
-
|
|
3288
|
+
billing?: 'brand' | 'operator' | 'agent';
|
|
2786
3289
|
/**
|
|
2787
3290
|
* Identifier for the rate card applied to this account
|
|
2788
3291
|
*/
|
|
@@ -2799,6 +3302,7 @@ export interface Account {
|
|
|
2799
3302
|
currency: string;
|
|
2800
3303
|
};
|
|
2801
3304
|
ext?: ExtensionObject;
|
|
3305
|
+
[k: string]: unknown | undefined;
|
|
2802
3306
|
}
|
|
2803
3307
|
/**
|
|
2804
3308
|
* 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.
|
|
@@ -2842,6 +3346,7 @@ export interface Package {
|
|
|
2842
3346
|
* Format IDs that creative assets will be provided for this package
|
|
2843
3347
|
*/
|
|
2844
3348
|
format_ids_to_provide?: FormatID[];
|
|
3349
|
+
optimization_goal?: OptimizationGoal;
|
|
2845
3350
|
/**
|
|
2846
3351
|
* Whether this package is paused by the buyer. Paused packages do not deliver impressions. Defaults to false.
|
|
2847
3352
|
*/
|
|
@@ -3048,19 +3553,7 @@ export interface ListCreativesRequest {
|
|
|
3048
3553
|
field?: CreativeSortField;
|
|
3049
3554
|
direction?: SortDirection;
|
|
3050
3555
|
};
|
|
3051
|
-
|
|
3052
|
-
* Pagination parameters
|
|
3053
|
-
*/
|
|
3054
|
-
pagination?: {
|
|
3055
|
-
/**
|
|
3056
|
-
* Maximum number of creatives to return
|
|
3057
|
-
*/
|
|
3058
|
-
limit?: number;
|
|
3059
|
-
/**
|
|
3060
|
-
* Number of creatives to skip
|
|
3061
|
-
*/
|
|
3062
|
-
offset?: number;
|
|
3063
|
-
};
|
|
3556
|
+
pagination?: PaginationRequest;
|
|
3064
3557
|
/**
|
|
3065
3558
|
* Include package assignment information in response
|
|
3066
3559
|
*/
|
|
@@ -3086,24 +3579,34 @@ export interface ListCreativesRequest {
|
|
|
3086
3579
|
export interface CreativeFilters {
|
|
3087
3580
|
/**
|
|
3088
3581
|
* Filter creatives by owning accounts. Useful for agencies managing multiple client accounts.
|
|
3582
|
+
*
|
|
3583
|
+
* @minItems 1
|
|
3089
3584
|
*/
|
|
3090
|
-
account_ids?: string[];
|
|
3585
|
+
account_ids?: [string, ...string[]];
|
|
3091
3586
|
/**
|
|
3092
3587
|
* Filter by creative format types (e.g., video, audio, display)
|
|
3588
|
+
*
|
|
3589
|
+
* @minItems 1
|
|
3093
3590
|
*/
|
|
3094
|
-
formats?: string[];
|
|
3591
|
+
formats?: [string, ...string[]];
|
|
3095
3592
|
/**
|
|
3096
3593
|
* Filter by creative approval statuses
|
|
3594
|
+
*
|
|
3595
|
+
* @minItems 1
|
|
3097
3596
|
*/
|
|
3098
|
-
statuses?: CreativeStatus[];
|
|
3597
|
+
statuses?: [CreativeStatus, ...CreativeStatus[]];
|
|
3099
3598
|
/**
|
|
3100
3599
|
* Filter by creative tags (all tags must match)
|
|
3600
|
+
*
|
|
3601
|
+
* @minItems 1
|
|
3101
3602
|
*/
|
|
3102
|
-
tags?: string[];
|
|
3603
|
+
tags?: [string, ...string[]];
|
|
3103
3604
|
/**
|
|
3104
3605
|
* Filter by creative tags (any tag must match)
|
|
3606
|
+
*
|
|
3607
|
+
* @minItems 1
|
|
3105
3608
|
*/
|
|
3106
|
-
tags_any?: string[];
|
|
3609
|
+
tags_any?: [string, ...string[]];
|
|
3107
3610
|
/**
|
|
3108
3611
|
* Filter by creative names containing this text (case-insensitive)
|
|
3109
3612
|
*/
|
|
@@ -3111,9 +3614,10 @@ export interface CreativeFilters {
|
|
|
3111
3614
|
/**
|
|
3112
3615
|
* Filter by specific creative IDs
|
|
3113
3616
|
*
|
|
3617
|
+
* @minItems 1
|
|
3114
3618
|
* @maxItems 100
|
|
3115
3619
|
*/
|
|
3116
|
-
creative_ids?: string[];
|
|
3620
|
+
creative_ids?: [string, ...string[]];
|
|
3117
3621
|
/**
|
|
3118
3622
|
* Filter creatives created after this date (ISO 8601)
|
|
3119
3623
|
*/
|
|
@@ -3132,16 +3636,22 @@ export interface CreativeFilters {
|
|
|
3132
3636
|
updated_before?: string;
|
|
3133
3637
|
/**
|
|
3134
3638
|
* Filter creatives assigned to any of these packages
|
|
3639
|
+
*
|
|
3640
|
+
* @minItems 1
|
|
3135
3641
|
*/
|
|
3136
|
-
assigned_to_packages?: string[];
|
|
3642
|
+
assigned_to_packages?: [string, ...string[]];
|
|
3137
3643
|
/**
|
|
3138
3644
|
* Filter creatives assigned to any of these media buys
|
|
3645
|
+
*
|
|
3646
|
+
* @minItems 1
|
|
3139
3647
|
*/
|
|
3140
|
-
media_buy_ids?: string[];
|
|
3648
|
+
media_buy_ids?: [string, ...string[]];
|
|
3141
3649
|
/**
|
|
3142
3650
|
* Filter creatives assigned to media buys with any of these buyer references
|
|
3651
|
+
*
|
|
3652
|
+
* @minItems 1
|
|
3143
3653
|
*/
|
|
3144
|
-
buyer_refs?: string[];
|
|
3654
|
+
buyer_refs?: [string, ...string[]];
|
|
3145
3655
|
/**
|
|
3146
3656
|
* Filter for unassigned creatives when true, assigned creatives when false
|
|
3147
3657
|
*/
|
|
@@ -3153,7 +3663,7 @@ export interface CreativeFilters {
|
|
|
3153
3663
|
[k: string]: unknown | undefined;
|
|
3154
3664
|
}
|
|
3155
3665
|
/**
|
|
3156
|
-
*
|
|
3666
|
+
* Standard cursor-based pagination parameters for list operations
|
|
3157
3667
|
*/
|
|
3158
3668
|
/**
|
|
3159
3669
|
* Sort direction for list queries
|
|
@@ -3206,11 +3716,11 @@ export interface ListCreativesResponse {
|
|
|
3206
3716
|
/**
|
|
3207
3717
|
* Total number of creatives matching filters (across all pages)
|
|
3208
3718
|
*/
|
|
3209
|
-
total_matching
|
|
3719
|
+
total_matching?: number;
|
|
3210
3720
|
/**
|
|
3211
3721
|
* Number of creatives returned in this response
|
|
3212
3722
|
*/
|
|
3213
|
-
returned
|
|
3723
|
+
returned?: number;
|
|
3214
3724
|
/**
|
|
3215
3725
|
* List of filters that were applied to the query
|
|
3216
3726
|
*/
|
|
@@ -3223,31 +3733,7 @@ export interface ListCreativesResponse {
|
|
|
3223
3733
|
direction?: SortDirection;
|
|
3224
3734
|
};
|
|
3225
3735
|
};
|
|
3226
|
-
|
|
3227
|
-
* Pagination information for navigating results
|
|
3228
|
-
*/
|
|
3229
|
-
pagination: {
|
|
3230
|
-
/**
|
|
3231
|
-
* Maximum number of results requested
|
|
3232
|
-
*/
|
|
3233
|
-
limit: number;
|
|
3234
|
-
/**
|
|
3235
|
-
* Number of results skipped
|
|
3236
|
-
*/
|
|
3237
|
-
offset: number;
|
|
3238
|
-
/**
|
|
3239
|
-
* Whether more results are available
|
|
3240
|
-
*/
|
|
3241
|
-
has_more: boolean;
|
|
3242
|
-
/**
|
|
3243
|
-
* Total number of pages available
|
|
3244
|
-
*/
|
|
3245
|
-
total_pages?: number;
|
|
3246
|
-
/**
|
|
3247
|
-
* Current page number (1-based)
|
|
3248
|
-
*/
|
|
3249
|
-
current_page?: number;
|
|
3250
|
-
};
|
|
3736
|
+
pagination: PaginationResponse;
|
|
3251
3737
|
/**
|
|
3252
3738
|
* Array of creative assets matching the query
|
|
3253
3739
|
*/
|
|
@@ -3386,7 +3872,7 @@ export interface ListCreativesResponse {
|
|
|
3386
3872
|
ext?: ExtensionObject;
|
|
3387
3873
|
}
|
|
3388
3874
|
/**
|
|
3389
|
-
*
|
|
3875
|
+
* Standard cursor-based pagination metadata for list responses
|
|
3390
3876
|
*/
|
|
3391
3877
|
/**
|
|
3392
3878
|
* Request parameters for updating campaign and package settings
|
|
@@ -3449,6 +3935,7 @@ export type PackageUpdate = {
|
|
|
3449
3935
|
* Pause/resume specific package (true = paused, false = active)
|
|
3450
3936
|
*/
|
|
3451
3937
|
paused?: boolean;
|
|
3938
|
+
optimization_goal?: OptimizationGoal;
|
|
3452
3939
|
targeting_overlay?: TargetingOverlay;
|
|
3453
3940
|
/**
|
|
3454
3941
|
* Replace creative assignments for this package with optional weights and placement targeting. Uses replacement semantics - omit to leave assignments unchanged.
|
|
@@ -3457,9 +3944,10 @@ export type PackageUpdate = {
|
|
|
3457
3944
|
/**
|
|
3458
3945
|
* Upload new creative assets and assign to this package (creatives will be added to library). Use creative_assignments instead for existing library creatives.
|
|
3459
3946
|
*
|
|
3947
|
+
* @minItems 1
|
|
3460
3948
|
* @maxItems 100
|
|
3461
3949
|
*/
|
|
3462
|
-
creatives?: CreativeAsset[];
|
|
3950
|
+
creatives?: [CreativeAsset, ...CreativeAsset[]];
|
|
3463
3951
|
ext?: ExtensionObject;
|
|
3464
3952
|
[k: string]: unknown | undefined;
|
|
3465
3953
|
} & {
|
|
@@ -3517,6 +4005,10 @@ export type MediaBuyStatus = 'pending_activation' | 'active' | 'paused' | 'compl
|
|
|
3517
4005
|
* Request parameters for retrieving comprehensive delivery metrics
|
|
3518
4006
|
*/
|
|
3519
4007
|
export interface GetMediaBuyDeliveryRequest {
|
|
4008
|
+
/**
|
|
4009
|
+
* Filter delivery data to a specific account. When provided, only returns media buys belonging to this account. When omitted, returns data across all accessible accounts. Optional if the agent has a single account.
|
|
4010
|
+
*/
|
|
4011
|
+
account_id?: string;
|
|
3520
4012
|
/**
|
|
3521
4013
|
* Array of publisher media buy IDs to get delivery data for
|
|
3522
4014
|
*/
|
|
@@ -3530,11 +4022,11 @@ export interface GetMediaBuyDeliveryRequest {
|
|
|
3530
4022
|
*/
|
|
3531
4023
|
status_filter?: MediaBuyStatus | MediaBuyStatus[];
|
|
3532
4024
|
/**
|
|
3533
|
-
* Start date for reporting period (YYYY-MM-DD)
|
|
4025
|
+
* Start date for reporting period (YYYY-MM-DD). When omitted along with end_date, returns campaign lifetime data. Only accepted when the product's reporting_capabilities.date_range_support is 'date_range'.
|
|
3534
4026
|
*/
|
|
3535
4027
|
start_date?: string;
|
|
3536
4028
|
/**
|
|
3537
|
-
* End date for reporting period (YYYY-MM-DD)
|
|
4029
|
+
* End date for reporting period (YYYY-MM-DD). When omitted along with start_date, returns campaign lifetime data. Only accepted when the product's reporting_capabilities.date_range_support is 'date_range'.
|
|
3538
4030
|
*/
|
|
3539
4031
|
end_date?: string;
|
|
3540
4032
|
context?: ContextObject;
|
|
@@ -3543,14 +4035,18 @@ export interface GetMediaBuyDeliveryRequest {
|
|
|
3543
4035
|
/**
|
|
3544
4036
|
* 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.
|
|
3545
4037
|
*/
|
|
4038
|
+
/**
|
|
4039
|
+
* Attribution model used to assign credit when multiple touchpoints exist
|
|
4040
|
+
*/
|
|
4041
|
+
export type AttributionModel = 'last_touch' | 'first_touch' | 'linear' | 'time_decay' | 'data_driven';
|
|
3546
4042
|
/**
|
|
3547
4043
|
* Pricing model used for this media buy
|
|
3548
4044
|
*/
|
|
3549
|
-
export type PricingModel = 'cpm' | 'vcpm' | 'cpc' | 'cpcv' | 'cpv' | 'cpp' | 'flat_rate';
|
|
4045
|
+
export type PricingModel = 'cpm' | 'vcpm' | 'cpc' | 'cpcv' | 'cpv' | 'cpp' | 'cpa' | 'flat_rate' | 'time';
|
|
3550
4046
|
/**
|
|
3551
|
-
* The
|
|
4047
|
+
* The event type
|
|
3552
4048
|
*/
|
|
3553
|
-
export type PricingModel1 = 'cpm' | 'vcpm' | 'cpc' | 'cpcv' | 'cpv' | 'cpp' | 'flat_rate';
|
|
4049
|
+
export type PricingModel1 = 'cpm' | 'vcpm' | 'cpc' | 'cpcv' | 'cpv' | 'cpp' | 'cpa' | 'flat_rate' | 'time';
|
|
3554
4050
|
/**
|
|
3555
4051
|
* Response payload for get_media_buy_delivery task
|
|
3556
4052
|
*/
|
|
@@ -3592,6 +4088,7 @@ export interface GetMediaBuyDeliveryResponse {
|
|
|
3592
4088
|
* ISO 4217 currency code
|
|
3593
4089
|
*/
|
|
3594
4090
|
currency: string;
|
|
4091
|
+
attribution_window?: AttributionWindow;
|
|
3595
4092
|
/**
|
|
3596
4093
|
* Combined metrics across all returned media buys. Only included in API responses (get_media_buy_delivery), not in webhook notifications.
|
|
3597
4094
|
*/
|
|
@@ -3612,6 +4109,26 @@ export interface GetMediaBuyDeliveryResponse {
|
|
|
3612
4109
|
* Total video completions across all media buys (if applicable)
|
|
3613
4110
|
*/
|
|
3614
4111
|
video_completions?: number;
|
|
4112
|
+
/**
|
|
4113
|
+
* Total conversions across all media buys (if applicable)
|
|
4114
|
+
*/
|
|
4115
|
+
conversions?: number;
|
|
4116
|
+
/**
|
|
4117
|
+
* Total conversion value across all media buys (if applicable)
|
|
4118
|
+
*/
|
|
4119
|
+
conversion_value?: number;
|
|
4120
|
+
/**
|
|
4121
|
+
* Aggregate return on ad spend across all media buys (total conversion_value / total spend)
|
|
4122
|
+
*/
|
|
4123
|
+
roas?: number;
|
|
4124
|
+
/**
|
|
4125
|
+
* Fraction of total conversions across all media buys from first-time brand buyers (weighted by conversion volume, not a simple average of per-buy rates)
|
|
4126
|
+
*/
|
|
4127
|
+
new_to_brand_rate?: number;
|
|
4128
|
+
/**
|
|
4129
|
+
* Aggregate cost per conversion across all media buys (total spend / total conversions)
|
|
4130
|
+
*/
|
|
4131
|
+
cost_per_acquisition?: number;
|
|
3615
4132
|
/**
|
|
3616
4133
|
* Number of media buys included in the response
|
|
3617
4134
|
*/
|
|
@@ -3681,6 +4198,19 @@ export interface GetMediaBuyDeliveryResponse {
|
|
|
3681
4198
|
* Whether this package is currently paused by the buyer
|
|
3682
4199
|
*/
|
|
3683
4200
|
paused?: boolean;
|
|
4201
|
+
/**
|
|
4202
|
+
* Metrics broken down by creative within this package. Available when the seller supports creative-level reporting.
|
|
4203
|
+
*/
|
|
4204
|
+
by_creative?: (DeliveryMetrics & {
|
|
4205
|
+
/**
|
|
4206
|
+
* Creative identifier matching the creative assignment
|
|
4207
|
+
*/
|
|
4208
|
+
creative_id: string;
|
|
4209
|
+
/**
|
|
4210
|
+
* Observed delivery share for this creative within the package during the reporting period, expressed as a percentage (0-100). Reflects actual delivery distribution, not a configured setting.
|
|
4211
|
+
*/
|
|
4212
|
+
weight?: number;
|
|
4213
|
+
})[];
|
|
3684
4214
|
})[];
|
|
3685
4215
|
/**
|
|
3686
4216
|
* Day-by-day delivery
|
|
@@ -3698,6 +4228,22 @@ export interface GetMediaBuyDeliveryResponse {
|
|
|
3698
4228
|
* Daily spend
|
|
3699
4229
|
*/
|
|
3700
4230
|
spend: number;
|
|
4231
|
+
/**
|
|
4232
|
+
* Daily conversions
|
|
4233
|
+
*/
|
|
4234
|
+
conversions?: number;
|
|
4235
|
+
/**
|
|
4236
|
+
* Daily conversion value
|
|
4237
|
+
*/
|
|
4238
|
+
conversion_value?: number;
|
|
4239
|
+
/**
|
|
4240
|
+
* Daily return on ad spend (conversion_value / spend)
|
|
4241
|
+
*/
|
|
4242
|
+
roas?: number;
|
|
4243
|
+
/**
|
|
4244
|
+
* Daily fraction of conversions from first-time brand buyers (0 = none, 1 = all)
|
|
4245
|
+
*/
|
|
4246
|
+
new_to_brand_rate?: number;
|
|
3701
4247
|
}[];
|
|
3702
4248
|
}[];
|
|
3703
4249
|
/**
|
|
@@ -3707,6 +4253,21 @@ export interface GetMediaBuyDeliveryResponse {
|
|
|
3707
4253
|
context?: ContextObject;
|
|
3708
4254
|
ext?: ExtensionObject;
|
|
3709
4255
|
}
|
|
4256
|
+
/**
|
|
4257
|
+
* Attribution methodology and lookback windows used for conversion metrics in this response. All media buys from a single seller share the same attribution methodology. Enables cross-platform comparison (e.g., Amazon 14-day click vs. Criteo 30-day click).
|
|
4258
|
+
*/
|
|
4259
|
+
export interface AttributionWindow {
|
|
4260
|
+
/**
|
|
4261
|
+
* Click-through attribution window in days. Conversions occurring within this many days after a click are attributed to the ad.
|
|
4262
|
+
*/
|
|
4263
|
+
click_window_days?: number;
|
|
4264
|
+
/**
|
|
4265
|
+
* View-through attribution window in days. Conversions occurring within this many days after an ad impression (without click) are attributed to the ad.
|
|
4266
|
+
*/
|
|
4267
|
+
view_window_days?: number;
|
|
4268
|
+
model: AttributionModel;
|
|
4269
|
+
[k: string]: unknown | undefined;
|
|
4270
|
+
}
|
|
3710
4271
|
/**
|
|
3711
4272
|
* Standard delivery metrics that can be reported at media buy, package, or creative level
|
|
3712
4273
|
*/
|
|
@@ -3740,13 +4301,48 @@ export interface DeliveryMetrics {
|
|
|
3740
4301
|
*/
|
|
3741
4302
|
completion_rate?: number;
|
|
3742
4303
|
/**
|
|
3743
|
-
*
|
|
4304
|
+
* Total conversions attributed to this delivery. When by_event_type is present, this equals the sum of all by_event_type[].count entries.
|
|
3744
4305
|
*/
|
|
3745
4306
|
conversions?: number;
|
|
3746
4307
|
/**
|
|
3747
|
-
*
|
|
4308
|
+
* Total monetary value of attributed conversions (in the reporting currency)
|
|
4309
|
+
*/
|
|
4310
|
+
conversion_value?: number;
|
|
4311
|
+
/**
|
|
4312
|
+
* Return on ad spend (conversion_value / spend)
|
|
4313
|
+
*/
|
|
4314
|
+
roas?: number;
|
|
4315
|
+
/**
|
|
4316
|
+
* Cost per conversion (spend / conversions)
|
|
4317
|
+
*/
|
|
4318
|
+
cost_per_acquisition?: number;
|
|
4319
|
+
/**
|
|
4320
|
+
* Fraction of conversions from first-time brand buyers (0 = none, 1 = all)
|
|
4321
|
+
*/
|
|
4322
|
+
new_to_brand_rate?: number;
|
|
4323
|
+
/**
|
|
4324
|
+
* Leads generated (convenience alias for by_event_type where event_type='lead')
|
|
3748
4325
|
*/
|
|
3749
4326
|
leads?: number;
|
|
4327
|
+
/**
|
|
4328
|
+
* Conversion metrics broken down by event type. Spend-derived metrics (ROAS, CPA) are only available at the package/totals level since spend cannot be attributed to individual event types.
|
|
4329
|
+
*/
|
|
4330
|
+
by_event_type?: {
|
|
4331
|
+
event_type: EventType;
|
|
4332
|
+
/**
|
|
4333
|
+
* Event source that produced these conversions (for disambiguation when multiple event sources are configured)
|
|
4334
|
+
*/
|
|
4335
|
+
event_source_id?: string;
|
|
4336
|
+
/**
|
|
4337
|
+
* Number of events of this type
|
|
4338
|
+
*/
|
|
4339
|
+
count: number;
|
|
4340
|
+
/**
|
|
4341
|
+
* Total monetary value of events of this type
|
|
4342
|
+
*/
|
|
4343
|
+
value?: number;
|
|
4344
|
+
[k: string]: unknown | undefined;
|
|
4345
|
+
}[];
|
|
3750
4346
|
/**
|
|
3751
4347
|
* Gross Rating Points delivered (for CPP)
|
|
3752
4348
|
*/
|
|
@@ -3836,10 +4432,59 @@ export interface DeliveryMetrics {
|
|
|
3836
4432
|
}[];
|
|
3837
4433
|
[k: string]: unknown | undefined;
|
|
3838
4434
|
};
|
|
3839
|
-
|
|
3840
|
-
|
|
3841
|
-
|
|
3842
|
-
|
|
4435
|
+
/**
|
|
4436
|
+
* Viewability metrics. Viewable rate should be calculated as viewable_impressions / measurable_impressions (not total impressions), since some environments cannot measure viewability.
|
|
4437
|
+
*/
|
|
4438
|
+
viewability?: {
|
|
4439
|
+
/**
|
|
4440
|
+
* Impressions where viewability could be measured. Excludes environments without measurement capability (e.g., non-Intersection Observer browsers, certain app environments).
|
|
4441
|
+
*/
|
|
4442
|
+
measurable_impressions?: number;
|
|
4443
|
+
/**
|
|
4444
|
+
* Impressions that met the viewability threshold defined by the measurement standard.
|
|
4445
|
+
*/
|
|
4446
|
+
viewable_impressions?: number;
|
|
4447
|
+
/**
|
|
4448
|
+
* Viewable impression rate (viewable_impressions / measurable_impressions). Range 0.0 to 1.0.
|
|
4449
|
+
*/
|
|
4450
|
+
viewable_rate?: number;
|
|
4451
|
+
/**
|
|
4452
|
+
* Viewability measurement standard. 'mrc': 50% of pixels in view for 1 second (display) or 2 seconds (video), per MRC/IAB guidelines. 'groupm': 100% of pixels in view for the same durations. These are materially different thresholds and should not be compared across standards.
|
|
4453
|
+
*/
|
|
4454
|
+
standard?: 'mrc' | 'groupm';
|
|
4455
|
+
[k: string]: unknown | undefined;
|
|
4456
|
+
};
|
|
4457
|
+
/**
|
|
4458
|
+
* Platform-specific engagement rate (0.0 to 1.0). Definition varies by platform (e.g., likes+comments+shares/impressions on social, interactions/impressions on rich media).
|
|
4459
|
+
*/
|
|
4460
|
+
engagement_rate?: number;
|
|
4461
|
+
/**
|
|
4462
|
+
* Cost per click (spend / clicks)
|
|
4463
|
+
*/
|
|
4464
|
+
cost_per_click?: number;
|
|
4465
|
+
/**
|
|
4466
|
+
* Conversion metrics broken down by action source (website, app, in_store, etc.). Useful for omnichannel sellers where conversions occur across digital and physical channels.
|
|
4467
|
+
*/
|
|
4468
|
+
by_action_source?: {
|
|
4469
|
+
action_source: ActionSource;
|
|
4470
|
+
/**
|
|
4471
|
+
* Event source that produced these conversions (for disambiguation when multiple event sources are configured)
|
|
4472
|
+
*/
|
|
4473
|
+
event_source_id?: string;
|
|
4474
|
+
/**
|
|
4475
|
+
* Number of conversions from this action source
|
|
4476
|
+
*/
|
|
4477
|
+
count: number;
|
|
4478
|
+
/**
|
|
4479
|
+
* Total monetary value of conversions from this action source
|
|
4480
|
+
*/
|
|
4481
|
+
value?: number;
|
|
4482
|
+
[k: string]: unknown | undefined;
|
|
4483
|
+
}[];
|
|
4484
|
+
[k: string]: unknown | undefined;
|
|
4485
|
+
}
|
|
4486
|
+
/**
|
|
4487
|
+
* Standard error structure for task-specific errors and warnings
|
|
3843
4488
|
*/
|
|
3844
4489
|
/**
|
|
3845
4490
|
* Request payload for provide_performance_feedback task
|
|
@@ -3922,6 +4567,355 @@ export interface ProvidePerformanceFeedbackError {
|
|
|
3922
4567
|
context?: ContextObject;
|
|
3923
4568
|
ext?: ExtensionObject;
|
|
3924
4569
|
}
|
|
4570
|
+
/**
|
|
4571
|
+
* Standard error structure for task-specific errors and warnings
|
|
4572
|
+
*/
|
|
4573
|
+
/**
|
|
4574
|
+
* Standard marketing event types for event logging, aligned with IAB ECAPI
|
|
4575
|
+
*/
|
|
4576
|
+
export interface SyncEventSourcesRequest {
|
|
4577
|
+
/**
|
|
4578
|
+
* Account to configure event sources for
|
|
4579
|
+
*/
|
|
4580
|
+
account_id: string;
|
|
4581
|
+
/**
|
|
4582
|
+
* Event sources to sync (create or update). When omitted, the call is discovery-only and returns all existing event sources on the account without modification.
|
|
4583
|
+
*/
|
|
4584
|
+
event_sources?: {
|
|
4585
|
+
/**
|
|
4586
|
+
* Unique identifier for this event source
|
|
4587
|
+
*/
|
|
4588
|
+
event_source_id: string;
|
|
4589
|
+
/**
|
|
4590
|
+
* Human-readable name for this event source
|
|
4591
|
+
*/
|
|
4592
|
+
name?: string;
|
|
4593
|
+
/**
|
|
4594
|
+
* Event types this source handles (e.g. purchase, lead). If omitted, accepts all event types.
|
|
4595
|
+
*/
|
|
4596
|
+
event_types?: EventType[];
|
|
4597
|
+
/**
|
|
4598
|
+
* Domains authorized to send events for this event source
|
|
4599
|
+
*/
|
|
4600
|
+
allowed_domains?: string[];
|
|
4601
|
+
}[];
|
|
4602
|
+
/**
|
|
4603
|
+
* When true, event sources not included in this sync will be removed
|
|
4604
|
+
*/
|
|
4605
|
+
delete_missing?: boolean;
|
|
4606
|
+
context?: ContextObject;
|
|
4607
|
+
ext?: ExtensionObject;
|
|
4608
|
+
}
|
|
4609
|
+
/**
|
|
4610
|
+
* 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.
|
|
4611
|
+
*/
|
|
4612
|
+
/**
|
|
4613
|
+
* Response from event source sync operation. Returns either per-source results OR operation-level errors.
|
|
4614
|
+
*/
|
|
4615
|
+
export type SyncEventSourcesResponse = SyncEventSourcesSuccess | SyncEventSourcesError;
|
|
4616
|
+
/**
|
|
4617
|
+
* Standard marketing event types for event logging, aligned with IAB ECAPI
|
|
4618
|
+
*/
|
|
4619
|
+
export interface SyncEventSourcesSuccess {
|
|
4620
|
+
/**
|
|
4621
|
+
* Results for each event source, including both synced and seller-managed sources on the account
|
|
4622
|
+
*/
|
|
4623
|
+
event_sources: {
|
|
4624
|
+
/**
|
|
4625
|
+
* Event source ID from the request
|
|
4626
|
+
*/
|
|
4627
|
+
event_source_id: string;
|
|
4628
|
+
/**
|
|
4629
|
+
* Name of the event source
|
|
4630
|
+
*/
|
|
4631
|
+
name?: string;
|
|
4632
|
+
/**
|
|
4633
|
+
* Seller-assigned identifier for this event source (the ID in the seller's ad platform)
|
|
4634
|
+
*/
|
|
4635
|
+
seller_id?: string;
|
|
4636
|
+
/**
|
|
4637
|
+
* Event types this source handles
|
|
4638
|
+
*/
|
|
4639
|
+
event_types?: EventType[];
|
|
4640
|
+
action_source?: ActionSource;
|
|
4641
|
+
/**
|
|
4642
|
+
* Who manages this event source. 'buyer' = configured via this sync. 'seller' = always-on, managed by the seller (e.g. Amazon sales attribution for Amazon advertisers).
|
|
4643
|
+
*/
|
|
4644
|
+
managed_by?: 'buyer' | 'seller';
|
|
4645
|
+
/**
|
|
4646
|
+
* Implementation details for activating this event source (e.g. JavaScript tag, pixel URL)
|
|
4647
|
+
*/
|
|
4648
|
+
setup?: {
|
|
4649
|
+
/**
|
|
4650
|
+
* Code snippet to place on the site (JavaScript, HTML pixel, etc.)
|
|
4651
|
+
*/
|
|
4652
|
+
snippet?: string;
|
|
4653
|
+
/**
|
|
4654
|
+
* Type of implementation. 'server_only' means no client-side tag is needed.
|
|
4655
|
+
*/
|
|
4656
|
+
snippet_type?: 'javascript' | 'html' | 'pixel_url' | 'server_only';
|
|
4657
|
+
/**
|
|
4658
|
+
* Human/agent-readable setup instructions
|
|
4659
|
+
*/
|
|
4660
|
+
instructions?: string;
|
|
4661
|
+
};
|
|
4662
|
+
/**
|
|
4663
|
+
* Action taken for this event source
|
|
4664
|
+
*/
|
|
4665
|
+
action: 'created' | 'updated' | 'unchanged' | 'deleted' | 'failed';
|
|
4666
|
+
/**
|
|
4667
|
+
* Errors for this event source (only present when action='failed')
|
|
4668
|
+
*/
|
|
4669
|
+
errors?: string[];
|
|
4670
|
+
}[];
|
|
4671
|
+
context?: ContextObject;
|
|
4672
|
+
ext?: ExtensionObject;
|
|
4673
|
+
}
|
|
4674
|
+
/**
|
|
4675
|
+
* 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.
|
|
4676
|
+
*/
|
|
4677
|
+
export interface SyncEventSourcesError {
|
|
4678
|
+
/**
|
|
4679
|
+
* Operation-level errors that prevented processing
|
|
4680
|
+
*/
|
|
4681
|
+
errors: Error[];
|
|
4682
|
+
context?: ContextObject;
|
|
4683
|
+
ext?: ExtensionObject;
|
|
4684
|
+
}
|
|
4685
|
+
/**
|
|
4686
|
+
* Standard error structure for task-specific errors and warnings
|
|
4687
|
+
*/
|
|
4688
|
+
/**
|
|
4689
|
+
* Standard event type
|
|
4690
|
+
*/
|
|
4691
|
+
export type UserMatch = {
|
|
4692
|
+
[k: string]: unknown | undefined;
|
|
4693
|
+
} & {
|
|
4694
|
+
/**
|
|
4695
|
+
* Universal ID values for user matching
|
|
4696
|
+
*
|
|
4697
|
+
* @minItems 1
|
|
4698
|
+
*/
|
|
4699
|
+
uids?: [
|
|
4700
|
+
{
|
|
4701
|
+
type: UIDType;
|
|
4702
|
+
/**
|
|
4703
|
+
* Universal ID value
|
|
4704
|
+
*/
|
|
4705
|
+
value: string;
|
|
4706
|
+
[k: string]: unknown | undefined;
|
|
4707
|
+
},
|
|
4708
|
+
...{
|
|
4709
|
+
type: UIDType;
|
|
4710
|
+
/**
|
|
4711
|
+
* Universal ID value
|
|
4712
|
+
*/
|
|
4713
|
+
value: string;
|
|
4714
|
+
[k: string]: unknown | undefined;
|
|
4715
|
+
}[]
|
|
4716
|
+
];
|
|
4717
|
+
/**
|
|
4718
|
+
* SHA-256 hash of lowercase, trimmed email address. Buyer must normalize before hashing: lowercase, trim whitespace.
|
|
4719
|
+
*/
|
|
4720
|
+
hashed_email?: string;
|
|
4721
|
+
/**
|
|
4722
|
+
* SHA-256 hash of E.164-formatted phone number (e.g. +12065551234). Buyer must normalize to E.164 before hashing.
|
|
4723
|
+
*/
|
|
4724
|
+
hashed_phone?: string;
|
|
4725
|
+
/**
|
|
4726
|
+
* Platform click identifier (fbclid, gclid, ttclid, ScCid, etc.)
|
|
4727
|
+
*/
|
|
4728
|
+
click_id?: string;
|
|
4729
|
+
/**
|
|
4730
|
+
* Type of click identifier (e.g. fbclid, gclid, ttclid, msclkid, ScCid)
|
|
4731
|
+
*/
|
|
4732
|
+
click_id_type?: string;
|
|
4733
|
+
/**
|
|
4734
|
+
* Client IP address for probabilistic matching
|
|
4735
|
+
*/
|
|
4736
|
+
client_ip?: string;
|
|
4737
|
+
/**
|
|
4738
|
+
* Client user agent string for probabilistic matching
|
|
4739
|
+
*/
|
|
4740
|
+
client_user_agent?: string;
|
|
4741
|
+
ext?: ExtensionObject;
|
|
4742
|
+
[k: string]: unknown | undefined;
|
|
4743
|
+
};
|
|
4744
|
+
/**
|
|
4745
|
+
* Universal ID type
|
|
4746
|
+
*/
|
|
4747
|
+
export type UIDType = 'rampid' | 'id5' | 'uid2' | 'euid' | 'pairid' | 'external_id' | 'maid' | 'other';
|
|
4748
|
+
/**
|
|
4749
|
+
* Where the event originated
|
|
4750
|
+
*/
|
|
4751
|
+
export interface LogEventRequest {
|
|
4752
|
+
/**
|
|
4753
|
+
* Event source configured on the account via sync_event_sources
|
|
4754
|
+
*/
|
|
4755
|
+
event_source_id: string;
|
|
4756
|
+
/**
|
|
4757
|
+
* Test event code for validation without affecting production data. Events with this code appear in the platform's test events UI.
|
|
4758
|
+
*/
|
|
4759
|
+
test_event_code?: string;
|
|
4760
|
+
/**
|
|
4761
|
+
* Events to log
|
|
4762
|
+
*
|
|
4763
|
+
* @maxItems 10000
|
|
4764
|
+
*/
|
|
4765
|
+
events: Event[];
|
|
4766
|
+
context?: ContextObject;
|
|
4767
|
+
ext?: ExtensionObject;
|
|
4768
|
+
}
|
|
4769
|
+
/**
|
|
4770
|
+
* A marketing event (conversion, engagement, or custom) for attribution and optimization
|
|
4771
|
+
*/
|
|
4772
|
+
export interface Event {
|
|
4773
|
+
/**
|
|
4774
|
+
* Unique identifier for deduplication (scoped to event_type + event_source_id)
|
|
4775
|
+
*/
|
|
4776
|
+
event_id: string;
|
|
4777
|
+
event_type: EventType;
|
|
4778
|
+
/**
|
|
4779
|
+
* ISO 8601 timestamp when the event occurred
|
|
4780
|
+
*/
|
|
4781
|
+
event_time: string;
|
|
4782
|
+
user_match?: UserMatch;
|
|
4783
|
+
custom_data?: EventCustomData;
|
|
4784
|
+
action_source?: ActionSource;
|
|
4785
|
+
/**
|
|
4786
|
+
* URL where the event occurred (required when action_source is 'website')
|
|
4787
|
+
*/
|
|
4788
|
+
event_source_url?: string;
|
|
4789
|
+
/**
|
|
4790
|
+
* Name for custom events (used when event_type is 'custom')
|
|
4791
|
+
*/
|
|
4792
|
+
custom_event_name?: string;
|
|
4793
|
+
ext?: ExtensionObject;
|
|
4794
|
+
[k: string]: unknown | undefined;
|
|
4795
|
+
}
|
|
4796
|
+
/**
|
|
4797
|
+
* 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.
|
|
4798
|
+
*/
|
|
4799
|
+
export interface EventCustomData {
|
|
4800
|
+
/**
|
|
4801
|
+
* Monetary value of the event (should be accompanied by currency)
|
|
4802
|
+
*/
|
|
4803
|
+
value?: number;
|
|
4804
|
+
/**
|
|
4805
|
+
* ISO 4217 currency code
|
|
4806
|
+
*/
|
|
4807
|
+
currency?: string;
|
|
4808
|
+
/**
|
|
4809
|
+
* Unique order or transaction identifier
|
|
4810
|
+
*/
|
|
4811
|
+
order_id?: string;
|
|
4812
|
+
/**
|
|
4813
|
+
* Product or content identifiers
|
|
4814
|
+
*/
|
|
4815
|
+
content_ids?: string[];
|
|
4816
|
+
/**
|
|
4817
|
+
* Category of content (product, service, etc.)
|
|
4818
|
+
*/
|
|
4819
|
+
content_type?: string;
|
|
4820
|
+
/**
|
|
4821
|
+
* Name of the product or content
|
|
4822
|
+
*/
|
|
4823
|
+
content_name?: string;
|
|
4824
|
+
/**
|
|
4825
|
+
* Category of the product or content
|
|
4826
|
+
*/
|
|
4827
|
+
content_category?: string;
|
|
4828
|
+
/**
|
|
4829
|
+
* Number of items in the event
|
|
4830
|
+
*/
|
|
4831
|
+
num_items?: number;
|
|
4832
|
+
/**
|
|
4833
|
+
* Search query for search events
|
|
4834
|
+
*/
|
|
4835
|
+
search_string?: string;
|
|
4836
|
+
/**
|
|
4837
|
+
* Per-item details for e-commerce events
|
|
4838
|
+
*/
|
|
4839
|
+
contents?: {
|
|
4840
|
+
/**
|
|
4841
|
+
* Product or content identifier
|
|
4842
|
+
*/
|
|
4843
|
+
id: string;
|
|
4844
|
+
/**
|
|
4845
|
+
* Quantity of this item
|
|
4846
|
+
*/
|
|
4847
|
+
quantity?: number;
|
|
4848
|
+
/**
|
|
4849
|
+
* Price per unit of this item
|
|
4850
|
+
*/
|
|
4851
|
+
price?: number;
|
|
4852
|
+
/**
|
|
4853
|
+
* Brand name of this item
|
|
4854
|
+
*/
|
|
4855
|
+
brand?: string;
|
|
4856
|
+
[k: string]: unknown | undefined;
|
|
4857
|
+
}[];
|
|
4858
|
+
ext?: ExtensionObject;
|
|
4859
|
+
[k: string]: unknown | undefined;
|
|
4860
|
+
}
|
|
4861
|
+
/**
|
|
4862
|
+
* 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.
|
|
4863
|
+
*/
|
|
4864
|
+
/**
|
|
4865
|
+
* Response from event logging operation. Returns either event processing results OR operation-level errors.
|
|
4866
|
+
*/
|
|
4867
|
+
export type LogEventResponse = LogEventSuccess | LogEventError;
|
|
4868
|
+
/**
|
|
4869
|
+
* Success response - events received and queued for processing
|
|
4870
|
+
*/
|
|
4871
|
+
export interface LogEventSuccess {
|
|
4872
|
+
/**
|
|
4873
|
+
* Number of events received
|
|
4874
|
+
*/
|
|
4875
|
+
events_received: number;
|
|
4876
|
+
/**
|
|
4877
|
+
* Number of events successfully queued for processing
|
|
4878
|
+
*/
|
|
4879
|
+
events_processed: number;
|
|
4880
|
+
/**
|
|
4881
|
+
* Events that failed validation
|
|
4882
|
+
*/
|
|
4883
|
+
partial_failures?: {
|
|
4884
|
+
/**
|
|
4885
|
+
* ID of the failed event
|
|
4886
|
+
*/
|
|
4887
|
+
event_id: string;
|
|
4888
|
+
/**
|
|
4889
|
+
* Error code
|
|
4890
|
+
*/
|
|
4891
|
+
code: string;
|
|
4892
|
+
/**
|
|
4893
|
+
* Human-readable error message
|
|
4894
|
+
*/
|
|
4895
|
+
message: string;
|
|
4896
|
+
}[];
|
|
4897
|
+
/**
|
|
4898
|
+
* Non-fatal issues (low match quality, missing recommended fields, deprecation notices)
|
|
4899
|
+
*/
|
|
4900
|
+
warnings?: string[];
|
|
4901
|
+
/**
|
|
4902
|
+
* Overall match quality score for the batch (0.0 = no matches, 1.0 = all matched)
|
|
4903
|
+
*/
|
|
4904
|
+
match_quality?: number;
|
|
4905
|
+
context?: ContextObject;
|
|
4906
|
+
ext?: ExtensionObject;
|
|
4907
|
+
}
|
|
4908
|
+
/**
|
|
4909
|
+
* 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.
|
|
4910
|
+
*/
|
|
4911
|
+
export interface LogEventError {
|
|
4912
|
+
/**
|
|
4913
|
+
* Operation-level errors
|
|
4914
|
+
*/
|
|
4915
|
+
errors: Error[];
|
|
4916
|
+
context?: ContextObject;
|
|
4917
|
+
ext?: ExtensionObject;
|
|
4918
|
+
}
|
|
3925
4919
|
/**
|
|
3926
4920
|
* Standard error structure for task-specific errors and warnings
|
|
3927
4921
|
*/
|
|
@@ -3930,7 +4924,7 @@ export interface ProvidePerformanceFeedbackError {
|
|
|
3930
4924
|
*/
|
|
3931
4925
|
export type HTTPMethod = 'GET' | 'POST';
|
|
3932
4926
|
/**
|
|
3933
|
-
*
|
|
4927
|
+
* Standardized macro placeholders for dynamic value substitution in creative tracking URLs. Macros are replaced with actual values at impression time. See docs/creative/universal-macros.mdx for detailed documentation.
|
|
3934
4928
|
*/
|
|
3935
4929
|
export type WebhookResponseType = 'html' | 'json' | 'xml' | 'javascript';
|
|
3936
4930
|
/**
|
|
@@ -3962,7 +4956,7 @@ export interface CreativeManifest {
|
|
|
3962
4956
|
/**
|
|
3963
4957
|
* Map of asset IDs to actual asset content. Each key MUST match an asset_id from the format's assets array (e.g., 'banner_image', 'clickthrough_url', 'video_file', 'vast_tag'). The asset_id is the technical identifier used to match assets to format requirements.
|
|
3964
4958
|
*
|
|
3965
|
-
* IMPORTANT:
|
|
4959
|
+
* IMPORTANT: Full validation requires format context. The format defines what type each asset_id should be. Standalone schema validation only checks structural conformance — each asset must match at least one valid asset type schema.
|
|
3966
4960
|
*/
|
|
3967
4961
|
assets: {
|
|
3968
4962
|
[k: string]: unknown | undefined;
|
|
@@ -3984,13 +4978,13 @@ export interface WebhookAsset {
|
|
|
3984
4978
|
*/
|
|
3985
4979
|
timeout_ms?: number;
|
|
3986
4980
|
/**
|
|
3987
|
-
* Universal macros that can be passed to webhook (e.g.,
|
|
4981
|
+
* Universal macros that can be passed to webhook (e.g., DEVICE_TYPE, COUNTRY). See docs/creative/universal-macros.mdx for full list.
|
|
3988
4982
|
*/
|
|
3989
|
-
supported_macros?: string[];
|
|
4983
|
+
supported_macros?: (UniversalMacro | string)[];
|
|
3990
4984
|
/**
|
|
3991
4985
|
* Universal macros that must be provided for webhook to function
|
|
3992
4986
|
*/
|
|
3993
|
-
required_macros?: string[];
|
|
4987
|
+
required_macros?: (UniversalMacro | string)[];
|
|
3994
4988
|
response_type: WebhookResponseType;
|
|
3995
4989
|
/**
|
|
3996
4990
|
* Security configuration for webhook calls
|
|
@@ -4045,7 +5039,7 @@ export type PreviewCreativeRequest = {
|
|
|
4045
5039
|
* Discriminator indicating this is a single preview request
|
|
4046
5040
|
*/
|
|
4047
5041
|
request_type: 'single';
|
|
4048
|
-
format_id
|
|
5042
|
+
format_id?: FormatID;
|
|
4049
5043
|
creative_manifest: CreativeManifest;
|
|
4050
5044
|
/**
|
|
4051
5045
|
* Array of input sets for generating multiple preview variants. Each input set defines macros and context values for one preview rendering. If not provided, creative agent will generate default previews.
|
|
@@ -4084,7 +5078,7 @@ export type PreviewCreativeRequest = {
|
|
|
4084
5078
|
* @maxItems 50
|
|
4085
5079
|
*/
|
|
4086
5080
|
requests: {
|
|
4087
|
-
format_id
|
|
5081
|
+
format_id?: FormatID2;
|
|
4088
5082
|
creative_manifest: CreativeManifest1;
|
|
4089
5083
|
/**
|
|
4090
5084
|
* Array of input sets for generating multiple preview variants
|
|
@@ -4114,6 +5108,22 @@ export type PreviewCreativeRequest = {
|
|
|
4114
5108
|
output_format?: PreviewOutputFormat2;
|
|
4115
5109
|
context?: ContextObject;
|
|
4116
5110
|
ext?: ExtensionObject;
|
|
5111
|
+
} | {
|
|
5112
|
+
/**
|
|
5113
|
+
* Discriminator indicating this is a variant preview request
|
|
5114
|
+
*/
|
|
5115
|
+
request_type: 'variant';
|
|
5116
|
+
/**
|
|
5117
|
+
* Platform-assigned variant identifier from get_creative_delivery response
|
|
5118
|
+
*/
|
|
5119
|
+
variant_id: string;
|
|
5120
|
+
/**
|
|
5121
|
+
* Creative identifier for context
|
|
5122
|
+
*/
|
|
5123
|
+
creative_id?: string;
|
|
5124
|
+
output_format?: PreviewOutputFormat3;
|
|
5125
|
+
context?: ContextObject;
|
|
5126
|
+
ext?: ExtensionObject;
|
|
4117
5127
|
};
|
|
4118
5128
|
/**
|
|
4119
5129
|
* VAST (Video Ad Serving Template) tag for third-party video ad serving
|
|
@@ -4128,7 +5138,11 @@ export type PreviewOutputFormat1 = 'url' | 'html';
|
|
|
4128
5138
|
*/
|
|
4129
5139
|
export type PreviewOutputFormat2 = 'url' | 'html';
|
|
4130
5140
|
/**
|
|
4131
|
-
*
|
|
5141
|
+
* Output format for the preview. 'url' returns preview_url (iframe-embeddable URL), 'html' returns preview_html (raw HTML for direct embedding).
|
|
5142
|
+
*/
|
|
5143
|
+
export type PreviewOutputFormat3 = 'url' | 'html';
|
|
5144
|
+
/**
|
|
5145
|
+
* Format identifier for rendering the preview. Optional — defaults to creative_manifest.format_id if omitted.
|
|
4132
5146
|
*/
|
|
4133
5147
|
export interface CreativeManifest1 {
|
|
4134
5148
|
format_id: FormatID1;
|
|
@@ -4139,7 +5153,7 @@ export interface CreativeManifest1 {
|
|
|
4139
5153
|
/**
|
|
4140
5154
|
* Map of asset IDs to actual asset content. Each key MUST match an asset_id from the format's assets array (e.g., 'banner_image', 'clickthrough_url', 'video_file', 'vast_tag'). The asset_id is the technical identifier used to match assets to format requirements.
|
|
4141
5155
|
*
|
|
4142
|
-
* IMPORTANT:
|
|
5156
|
+
* IMPORTANT: Full validation requires format context. The format defines what type each asset_id should be. Standalone schema validation only checks structural conformance — each asset must match at least one valid asset type schema.
|
|
4143
5157
|
*/
|
|
4144
5158
|
assets: {
|
|
4145
5159
|
[k: string]: unknown | undefined;
|
|
@@ -4150,7 +5164,7 @@ export interface CreativeManifest1 {
|
|
|
4150
5164
|
/**
|
|
4151
5165
|
* Response containing preview links for one or more creatives. Format matches the request: single preview response for single requests, batch results for batch requests.
|
|
4152
5166
|
*/
|
|
4153
|
-
export type PreviewCreativeResponse = PreviewCreativeSingleResponse | PreviewCreativeBatchResponse;
|
|
5167
|
+
export type PreviewCreativeResponse = PreviewCreativeSingleResponse | PreviewCreativeBatchResponse | PreviewCreativeVariantResponse;
|
|
4154
5168
|
/**
|
|
4155
5169
|
* A single rendered piece of a creative preview with discriminated output format
|
|
4156
5170
|
*/
|
|
@@ -4298,7 +5312,7 @@ export type PreviewRender = {
|
|
|
4298
5312
|
[k: string]: unknown | undefined;
|
|
4299
5313
|
};
|
|
4300
5314
|
/**
|
|
4301
|
-
*
|
|
5315
|
+
* VAST (Video Ad Serving Template) tag for third-party video ad serving
|
|
4302
5316
|
*/
|
|
4303
5317
|
export interface PreviewCreativeSingleResponse {
|
|
4304
5318
|
/**
|
|
@@ -4349,26 +5363,470 @@ export interface PreviewCreativeSingleResponse {
|
|
|
4349
5363
|
ext?: ExtensionObject;
|
|
4350
5364
|
}
|
|
4351
5365
|
/**
|
|
4352
|
-
* 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.
|
|
5366
|
+
* 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.
|
|
5367
|
+
*/
|
|
5368
|
+
export interface PreviewCreativeBatchResponse {
|
|
5369
|
+
/**
|
|
5370
|
+
* Discriminator indicating this is a batch preview response
|
|
5371
|
+
*/
|
|
5372
|
+
response_type: 'batch';
|
|
5373
|
+
/**
|
|
5374
|
+
* Array of preview results corresponding to each request in the same order. results[0] is the result for requests[0], results[1] for requests[1], etc. Order is guaranteed even when some requests fail. Each result contains either a successful preview response or an error.
|
|
5375
|
+
*/
|
|
5376
|
+
results: (PreviewBatchResultSuccess | PreviewBatchResultError)[];
|
|
5377
|
+
context?: ContextObject;
|
|
5378
|
+
ext?: ExtensionObject;
|
|
5379
|
+
}
|
|
5380
|
+
export interface PreviewBatchResultSuccess {
|
|
5381
|
+
success?: true;
|
|
5382
|
+
}
|
|
5383
|
+
export interface PreviewBatchResultError {
|
|
5384
|
+
success?: false;
|
|
5385
|
+
}
|
|
5386
|
+
/**
|
|
5387
|
+
* Variant preview response - shows what a specific creative variant looked like when served during delivery
|
|
5388
|
+
*/
|
|
5389
|
+
export interface PreviewCreativeVariantResponse {
|
|
5390
|
+
/**
|
|
5391
|
+
* Discriminator indicating this is a variant preview response
|
|
5392
|
+
*/
|
|
5393
|
+
response_type: 'variant';
|
|
5394
|
+
/**
|
|
5395
|
+
* Platform-assigned variant identifier
|
|
5396
|
+
*/
|
|
5397
|
+
variant_id: string;
|
|
5398
|
+
/**
|
|
5399
|
+
* Creative identifier this variant belongs to
|
|
5400
|
+
*/
|
|
5401
|
+
creative_id?: string;
|
|
5402
|
+
/**
|
|
5403
|
+
* Array of rendered pieces for this variant. Most formats render as a single piece.
|
|
5404
|
+
*/
|
|
5405
|
+
previews: {
|
|
5406
|
+
/**
|
|
5407
|
+
* Unique identifier for this preview
|
|
5408
|
+
*/
|
|
5409
|
+
preview_id: string;
|
|
5410
|
+
/**
|
|
5411
|
+
* Rendered pieces for this variant
|
|
5412
|
+
*/
|
|
5413
|
+
renders: PreviewRender[];
|
|
5414
|
+
}[];
|
|
5415
|
+
manifest?: CreativeManifest;
|
|
5416
|
+
/**
|
|
5417
|
+
* ISO 8601 timestamp when preview links expire
|
|
5418
|
+
*/
|
|
5419
|
+
expires_at?: string;
|
|
5420
|
+
context?: ContextObject;
|
|
5421
|
+
ext?: ExtensionObject;
|
|
5422
|
+
}
|
|
5423
|
+
/**
|
|
5424
|
+
* The rendered creative manifest for this variant — the actual output that was served, not the input assets
|
|
5425
|
+
*/
|
|
5426
|
+
/**
|
|
5427
|
+
* Request parameters for retrieving creative delivery data including variant-level metrics from a creative agent. At least one scoping filter (media_buy_ids, media_buy_buyer_refs, or creative_ids) is required.
|
|
5428
|
+
*/
|
|
5429
|
+
export type GetCreativeDeliveryRequest = {
|
|
5430
|
+
[k: string]: unknown | undefined;
|
|
5431
|
+
} & {
|
|
5432
|
+
/**
|
|
5433
|
+
* Account context for routing and scoping. Limits results to creatives within this account. Optional if the agent has a single account or can determine routing from the media buy identifiers.
|
|
5434
|
+
*/
|
|
5435
|
+
account_id?: string;
|
|
5436
|
+
/**
|
|
5437
|
+
* Filter to specific media buys by publisher ID. If omitted, returns creative delivery across all matching media buys.
|
|
5438
|
+
*/
|
|
5439
|
+
media_buy_ids?: string[];
|
|
5440
|
+
/**
|
|
5441
|
+
* Filter to specific media buys by buyer reference ID. Alternative to media_buy_ids when the buyer doesn't have the publisher's identifiers.
|
|
5442
|
+
*/
|
|
5443
|
+
media_buy_buyer_refs?: string[];
|
|
5444
|
+
/**
|
|
5445
|
+
* Filter to specific creatives by ID. If omitted, returns delivery for all creatives matching the other filters.
|
|
5446
|
+
*/
|
|
5447
|
+
creative_ids?: string[];
|
|
5448
|
+
/**
|
|
5449
|
+
* Start date for delivery period (YYYY-MM-DD). Interpreted in the platform's reporting timezone.
|
|
5450
|
+
*/
|
|
5451
|
+
start_date?: string;
|
|
5452
|
+
/**
|
|
5453
|
+
* End date for delivery period (YYYY-MM-DD). Interpreted in the platform's reporting timezone.
|
|
5454
|
+
*/
|
|
5455
|
+
end_date?: string;
|
|
5456
|
+
/**
|
|
5457
|
+
* Maximum number of variants to return per creative. When omitted, the agent returns all variants. Use this to limit response size for generative creatives that may produce large numbers of variants.
|
|
5458
|
+
*/
|
|
5459
|
+
max_variants?: number;
|
|
5460
|
+
/**
|
|
5461
|
+
* Pagination parameters for the creatives array in the response. When omitted, the agent returns all matching creatives.
|
|
5462
|
+
*/
|
|
5463
|
+
pagination?: {
|
|
5464
|
+
/**
|
|
5465
|
+
* Maximum number of creatives to return
|
|
5466
|
+
*/
|
|
5467
|
+
limit?: number;
|
|
5468
|
+
/**
|
|
5469
|
+
* Number of creatives to skip
|
|
5470
|
+
*/
|
|
5471
|
+
offset?: number;
|
|
5472
|
+
};
|
|
5473
|
+
context?: ContextObject;
|
|
5474
|
+
ext?: ExtensionObject;
|
|
5475
|
+
};
|
|
5476
|
+
/**
|
|
5477
|
+
* 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.
|
|
5478
|
+
*/
|
|
5479
|
+
/**
|
|
5480
|
+
* The event type
|
|
5481
|
+
*/
|
|
5482
|
+
export type CreativeVariant = DeliveryMetrics1 & {
|
|
5483
|
+
/**
|
|
5484
|
+
* Platform-assigned identifier for this variant
|
|
5485
|
+
*/
|
|
5486
|
+
variant_id: string;
|
|
5487
|
+
manifest?: CreativeManifest;
|
|
5488
|
+
/**
|
|
5489
|
+
* Input signals that triggered generation of this variant (Tier 3). Describes why the platform created this specific variant. Platforms should provide summarized or anonymized signals rather than raw user input. For web contexts, may include page topic or URL. For conversational contexts, an anonymized content signal. For search, query category or intent. When the content context is managed through AdCP content standards, reference the artifact directly via the artifact field.
|
|
5490
|
+
*/
|
|
5491
|
+
generation_context?: {
|
|
5492
|
+
/**
|
|
5493
|
+
* Type of context that triggered generation (e.g., 'web_page', 'conversational', 'search', 'app', 'dooh')
|
|
5494
|
+
*/
|
|
5495
|
+
context_type?: string;
|
|
5496
|
+
/**
|
|
5497
|
+
* Reference to the content-standards artifact that provided the generation context. Links this variant to the specific piece of content (article, video, podcast segment, etc.) where the ad was placed.
|
|
5498
|
+
*/
|
|
5499
|
+
artifact?: {
|
|
5500
|
+
property_id: Identifier;
|
|
5501
|
+
/**
|
|
5502
|
+
* Artifact identifier within the property
|
|
5503
|
+
*/
|
|
5504
|
+
artifact_id: string;
|
|
5505
|
+
};
|
|
5506
|
+
ext?: ExtensionObject;
|
|
5507
|
+
[k: string]: unknown | undefined;
|
|
5508
|
+
};
|
|
5509
|
+
};
|
|
5510
|
+
/**
|
|
5511
|
+
* VAST (Video Ad Serving Template) tag for third-party video ad serving
|
|
5512
|
+
*/
|
|
5513
|
+
export type PropertyIdentifierTypes = 'domain' | 'subdomain' | 'network_id' | 'ios_bundle' | 'android_package' | 'apple_app_store_id' | 'google_play_id' | 'roku_store_id' | 'fire_tv_asin' | 'samsung_app_id' | 'apple_tv_bundle' | 'bundle_id' | 'venue_id' | 'screen_id' | 'openooh_venue_type' | 'rss_url' | 'apple_podcast_id' | 'spotify_show_id' | 'podcast_guid';
|
|
5514
|
+
/**
|
|
5515
|
+
* Response payload for get_creative_delivery task. Returns creative delivery data with variant-level breakdowns including manifests and metrics.
|
|
5516
|
+
*/
|
|
5517
|
+
export interface GetCreativeDeliveryResponse {
|
|
5518
|
+
/**
|
|
5519
|
+
* Account identifier. Present when the response spans or is scoped to a specific account.
|
|
5520
|
+
*/
|
|
5521
|
+
account_id?: string;
|
|
5522
|
+
/**
|
|
5523
|
+
* Publisher's media buy identifier. Present when the request was scoped to a single media buy.
|
|
5524
|
+
*/
|
|
5525
|
+
media_buy_id?: string;
|
|
5526
|
+
/**
|
|
5527
|
+
* Buyer's reference identifier for the media buy. Echoed back so the buyer can correlate without mapping publisher IDs.
|
|
5528
|
+
*/
|
|
5529
|
+
media_buy_buyer_ref?: string;
|
|
5530
|
+
/**
|
|
5531
|
+
* ISO 4217 currency code for monetary values in this response (e.g., 'USD', 'EUR')
|
|
5532
|
+
*/
|
|
5533
|
+
currency: string;
|
|
5534
|
+
/**
|
|
5535
|
+
* Date range for the report.
|
|
5536
|
+
*/
|
|
5537
|
+
reporting_period: {
|
|
5538
|
+
/**
|
|
5539
|
+
* ISO 8601 start timestamp
|
|
5540
|
+
*/
|
|
5541
|
+
start: string;
|
|
5542
|
+
/**
|
|
5543
|
+
* ISO 8601 end timestamp
|
|
5544
|
+
*/
|
|
5545
|
+
end: string;
|
|
5546
|
+
/**
|
|
5547
|
+
* IANA timezone identifier for the reporting period (e.g., 'America/New_York', 'UTC'). Platforms report in their native timezone.
|
|
5548
|
+
*/
|
|
5549
|
+
timezone?: string;
|
|
5550
|
+
};
|
|
5551
|
+
/**
|
|
5552
|
+
* Creative delivery data with variant breakdowns
|
|
5553
|
+
*/
|
|
5554
|
+
creatives: {
|
|
5555
|
+
/**
|
|
5556
|
+
* Creative identifier
|
|
5557
|
+
*/
|
|
5558
|
+
creative_id: string;
|
|
5559
|
+
/**
|
|
5560
|
+
* Publisher's media buy identifier for this creative. Present when the request spanned multiple media buys, so the buyer can correlate each creative to its media buy.
|
|
5561
|
+
*/
|
|
5562
|
+
media_buy_id?: string;
|
|
5563
|
+
format_id?: FormatID;
|
|
5564
|
+
totals?: DeliveryMetrics;
|
|
5565
|
+
/**
|
|
5566
|
+
* Total number of variants for this creative. When max_variants was specified in the request, this may exceed the number of items in the variants array.
|
|
5567
|
+
*/
|
|
5568
|
+
variant_count?: number;
|
|
5569
|
+
/**
|
|
5570
|
+
* Variant-level delivery breakdown. Each variant includes the rendered manifest and delivery metrics. For standard creatives, contains a single variant. For asset group optimization, one per combination. For generative creative, one per generated execution. Empty when a creative has no variants yet.
|
|
5571
|
+
*/
|
|
5572
|
+
variants: CreativeVariant[];
|
|
5573
|
+
}[];
|
|
5574
|
+
/**
|
|
5575
|
+
* Pagination information. Present when the request included pagination parameters.
|
|
5576
|
+
*/
|
|
5577
|
+
pagination?: {
|
|
5578
|
+
/**
|
|
5579
|
+
* Maximum number of creatives requested
|
|
5580
|
+
*/
|
|
5581
|
+
limit: number;
|
|
5582
|
+
/**
|
|
5583
|
+
* Number of creatives skipped
|
|
5584
|
+
*/
|
|
5585
|
+
offset: number;
|
|
5586
|
+
/**
|
|
5587
|
+
* Whether more creatives are available beyond this page
|
|
5588
|
+
*/
|
|
5589
|
+
has_more: boolean;
|
|
5590
|
+
/**
|
|
5591
|
+
* Total number of creatives matching the request filters
|
|
5592
|
+
*/
|
|
5593
|
+
total?: number;
|
|
5594
|
+
};
|
|
5595
|
+
/**
|
|
5596
|
+
* Task-specific errors and warnings
|
|
5597
|
+
*/
|
|
5598
|
+
errors?: Error[];
|
|
5599
|
+
context?: ContextObject;
|
|
5600
|
+
ext?: ExtensionObject;
|
|
5601
|
+
}
|
|
5602
|
+
/**
|
|
5603
|
+
* Format of this creative
|
|
5604
|
+
*/
|
|
5605
|
+
export interface DeliveryMetrics1 {
|
|
5606
|
+
/**
|
|
5607
|
+
* Impressions delivered
|
|
5608
|
+
*/
|
|
5609
|
+
impressions?: number;
|
|
5610
|
+
/**
|
|
5611
|
+
* Amount spent
|
|
5612
|
+
*/
|
|
5613
|
+
spend?: number;
|
|
5614
|
+
/**
|
|
5615
|
+
* Total clicks
|
|
5616
|
+
*/
|
|
5617
|
+
clicks?: number;
|
|
5618
|
+
/**
|
|
5619
|
+
* Click-through rate (clicks/impressions)
|
|
5620
|
+
*/
|
|
5621
|
+
ctr?: number;
|
|
5622
|
+
/**
|
|
5623
|
+
* Views at threshold (for CPV)
|
|
5624
|
+
*/
|
|
5625
|
+
views?: number;
|
|
5626
|
+
/**
|
|
5627
|
+
* 100% completions (for CPCV)
|
|
5628
|
+
*/
|
|
5629
|
+
completed_views?: number;
|
|
5630
|
+
/**
|
|
5631
|
+
* Completion rate (completed_views/impressions)
|
|
5632
|
+
*/
|
|
5633
|
+
completion_rate?: number;
|
|
5634
|
+
/**
|
|
5635
|
+
* Total conversions attributed to this delivery. When by_event_type is present, this equals the sum of all by_event_type[].count entries.
|
|
5636
|
+
*/
|
|
5637
|
+
conversions?: number;
|
|
5638
|
+
/**
|
|
5639
|
+
* Total monetary value of attributed conversions (in the reporting currency)
|
|
5640
|
+
*/
|
|
5641
|
+
conversion_value?: number;
|
|
5642
|
+
/**
|
|
5643
|
+
* Return on ad spend (conversion_value / spend)
|
|
5644
|
+
*/
|
|
5645
|
+
roas?: number;
|
|
5646
|
+
/**
|
|
5647
|
+
* Cost per conversion (spend / conversions)
|
|
5648
|
+
*/
|
|
5649
|
+
cost_per_acquisition?: number;
|
|
5650
|
+
/**
|
|
5651
|
+
* Fraction of conversions from first-time brand buyers (0 = none, 1 = all)
|
|
5652
|
+
*/
|
|
5653
|
+
new_to_brand_rate?: number;
|
|
5654
|
+
/**
|
|
5655
|
+
* Leads generated (convenience alias for by_event_type where event_type='lead')
|
|
5656
|
+
*/
|
|
5657
|
+
leads?: number;
|
|
5658
|
+
/**
|
|
5659
|
+
* Conversion metrics broken down by event type. Spend-derived metrics (ROAS, CPA) are only available at the package/totals level since spend cannot be attributed to individual event types.
|
|
5660
|
+
*/
|
|
5661
|
+
by_event_type?: {
|
|
5662
|
+
event_type: EventType;
|
|
5663
|
+
/**
|
|
5664
|
+
* Event source that produced these conversions (for disambiguation when multiple event sources are configured)
|
|
5665
|
+
*/
|
|
5666
|
+
event_source_id?: string;
|
|
5667
|
+
/**
|
|
5668
|
+
* Number of events of this type
|
|
5669
|
+
*/
|
|
5670
|
+
count: number;
|
|
5671
|
+
/**
|
|
5672
|
+
* Total monetary value of events of this type
|
|
5673
|
+
*/
|
|
5674
|
+
value?: number;
|
|
5675
|
+
[k: string]: unknown | undefined;
|
|
5676
|
+
}[];
|
|
5677
|
+
/**
|
|
5678
|
+
* Gross Rating Points delivered (for CPP)
|
|
5679
|
+
*/
|
|
5680
|
+
grps?: number;
|
|
5681
|
+
/**
|
|
5682
|
+
* Unique reach - units depend on measurement provider (e.g., individuals, households, devices, cookies). See delivery_measurement.provider for methodology.
|
|
5683
|
+
*/
|
|
5684
|
+
reach?: number;
|
|
5685
|
+
/**
|
|
5686
|
+
* Average frequency per individual (typically measured over campaign duration, but can vary by measurement provider)
|
|
5687
|
+
*/
|
|
5688
|
+
frequency?: number;
|
|
5689
|
+
/**
|
|
5690
|
+
* Video quartile completion data
|
|
5691
|
+
*/
|
|
5692
|
+
quartile_data?: {
|
|
5693
|
+
/**
|
|
5694
|
+
* 25% completion views
|
|
5695
|
+
*/
|
|
5696
|
+
q1_views?: number;
|
|
5697
|
+
/**
|
|
5698
|
+
* 50% completion views
|
|
5699
|
+
*/
|
|
5700
|
+
q2_views?: number;
|
|
5701
|
+
/**
|
|
5702
|
+
* 75% completion views
|
|
5703
|
+
*/
|
|
5704
|
+
q3_views?: number;
|
|
5705
|
+
/**
|
|
5706
|
+
* 100% completion views
|
|
5707
|
+
*/
|
|
5708
|
+
q4_views?: number;
|
|
5709
|
+
};
|
|
5710
|
+
/**
|
|
5711
|
+
* DOOH-specific metrics (only included for DOOH campaigns)
|
|
5712
|
+
*/
|
|
5713
|
+
dooh_metrics?: {
|
|
5714
|
+
/**
|
|
5715
|
+
* Number of times ad played in rotation
|
|
5716
|
+
*/
|
|
5717
|
+
loop_plays?: number;
|
|
5718
|
+
/**
|
|
5719
|
+
* Number of unique screens displaying the ad
|
|
5720
|
+
*/
|
|
5721
|
+
screens_used?: number;
|
|
5722
|
+
/**
|
|
5723
|
+
* Total display time in seconds
|
|
5724
|
+
*/
|
|
5725
|
+
screen_time_seconds?: number;
|
|
5726
|
+
/**
|
|
5727
|
+
* Actual share of voice delivered (0.0 to 1.0)
|
|
5728
|
+
*/
|
|
5729
|
+
sov_achieved?: number;
|
|
5730
|
+
/**
|
|
5731
|
+
* Explanation of how DOOH impressions were calculated
|
|
5732
|
+
*/
|
|
5733
|
+
calculation_notes?: string;
|
|
5734
|
+
/**
|
|
5735
|
+
* Per-venue performance breakdown
|
|
5736
|
+
*/
|
|
5737
|
+
venue_breakdown?: {
|
|
5738
|
+
/**
|
|
5739
|
+
* Venue identifier
|
|
5740
|
+
*/
|
|
5741
|
+
venue_id: string;
|
|
5742
|
+
/**
|
|
5743
|
+
* Human-readable venue name
|
|
5744
|
+
*/
|
|
5745
|
+
venue_name?: string;
|
|
5746
|
+
/**
|
|
5747
|
+
* Venue type (e.g., 'airport', 'transit', 'retail', 'billboard')
|
|
5748
|
+
*/
|
|
5749
|
+
venue_type?: string;
|
|
5750
|
+
/**
|
|
5751
|
+
* Impressions delivered at this venue
|
|
5752
|
+
*/
|
|
5753
|
+
impressions: number;
|
|
5754
|
+
/**
|
|
5755
|
+
* Loop plays at this venue
|
|
5756
|
+
*/
|
|
5757
|
+
loop_plays?: number;
|
|
5758
|
+
/**
|
|
5759
|
+
* Number of screens used at this venue
|
|
5760
|
+
*/
|
|
5761
|
+
screens_used?: number;
|
|
5762
|
+
[k: string]: unknown | undefined;
|
|
5763
|
+
}[];
|
|
5764
|
+
[k: string]: unknown | undefined;
|
|
5765
|
+
};
|
|
5766
|
+
/**
|
|
5767
|
+
* Viewability metrics. Viewable rate should be calculated as viewable_impressions / measurable_impressions (not total impressions), since some environments cannot measure viewability.
|
|
5768
|
+
*/
|
|
5769
|
+
viewability?: {
|
|
5770
|
+
/**
|
|
5771
|
+
* Impressions where viewability could be measured. Excludes environments without measurement capability (e.g., non-Intersection Observer browsers, certain app environments).
|
|
5772
|
+
*/
|
|
5773
|
+
measurable_impressions?: number;
|
|
5774
|
+
/**
|
|
5775
|
+
* Impressions that met the viewability threshold defined by the measurement standard.
|
|
5776
|
+
*/
|
|
5777
|
+
viewable_impressions?: number;
|
|
5778
|
+
/**
|
|
5779
|
+
* Viewable impression rate (viewable_impressions / measurable_impressions). Range 0.0 to 1.0.
|
|
5780
|
+
*/
|
|
5781
|
+
viewable_rate?: number;
|
|
5782
|
+
/**
|
|
5783
|
+
* Viewability measurement standard. 'mrc': 50% of pixels in view for 1 second (display) or 2 seconds (video), per MRC/IAB guidelines. 'groupm': 100% of pixels in view for the same durations. These are materially different thresholds and should not be compared across standards.
|
|
5784
|
+
*/
|
|
5785
|
+
standard?: 'mrc' | 'groupm';
|
|
5786
|
+
[k: string]: unknown | undefined;
|
|
5787
|
+
};
|
|
5788
|
+
/**
|
|
5789
|
+
* Platform-specific engagement rate (0.0 to 1.0). Definition varies by platform (e.g., likes+comments+shares/impressions on social, interactions/impressions on rich media).
|
|
5790
|
+
*/
|
|
5791
|
+
engagement_rate?: number;
|
|
5792
|
+
/**
|
|
5793
|
+
* Cost per click (spend / clicks)
|
|
5794
|
+
*/
|
|
5795
|
+
cost_per_click?: number;
|
|
5796
|
+
/**
|
|
5797
|
+
* Conversion metrics broken down by action source (website, app, in_store, etc.). Useful for omnichannel sellers where conversions occur across digital and physical channels.
|
|
5798
|
+
*/
|
|
5799
|
+
by_action_source?: {
|
|
5800
|
+
action_source: ActionSource;
|
|
5801
|
+
/**
|
|
5802
|
+
* Event source that produced these conversions (for disambiguation when multiple event sources are configured)
|
|
5803
|
+
*/
|
|
5804
|
+
event_source_id?: string;
|
|
5805
|
+
/**
|
|
5806
|
+
* Number of conversions from this action source
|
|
5807
|
+
*/
|
|
5808
|
+
count: number;
|
|
5809
|
+
/**
|
|
5810
|
+
* Total monetary value of conversions from this action source
|
|
5811
|
+
*/
|
|
5812
|
+
value?: number;
|
|
5813
|
+
[k: string]: unknown | undefined;
|
|
5814
|
+
}[];
|
|
5815
|
+
[k: string]: unknown | undefined;
|
|
5816
|
+
}
|
|
5817
|
+
/**
|
|
5818
|
+
* The rendered creative manifest for this variant — the actual output that was served, not the input assets. Contains format_id and the resolved assets (specific headline, image, video, etc. the platform selected or generated). For Tier 2, shows which asset combination was picked. For Tier 3, contains the generated assets which may differ entirely from the input brand manifest. Pass to preview_creative to re-render.
|
|
4353
5819
|
*/
|
|
4354
|
-
export interface
|
|
4355
|
-
|
|
4356
|
-
* Discriminator indicating this is a batch preview response
|
|
4357
|
-
*/
|
|
4358
|
-
response_type: 'batch';
|
|
5820
|
+
export interface Identifier {
|
|
5821
|
+
type: PropertyIdentifierTypes;
|
|
4359
5822
|
/**
|
|
4360
|
-
*
|
|
5823
|
+
* The identifier value. For domain type: 'example.com' matches base domain plus www and m subdomains; 'edition.example.com' matches that specific subdomain; '*.example.com' matches ALL subdomains but NOT base domain
|
|
4361
5824
|
*/
|
|
4362
|
-
|
|
4363
|
-
context?: ContextObject;
|
|
4364
|
-
ext?: ExtensionObject;
|
|
4365
|
-
}
|
|
4366
|
-
export interface PreviewBatchResultSuccess {
|
|
4367
|
-
success?: true;
|
|
4368
|
-
}
|
|
4369
|
-
export interface PreviewBatchResultError {
|
|
4370
|
-
success?: false;
|
|
5825
|
+
value: string;
|
|
4371
5826
|
}
|
|
5827
|
+
/**
|
|
5828
|
+
* Standard error structure for task-specific errors and warnings
|
|
5829
|
+
*/
|
|
4372
5830
|
/**
|
|
4373
5831
|
* Request parameters for discovering signals. Use signal_spec for natural language discovery, signal_ids for exact lookups, or both (signal_ids take precedence for exact matches, signal_spec provides additional discovery context).
|
|
4374
5832
|
*/
|
|
@@ -4401,6 +5859,7 @@ export type GetSignalsRequest = {
|
|
|
4401
5859
|
* Maximum number of results to return
|
|
4402
5860
|
*/
|
|
4403
5861
|
max_results?: number;
|
|
5862
|
+
pagination?: PaginationRequest;
|
|
4404
5863
|
context?: ContextObject;
|
|
4405
5864
|
ext?: ExtensionObject;
|
|
4406
5865
|
};
|
|
@@ -4446,12 +5905,16 @@ export type SignalCatalogType = 'marketplace' | 'custom' | 'owned';
|
|
|
4446
5905
|
export interface SignalFilters {
|
|
4447
5906
|
/**
|
|
4448
5907
|
* Filter by catalog type
|
|
5908
|
+
*
|
|
5909
|
+
* @minItems 1
|
|
4449
5910
|
*/
|
|
4450
|
-
catalog_types?: SignalCatalogType[];
|
|
5911
|
+
catalog_types?: [SignalCatalogType, ...SignalCatalogType[]];
|
|
4451
5912
|
/**
|
|
4452
5913
|
* Filter by specific data providers
|
|
5914
|
+
*
|
|
5915
|
+
* @minItems 1
|
|
4453
5916
|
*/
|
|
4454
|
-
data_providers?: string[];
|
|
5917
|
+
data_providers?: [string, ...string[]];
|
|
4455
5918
|
/**
|
|
4456
5919
|
* Maximum CPM price filter
|
|
4457
5920
|
*/
|
|
@@ -4463,7 +5926,7 @@ export interface SignalFilters {
|
|
|
4463
5926
|
[k: string]: unknown | undefined;
|
|
4464
5927
|
}
|
|
4465
5928
|
/**
|
|
4466
|
-
*
|
|
5929
|
+
* Standard cursor-based pagination parameters for list operations
|
|
4467
5930
|
*/
|
|
4468
5931
|
/**
|
|
4469
5932
|
* Universal signal identifier referencing the data provider's catalog. Use this to verify authorization and look up signal definitions.
|
|
@@ -4636,6 +6099,7 @@ export interface GetSignalsResponse {
|
|
|
4636
6099
|
* Task-specific errors and warnings (e.g., signal discovery or pricing issues)
|
|
4637
6100
|
*/
|
|
4638
6101
|
errors?: Error[];
|
|
6102
|
+
pagination?: PaginationResponse;
|
|
4639
6103
|
context?: ContextObject;
|
|
4640
6104
|
ext?: ExtensionObject;
|
|
4641
6105
|
}
|
|
@@ -4696,10 +6160,6 @@ export type BasePropertySource = PublisherTagsSource | PublisherPropertyIDsSourc
|
|
|
4696
6160
|
/**
|
|
4697
6161
|
* Tag for categorizing publisher properties. Must be lowercase alphanumeric with underscores only.
|
|
4698
6162
|
*/
|
|
4699
|
-
export type PropertyIdentifierTypes = 'domain' | 'subdomain' | 'network_id' | 'ios_bundle' | 'android_package' | 'apple_app_store_id' | 'google_play_id' | 'roku_store_id' | 'fire_tv_asin' | 'samsung_app_id' | 'apple_tv_bundle' | 'bundle_id' | 'venue_id' | 'screen_id' | 'openooh_venue_type' | 'rss_url' | 'apple_podcast_id' | 'spotify_show_id' | 'podcast_guid';
|
|
4700
|
-
/**
|
|
4701
|
-
* 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.
|
|
4702
|
-
*/
|
|
4703
6163
|
export type PropertyType = 'website' | 'mobile_app' | 'ctv_app' | 'desktop_app' | 'dooh' | 'podcast' | 'radio' | 'streaming_audio';
|
|
4704
6164
|
/**
|
|
4705
6165
|
* Type of asset. Note: Brand manifests typically contain basic media assets (image, video, audio, text). Code assets (html, javascript, css) and ad markup (vast, daast) are usually not part of brand asset libraries.
|
|
@@ -4778,37 +6238,37 @@ export interface DirectIdentifiersSource {
|
|
|
4778
6238
|
/**
|
|
4779
6239
|
* A property identifier with type and value. Used to identify properties across platforms (domains, app store IDs, etc.).
|
|
4780
6240
|
*/
|
|
4781
|
-
export interface Identifier {
|
|
4782
|
-
type: PropertyIdentifierTypes;
|
|
4783
|
-
/**
|
|
4784
|
-
* The identifier value. For domain type: 'example.com' matches base domain plus www and m subdomains; 'edition.example.com' matches that specific subdomain; '*.example.com' matches ALL subdomains but NOT base domain
|
|
4785
|
-
*/
|
|
4786
|
-
value: string;
|
|
4787
|
-
}
|
|
4788
|
-
/**
|
|
4789
|
-
* Dynamic filters to apply when resolving the list
|
|
4790
|
-
*/
|
|
4791
6241
|
export interface PropertyListFilters {
|
|
4792
6242
|
/**
|
|
4793
6243
|
* Property must have feature data for ALL listed countries (ISO codes). Required.
|
|
6244
|
+
*
|
|
6245
|
+
* @minItems 1
|
|
4794
6246
|
*/
|
|
4795
|
-
countries_all: string[];
|
|
6247
|
+
countries_all: [string, ...string[]];
|
|
4796
6248
|
/**
|
|
4797
6249
|
* Property must support ANY of the listed channels. Required.
|
|
6250
|
+
*
|
|
6251
|
+
* @minItems 1
|
|
4798
6252
|
*/
|
|
4799
|
-
channels_any: MediaChannel[];
|
|
6253
|
+
channels_any: [MediaChannel, ...MediaChannel[]];
|
|
4800
6254
|
/**
|
|
4801
6255
|
* Filter to these property types
|
|
6256
|
+
*
|
|
6257
|
+
* @minItems 1
|
|
4802
6258
|
*/
|
|
4803
|
-
property_types?: PropertyType[];
|
|
6259
|
+
property_types?: [PropertyType, ...PropertyType[]];
|
|
4804
6260
|
/**
|
|
4805
6261
|
* Feature-based requirements. Property must pass ALL requirements (AND logic).
|
|
6262
|
+
*
|
|
6263
|
+
* @minItems 1
|
|
4806
6264
|
*/
|
|
4807
|
-
feature_requirements?: FeatureRequirement[];
|
|
6265
|
+
feature_requirements?: [FeatureRequirement, ...FeatureRequirement[]];
|
|
4808
6266
|
/**
|
|
4809
6267
|
* Identifiers to always exclude from results
|
|
6268
|
+
*
|
|
6269
|
+
* @minItems 1
|
|
4810
6270
|
*/
|
|
4811
|
-
exclude_identifiers?: Identifier[];
|
|
6271
|
+
exclude_identifiers?: [Identifier, ...Identifier[]];
|
|
4812
6272
|
}
|
|
4813
6273
|
/**
|
|
4814
6274
|
* A feature-based requirement for property filtering. Use min_value/max_value for quantitative features, allowed_values for binary/categorical features.
|
|
@@ -4828,8 +6288,10 @@ export interface FeatureRequirement {
|
|
|
4828
6288
|
max_value?: number;
|
|
4829
6289
|
/**
|
|
4830
6290
|
* Values that pass the requirement (for binary/categorical features)
|
|
6291
|
+
*
|
|
6292
|
+
* @minItems 1
|
|
4831
6293
|
*/
|
|
4832
|
-
allowed_values?: unknown[];
|
|
6294
|
+
allowed_values?: [unknown, ...unknown[]];
|
|
4833
6295
|
/**
|
|
4834
6296
|
* How to handle properties where this feature is not covered. 'exclude' (default): property is removed from the list. 'include': property passes this requirement (fail-open).
|
|
4835
6297
|
*/
|
|
@@ -4954,13 +6416,18 @@ export interface GetPropertyListRequest {
|
|
|
4954
6416
|
*/
|
|
4955
6417
|
resolve?: boolean;
|
|
4956
6418
|
/**
|
|
4957
|
-
*
|
|
4958
|
-
*/
|
|
4959
|
-
max_results?: number;
|
|
4960
|
-
/**
|
|
4961
|
-
* Pagination cursor for large result sets
|
|
6419
|
+
* Pagination parameters. Uses higher limits than standard pagination because property lists can contain tens of thousands of identifiers.
|
|
4962
6420
|
*/
|
|
4963
|
-
|
|
6421
|
+
pagination?: {
|
|
6422
|
+
/**
|
|
6423
|
+
* Maximum number of identifiers to return per page
|
|
6424
|
+
*/
|
|
6425
|
+
max_results?: number;
|
|
6426
|
+
/**
|
|
6427
|
+
* Opaque cursor from a previous response to fetch the next page
|
|
6428
|
+
*/
|
|
6429
|
+
cursor?: string;
|
|
6430
|
+
};
|
|
4964
6431
|
context?: ContextObject;
|
|
4965
6432
|
ext?: ExtensionObject;
|
|
4966
6433
|
}
|
|
@@ -4976,27 +6443,7 @@ export interface GetPropertyListResponse {
|
|
|
4976
6443
|
* Resolved identifiers that passed filters (if resolve=true). Cache these locally for real-time use.
|
|
4977
6444
|
*/
|
|
4978
6445
|
identifiers?: Identifier[];
|
|
4979
|
-
|
|
4980
|
-
* Total number of identifiers in resolved list
|
|
4981
|
-
*/
|
|
4982
|
-
total_count?: number;
|
|
4983
|
-
/**
|
|
4984
|
-
* Number of identifiers returned in this response
|
|
4985
|
-
*/
|
|
4986
|
-
returned_count?: number;
|
|
4987
|
-
/**
|
|
4988
|
-
* Pagination information
|
|
4989
|
-
*/
|
|
4990
|
-
pagination?: {
|
|
4991
|
-
/**
|
|
4992
|
-
* Whether more results are available
|
|
4993
|
-
*/
|
|
4994
|
-
has_more?: boolean;
|
|
4995
|
-
/**
|
|
4996
|
-
* Cursor for next page
|
|
4997
|
-
*/
|
|
4998
|
-
cursor?: string;
|
|
4999
|
-
};
|
|
6446
|
+
pagination?: PaginationResponse;
|
|
5000
6447
|
/**
|
|
5001
6448
|
* When the list was resolved
|
|
5002
6449
|
*/
|
|
@@ -5028,19 +6475,12 @@ export interface ListPropertyListsRequest {
|
|
|
5028
6475
|
* Filter to lists whose name contains this string
|
|
5029
6476
|
*/
|
|
5030
6477
|
name_contains?: string;
|
|
5031
|
-
|
|
5032
|
-
* Maximum lists to return
|
|
5033
|
-
*/
|
|
5034
|
-
max_results?: number;
|
|
5035
|
-
/**
|
|
5036
|
-
* Pagination cursor
|
|
5037
|
-
*/
|
|
5038
|
-
cursor?: string;
|
|
6478
|
+
pagination?: PaginationRequest;
|
|
5039
6479
|
context?: ContextObject;
|
|
5040
6480
|
ext?: ExtensionObject;
|
|
5041
6481
|
}
|
|
5042
6482
|
/**
|
|
5043
|
-
*
|
|
6483
|
+
* Standard cursor-based pagination parameters for list operations
|
|
5044
6484
|
*/
|
|
5045
6485
|
/**
|
|
5046
6486
|
* A source of properties for a property list. Supports three selection patterns: publisher with tags, publisher with property IDs, or direct identifiers.
|
|
@@ -5050,27 +6490,7 @@ export interface ListPropertyListsResponse {
|
|
|
5050
6490
|
* Array of property lists (metadata only, not resolved properties)
|
|
5051
6491
|
*/
|
|
5052
6492
|
lists: PropertyList[];
|
|
5053
|
-
|
|
5054
|
-
* Total number of lists matching criteria
|
|
5055
|
-
*/
|
|
5056
|
-
total_count?: number;
|
|
5057
|
-
/**
|
|
5058
|
-
* Number of lists returned in this response
|
|
5059
|
-
*/
|
|
5060
|
-
returned_count?: number;
|
|
5061
|
-
/**
|
|
5062
|
-
* Pagination information
|
|
5063
|
-
*/
|
|
5064
|
-
pagination?: {
|
|
5065
|
-
/**
|
|
5066
|
-
* Whether more results are available
|
|
5067
|
-
*/
|
|
5068
|
-
has_more?: boolean;
|
|
5069
|
-
/**
|
|
5070
|
-
* Cursor for next page
|
|
5071
|
-
*/
|
|
5072
|
-
cursor?: string;
|
|
5073
|
-
};
|
|
6493
|
+
pagination?: PaginationResponse;
|
|
5074
6494
|
ext?: ExtensionObject;
|
|
5075
6495
|
}
|
|
5076
6496
|
/**
|
|
@@ -5123,11 +6543,12 @@ export interface ListContentStandardsRequest {
|
|
|
5123
6543
|
* Filter by ISO 3166-1 alpha-2 country codes
|
|
5124
6544
|
*/
|
|
5125
6545
|
countries?: string[];
|
|
6546
|
+
pagination?: PaginationRequest;
|
|
5126
6547
|
context?: ContextObject;
|
|
5127
6548
|
ext?: ExtensionObject;
|
|
5128
6549
|
}
|
|
5129
6550
|
/**
|
|
5130
|
-
*
|
|
6551
|
+
* Standard cursor-based pagination parameters for list operations
|
|
5131
6552
|
*/
|
|
5132
6553
|
/**
|
|
5133
6554
|
* Response payload with list of content standards configurations
|
|
@@ -5143,6 +6564,7 @@ export type ListContentStandardsResponse = {
|
|
|
5143
6564
|
errors?: {
|
|
5144
6565
|
[k: string]: unknown | undefined;
|
|
5145
6566
|
};
|
|
6567
|
+
pagination?: PaginationResponse;
|
|
5146
6568
|
context?: ContextObject;
|
|
5147
6569
|
ext?: ExtensionObject;
|
|
5148
6570
|
} | {
|
|
@@ -5242,12 +6664,16 @@ export interface ContentStandards {
|
|
|
5242
6664
|
name?: string;
|
|
5243
6665
|
/**
|
|
5244
6666
|
* ISO 3166-1 alpha-2 country codes. Standards apply in ALL listed countries (AND logic).
|
|
6667
|
+
*
|
|
6668
|
+
* @minItems 1
|
|
5245
6669
|
*/
|
|
5246
|
-
countries_all?: string[];
|
|
6670
|
+
countries_all?: [string, ...string[]];
|
|
5247
6671
|
/**
|
|
5248
6672
|
* Advertising channels. Standards apply to ANY of the listed channels (OR logic).
|
|
6673
|
+
*
|
|
6674
|
+
* @minItems 1
|
|
5249
6675
|
*/
|
|
5250
|
-
channels_any?: MediaChannel[];
|
|
6676
|
+
channels_any?: [MediaChannel, ...MediaChannel[]];
|
|
5251
6677
|
/**
|
|
5252
6678
|
* BCP 47 language tags (e.g., 'en', 'de', 'fr'). Standards apply to content in ANY of these languages (OR logic). Content in unlisted languages is not covered by these standards.
|
|
5253
6679
|
*
|
|
@@ -6056,6 +7482,10 @@ export type ValidateContentDeliveryResponse = {
|
|
|
6056
7482
|
* Request parameters for retrieving content artifacts from a media buy for validation
|
|
6057
7483
|
*/
|
|
6058
7484
|
export interface GetMediaBuyArtifactsRequest {
|
|
7485
|
+
/**
|
|
7486
|
+
* Filter artifacts to a specific account. When provided, only returns artifacts for media buys belonging to this account. When omitted, returns artifacts across all accessible accounts. Optional if the agent has a single account.
|
|
7487
|
+
*/
|
|
7488
|
+
account_id?: string;
|
|
6059
7489
|
/**
|
|
6060
7490
|
* Media buy to get artifacts from
|
|
6061
7491
|
*/
|
|
@@ -6091,13 +7521,18 @@ export interface GetMediaBuyArtifactsRequest {
|
|
|
6091
7521
|
end?: string;
|
|
6092
7522
|
};
|
|
6093
7523
|
/**
|
|
6094
|
-
*
|
|
6095
|
-
*/
|
|
6096
|
-
limit?: number;
|
|
6097
|
-
/**
|
|
6098
|
-
* Pagination cursor for fetching subsequent pages
|
|
7524
|
+
* Pagination parameters. Uses higher limits than standard pagination because artifact result sets can be very large.
|
|
6099
7525
|
*/
|
|
6100
|
-
|
|
7526
|
+
pagination?: {
|
|
7527
|
+
/**
|
|
7528
|
+
* Maximum number of artifacts to return per page
|
|
7529
|
+
*/
|
|
7530
|
+
max_results?: number;
|
|
7531
|
+
/**
|
|
7532
|
+
* Opaque cursor from a previous response to fetch the next page
|
|
7533
|
+
*/
|
|
7534
|
+
cursor?: string;
|
|
7535
|
+
};
|
|
6101
7536
|
context?: ContextObject;
|
|
6102
7537
|
ext?: ExtensionObject;
|
|
6103
7538
|
}
|
|
@@ -6176,19 +7611,7 @@ export type GetMediaBuyArtifactsResponse = {
|
|
|
6176
7611
|
*/
|
|
6177
7612
|
method?: 'random' | 'stratified' | 'recent' | 'failures_only';
|
|
6178
7613
|
};
|
|
6179
|
-
|
|
6180
|
-
* Pagination information for large result sets
|
|
6181
|
-
*/
|
|
6182
|
-
pagination?: {
|
|
6183
|
-
/**
|
|
6184
|
-
* Cursor for fetching the next page
|
|
6185
|
-
*/
|
|
6186
|
-
cursor?: string;
|
|
6187
|
-
/**
|
|
6188
|
-
* Whether more results are available
|
|
6189
|
-
*/
|
|
6190
|
-
has_more?: boolean;
|
|
6191
|
-
};
|
|
7614
|
+
pagination?: PaginationResponse;
|
|
6192
7615
|
/**
|
|
6193
7616
|
* Field must not be present in success response
|
|
6194
7617
|
*/
|
|
@@ -6862,6 +8285,10 @@ export interface GetAdCPCapabilitiesRequest {
|
|
|
6862
8285
|
/**
|
|
6863
8286
|
* Methods for verifying user age for compliance. Does not include 'inferred' as it is not accepted for regulatory compliance.
|
|
6864
8287
|
*/
|
|
8288
|
+
export type EventType1 = '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';
|
|
8289
|
+
/**
|
|
8290
|
+
* 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.
|
|
8291
|
+
*/
|
|
6865
8292
|
export interface GetAdCPCapabilitiesResponse {
|
|
6866
8293
|
/**
|
|
6867
8294
|
* Core AdCP protocol information
|
|
@@ -6876,6 +8303,31 @@ export interface GetAdCPCapabilitiesResponse {
|
|
|
6876
8303
|
* Which AdCP domain protocols this seller supports
|
|
6877
8304
|
*/
|
|
6878
8305
|
supported_protocols: ('media_buy' | 'signals' | 'governance' | 'sponsored_intelligence' | 'creative')[];
|
|
8306
|
+
/**
|
|
8307
|
+
* Account management capabilities. Describes how accounts are established, what billing models are supported, and whether an account is required before browsing products.
|
|
8308
|
+
*/
|
|
8309
|
+
account?: {
|
|
8310
|
+
/**
|
|
8311
|
+
* Whether the seller requires operator-level credentials. When false (default), the seller trusts the agent's identity claims — the agent authenticates once and declares brands/operators via sync_accounts. When true, each operator must authenticate independently with the seller, and the agent opens a per-operator session using the operator's credential.
|
|
8312
|
+
*/
|
|
8313
|
+
require_operator_auth?: boolean;
|
|
8314
|
+
/**
|
|
8315
|
+
* OAuth authorization endpoint for obtaining operator-level credentials. Present when the seller supports OAuth for operator authentication. The agent directs the operator to this URL to authenticate and obtain a bearer token. If absent and require_operator_auth is true, operators obtain credentials out-of-band (e.g., seller portal, API key).
|
|
8316
|
+
*/
|
|
8317
|
+
authorization_endpoint?: string;
|
|
8318
|
+
/**
|
|
8319
|
+
* Billing models this seller supports. brand: seller invoices the brand directly. operator: seller invoices the operator (agency). agent: agent consolidates billing.
|
|
8320
|
+
*/
|
|
8321
|
+
supported_billing: ('brand' | 'operator' | 'agent')[];
|
|
8322
|
+
/**
|
|
8323
|
+
* The billing model applied when the agent omits billing from a sync_accounts request. Must be one of the values in supported_billing.
|
|
8324
|
+
*/
|
|
8325
|
+
default_billing?: 'brand' | 'operator' | 'agent';
|
|
8326
|
+
/**
|
|
8327
|
+
* Whether an active account is required to call get_products. When true, the agent must establish an account via sync_accounts before browsing products. When false, get_products works without an account (account_id is optional for rate-card-specific pricing).
|
|
8328
|
+
*/
|
|
8329
|
+
required_for_products?: boolean;
|
|
8330
|
+
};
|
|
6879
8331
|
/**
|
|
6880
8332
|
* Media-buy protocol capabilities. Only present if media_buy is in supported_protocols.
|
|
6881
8333
|
*/
|
|
@@ -6989,24 +8441,59 @@ export interface GetAdCPCapabilitiesResponse {
|
|
|
6989
8441
|
*/
|
|
6990
8442
|
age_restriction?: {
|
|
6991
8443
|
/**
|
|
6992
|
-
* Whether
|
|
8444
|
+
* Whether seller supports age restrictions
|
|
6993
8445
|
*/
|
|
6994
8446
|
supported?: boolean;
|
|
6995
8447
|
/**
|
|
6996
|
-
* Age verification methods this
|
|
8448
|
+
* Age verification methods this seller supports
|
|
6997
8449
|
*/
|
|
6998
8450
|
verification_methods?: AgeVerificationMethod[];
|
|
6999
8451
|
};
|
|
7000
8452
|
/**
|
|
7001
|
-
* Whether
|
|
8453
|
+
* Whether seller supports device platform targeting (Sec-CH-UA-Platform values)
|
|
7002
8454
|
*/
|
|
7003
8455
|
device_platform?: boolean;
|
|
7004
8456
|
/**
|
|
7005
|
-
* Whether
|
|
8457
|
+
* Whether seller supports language targeting (ISO 639-1 codes)
|
|
7006
8458
|
*/
|
|
7007
8459
|
language?: boolean;
|
|
7008
8460
|
};
|
|
7009
8461
|
};
|
|
8462
|
+
/**
|
|
8463
|
+
* Seller-level conversion tracking capabilities. Only present when features.conversion_tracking is true.
|
|
8464
|
+
*/
|
|
8465
|
+
conversion_tracking?: {
|
|
8466
|
+
/**
|
|
8467
|
+
* Event types this seller can track and attribute. If omitted, all standard event types are supported.
|
|
8468
|
+
*/
|
|
8469
|
+
supported_event_types?: EventType[];
|
|
8470
|
+
/**
|
|
8471
|
+
* Universal ID types accepted for user matching
|
|
8472
|
+
*/
|
|
8473
|
+
supported_uid_types?: UIDType[];
|
|
8474
|
+
/**
|
|
8475
|
+
* Hashed PII types accepted for user matching. Buyers must hash before sending (SHA-256, normalized).
|
|
8476
|
+
*/
|
|
8477
|
+
supported_hashed_identifiers?: ('hashed_email' | 'hashed_phone')[];
|
|
8478
|
+
/**
|
|
8479
|
+
* Action sources this seller accepts events from
|
|
8480
|
+
*/
|
|
8481
|
+
supported_action_sources?: ActionSource[];
|
|
8482
|
+
/**
|
|
8483
|
+
* Attribution windows available from this seller. Single-element arrays indicate fixed windows; multi-element arrays indicate configurable options the buyer can choose from via optimization_goal.attribution_window on packages.
|
|
8484
|
+
*/
|
|
8485
|
+
attribution_windows?: {
|
|
8486
|
+
event_type?: EventType1;
|
|
8487
|
+
/**
|
|
8488
|
+
* Available click-through attribution windows (e.g. ["7d"], ["7d", "14d", "30d"])
|
|
8489
|
+
*/
|
|
8490
|
+
click_through: string[];
|
|
8491
|
+
/**
|
|
8492
|
+
* Available view-through attribution windows (e.g. ["1d"], ["1d", "7d", "14d"])
|
|
8493
|
+
*/
|
|
8494
|
+
view_through?: string[];
|
|
8495
|
+
}[];
|
|
8496
|
+
};
|
|
7010
8497
|
/**
|
|
7011
8498
|
* Information about the seller's media inventory portfolio
|
|
7012
8499
|
*/
|
|
@@ -7150,14 +8637,15 @@ export interface GetAdCPCapabilitiesResponse {
|
|
|
7150
8637
|
*/
|
|
7151
8638
|
export interface ListAccountsRequest {
|
|
7152
8639
|
/**
|
|
7153
|
-
* Filter accounts by status
|
|
8640
|
+
* Filter accounts by status. Omit to return accounts in all statuses.
|
|
7154
8641
|
*/
|
|
7155
|
-
status?: 'active' | '
|
|
8642
|
+
status?: 'active' | 'pending_approval' | 'payment_required' | 'suspended' | 'closed';
|
|
8643
|
+
pagination?: PaginationRequest;
|
|
7156
8644
|
context?: ContextObject;
|
|
7157
8645
|
ext?: ExtensionObject;
|
|
7158
8646
|
}
|
|
7159
8647
|
/**
|
|
7160
|
-
*
|
|
8648
|
+
* Standard cursor-based pagination parameters for list operations
|
|
7161
8649
|
*/
|
|
7162
8650
|
/**
|
|
7163
8651
|
* Response payload for list_accounts task
|
|
@@ -7171,10 +8659,157 @@ export interface ListAccountsResponse {
|
|
|
7171
8659
|
* Task-specific errors and warnings
|
|
7172
8660
|
*/
|
|
7173
8661
|
errors?: Error[];
|
|
8662
|
+
pagination?: PaginationResponse;
|
|
7174
8663
|
context?: ContextObject;
|
|
7175
8664
|
ext?: ExtensionObject;
|
|
7176
8665
|
}
|
|
7177
8666
|
/**
|
|
7178
8667
|
* A billing account representing the relationship between a buyer and seller. The account determines rate cards, payment terms, and billing entity.
|
|
7179
8668
|
*/
|
|
8669
|
+
/**
|
|
8670
|
+
* Authentication schemes for push notification endpoints
|
|
8671
|
+
*/
|
|
8672
|
+
export interface SyncAccountsRequest {
|
|
8673
|
+
/**
|
|
8674
|
+
* Advertiser accounts to sync
|
|
8675
|
+
*
|
|
8676
|
+
* @maxItems 1000
|
|
8677
|
+
*/
|
|
8678
|
+
accounts: {
|
|
8679
|
+
/**
|
|
8680
|
+
* House domain where brand.json is hosted (e.g., 'unilever.com', 'coca-cola.com'). This is the canonical identity anchor for the brand, resolved via /.well-known/brand.json. For single-brand houses, this alone identifies the brand.
|
|
8681
|
+
*/
|
|
8682
|
+
house: string;
|
|
8683
|
+
/**
|
|
8684
|
+
* Brand ID within the house portfolio (from brand.json). Required when the house has multiple brands (e.g., 'dove' under unilever.com, 'tide' under pg.com). Omit for single-brand houses.
|
|
8685
|
+
*/
|
|
8686
|
+
brand_id?: string;
|
|
8687
|
+
/**
|
|
8688
|
+
* Domain of the entity operating the seat (e.g., 'groupm.com', 'mindshare.com'). Verified against the brand's authorized_operators in brand.json. Omit if the brand operates its own seat.
|
|
8689
|
+
*/
|
|
8690
|
+
operator?: string;
|
|
8691
|
+
/**
|
|
8692
|
+
* Who should be invoiced. brand: seller invoices the brand directly. operator: seller invoices the operator (agency). agent: agent consolidates billing across brands. Omit to accept the seller's default.
|
|
8693
|
+
*/
|
|
8694
|
+
billing?: 'brand' | 'operator' | 'agent';
|
|
8695
|
+
}[];
|
|
8696
|
+
/**
|
|
8697
|
+
* When true, accounts previously synced by this agent but not included in this request will be deactivated. Scoped to the authenticated agent — does not affect accounts managed by other agents. Use with caution.
|
|
8698
|
+
*/
|
|
8699
|
+
delete_missing?: boolean;
|
|
8700
|
+
/**
|
|
8701
|
+
* When true, preview what would change without applying. Returns what would be created/updated/deactivated.
|
|
8702
|
+
*/
|
|
8703
|
+
dry_run?: boolean;
|
|
8704
|
+
push_notification_config?: PushNotificationConfig;
|
|
8705
|
+
context?: ContextObject;
|
|
8706
|
+
ext?: ExtensionObject;
|
|
8707
|
+
}
|
|
8708
|
+
/**
|
|
8709
|
+
* Optional webhook for async notifications when account status changes (e.g., pending_approval transitions to active).
|
|
8710
|
+
*/
|
|
8711
|
+
/**
|
|
8712
|
+
* Response from account sync operation. Returns per-account results with status and billing, or operation-level errors on complete failure.
|
|
8713
|
+
*/
|
|
8714
|
+
export type SyncAccountsResponse = SyncAccountsSuccess | SyncAccountsError;
|
|
8715
|
+
/**
|
|
8716
|
+
* Sync operation processed accounts (individual accounts may be pending or have action=failed)
|
|
8717
|
+
*/
|
|
8718
|
+
export interface SyncAccountsSuccess {
|
|
8719
|
+
/**
|
|
8720
|
+
* Whether this was a dry run (no actual changes made)
|
|
8721
|
+
*/
|
|
8722
|
+
dry_run?: boolean;
|
|
8723
|
+
/**
|
|
8724
|
+
* Results for each account processed
|
|
8725
|
+
*/
|
|
8726
|
+
accounts: {
|
|
8727
|
+
/**
|
|
8728
|
+
* Seller-assigned account identifier. When billing is 'agent', multiple brands may share the same account_id.
|
|
8729
|
+
*/
|
|
8730
|
+
account_id?: string;
|
|
8731
|
+
/**
|
|
8732
|
+
* House domain, echoed from the request
|
|
8733
|
+
*/
|
|
8734
|
+
house: string;
|
|
8735
|
+
/**
|
|
8736
|
+
* Brand ID within the house portfolio, echoed from request
|
|
8737
|
+
*/
|
|
8738
|
+
brand_id?: string;
|
|
8739
|
+
/**
|
|
8740
|
+
* Operator domain, echoed from request
|
|
8741
|
+
*/
|
|
8742
|
+
operator?: string;
|
|
8743
|
+
/**
|
|
8744
|
+
* Human-readable account name assigned by the seller
|
|
8745
|
+
*/
|
|
8746
|
+
name?: string;
|
|
8747
|
+
/**
|
|
8748
|
+
* Action taken for this account. created: new account provisioned. updated: existing account modified. unchanged: no changes needed. failed: could not process (see errors).
|
|
8749
|
+
*/
|
|
8750
|
+
action: 'created' | 'updated' | 'unchanged' | 'failed';
|
|
8751
|
+
/**
|
|
8752
|
+
* Account status. active: ready for use. pending_approval: seller reviewing (credit, legal). payment_required: credit limit reached or funds depleted. suspended: was active, now paused. closed: terminated.
|
|
8753
|
+
*/
|
|
8754
|
+
status: 'active' | 'pending_approval' | 'payment_required' | 'suspended' | 'closed';
|
|
8755
|
+
/**
|
|
8756
|
+
* Who is invoiced on this account. May differ from the requested billing if the seller doesn't support it.
|
|
8757
|
+
*/
|
|
8758
|
+
billing?: 'brand' | 'operator' | 'agent';
|
|
8759
|
+
/**
|
|
8760
|
+
* Parent account ID when this account is a sub-account under a shared billing account
|
|
8761
|
+
*/
|
|
8762
|
+
parent_account_id?: string;
|
|
8763
|
+
/**
|
|
8764
|
+
* Setup information for pending accounts. Provides the agent (or human) with next steps to complete account activation.
|
|
8765
|
+
*/
|
|
8766
|
+
setup?: {
|
|
8767
|
+
/**
|
|
8768
|
+
* URL where the human can complete the required action (credit application, legal agreement, add funds)
|
|
8769
|
+
*/
|
|
8770
|
+
url?: string;
|
|
8771
|
+
/**
|
|
8772
|
+
* Human-readable description of what's needed
|
|
8773
|
+
*/
|
|
8774
|
+
message: string;
|
|
8775
|
+
/**
|
|
8776
|
+
* When this setup link expires
|
|
8777
|
+
*/
|
|
8778
|
+
expires_at?: string;
|
|
8779
|
+
};
|
|
8780
|
+
/**
|
|
8781
|
+
* Rate card applied to this account
|
|
8782
|
+
*/
|
|
8783
|
+
rate_card?: string;
|
|
8784
|
+
/**
|
|
8785
|
+
* Payment terms (e.g., 'net_30', 'prepay')
|
|
8786
|
+
*/
|
|
8787
|
+
payment_terms?: string;
|
|
8788
|
+
credit_limit?: {
|
|
8789
|
+
amount: number;
|
|
8790
|
+
currency: string;
|
|
8791
|
+
};
|
|
8792
|
+
/**
|
|
8793
|
+
* Per-account errors (only present when action is 'failed')
|
|
8794
|
+
*/
|
|
8795
|
+
errors?: Error[];
|
|
8796
|
+
/**
|
|
8797
|
+
* Non-fatal warnings about this account
|
|
8798
|
+
*/
|
|
8799
|
+
warnings?: string[];
|
|
8800
|
+
}[];
|
|
8801
|
+
context?: ContextObject;
|
|
8802
|
+
ext?: ExtensionObject;
|
|
8803
|
+
}
|
|
8804
|
+
/**
|
|
8805
|
+
* Standard error structure for task-specific errors and warnings
|
|
8806
|
+
*/
|
|
8807
|
+
export interface SyncAccountsError {
|
|
8808
|
+
/**
|
|
8809
|
+
* Operation-level errors (e.g., authentication failure, service unavailable)
|
|
8810
|
+
*/
|
|
8811
|
+
errors: Error[];
|
|
8812
|
+
context?: ContextObject;
|
|
8813
|
+
ext?: ExtensionObject;
|
|
8814
|
+
}
|
|
7180
8815
|
//# sourceMappingURL=tools.generated.d.ts.map
|