@adcp/client 3.1.0 → 3.2.1
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 +3 -0
- package/dist/lib/agents/index.generated.d.ts +27 -50
- package/dist/lib/agents/index.generated.d.ts.map +1 -1
- package/dist/lib/agents/index.generated.js +12 -24
- package/dist/lib/agents/index.generated.js.map +1 -1
- package/dist/lib/core/ADCPMultiAgentClient.d.ts +150 -41
- package/dist/lib/core/ADCPMultiAgentClient.d.ts.map +1 -1
- package/dist/lib/core/ADCPMultiAgentClient.js +150 -41
- package/dist/lib/core/ADCPMultiAgentClient.js.map +1 -1
- package/dist/lib/core/CreativeAgentClient.d.ts.map +1 -1
- package/dist/lib/core/CreativeAgentClient.js +6 -1
- package/dist/lib/core/CreativeAgentClient.js.map +1 -1
- package/dist/lib/core/ProtocolResponseParser.d.ts.map +1 -1
- package/dist/lib/core/ProtocolResponseParser.js +9 -1
- package/dist/lib/core/ProtocolResponseParser.js.map +1 -1
- package/dist/lib/core/ResponseValidator.d.ts.map +1 -1
- package/dist/lib/core/ResponseValidator.js +5 -6
- package/dist/lib/core/ResponseValidator.js.map +1 -1
- package/dist/lib/core/SingleAgentClient.d.ts.map +1 -1
- package/dist/lib/core/SingleAgentClient.js +3 -8
- package/dist/lib/core/SingleAgentClient.js.map +1 -1
- package/dist/lib/core/TaskExecutor.d.ts +1 -1
- package/dist/lib/core/TaskExecutor.d.ts.map +1 -1
- package/dist/lib/core/TaskExecutor.js +60 -61
- package/dist/lib/core/TaskExecutor.js.map +1 -1
- package/dist/lib/index.d.ts +30 -15
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +86 -26
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/protocols/a2a.d.ts +2 -1
- package/dist/lib/protocols/a2a.d.ts.map +1 -1
- package/dist/lib/protocols/a2a.js +10 -2
- package/dist/lib/protocols/a2a.js.map +1 -1
- package/dist/lib/protocols/index.d.ts +12 -1
- package/dist/lib/protocols/index.d.ts.map +1 -1
- package/dist/lib/protocols/index.js +29 -14
- package/dist/lib/protocols/index.js.map +1 -1
- package/dist/lib/types/core.generated.d.ts +185 -163
- package/dist/lib/types/core.generated.d.ts.map +1 -1
- package/dist/lib/types/core.generated.js +2 -2
- package/dist/lib/types/schemas.generated.d.ts +3536 -3236
- package/dist/lib/types/schemas.generated.d.ts.map +1 -1
- package/dist/lib/types/schemas.generated.js +440 -365
- package/dist/lib/types/schemas.generated.js.map +1 -1
- package/dist/lib/types/tools.generated.d.ts +590 -565
- package/dist/lib/types/tools.generated.d.ts.map +1 -1
- package/dist/lib/utils/index.d.ts +3 -0
- package/dist/lib/utils/index.d.ts.map +1 -1
- package/dist/lib/utils/index.js +10 -1
- package/dist/lib/utils/index.js.map +1 -1
- package/dist/lib/utils/response-unwrapper.d.ts +36 -0
- package/dist/lib/utils/response-unwrapper.d.ts.map +1 -0
- package/dist/lib/utils/response-unwrapper.js +331 -0
- package/dist/lib/utils/response-unwrapper.js.map +1 -0
- package/dist/lib/version.d.ts +13 -5
- package/dist/lib/version.d.ts.map +1 -1
- package/dist/lib/version.js +19 -5
- package/dist/lib/version.js.map +1 -1
- package/package.json +4 -6
|
@@ -6,10 +6,6 @@ export type MediaBuyStatus = 'pending_activation' | 'active' | 'paused' | 'compl
|
|
|
6
6
|
* Budget pacing strategy
|
|
7
7
|
*/
|
|
8
8
|
export type Pacing = 'even' | 'asap' | 'front_loaded';
|
|
9
|
-
/**
|
|
10
|
-
* Status of a package
|
|
11
|
-
*/
|
|
12
|
-
export type PackageStatus = 'draft' | 'active' | 'paused' | 'completed';
|
|
13
9
|
/**
|
|
14
10
|
* Represents a purchased advertising campaign
|
|
15
11
|
*/
|
|
@@ -47,6 +43,7 @@ export interface MediaBuy {
|
|
|
47
43
|
* Last update timestamp
|
|
48
44
|
*/
|
|
49
45
|
updated_at?: string;
|
|
46
|
+
ext?: ExtensionObject;
|
|
50
47
|
}
|
|
51
48
|
/**
|
|
52
49
|
* A specific product within a media buy (line item)
|
|
@@ -90,7 +87,11 @@ export interface Package {
|
|
|
90
87
|
* Format IDs that creative assets will be provided for this package
|
|
91
88
|
*/
|
|
92
89
|
format_ids_to_provide?: FormatID[];
|
|
93
|
-
|
|
90
|
+
/**
|
|
91
|
+
* Whether this package is paused by the buyer. Paused packages do not deliver impressions. Defaults to false.
|
|
92
|
+
*/
|
|
93
|
+
paused?: boolean;
|
|
94
|
+
ext?: ExtensionObject;
|
|
94
95
|
}
|
|
95
96
|
/**
|
|
96
97
|
* Optional geographic refinements for media buys. Most targeting should be expressed in the brief and handled by the publisher. These fields are primarily for geographic restrictions (RCT testing, regulatory compliance).
|
|
@@ -151,7 +152,7 @@ export interface CreativeAssignment {
|
|
|
151
152
|
placement_ids?: [string, ...string[]];
|
|
152
153
|
}
|
|
153
154
|
/**
|
|
154
|
-
* Structured format identifier with agent URL and format name
|
|
155
|
+
* Structured format identifier with agent URL and format name. Can reference: (1) a concrete format with fixed dimensions (id only), (2) a template format without parameters (id only), or (3) a template format with parameters (id + dimensions/duration). Template formats accept parameters in format_id while concrete formats have fixed dimensions in their definition. Parameterized format IDs create unique, specific format variants.
|
|
155
156
|
*/
|
|
156
157
|
export interface FormatID {
|
|
157
158
|
/**
|
|
@@ -159,10 +160,70 @@ export interface FormatID {
|
|
|
159
160
|
*/
|
|
160
161
|
agent_url: string;
|
|
161
162
|
/**
|
|
162
|
-
* Format identifier within the agent's namespace (e.g., '
|
|
163
|
+
* Format identifier within the agent's namespace (e.g., 'display_static', 'video_hosted', 'audio_standard'). When used alone, references a template format. When combined with dimension/duration fields, creates a parameterized format ID for a specific variant.
|
|
163
164
|
*/
|
|
164
165
|
id: string;
|
|
166
|
+
/**
|
|
167
|
+
* Width in pixels for visual formats. When specified, height must also be specified. Both fields together create a parameterized format ID for dimension-specific variants.
|
|
168
|
+
*/
|
|
169
|
+
width?: number;
|
|
170
|
+
/**
|
|
171
|
+
* Height in pixels for visual formats. When specified, width must also be specified. Both fields together create a parameterized format ID for dimension-specific variants.
|
|
172
|
+
*/
|
|
173
|
+
height?: number;
|
|
174
|
+
/**
|
|
175
|
+
* Duration in milliseconds for time-based formats (video, audio). When specified, creates a parameterized format ID. Omit to reference a template format without parameters.
|
|
176
|
+
*/
|
|
177
|
+
duration_ms?: number;
|
|
165
178
|
}
|
|
179
|
+
/**
|
|
180
|
+
* 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.
|
|
181
|
+
*/
|
|
182
|
+
export interface ExtensionObject {
|
|
183
|
+
[k: string]: unknown;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Image asset with URL and dimensions
|
|
187
|
+
*/
|
|
188
|
+
export type ImageAsset = Dimensions & {
|
|
189
|
+
/**
|
|
190
|
+
* URL to the image asset
|
|
191
|
+
*/
|
|
192
|
+
url: string;
|
|
193
|
+
/**
|
|
194
|
+
* Image file format (jpg, png, gif, webp, etc.)
|
|
195
|
+
*/
|
|
196
|
+
format?: string;
|
|
197
|
+
/**
|
|
198
|
+
* Alternative text for accessibility
|
|
199
|
+
*/
|
|
200
|
+
alt_text?: string;
|
|
201
|
+
};
|
|
202
|
+
/**
|
|
203
|
+
* Video asset with URL and specifications
|
|
204
|
+
*/
|
|
205
|
+
export type VideoAsset = Dimensions & {
|
|
206
|
+
/**
|
|
207
|
+
* URL to the video asset
|
|
208
|
+
*/
|
|
209
|
+
url: string;
|
|
210
|
+
/**
|
|
211
|
+
* Video duration in milliseconds
|
|
212
|
+
*/
|
|
213
|
+
duration_ms?: number;
|
|
214
|
+
/**
|
|
215
|
+
* Video file format (mp4, webm, mov, etc.)
|
|
216
|
+
*/
|
|
217
|
+
format?: string;
|
|
218
|
+
/**
|
|
219
|
+
* Video bitrate in kilobits per second
|
|
220
|
+
*/
|
|
221
|
+
bitrate_kbps?: number;
|
|
222
|
+
};
|
|
223
|
+
/**
|
|
224
|
+
* JavaScript module type
|
|
225
|
+
*/
|
|
226
|
+
export type JavaScriptModuleType = 'esm' | 'commonjs' | 'script';
|
|
166
227
|
/**
|
|
167
228
|
* VAST (Video Ad Serving Template) tag for third-party video ad serving
|
|
168
229
|
*/
|
|
@@ -175,10 +236,7 @@ export type VASTAsset = {
|
|
|
175
236
|
* URL endpoint that returns VAST XML
|
|
176
237
|
*/
|
|
177
238
|
url: string;
|
|
178
|
-
|
|
179
|
-
* VAST specification version
|
|
180
|
-
*/
|
|
181
|
-
vast_version?: '2.0' | '3.0' | '4.0' | '4.1' | '4.2';
|
|
239
|
+
vast_version?: VASTVersion;
|
|
182
240
|
/**
|
|
183
241
|
* Whether VPAID (Video Player-Ad Interface Definition) is supported
|
|
184
242
|
*/
|
|
@@ -190,7 +248,7 @@ export type VASTAsset = {
|
|
|
190
248
|
/**
|
|
191
249
|
* Tracking events supported by this VAST tag
|
|
192
250
|
*/
|
|
193
|
-
tracking_events?:
|
|
251
|
+
tracking_events?: VASTTrackingEvent[];
|
|
194
252
|
} | {
|
|
195
253
|
/**
|
|
196
254
|
* Discriminator indicating VAST is delivered as inline XML content
|
|
@@ -200,10 +258,7 @@ export type VASTAsset = {
|
|
|
200
258
|
* Inline VAST XML content
|
|
201
259
|
*/
|
|
202
260
|
content: string;
|
|
203
|
-
|
|
204
|
-
* VAST specification version
|
|
205
|
-
*/
|
|
206
|
-
vast_version?: '2.0' | '3.0' | '4.0' | '4.1' | '4.2';
|
|
261
|
+
vast_version?: VASTVersion1;
|
|
207
262
|
/**
|
|
208
263
|
* Whether VPAID (Video Player-Ad Interface Definition) is supported
|
|
209
264
|
*/
|
|
@@ -215,8 +270,20 @@ export type VASTAsset = {
|
|
|
215
270
|
/**
|
|
216
271
|
* Tracking events supported by this VAST tag
|
|
217
272
|
*/
|
|
218
|
-
tracking_events?:
|
|
273
|
+
tracking_events?: VASTTrackingEvent[];
|
|
219
274
|
};
|
|
275
|
+
/**
|
|
276
|
+
* VAST specification version
|
|
277
|
+
*/
|
|
278
|
+
export type VASTVersion = '2.0' | '3.0' | '4.0' | '4.1' | '4.2';
|
|
279
|
+
/**
|
|
280
|
+
* Standard VAST tracking events for video ad playback and interaction
|
|
281
|
+
*/
|
|
282
|
+
export type VASTTrackingEvent = 'start' | 'firstQuartile' | 'midpoint' | 'thirdQuartile' | 'complete' | 'impression' | 'click' | 'pause' | 'resume' | 'skip' | 'mute' | 'unmute' | 'fullscreen' | 'exitFullscreen' | 'playerExpand' | 'playerCollapse';
|
|
283
|
+
/**
|
|
284
|
+
* VAST specification version
|
|
285
|
+
*/
|
|
286
|
+
export type VASTVersion1 = '2.0' | '3.0' | '4.0' | '4.1' | '4.2';
|
|
220
287
|
/**
|
|
221
288
|
* DAAST (Digital Audio Ad Serving Template) tag for third-party audio ad serving
|
|
222
289
|
*/
|
|
@@ -229,10 +296,7 @@ export type DAASTAsset = {
|
|
|
229
296
|
* URL endpoint that returns DAAST XML
|
|
230
297
|
*/
|
|
231
298
|
url: string;
|
|
232
|
-
|
|
233
|
-
* DAAST specification version
|
|
234
|
-
*/
|
|
235
|
-
daast_version?: '1.0' | '1.1';
|
|
299
|
+
daast_version?: DAASTVersion;
|
|
236
300
|
/**
|
|
237
301
|
* Expected audio duration in milliseconds (if known)
|
|
238
302
|
*/
|
|
@@ -240,7 +304,7 @@ export type DAASTAsset = {
|
|
|
240
304
|
/**
|
|
241
305
|
* Tracking events supported by this DAAST tag
|
|
242
306
|
*/
|
|
243
|
-
tracking_events?:
|
|
307
|
+
tracking_events?: DAASTTrackingEvent[];
|
|
244
308
|
/**
|
|
245
309
|
* Whether companion display ads are included
|
|
246
310
|
*/
|
|
@@ -254,10 +318,7 @@ export type DAASTAsset = {
|
|
|
254
318
|
* Inline DAAST XML content
|
|
255
319
|
*/
|
|
256
320
|
content: string;
|
|
257
|
-
|
|
258
|
-
* DAAST specification version
|
|
259
|
-
*/
|
|
260
|
-
daast_version?: '1.0' | '1.1';
|
|
321
|
+
daast_version?: DAASTVersion1;
|
|
261
322
|
/**
|
|
262
323
|
* Expected audio duration in milliseconds (if known)
|
|
263
324
|
*/
|
|
@@ -265,12 +326,24 @@ export type DAASTAsset = {
|
|
|
265
326
|
/**
|
|
266
327
|
* Tracking events supported by this DAAST tag
|
|
267
328
|
*/
|
|
268
|
-
tracking_events?:
|
|
329
|
+
tracking_events?: DAASTTrackingEvent[];
|
|
269
330
|
/**
|
|
270
331
|
* Whether companion display ads are included
|
|
271
332
|
*/
|
|
272
333
|
companion_ads?: boolean;
|
|
273
334
|
};
|
|
335
|
+
/**
|
|
336
|
+
* DAAST specification version
|
|
337
|
+
*/
|
|
338
|
+
export type DAASTVersion = '1.0' | '1.1';
|
|
339
|
+
/**
|
|
340
|
+
* Standard DAAST tracking events for audio ad playback and interaction
|
|
341
|
+
*/
|
|
342
|
+
export type DAASTTrackingEvent = 'start' | 'firstQuartile' | 'midpoint' | 'thirdQuartile' | 'complete' | 'impression' | 'pause' | 'resume' | 'skip' | 'mute' | 'unmute';
|
|
343
|
+
/**
|
|
344
|
+
* DAAST specification version
|
|
345
|
+
*/
|
|
346
|
+
export type DAASTVersion1 = '1.0' | '1.1';
|
|
274
347
|
/**
|
|
275
348
|
* Brand information manifest containing assets, themes, and guidelines. Can be provided inline or as a URL reference to a hosted manifest.
|
|
276
349
|
*/
|
|
@@ -279,6 +352,10 @@ export type BrandManifestReference = BrandManifest | string;
|
|
|
279
352
|
* Type of asset. Note: Brand manifests typically contain basic media assets (image, video, audio, text). Code assets (html, javascript, css) and ad markup (vast, daast) are usually not part of brand asset libraries.
|
|
280
353
|
*/
|
|
281
354
|
export type AssetContentType = 'image' | 'video' | 'audio' | 'text' | 'markdown' | 'html' | 'css' | 'javascript' | 'vast' | 'daast' | 'promoted_offerings' | 'url' | 'webhook';
|
|
355
|
+
/**
|
|
356
|
+
* Type of URL asset: 'clickthrough' for user click destination (landing page), 'tracker_pixel' for impression/event tracking via HTTP request (fires GET, expects pixel/204 response), 'tracker_script' for measurement SDKs that must load as <script> tag (OMID verification, native event trackers using method:2)
|
|
357
|
+
*/
|
|
358
|
+
export type URLAssetType = 'clickthrough' | 'tracker_pixel' | 'tracker_script';
|
|
282
359
|
/**
|
|
283
360
|
* Creative asset for upload to library - supports static assets, generative formats, and third-party snippets
|
|
284
361
|
*/
|
|
@@ -329,73 +406,29 @@ export interface CreativeAsset {
|
|
|
329
406
|
* For generative creatives: set to true to approve and finalize, false to request regeneration with updated assets/message. Omit for non-generative creatives.
|
|
330
407
|
*/
|
|
331
408
|
approved?: boolean;
|
|
332
|
-
}
|
|
333
|
-
/**
|
|
334
|
-
* Format identifier specifying which format this creative conforms to
|
|
335
|
-
*/
|
|
336
|
-
export interface FormatID {
|
|
337
409
|
/**
|
|
338
|
-
*
|
|
339
|
-
*/
|
|
340
|
-
agent_url: string;
|
|
341
|
-
/**
|
|
342
|
-
* Format identifier within the agent's namespace (e.g., 'display_300x250', 'video_standard_30s')
|
|
343
|
-
*/
|
|
344
|
-
id: string;
|
|
345
|
-
}
|
|
346
|
-
/**
|
|
347
|
-
* Image asset with URL and dimensions
|
|
348
|
-
*/
|
|
349
|
-
export interface ImageAsset {
|
|
350
|
-
/**
|
|
351
|
-
* URL to the image asset
|
|
352
|
-
*/
|
|
353
|
-
url: string;
|
|
354
|
-
/**
|
|
355
|
-
* Image width in pixels
|
|
410
|
+
* Optional delivery weight for creative rotation when uploading via create_media_buy or update_media_buy (0-100). If omitted, platform determines rotation. Only used during upload to media buy - not stored in creative library.
|
|
356
411
|
*/
|
|
357
|
-
|
|
358
|
-
/**
|
|
359
|
-
* Image height in pixels
|
|
360
|
-
*/
|
|
361
|
-
height?: number;
|
|
362
|
-
/**
|
|
363
|
-
* Image file format (jpg, png, gif, webp, etc.)
|
|
364
|
-
*/
|
|
365
|
-
format?: string;
|
|
412
|
+
weight?: number;
|
|
366
413
|
/**
|
|
367
|
-
*
|
|
414
|
+
* Optional array of placement IDs where this creative should run when uploading via create_media_buy or update_media_buy. References placement_id values from the product's placements array. If omitted, creative runs on all placements. Only used during upload to media buy - not stored in creative library.
|
|
415
|
+
*
|
|
416
|
+
* @minItems 1
|
|
368
417
|
*/
|
|
369
|
-
|
|
418
|
+
placement_ids?: [string, ...string[]];
|
|
370
419
|
}
|
|
371
420
|
/**
|
|
372
|
-
*
|
|
421
|
+
* Format identifier specifying which format this creative conforms to. Can be: (1) concrete format_id referencing a format with fixed dimensions, (2) template format_id referencing a template format, or (3) parameterized format_id with dimensions/duration parameters for template formats.
|
|
373
422
|
*/
|
|
374
|
-
export interface
|
|
375
|
-
/**
|
|
376
|
-
* URL to the video asset
|
|
377
|
-
*/
|
|
378
|
-
url: string;
|
|
423
|
+
export interface Dimensions {
|
|
379
424
|
/**
|
|
380
|
-
*
|
|
425
|
+
* Width in pixels
|
|
381
426
|
*/
|
|
382
|
-
width
|
|
427
|
+
width: number;
|
|
383
428
|
/**
|
|
384
|
-
*
|
|
429
|
+
* Height in pixels
|
|
385
430
|
*/
|
|
386
|
-
height
|
|
387
|
-
/**
|
|
388
|
-
* Video duration in milliseconds
|
|
389
|
-
*/
|
|
390
|
-
duration_ms?: number;
|
|
391
|
-
/**
|
|
392
|
-
* Video file format (mp4, webm, mov, etc.)
|
|
393
|
-
*/
|
|
394
|
-
format?: string;
|
|
395
|
-
/**
|
|
396
|
-
* Video bitrate in kilobits per second
|
|
397
|
-
*/
|
|
398
|
-
bitrate_kbps?: number;
|
|
431
|
+
height: number;
|
|
399
432
|
}
|
|
400
433
|
/**
|
|
401
434
|
* Audio asset with URL and specifications
|
|
@@ -465,10 +498,7 @@ export interface JavaScriptAsset {
|
|
|
465
498
|
* JavaScript content
|
|
466
499
|
*/
|
|
467
500
|
content: string;
|
|
468
|
-
|
|
469
|
-
* JavaScript module type
|
|
470
|
-
*/
|
|
471
|
-
module_type?: 'esm' | 'commonjs' | 'script';
|
|
501
|
+
module_type?: JavaScriptModuleType;
|
|
472
502
|
}
|
|
473
503
|
/**
|
|
474
504
|
* Complete offering specification combining brand manifest, product selectors, and asset filters. Provides all context needed for creative generation about what is being promoted.
|
|
@@ -758,10 +788,7 @@ export interface URLAsset {
|
|
|
758
788
|
* URL reference
|
|
759
789
|
*/
|
|
760
790
|
url: string;
|
|
761
|
-
|
|
762
|
-
* Type of URL asset: 'clickthrough' for user click destination (landing page), 'tracker_pixel' for impression/event tracking via HTTP request (fires GET, expects pixel/204 response), 'tracker_script' for measurement SDKs that must load as <script> tag (OMID verification, native event trackers using method:2)
|
|
763
|
-
*/
|
|
764
|
-
url_type?: 'clickthrough' | 'tracker_pixel' | 'tracker_script';
|
|
791
|
+
url_type?: URLAssetType;
|
|
765
792
|
/**
|
|
766
793
|
* Description of what this URL points to
|
|
767
794
|
*/
|
|
@@ -793,7 +820,7 @@ export type PublisherPropertySelector = {
|
|
|
793
820
|
*
|
|
794
821
|
* @minItems 1
|
|
795
822
|
*/
|
|
796
|
-
property_ids: [
|
|
823
|
+
property_ids: [PropertyID, ...PropertyID[]];
|
|
797
824
|
} | {
|
|
798
825
|
/**
|
|
799
826
|
* Domain where publisher's adagents.json is hosted (e.g., 'cnn.com')
|
|
@@ -808,8 +835,16 @@ export type PublisherPropertySelector = {
|
|
|
808
835
|
*
|
|
809
836
|
* @minItems 1
|
|
810
837
|
*/
|
|
811
|
-
property_tags: [
|
|
838
|
+
property_tags: [PropertyTag, ...PropertyTag[]];
|
|
812
839
|
};
|
|
840
|
+
/**
|
|
841
|
+
* Identifier for a publisher property. Must be lowercase alphanumeric with underscores only.
|
|
842
|
+
*/
|
|
843
|
+
export type PropertyID = string;
|
|
844
|
+
/**
|
|
845
|
+
* Tag for categorizing publisher properties. Must be lowercase alphanumeric with underscores only.
|
|
846
|
+
*/
|
|
847
|
+
export type PropertyTag = string;
|
|
813
848
|
/**
|
|
814
849
|
* Type of inventory delivery
|
|
815
850
|
*/
|
|
@@ -818,6 +853,22 @@ export type DeliveryType = 'guaranteed' | 'non_guaranteed';
|
|
|
818
853
|
* A pricing model option offered by a publisher for a product. Each pricing model has its own schema with model-specific requirements.
|
|
819
854
|
*/
|
|
820
855
|
export type PricingOption = CPMFixedRatePricingOption | CPMAuctionPricingOption | VCPMFixedRatePricingOption | VCPMAuctionPricingOption | CPCPricingOption | CPCVPricingOption | CPVPricingOption | CPPPricingOption | FlatRatePricingOption;
|
|
856
|
+
/**
|
|
857
|
+
* Available frequencies for delivery reports and metrics updates
|
|
858
|
+
*/
|
|
859
|
+
export type ReportingFrequency = 'hourly' | 'daily' | 'monthly';
|
|
860
|
+
/**
|
|
861
|
+
* Standard delivery and performance metrics available for reporting
|
|
862
|
+
*/
|
|
863
|
+
export type AvailableMetric = 'impressions' | 'spend' | 'clicks' | 'ctr' | 'video_completions' | 'completion_rate' | 'conversions' | 'viewability' | 'engagement_rate';
|
|
864
|
+
/**
|
|
865
|
+
* Co-branding requirement
|
|
866
|
+
*/
|
|
867
|
+
export type CoBrandingRequirement = 'required' | 'optional' | 'none';
|
|
868
|
+
/**
|
|
869
|
+
* Landing page requirements
|
|
870
|
+
*/
|
|
871
|
+
export type LandingPageRequirement = 'any' | 'retailer_site_only' | 'must_include_retailer';
|
|
821
872
|
/**
|
|
822
873
|
* Represents available advertising inventory
|
|
823
874
|
*/
|
|
@@ -909,22 +960,10 @@ export interface Product {
|
|
|
909
960
|
*/
|
|
910
961
|
manifest: {};
|
|
911
962
|
};
|
|
963
|
+
ext?: ExtensionObject;
|
|
912
964
|
}
|
|
913
965
|
/**
|
|
914
|
-
* Structured format identifier with agent URL and format name
|
|
915
|
-
*/
|
|
916
|
-
export interface FormatID {
|
|
917
|
-
/**
|
|
918
|
-
* URL of the agent that defines this format (e.g., 'https://creatives.adcontextprotocol.org' for standard formats, or 'https://publisher.com/.well-known/adcp/sales' for custom formats)
|
|
919
|
-
*/
|
|
920
|
-
agent_url: string;
|
|
921
|
-
/**
|
|
922
|
-
* Format identifier within the agent's namespace (e.g., 'display_300x250', 'video_standard_30s')
|
|
923
|
-
*/
|
|
924
|
-
id: string;
|
|
925
|
-
}
|
|
926
|
-
/**
|
|
927
|
-
* Represents a specific ad placement within a product's inventory
|
|
966
|
+
* Structured format identifier with agent URL and format name. Can reference: (1) a concrete format with fixed dimensions (id only), (2) a template format without parameters (id only), or (3) a template format with parameters (id + dimensions/duration). Template formats accept parameters in format_id while concrete formats have fixed dimensions in their definition. Parameterized format IDs create unique, specific format variants.
|
|
928
967
|
*/
|
|
929
968
|
export interface Placement {
|
|
930
969
|
/**
|
|
@@ -940,7 +979,7 @@ export interface Placement {
|
|
|
940
979
|
*/
|
|
941
980
|
description?: string;
|
|
942
981
|
/**
|
|
943
|
-
* Format IDs supported by this specific placement (
|
|
982
|
+
* Format IDs supported by this specific placement. Can include: (1) concrete format_ids (fixed dimensions), (2) template format_ids without parameters (accepts any dimensions/duration), or (3) parameterized format_ids (specific dimension/duration constraints).
|
|
944
983
|
*
|
|
945
984
|
* @minItems 1
|
|
946
985
|
*/
|
|
@@ -1336,7 +1375,7 @@ export interface ReportingCapabilities {
|
|
|
1336
1375
|
*
|
|
1337
1376
|
* @minItems 1
|
|
1338
1377
|
*/
|
|
1339
|
-
available_reporting_frequencies: [
|
|
1378
|
+
available_reporting_frequencies: [ReportingFrequency, ...ReportingFrequency[]];
|
|
1340
1379
|
/**
|
|
1341
1380
|
* Expected delay in minutes before reporting data becomes available (e.g., 240 for 4-hour delay)
|
|
1342
1381
|
*/
|
|
@@ -1352,27 +1391,21 @@ export interface ReportingCapabilities {
|
|
|
1352
1391
|
/**
|
|
1353
1392
|
* Metrics available in reporting. Impressions and spend are always implicitly included.
|
|
1354
1393
|
*/
|
|
1355
|
-
available_metrics:
|
|
1394
|
+
available_metrics: AvailableMetric[];
|
|
1356
1395
|
}
|
|
1357
1396
|
/**
|
|
1358
1397
|
* Creative requirements and restrictions for a product
|
|
1359
1398
|
*/
|
|
1360
1399
|
export interface CreativePolicy {
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
*/
|
|
1364
|
-
co_branding: 'required' | 'optional' | 'none';
|
|
1365
|
-
/**
|
|
1366
|
-
* Landing page requirements
|
|
1367
|
-
*/
|
|
1368
|
-
landing_page: 'any' | 'retailer_site_only' | 'must_include_retailer';
|
|
1400
|
+
co_branding: CoBrandingRequirement;
|
|
1401
|
+
landing_page: LandingPageRequirement;
|
|
1369
1402
|
/**
|
|
1370
1403
|
* Whether creative templates are provided
|
|
1371
1404
|
*/
|
|
1372
1405
|
templates_available: boolean;
|
|
1373
1406
|
}
|
|
1374
1407
|
/**
|
|
1375
|
-
* Structured format identifier with agent URL and format name
|
|
1408
|
+
* Structured format identifier with agent URL and format name. Can reference: (1) a concrete format with fixed dimensions (id only), (2) a template format without parameters (id only), or (3) a template format with parameters (id + dimensions/duration). Template formats accept parameters in format_id while concrete formats have fixed dimensions in their definition. Parameterized format IDs create unique, specific format variants.
|
|
1376
1409
|
*/
|
|
1377
1410
|
export interface FormatID1 {
|
|
1378
1411
|
/**
|
|
@@ -1380,78 +1413,67 @@ export interface FormatID1 {
|
|
|
1380
1413
|
*/
|
|
1381
1414
|
agent_url: string;
|
|
1382
1415
|
/**
|
|
1383
|
-
* Format identifier within the agent's namespace (e.g., '
|
|
1416
|
+
* Format identifier within the agent's namespace (e.g., 'display_static', 'video_hosted', 'audio_standard'). When used alone, references a template format. When combined with dimension/duration fields, creates a parameterized format ID for a specific variant.
|
|
1384
1417
|
*/
|
|
1385
1418
|
id: string;
|
|
1386
|
-
}
|
|
1387
|
-
/**
|
|
1388
|
-
* Structured format identifier with agent URL and format name
|
|
1389
|
-
*/
|
|
1390
|
-
export interface FormatID2 {
|
|
1391
1419
|
/**
|
|
1392
|
-
*
|
|
1420
|
+
* Width in pixels for visual formats. When specified, height must also be specified. Both fields together create a parameterized format ID for dimension-specific variants.
|
|
1393
1421
|
*/
|
|
1394
|
-
|
|
1422
|
+
width?: number;
|
|
1395
1423
|
/**
|
|
1396
|
-
*
|
|
1424
|
+
* Height in pixels for visual formats. When specified, width must also be specified. Both fields together create a parameterized format ID for dimension-specific variants.
|
|
1397
1425
|
*/
|
|
1398
|
-
|
|
1426
|
+
height?: number;
|
|
1427
|
+
/**
|
|
1428
|
+
* Duration in milliseconds for time-based formats (video, audio). When specified, creates a parameterized format ID. Omit to reference a template format without parameters.
|
|
1429
|
+
*/
|
|
1430
|
+
duration_ms?: number;
|
|
1399
1431
|
}
|
|
1400
1432
|
/**
|
|
1401
|
-
*
|
|
1433
|
+
* Structured format identifier with agent URL and format name. Can reference: (1) a concrete format with fixed dimensions (id only), (2) a template format without parameters (id only), or (3) a template format with parameters (id + dimensions/duration). Template formats accept parameters in format_id while concrete formats have fixed dimensions in their definition. Parameterized format IDs create unique, specific format variants.
|
|
1402
1434
|
*/
|
|
1403
|
-
export interface
|
|
1404
|
-
/**
|
|
1405
|
-
* Restrict delivery to specific countries (ISO codes). Use for regulatory compliance or RCT testing.
|
|
1406
|
-
*/
|
|
1407
|
-
geo_country_any_of?: string[];
|
|
1435
|
+
export interface FormatID2 {
|
|
1408
1436
|
/**
|
|
1409
|
-
*
|
|
1437
|
+
* URL of the agent that defines this format (e.g., 'https://creatives.adcontextprotocol.org' for standard formats, or 'https://publisher.com/.well-known/adcp/sales' for custom formats)
|
|
1410
1438
|
*/
|
|
1411
|
-
|
|
1439
|
+
agent_url: string;
|
|
1412
1440
|
/**
|
|
1413
|
-
*
|
|
1441
|
+
* Format identifier within the agent's namespace (e.g., 'display_static', 'video_hosted', 'audio_standard'). When used alone, references a template format. When combined with dimension/duration fields, creates a parameterized format ID for a specific variant.
|
|
1414
1442
|
*/
|
|
1415
|
-
|
|
1443
|
+
id: string;
|
|
1416
1444
|
/**
|
|
1417
|
-
*
|
|
1445
|
+
* Width in pixels for visual formats. When specified, height must also be specified. Both fields together create a parameterized format ID for dimension-specific variants.
|
|
1418
1446
|
*/
|
|
1419
|
-
|
|
1447
|
+
width?: number;
|
|
1420
1448
|
/**
|
|
1421
|
-
*
|
|
1449
|
+
* Height in pixels for visual formats. When specified, width must also be specified. Both fields together create a parameterized format ID for dimension-specific variants.
|
|
1422
1450
|
*/
|
|
1423
|
-
|
|
1451
|
+
height?: number;
|
|
1424
1452
|
/**
|
|
1425
|
-
*
|
|
1453
|
+
* Duration in milliseconds for time-based formats (video, audio). When specified, creates a parameterized format ID. Omit to reference a template format without parameters.
|
|
1426
1454
|
*/
|
|
1427
|
-
|
|
1428
|
-
frequency_cap?: FrequencyCap;
|
|
1455
|
+
duration_ms?: number;
|
|
1429
1456
|
}
|
|
1430
1457
|
/**
|
|
1431
|
-
*
|
|
1458
|
+
* 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.
|
|
1432
1459
|
*/
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1460
|
+
/**
|
|
1461
|
+
* Optional geographic refinements for media buys. Most targeting should be expressed in the brief and handled by the publisher. These fields are primarily for geographic restrictions (RCT testing, regulatory compliance).
|
|
1462
|
+
*/
|
|
1463
|
+
/**
|
|
1464
|
+
* Unique identifier for this property (optional). Enables referencing properties by ID instead of repeating full objects.
|
|
1465
|
+
*/
|
|
1466
|
+
export type PropertyType = 'website' | 'mobile_app' | 'ctv_app' | 'dooh' | 'podcast' | 'radio' | 'streaming_audio';
|
|
1439
1467
|
/**
|
|
1440
1468
|
* Type of identifier for this property
|
|
1441
1469
|
*/
|
|
1442
1470
|
export type PropertyIdentifierTypes = 'domain' | 'subdomain' | 'network_id' | 'ios_bundle' | 'android_package' | 'apple_app_store_id' | 'google_play_id' | 'roku_store_id' | 'fire_tv_asin' | 'samsung_app_id' | 'apple_tv_bundle' | 'bundle_id' | 'venue_id' | 'screen_id' | 'openooh_venue_type' | 'rss_url' | 'apple_podcast_id' | 'spotify_show_id' | 'podcast_guid';
|
|
1443
1471
|
/**
|
|
1444
|
-
*
|
|
1472
|
+
* Tag for categorizing publisher properties. Must be lowercase alphanumeric with underscores only.
|
|
1445
1473
|
*/
|
|
1446
1474
|
export interface Property {
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
*/
|
|
1450
|
-
property_id?: string;
|
|
1451
|
-
/**
|
|
1452
|
-
* Type of advertising property
|
|
1453
|
-
*/
|
|
1454
|
-
property_type: 'website' | 'mobile_app' | 'ctv_app' | 'dooh' | 'podcast' | 'radio' | 'streaming_audio';
|
|
1475
|
+
property_id?: PropertyID;
|
|
1476
|
+
property_type: PropertyType;
|
|
1455
1477
|
/**
|
|
1456
1478
|
* Human-readable property name
|
|
1457
1479
|
*/
|
|
@@ -1480,7 +1502,7 @@ export interface Property {
|
|
|
1480
1502
|
/**
|
|
1481
1503
|
* Tags for categorization and grouping (e.g., network membership, content categories)
|
|
1482
1504
|
*/
|
|
1483
|
-
tags?:
|
|
1505
|
+
tags?: PropertyTag[];
|
|
1484
1506
|
/**
|
|
1485
1507
|
* Domain where adagents.json should be checked for authorization validation. Required for list_authorized_properties response. Optional in adagents.json (file location implies domain).
|
|
1486
1508
|
*/
|