@adcp/client 4.22.0 → 4.23.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/dist/lib/index.d.ts +2 -2
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/server/index.d.ts +1 -1
- package/dist/lib/server/index.d.ts.map +1 -1
- package/dist/lib/server/serve.d.ts +32 -4
- package/dist/lib/server/serve.d.ts.map +1 -1
- package/dist/lib/server/serve.js +12 -4
- package/dist/lib/server/serve.js.map +1 -1
- package/dist/lib/testing/compliance/comply.d.ts +22 -5
- package/dist/lib/testing/compliance/comply.d.ts.map +1 -1
- package/dist/lib/testing/compliance/comply.js +242 -276
- package/dist/lib/testing/compliance/comply.js.map +1 -1
- package/dist/lib/testing/compliance/index.d.ts +1 -0
- 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 +230 -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 +4 -44
- package/dist/lib/testing/compliance/storyboard-tracks.js.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/types/core.generated.d.ts +241 -2
- 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 +3380 -3154
- package/dist/lib/types/schemas.generated.d.ts.map +1 -1
- package/dist/lib/types/schemas.generated.js +220 -115
- package/dist/lib/types/schemas.generated.js.map +1 -1
- package/dist/lib/types/tools.generated.d.ts +267 -74
- package/dist/lib/types/tools.generated.d.ts.map +1 -1
- package/dist/lib/version.d.ts +3 -3
- package/dist/lib/version.js +3 -3
- package/docs/guides/BUILD-AN-AGENT.md +5 -3
- package/docs/llms.txt +48 -32
- package/examples/signals-agent.ts +3 -2
- package/package.json +1 -1
- 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 +135 -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_lifecycle.yaml +284 -0
- package/storyboards/creative_sales_agent.yaml +2 -6
- package/storyboards/creative_template.yaml +1 -5
- package/storyboards/error_compliance.yaml +105 -108
- package/storyboards/media_buy_catalog_creative.yaml +6 -4
- package/storyboards/media_buy_governance_escalation.yaml +9 -5
- package/storyboards/media_buy_guaranteed_approval.yaml +9 -7
- package/storyboards/media_buy_non_guaranteed.yaml +7 -6
- package/storyboards/media_buy_proposal_mode.yaml +9 -8
- package/storyboards/media_buy_seller.yaml +153 -165
- package/storyboards/media_buy_state_machine.yaml +100 -99
- package/storyboards/property_governance.yaml +239 -0
- package/storyboards/schema.yaml +2 -2
- package/storyboards/schema_validation.yaml +58 -51
- package/storyboards/si_session.yaml +99 -317
- package/storyboards/signal_marketplace.yaml +6 -5
- package/storyboards/signal_owned.yaml +5 -5
- package/storyboards/social_platform.yaml +274 -0
- package/storyboards/governance_content_standards.yaml +0 -213
- package/storyboards/governance_property_lists.yaml +0 -372
|
@@ -3,13 +3,11 @@ version: "1.0.0"
|
|
|
3
3
|
title: "Catalog-driven creative and conversion tracking"
|
|
4
4
|
category: media_buy_catalog_creative
|
|
5
5
|
summary: "Seller that renders dynamic ads from product catalogs, tracks conversions, and optimizes delivery based on performance feedback."
|
|
6
|
-
platform_types:
|
|
7
|
-
- retail_media
|
|
8
|
-
|
|
9
6
|
track: media_buy
|
|
10
7
|
required_tools:
|
|
8
|
+
- get_products
|
|
11
9
|
- create_media_buy
|
|
12
|
-
|
|
10
|
+
|
|
13
11
|
narrative: |
|
|
14
12
|
You run a platform that supports catalog-driven advertising — think Snap Dynamic Ads,
|
|
15
13
|
Meta Product Catalogs, or retail media product listing ads. The buyer pushes a product
|
|
@@ -112,6 +110,7 @@ phases:
|
|
|
112
110
|
schema_ref: "creative/list-creative-formats-request.json"
|
|
113
111
|
response_schema_ref: "creative/list-creative-formats-response.json"
|
|
114
112
|
doc_ref: "/creative/task-reference/list_creative_formats"
|
|
113
|
+
comply_scenario: creative_lifecycle
|
|
115
114
|
stateful: false
|
|
116
115
|
expected: |
|
|
117
116
|
Return creative formats that accept catalog assets. Look for formats with
|
|
@@ -219,6 +218,7 @@ phases:
|
|
|
219
218
|
schema_ref: "media-buy/get-products-request.json"
|
|
220
219
|
response_schema_ref: "media-buy/get-products-response.json"
|
|
221
220
|
doc_ref: "/media-buy/task-reference/get_products"
|
|
221
|
+
comply_scenario: full_sales_flow
|
|
222
222
|
stateful: false
|
|
223
223
|
expected: |
|
|
224
224
|
Return products that support catalog-driven creative. Products should indicate
|
|
@@ -255,6 +255,7 @@ phases:
|
|
|
255
255
|
schema_ref: "media-buy/create-media-buy-request.json"
|
|
256
256
|
response_schema_ref: "media-buy/create-media-buy-response.json"
|
|
257
257
|
doc_ref: "/media-buy/task-reference/create_media_buy"
|
|
258
|
+
comply_scenario: create_media_buy
|
|
258
259
|
stateful: true
|
|
259
260
|
expected: |
|
|
260
261
|
Create the media buy with catalog-driven packages. Return:
|
|
@@ -438,6 +439,7 @@ phases:
|
|
|
438
439
|
schema_ref: "media-buy/get-media-buy-delivery-request.json"
|
|
439
440
|
response_schema_ref: "media-buy/get-media-buy-delivery-response.json"
|
|
440
441
|
doc_ref: "/media-buy/task-reference/get_media_buy_delivery"
|
|
442
|
+
comply_scenario: reporting_flow
|
|
441
443
|
stateful: true
|
|
442
444
|
expected: |
|
|
443
445
|
Return delivery metrics including impressions, clicks, spend, and
|
|
@@ -3,14 +3,11 @@ version: "1.0.0"
|
|
|
3
3
|
title: "Governance denial and human escalation"
|
|
4
4
|
category: media_buy_governance_escalation
|
|
5
5
|
summary: "Buyer's governance agent denies a media buy that exceeds spending authority, escalates to a human who approves with conditions."
|
|
6
|
-
platform_types:
|
|
7
|
-
- dsp
|
|
8
|
-
- ai_ad_network
|
|
9
|
-
- generative_dsp
|
|
10
|
-
|
|
11
6
|
track: campaign_governance
|
|
12
7
|
required_tools:
|
|
13
8
|
- sync_plans
|
|
9
|
+
- check_governance
|
|
10
|
+
|
|
14
11
|
narrative: |
|
|
15
12
|
The buyer's governance agent denies a media buy because it exceeds the agent's spending
|
|
16
13
|
authority. The governance check escalates to a human reviewer who approves with conditions.
|
|
@@ -137,6 +134,7 @@ phases:
|
|
|
137
134
|
schema_ref: "governance/sync-plans-request.json"
|
|
138
135
|
response_schema_ref: "governance/sync-plans-response.json"
|
|
139
136
|
doc_ref: "/governance/campaign/tasks/sync_plans"
|
|
137
|
+
comply_scenario: campaign_governance
|
|
140
138
|
stateful: true
|
|
141
139
|
expected: |
|
|
142
140
|
Acknowledge the governance plan:
|
|
@@ -179,6 +177,7 @@ phases:
|
|
|
179
177
|
schema_ref: "media-buy/get-products-request.json"
|
|
180
178
|
response_schema_ref: "media-buy/get-products-response.json"
|
|
181
179
|
doc_ref: "/media-buy/task-reference/get_products"
|
|
180
|
+
comply_scenario: full_sales_flow
|
|
182
181
|
stateful: false
|
|
183
182
|
expected: |
|
|
184
183
|
Return products matching the brief with pricing that totals above $20K:
|
|
@@ -224,6 +223,7 @@ phases:
|
|
|
224
223
|
schema_ref: "governance/check-governance-request.json"
|
|
225
224
|
response_schema_ref: "governance/check-governance-response.json"
|
|
226
225
|
doc_ref: "/governance/campaign/tasks/check_governance"
|
|
226
|
+
comply_scenario: campaign_governance_denied
|
|
227
227
|
stateful: true
|
|
228
228
|
expected: |
|
|
229
229
|
Return a denied governance decision:
|
|
@@ -282,6 +282,7 @@ phases:
|
|
|
282
282
|
schema_ref: "governance/check-governance-request.json"
|
|
283
283
|
response_schema_ref: "governance/check-governance-response.json"
|
|
284
284
|
doc_ref: "/governance/campaign/tasks/check_governance"
|
|
285
|
+
comply_scenario: campaign_governance_conditions
|
|
285
286
|
stateful: true
|
|
286
287
|
expected: |
|
|
287
288
|
Return an approved governance decision with conditions:
|
|
@@ -344,6 +345,7 @@ phases:
|
|
|
344
345
|
schema_ref: "media-buy/create-media-buy-request.json"
|
|
345
346
|
response_schema_ref: "media-buy/create-media-buy-response.json"
|
|
346
347
|
doc_ref: "/media-buy/task-reference/create_media_buy"
|
|
348
|
+
comply_scenario: create_media_buy
|
|
347
349
|
stateful: true
|
|
348
350
|
expected: |
|
|
349
351
|
Confirm the media buy with governance approval:
|
|
@@ -398,6 +400,7 @@ phases:
|
|
|
398
400
|
schema_ref: "governance/report-plan-outcome-request.json"
|
|
399
401
|
response_schema_ref: "governance/report-plan-outcome-response.json"
|
|
400
402
|
doc_ref: "/governance/campaign/tasks/report_plan_outcome"
|
|
403
|
+
comply_scenario: campaign_governance
|
|
401
404
|
stateful: true
|
|
402
405
|
expected: |
|
|
403
406
|
Acknowledge the outcome report:
|
|
@@ -443,6 +446,7 @@ phases:
|
|
|
443
446
|
schema_ref: "governance/get-plan-audit-logs-request.json"
|
|
444
447
|
response_schema_ref: "governance/get-plan-audit-logs-response.json"
|
|
445
448
|
doc_ref: "/governance/campaign/tasks/get_plan_audit_logs"
|
|
449
|
+
comply_scenario: campaign_governance
|
|
446
450
|
stateful: false
|
|
447
451
|
expected: |
|
|
448
452
|
Return the complete audit trail for the governance plan:
|
|
@@ -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
|
|
@@ -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:
|
|
@@ -279,6 +278,7 @@ phases:
|
|
|
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
284
|
Return the media buy in confirmed or active status:
|
|
@@ -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:
|
|
@@ -351,7 +352,7 @@ phases:
|
|
|
351
352
|
- check: response_schema
|
|
352
353
|
description: "Response matches sync-creatives-response.json schema"
|
|
353
354
|
- check: field_present
|
|
354
|
-
path: "
|
|
355
|
+
path: "results[0].action"
|
|
355
356
|
description: "Each creative has an action (created/updated)"
|
|
356
357
|
|
|
357
358
|
- id: delivery_monitoring
|
|
@@ -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:
|
|
@@ -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,6 +119,7 @@ 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:
|
|
@@ -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:
|
|
@@ -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:
|
|
@@ -217,6 +214,7 @@ 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
220
|
Convert the proposal into a confirmed media buy:
|
|
@@ -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:
|
|
@@ -324,7 +324,7 @@ phases:
|
|
|
324
324
|
- check: response_schema
|
|
325
325
|
description: "Response matches sync-creatives-response.json schema"
|
|
326
326
|
- check: field_present
|
|
327
|
-
path: "
|
|
327
|
+
path: "results[0].action"
|
|
328
328
|
description: "Each creative has an action (created/updated)"
|
|
329
329
|
|
|
330
330
|
- id: delivery
|
|
@@ -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:
|