@adcp/client 4.0.1 → 4.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/core/AgentClient.d.ts.map +1 -1
- package/dist/lib/core/SingleAgentClient.d.ts +0 -7
- package/dist/lib/core/SingleAgentClient.d.ts.map +1 -1
- package/dist/lib/core/SingleAgentClient.js +26 -27
- package/dist/lib/core/SingleAgentClient.js.map +1 -1
- package/dist/lib/types/core.generated.d.ts +139 -17
- 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 +2162 -1392
- package/dist/lib/types/schemas.generated.d.ts.map +1 -1
- package/dist/lib/types/schemas.generated.js +192 -51
- package/dist/lib/types/schemas.generated.js.map +1 -1
- package/dist/lib/types/tools.generated.d.ts +483 -29
- package/dist/lib/types/tools.generated.d.ts.map +1 -1
- package/dist/lib/utils/index.d.ts +1 -0
- package/dist/lib/utils/index.d.ts.map +1 -1
- package/dist/lib/utils/index.js +4 -1
- package/dist/lib/utils/index.js.map +1 -1
- package/dist/lib/utils/sync-creatives-adapter.d.ts +18 -0
- package/dist/lib/utils/sync-creatives-adapter.d.ts.map +1 -0
- package/dist/lib/utils/sync-creatives-adapter.js +46 -0
- package/dist/lib/utils/sync-creatives-adapter.js.map +1 -0
- 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
|
@@ -691,7 +691,11 @@ export interface Product {
|
|
|
691
691
|
/**
|
|
692
692
|
* Metric kinds this product can optimize for. Buyers should only request metric goals for kinds listed here.
|
|
693
693
|
*/
|
|
694
|
-
supported_metrics: ('clicks' | 'views' | 'completed_views' | 'viewed_seconds' | 'attention_seconds' | 'attention_score' | 'engagements' | 'follows' | 'saves' | 'profile_visits')[];
|
|
694
|
+
supported_metrics: ('clicks' | 'views' | 'completed_views' | 'viewed_seconds' | 'attention_seconds' | 'attention_score' | 'engagements' | 'follows' | 'saves' | 'profile_visits' | 'reach')[];
|
|
695
|
+
/**
|
|
696
|
+
* Reach units this product can optimize for. Required when supported_metrics includes 'reach'. Buyers must set reach_unit to a value in this list on reach optimization goals — sellers reject unsupported values.
|
|
697
|
+
*/
|
|
698
|
+
supported_reach_units?: ReachUnit[];
|
|
695
699
|
/**
|
|
696
700
|
* Video view duration thresholds (in seconds) this product supports for completed_views goals. Only relevant when supported_metrics includes 'completed_views'. When absent, the seller uses their platform default. Buyers must set view_duration_seconds to a value in this list — sellers reject unsupported values.
|
|
697
701
|
*/
|
|
@@ -1298,11 +1302,57 @@ export interface ReportingCapabilities {
|
|
|
1298
1302
|
* Whether this product supports creative-level metric breakdowns in delivery reporting (by_creative within by_package)
|
|
1299
1303
|
*/
|
|
1300
1304
|
supports_creative_breakdown?: boolean;
|
|
1305
|
+
/**
|
|
1306
|
+
* Whether this product supports keyword-level metric breakdowns in delivery reporting (by_keyword within by_package)
|
|
1307
|
+
*/
|
|
1308
|
+
supports_keyword_breakdown?: boolean;
|
|
1309
|
+
supports_geo_breakdown?: GeographicBreakdownSupport;
|
|
1310
|
+
/**
|
|
1311
|
+
* Whether this product supports device type breakdowns in delivery reporting (by_device_type within by_package)
|
|
1312
|
+
*/
|
|
1313
|
+
supports_device_type_breakdown?: boolean;
|
|
1314
|
+
/**
|
|
1315
|
+
* Whether this product supports device platform breakdowns in delivery reporting (by_device_platform within by_package)
|
|
1316
|
+
*/
|
|
1317
|
+
supports_device_platform_breakdown?: boolean;
|
|
1318
|
+
/**
|
|
1319
|
+
* Whether this product supports audience segment breakdowns in delivery reporting (by_audience within by_package)
|
|
1320
|
+
*/
|
|
1321
|
+
supports_audience_breakdown?: boolean;
|
|
1322
|
+
/**
|
|
1323
|
+
* Whether this product supports placement breakdowns in delivery reporting (by_placement within by_package)
|
|
1324
|
+
*/
|
|
1325
|
+
supports_placement_breakdown?: boolean;
|
|
1301
1326
|
/**
|
|
1302
1327
|
* 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.
|
|
1303
1328
|
*/
|
|
1304
1329
|
date_range_support: 'date_range' | 'lifetime_only';
|
|
1305
1330
|
}
|
|
1331
|
+
/**
|
|
1332
|
+
* Geographic breakdown support for this product. Declares which geo levels and systems are available for by_geo reporting within by_package.
|
|
1333
|
+
*/
|
|
1334
|
+
export interface GeographicBreakdownSupport {
|
|
1335
|
+
/**
|
|
1336
|
+
* Supports country-level geo breakdown (ISO 3166-1 alpha-2)
|
|
1337
|
+
*/
|
|
1338
|
+
country?: boolean;
|
|
1339
|
+
/**
|
|
1340
|
+
* Supports region/state-level geo breakdown (ISO 3166-2)
|
|
1341
|
+
*/
|
|
1342
|
+
region?: boolean;
|
|
1343
|
+
/**
|
|
1344
|
+
* Metro area breakdown support. Keys are metro-system enum values; true means supported.
|
|
1345
|
+
*/
|
|
1346
|
+
metro?: {
|
|
1347
|
+
[k: string]: boolean | undefined;
|
|
1348
|
+
};
|
|
1349
|
+
/**
|
|
1350
|
+
* Postal area breakdown support. Keys are postal-system enum values; true means supported.
|
|
1351
|
+
*/
|
|
1352
|
+
postal_area?: {
|
|
1353
|
+
[k: string]: boolean | undefined;
|
|
1354
|
+
};
|
|
1355
|
+
}
|
|
1306
1356
|
/**
|
|
1307
1357
|
* Creative requirements and restrictions for a product
|
|
1308
1358
|
*/
|
|
@@ -2193,9 +2243,19 @@ export type Pacing = 'even' | 'asap' | 'front_loaded';
|
|
|
2193
2243
|
export type OptimizationGoal = {
|
|
2194
2244
|
kind: 'metric';
|
|
2195
2245
|
/**
|
|
2196
|
-
* Seller-native metric to optimize for. Delivery metrics: clicks (link clicks, swipe-throughs, CTA taps that navigate away), views (viewable impressions), completed_views (video/audio completions — see view_duration_seconds). Duration/score metrics: viewed_seconds (time in view per impression), attention_seconds (attention time per impression), attention_score (vendor-specific attention score). Audience action metrics: engagements (any direct interaction with the ad unit beyond viewing — social reactions/comments/shares, story/unit opens, interactive overlay taps, companion banner interactions on audio and CTV), follows (new followers, page likes, artist/podcast/channel subscribes), saves (saves, bookmarks, playlist adds, pins — signals of intent to return), profile_visits (visits to the brand's in-platform page — profile, artist page, channel, or storefront. Does not include external website clicks, which are covered by 'clicks').
|
|
2246
|
+
* Seller-native metric to optimize for. Delivery metrics: clicks (link clicks, swipe-throughs, CTA taps that navigate away), views (viewable impressions), completed_views (video/audio completions — see view_duration_seconds), reach (unique audience reach — see reach_unit and target_frequency). Duration/score metrics: viewed_seconds (time in view per impression), attention_seconds (attention time per impression), attention_score (vendor-specific attention score). Audience action metrics: engagements (any direct interaction with the ad unit beyond viewing — social reactions/comments/shares, story/unit opens, interactive overlay taps, companion banner interactions on audio and CTV), follows (new followers, page likes, artist/podcast/channel subscribes), saves (saves, bookmarks, playlist adds, pins — signals of intent to return), profile_visits (visits to the brand's in-platform page — profile, artist page, channel, or storefront. Does not include external website clicks, which are covered by 'clicks').
|
|
2197
2247
|
*/
|
|
2198
|
-
metric: 'clicks' | 'views' | 'completed_views' | 'viewed_seconds' | 'attention_seconds' | 'attention_score' | 'engagements' | 'follows' | 'saves' | 'profile_visits';
|
|
2248
|
+
metric: 'clicks' | 'views' | 'completed_views' | 'viewed_seconds' | 'attention_seconds' | 'attention_score' | 'engagements' | 'follows' | 'saves' | 'profile_visits' | 'reach';
|
|
2249
|
+
/**
|
|
2250
|
+
* Unit for reach measurement. Required when metric is 'reach'. Must be a value declared in the product's metric_optimization.supported_reach_units.
|
|
2251
|
+
*/
|
|
2252
|
+
reach_unit?: ReachUnit;
|
|
2253
|
+
/**
|
|
2254
|
+
* Target frequency band for reach optimization. Only applicable when metric is 'reach'. Frames frequency as an optimization signal: the seller should treat impressions toward entities already within the [min, max] band as lower-value, and impressions toward unreached entities as higher-value. This shifts budget toward fresh reach rather than re-reaching known users. When omitted, the seller maximizes unique reach without a frequency constraint. A hard cap can still be layered via targeting_overlay.frequency_cap if a ceiling is needed.
|
|
2255
|
+
*/
|
|
2256
|
+
target_frequency?: {
|
|
2257
|
+
[k: string]: unknown | undefined;
|
|
2258
|
+
};
|
|
2199
2259
|
/**
|
|
2200
2260
|
* Minimum video view duration in seconds that qualifies as a completed_view for this goal. Only applicable when metric is 'completed_views'. When omitted, the seller uses their platform default (typically 2–15 seconds). Common values: 2 (Snap/LinkedIn default), 6 (TikTok), 15 (Snap 15-second views, Meta ThruPlay). Sellers declare which durations they support in metric_optimization.supported_view_durations. Sellers must reject goals with unsupported values — silent rounding would create measurement discrepancies.
|
|
2201
2261
|
*/
|
|
@@ -2284,6 +2344,29 @@ export type OptimizationGoal = {
|
|
|
2284
2344
|
* Postal code system (e.g., 'us_zip', 'gb_outward'). System name encodes country and precision.
|
|
2285
2345
|
*/
|
|
2286
2346
|
export type PostalCodeSystem = 'us_zip' | 'us_zip_plus_four' | 'gb_outward' | 'gb_full' | 'ca_fsa' | 'ca_full' | 'de_plz' | 'fr_code_postal' | 'au_postcode' | 'ch_plz' | 'at_plz';
|
|
2347
|
+
/**
|
|
2348
|
+
* Frequency capping settings for package-level application. Two types of frequency control can be used independently or together: suppress_minutes enforces a cooldown between consecutive exposures; max_impressions + per + window caps total exposures per entity in a time window. At least one of suppress_minutes or max_impressions must be set.
|
|
2349
|
+
*/
|
|
2350
|
+
export type FrequencyCap = {
|
|
2351
|
+
[k: string]: unknown | undefined;
|
|
2352
|
+
} & {
|
|
2353
|
+
/**
|
|
2354
|
+
* Cooldown period in minutes between consecutive exposures to the same entity. Prevents back-to-back ad delivery (e.g., 60 = at least 1 hour between impressions).
|
|
2355
|
+
*/
|
|
2356
|
+
suppress_minutes?: number;
|
|
2357
|
+
/**
|
|
2358
|
+
* Maximum number of impressions per entity per window. For duration windows (e.g., '1d', '7d'), implementations typically use a rolling window; 'campaign' applies a fixed cap across the full flight.
|
|
2359
|
+
*/
|
|
2360
|
+
max_impressions?: number;
|
|
2361
|
+
/**
|
|
2362
|
+
* Entity granularity for impression counting. Required when max_impressions is set.
|
|
2363
|
+
*/
|
|
2364
|
+
per?: ReachUnit;
|
|
2365
|
+
/**
|
|
2366
|
+
* Time window for the max_impressions cap. Duration string (e.g., '1h', '6h', '1d', '7d', '30d', 'campaign'). 'campaign' applies the cap across the full campaign flight. Required when max_impressions is set.
|
|
2367
|
+
*/
|
|
2368
|
+
window?: string;
|
|
2369
|
+
};
|
|
2287
2370
|
/**
|
|
2288
2371
|
* Methods for verifying user age for compliance. Does not include 'inferred' as it is not accepted for regulatory compliance.
|
|
2289
2372
|
*/
|
|
@@ -2292,6 +2375,10 @@ export type AgeVerificationMethod = 'facial_age_estimation' | 'id_document' | 'd
|
|
|
2292
2375
|
* Operating system platforms for device targeting. Browser values from Sec-CH-UA-Platform standard, extended for CTV.
|
|
2293
2376
|
*/
|
|
2294
2377
|
export type DevicePlatform = 'ios' | 'android' | 'windows' | 'macos' | 'linux' | 'chromeos' | 'tvos' | 'tizen' | 'webos' | 'fire_os' | 'roku_os' | 'unknown';
|
|
2378
|
+
/**
|
|
2379
|
+
* Device form factor categories for targeting and reporting. Complements device-platform (operating system) with hardware classification. OpenRTB mapping: 1 (Mobile/Tablet General) → mobile, 2 (PC) → desktop, 4 (Phone) → mobile, 5 (Tablet) → tablet, 6 (Connected Device) → ctv, 7 (Set Top Box) → ctv. DOOH inventory uses dooh.
|
|
2380
|
+
*/
|
|
2381
|
+
export type DeviceType = 'desktop' | 'mobile' | 'tablet' | 'ctv' | 'dooh' | 'unknown';
|
|
2295
2382
|
/**
|
|
2296
2383
|
* JavaScript module type
|
|
2297
2384
|
*/
|
|
@@ -2593,7 +2680,7 @@ export interface PackageRequest {
|
|
|
2593
2680
|
ext?: ExtensionObject;
|
|
2594
2681
|
}
|
|
2595
2682
|
/**
|
|
2596
|
-
* 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),
|
|
2683
|
+
* 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, proximity targeting), age verification (alcohol, gambling), device platform (app compatibility), language (localization), and keyword targeting (search/retail media).
|
|
2597
2684
|
*/
|
|
2598
2685
|
export interface TargetingOverlay {
|
|
2599
2686
|
/**
|
|
@@ -2695,6 +2782,14 @@ export interface TargetingOverlay {
|
|
|
2695
2782
|
* Restrict to specific platforms. Use for technical compatibility (app only works on iOS). Values from Sec-CH-UA-Platform standard, extended for CTV.
|
|
2696
2783
|
*/
|
|
2697
2784
|
device_platform?: DevicePlatform[];
|
|
2785
|
+
/**
|
|
2786
|
+
* Restrict to specific device form factors. Use for campaigns targeting hardware categories rather than operating systems (e.g., mobile-only promotions, CTV campaigns).
|
|
2787
|
+
*/
|
|
2788
|
+
device_type?: DeviceType[];
|
|
2789
|
+
/**
|
|
2790
|
+
* Exclude specific device form factors from delivery (e.g., exclude CTV for app-install campaigns).
|
|
2791
|
+
*/
|
|
2792
|
+
device_type_exclude?: DeviceType[];
|
|
2698
2793
|
/**
|
|
2699
2794
|
* Target users within store catchment areas from a synced store catalog. Each entry references a store-type catalog and optionally narrows to specific stores or catchment zones.
|
|
2700
2795
|
*/
|
|
@@ -2712,19 +2807,46 @@ export interface TargetingOverlay {
|
|
|
2712
2807
|
*/
|
|
2713
2808
|
catchment_ids?: string[];
|
|
2714
2809
|
}[];
|
|
2810
|
+
/**
|
|
2811
|
+
* Target users within travel time, distance, or a custom boundary around arbitrary geographic points. Multiple entries use OR semantics — a user within range of any listed point is eligible. For campaigns targeting 10+ locations, consider using store_catchments with a location catalog instead. Seller must declare support in get_adcp_capabilities.
|
|
2812
|
+
*/
|
|
2813
|
+
geo_proximity?: {
|
|
2814
|
+
[k: string]: unknown | undefined;
|
|
2815
|
+
}[];
|
|
2715
2816
|
/**
|
|
2716
2817
|
* Restrict to users with specific language preferences. ISO 639-1 codes (e.g., 'en', 'es', 'fr').
|
|
2717
2818
|
*/
|
|
2718
2819
|
language?: string[];
|
|
2719
|
-
}
|
|
2720
|
-
/**
|
|
2721
|
-
* Frequency capping settings for package-level application
|
|
2722
|
-
*/
|
|
2723
|
-
export interface FrequencyCap {
|
|
2724
2820
|
/**
|
|
2725
|
-
*
|
|
2821
|
+
* Keyword targeting for search and retail media platforms. Restricts delivery to queries matching the specified keywords. Each keyword is identified by the tuple (keyword, match_type) — the same keyword string with different match types are distinct targets. Sellers SHOULD reject duplicate (keyword, match_type) pairs within a single request. Seller must declare support in get_adcp_capabilities.
|
|
2726
2822
|
*/
|
|
2727
|
-
|
|
2823
|
+
keyword_targets?: {
|
|
2824
|
+
/**
|
|
2825
|
+
* The keyword to target
|
|
2826
|
+
*/
|
|
2827
|
+
keyword: string;
|
|
2828
|
+
/**
|
|
2829
|
+
* Match type: broad matches related queries, phrase matches queries containing the keyword phrase, exact matches the query exactly
|
|
2830
|
+
*/
|
|
2831
|
+
match_type: 'broad' | 'phrase' | 'exact';
|
|
2832
|
+
/**
|
|
2833
|
+
* Per-keyword bid price, denominated in the same currency as the package's pricing option. Overrides the package-level bid_price for this keyword. Inherits the max_bid interpretation from the pricing option: when max_bid is true, this is the keyword's bid ceiling; when false, this is the exact bid. If omitted, the package bid_price applies.
|
|
2834
|
+
*/
|
|
2835
|
+
bid_price?: number;
|
|
2836
|
+
}[];
|
|
2837
|
+
/**
|
|
2838
|
+
* Keywords to exclude from delivery. Queries matching these keywords will not trigger the ad. Each negative keyword is identified by the tuple (keyword, match_type). Seller must declare support in get_adcp_capabilities.
|
|
2839
|
+
*/
|
|
2840
|
+
negative_keywords?: {
|
|
2841
|
+
/**
|
|
2842
|
+
* The keyword to exclude
|
|
2843
|
+
*/
|
|
2844
|
+
keyword: string;
|
|
2845
|
+
/**
|
|
2846
|
+
* Match type for exclusion
|
|
2847
|
+
*/
|
|
2848
|
+
match_type: 'broad' | 'phrase' | 'exact';
|
|
2849
|
+
}[];
|
|
2728
2850
|
}
|
|
2729
2851
|
/**
|
|
2730
2852
|
* Assignment of a creative asset to a package with optional placement targeting. Used in create_media_buy and update_media_buy requests. Note: sync_creatives does not support placement_ids - use create/update_media_buy for placement-level targeting.
|
|
@@ -3866,6 +3988,62 @@ export type PackageUpdate = {
|
|
|
3866
3988
|
*/
|
|
3867
3989
|
optimization_goals?: OptimizationGoal[];
|
|
3868
3990
|
targeting_overlay?: TargetingOverlay;
|
|
3991
|
+
/**
|
|
3992
|
+
* Keyword targets to add or update on this package. Upserts by (keyword, match_type) identity: if the pair already exists, its bid_price is updated; if not, a new keyword target is added. Use targeting_overlay.keyword_targets in create_media_buy to set the initial list.
|
|
3993
|
+
*/
|
|
3994
|
+
keyword_targets_add?: {
|
|
3995
|
+
/**
|
|
3996
|
+
* The keyword to target
|
|
3997
|
+
*/
|
|
3998
|
+
keyword: string;
|
|
3999
|
+
/**
|
|
4000
|
+
* Match type for this keyword
|
|
4001
|
+
*/
|
|
4002
|
+
match_type: 'broad' | 'phrase' | 'exact';
|
|
4003
|
+
/**
|
|
4004
|
+
* Per-keyword bid price. Inherits currency and max_bid interpretation from the package's pricing option.
|
|
4005
|
+
*/
|
|
4006
|
+
bid_price?: number;
|
|
4007
|
+
}[];
|
|
4008
|
+
/**
|
|
4009
|
+
* Keyword targets to remove from this package. Removes matching (keyword, match_type) pairs. If a specified pair is not present, sellers SHOULD treat it as a no-op for that entry.
|
|
4010
|
+
*/
|
|
4011
|
+
keyword_targets_remove?: {
|
|
4012
|
+
/**
|
|
4013
|
+
* The keyword to stop targeting
|
|
4014
|
+
*/
|
|
4015
|
+
keyword: string;
|
|
4016
|
+
/**
|
|
4017
|
+
* Match type to remove
|
|
4018
|
+
*/
|
|
4019
|
+
match_type: 'broad' | 'phrase' | 'exact';
|
|
4020
|
+
}[];
|
|
4021
|
+
/**
|
|
4022
|
+
* Negative keywords to add to this package. Appends to the existing negative keyword list — does not replace it. If a keyword+match_type pair already exists, sellers SHOULD treat it as a no-op for that entry. Use targeting_overlay.negative_keywords in create_media_buy to set the initial list.
|
|
4023
|
+
*/
|
|
4024
|
+
negative_keywords_add?: {
|
|
4025
|
+
/**
|
|
4026
|
+
* The keyword to exclude
|
|
4027
|
+
*/
|
|
4028
|
+
keyword: string;
|
|
4029
|
+
/**
|
|
4030
|
+
* Match type for exclusion
|
|
4031
|
+
*/
|
|
4032
|
+
match_type: 'broad' | 'phrase' | 'exact';
|
|
4033
|
+
}[];
|
|
4034
|
+
/**
|
|
4035
|
+
* Negative keywords to remove from this package. Removes matching keyword+match_type pairs from the existing list. If a specified pair is not present, sellers SHOULD treat it as a no-op for that entry.
|
|
4036
|
+
*/
|
|
4037
|
+
negative_keywords_remove?: {
|
|
4038
|
+
/**
|
|
4039
|
+
* The keyword to stop excluding
|
|
4040
|
+
*/
|
|
4041
|
+
keyword: string;
|
|
4042
|
+
/**
|
|
4043
|
+
* Match type to remove
|
|
4044
|
+
*/
|
|
4045
|
+
match_type: 'broad' | 'phrase' | 'exact';
|
|
4046
|
+
}[];
|
|
3869
4047
|
/**
|
|
3870
4048
|
* Replace creative assignments for this package with optional weights and placement targeting. Uses replacement semantics - omit to leave assignments unchanged.
|
|
3871
4049
|
*/
|
|
@@ -4117,6 +4295,10 @@ export interface GetMediaBuysResponse {
|
|
|
4117
4295
|
context?: ContextObject;
|
|
4118
4296
|
ext?: ExtensionObject;
|
|
4119
4297
|
}
|
|
4298
|
+
/**
|
|
4299
|
+
* Metric to sort breakdown rows by (descending). Falls back to 'spend' if the seller does not report the requested metric.
|
|
4300
|
+
*/
|
|
4301
|
+
export type SortMetric = 'impressions' | 'spend' | 'clicks' | 'ctr' | 'views' | 'completed_views' | 'completion_rate' | 'conversions' | 'conversion_value' | 'roas' | 'cost_per_acquisition' | 'new_to_brand_rate' | 'leads' | 'grps' | 'reach' | 'frequency' | 'engagements' | 'follows' | 'saves' | 'profile_visits' | 'engagement_rate' | 'cost_per_click';
|
|
4120
4302
|
/**
|
|
4121
4303
|
* Request parameters for retrieving comprehensive delivery metrics
|
|
4122
4304
|
*/
|
|
@@ -4142,6 +4324,66 @@ export interface GetMediaBuyDeliveryRequest {
|
|
|
4142
4324
|
* 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'.
|
|
4143
4325
|
*/
|
|
4144
4326
|
end_date?: string;
|
|
4327
|
+
/**
|
|
4328
|
+
* Request dimensional breakdowns in delivery reporting. Each key enables a specific breakdown dimension within by_package — include as an empty object (e.g., "device_type": {}) to activate with defaults. Omit entirely for no breakdowns (backward compatible). Unsupported dimensions are silently omitted from the response.
|
|
4329
|
+
*/
|
|
4330
|
+
reporting_dimensions?: {
|
|
4331
|
+
/**
|
|
4332
|
+
* Request geographic breakdown. Check reporting_capabilities.supports_geo_breakdown for available levels and systems.
|
|
4333
|
+
*/
|
|
4334
|
+
geo?: {
|
|
4335
|
+
geo_level: GeographicTargetingLevel;
|
|
4336
|
+
/**
|
|
4337
|
+
* Classification system for metro or postal_area levels (e.g., 'nielsen_dma', 'us_zip'). Required when geo_level is 'metro' or 'postal_area'.
|
|
4338
|
+
*/
|
|
4339
|
+
system?: MetroAreaSystem | PostalCodeSystem;
|
|
4340
|
+
/**
|
|
4341
|
+
* Maximum number of geo entries to return. Defaults to 25. When truncated, by_geo_truncated is true in the response.
|
|
4342
|
+
*/
|
|
4343
|
+
limit?: number;
|
|
4344
|
+
sort_by?: SortMetric;
|
|
4345
|
+
};
|
|
4346
|
+
/**
|
|
4347
|
+
* Request device type breakdown.
|
|
4348
|
+
*/
|
|
4349
|
+
device_type?: {
|
|
4350
|
+
/**
|
|
4351
|
+
* Maximum number of entries to return. When omitted, all entries are returned (the enum is small and bounded).
|
|
4352
|
+
*/
|
|
4353
|
+
limit?: number;
|
|
4354
|
+
sort_by?: SortMetric;
|
|
4355
|
+
};
|
|
4356
|
+
/**
|
|
4357
|
+
* Request device platform breakdown.
|
|
4358
|
+
*/
|
|
4359
|
+
device_platform?: {
|
|
4360
|
+
/**
|
|
4361
|
+
* Maximum number of entries to return. When omitted, all entries are returned (the enum is small and bounded).
|
|
4362
|
+
*/
|
|
4363
|
+
limit?: number;
|
|
4364
|
+
sort_by?: SortMetric;
|
|
4365
|
+
};
|
|
4366
|
+
/**
|
|
4367
|
+
* Request audience segment breakdown.
|
|
4368
|
+
*/
|
|
4369
|
+
audience?: {
|
|
4370
|
+
/**
|
|
4371
|
+
* Maximum number of entries to return. Defaults to 25.
|
|
4372
|
+
*/
|
|
4373
|
+
limit?: number;
|
|
4374
|
+
sort_by?: SortMetric;
|
|
4375
|
+
};
|
|
4376
|
+
/**
|
|
4377
|
+
* Request placement breakdown.
|
|
4378
|
+
*/
|
|
4379
|
+
placement?: {
|
|
4380
|
+
/**
|
|
4381
|
+
* Maximum number of entries to return. Defaults to 25.
|
|
4382
|
+
*/
|
|
4383
|
+
limit?: number;
|
|
4384
|
+
sort_by?: SortMetric;
|
|
4385
|
+
};
|
|
4386
|
+
};
|
|
4145
4387
|
context?: ContextObject;
|
|
4146
4388
|
ext?: ExtensionObject;
|
|
4147
4389
|
}
|
|
@@ -4153,6 +4395,10 @@ export type AttributionModel = 'last_touch' | 'first_touch' | 'linear' | 'time_d
|
|
|
4153
4395
|
* Pricing model used for this media buy
|
|
4154
4396
|
*/
|
|
4155
4397
|
export type PricingModel = 'cpm' | 'vcpm' | 'cpc' | 'cpcv' | 'cpv' | 'cpp' | 'cpa' | 'flat_rate' | 'time';
|
|
4398
|
+
/**
|
|
4399
|
+
* Origin of the audience segment (synced, platform, third_party, lookalike, retargeting, unknown)
|
|
4400
|
+
*/
|
|
4401
|
+
export type AudienceSource = 'synced' | 'platform' | 'third_party' | 'lookalike' | 'retargeting' | 'unknown';
|
|
4156
4402
|
/**
|
|
4157
4403
|
* Response payload for get_media_buy_delivery task
|
|
4158
4404
|
*/
|
|
@@ -4331,6 +4577,96 @@ export interface GetMediaBuyDeliveryResponse {
|
|
|
4331
4577
|
*/
|
|
4332
4578
|
weight?: number;
|
|
4333
4579
|
})[];
|
|
4580
|
+
/**
|
|
4581
|
+
* Metrics broken down by keyword within this package. One row per (keyword, match_type) pair — the same keyword with different match types appears as separate rows. Keyword-grain only: rows reflect aggregate performance of each targeted keyword, not individual search queries. Rows may not sum to package totals when a single impression is attributed to the triggering keyword only. Available for search and retail media packages when the seller supports keyword-level reporting.
|
|
4582
|
+
*/
|
|
4583
|
+
by_keyword?: (DeliveryMetrics & {
|
|
4584
|
+
/**
|
|
4585
|
+
* The targeted keyword
|
|
4586
|
+
*/
|
|
4587
|
+
keyword: string;
|
|
4588
|
+
/**
|
|
4589
|
+
* Match type for this keyword
|
|
4590
|
+
*/
|
|
4591
|
+
match_type: 'broad' | 'phrase' | 'exact';
|
|
4592
|
+
})[];
|
|
4593
|
+
/**
|
|
4594
|
+
* Delivery by geographic area within this package. Available when the buyer requests geo breakdown via reporting_dimensions and the seller supports it. Each dimension's rows are independent slices that should sum to the package total.
|
|
4595
|
+
*/
|
|
4596
|
+
by_geo?: (DeliveryMetrics & {
|
|
4597
|
+
geo_level: GeographicTargetingLevel;
|
|
4598
|
+
/**
|
|
4599
|
+
* Classification system for metro or postal_area levels (e.g., 'nielsen_dma', 'us_zip'). Present when geo_level is 'metro' or 'postal_area'.
|
|
4600
|
+
*/
|
|
4601
|
+
system?: string;
|
|
4602
|
+
/**
|
|
4603
|
+
* Geographic code within the level and system. Country: ISO 3166-1 alpha-2 ('US'). Region: ISO 3166-2 with country prefix ('US-CA'). Metro/postal: system-specific code ('501', '10001').
|
|
4604
|
+
*/
|
|
4605
|
+
geo_code: string;
|
|
4606
|
+
/**
|
|
4607
|
+
* Human-readable geographic name (e.g., 'United States', 'California', 'New York DMA')
|
|
4608
|
+
*/
|
|
4609
|
+
geo_name?: string;
|
|
4610
|
+
})[];
|
|
4611
|
+
/**
|
|
4612
|
+
* Whether by_geo was truncated due to the requested limit or a seller-imposed maximum. Sellers MUST return this flag whenever by_geo is present (false means the list is complete).
|
|
4613
|
+
*/
|
|
4614
|
+
by_geo_truncated?: boolean;
|
|
4615
|
+
/**
|
|
4616
|
+
* Delivery by device form factor within this package. Available when the buyer requests device_type breakdown via reporting_dimensions and the seller supports it.
|
|
4617
|
+
*/
|
|
4618
|
+
by_device_type?: (DeliveryMetrics & {
|
|
4619
|
+
device_type: DeviceType;
|
|
4620
|
+
})[];
|
|
4621
|
+
/**
|
|
4622
|
+
* Whether by_device_type was truncated. Sellers MUST return this flag whenever by_device_type is present (false means the list is complete).
|
|
4623
|
+
*/
|
|
4624
|
+
by_device_type_truncated?: boolean;
|
|
4625
|
+
/**
|
|
4626
|
+
* Delivery by operating system within this package. Available when the buyer requests device_platform breakdown via reporting_dimensions and the seller supports it. Useful for CTV campaigns where tvOS vs Roku OS vs Fire OS matters.
|
|
4627
|
+
*/
|
|
4628
|
+
by_device_platform?: (DeliveryMetrics & {
|
|
4629
|
+
device_platform: DevicePlatform;
|
|
4630
|
+
})[];
|
|
4631
|
+
/**
|
|
4632
|
+
* Whether by_device_platform was truncated. Sellers MUST return this flag whenever by_device_platform is present (false means the list is complete).
|
|
4633
|
+
*/
|
|
4634
|
+
by_device_platform_truncated?: boolean;
|
|
4635
|
+
/**
|
|
4636
|
+
* Delivery by audience segment within this package. Available when the buyer requests audience breakdown via reporting_dimensions and the seller supports it. Only 'synced' audiences are directly targetable via the targeting overlay; other sources are informational.
|
|
4637
|
+
*/
|
|
4638
|
+
by_audience?: (DeliveryMetrics & {
|
|
4639
|
+
/**
|
|
4640
|
+
* Audience segment identifier. For 'synced' source, matches audience_id from sync_audiences. For other sources, seller-defined.
|
|
4641
|
+
*/
|
|
4642
|
+
audience_id: string;
|
|
4643
|
+
audience_source: AudienceSource;
|
|
4644
|
+
/**
|
|
4645
|
+
* Human-readable audience segment name
|
|
4646
|
+
*/
|
|
4647
|
+
audience_name?: string;
|
|
4648
|
+
})[];
|
|
4649
|
+
/**
|
|
4650
|
+
* Whether by_audience was truncated. Sellers MUST return this flag whenever by_audience is present (false means the list is complete).
|
|
4651
|
+
*/
|
|
4652
|
+
by_audience_truncated?: boolean;
|
|
4653
|
+
/**
|
|
4654
|
+
* Delivery by placement within this package. Available when the buyer requests placement breakdown via reporting_dimensions and the seller supports it. Placement IDs reference the product's placements array.
|
|
4655
|
+
*/
|
|
4656
|
+
by_placement?: (DeliveryMetrics & {
|
|
4657
|
+
/**
|
|
4658
|
+
* Placement identifier from the product's placements array
|
|
4659
|
+
*/
|
|
4660
|
+
placement_id: string;
|
|
4661
|
+
/**
|
|
4662
|
+
* Human-readable placement name
|
|
4663
|
+
*/
|
|
4664
|
+
placement_name?: string;
|
|
4665
|
+
})[];
|
|
4666
|
+
/**
|
|
4667
|
+
* Whether by_placement was truncated. Sellers MUST return this flag whenever by_placement is present (false means the list is complete).
|
|
4668
|
+
*/
|
|
4669
|
+
by_placement_truncated?: boolean;
|
|
4334
4670
|
})[];
|
|
4335
4671
|
/**
|
|
4336
4672
|
* Day-by-day delivery
|
|
@@ -4853,7 +5189,7 @@ export type UserMatch = {
|
|
|
4853
5189
|
/**
|
|
4854
5190
|
* Universal ID type
|
|
4855
5191
|
*/
|
|
4856
|
-
export type UIDType = 'rampid' | 'id5' | 'uid2' | 'euid' | 'pairid' | '
|
|
5192
|
+
export type UIDType = 'rampid' | 'id5' | 'uid2' | 'euid' | 'pairid' | 'maid' | 'other';
|
|
4857
5193
|
/**
|
|
4858
5194
|
* Request parameters for logging marketing events
|
|
4859
5195
|
*/
|
|
@@ -5024,11 +5360,15 @@ export interface LogEventError {
|
|
|
5024
5360
|
ext?: ExtensionObject;
|
|
5025
5361
|
}
|
|
5026
5362
|
/**
|
|
5027
|
-
*
|
|
5363
|
+
* A CRM audience member identified by a buyer-assigned external_id and at least one matchable identifier. All identifiers must be normalized before hashing: emails to lowercase+trim, phone numbers to E.164 format (e.g. +12065551234). Providing multiple identifiers for the same person improves match rates. Composite identifiers (e.g. hashed first name + last name + zip for Google Customer Match) are not yet standardized — use the ext field for platform-specific extensions.
|
|
5028
5364
|
*/
|
|
5029
5365
|
export type AudienceMember = {
|
|
5030
5366
|
[k: string]: unknown | undefined;
|
|
5031
5367
|
} & {
|
|
5368
|
+
/**
|
|
5369
|
+
* Buyer-assigned stable identifier for this audience member (e.g. CRM record ID, loyalty ID). Used for deduplication, removal, and cross-referencing with buyer systems. Adapters for CDPs that don't natively assign IDs can derive one (e.g. hash of the member's identifiers).
|
|
5370
|
+
*/
|
|
5371
|
+
external_id: string;
|
|
5032
5372
|
/**
|
|
5033
5373
|
* SHA-256 hash of lowercase, trimmed email address.
|
|
5034
5374
|
*/
|
|
@@ -6040,6 +6380,14 @@ export interface Identifier {
|
|
|
6040
6380
|
export type GetSignalsRequest = {
|
|
6041
6381
|
[k: string]: unknown | undefined;
|
|
6042
6382
|
} & {
|
|
6383
|
+
/**
|
|
6384
|
+
* The caller's account with this signals agent. When provided, the signals agent returns per-account pricing options if configured.
|
|
6385
|
+
*/
|
|
6386
|
+
account_id?: string;
|
|
6387
|
+
/**
|
|
6388
|
+
* The buyer's campaign reference. Used to correlate signal discovery with subsequent report_usage calls.
|
|
6389
|
+
*/
|
|
6390
|
+
buyer_campaign_ref?: string;
|
|
6043
6391
|
/**
|
|
6044
6392
|
* Natural language description of the desired signals. When used alone, enables semantic discovery. When combined with signal_ids, provides context for the agent but signal_ids matches are returned first.
|
|
6045
6393
|
*/
|
|
@@ -6049,18 +6397,13 @@ export type GetSignalsRequest = {
|
|
|
6049
6397
|
*/
|
|
6050
6398
|
signal_ids?: SignalID[];
|
|
6051
6399
|
/**
|
|
6052
|
-
*
|
|
6400
|
+
* Filter signals to those activatable on specific agents/platforms. When omitted, returns all signals available on the current agent. If the authenticated caller matches one of these destinations, activation keys will be included in the response.
|
|
6053
6401
|
*/
|
|
6054
|
-
|
|
6055
|
-
|
|
6056
|
-
|
|
6057
|
-
|
|
6058
|
-
|
|
6059
|
-
/**
|
|
6060
|
-
* Countries where signals will be used (ISO codes)
|
|
6061
|
-
*/
|
|
6062
|
-
countries: string[];
|
|
6063
|
-
};
|
|
6402
|
+
destinations?: Destination[];
|
|
6403
|
+
/**
|
|
6404
|
+
* Countries where signals will be used (ISO 3166-1 alpha-2 codes). When omitted, no geographic filter is applied.
|
|
6405
|
+
*/
|
|
6406
|
+
countries?: string[];
|
|
6064
6407
|
filters?: SignalFilters;
|
|
6065
6408
|
/**
|
|
6066
6409
|
* Maximum number of results to return
|
|
@@ -6117,9 +6460,13 @@ export interface SignalFilters {
|
|
|
6117
6460
|
*/
|
|
6118
6461
|
data_providers?: string[];
|
|
6119
6462
|
/**
|
|
6120
|
-
* Maximum CPM
|
|
6463
|
+
* Maximum CPM filter. Applies only to signals with model='cpm'.
|
|
6121
6464
|
*/
|
|
6122
6465
|
max_cpm?: number;
|
|
6466
|
+
/**
|
|
6467
|
+
* Maximum percent-of-media rate filter. Signals where all percent_of_media pricing options exceed this value are excluded. Does not account for max_cpm caps.
|
|
6468
|
+
*/
|
|
6469
|
+
max_percent?: number;
|
|
6123
6470
|
/**
|
|
6124
6471
|
* Minimum coverage requirement
|
|
6125
6472
|
*/
|
|
@@ -6211,6 +6558,19 @@ export type ActivationKey = {
|
|
|
6211
6558
|
*/
|
|
6212
6559
|
value: string;
|
|
6213
6560
|
};
|
|
6561
|
+
/**
|
|
6562
|
+
* A pricing option offered by a signals agent. Combines pricing_option_id with the signal pricing model fields at the same level — pass pricing_option_id in report_usage for billing verification.
|
|
6563
|
+
*/
|
|
6564
|
+
export type SignalPricingOption = {
|
|
6565
|
+
/**
|
|
6566
|
+
* Opaque identifier for this pricing option, unique within the signals agent. Pass this in report_usage to identify which pricing option was applied.
|
|
6567
|
+
*/
|
|
6568
|
+
pricing_option_id: string;
|
|
6569
|
+
} & SignalPricing;
|
|
6570
|
+
/**
|
|
6571
|
+
* Pricing model for a signal. Discriminated by model: 'cpm' (fixed CPM), 'percent_of_media' (percentage of spend with optional CPM cap), or 'flat_fee' (fixed charge per reporting period, e.g. monthly licensed segments).
|
|
6572
|
+
*/
|
|
6573
|
+
export type SignalPricing = CpmPricing | PercentOfMediaPricing | FlatFeePricing;
|
|
6214
6574
|
/**
|
|
6215
6575
|
* Response payload for get_signals task
|
|
6216
6576
|
*/
|
|
@@ -6249,7 +6609,7 @@ export interface GetSignalsResponse {
|
|
|
6249
6609
|
/**
|
|
6250
6610
|
* Pricing options available for this signal. The buyer selects one and passes its pricing_option_id in report_usage for billing verification.
|
|
6251
6611
|
*/
|
|
6252
|
-
pricing_options:
|
|
6612
|
+
pricing_options: SignalPricingOption[];
|
|
6253
6613
|
}[];
|
|
6254
6614
|
/**
|
|
6255
6615
|
* Task-specific errors and warnings (e.g., signal discovery or pricing issues)
|
|
@@ -6263,6 +6623,55 @@ export interface GetSignalsResponse {
|
|
|
6263
6623
|
context?: ContextObject;
|
|
6264
6624
|
ext?: ExtensionObject;
|
|
6265
6625
|
}
|
|
6626
|
+
/**
|
|
6627
|
+
* Fixed cost per thousand impressions
|
|
6628
|
+
*/
|
|
6629
|
+
export interface CpmPricing {
|
|
6630
|
+
model: 'cpm';
|
|
6631
|
+
/**
|
|
6632
|
+
* Cost per thousand impressions
|
|
6633
|
+
*/
|
|
6634
|
+
cpm: number;
|
|
6635
|
+
/**
|
|
6636
|
+
* ISO 4217 currency code
|
|
6637
|
+
*/
|
|
6638
|
+
currency: string;
|
|
6639
|
+
ext?: ExtensionObject;
|
|
6640
|
+
}
|
|
6641
|
+
/**
|
|
6642
|
+
* Percentage of media spend charged for this signal. When max_cpm is set, the effective rate is capped at that CPM — useful for platforms like The Trade Desk that use percent-of-media pricing with a CPM ceiling.
|
|
6643
|
+
*/
|
|
6644
|
+
export interface PercentOfMediaPricing {
|
|
6645
|
+
model: 'percent_of_media';
|
|
6646
|
+
/**
|
|
6647
|
+
* Percentage of media spend, e.g. 15 = 15%
|
|
6648
|
+
*/
|
|
6649
|
+
percent: number;
|
|
6650
|
+
/**
|
|
6651
|
+
* Optional CPM cap. When set, the effective charge is min(percent × media_spend_per_mille, max_cpm).
|
|
6652
|
+
*/
|
|
6653
|
+
max_cpm?: number;
|
|
6654
|
+
/**
|
|
6655
|
+
* ISO 4217 currency code for the resulting charge
|
|
6656
|
+
*/
|
|
6657
|
+
currency: string;
|
|
6658
|
+
ext?: ExtensionObject;
|
|
6659
|
+
}
|
|
6660
|
+
/**
|
|
6661
|
+
* Fixed charge per reporting period, regardless of impressions or spend. Used for licensed data bundles and monthly audience subscriptions.
|
|
6662
|
+
*/
|
|
6663
|
+
export interface FlatFeePricing {
|
|
6664
|
+
model: 'flat_fee';
|
|
6665
|
+
/**
|
|
6666
|
+
* Fixed charge for the reporting period
|
|
6667
|
+
*/
|
|
6668
|
+
amount: number;
|
|
6669
|
+
/**
|
|
6670
|
+
* ISO 4217 currency code
|
|
6671
|
+
*/
|
|
6672
|
+
currency: string;
|
|
6673
|
+
ext?: ExtensionObject;
|
|
6674
|
+
}
|
|
6266
6675
|
/**
|
|
6267
6676
|
* Request parameters for activating a signal on a specific deployment target
|
|
6268
6677
|
*/
|
|
@@ -6276,9 +6685,17 @@ export interface ActivateSignalRequest {
|
|
|
6276
6685
|
*/
|
|
6277
6686
|
deployments: Destination[];
|
|
6278
6687
|
/**
|
|
6279
|
-
* The pricing option selected from the signal's pricing_options in the get_signals response. Required when the signal has pricing options. Records the buyer's pricing commitment at activation time
|
|
6688
|
+
* The pricing option selected from the signal's pricing_options in the get_signals response. Required when the signal has pricing options. Records the buyer's pricing commitment at activation time; pass this same value in report_usage for billing verification.
|
|
6280
6689
|
*/
|
|
6281
6690
|
pricing_option_id?: string;
|
|
6691
|
+
/**
|
|
6692
|
+
* The caller's account with the signals agent. Associates this activation with a commercial relationship established via sync_accounts.
|
|
6693
|
+
*/
|
|
6694
|
+
account_id?: string;
|
|
6695
|
+
/**
|
|
6696
|
+
* The buyer's campaign reference for this activation. Enables the signals agent to correlate activations with subsequent report_usage calls.
|
|
6697
|
+
*/
|
|
6698
|
+
buyer_campaign_ref?: string;
|
|
6282
6699
|
context?: ContextObject;
|
|
6283
6700
|
ext?: ExtensionObject;
|
|
6284
6701
|
}
|
|
@@ -8147,6 +8564,10 @@ export interface GetAdCPCapabilitiesRequest {
|
|
|
8147
8564
|
context?: ContextObject;
|
|
8148
8565
|
ext?: ExtensionObject;
|
|
8149
8566
|
}
|
|
8567
|
+
/**
|
|
8568
|
+
* Transportation modes for isochrone-based catchment area calculations. Determines how travel time translates to geographic reach.
|
|
8569
|
+
*/
|
|
8570
|
+
export type TransportMode = 'walking' | 'cycling' | 'driving' | 'public_transport';
|
|
8150
8571
|
/**
|
|
8151
8572
|
* Response payload for get_adcp_capabilities task. Protocol-level capability discovery across all AdCP protocols. Each domain protocol has its own capability section.
|
|
8152
8573
|
*/
|
|
@@ -8326,6 +8747,10 @@ export interface GetAdCPCapabilitiesResponse {
|
|
|
8326
8747
|
* Whether seller supports device platform targeting (Sec-CH-UA-Platform values)
|
|
8327
8748
|
*/
|
|
8328
8749
|
device_platform?: boolean;
|
|
8750
|
+
/**
|
|
8751
|
+
* Whether seller supports device type targeting (form factor: desktop, mobile, tablet, ctv, dooh, unknown). When true, seller supports both device_type (include) and device_type_exclude (exclude) in targeting overlays.
|
|
8752
|
+
*/
|
|
8753
|
+
device_type?: boolean;
|
|
8329
8754
|
/**
|
|
8330
8755
|
* Whether seller supports language targeting (ISO 639-1 codes)
|
|
8331
8756
|
*/
|
|
@@ -8338,6 +8763,35 @@ export interface GetAdCPCapabilitiesResponse {
|
|
|
8338
8763
|
* Whether seller supports audience_exclude in targeting overlays (requires features.audience_targeting)
|
|
8339
8764
|
*/
|
|
8340
8765
|
audience_exclude?: boolean;
|
|
8766
|
+
/**
|
|
8767
|
+
* Whether seller supports keyword targeting via targeting_overlay.keyword_targets and keyword_targets_add/remove in update_media_buy
|
|
8768
|
+
*/
|
|
8769
|
+
keyword_targets?: boolean;
|
|
8770
|
+
/**
|
|
8771
|
+
* Whether seller supports negative keyword targeting via targeting_overlay.negative_keywords and negative_keywords_add/remove in update_media_buy
|
|
8772
|
+
*/
|
|
8773
|
+
negative_keywords?: boolean;
|
|
8774
|
+
/**
|
|
8775
|
+
* Proximity targeting capabilities from arbitrary coordinates via targeting_overlay.geo_proximity.
|
|
8776
|
+
*/
|
|
8777
|
+
geo_proximity?: {
|
|
8778
|
+
/**
|
|
8779
|
+
* Whether seller supports simple radius targeting (distance circle from a point)
|
|
8780
|
+
*/
|
|
8781
|
+
radius?: boolean;
|
|
8782
|
+
/**
|
|
8783
|
+
* Whether seller supports travel time isochrone targeting (requires a routing engine)
|
|
8784
|
+
*/
|
|
8785
|
+
travel_time?: boolean;
|
|
8786
|
+
/**
|
|
8787
|
+
* Whether seller supports pre-computed GeoJSON geometry (buyer provides the polygon)
|
|
8788
|
+
*/
|
|
8789
|
+
geometry?: boolean;
|
|
8790
|
+
/**
|
|
8791
|
+
* Transport modes supported for travel_time isochrones. Only relevant when travel_time is true.
|
|
8792
|
+
*/
|
|
8793
|
+
transport_modes?: TransportMode[];
|
|
8794
|
+
};
|
|
8341
8795
|
};
|
|
8342
8796
|
};
|
|
8343
8797
|
/**
|
|
@@ -8345,9 +8799,9 @@ export interface GetAdCPCapabilitiesResponse {
|
|
|
8345
8799
|
*/
|
|
8346
8800
|
audience_targeting?: {
|
|
8347
8801
|
/**
|
|
8348
|
-
*
|
|
8802
|
+
* Identifier types accepted for audience matching. Buyers should only send identifiers the seller supports.
|
|
8349
8803
|
*/
|
|
8350
|
-
supported_identifier_types: ('hashed_email' | 'hashed_phone')[];
|
|
8804
|
+
supported_identifier_types: ('hashed_email' | 'hashed_phone' | 'external_id')[];
|
|
8351
8805
|
/**
|
|
8352
8806
|
* Universal ID types accepted for audience matching (MAIDs, RampID, UID2, etc.). MAID support varies significantly by platform — check this field before sending uids with type: maid.
|
|
8353
8807
|
*/
|