@adcp/client 3.11.1 → 3.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/adcp.js +32 -1
- 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/auth/index.d.ts +4 -0
- package/dist/lib/auth/index.d.ts.map +1 -1
- package/dist/lib/auth/index.js +5 -0
- package/dist/lib/auth/index.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 +605 -45
- 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 +4455 -1920
- package/dist/lib/types/schemas.generated.d.ts.map +1 -1
- package/dist/lib/types/schemas.generated.js +725 -156
- package/dist/lib/types/schemas.generated.js.map +1 -1
- package/dist/lib/types/tools.generated.d.ts +2384 -454
- package/dist/lib/types/tools.generated.d.ts.map +1 -1
- package/dist/lib/types/tools.generated.js +0 -3
- package/dist/lib/types/tools.generated.js.map +1 -1
- package/dist/lib/utils/capabilities.d.ts +4 -0
- package/dist/lib/utils/capabilities.d.ts.map +1 -1
- package/dist/lib/utils/capabilities.js +6 -1
- package/dist/lib/utils/capabilities.js.map +1 -1
- package/dist/lib/utils/index.d.ts +2 -1
- package/dist/lib/utils/index.d.ts.map +1 -1
- package/dist/lib/utils/index.js +6 -1
- package/dist/lib/utils/index.js.map +1 -1
- package/dist/lib/utils/pagination.d.ts +31 -0
- package/dist/lib/utils/pagination.d.ts.map +1 -0
- package/dist/lib/utils/pagination.js +51 -0
- package/dist/lib/utils/pagination.js.map +1 -0
- package/dist/lib/utils/pricing-adapter.d.ts +4 -0
- package/dist/lib/utils/pricing-adapter.d.ts.map +1 -1
- package/dist/lib/utils/pricing-adapter.js +7 -0
- package/dist/lib/utils/pricing-adapter.js.map +1 -1
- package/dist/lib/version.d.ts +3 -3
- package/dist/lib/version.d.ts.map +1 -1
- package/dist/lib/version.js +3 -3
- package/dist/lib/version.js.map +1 -1
- package/package.json +1 -1
|
@@ -10,10 +10,30 @@ 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
|
+
* Methods for verifying user age for compliance. Does not include 'inferred' as it is not accepted for regulatory compliance.
|
|
27
|
+
*/
|
|
28
|
+
export type AgeVerificationMethod = 'facial_age_estimation' | 'id_document' | 'digital_id' | 'credit_card' | 'world_id';
|
|
29
|
+
/**
|
|
30
|
+
* Operating system platforms for device targeting. Browser values from Sec-CH-UA-Platform standard, extended for CTV.
|
|
31
|
+
*/
|
|
32
|
+
export type DevicePlatform = 'ios' | 'android' | 'windows' | 'macos' | 'linux' | 'chromeos' | 'tvos' | 'tizen' | 'webos' | 'fire_os' | 'roku_os' | 'unknown';
|
|
33
|
+
/**
|
|
34
|
+
* Event type to optimize for (e.g. purchase, lead)
|
|
35
|
+
*/
|
|
36
|
+
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';
|
|
17
37
|
/**
|
|
18
38
|
* Represents a purchased advertising campaign
|
|
19
39
|
*/
|
|
@@ -75,9 +95,25 @@ export interface Account {
|
|
|
75
95
|
*/
|
|
76
96
|
billing_proxy?: string;
|
|
77
97
|
/**
|
|
78
|
-
* Account status
|
|
98
|
+
* Account status. pending_approval: seller reviewing (credit, contracts). payment_required: credit limit reached or funds depleted. suspended: was active, now paused. closed: terminated.
|
|
99
|
+
*/
|
|
100
|
+
status: 'active' | 'pending_approval' | 'payment_required' | 'suspended' | 'closed';
|
|
101
|
+
/**
|
|
102
|
+
* House domain where brand.json is hosted. Canonical identity anchor for the brand.
|
|
103
|
+
*/
|
|
104
|
+
house?: string;
|
|
105
|
+
/**
|
|
106
|
+
* Brand ID within the house portfolio (from brand.json)
|
|
79
107
|
*/
|
|
80
|
-
|
|
108
|
+
brand_id?: string;
|
|
109
|
+
/**
|
|
110
|
+
* Domain of the entity operating this account
|
|
111
|
+
*/
|
|
112
|
+
operator?: string;
|
|
113
|
+
/**
|
|
114
|
+
* Who is invoiced on this account. brand: seller invoices the brand directly. operator: seller invoices the operator (agency). agent: agent consolidates billing.
|
|
115
|
+
*/
|
|
116
|
+
billing?: 'brand' | 'operator' | 'agent';
|
|
81
117
|
/**
|
|
82
118
|
* Identifier for the rate card applied to this account
|
|
83
119
|
*/
|
|
@@ -94,6 +130,7 @@ export interface Account {
|
|
|
94
130
|
currency: string;
|
|
95
131
|
};
|
|
96
132
|
ext?: ExtensionObject;
|
|
133
|
+
[k: string]: unknown | undefined;
|
|
97
134
|
}
|
|
98
135
|
/**
|
|
99
136
|
* 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.
|
|
@@ -143,6 +180,7 @@ export interface Package {
|
|
|
143
180
|
* Format IDs that creative assets will be provided for this package
|
|
144
181
|
*/
|
|
145
182
|
format_ids_to_provide?: FormatID[];
|
|
183
|
+
optimization_goal?: OptimizationGoal;
|
|
146
184
|
/**
|
|
147
185
|
* Whether this package is paused by the buyer. Paused packages do not deliver impressions. Defaults to false.
|
|
148
186
|
*/
|
|
@@ -151,41 +189,133 @@ export interface Package {
|
|
|
151
189
|
[k: string]: unknown | undefined;
|
|
152
190
|
}
|
|
153
191
|
/**
|
|
154
|
-
* Optional
|
|
192
|
+
* Optional restriction overlays for media buys. Most targeting should be expressed in the brief and handled by the publisher. These fields are for functional restrictions: geographic (RCT testing, regulatory compliance), age verification (alcohol, gambling), device platform (app compatibility), and language (localization).
|
|
155
193
|
*/
|
|
156
194
|
export interface TargetingOverlay {
|
|
157
195
|
/**
|
|
158
196
|
* Restrict delivery to specific countries. ISO 3166-1 alpha-2 codes (e.g., 'US', 'GB', 'DE').
|
|
197
|
+
*
|
|
198
|
+
* @minItems 1
|
|
199
|
+
*/
|
|
200
|
+
geo_countries?: [string, ...string[]];
|
|
201
|
+
/**
|
|
202
|
+
* Exclude specific countries from delivery. ISO 3166-1 alpha-2 codes (e.g., 'US', 'GB', 'DE').
|
|
203
|
+
*
|
|
204
|
+
* @minItems 1
|
|
159
205
|
*/
|
|
160
|
-
|
|
206
|
+
geo_countries_exclude?: [string, ...string[]];
|
|
161
207
|
/**
|
|
162
208
|
* Restrict delivery to specific regions/states. ISO 3166-2 subdivision codes (e.g., 'US-CA', 'GB-SCT').
|
|
209
|
+
*
|
|
210
|
+
* @minItems 1
|
|
163
211
|
*/
|
|
164
|
-
geo_regions?: string[];
|
|
212
|
+
geo_regions?: [string, ...string[]];
|
|
213
|
+
/**
|
|
214
|
+
* Exclude specific regions/states from delivery. ISO 3166-2 subdivision codes (e.g., 'US-CA', 'GB-SCT').
|
|
215
|
+
*
|
|
216
|
+
* @minItems 1
|
|
217
|
+
*/
|
|
218
|
+
geo_regions_exclude?: [string, ...string[]];
|
|
165
219
|
/**
|
|
166
220
|
* Restrict delivery to specific metro areas. Each entry specifies the classification system and target values. Seller must declare supported systems in get_adcp_capabilities.
|
|
221
|
+
*
|
|
222
|
+
* @minItems 1
|
|
167
223
|
*/
|
|
168
|
-
geo_metros?:
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
224
|
+
geo_metros?: [
|
|
225
|
+
{
|
|
226
|
+
system: MetroAreaSystem;
|
|
227
|
+
/**
|
|
228
|
+
* Metro codes within the system (e.g., ['501', '602'] for Nielsen DMAs)
|
|
229
|
+
*
|
|
230
|
+
* @minItems 1
|
|
231
|
+
*/
|
|
232
|
+
values: [string, ...string[]];
|
|
233
|
+
},
|
|
234
|
+
...{
|
|
235
|
+
system: MetroAreaSystem;
|
|
236
|
+
/**
|
|
237
|
+
* Metro codes within the system (e.g., ['501', '602'] for Nielsen DMAs)
|
|
238
|
+
*
|
|
239
|
+
* @minItems 1
|
|
240
|
+
*/
|
|
241
|
+
values: [string, ...string[]];
|
|
242
|
+
}[]
|
|
243
|
+
];
|
|
244
|
+
/**
|
|
245
|
+
* Exclude specific metro areas from delivery. Each entry specifies the classification system and excluded values. Seller must declare supported systems in get_adcp_capabilities.
|
|
246
|
+
*
|
|
247
|
+
* @minItems 1
|
|
248
|
+
*/
|
|
249
|
+
geo_metros_exclude?: [
|
|
250
|
+
{
|
|
251
|
+
system: MetroAreaSystem1;
|
|
252
|
+
/**
|
|
253
|
+
* Metro codes to exclude within the system (e.g., ['501', '602'] for Nielsen DMAs)
|
|
254
|
+
*
|
|
255
|
+
* @minItems 1
|
|
256
|
+
*/
|
|
257
|
+
values: [string, ...string[]];
|
|
258
|
+
},
|
|
259
|
+
...{
|
|
260
|
+
system: MetroAreaSystem1;
|
|
261
|
+
/**
|
|
262
|
+
* Metro codes to exclude within the system (e.g., ['501', '602'] for Nielsen DMAs)
|
|
263
|
+
*
|
|
264
|
+
* @minItems 1
|
|
265
|
+
*/
|
|
266
|
+
values: [string, ...string[]];
|
|
267
|
+
}[]
|
|
268
|
+
];
|
|
177
269
|
/**
|
|
178
270
|
* Restrict delivery to specific postal areas. Each entry specifies the postal system and target values. Seller must declare supported systems in get_adcp_capabilities.
|
|
271
|
+
*
|
|
272
|
+
* @minItems 1
|
|
179
273
|
*/
|
|
180
|
-
geo_postal_areas?:
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
274
|
+
geo_postal_areas?: [
|
|
275
|
+
{
|
|
276
|
+
system: PostalCodeSystem;
|
|
277
|
+
/**
|
|
278
|
+
* Postal codes within the system (e.g., ['10001', '10002'] for us_zip)
|
|
279
|
+
*
|
|
280
|
+
* @minItems 1
|
|
281
|
+
*/
|
|
282
|
+
values: [string, ...string[]];
|
|
283
|
+
},
|
|
284
|
+
...{
|
|
285
|
+
system: PostalCodeSystem;
|
|
286
|
+
/**
|
|
287
|
+
* Postal codes within the system (e.g., ['10001', '10002'] for us_zip)
|
|
288
|
+
*
|
|
289
|
+
* @minItems 1
|
|
290
|
+
*/
|
|
291
|
+
values: [string, ...string[]];
|
|
292
|
+
}[]
|
|
293
|
+
];
|
|
294
|
+
/**
|
|
295
|
+
* Exclude specific postal areas from delivery. Each entry specifies the postal system and excluded values. Seller must declare supported systems in get_adcp_capabilities.
|
|
296
|
+
*
|
|
297
|
+
* @minItems 1
|
|
298
|
+
*/
|
|
299
|
+
geo_postal_areas_exclude?: [
|
|
300
|
+
{
|
|
301
|
+
system: PostalCodeSystem1;
|
|
302
|
+
/**
|
|
303
|
+
* Postal codes to exclude within the system (e.g., ['10001', '10002'] for us_zip)
|
|
304
|
+
*
|
|
305
|
+
* @minItems 1
|
|
306
|
+
*/
|
|
307
|
+
values: [string, ...string[]];
|
|
308
|
+
},
|
|
309
|
+
...{
|
|
310
|
+
system: PostalCodeSystem1;
|
|
311
|
+
/**
|
|
312
|
+
* Postal codes to exclude within the system (e.g., ['10001', '10002'] for us_zip)
|
|
313
|
+
*
|
|
314
|
+
* @minItems 1
|
|
315
|
+
*/
|
|
316
|
+
values: [string, ...string[]];
|
|
317
|
+
}[]
|
|
318
|
+
];
|
|
189
319
|
/**
|
|
190
320
|
* AXE segment ID to include for targeting
|
|
191
321
|
*/
|
|
@@ -196,6 +326,37 @@ export interface TargetingOverlay {
|
|
|
196
326
|
axe_exclude_segment?: string;
|
|
197
327
|
frequency_cap?: FrequencyCap;
|
|
198
328
|
property_list?: PropertyListReference;
|
|
329
|
+
/**
|
|
330
|
+
* Age restriction for compliance. Use for legal requirements (alcohol, gambling), not audience targeting.
|
|
331
|
+
*/
|
|
332
|
+
age_restriction?: {
|
|
333
|
+
/**
|
|
334
|
+
* Minimum age required
|
|
335
|
+
*/
|
|
336
|
+
min: number;
|
|
337
|
+
/**
|
|
338
|
+
* Whether verified age (not inferred) is required for compliance
|
|
339
|
+
*/
|
|
340
|
+
verification_required?: boolean;
|
|
341
|
+
/**
|
|
342
|
+
* Accepted verification methods. If omitted, any method the platform supports is acceptable.
|
|
343
|
+
*
|
|
344
|
+
* @minItems 1
|
|
345
|
+
*/
|
|
346
|
+
accepted_methods?: [AgeVerificationMethod, ...AgeVerificationMethod[]];
|
|
347
|
+
};
|
|
348
|
+
/**
|
|
349
|
+
* Restrict to specific platforms. Use for technical compatibility (app only works on iOS). Values from Sec-CH-UA-Platform standard, extended for CTV.
|
|
350
|
+
*
|
|
351
|
+
* @minItems 1
|
|
352
|
+
*/
|
|
353
|
+
device_platform?: [DevicePlatform, ...DevicePlatform[]];
|
|
354
|
+
/**
|
|
355
|
+
* Restrict to users with specific language preferences. ISO 639-1 codes (e.g., 'en', 'es', 'fr').
|
|
356
|
+
*
|
|
357
|
+
* @minItems 1
|
|
358
|
+
*/
|
|
359
|
+
language?: [string, ...string[]];
|
|
199
360
|
[k: string]: unknown | undefined;
|
|
200
361
|
}
|
|
201
362
|
/**
|
|
@@ -271,6 +432,39 @@ export interface FormatID {
|
|
|
271
432
|
duration_ms?: number;
|
|
272
433
|
[k: string]: unknown | undefined;
|
|
273
434
|
}
|
|
435
|
+
/**
|
|
436
|
+
* 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.
|
|
437
|
+
*/
|
|
438
|
+
export interface OptimizationGoal {
|
|
439
|
+
/**
|
|
440
|
+
* Event source to optimize against (must be configured on this account via sync_event_sources)
|
|
441
|
+
*/
|
|
442
|
+
event_source_id: string;
|
|
443
|
+
event_type: EventType;
|
|
444
|
+
/**
|
|
445
|
+
* Target return on ad spend (e.g. 4.0 = $4 conversion value per $1 spent). Mutually exclusive with target_cpa.
|
|
446
|
+
*/
|
|
447
|
+
target_roas?: number;
|
|
448
|
+
/**
|
|
449
|
+
* Target cost per acquisition in the buy currency. Mutually exclusive with target_roas.
|
|
450
|
+
*/
|
|
451
|
+
target_cpa?: number;
|
|
452
|
+
/**
|
|
453
|
+
* 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.
|
|
454
|
+
*/
|
|
455
|
+
attribution_window?: {
|
|
456
|
+
/**
|
|
457
|
+
* Click-through attribution window (e.g. '7d', '28d', '30d')
|
|
458
|
+
*/
|
|
459
|
+
click_through: string;
|
|
460
|
+
/**
|
|
461
|
+
* View-through attribution window (e.g. '1d', '7d')
|
|
462
|
+
*/
|
|
463
|
+
view_through?: string;
|
|
464
|
+
[k: string]: unknown | undefined;
|
|
465
|
+
};
|
|
466
|
+
[k: string]: unknown | undefined;
|
|
467
|
+
}
|
|
274
468
|
/**
|
|
275
469
|
* JavaScript module type
|
|
276
470
|
*/
|
|
@@ -300,6 +494,14 @@ export type VASTAsset = {
|
|
|
300
494
|
* Tracking events supported by this VAST tag
|
|
301
495
|
*/
|
|
302
496
|
tracking_events?: VASTTrackingEvent[];
|
|
497
|
+
/**
|
|
498
|
+
* URL to captions file (WebVTT, SRT, etc.)
|
|
499
|
+
*/
|
|
500
|
+
captions_url?: string;
|
|
501
|
+
/**
|
|
502
|
+
* URL to audio description track for visually impaired users
|
|
503
|
+
*/
|
|
504
|
+
audio_description_url?: string;
|
|
303
505
|
[k: string]: unknown | undefined;
|
|
304
506
|
} | {
|
|
305
507
|
/**
|
|
@@ -323,6 +525,14 @@ export type VASTAsset = {
|
|
|
323
525
|
* Tracking events supported by this VAST tag
|
|
324
526
|
*/
|
|
325
527
|
tracking_events?: VASTTrackingEvent[];
|
|
528
|
+
/**
|
|
529
|
+
* URL to captions file (WebVTT, SRT, etc.)
|
|
530
|
+
*/
|
|
531
|
+
captions_url?: string;
|
|
532
|
+
/**
|
|
533
|
+
* URL to audio description track for visually impaired users
|
|
534
|
+
*/
|
|
535
|
+
audio_description_url?: string;
|
|
326
536
|
[k: string]: unknown | undefined;
|
|
327
537
|
};
|
|
328
538
|
/**
|
|
@@ -362,6 +572,10 @@ export type DAASTAsset = {
|
|
|
362
572
|
* Whether companion display ads are included
|
|
363
573
|
*/
|
|
364
574
|
companion_ads?: boolean;
|
|
575
|
+
/**
|
|
576
|
+
* URL to text transcript of the audio content
|
|
577
|
+
*/
|
|
578
|
+
transcript_url?: string;
|
|
365
579
|
[k: string]: unknown | undefined;
|
|
366
580
|
} | {
|
|
367
581
|
/**
|
|
@@ -385,6 +599,10 @@ export type DAASTAsset = {
|
|
|
385
599
|
* Whether companion display ads are included
|
|
386
600
|
*/
|
|
387
601
|
companion_ads?: boolean;
|
|
602
|
+
/**
|
|
603
|
+
* URL to text transcript of the audio content
|
|
604
|
+
*/
|
|
605
|
+
transcript_url?: string;
|
|
388
606
|
[k: string]: unknown | undefined;
|
|
389
607
|
};
|
|
390
608
|
/**
|
|
@@ -605,6 +823,18 @@ export interface VideoAsset {
|
|
|
605
823
|
* True peak level in dBFS
|
|
606
824
|
*/
|
|
607
825
|
audio_true_peak_dbfs?: number;
|
|
826
|
+
/**
|
|
827
|
+
* URL to captions file (WebVTT, SRT, etc.)
|
|
828
|
+
*/
|
|
829
|
+
captions_url?: string;
|
|
830
|
+
/**
|
|
831
|
+
* URL to text transcript of the video content
|
|
832
|
+
*/
|
|
833
|
+
transcript_url?: string;
|
|
834
|
+
/**
|
|
835
|
+
* URL to audio description track for visually impaired users
|
|
836
|
+
*/
|
|
837
|
+
audio_description_url?: string;
|
|
608
838
|
[k: string]: unknown | undefined;
|
|
609
839
|
}
|
|
610
840
|
/**
|
|
@@ -655,6 +885,10 @@ export interface AudioAsset {
|
|
|
655
885
|
* True peak level in dBFS
|
|
656
886
|
*/
|
|
657
887
|
true_peak_dbfs?: number;
|
|
888
|
+
/**
|
|
889
|
+
* URL to text transcript of the audio content
|
|
890
|
+
*/
|
|
891
|
+
transcript_url?: string;
|
|
658
892
|
[k: string]: unknown | undefined;
|
|
659
893
|
}
|
|
660
894
|
/**
|
|
@@ -683,6 +917,27 @@ export interface HTMLAsset {
|
|
|
683
917
|
* HTML version (e.g., 'HTML5')
|
|
684
918
|
*/
|
|
685
919
|
version?: string;
|
|
920
|
+
/**
|
|
921
|
+
* Self-declared accessibility properties for this opaque creative
|
|
922
|
+
*/
|
|
923
|
+
accessibility?: {
|
|
924
|
+
/**
|
|
925
|
+
* Text alternative describing the creative content
|
|
926
|
+
*/
|
|
927
|
+
alt_text?: string;
|
|
928
|
+
/**
|
|
929
|
+
* Whether the creative can be fully operated via keyboard
|
|
930
|
+
*/
|
|
931
|
+
keyboard_navigable?: boolean;
|
|
932
|
+
/**
|
|
933
|
+
* Whether the creative respects prefers-reduced-motion or provides pause/stop controls
|
|
934
|
+
*/
|
|
935
|
+
motion_control?: boolean;
|
|
936
|
+
/**
|
|
937
|
+
* Whether the creative has been tested with screen readers
|
|
938
|
+
*/
|
|
939
|
+
screen_reader_tested?: boolean;
|
|
940
|
+
};
|
|
686
941
|
[k: string]: unknown | undefined;
|
|
687
942
|
}
|
|
688
943
|
/**
|
|
@@ -708,6 +963,27 @@ export interface JavaScriptAsset {
|
|
|
708
963
|
*/
|
|
709
964
|
content: string;
|
|
710
965
|
module_type?: JavaScriptModuleType;
|
|
966
|
+
/**
|
|
967
|
+
* Self-declared accessibility properties for this opaque creative
|
|
968
|
+
*/
|
|
969
|
+
accessibility?: {
|
|
970
|
+
/**
|
|
971
|
+
* Text alternative describing the creative content
|
|
972
|
+
*/
|
|
973
|
+
alt_text?: string;
|
|
974
|
+
/**
|
|
975
|
+
* Whether the creative can be fully operated via keyboard
|
|
976
|
+
*/
|
|
977
|
+
keyboard_navigable?: boolean;
|
|
978
|
+
/**
|
|
979
|
+
* Whether the creative respects prefers-reduced-motion or provides pause/stop controls
|
|
980
|
+
*/
|
|
981
|
+
motion_control?: boolean;
|
|
982
|
+
/**
|
|
983
|
+
* Whether the creative has been tested with screen readers
|
|
984
|
+
*/
|
|
985
|
+
screen_reader_tested?: boolean;
|
|
986
|
+
};
|
|
711
987
|
[k: string]: unknown | undefined;
|
|
712
988
|
}
|
|
713
989
|
/**
|
|
@@ -761,7 +1037,7 @@ export interface BrandManifest {
|
|
|
761
1037
|
*/
|
|
762
1038
|
name: string;
|
|
763
1039
|
/**
|
|
764
|
-
* Brand logo assets with
|
|
1040
|
+
* Brand logo assets with structured fields for orientation, background compatibility, and variant type. Use the orientation, background, and variant enum fields for reliable filtering by creative agents.
|
|
765
1041
|
*/
|
|
766
1042
|
logos?: {
|
|
767
1043
|
/**
|
|
@@ -769,9 +1045,25 @@ export interface BrandManifest {
|
|
|
769
1045
|
*/
|
|
770
1046
|
url: string;
|
|
771
1047
|
/**
|
|
772
|
-
*
|
|
1048
|
+
* Logo aspect ratio orientation. square: ~1:1, horizontal: wide, vertical: tall, stacked: vertically arranged elements
|
|
1049
|
+
*/
|
|
1050
|
+
orientation?: 'square' | 'horizontal' | 'vertical' | 'stacked';
|
|
1051
|
+
/**
|
|
1052
|
+
* Background compatibility. dark-bg: use on dark backgrounds, light-bg: use on light backgrounds, transparent-bg: has transparent background
|
|
1053
|
+
*/
|
|
1054
|
+
background?: 'dark-bg' | 'light-bg' | 'transparent-bg';
|
|
1055
|
+
/**
|
|
1056
|
+
* Logo variant type. primary: main logo, secondary: alternative, icon: symbol only, wordmark: text only, full-lockup: complete logo
|
|
1057
|
+
*/
|
|
1058
|
+
variant?: 'primary' | 'secondary' | 'icon' | 'wordmark' | 'full-lockup';
|
|
1059
|
+
/**
|
|
1060
|
+
* Additional semantic tags for custom categorization beyond the standard orientation, background, and variant fields.
|
|
773
1061
|
*/
|
|
774
1062
|
tags?: string[];
|
|
1063
|
+
/**
|
|
1064
|
+
* Human-readable description of when to use this logo variant (e.g., 'Primary logo for use on light backgrounds', 'Icon-only variant for small formats')
|
|
1065
|
+
*/
|
|
1066
|
+
usage?: string;
|
|
775
1067
|
/**
|
|
776
1068
|
* Logo width in pixels
|
|
777
1069
|
*/
|
|
@@ -782,29 +1074,29 @@ export interface BrandManifest {
|
|
|
782
1074
|
height?: number;
|
|
783
1075
|
}[];
|
|
784
1076
|
/**
|
|
785
|
-
* Brand color palette
|
|
1077
|
+
* Brand color palette. Each role accepts a single hex color or an array of hex colors for brands with multiple values per role.
|
|
786
1078
|
*/
|
|
787
1079
|
colors?: {
|
|
788
1080
|
/**
|
|
789
|
-
* Primary brand color
|
|
1081
|
+
* Primary brand color(s)
|
|
790
1082
|
*/
|
|
791
|
-
primary?: string;
|
|
1083
|
+
primary?: string | [string, ...string[]];
|
|
792
1084
|
/**
|
|
793
|
-
* Secondary brand color
|
|
1085
|
+
* Secondary brand color(s)
|
|
794
1086
|
*/
|
|
795
|
-
secondary?: string;
|
|
1087
|
+
secondary?: string | [string, ...string[]];
|
|
796
1088
|
/**
|
|
797
|
-
* Accent color
|
|
1089
|
+
* Accent color(s)
|
|
798
1090
|
*/
|
|
799
|
-
accent?: string;
|
|
1091
|
+
accent?: string | [string, ...string[]];
|
|
800
1092
|
/**
|
|
801
|
-
* Background color
|
|
1093
|
+
* Background color(s)
|
|
802
1094
|
*/
|
|
803
|
-
background?: string;
|
|
1095
|
+
background?: string | [string, ...string[]];
|
|
804
1096
|
/**
|
|
805
|
-
* Text color
|
|
1097
|
+
* Text color(s)
|
|
806
1098
|
*/
|
|
807
|
-
text?: string;
|
|
1099
|
+
text?: string | [string, ...string[]];
|
|
808
1100
|
};
|
|
809
1101
|
/**
|
|
810
1102
|
* Brand typography guidelines
|
|
@@ -824,9 +1116,26 @@ export interface BrandManifest {
|
|
|
824
1116
|
font_urls?: string[];
|
|
825
1117
|
};
|
|
826
1118
|
/**
|
|
827
|
-
* Brand voice and messaging tone
|
|
1119
|
+
* Brand voice and messaging tone guidelines for creative agents.
|
|
828
1120
|
*/
|
|
829
|
-
tone?: string
|
|
1121
|
+
tone?: string | {
|
|
1122
|
+
/**
|
|
1123
|
+
* High-level voice descriptor (e.g., 'warm and inviting', 'professional and trustworthy')
|
|
1124
|
+
*/
|
|
1125
|
+
voice?: string;
|
|
1126
|
+
/**
|
|
1127
|
+
* Personality traits that characterize the brand voice
|
|
1128
|
+
*/
|
|
1129
|
+
attributes?: string[];
|
|
1130
|
+
/**
|
|
1131
|
+
* Specific guidance for copy generation - what TO do
|
|
1132
|
+
*/
|
|
1133
|
+
dos?: string[];
|
|
1134
|
+
/**
|
|
1135
|
+
* Guardrails to avoid brand violations - what NOT to do
|
|
1136
|
+
*/
|
|
1137
|
+
donts?: string[];
|
|
1138
|
+
};
|
|
830
1139
|
/**
|
|
831
1140
|
* Brand voice configuration for audio/conversational experiences
|
|
832
1141
|
*/
|
|
@@ -1026,6 +1335,10 @@ export interface BrandManifest {
|
|
|
1026
1335
|
* Selectors to choose which products/offerings from the brand manifest product catalog to promote
|
|
1027
1336
|
*/
|
|
1028
1337
|
export interface PromotedProducts {
|
|
1338
|
+
/**
|
|
1339
|
+
* GTIN product identifiers for cross-retailer catalog matching. Accepts standard GTIN formats (GTIN-8, UPC-A/GTIN-12, EAN-13/GTIN-13, GTIN-14).
|
|
1340
|
+
*/
|
|
1341
|
+
manifest_gtins?: string[];
|
|
1029
1342
|
/**
|
|
1030
1343
|
* Direct product SKU references from the brand manifest product catalog
|
|
1031
1344
|
*/
|
|
@@ -1170,6 +1483,10 @@ export type PropertyID = string;
|
|
|
1170
1483
|
* Tag for categorizing publisher properties. Must be lowercase alphanumeric with underscores only.
|
|
1171
1484
|
*/
|
|
1172
1485
|
export type PropertyTag = string;
|
|
1486
|
+
/**
|
|
1487
|
+
* 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.
|
|
1488
|
+
*/
|
|
1489
|
+
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';
|
|
1173
1490
|
/**
|
|
1174
1491
|
* Type of inventory delivery
|
|
1175
1492
|
*/
|
|
@@ -1177,15 +1494,15 @@ export type DeliveryType = 'guaranteed' | 'non_guaranteed';
|
|
|
1177
1494
|
/**
|
|
1178
1495
|
* 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).
|
|
1179
1496
|
*/
|
|
1180
|
-
export type PricingOption = CPMPricingOption | VCPMPricingOption | CPCPricingOption | CPCVPricingOption | CPVPricingOption | CPPPricingOption | FlatRatePricingOption;
|
|
1497
|
+
export type PricingOption = CPMPricingOption | VCPMPricingOption | CPCPricingOption | CPCVPricingOption | CPVPricingOption | CPPPricingOption | CPAPricingOption | FlatRatePricingOption | TimeBasedPricingOption;
|
|
1181
1498
|
/**
|
|
1182
|
-
*
|
|
1499
|
+
* Standard marketing event types for event logging, aligned with IAB ECAPI
|
|
1183
1500
|
*/
|
|
1184
1501
|
export type ReportingFrequency = 'hourly' | 'daily' | 'monthly';
|
|
1185
1502
|
/**
|
|
1186
1503
|
* Standard delivery and performance metrics available for reporting
|
|
1187
1504
|
*/
|
|
1188
|
-
export type AvailableMetric = 'impressions' | 'spend' | 'clicks' | 'ctr' | 'video_completions' | 'completion_rate' | 'conversions' | 'viewability' | 'engagement_rate';
|
|
1505
|
+
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';
|
|
1189
1506
|
/**
|
|
1190
1507
|
* Co-branding requirement
|
|
1191
1508
|
*/
|
|
@@ -1194,6 +1511,56 @@ export type CoBrandingRequirement = 'required' | 'optional' | 'none';
|
|
|
1194
1511
|
* Landing page requirements
|
|
1195
1512
|
*/
|
|
1196
1513
|
export type LandingPageRequirement = 'any' | 'retailer_site_only' | 'must_include_retailer';
|
|
1514
|
+
/**
|
|
1515
|
+
* Selects signals from a data provider's adagents.json catalog. Used for product definitions and agent authorization. Supports three selection patterns: all signals, specific IDs, or by tags.
|
|
1516
|
+
*/
|
|
1517
|
+
export type DataProviderSignalSelector = {
|
|
1518
|
+
/**
|
|
1519
|
+
* Domain where data provider's adagents.json is hosted (e.g., 'polk.com')
|
|
1520
|
+
*/
|
|
1521
|
+
data_provider_domain: string;
|
|
1522
|
+
/**
|
|
1523
|
+
* Discriminator indicating all signals from this data provider are included
|
|
1524
|
+
*/
|
|
1525
|
+
selection_type: 'all';
|
|
1526
|
+
[k: string]: unknown | undefined;
|
|
1527
|
+
} | {
|
|
1528
|
+
/**
|
|
1529
|
+
* Domain where data provider's adagents.json is hosted (e.g., 'polk.com')
|
|
1530
|
+
*/
|
|
1531
|
+
data_provider_domain: string;
|
|
1532
|
+
/**
|
|
1533
|
+
* Discriminator indicating selection by specific signal IDs
|
|
1534
|
+
*/
|
|
1535
|
+
selection_type: 'by_id';
|
|
1536
|
+
/**
|
|
1537
|
+
* Specific signal IDs from the data provider's catalog
|
|
1538
|
+
*
|
|
1539
|
+
* @minItems 1
|
|
1540
|
+
*/
|
|
1541
|
+
signal_ids: [string, ...string[]];
|
|
1542
|
+
[k: string]: unknown | undefined;
|
|
1543
|
+
} | {
|
|
1544
|
+
/**
|
|
1545
|
+
* Domain where data provider's adagents.json is hosted (e.g., 'polk.com')
|
|
1546
|
+
*/
|
|
1547
|
+
data_provider_domain: string;
|
|
1548
|
+
/**
|
|
1549
|
+
* Discriminator indicating selection by signal tags
|
|
1550
|
+
*/
|
|
1551
|
+
selection_type: 'by_tag';
|
|
1552
|
+
/**
|
|
1553
|
+
* Signal tags from the data provider's catalog. Selector covers all signals with these tags
|
|
1554
|
+
*
|
|
1555
|
+
* @minItems 1
|
|
1556
|
+
*/
|
|
1557
|
+
signal_tags: [string, ...string[]];
|
|
1558
|
+
[k: string]: unknown | undefined;
|
|
1559
|
+
};
|
|
1560
|
+
/**
|
|
1561
|
+
* Where the conversion event originated
|
|
1562
|
+
*/
|
|
1563
|
+
export type ActionSource = 'website' | 'app' | 'offline' | 'phone_call' | 'chat' | 'email' | 'in_store' | 'system_generated' | 'other';
|
|
1197
1564
|
/**
|
|
1198
1565
|
* Represents available advertising inventory
|
|
1199
1566
|
*/
|
|
@@ -1214,6 +1581,10 @@ export interface Product {
|
|
|
1214
1581
|
* 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.
|
|
1215
1582
|
*/
|
|
1216
1583
|
publisher_properties: PublisherPropertySelector[];
|
|
1584
|
+
/**
|
|
1585
|
+
* 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'].
|
|
1586
|
+
*/
|
|
1587
|
+
channels?: MediaChannel[];
|
|
1217
1588
|
/**
|
|
1218
1589
|
* Array of supported creative format IDs - structured format_id objects with agent_url and id
|
|
1219
1590
|
*/
|
|
@@ -1255,6 +1626,31 @@ export interface Product {
|
|
|
1255
1626
|
* Whether buyers can filter this product to a subset of its publisher_properties. When false (default), the product is 'all or nothing' - buyers must accept all properties or the product is excluded from property_list filtering results.
|
|
1256
1627
|
*/
|
|
1257
1628
|
property_targeting_allowed?: boolean;
|
|
1629
|
+
/**
|
|
1630
|
+
* Data provider signals available for this product. Buyers fetch signal definitions from each data provider's adagents.json and can verify agent authorization.
|
|
1631
|
+
*/
|
|
1632
|
+
data_provider_signals?: DataProviderSignalSelector[];
|
|
1633
|
+
/**
|
|
1634
|
+
* 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.
|
|
1635
|
+
*/
|
|
1636
|
+
signal_targeting_allowed?: boolean;
|
|
1637
|
+
/**
|
|
1638
|
+
* 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.
|
|
1639
|
+
*/
|
|
1640
|
+
conversion_tracking?: {
|
|
1641
|
+
/**
|
|
1642
|
+
* 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')
|
|
1643
|
+
*/
|
|
1644
|
+
action_sources?: ActionSource[];
|
|
1645
|
+
/**
|
|
1646
|
+
* Optimization strategies this product supports when an optimization_goal is set on a package
|
|
1647
|
+
*/
|
|
1648
|
+
supported_optimization_strategies?: ('maximize_conversions' | 'target_cpa' | 'target_roas')[];
|
|
1649
|
+
/**
|
|
1650
|
+
* 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'.
|
|
1651
|
+
*/
|
|
1652
|
+
platform_managed?: boolean;
|
|
1653
|
+
};
|
|
1258
1654
|
/**
|
|
1259
1655
|
* Explanation of why this product matches the brief (only included when brief is provided)
|
|
1260
1656
|
*/
|
|
@@ -1654,6 +2050,44 @@ export interface PriceGuidance5 {
|
|
|
1654
2050
|
p90?: number;
|
|
1655
2051
|
[k: string]: unknown | undefined;
|
|
1656
2052
|
}
|
|
2053
|
+
/**
|
|
2054
|
+
* 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).
|
|
2055
|
+
*/
|
|
2056
|
+
export interface CPAPricingOption {
|
|
2057
|
+
/**
|
|
2058
|
+
* Unique identifier for this pricing option within the product
|
|
2059
|
+
*/
|
|
2060
|
+
pricing_option_id: string;
|
|
2061
|
+
/**
|
|
2062
|
+
* Cost per acquisition (conversion event)
|
|
2063
|
+
*/
|
|
2064
|
+
pricing_model: 'cpa';
|
|
2065
|
+
/**
|
|
2066
|
+
* The conversion event type that triggers billing (e.g., purchase, lead, app_install)
|
|
2067
|
+
*/
|
|
2068
|
+
event_type: EventType;
|
|
2069
|
+
/**
|
|
2070
|
+
* Name of the custom event when event_type is 'custom'. Required when event_type is 'custom', ignored otherwise.
|
|
2071
|
+
*/
|
|
2072
|
+
custom_event_name?: string;
|
|
2073
|
+
/**
|
|
2074
|
+
* 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.
|
|
2075
|
+
*/
|
|
2076
|
+
event_source_id?: string;
|
|
2077
|
+
/**
|
|
2078
|
+
* ISO 4217 currency code
|
|
2079
|
+
*/
|
|
2080
|
+
currency: string;
|
|
2081
|
+
/**
|
|
2082
|
+
* Fixed price per acquisition in the specified currency
|
|
2083
|
+
*/
|
|
2084
|
+
fixed_price: number;
|
|
2085
|
+
/**
|
|
2086
|
+
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
2087
|
+
*/
|
|
2088
|
+
min_spend_per_package?: number;
|
|
2089
|
+
[k: string]: unknown | undefined;
|
|
2090
|
+
}
|
|
1657
2091
|
/**
|
|
1658
2092
|
* 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.
|
|
1659
2093
|
*/
|
|
@@ -1741,6 +2175,77 @@ export interface PriceGuidance6 {
|
|
|
1741
2175
|
p90?: number;
|
|
1742
2176
|
[k: string]: unknown | undefined;
|
|
1743
2177
|
}
|
|
2178
|
+
/**
|
|
2179
|
+
* 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.
|
|
2180
|
+
*/
|
|
2181
|
+
export interface TimeBasedPricingOption {
|
|
2182
|
+
/**
|
|
2183
|
+
* Unique identifier for this pricing option within the product
|
|
2184
|
+
*/
|
|
2185
|
+
pricing_option_id: string;
|
|
2186
|
+
/**
|
|
2187
|
+
* Cost per time unit - rate scales with campaign duration
|
|
2188
|
+
*/
|
|
2189
|
+
pricing_model: 'time';
|
|
2190
|
+
/**
|
|
2191
|
+
* ISO 4217 currency code
|
|
2192
|
+
*/
|
|
2193
|
+
currency: string;
|
|
2194
|
+
/**
|
|
2195
|
+
* Cost per time unit. If present, this is fixed pricing. If absent, auction-based.
|
|
2196
|
+
*/
|
|
2197
|
+
fixed_price?: number;
|
|
2198
|
+
/**
|
|
2199
|
+
* Minimum acceptable bid per time unit for auction pricing (mutually exclusive with fixed_price). Bids below this value will be rejected.
|
|
2200
|
+
*/
|
|
2201
|
+
floor_price?: number;
|
|
2202
|
+
price_guidance?: PriceGuidance7;
|
|
2203
|
+
/**
|
|
2204
|
+
* Time-based pricing parameters
|
|
2205
|
+
*/
|
|
2206
|
+
parameters: {
|
|
2207
|
+
/**
|
|
2208
|
+
* The time unit for pricing. Total cost = fixed_price × number of time_units in the campaign flight.
|
|
2209
|
+
*/
|
|
2210
|
+
time_unit: 'hour' | 'day' | 'week' | 'month';
|
|
2211
|
+
/**
|
|
2212
|
+
* Minimum booking duration in time_units
|
|
2213
|
+
*/
|
|
2214
|
+
min_duration?: number;
|
|
2215
|
+
/**
|
|
2216
|
+
* Maximum booking duration in time_units. Must be >= min_duration when both are present.
|
|
2217
|
+
*/
|
|
2218
|
+
max_duration?: number;
|
|
2219
|
+
[k: string]: unknown | undefined;
|
|
2220
|
+
};
|
|
2221
|
+
/**
|
|
2222
|
+
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
2223
|
+
*/
|
|
2224
|
+
min_spend_per_package?: number;
|
|
2225
|
+
[k: string]: unknown | undefined;
|
|
2226
|
+
}
|
|
2227
|
+
/**
|
|
2228
|
+
* Optional pricing guidance for auction-based bidding
|
|
2229
|
+
*/
|
|
2230
|
+
export interface PriceGuidance7 {
|
|
2231
|
+
/**
|
|
2232
|
+
* 25th percentile of recent winning bids
|
|
2233
|
+
*/
|
|
2234
|
+
p25?: number;
|
|
2235
|
+
/**
|
|
2236
|
+
* Median of recent winning bids
|
|
2237
|
+
*/
|
|
2238
|
+
p50?: number;
|
|
2239
|
+
/**
|
|
2240
|
+
* 75th percentile of recent winning bids
|
|
2241
|
+
*/
|
|
2242
|
+
p75?: number;
|
|
2243
|
+
/**
|
|
2244
|
+
* 90th percentile of recent winning bids
|
|
2245
|
+
*/
|
|
2246
|
+
p90?: number;
|
|
2247
|
+
[k: string]: unknown | undefined;
|
|
2248
|
+
}
|
|
1744
2249
|
/**
|
|
1745
2250
|
* Measurement capabilities included with a product
|
|
1746
2251
|
*/
|
|
@@ -1786,9 +2291,17 @@ export interface ReportingCapabilities {
|
|
|
1786
2291
|
*/
|
|
1787
2292
|
supports_webhooks: boolean;
|
|
1788
2293
|
/**
|
|
1789
|
-
* Metrics available in reporting. Impressions and spend are always implicitly included.
|
|
2294
|
+
* 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.
|
|
1790
2295
|
*/
|
|
1791
2296
|
available_metrics: AvailableMetric[];
|
|
2297
|
+
/**
|
|
2298
|
+
* Whether this product supports creative-level metric breakdowns in delivery reporting (by_creative within by_package)
|
|
2299
|
+
*/
|
|
2300
|
+
supports_creative_breakdown?: boolean;
|
|
2301
|
+
/**
|
|
2302
|
+
* 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.
|
|
2303
|
+
*/
|
|
2304
|
+
date_range_support: 'date_range' | 'lifetime_only';
|
|
1792
2305
|
[k: string]: unknown | undefined;
|
|
1793
2306
|
}
|
|
1794
2307
|
/**
|
|
@@ -1893,6 +2406,10 @@ export interface Property {
|
|
|
1893
2406
|
* Tags for categorization and grouping (e.g., network membership, content categories)
|
|
1894
2407
|
*/
|
|
1895
2408
|
tags?: PropertyTag[];
|
|
2409
|
+
/**
|
|
2410
|
+
* 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.
|
|
2411
|
+
*/
|
|
2412
|
+
supported_channels?: MediaChannel[];
|
|
1896
2413
|
/**
|
|
1897
2414
|
* Domain where adagents.json should be checked for authorization validation. Optional in adagents.json (file location implies domain).
|
|
1898
2415
|
*/
|
|
@@ -1901,7 +2418,7 @@ export interface Property {
|
|
|
1901
2418
|
/**
|
|
1902
2419
|
* Type of AdCP operation that triggered this webhook. Enables webhook handlers to route to appropriate processing logic.
|
|
1903
2420
|
*/
|
|
1904
|
-
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';
|
|
2421
|
+
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';
|
|
1905
2422
|
/**
|
|
1906
2423
|
* AdCP domain this task belongs to. Helps classify the operation type at a high level.
|
|
1907
2424
|
*/
|
|
@@ -1921,6 +2438,10 @@ export type CreateMediaBuyResponse = CreateMediaBuySuccess | CreateMediaBuyError
|
|
|
1921
2438
|
/**
|
|
1922
2439
|
* Budget pacing strategy
|
|
1923
2440
|
*/
|
|
2441
|
+
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';
|
|
2442
|
+
/**
|
|
2443
|
+
* Response for completed or failed update_media_buy
|
|
2444
|
+
*/
|
|
1924
2445
|
export type UpdateMediaBuyResponse = UpdateMediaBuySuccess | UpdateMediaBuyError;
|
|
1925
2446
|
/**
|
|
1926
2447
|
* Response for completed or failed sync_creatives
|
|
@@ -1979,6 +2500,11 @@ export interface GetProductsResponse {
|
|
|
1979
2500
|
* [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.
|
|
1980
2501
|
*/
|
|
1981
2502
|
property_list_applied?: boolean;
|
|
2503
|
+
/**
|
|
2504
|
+
* 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.
|
|
2505
|
+
*/
|
|
2506
|
+
product_selectors_applied?: boolean;
|
|
2507
|
+
pagination?: PaginationResponse;
|
|
1982
2508
|
context?: ContextObject;
|
|
1983
2509
|
ext?: ExtensionObject;
|
|
1984
2510
|
[k: string]: unknown | undefined;
|
|
@@ -2101,6 +2627,23 @@ export interface Error {
|
|
|
2101
2627
|
};
|
|
2102
2628
|
[k: string]: unknown | undefined;
|
|
2103
2629
|
}
|
|
2630
|
+
/**
|
|
2631
|
+
* Standard cursor-based pagination metadata for list responses
|
|
2632
|
+
*/
|
|
2633
|
+
export interface PaginationResponse {
|
|
2634
|
+
/**
|
|
2635
|
+
* Whether more results are available beyond this page
|
|
2636
|
+
*/
|
|
2637
|
+
has_more: boolean;
|
|
2638
|
+
/**
|
|
2639
|
+
* Opaque cursor to pass in the next request to fetch the next page. Only present when has_more is true.
|
|
2640
|
+
*/
|
|
2641
|
+
cursor?: string;
|
|
2642
|
+
/**
|
|
2643
|
+
* Total number of items matching the query across all pages. Optional because not all backends can efficiently compute this.
|
|
2644
|
+
*/
|
|
2645
|
+
total_count?: number;
|
|
2646
|
+
}
|
|
2104
2647
|
/**
|
|
2105
2648
|
* 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.
|
|
2106
2649
|
*/
|
|
@@ -2411,9 +2954,25 @@ export interface Account1 {
|
|
|
2411
2954
|
*/
|
|
2412
2955
|
billing_proxy?: string;
|
|
2413
2956
|
/**
|
|
2414
|
-
* Account status
|
|
2957
|
+
* Account status. pending_approval: seller reviewing (credit, contracts). payment_required: credit limit reached or funds depleted. suspended: was active, now paused. closed: terminated.
|
|
2958
|
+
*/
|
|
2959
|
+
status: 'active' | 'pending_approval' | 'payment_required' | 'suspended' | 'closed';
|
|
2960
|
+
/**
|
|
2961
|
+
* House domain where brand.json is hosted. Canonical identity anchor for the brand.
|
|
2962
|
+
*/
|
|
2963
|
+
house?: string;
|
|
2964
|
+
/**
|
|
2965
|
+
* Brand ID within the house portfolio (from brand.json)
|
|
2415
2966
|
*/
|
|
2416
|
-
|
|
2967
|
+
brand_id?: string;
|
|
2968
|
+
/**
|
|
2969
|
+
* Domain of the entity operating this account
|
|
2970
|
+
*/
|
|
2971
|
+
operator?: string;
|
|
2972
|
+
/**
|
|
2973
|
+
* Who is invoiced on this account. brand: seller invoices the brand directly. operator: seller invoices the operator (agency). agent: agent consolidates billing.
|
|
2974
|
+
*/
|
|
2975
|
+
billing?: 'brand' | 'operator' | 'agent';
|
|
2417
2976
|
/**
|
|
2418
2977
|
* Identifier for the rate card applied to this account
|
|
2419
2978
|
*/
|
|
@@ -2430,6 +2989,7 @@ export interface Account1 {
|
|
|
2430
2989
|
currency: string;
|
|
2431
2990
|
};
|
|
2432
2991
|
ext?: ExtensionObject;
|
|
2992
|
+
[k: string]: unknown | undefined;
|
|
2433
2993
|
}
|
|
2434
2994
|
/**
|
|
2435
2995
|
* Error response - operation failed completely, no creatives were processed
|