@adcp/client 3.11.2 → 3.13.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/README.md +35 -32
- 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/core/ADCPMultiAgentClient.d.ts +0 -1
- package/dist/lib/core/ADCPMultiAgentClient.d.ts.map +1 -1
- package/dist/lib/core/ADCPMultiAgentClient.js +0 -1
- package/dist/lib/core/ADCPMultiAgentClient.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 +660 -45
- package/dist/lib/types/core.generated.d.ts.map +1 -1
- package/dist/lib/types/core.generated.js +2 -2
- package/dist/lib/types/core.generated.js.map +1 -1
- package/dist/lib/types/schemas.generated.d.ts +5821 -3396
- package/dist/lib/types/schemas.generated.d.ts.map +1 -1
- package/dist/lib/types/schemas.generated.js +717 -177
- package/dist/lib/types/schemas.generated.js.map +1 -1
- package/dist/lib/types/tools.generated.d.ts +2198 -384
- 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 +7 -7
- package/dist/lib/version.d.ts.map +1 -1
- package/dist/lib/version.js +6 -6
- package/dist/lib/version.js.map +1 -1
- package/package.json +2 -2
|
@@ -10,10 +10,22 @@ export type Pacing = 'even' | 'asap' | 'front_loaded';
|
|
|
10
10
|
* Metro area classification system (e.g., 'nielsen_dma', 'uk_itl2')
|
|
11
11
|
*/
|
|
12
12
|
export type MetroAreaSystem = 'nielsen_dma' | 'uk_itl1' | 'uk_itl2' | 'eurostat_nuts2' | 'custom';
|
|
13
|
+
/**
|
|
14
|
+
* Metro area classification system (e.g., 'nielsen_dma', 'uk_itl2')
|
|
15
|
+
*/
|
|
16
|
+
export type MetroAreaSystem1 = 'nielsen_dma' | 'uk_itl1' | 'uk_itl2' | 'eurostat_nuts2' | 'custom';
|
|
13
17
|
/**
|
|
14
18
|
* Postal code system (e.g., 'us_zip', 'gb_outward'). System name encodes country and precision.
|
|
15
19
|
*/
|
|
16
20
|
export type PostalCodeSystem = 'us_zip' | 'us_zip_plus_four' | 'gb_outward' | 'gb_full' | 'ca_fsa' | 'ca_full' | 'de_plz' | 'fr_code_postal' | 'au_postcode';
|
|
21
|
+
/**
|
|
22
|
+
* Postal code system (e.g., 'us_zip', 'gb_outward'). System name encodes country and precision.
|
|
23
|
+
*/
|
|
24
|
+
export type PostalCodeSystem1 = 'us_zip' | 'us_zip_plus_four' | 'gb_outward' | 'gb_full' | 'ca_fsa' | 'ca_full' | 'de_plz' | 'fr_code_postal' | 'au_postcode';
|
|
25
|
+
/**
|
|
26
|
+
* Days of the week for daypart targeting
|
|
27
|
+
*/
|
|
28
|
+
export type DayOfWeek = 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sunday';
|
|
17
29
|
/**
|
|
18
30
|
* Methods for verifying user age for compliance. Does not include 'inferred' as it is not accepted for regulatory compliance.
|
|
19
31
|
*/
|
|
@@ -22,6 +34,10 @@ export type AgeVerificationMethod = 'facial_age_estimation' | 'id_document' | 'd
|
|
|
22
34
|
* Operating system platforms for device targeting. Browser values from Sec-CH-UA-Platform standard, extended for CTV.
|
|
23
35
|
*/
|
|
24
36
|
export type DevicePlatform = 'ios' | 'android' | 'windows' | 'macos' | 'linux' | 'chromeos' | 'tvos' | 'tizen' | 'webos' | 'fire_os' | 'roku_os' | 'unknown';
|
|
37
|
+
/**
|
|
38
|
+
* Event type to optimize for (e.g. purchase, lead)
|
|
39
|
+
*/
|
|
40
|
+
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';
|
|
25
41
|
/**
|
|
26
42
|
* Represents a purchased advertising campaign
|
|
27
43
|
*/
|
|
@@ -71,7 +87,7 @@ export interface Account {
|
|
|
71
87
|
*/
|
|
72
88
|
account_id: string;
|
|
73
89
|
/**
|
|
74
|
-
* Human-readable account name (e.g., '
|
|
90
|
+
* Human-readable account name (e.g., 'Acme', 'Acme c/o Pinnacle')
|
|
75
91
|
*/
|
|
76
92
|
name: string;
|
|
77
93
|
/**
|
|
@@ -83,9 +99,25 @@ export interface Account {
|
|
|
83
99
|
*/
|
|
84
100
|
billing_proxy?: string;
|
|
85
101
|
/**
|
|
86
|
-
* Account status
|
|
102
|
+
* Account status. pending_approval: seller reviewing (credit, contracts). payment_required: credit limit reached or funds depleted. suspended: was active, now paused. closed: terminated.
|
|
103
|
+
*/
|
|
104
|
+
status: 'active' | 'pending_approval' | 'payment_required' | 'suspended' | 'closed';
|
|
105
|
+
/**
|
|
106
|
+
* House domain where brand.json is hosted. Canonical identity anchor for the brand.
|
|
87
107
|
*/
|
|
88
|
-
|
|
108
|
+
house?: string;
|
|
109
|
+
/**
|
|
110
|
+
* Brand ID within the house portfolio (from brand.json)
|
|
111
|
+
*/
|
|
112
|
+
brand_id?: string;
|
|
113
|
+
/**
|
|
114
|
+
* Domain of the entity operating this account
|
|
115
|
+
*/
|
|
116
|
+
operator?: string;
|
|
117
|
+
/**
|
|
118
|
+
* Who is invoiced on this account. brand: seller invoices the brand directly. operator: seller invoices the operator (agency). agent: agent consolidates billing.
|
|
119
|
+
*/
|
|
120
|
+
billing?: 'brand' | 'operator' | 'agent';
|
|
89
121
|
/**
|
|
90
122
|
* Identifier for the rate card applied to this account
|
|
91
123
|
*/
|
|
@@ -102,6 +134,7 @@ export interface Account {
|
|
|
102
134
|
currency: string;
|
|
103
135
|
};
|
|
104
136
|
ext?: ExtensionObject;
|
|
137
|
+
[k: string]: unknown | undefined;
|
|
105
138
|
}
|
|
106
139
|
/**
|
|
107
140
|
* 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.
|
|
@@ -151,6 +184,7 @@ export interface Package {
|
|
|
151
184
|
* Format IDs that creative assets will be provided for this package
|
|
152
185
|
*/
|
|
153
186
|
format_ids_to_provide?: FormatID[];
|
|
187
|
+
optimization_goal?: OptimizationGoal;
|
|
154
188
|
/**
|
|
155
189
|
* Whether this package is paused by the buyer. Paused packages do not deliver impressions. Defaults to false.
|
|
156
190
|
*/
|
|
@@ -164,36 +198,134 @@ export interface Package {
|
|
|
164
198
|
export interface TargetingOverlay {
|
|
165
199
|
/**
|
|
166
200
|
* Restrict delivery to specific countries. ISO 3166-1 alpha-2 codes (e.g., 'US', 'GB', 'DE').
|
|
201
|
+
*
|
|
202
|
+
* @minItems 1
|
|
167
203
|
*/
|
|
168
|
-
geo_countries?: string[];
|
|
204
|
+
geo_countries?: [string, ...string[]];
|
|
205
|
+
/**
|
|
206
|
+
* Exclude specific countries from delivery. ISO 3166-1 alpha-2 codes (e.g., 'US', 'GB', 'DE').
|
|
207
|
+
*
|
|
208
|
+
* @minItems 1
|
|
209
|
+
*/
|
|
210
|
+
geo_countries_exclude?: [string, ...string[]];
|
|
169
211
|
/**
|
|
170
212
|
* Restrict delivery to specific regions/states. ISO 3166-2 subdivision codes (e.g., 'US-CA', 'GB-SCT').
|
|
213
|
+
*
|
|
214
|
+
* @minItems 1
|
|
171
215
|
*/
|
|
172
|
-
geo_regions?: string[];
|
|
216
|
+
geo_regions?: [string, ...string[]];
|
|
217
|
+
/**
|
|
218
|
+
* Exclude specific regions/states from delivery. ISO 3166-2 subdivision codes (e.g., 'US-CA', 'GB-SCT').
|
|
219
|
+
*
|
|
220
|
+
* @minItems 1
|
|
221
|
+
*/
|
|
222
|
+
geo_regions_exclude?: [string, ...string[]];
|
|
173
223
|
/**
|
|
174
224
|
* Restrict delivery to specific metro areas. Each entry specifies the classification system and target values. Seller must declare supported systems in get_adcp_capabilities.
|
|
225
|
+
*
|
|
226
|
+
* @minItems 1
|
|
175
227
|
*/
|
|
176
|
-
geo_metros?:
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
228
|
+
geo_metros?: [
|
|
229
|
+
{
|
|
230
|
+
system: MetroAreaSystem;
|
|
231
|
+
/**
|
|
232
|
+
* Metro codes within the system (e.g., ['501', '602'] for Nielsen DMAs)
|
|
233
|
+
*
|
|
234
|
+
* @minItems 1
|
|
235
|
+
*/
|
|
236
|
+
values: [string, ...string[]];
|
|
237
|
+
},
|
|
238
|
+
...{
|
|
239
|
+
system: MetroAreaSystem;
|
|
240
|
+
/**
|
|
241
|
+
* Metro codes within the system (e.g., ['501', '602'] for Nielsen DMAs)
|
|
242
|
+
*
|
|
243
|
+
* @minItems 1
|
|
244
|
+
*/
|
|
245
|
+
values: [string, ...string[]];
|
|
246
|
+
}[]
|
|
247
|
+
];
|
|
248
|
+
/**
|
|
249
|
+
* Exclude specific metro areas from delivery. Each entry specifies the classification system and excluded values. Seller must declare supported systems in get_adcp_capabilities.
|
|
250
|
+
*
|
|
251
|
+
* @minItems 1
|
|
252
|
+
*/
|
|
253
|
+
geo_metros_exclude?: [
|
|
254
|
+
{
|
|
255
|
+
system: MetroAreaSystem1;
|
|
256
|
+
/**
|
|
257
|
+
* Metro codes to exclude within the system (e.g., ['501', '602'] for Nielsen DMAs)
|
|
258
|
+
*
|
|
259
|
+
* @minItems 1
|
|
260
|
+
*/
|
|
261
|
+
values: [string, ...string[]];
|
|
262
|
+
},
|
|
263
|
+
...{
|
|
264
|
+
system: MetroAreaSystem1;
|
|
265
|
+
/**
|
|
266
|
+
* Metro codes to exclude within the system (e.g., ['501', '602'] for Nielsen DMAs)
|
|
267
|
+
*
|
|
268
|
+
* @minItems 1
|
|
269
|
+
*/
|
|
270
|
+
values: [string, ...string[]];
|
|
271
|
+
}[]
|
|
272
|
+
];
|
|
185
273
|
/**
|
|
186
274
|
* Restrict delivery to specific postal areas. Each entry specifies the postal system and target values. Seller must declare supported systems in get_adcp_capabilities.
|
|
275
|
+
*
|
|
276
|
+
* @minItems 1
|
|
187
277
|
*/
|
|
188
|
-
geo_postal_areas?:
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
278
|
+
geo_postal_areas?: [
|
|
279
|
+
{
|
|
280
|
+
system: PostalCodeSystem;
|
|
281
|
+
/**
|
|
282
|
+
* Postal codes within the system (e.g., ['10001', '10002'] for us_zip)
|
|
283
|
+
*
|
|
284
|
+
* @minItems 1
|
|
285
|
+
*/
|
|
286
|
+
values: [string, ...string[]];
|
|
287
|
+
},
|
|
288
|
+
...{
|
|
289
|
+
system: PostalCodeSystem;
|
|
290
|
+
/**
|
|
291
|
+
* Postal codes within the system (e.g., ['10001', '10002'] for us_zip)
|
|
292
|
+
*
|
|
293
|
+
* @minItems 1
|
|
294
|
+
*/
|
|
295
|
+
values: [string, ...string[]];
|
|
296
|
+
}[]
|
|
297
|
+
];
|
|
298
|
+
/**
|
|
299
|
+
* Exclude specific postal areas from delivery. Each entry specifies the postal system and excluded values. Seller must declare supported systems in get_adcp_capabilities.
|
|
300
|
+
*
|
|
301
|
+
* @minItems 1
|
|
302
|
+
*/
|
|
303
|
+
geo_postal_areas_exclude?: [
|
|
304
|
+
{
|
|
305
|
+
system: PostalCodeSystem1;
|
|
306
|
+
/**
|
|
307
|
+
* Postal codes to exclude within the system (e.g., ['10001', '10002'] for us_zip)
|
|
308
|
+
*
|
|
309
|
+
* @minItems 1
|
|
310
|
+
*/
|
|
311
|
+
values: [string, ...string[]];
|
|
312
|
+
},
|
|
313
|
+
...{
|
|
314
|
+
system: PostalCodeSystem1;
|
|
315
|
+
/**
|
|
316
|
+
* Postal codes to exclude within the system (e.g., ['10001', '10002'] for us_zip)
|
|
317
|
+
*
|
|
318
|
+
* @minItems 1
|
|
319
|
+
*/
|
|
320
|
+
values: [string, ...string[]];
|
|
321
|
+
}[]
|
|
322
|
+
];
|
|
323
|
+
/**
|
|
324
|
+
* Restrict delivery to specific time windows. Each entry specifies days of week and an hour range.
|
|
325
|
+
*
|
|
326
|
+
* @minItems 1
|
|
327
|
+
*/
|
|
328
|
+
daypart_targets?: [DaypartTarget, ...DaypartTarget[]];
|
|
197
329
|
/**
|
|
198
330
|
* AXE segment ID to include for targeting
|
|
199
331
|
*/
|
|
@@ -218,8 +350,10 @@ export interface TargetingOverlay {
|
|
|
218
350
|
verification_required?: boolean;
|
|
219
351
|
/**
|
|
220
352
|
* Accepted verification methods. If omitted, any method the platform supports is acceptable.
|
|
353
|
+
*
|
|
354
|
+
* @minItems 1
|
|
221
355
|
*/
|
|
222
|
-
accepted_methods?: AgeVerificationMethod[];
|
|
356
|
+
accepted_methods?: [AgeVerificationMethod, ...AgeVerificationMethod[]];
|
|
223
357
|
};
|
|
224
358
|
/**
|
|
225
359
|
* Restrict to specific platforms. Use for technical compatibility (app only works on iOS). Values from Sec-CH-UA-Platform standard, extended for CTV.
|
|
@@ -235,6 +369,29 @@ export interface TargetingOverlay {
|
|
|
235
369
|
language?: [string, ...string[]];
|
|
236
370
|
[k: string]: unknown | undefined;
|
|
237
371
|
}
|
|
372
|
+
/**
|
|
373
|
+
* A time window for daypart targeting. Specifies days of week and an hour range. start_hour is inclusive, end_hour is exclusive (e.g., 6-10 = 6:00am to 10:00am). Follows the Google Ads AdScheduleInfo / DV360 DayPartTargeting pattern.
|
|
374
|
+
*/
|
|
375
|
+
export interface DaypartTarget {
|
|
376
|
+
/**
|
|
377
|
+
* Days of week this window applies to. Use multiple days for compact targeting (e.g., monday-friday in one object).
|
|
378
|
+
*
|
|
379
|
+
* @minItems 1
|
|
380
|
+
*/
|
|
381
|
+
days: [DayOfWeek, ...DayOfWeek[]];
|
|
382
|
+
/**
|
|
383
|
+
* Start hour (inclusive), 0-23 in 24-hour format. 0 = midnight, 6 = 6:00am, 18 = 6:00pm.
|
|
384
|
+
*/
|
|
385
|
+
start_hour: number;
|
|
386
|
+
/**
|
|
387
|
+
* End hour (exclusive), 1-24 in 24-hour format. 10 = 10:00am, 24 = midnight. Must be greater than start_hour.
|
|
388
|
+
*/
|
|
389
|
+
end_hour: number;
|
|
390
|
+
/**
|
|
391
|
+
* Optional human-readable name for this time window (e.g., 'Morning Drive', 'Prime Time')
|
|
392
|
+
*/
|
|
393
|
+
label?: string;
|
|
394
|
+
}
|
|
238
395
|
/**
|
|
239
396
|
* Frequency capping settings for package-level application
|
|
240
397
|
*/
|
|
@@ -308,6 +465,39 @@ export interface FormatID {
|
|
|
308
465
|
duration_ms?: number;
|
|
309
466
|
[k: string]: unknown | undefined;
|
|
310
467
|
}
|
|
468
|
+
/**
|
|
469
|
+
* Conversion optimization goal for a package. Tells the seller which event source and event type to optimize delivery against. Provide at most one of target_roas or target_cpa. If neither is provided, the seller optimizes for maximum conversions within budget.
|
|
470
|
+
*/
|
|
471
|
+
export interface OptimizationGoal {
|
|
472
|
+
/**
|
|
473
|
+
* Event source to optimize against (must be configured on this account via sync_event_sources)
|
|
474
|
+
*/
|
|
475
|
+
event_source_id: string;
|
|
476
|
+
event_type: EventType;
|
|
477
|
+
/**
|
|
478
|
+
* Target return on ad spend (e.g. 4.0 = $4 conversion value per $1 spent). Mutually exclusive with target_cpa.
|
|
479
|
+
*/
|
|
480
|
+
target_roas?: number;
|
|
481
|
+
/**
|
|
482
|
+
* Target cost per acquisition in the buy currency. Mutually exclusive with target_roas.
|
|
483
|
+
*/
|
|
484
|
+
target_cpa?: number;
|
|
485
|
+
/**
|
|
486
|
+
* 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.
|
|
487
|
+
*/
|
|
488
|
+
attribution_window?: {
|
|
489
|
+
/**
|
|
490
|
+
* Click-through attribution window (e.g. '7d', '28d', '30d')
|
|
491
|
+
*/
|
|
492
|
+
click_through: string;
|
|
493
|
+
/**
|
|
494
|
+
* View-through attribution window (e.g. '1d', '7d')
|
|
495
|
+
*/
|
|
496
|
+
view_through?: string;
|
|
497
|
+
[k: string]: unknown | undefined;
|
|
498
|
+
};
|
|
499
|
+
[k: string]: unknown | undefined;
|
|
500
|
+
}
|
|
311
501
|
/**
|
|
312
502
|
* JavaScript module type
|
|
313
503
|
*/
|
|
@@ -337,6 +527,14 @@ export type VASTAsset = {
|
|
|
337
527
|
* Tracking events supported by this VAST tag
|
|
338
528
|
*/
|
|
339
529
|
tracking_events?: VASTTrackingEvent[];
|
|
530
|
+
/**
|
|
531
|
+
* URL to captions file (WebVTT, SRT, etc.)
|
|
532
|
+
*/
|
|
533
|
+
captions_url?: string;
|
|
534
|
+
/**
|
|
535
|
+
* URL to audio description track for visually impaired users
|
|
536
|
+
*/
|
|
537
|
+
audio_description_url?: string;
|
|
340
538
|
[k: string]: unknown | undefined;
|
|
341
539
|
} | {
|
|
342
540
|
/**
|
|
@@ -360,6 +558,14 @@ export type VASTAsset = {
|
|
|
360
558
|
* Tracking events supported by this VAST tag
|
|
361
559
|
*/
|
|
362
560
|
tracking_events?: VASTTrackingEvent[];
|
|
561
|
+
/**
|
|
562
|
+
* URL to captions file (WebVTT, SRT, etc.)
|
|
563
|
+
*/
|
|
564
|
+
captions_url?: string;
|
|
565
|
+
/**
|
|
566
|
+
* URL to audio description track for visually impaired users
|
|
567
|
+
*/
|
|
568
|
+
audio_description_url?: string;
|
|
363
569
|
[k: string]: unknown | undefined;
|
|
364
570
|
};
|
|
365
571
|
/**
|
|
@@ -399,6 +605,10 @@ export type DAASTAsset = {
|
|
|
399
605
|
* Whether companion display ads are included
|
|
400
606
|
*/
|
|
401
607
|
companion_ads?: boolean;
|
|
608
|
+
/**
|
|
609
|
+
* URL to text transcript of the audio content
|
|
610
|
+
*/
|
|
611
|
+
transcript_url?: string;
|
|
402
612
|
[k: string]: unknown | undefined;
|
|
403
613
|
} | {
|
|
404
614
|
/**
|
|
@@ -422,6 +632,10 @@ export type DAASTAsset = {
|
|
|
422
632
|
* Whether companion display ads are included
|
|
423
633
|
*/
|
|
424
634
|
companion_ads?: boolean;
|
|
635
|
+
/**
|
|
636
|
+
* URL to text transcript of the audio content
|
|
637
|
+
*/
|
|
638
|
+
transcript_url?: string;
|
|
425
639
|
[k: string]: unknown | undefined;
|
|
426
640
|
};
|
|
427
641
|
/**
|
|
@@ -642,6 +856,18 @@ export interface VideoAsset {
|
|
|
642
856
|
* True peak level in dBFS
|
|
643
857
|
*/
|
|
644
858
|
audio_true_peak_dbfs?: number;
|
|
859
|
+
/**
|
|
860
|
+
* URL to captions file (WebVTT, SRT, etc.)
|
|
861
|
+
*/
|
|
862
|
+
captions_url?: string;
|
|
863
|
+
/**
|
|
864
|
+
* URL to text transcript of the video content
|
|
865
|
+
*/
|
|
866
|
+
transcript_url?: string;
|
|
867
|
+
/**
|
|
868
|
+
* URL to audio description track for visually impaired users
|
|
869
|
+
*/
|
|
870
|
+
audio_description_url?: string;
|
|
645
871
|
[k: string]: unknown | undefined;
|
|
646
872
|
}
|
|
647
873
|
/**
|
|
@@ -692,6 +918,10 @@ export interface AudioAsset {
|
|
|
692
918
|
* True peak level in dBFS
|
|
693
919
|
*/
|
|
694
920
|
true_peak_dbfs?: number;
|
|
921
|
+
/**
|
|
922
|
+
* URL to text transcript of the audio content
|
|
923
|
+
*/
|
|
924
|
+
transcript_url?: string;
|
|
695
925
|
[k: string]: unknown | undefined;
|
|
696
926
|
}
|
|
697
927
|
/**
|
|
@@ -720,6 +950,27 @@ export interface HTMLAsset {
|
|
|
720
950
|
* HTML version (e.g., 'HTML5')
|
|
721
951
|
*/
|
|
722
952
|
version?: string;
|
|
953
|
+
/**
|
|
954
|
+
* Self-declared accessibility properties for this opaque creative
|
|
955
|
+
*/
|
|
956
|
+
accessibility?: {
|
|
957
|
+
/**
|
|
958
|
+
* Text alternative describing the creative content
|
|
959
|
+
*/
|
|
960
|
+
alt_text?: string;
|
|
961
|
+
/**
|
|
962
|
+
* Whether the creative can be fully operated via keyboard
|
|
963
|
+
*/
|
|
964
|
+
keyboard_navigable?: boolean;
|
|
965
|
+
/**
|
|
966
|
+
* Whether the creative respects prefers-reduced-motion or provides pause/stop controls
|
|
967
|
+
*/
|
|
968
|
+
motion_control?: boolean;
|
|
969
|
+
/**
|
|
970
|
+
* Whether the creative has been tested with screen readers
|
|
971
|
+
*/
|
|
972
|
+
screen_reader_tested?: boolean;
|
|
973
|
+
};
|
|
723
974
|
[k: string]: unknown | undefined;
|
|
724
975
|
}
|
|
725
976
|
/**
|
|
@@ -745,6 +996,27 @@ export interface JavaScriptAsset {
|
|
|
745
996
|
*/
|
|
746
997
|
content: string;
|
|
747
998
|
module_type?: JavaScriptModuleType;
|
|
999
|
+
/**
|
|
1000
|
+
* Self-declared accessibility properties for this opaque creative
|
|
1001
|
+
*/
|
|
1002
|
+
accessibility?: {
|
|
1003
|
+
/**
|
|
1004
|
+
* Text alternative describing the creative content
|
|
1005
|
+
*/
|
|
1006
|
+
alt_text?: string;
|
|
1007
|
+
/**
|
|
1008
|
+
* Whether the creative can be fully operated via keyboard
|
|
1009
|
+
*/
|
|
1010
|
+
keyboard_navigable?: boolean;
|
|
1011
|
+
/**
|
|
1012
|
+
* Whether the creative respects prefers-reduced-motion or provides pause/stop controls
|
|
1013
|
+
*/
|
|
1014
|
+
motion_control?: boolean;
|
|
1015
|
+
/**
|
|
1016
|
+
* Whether the creative has been tested with screen readers
|
|
1017
|
+
*/
|
|
1018
|
+
screen_reader_tested?: boolean;
|
|
1019
|
+
};
|
|
748
1020
|
[k: string]: unknown | undefined;
|
|
749
1021
|
}
|
|
750
1022
|
/**
|
|
@@ -835,29 +1107,29 @@ export interface BrandManifest {
|
|
|
835
1107
|
height?: number;
|
|
836
1108
|
}[];
|
|
837
1109
|
/**
|
|
838
|
-
* Brand color palette
|
|
1110
|
+
* Brand color palette. Each role accepts a single hex color or an array of hex colors for brands with multiple values per role.
|
|
839
1111
|
*/
|
|
840
1112
|
colors?: {
|
|
841
1113
|
/**
|
|
842
|
-
* Primary brand color
|
|
1114
|
+
* Primary brand color(s)
|
|
843
1115
|
*/
|
|
844
|
-
primary?: string;
|
|
1116
|
+
primary?: string | [string, ...string[]];
|
|
845
1117
|
/**
|
|
846
|
-
* Secondary brand color
|
|
1118
|
+
* Secondary brand color(s)
|
|
847
1119
|
*/
|
|
848
|
-
secondary?: string;
|
|
1120
|
+
secondary?: string | [string, ...string[]];
|
|
849
1121
|
/**
|
|
850
|
-
* Accent color
|
|
1122
|
+
* Accent color(s)
|
|
851
1123
|
*/
|
|
852
|
-
accent?: string;
|
|
1124
|
+
accent?: string | [string, ...string[]];
|
|
853
1125
|
/**
|
|
854
|
-
* Background color
|
|
1126
|
+
* Background color(s)
|
|
855
1127
|
*/
|
|
856
|
-
background?: string;
|
|
1128
|
+
background?: string | [string, ...string[]];
|
|
857
1129
|
/**
|
|
858
|
-
* Text color
|
|
1130
|
+
* Text color(s)
|
|
859
1131
|
*/
|
|
860
|
-
text?: string;
|
|
1132
|
+
text?: string | [string, ...string[]];
|
|
861
1133
|
};
|
|
862
1134
|
/**
|
|
863
1135
|
* Brand typography guidelines
|
|
@@ -879,7 +1151,7 @@ export interface BrandManifest {
|
|
|
879
1151
|
/**
|
|
880
1152
|
* Brand voice and messaging tone guidelines for creative agents.
|
|
881
1153
|
*/
|
|
882
|
-
tone?: {
|
|
1154
|
+
tone?: string | {
|
|
883
1155
|
/**
|
|
884
1156
|
* High-level voice descriptor (e.g., 'warm and inviting', 'professional and trustworthy')
|
|
885
1157
|
*/
|
|
@@ -1096,6 +1368,10 @@ export interface BrandManifest {
|
|
|
1096
1368
|
* Selectors to choose which products/offerings from the brand manifest product catalog to promote
|
|
1097
1369
|
*/
|
|
1098
1370
|
export interface PromotedProducts {
|
|
1371
|
+
/**
|
|
1372
|
+
* GTIN product identifiers for cross-retailer catalog matching. Accepts standard GTIN formats (GTIN-8, UPC-A/GTIN-12, EAN-13/GTIN-13, GTIN-14).
|
|
1373
|
+
*/
|
|
1374
|
+
manifest_gtins?: string[];
|
|
1099
1375
|
/**
|
|
1100
1376
|
* Direct product SKU references from the brand manifest product catalog
|
|
1101
1377
|
*/
|
|
@@ -1240,6 +1516,10 @@ export type PropertyID = string;
|
|
|
1240
1516
|
* Tag for categorizing publisher properties. Must be lowercase alphanumeric with underscores only.
|
|
1241
1517
|
*/
|
|
1242
1518
|
export type PropertyTag = string;
|
|
1519
|
+
/**
|
|
1520
|
+
* 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.
|
|
1521
|
+
*/
|
|
1522
|
+
export type MediaChannel = 'display' | 'olv' | 'social' | 'search' | 'ctv' | 'linear_tv' | 'radio' | 'streaming_audio' | 'podcast' | 'dooh' | 'ooh' | 'print' | 'cinema' | 'email' | 'gaming' | 'retail_media' | 'influencer' | 'affiliate' | 'product_placement';
|
|
1243
1523
|
/**
|
|
1244
1524
|
* Type of inventory delivery
|
|
1245
1525
|
*/
|
|
@@ -1247,15 +1527,19 @@ export type DeliveryType = 'guaranteed' | 'non_guaranteed';
|
|
|
1247
1527
|
/**
|
|
1248
1528
|
* A pricing model option offered by a publisher for a product. Discriminated by pricing_model field. If fixed_price is present, it's fixed pricing. If absent, it's auction-based (floor_price and price_guidance optional).
|
|
1249
1529
|
*/
|
|
1250
|
-
export type PricingOption = CPMPricingOption | VCPMPricingOption | CPCPricingOption | CPCVPricingOption | CPVPricingOption | CPPPricingOption | FlatRatePricingOption;
|
|
1530
|
+
export type PricingOption = CPMPricingOption | VCPMPricingOption | CPCPricingOption | CPCVPricingOption | CPVPricingOption | CPPPricingOption | CPAPricingOption | FlatRatePricingOption | TimeBasedPricingOption;
|
|
1531
|
+
/**
|
|
1532
|
+
* Measurement system for the demographic field. Defaults to nielsen when omitted.
|
|
1533
|
+
*/
|
|
1534
|
+
export type DemographicSystem = 'nielsen' | 'barb' | 'agf' | 'oztam' | 'mediametrie' | 'custom';
|
|
1251
1535
|
/**
|
|
1252
|
-
*
|
|
1536
|
+
* Standard marketing event types for event logging, aligned with IAB ECAPI
|
|
1253
1537
|
*/
|
|
1254
1538
|
export type ReportingFrequency = 'hourly' | 'daily' | 'monthly';
|
|
1255
1539
|
/**
|
|
1256
1540
|
* Standard delivery and performance metrics available for reporting
|
|
1257
1541
|
*/
|
|
1258
|
-
export type AvailableMetric = 'impressions' | 'spend' | 'clicks' | 'ctr' | 'video_completions' | 'completion_rate' | 'conversions' | 'viewability' | 'engagement_rate';
|
|
1542
|
+
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';
|
|
1259
1543
|
/**
|
|
1260
1544
|
* Co-branding requirement
|
|
1261
1545
|
*/
|
|
@@ -1310,6 +1594,10 @@ export type DataProviderSignalSelector = {
|
|
|
1310
1594
|
signal_tags: [string, ...string[]];
|
|
1311
1595
|
[k: string]: unknown | undefined;
|
|
1312
1596
|
};
|
|
1597
|
+
/**
|
|
1598
|
+
* Where the conversion event originated
|
|
1599
|
+
*/
|
|
1600
|
+
export type ActionSource = 'website' | 'app' | 'offline' | 'phone_call' | 'chat' | 'email' | 'in_store' | 'system_generated' | 'other';
|
|
1313
1601
|
/**
|
|
1314
1602
|
* Represents available advertising inventory
|
|
1315
1603
|
*/
|
|
@@ -1330,6 +1618,10 @@ export interface Product {
|
|
|
1330
1618
|
* Publisher properties covered by this product. Buyers fetch actual property definitions from each publisher's adagents.json and validate agent authorization. Selection patterns mirror the authorization patterns in adagents.json for consistency.
|
|
1331
1619
|
*/
|
|
1332
1620
|
publisher_properties: PublisherPropertySelector[];
|
|
1621
|
+
/**
|
|
1622
|
+
* 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'].
|
|
1623
|
+
*/
|
|
1624
|
+
channels?: MediaChannel[];
|
|
1333
1625
|
/**
|
|
1334
1626
|
* Array of supported creative format IDs - structured format_id objects with agent_url and id
|
|
1335
1627
|
*/
|
|
@@ -1379,6 +1671,40 @@ export interface Product {
|
|
|
1379
1671
|
* 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.
|
|
1380
1672
|
*/
|
|
1381
1673
|
signal_targeting_allowed?: boolean;
|
|
1674
|
+
/**
|
|
1675
|
+
* 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.
|
|
1676
|
+
*/
|
|
1677
|
+
conversion_tracking?: {
|
|
1678
|
+
/**
|
|
1679
|
+
* 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')
|
|
1680
|
+
*/
|
|
1681
|
+
action_sources?: ActionSource[];
|
|
1682
|
+
/**
|
|
1683
|
+
* Optimization strategies this product supports when an optimization_goal is set on a package
|
|
1684
|
+
*/
|
|
1685
|
+
supported_optimization_strategies?: ('maximize_conversions' | 'target_cpa' | 'target_roas')[];
|
|
1686
|
+
/**
|
|
1687
|
+
* 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'.
|
|
1688
|
+
*/
|
|
1689
|
+
platform_managed?: boolean;
|
|
1690
|
+
};
|
|
1691
|
+
/**
|
|
1692
|
+
* When the buyer provides a brand_manifest with product_catalog, indicates which of the buyer's catalog items are eligible for this product. Enables buyers to make informed product_selector choices in create_media_buy. Only present for products where catalog matching is relevant (e.g. sponsored product listings on retail media). Sellers SHOULD include at least one of matched_gtins or matched_skus.
|
|
1693
|
+
*/
|
|
1694
|
+
catalog_match?: {
|
|
1695
|
+
/**
|
|
1696
|
+
* GTINs from the buyer's catalog that are eligible on this product's inventory. Buyers can use these values in product_selectors.manifest_gtins when creating media buys. Standard GTIN formats (GTIN-8 through GTIN-14).
|
|
1697
|
+
*/
|
|
1698
|
+
matched_gtins?: string[];
|
|
1699
|
+
/**
|
|
1700
|
+
* SKUs from the buyer's catalog that are eligible on this product's inventory. Buyers can use these values in product_selectors.manifest_skus when creating media buys.
|
|
1701
|
+
*/
|
|
1702
|
+
matched_skus?: string[];
|
|
1703
|
+
/**
|
|
1704
|
+
* Total catalog items evaluated from the buyer's feed.
|
|
1705
|
+
*/
|
|
1706
|
+
submitted_count: number;
|
|
1707
|
+
};
|
|
1382
1708
|
/**
|
|
1383
1709
|
* Explanation of why this product matches the brief (only included when brief is provided)
|
|
1384
1710
|
*/
|
|
@@ -1740,8 +2066,9 @@ export interface CPPPricingOption {
|
|
|
1740
2066
|
* CPP-specific parameters for demographic targeting
|
|
1741
2067
|
*/
|
|
1742
2068
|
parameters: {
|
|
2069
|
+
demographic_system?: DemographicSystem;
|
|
1743
2070
|
/**
|
|
1744
|
-
* Target demographic
|
|
2071
|
+
* Target demographic code within the specified demographic_system (e.g., P18-49 for Nielsen, ABC1 Adults for BARB)
|
|
1745
2072
|
*/
|
|
1746
2073
|
demographic: string;
|
|
1747
2074
|
/**
|
|
@@ -1778,6 +2105,44 @@ export interface PriceGuidance5 {
|
|
|
1778
2105
|
p90?: number;
|
|
1779
2106
|
[k: string]: unknown | undefined;
|
|
1780
2107
|
}
|
|
2108
|
+
/**
|
|
2109
|
+
* 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).
|
|
2110
|
+
*/
|
|
2111
|
+
export interface CPAPricingOption {
|
|
2112
|
+
/**
|
|
2113
|
+
* Unique identifier for this pricing option within the product
|
|
2114
|
+
*/
|
|
2115
|
+
pricing_option_id: string;
|
|
2116
|
+
/**
|
|
2117
|
+
* Cost per acquisition (conversion event)
|
|
2118
|
+
*/
|
|
2119
|
+
pricing_model: 'cpa';
|
|
2120
|
+
/**
|
|
2121
|
+
* The conversion event type that triggers billing (e.g., purchase, lead, app_install)
|
|
2122
|
+
*/
|
|
2123
|
+
event_type: EventType;
|
|
2124
|
+
/**
|
|
2125
|
+
* Name of the custom event when event_type is 'custom'. Required when event_type is 'custom', ignored otherwise.
|
|
2126
|
+
*/
|
|
2127
|
+
custom_event_name?: string;
|
|
2128
|
+
/**
|
|
2129
|
+
* 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.
|
|
2130
|
+
*/
|
|
2131
|
+
event_source_id?: string;
|
|
2132
|
+
/**
|
|
2133
|
+
* ISO 4217 currency code
|
|
2134
|
+
*/
|
|
2135
|
+
currency: string;
|
|
2136
|
+
/**
|
|
2137
|
+
* Fixed price per acquisition in the specified currency
|
|
2138
|
+
*/
|
|
2139
|
+
fixed_price: number;
|
|
2140
|
+
/**
|
|
2141
|
+
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
2142
|
+
*/
|
|
2143
|
+
min_spend_per_package?: number;
|
|
2144
|
+
[k: string]: unknown | undefined;
|
|
2145
|
+
}
|
|
1781
2146
|
/**
|
|
1782
2147
|
* 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.
|
|
1783
2148
|
*/
|
|
@@ -1865,6 +2230,77 @@ export interface PriceGuidance6 {
|
|
|
1865
2230
|
p90?: number;
|
|
1866
2231
|
[k: string]: unknown | undefined;
|
|
1867
2232
|
}
|
|
2233
|
+
/**
|
|
2234
|
+
* 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.
|
|
2235
|
+
*/
|
|
2236
|
+
export interface TimeBasedPricingOption {
|
|
2237
|
+
/**
|
|
2238
|
+
* Unique identifier for this pricing option within the product
|
|
2239
|
+
*/
|
|
2240
|
+
pricing_option_id: string;
|
|
2241
|
+
/**
|
|
2242
|
+
* Cost per time unit - rate scales with campaign duration
|
|
2243
|
+
*/
|
|
2244
|
+
pricing_model: 'time';
|
|
2245
|
+
/**
|
|
2246
|
+
* ISO 4217 currency code
|
|
2247
|
+
*/
|
|
2248
|
+
currency: string;
|
|
2249
|
+
/**
|
|
2250
|
+
* Cost per time unit. If present, this is fixed pricing. If absent, auction-based.
|
|
2251
|
+
*/
|
|
2252
|
+
fixed_price?: number;
|
|
2253
|
+
/**
|
|
2254
|
+
* Minimum acceptable bid per time unit for auction pricing (mutually exclusive with fixed_price). Bids below this value will be rejected.
|
|
2255
|
+
*/
|
|
2256
|
+
floor_price?: number;
|
|
2257
|
+
price_guidance?: PriceGuidance7;
|
|
2258
|
+
/**
|
|
2259
|
+
* Time-based pricing parameters
|
|
2260
|
+
*/
|
|
2261
|
+
parameters: {
|
|
2262
|
+
/**
|
|
2263
|
+
* The time unit for pricing. Total cost = fixed_price × number of time_units in the campaign flight.
|
|
2264
|
+
*/
|
|
2265
|
+
time_unit: 'hour' | 'day' | 'week' | 'month';
|
|
2266
|
+
/**
|
|
2267
|
+
* Minimum booking duration in time_units
|
|
2268
|
+
*/
|
|
2269
|
+
min_duration?: number;
|
|
2270
|
+
/**
|
|
2271
|
+
* Maximum booking duration in time_units. Must be >= min_duration when both are present.
|
|
2272
|
+
*/
|
|
2273
|
+
max_duration?: number;
|
|
2274
|
+
[k: string]: unknown | undefined;
|
|
2275
|
+
};
|
|
2276
|
+
/**
|
|
2277
|
+
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
2278
|
+
*/
|
|
2279
|
+
min_spend_per_package?: number;
|
|
2280
|
+
[k: string]: unknown | undefined;
|
|
2281
|
+
}
|
|
2282
|
+
/**
|
|
2283
|
+
* Optional pricing guidance for auction-based bidding
|
|
2284
|
+
*/
|
|
2285
|
+
export interface PriceGuidance7 {
|
|
2286
|
+
/**
|
|
2287
|
+
* 25th percentile of recent winning bids
|
|
2288
|
+
*/
|
|
2289
|
+
p25?: number;
|
|
2290
|
+
/**
|
|
2291
|
+
* Median of recent winning bids
|
|
2292
|
+
*/
|
|
2293
|
+
p50?: number;
|
|
2294
|
+
/**
|
|
2295
|
+
* 75th percentile of recent winning bids
|
|
2296
|
+
*/
|
|
2297
|
+
p75?: number;
|
|
2298
|
+
/**
|
|
2299
|
+
* 90th percentile of recent winning bids
|
|
2300
|
+
*/
|
|
2301
|
+
p90?: number;
|
|
2302
|
+
[k: string]: unknown | undefined;
|
|
2303
|
+
}
|
|
1868
2304
|
/**
|
|
1869
2305
|
* Measurement capabilities included with a product
|
|
1870
2306
|
*/
|
|
@@ -1910,9 +2346,17 @@ export interface ReportingCapabilities {
|
|
|
1910
2346
|
*/
|
|
1911
2347
|
supports_webhooks: boolean;
|
|
1912
2348
|
/**
|
|
1913
|
-
* Metrics available in reporting. Impressions and spend are always implicitly included.
|
|
2349
|
+
* 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.
|
|
1914
2350
|
*/
|
|
1915
2351
|
available_metrics: AvailableMetric[];
|
|
2352
|
+
/**
|
|
2353
|
+
* Whether this product supports creative-level metric breakdowns in delivery reporting (by_creative within by_package)
|
|
2354
|
+
*/
|
|
2355
|
+
supports_creative_breakdown?: boolean;
|
|
2356
|
+
/**
|
|
2357
|
+
* 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.
|
|
2358
|
+
*/
|
|
2359
|
+
date_range_support: 'date_range' | 'lifetime_only';
|
|
1916
2360
|
[k: string]: unknown | undefined;
|
|
1917
2361
|
}
|
|
1918
2362
|
/**
|
|
@@ -2017,6 +2461,10 @@ export interface Property {
|
|
|
2017
2461
|
* Tags for categorization and grouping (e.g., network membership, content categories)
|
|
2018
2462
|
*/
|
|
2019
2463
|
tags?: PropertyTag[];
|
|
2464
|
+
/**
|
|
2465
|
+
* Advertising channels this property supports (e.g., ['display', 'olv', 'social']). Publishers declare which channels their inventory aligns with. Properties may support multiple channels. See the Media Channel Taxonomy for definitions.
|
|
2466
|
+
*/
|
|
2467
|
+
supported_channels?: MediaChannel[];
|
|
2020
2468
|
/**
|
|
2021
2469
|
* Domain where adagents.json should be checked for authorization validation. Optional in adagents.json (file location implies domain).
|
|
2022
2470
|
*/
|
|
@@ -2025,7 +2473,7 @@ export interface Property {
|
|
|
2025
2473
|
/**
|
|
2026
2474
|
* Type of AdCP operation that triggered this webhook. Enables webhook handlers to route to appropriate processing logic.
|
|
2027
2475
|
*/
|
|
2028
|
-
export type TaskType = 'create_media_buy' | 'update_media_buy' | 'sync_creatives' | 'activate_signal' | 'get_signals' | 'create_property_list' | 'update_property_list' | 'get_property_list' | 'list_property_lists' | 'delete_property_list';
|
|
2476
|
+
export type TaskType = 'create_media_buy' | 'update_media_buy' | 'sync_creatives' | 'activate_signal' | 'get_signals' | 'create_property_list' | 'update_property_list' | 'get_property_list' | 'list_property_lists' | 'delete_property_list' | 'sync_accounts' | 'get_creative_delivery' | 'sync_event_sources' | 'log_event';
|
|
2029
2477
|
/**
|
|
2030
2478
|
* AdCP domain this task belongs to. Helps classify the operation type at a high level.
|
|
2031
2479
|
*/
|
|
@@ -2041,10 +2489,30 @@ export type AdCPAsyncResponseData = GetProductsResponse | GetProductsAsyncWorkin
|
|
|
2041
2489
|
/**
|
|
2042
2490
|
* Selects properties from a publisher's adagents.json. Used for both product definitions and agent authorization. Supports three selection patterns: all properties, specific IDs, or by tags.
|
|
2043
2491
|
*/
|
|
2492
|
+
export type ForecastRangeUnit = 'spend' | 'reach_freq' | 'weekly' | 'daily' | 'clicks' | 'conversions';
|
|
2493
|
+
/**
|
|
2494
|
+
* Method used to produce this forecast
|
|
2495
|
+
*/
|
|
2496
|
+
export type ForecastMethod = 'estimate' | 'modeled' | 'guaranteed';
|
|
2497
|
+
/**
|
|
2498
|
+
* Measurement system for the demographic field. Ensures buyer and seller agree on demographic notation.
|
|
2499
|
+
*/
|
|
2500
|
+
export type DemographicSystem1 = 'nielsen' | 'barb' | 'agf' | 'oztam' | 'mediametrie' | 'custom';
|
|
2501
|
+
/**
|
|
2502
|
+
* Unit of measurement for reach and audience_size metrics in this forecast. Required for cross-channel forecast comparison.
|
|
2503
|
+
*/
|
|
2504
|
+
export type ReachUnit = 'individuals' | 'households' | 'devices' | 'accounts' | 'cookies' | 'custom';
|
|
2505
|
+
/**
|
|
2506
|
+
* Response for completed or failed create_media_buy
|
|
2507
|
+
*/
|
|
2044
2508
|
export type CreateMediaBuyResponse = CreateMediaBuySuccess | CreateMediaBuyError;
|
|
2045
2509
|
/**
|
|
2046
2510
|
* Budget pacing strategy
|
|
2047
2511
|
*/
|
|
2512
|
+
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';
|
|
2513
|
+
/**
|
|
2514
|
+
* Response for completed or failed update_media_buy
|
|
2515
|
+
*/
|
|
2048
2516
|
export type UpdateMediaBuyResponse = UpdateMediaBuySuccess | UpdateMediaBuyError;
|
|
2049
2517
|
/**
|
|
2050
2518
|
* Response for completed or failed sync_creatives
|
|
@@ -2103,6 +2571,11 @@ export interface GetProductsResponse {
|
|
|
2103
2571
|
* [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.
|
|
2104
2572
|
*/
|
|
2105
2573
|
property_list_applied?: boolean;
|
|
2574
|
+
/**
|
|
2575
|
+
* 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.
|
|
2576
|
+
*/
|
|
2577
|
+
product_selectors_applied?: boolean;
|
|
2578
|
+
pagination?: PaginationResponse;
|
|
2106
2579
|
context?: ContextObject;
|
|
2107
2580
|
ext?: ExtensionObject;
|
|
2108
2581
|
[k: string]: unknown | undefined;
|
|
@@ -2159,6 +2632,7 @@ export interface Proposal {
|
|
|
2159
2632
|
* Explanation of how this proposal aligns with the campaign brief
|
|
2160
2633
|
*/
|
|
2161
2634
|
brief_alignment?: string;
|
|
2635
|
+
forecast?: DeliveryForecast1;
|
|
2162
2636
|
ext?: ExtensionObject;
|
|
2163
2637
|
[k: string]: unknown | undefined;
|
|
2164
2638
|
}
|
|
@@ -2190,6 +2664,113 @@ export interface ProductAllocation {
|
|
|
2190
2664
|
* Categorical tags for this allocation (e.g., 'desktop', 'german', 'mobile') - useful for grouping/filtering allocations by dimension
|
|
2191
2665
|
*/
|
|
2192
2666
|
tags?: string[];
|
|
2667
|
+
/**
|
|
2668
|
+
* Recommended time windows for this allocation in spot-plan proposals.
|
|
2669
|
+
*
|
|
2670
|
+
* @minItems 1
|
|
2671
|
+
*/
|
|
2672
|
+
daypart_targets?: [DaypartTarget, ...DaypartTarget[]];
|
|
2673
|
+
forecast?: DeliveryForecast;
|
|
2674
|
+
ext?: ExtensionObject;
|
|
2675
|
+
[k: string]: unknown | undefined;
|
|
2676
|
+
}
|
|
2677
|
+
/**
|
|
2678
|
+
* A time window for daypart targeting. Specifies days of week and an hour range. start_hour is inclusive, end_hour is exclusive (e.g., 6-10 = 6:00am to 10:00am). Follows the Google Ads AdScheduleInfo / DV360 DayPartTargeting pattern.
|
|
2679
|
+
*/
|
|
2680
|
+
export interface DeliveryForecast {
|
|
2681
|
+
/**
|
|
2682
|
+
* Forecasted delivery at one or more budget levels. A single point is a standard forecast; multiple points ordered by ascending budget form a curve showing how metrics scale with spend. Each point pairs a budget with metric ranges.
|
|
2683
|
+
*
|
|
2684
|
+
* @minItems 1
|
|
2685
|
+
*/
|
|
2686
|
+
points: [ForecastPoint, ...ForecastPoint[]];
|
|
2687
|
+
forecast_range_unit?: ForecastRangeUnit;
|
|
2688
|
+
method: ForecastMethod;
|
|
2689
|
+
/**
|
|
2690
|
+
* ISO 4217 currency code for monetary values in this forecast (spend, budget)
|
|
2691
|
+
*/
|
|
2692
|
+
currency: string;
|
|
2693
|
+
demographic_system?: DemographicSystem1;
|
|
2694
|
+
/**
|
|
2695
|
+
* Target demographic code within the specified demographic_system. For Nielsen: P18-49, M25-54, W35+. For BARB: ABC1 Adults, 16-34. For AGF: E 14-49.
|
|
2696
|
+
*/
|
|
2697
|
+
demographic?: string;
|
|
2698
|
+
reach_unit?: ReachUnit;
|
|
2699
|
+
/**
|
|
2700
|
+
* When this forecast was computed
|
|
2701
|
+
*/
|
|
2702
|
+
generated_at?: string;
|
|
2703
|
+
/**
|
|
2704
|
+
* When this forecast expires. After this time, the forecast should be refreshed. Forecast expiry does not affect proposal executability.
|
|
2705
|
+
*/
|
|
2706
|
+
valid_until?: string;
|
|
2707
|
+
ext?: ExtensionObject;
|
|
2708
|
+
[k: string]: unknown | undefined;
|
|
2709
|
+
}
|
|
2710
|
+
/**
|
|
2711
|
+
* A forecast at a specific budget level. A single point represents a standard forecast; multiple points ordered by ascending budget form a curve showing how delivery metrics scale with spend.
|
|
2712
|
+
*/
|
|
2713
|
+
export interface ForecastPoint {
|
|
2714
|
+
/**
|
|
2715
|
+
* Budget amount for this forecast point. For allocation-level forecasts, this is the absolute budget for that allocation (not the percentage). For proposal-level forecasts, this is the total proposal budget.
|
|
2716
|
+
*/
|
|
2717
|
+
budget: number;
|
|
2718
|
+
/**
|
|
2719
|
+
* Forecasted metric values at this budget level. Keys are either forecastable-metric values for delivery/engagement (impressions, reach, spend, etc.) or event-type values for outcomes (purchase, lead, app_install, etc.). Values are ForecastRange objects (low/mid/high). Use { "mid": value } for point estimates. Include spend when the platform predicts it will differ from budget.
|
|
2720
|
+
*/
|
|
2721
|
+
metrics: {
|
|
2722
|
+
[k: string]: ForecastRange | undefined;
|
|
2723
|
+
};
|
|
2724
|
+
[k: string]: unknown | undefined;
|
|
2725
|
+
}
|
|
2726
|
+
/**
|
|
2727
|
+
* A forecast value with optional low/high bounds. The mid value represents the most likely outcome. When low and high are provided, they represent conservative and optimistic estimates respectively.
|
|
2728
|
+
*/
|
|
2729
|
+
export interface ForecastRange {
|
|
2730
|
+
/**
|
|
2731
|
+
* Conservative (low-end) forecast value
|
|
2732
|
+
*/
|
|
2733
|
+
low?: number;
|
|
2734
|
+
/**
|
|
2735
|
+
* Expected (most likely) forecast value
|
|
2736
|
+
*/
|
|
2737
|
+
mid: number;
|
|
2738
|
+
/**
|
|
2739
|
+
* Optimistic (high-end) forecast value
|
|
2740
|
+
*/
|
|
2741
|
+
high?: number;
|
|
2742
|
+
[k: string]: unknown | undefined;
|
|
2743
|
+
}
|
|
2744
|
+
/**
|
|
2745
|
+
* Aggregate forecasted delivery metrics for the entire proposal. When both proposal-level and allocation-level forecasts are present, the proposal-level forecast is authoritative for total delivery estimation.
|
|
2746
|
+
*/
|
|
2747
|
+
export interface DeliveryForecast1 {
|
|
2748
|
+
/**
|
|
2749
|
+
* Forecasted delivery at one or more budget levels. A single point is a standard forecast; multiple points ordered by ascending budget form a curve showing how metrics scale with spend. Each point pairs a budget with metric ranges.
|
|
2750
|
+
*
|
|
2751
|
+
* @minItems 1
|
|
2752
|
+
*/
|
|
2753
|
+
points: [ForecastPoint, ...ForecastPoint[]];
|
|
2754
|
+
forecast_range_unit?: ForecastRangeUnit;
|
|
2755
|
+
method: ForecastMethod;
|
|
2756
|
+
/**
|
|
2757
|
+
* ISO 4217 currency code for monetary values in this forecast (spend, budget)
|
|
2758
|
+
*/
|
|
2759
|
+
currency: string;
|
|
2760
|
+
demographic_system?: DemographicSystem1;
|
|
2761
|
+
/**
|
|
2762
|
+
* Target demographic code within the specified demographic_system. For Nielsen: P18-49, M25-54, W35+. For BARB: ABC1 Adults, 16-34. For AGF: E 14-49.
|
|
2763
|
+
*/
|
|
2764
|
+
demographic?: string;
|
|
2765
|
+
reach_unit?: ReachUnit;
|
|
2766
|
+
/**
|
|
2767
|
+
* When this forecast was computed
|
|
2768
|
+
*/
|
|
2769
|
+
generated_at?: string;
|
|
2770
|
+
/**
|
|
2771
|
+
* When this forecast expires. After this time, the forecast should be refreshed. Forecast expiry does not affect proposal executability.
|
|
2772
|
+
*/
|
|
2773
|
+
valid_until?: string;
|
|
2193
2774
|
ext?: ExtensionObject;
|
|
2194
2775
|
[k: string]: unknown | undefined;
|
|
2195
2776
|
}
|
|
@@ -2225,6 +2806,23 @@ export interface Error {
|
|
|
2225
2806
|
};
|
|
2226
2807
|
[k: string]: unknown | undefined;
|
|
2227
2808
|
}
|
|
2809
|
+
/**
|
|
2810
|
+
* Standard cursor-based pagination metadata for list responses
|
|
2811
|
+
*/
|
|
2812
|
+
export interface PaginationResponse {
|
|
2813
|
+
/**
|
|
2814
|
+
* Whether more results are available beyond this page
|
|
2815
|
+
*/
|
|
2816
|
+
has_more: boolean;
|
|
2817
|
+
/**
|
|
2818
|
+
* Opaque cursor to pass in the next request to fetch the next page. Only present when has_more is true.
|
|
2819
|
+
*/
|
|
2820
|
+
cursor?: string;
|
|
2821
|
+
/**
|
|
2822
|
+
* Total number of items matching the query across all pages. Optional because not all backends can efficiently compute this.
|
|
2823
|
+
*/
|
|
2824
|
+
total_count?: number;
|
|
2825
|
+
}
|
|
2228
2826
|
/**
|
|
2229
2827
|
* 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.
|
|
2230
2828
|
*/
|
|
@@ -2523,7 +3121,7 @@ export interface Account1 {
|
|
|
2523
3121
|
*/
|
|
2524
3122
|
account_id: string;
|
|
2525
3123
|
/**
|
|
2526
|
-
* Human-readable account name (e.g., '
|
|
3124
|
+
* Human-readable account name (e.g., 'Acme', 'Acme c/o Pinnacle')
|
|
2527
3125
|
*/
|
|
2528
3126
|
name: string;
|
|
2529
3127
|
/**
|
|
@@ -2535,9 +3133,25 @@ export interface Account1 {
|
|
|
2535
3133
|
*/
|
|
2536
3134
|
billing_proxy?: string;
|
|
2537
3135
|
/**
|
|
2538
|
-
* Account status
|
|
3136
|
+
* Account status. pending_approval: seller reviewing (credit, contracts). payment_required: credit limit reached or funds depleted. suspended: was active, now paused. closed: terminated.
|
|
3137
|
+
*/
|
|
3138
|
+
status: 'active' | 'pending_approval' | 'payment_required' | 'suspended' | 'closed';
|
|
3139
|
+
/**
|
|
3140
|
+
* House domain where brand.json is hosted. Canonical identity anchor for the brand.
|
|
3141
|
+
*/
|
|
3142
|
+
house?: string;
|
|
3143
|
+
/**
|
|
3144
|
+
* Brand ID within the house portfolio (from brand.json)
|
|
2539
3145
|
*/
|
|
2540
|
-
|
|
3146
|
+
brand_id?: string;
|
|
3147
|
+
/**
|
|
3148
|
+
* Domain of the entity operating this account
|
|
3149
|
+
*/
|
|
3150
|
+
operator?: string;
|
|
3151
|
+
/**
|
|
3152
|
+
* Who is invoiced on this account. brand: seller invoices the brand directly. operator: seller invoices the operator (agency). agent: agent consolidates billing.
|
|
3153
|
+
*/
|
|
3154
|
+
billing?: 'brand' | 'operator' | 'agent';
|
|
2541
3155
|
/**
|
|
2542
3156
|
* Identifier for the rate card applied to this account
|
|
2543
3157
|
*/
|
|
@@ -2554,6 +3168,7 @@ export interface Account1 {
|
|
|
2554
3168
|
currency: string;
|
|
2555
3169
|
};
|
|
2556
3170
|
ext?: ExtensionObject;
|
|
3171
|
+
[k: string]: unknown | undefined;
|
|
2557
3172
|
}
|
|
2558
3173
|
/**
|
|
2559
3174
|
* Error response - operation failed completely, no creatives were processed
|