@adcp/client 4.22.1 → 4.24.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 +23 -9
- package/bin/adcp.js +83 -18
- package/dist/lib/index.d.ts +3 -5
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +16 -12
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/server/index.d.ts +5 -1
- package/dist/lib/server/index.d.ts.map +1 -1
- package/dist/lib/server/index.js +10 -1
- package/dist/lib/server/index.js.map +1 -1
- package/dist/lib/server/postgres-task-store.d.ts +105 -0
- package/dist/lib/server/postgres-task-store.d.ts.map +1 -0
- package/dist/lib/server/postgres-task-store.js +267 -0
- package/dist/lib/server/postgres-task-store.js.map +1 -0
- package/dist/lib/server/responses.d.ts +1 -0
- package/dist/lib/server/responses.d.ts.map +1 -1
- package/dist/lib/server/responses.js +1 -0
- package/dist/lib/server/responses.js.map +1 -1
- package/dist/lib/server/test-controller.d.ts +88 -0
- package/dist/lib/server/test-controller.d.ts.map +1 -0
- package/dist/lib/server/test-controller.js +227 -0
- package/dist/lib/server/test-controller.js.map +1 -0
- package/dist/lib/testing/agent-tester.d.ts +1 -1
- package/dist/lib/testing/agent-tester.d.ts.map +1 -1
- package/dist/lib/testing/agent-tester.js +13 -1
- package/dist/lib/testing/agent-tester.js.map +1 -1
- package/dist/lib/testing/compliance/comply.d.ts +24 -5
- package/dist/lib/testing/compliance/comply.d.ts.map +1 -1
- package/dist/lib/testing/compliance/comply.js +318 -277
- package/dist/lib/testing/compliance/comply.js.map +1 -1
- package/dist/lib/testing/compliance/index.d.ts +2 -1
- package/dist/lib/testing/compliance/index.d.ts.map +1 -1
- package/dist/lib/testing/compliance/index.js +6 -1
- package/dist/lib/testing/compliance/index.js.map +1 -1
- package/dist/lib/testing/compliance/platform-storyboards.d.ts +44 -0
- package/dist/lib/testing/compliance/platform-storyboards.d.ts.map +1 -0
- package/dist/lib/testing/compliance/platform-storyboards.js +232 -0
- package/dist/lib/testing/compliance/platform-storyboards.js.map +1 -0
- package/dist/lib/testing/compliance/storyboard-tracks.d.ts +2 -9
- package/dist/lib/testing/compliance/storyboard-tracks.d.ts.map +1 -1
- package/dist/lib/testing/compliance/storyboard-tracks.js +15 -46
- package/dist/lib/testing/compliance/storyboard-tracks.js.map +1 -1
- package/dist/lib/testing/compliance/types.d.ts +22 -1
- package/dist/lib/testing/compliance/types.d.ts.map +1 -1
- package/dist/lib/testing/index.d.ts +1 -1
- package/dist/lib/testing/index.d.ts.map +1 -1
- package/dist/lib/testing/index.js +6 -1
- package/dist/lib/testing/index.js.map +1 -1
- package/dist/lib/testing/orchestrator.d.ts.map +1 -1
- package/dist/lib/testing/orchestrator.js +5 -1
- package/dist/lib/testing/orchestrator.js.map +1 -1
- package/dist/lib/testing/scenarios/brand-rights.d.ts +19 -1
- package/dist/lib/testing/scenarios/brand-rights.d.ts.map +1 -1
- package/dist/lib/testing/scenarios/brand-rights.js +138 -1
- package/dist/lib/testing/scenarios/brand-rights.js.map +1 -1
- package/dist/lib/testing/scenarios/deterministic.js +7 -7
- package/dist/lib/testing/scenarios/deterministic.js.map +1 -1
- package/dist/lib/testing/scenarios/index.d.ts +1 -1
- package/dist/lib/testing/scenarios/index.d.ts.map +1 -1
- package/dist/lib/testing/scenarios/index.js +4 -2
- package/dist/lib/testing/scenarios/index.js.map +1 -1
- package/dist/lib/testing/scenarios/media-buy.js +4 -4
- package/dist/lib/testing/scenarios/media-buy.js.map +1 -1
- package/dist/lib/testing/storyboard/loader.d.ts +1 -0
- package/dist/lib/testing/storyboard/loader.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/loader.js +14 -0
- package/dist/lib/testing/storyboard/loader.js.map +1 -1
- package/dist/lib/testing/storyboard/request-builder.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/request-builder.js +88 -11
- package/dist/lib/testing/storyboard/request-builder.js.map +1 -1
- package/dist/lib/testing/storyboard/runner.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/runner.js +83 -5
- package/dist/lib/testing/storyboard/runner.js.map +1 -1
- package/dist/lib/testing/storyboard/task-map.d.ts +2 -0
- package/dist/lib/testing/storyboard/task-map.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/task-map.js +23 -9
- package/dist/lib/testing/storyboard/task-map.js.map +1 -1
- package/dist/lib/testing/storyboard/types.d.ts +6 -2
- package/dist/lib/testing/storyboard/types.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/validations.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/validations.js +21 -4
- package/dist/lib/testing/storyboard/validations.js.map +1 -1
- package/dist/lib/testing/types.d.ts +1 -1
- package/dist/lib/testing/types.d.ts.map +1 -1
- package/dist/lib/types/core.generated.d.ts +242 -3
- 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 +3697 -3468
- package/dist/lib/types/schemas.generated.d.ts.map +1 -1
- package/dist/lib/types/schemas.generated.js +226 -118
- package/dist/lib/types/schemas.generated.js.map +1 -1
- package/dist/lib/types/tools.generated.d.ts +281 -79
- package/dist/lib/types/tools.generated.d.ts.map +1 -1
- package/dist/lib/utils/capabilities.d.ts +2 -2
- package/dist/lib/utils/capabilities.d.ts.map +1 -1
- package/dist/lib/utils/capabilities.js +9 -3
- package/dist/lib/utils/capabilities.js.map +1 -1
- package/dist/lib/utils/response-schemas.d.ts.map +1 -1
- package/dist/lib/utils/response-schemas.js +9 -0
- package/dist/lib/utils/response-schemas.js.map +1 -1
- package/dist/lib/version.d.ts +3 -3
- package/dist/lib/version.js +3 -3
- package/docs/llms.txt +56 -32
- package/package.json +8 -2
- package/skills/adcp/SKILL.md +118 -33
- package/skills/build-creative-agent/SKILL.md +221 -0
- package/skills/build-generative-seller-agent/SKILL.md +288 -0
- package/skills/build-retail-media-agent/SKILL.md +237 -0
- package/skills/build-seller-agent/SKILL.md +313 -0
- package/skills/build-signals-agent/SKILL.md +203 -0
- package/storyboards/audience_sync.yaml +18 -29
- package/storyboards/behavioral_analysis.yaml +40 -72
- package/storyboards/brand_rights.yaml +172 -75
- package/storyboards/campaign_governance_conditions.yaml +187 -0
- package/storyboards/campaign_governance_delivery.yaml +231 -0
- package/storyboards/campaign_governance_denied.yaml +136 -0
- package/storyboards/capability_discovery.yaml +106 -0
- package/storyboards/content_standards.yaml +251 -0
- package/storyboards/creative_ad_server.yaml +108 -16
- package/storyboards/creative_generative.yaml +317 -0
- package/storyboards/creative_lifecycle.yaml +284 -0
- package/storyboards/creative_sales_agent.yaml +2 -6
- package/storyboards/creative_template.yaml +3 -6
- package/storyboards/deterministic_testing.yaml +271 -245
- package/storyboards/error_compliance.yaml +105 -108
- package/storyboards/media_buy_catalog_creative.yaml +8 -5
- package/storyboards/media_buy_generative_seller.yaml +581 -0
- package/storyboards/media_buy_governance_escalation.yaml +10 -6
- package/storyboards/media_buy_guaranteed_approval.yaml +21 -19
- package/storyboards/media_buy_non_guaranteed.yaml +9 -8
- package/storyboards/media_buy_proposal_mode.yaml +12 -11
- package/storyboards/media_buy_seller.yaml +161 -173
- package/storyboards/media_buy_state_machine.yaml +102 -101
- package/storyboards/property_governance.yaml +239 -0
- package/storyboards/schema.yaml +3 -2
- package/storyboards/schema_validation.yaml +58 -51
- package/storyboards/si_session.yaml +99 -317
- package/storyboards/signal_marketplace.yaml +9 -5
- package/storyboards/signal_owned.yaml +6 -5
- package/storyboards/social_platform.yaml +274 -0
- package/storyboards/test-kits/acme-outdoor.yaml +118 -0
- package/storyboards/test-kits/nova-motors.yaml +134 -0
- package/storyboards/governance_content_standards.yaml +0 -213
- package/storyboards/governance_property_lists.yaml +0 -372
|
@@ -3,15 +3,11 @@ version: "1.0.0"
|
|
|
3
3
|
title: "Guaranteed media buy with human IO approval"
|
|
4
4
|
category: media_buy_guaranteed_approval
|
|
5
5
|
summary: "Seller agent that requires human-in-the-loop IO signing before guaranteed media buys go live."
|
|
6
|
-
platform_types:
|
|
7
|
-
- display_ad_server
|
|
8
|
-
- video_ad_server
|
|
9
|
-
- audio_platform
|
|
10
|
-
- linear_tv_platform
|
|
11
|
-
|
|
12
6
|
track: media_buy
|
|
13
7
|
required_tools:
|
|
8
|
+
- get_products
|
|
14
9
|
- create_media_buy
|
|
10
|
+
|
|
15
11
|
narrative: |
|
|
16
12
|
You run a sell-side platform that requires human approval before guaranteed media buys go
|
|
17
13
|
live. When a buyer creates a guaranteed buy, your platform returns a submitted status with
|
|
@@ -20,7 +16,7 @@ narrative: |
|
|
|
20
16
|
|
|
21
17
|
The buyer either polls get_media_buys or configures a push_notification_config webhook to
|
|
22
18
|
receive a callback when the IO is signed. Once approved, the media buy transitions from
|
|
23
|
-
pending_approval to
|
|
19
|
+
pending_approval to active and the buyer can sync creatives and monitor delivery.
|
|
24
20
|
|
|
25
21
|
This storyboard isolates the guaranteed approval path — the async handshake between agent
|
|
26
22
|
automation and human decision-making that makes guaranteed buys work in practice.
|
|
@@ -114,6 +110,7 @@ phases:
|
|
|
114
110
|
schema_ref: "media-buy/get-products-request.json"
|
|
115
111
|
response_schema_ref: "media-buy/get-products-response.json"
|
|
116
112
|
doc_ref: "/media-buy/task-reference/get_products"
|
|
113
|
+
comply_scenario: full_sales_flow
|
|
117
114
|
stateful: false
|
|
118
115
|
expected: |
|
|
119
116
|
Return guaranteed products matching the brief. Each product should include:
|
|
@@ -172,6 +169,7 @@ phases:
|
|
|
172
169
|
schema_ref: "media-buy/create-media-buy-request.json"
|
|
173
170
|
response_schema_ref: "media-buy/create-media-buy-response.json"
|
|
174
171
|
doc_ref: "/media-buy/task-reference/create_media_buy"
|
|
172
|
+
comply_scenario: create_media_buy
|
|
175
173
|
stateful: true
|
|
176
174
|
expected: |
|
|
177
175
|
Return the media buy in submitted status:
|
|
@@ -229,6 +227,7 @@ phases:
|
|
|
229
227
|
schema_ref: "media-buy/get-media-buys-request.json"
|
|
230
228
|
response_schema_ref: "media-buy/get-media-buys-response.json"
|
|
231
229
|
doc_ref: "/media-buy/task-reference/get_media_buys"
|
|
230
|
+
comply_scenario: media_buy_lifecycle
|
|
232
231
|
stateful: true
|
|
233
232
|
expected: |
|
|
234
233
|
Return the media buy in pending_approval status:
|
|
@@ -265,28 +264,29 @@ phases:
|
|
|
265
264
|
narrative: |
|
|
266
265
|
The human has reviewed the IO and signed it through the setup URL. The buyer
|
|
267
266
|
polls get_media_buys again (or received a webhook notification) and sees that the
|
|
268
|
-
media buy has transitioned from pending_approval to
|
|
267
|
+
media buy has transitioned from pending_approval to active. The buy
|
|
269
268
|
is now live.
|
|
270
269
|
|
|
271
270
|
steps:
|
|
272
|
-
- id:
|
|
273
|
-
title: "Check media buy status (
|
|
271
|
+
- id: get_media_buys_active
|
|
272
|
+
title: "Check media buy status (active)"
|
|
274
273
|
narrative: |
|
|
275
274
|
After the human signs the IO, the buyer checks the media buy status again.
|
|
276
|
-
Your platform returns
|
|
275
|
+
Your platform returns active, indicating the buy is approved
|
|
277
276
|
and inventory is reserved.
|
|
278
277
|
task: get_media_buys
|
|
279
278
|
schema_ref: "media-buy/get-media-buys-request.json"
|
|
280
279
|
response_schema_ref: "media-buy/get-media-buys-response.json"
|
|
281
280
|
doc_ref: "/media-buy/task-reference/get_media_buys"
|
|
281
|
+
comply_scenario: media_buy_lifecycle
|
|
282
282
|
stateful: true
|
|
283
283
|
expected: |
|
|
284
|
-
Return the media buy in
|
|
284
|
+
Return the media buy in active status:
|
|
285
285
|
- media_buy_id: matches the buy created earlier
|
|
286
|
-
- status:
|
|
286
|
+
- status: active (IO has been signed)
|
|
287
287
|
- confirmed_at: timestamp when the IO was signed
|
|
288
|
-
- packages: line items
|
|
289
|
-
- valid_actions: updated for
|
|
288
|
+
- packages: line items with reserved inventory
|
|
289
|
+
- valid_actions: updated for active state (creative sync, pause, etc.)
|
|
290
290
|
|
|
291
291
|
sample_request:
|
|
292
292
|
account:
|
|
@@ -301,15 +301,15 @@ phases:
|
|
|
301
301
|
description: "Response matches get-media-buys-response.json schema"
|
|
302
302
|
- check: field_present
|
|
303
303
|
path: "media_buys[0].status"
|
|
304
|
-
description: "Media buy status is
|
|
304
|
+
description: "Media buy status is active"
|
|
305
305
|
- check: field_present
|
|
306
306
|
path: "media_buys[0].confirmed_at"
|
|
307
|
-
description: "
|
|
307
|
+
description: "Active buy includes a confirmed_at timestamp"
|
|
308
308
|
|
|
309
309
|
- id: creative_sync
|
|
310
310
|
title: "Creative sync"
|
|
311
311
|
narrative: |
|
|
312
|
-
With the IO signed and the media buy
|
|
312
|
+
With the IO signed and the media buy active, the buyer syncs creative assets
|
|
313
313
|
to your platform. Each package has creative format requirements that the buyer
|
|
314
314
|
discovered during product discovery.
|
|
315
315
|
|
|
@@ -323,6 +323,7 @@ phases:
|
|
|
323
323
|
schema_ref: "creative/sync-creatives-request.json"
|
|
324
324
|
response_schema_ref: "creative/sync-creatives-response.json"
|
|
325
325
|
doc_ref: "/creative/task-reference/sync_creatives"
|
|
326
|
+
comply_scenario: creative_sync
|
|
326
327
|
stateful: true
|
|
327
328
|
expected: |
|
|
328
329
|
Accept and validate creatives:
|
|
@@ -371,6 +372,7 @@ phases:
|
|
|
371
372
|
schema_ref: "media-buy/get-media-buy-delivery-request.json"
|
|
372
373
|
response_schema_ref: "media-buy/get-media-buy-delivery-response.json"
|
|
373
374
|
doc_ref: "/media-buy/task-reference/get_media_buy_delivery"
|
|
375
|
+
comply_scenario: reporting_flow
|
|
374
376
|
stateful: true
|
|
375
377
|
expected: |
|
|
376
378
|
Return delivery metrics for the guaranteed media buy:
|
|
@@ -392,5 +394,5 @@ phases:
|
|
|
392
394
|
- check: response_schema
|
|
393
395
|
description: "Response matches get-media-buy-delivery-response.json schema"
|
|
394
396
|
- check: field_present
|
|
395
|
-
path: "
|
|
397
|
+
path: "media_buy_deliveries"
|
|
396
398
|
description: "Response contains media buy delivery data"
|
|
@@ -3,15 +3,11 @@ version: "1.0.0"
|
|
|
3
3
|
title: "Non-guaranteed auction-based media buy"
|
|
4
4
|
category: media_buy_non_guaranteed
|
|
5
5
|
summary: "Seller agent for auction-based, non-guaranteed buying where the buyer sets bid prices and budgets."
|
|
6
|
-
platform_types:
|
|
7
|
-
- social_platform
|
|
8
|
-
- dsp
|
|
9
|
-
- pmax_platform
|
|
10
|
-
- generative_dsp
|
|
11
|
-
|
|
12
6
|
track: media_buy
|
|
13
7
|
required_tools:
|
|
8
|
+
- get_products
|
|
14
9
|
- create_media_buy
|
|
10
|
+
|
|
15
11
|
narrative: |
|
|
16
12
|
You run a sell-side platform with auction-based inventory. Non-guaranteed buys don't
|
|
17
13
|
require IOs or human approval — the buyer sets a bid price and budget, and your platform
|
|
@@ -66,6 +62,7 @@ phases:
|
|
|
66
62
|
schema_ref: "media-buy/get-products-request.json"
|
|
67
63
|
response_schema_ref: "media-buy/get-products-response.json"
|
|
68
64
|
doc_ref: "/media-buy/task-reference/get_products"
|
|
65
|
+
comply_scenario: full_sales_flow
|
|
69
66
|
stateful: false
|
|
70
67
|
expected: |
|
|
71
68
|
Return non-guaranteed products matching the brief. Each product should include:
|
|
@@ -122,11 +119,12 @@ phases:
|
|
|
122
119
|
schema_ref: "media-buy/create-media-buy-request.json"
|
|
123
120
|
response_schema_ref: "media-buy/create-media-buy-response.json"
|
|
124
121
|
doc_ref: "/media-buy/task-reference/create_media_buy"
|
|
122
|
+
comply_scenario: create_media_buy
|
|
125
123
|
stateful: true
|
|
126
124
|
expected: |
|
|
127
125
|
Return the media buy in completed status:
|
|
128
126
|
- media_buy_id: your platform's identifier
|
|
129
|
-
- status:
|
|
127
|
+
- status: active (no async approval needed)
|
|
130
128
|
- confirmed_at: timestamp
|
|
131
129
|
- packages: confirmed line items with bid prices acknowledged
|
|
132
130
|
- valid_actions: pause, update_bid, get_delivery
|
|
@@ -178,6 +176,7 @@ phases:
|
|
|
178
176
|
schema_ref: "media-buy/get-media-buys-request.json"
|
|
179
177
|
response_schema_ref: "media-buy/get-media-buys-response.json"
|
|
180
178
|
doc_ref: "/media-buy/task-reference/get_media_buys"
|
|
179
|
+
comply_scenario: media_buy_lifecycle
|
|
181
180
|
stateful: true
|
|
182
181
|
expected: |
|
|
183
182
|
Return the media buy with pacing data:
|
|
@@ -219,6 +218,7 @@ phases:
|
|
|
219
218
|
schema_ref: "media-buy/update-media-buy-request.json"
|
|
220
219
|
response_schema_ref: "media-buy/update-media-buy-response.json"
|
|
221
220
|
doc_ref: "/media-buy/task-reference/update_media_buy"
|
|
221
|
+
comply_scenario: media_buy_lifecycle
|
|
222
222
|
stateful: true
|
|
223
223
|
expected: |
|
|
224
224
|
Apply the updates and return the modified media buy:
|
|
@@ -262,6 +262,7 @@ phases:
|
|
|
262
262
|
schema_ref: "media-buy/get-media-buy-delivery-request.json"
|
|
263
263
|
response_schema_ref: "media-buy/get-media-buy-delivery-response.json"
|
|
264
264
|
doc_ref: "/media-buy/task-reference/get_media_buy_delivery"
|
|
265
|
+
comply_scenario: reporting_flow
|
|
265
266
|
stateful: true
|
|
266
267
|
expected: |
|
|
267
268
|
Return delivery metrics for the non-guaranteed media buy:
|
|
@@ -284,5 +285,5 @@ phases:
|
|
|
284
285
|
- check: response_schema
|
|
285
286
|
description: "Response matches get-media-buy-delivery-response.json schema"
|
|
286
287
|
- check: field_present
|
|
287
|
-
path: "
|
|
288
|
+
path: "media_buy_deliveries"
|
|
288
289
|
description: "Response contains media buy delivery data"
|
|
@@ -3,16 +3,11 @@ version: "1.0.0"
|
|
|
3
3
|
title: "Media buy via proposal acceptance"
|
|
4
4
|
category: media_buy_proposal_mode
|
|
5
5
|
summary: "Seller agent that generates curated media plan proposals the buyer can review, refine, and accept."
|
|
6
|
-
platform_types:
|
|
7
|
-
- dsp
|
|
8
|
-
- retail_media
|
|
9
|
-
- pmax_platform
|
|
10
|
-
- generative_dsp
|
|
11
|
-
|
|
12
6
|
track: media_buy
|
|
13
7
|
required_tools:
|
|
14
|
-
- create_media_buy
|
|
15
8
|
- get_products
|
|
9
|
+
- create_media_buy
|
|
10
|
+
|
|
16
11
|
narrative: |
|
|
17
12
|
Your seller generates curated media plan proposals. The buyer sends a brief, your platform
|
|
18
13
|
returns products alongside proposals — curated bundles with budget allocations and rationale
|
|
@@ -110,6 +105,7 @@ phases:
|
|
|
110
105
|
schema_ref: "media-buy/get-products-request.json"
|
|
111
106
|
response_schema_ref: "media-buy/get-products-response.json"
|
|
112
107
|
doc_ref: "/media-buy/task-reference/get_products"
|
|
108
|
+
comply_scenario: full_sales_flow
|
|
113
109
|
stateful: false
|
|
114
110
|
expected: |
|
|
115
111
|
Return products and proposals matching the brief:
|
|
@@ -164,6 +160,7 @@ phases:
|
|
|
164
160
|
schema_ref: "media-buy/get-products-request.json"
|
|
165
161
|
response_schema_ref: "media-buy/get-products-response.json"
|
|
166
162
|
doc_ref: "/media-buy/task-reference/get_products"
|
|
163
|
+
comply_scenario: full_sales_flow
|
|
167
164
|
stateful: true
|
|
168
165
|
expected: |
|
|
169
166
|
Return the refined proposal:
|
|
@@ -200,7 +197,7 @@ phases:
|
|
|
200
197
|
The buyer is satisfied with the refined proposal and accepts it by creating a
|
|
201
198
|
media buy with the proposal_id. Instead of specifying individual packages, the
|
|
202
199
|
buyer passes the proposal_id and total_budget. Your platform converts the proposal
|
|
203
|
-
into
|
|
200
|
+
into an active media buy with the exact product selections and budget allocations
|
|
204
201
|
from the proposal.
|
|
205
202
|
|
|
206
203
|
steps:
|
|
@@ -217,11 +214,12 @@ phases:
|
|
|
217
214
|
schema_ref: "media-buy/create-media-buy-request.json"
|
|
218
215
|
response_schema_ref: "media-buy/create-media-buy-response.json"
|
|
219
216
|
doc_ref: "/media-buy/task-reference/create_media_buy"
|
|
217
|
+
comply_scenario: create_media_buy
|
|
220
218
|
stateful: true
|
|
221
219
|
expected: |
|
|
222
|
-
Convert the proposal into
|
|
220
|
+
Convert the proposal into an active media buy:
|
|
223
221
|
- media_buy_id: your platform's identifier
|
|
224
|
-
- status:
|
|
222
|
+
- status: active
|
|
225
223
|
- confirmed_at: timestamp
|
|
226
224
|
- packages: line items derived from the proposal's budget allocations
|
|
227
225
|
- proposal_id: echoed back to confirm which proposal was accepted
|
|
@@ -260,6 +258,7 @@ phases:
|
|
|
260
258
|
schema_ref: "creative/list-creative-formats-request.json"
|
|
261
259
|
response_schema_ref: "creative/list-creative-formats-response.json"
|
|
262
260
|
doc_ref: "/creative/task-reference/list_creative_formats"
|
|
261
|
+
comply_scenario: creative_lifecycle
|
|
263
262
|
stateful: false
|
|
264
263
|
expected: |
|
|
265
264
|
Return creative formats your platform accepts. Each format should define:
|
|
@@ -286,6 +285,7 @@ phases:
|
|
|
286
285
|
schema_ref: "creative/sync-creatives-request.json"
|
|
287
286
|
response_schema_ref: "creative/sync-creatives-response.json"
|
|
288
287
|
doc_ref: "/creative/task-reference/sync_creatives"
|
|
288
|
+
comply_scenario: creative_sync
|
|
289
289
|
stateful: true
|
|
290
290
|
expected: |
|
|
291
291
|
Accept and validate creatives:
|
|
@@ -344,6 +344,7 @@ phases:
|
|
|
344
344
|
schema_ref: "media-buy/get-media-buy-delivery-request.json"
|
|
345
345
|
response_schema_ref: "media-buy/get-media-buy-delivery-response.json"
|
|
346
346
|
doc_ref: "/media-buy/task-reference/get_media_buy_delivery"
|
|
347
|
+
comply_scenario: reporting_flow
|
|
347
348
|
stateful: true
|
|
348
349
|
expected: |
|
|
349
350
|
Return delivery metrics for the media buy:
|
|
@@ -365,5 +366,5 @@ phases:
|
|
|
365
366
|
- check: response_schema
|
|
366
367
|
description: "Response matches get-media-buy-delivery-response.json schema"
|
|
367
368
|
- check: field_present
|
|
368
|
-
path: "
|
|
369
|
+
path: "media_buy_deliveries"
|
|
369
370
|
description: "Response contains media buy delivery data"
|