@adcp/sdk 6.9.0 → 6.10.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 +285 -5
- package/compliance/cache/3.0.6.previous/domains/brand/index.yaml +163 -0
- package/compliance/cache/3.0.6.previous/domains/creative/index.yaml +412 -0
- package/compliance/cache/3.0.6.previous/domains/governance/index.yaml +683 -0
- package/compliance/cache/3.0.6.previous/domains/media-buy/creative-reception.yaml +247 -0
- package/compliance/cache/3.0.6.previous/domains/media-buy/index.yaml +769 -0
- package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/create_media_buy_async.yaml +232 -0
- package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/creative_fate_after_cancellation.yaml +414 -0
- package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/delivery_reporting.yaml +205 -0
- package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/governance_approved.yaml +211 -0
- package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/governance_conditions.yaml +196 -0
- package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/governance_denied.yaml +192 -0
- package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/governance_denied_recovery.yaml +244 -0
- package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/invalid_transitions.yaml +284 -0
- package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/inventory_list_no_match.yaml +143 -0
- package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/inventory_list_targeting.yaml +271 -0
- package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/measurement_terms_rejected.yaml +195 -0
- package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/pending_creatives_to_start.yaml +250 -0
- package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/proposal_finalize.yaml +243 -0
- package/compliance/cache/3.0.6.previous/domains/media-buy/scenarios/refine_products.yaml +148 -0
- package/compliance/cache/3.0.6.previous/domains/media-buy/state-machine.yaml +442 -0
- package/compliance/cache/3.0.6.previous/domains/signals/index.yaml +266 -0
- package/compliance/cache/3.0.6.previous/domains/sponsored-intelligence/index.yaml +256 -0
- package/compliance/cache/3.0.6.previous/index.json +324 -0
- package/compliance/cache/3.0.6.previous/protocols/brand/index.yaml +163 -0
- package/compliance/cache/3.0.6.previous/protocols/creative/index.yaml +412 -0
- package/compliance/cache/3.0.6.previous/protocols/governance/index.yaml +683 -0
- package/compliance/cache/3.0.6.previous/protocols/media-buy/creative-reception.yaml +247 -0
- package/compliance/cache/3.0.6.previous/protocols/media-buy/index.yaml +769 -0
- package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/create_media_buy_async.yaml +232 -0
- package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/creative_fate_after_cancellation.yaml +414 -0
- package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/delivery_reporting.yaml +205 -0
- package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/governance_approved.yaml +211 -0
- package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/governance_conditions.yaml +196 -0
- package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/governance_denied.yaml +192 -0
- package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/governance_denied_recovery.yaml +244 -0
- package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/invalid_transitions.yaml +284 -0
- package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/inventory_list_no_match.yaml +143 -0
- package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/inventory_list_targeting.yaml +271 -0
- package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/measurement_terms_rejected.yaml +195 -0
- package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +250 -0
- package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/proposal_finalize.yaml +243 -0
- package/compliance/cache/3.0.6.previous/protocols/media-buy/scenarios/refine_products.yaml +148 -0
- package/compliance/cache/3.0.6.previous/protocols/media-buy/state-machine.yaml +442 -0
- package/compliance/cache/3.0.6.previous/protocols/signals/index.yaml +266 -0
- package/compliance/cache/3.0.6.previous/protocols/sponsored-intelligence/index.yaml +256 -0
- package/compliance/cache/3.0.6.previous/specialisms/audience-sync/index.yaml +280 -0
- package/compliance/cache/3.0.6.previous/specialisms/brand-rights/index.yaml +350 -0
- package/compliance/cache/3.0.6.previous/specialisms/brand-rights/scenarios/governance_denied.yaml +204 -0
- package/compliance/cache/3.0.6.previous/specialisms/collection-lists/index.yaml +359 -0
- package/compliance/cache/3.0.6.previous/specialisms/content-standards/index.yaml +572 -0
- package/compliance/cache/3.0.6.previous/specialisms/creative-ad-server/index.yaml +383 -0
- package/compliance/cache/3.0.6.previous/specialisms/creative-generative/generative-seller.yaml +758 -0
- package/compliance/cache/3.0.6.previous/specialisms/creative-generative/index.yaml +746 -0
- package/compliance/cache/3.0.6.previous/specialisms/creative-template/index.yaml +413 -0
- package/compliance/cache/3.0.6.previous/specialisms/governance-aware-seller/index.yaml +136 -0
- package/compliance/cache/3.0.6.previous/specialisms/governance-delivery-monitor/index.yaml +441 -0
- package/compliance/cache/3.0.6.previous/specialisms/governance-spend-authority/denied.yaml +221 -0
- package/compliance/cache/3.0.6.previous/specialisms/governance-spend-authority/index.yaml +330 -0
- package/compliance/cache/3.0.6.previous/specialisms/property-lists/index.yaml +482 -0
- package/compliance/cache/3.0.6.previous/specialisms/sales-broadcast-tv/index.yaml +689 -0
- package/compliance/cache/3.0.6.previous/specialisms/sales-catalog-driven/index.yaml +779 -0
- package/compliance/cache/3.0.6.previous/specialisms/sales-guaranteed/index.yaml +504 -0
- package/compliance/cache/3.0.6.previous/specialisms/sales-non-guaranteed/index.yaml +428 -0
- package/compliance/cache/3.0.6.previous/specialisms/sales-proposal-mode/index.yaml +520 -0
- package/compliance/cache/3.0.6.previous/specialisms/sales-social/index.yaml +584 -0
- package/compliance/cache/3.0.6.previous/specialisms/signal-marketplace/index.yaml +415 -0
- package/compliance/cache/3.0.6.previous/specialisms/signal-marketplace/scenarios/governance_denied.yaml +207 -0
- package/compliance/cache/3.0.6.previous/specialisms/signal-owned/index.yaml +316 -0
- package/compliance/cache/3.0.6.previous/test-kits/acme-outdoor.yaml +210 -0
- package/compliance/cache/3.0.6.previous/test-kits/bistro-oranje.yaml +126 -0
- package/compliance/cache/3.0.6.previous/test-kits/nova-motors.yaml +262 -0
- package/compliance/cache/3.0.6.previous/test-kits/osei-natural.yaml +126 -0
- package/compliance/cache/3.0.6.previous/test-kits/signed-requests-runner.yaml +155 -0
- package/compliance/cache/3.0.6.previous/test-kits/substitution-observer-runner.yaml +690 -0
- package/compliance/cache/3.0.6.previous/test-kits/summit-foods.yaml +125 -0
- package/compliance/cache/3.0.6.previous/test-kits/webhook-receiver-runner.yaml +265 -0
- package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/001-minimal-plan.json +43 -0
- package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/002-full-plan.json +217 -0
- package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/003-bookkeeping-stripped.json +60 -0
- package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/004a-human-review-omitted.json +43 -0
- package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/004b-human-review-explicit-null.json +49 -0
- package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/005a-policy-categories-order-1.json +53 -0
- package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/005b-policy-categories-order-2.json +57 -0
- package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/006a-ext-trace-v1.json +49 -0
- package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/006b-ext-trace-v2.json +53 -0
- package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/007-unicode-objectives.json +43 -0
- package/compliance/cache/3.0.6.previous/test-vectors/plan-hash/008-numeric-canonicalization.json +65 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/README.md +219 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/canonicalization.json +241 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/keys.json +60 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/001-no-signature-header.json +24 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/002-wrong-tag.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/003-expired-signature.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/004-window-too-long.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/005-alg-not-allowed.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/006-missing-covered-component.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/007-missing-content-digest.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/008-unknown-keyid.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/009-key-ops-missing-verify.json +27 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/010-content-digest-mismatch.json +33 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/011-malformed-header.json +27 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/012-missing-expires-param.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/013-expires-le-created.json +27 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/014-missing-nonce-param.json +27 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/015-signature-invalid.json +28 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/016-replayed-nonce.json +35 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/017-key-revoked.json +38 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/018-digest-covered-when-forbidden.json +28 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/019-signature-without-signature-input.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/020-rate-abuse.json +34 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/021-duplicate-signature-input-label.json +31 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/022-multi-valued-content-type.json +31 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/023-multi-valued-content-digest.json +32 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/024-unquoted-string-param.json +31 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/025-jwk-alg-crv-mismatch.json +43 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/026-non-ascii-host.json +31 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/negative/027-webhook-registration-authentication-unsigned.json +25 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/001-basic-post.json +30 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/002-post-with-content-digest.json +31 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/003-es256-post.json +30 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/004-multiple-signature-labels.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/005-default-port-stripped.json +30 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/006-dot-segment-path.json +30 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/007-query-byte-preserved.json +30 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/008-percent-encoded-path.json +30 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/009-percent-encoded-unreserved-decoded.json +30 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/010-percent-encoded-slash-preserved.json +30 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/011-ipv6-authority.json +30 -0
- package/compliance/cache/3.0.6.previous/test-vectors/request-signing/positive/012-ipv6-authority-default-port-stripped.json +30 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/README.md +211 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/keys.json +61 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/001-wrong-tag.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/002-expired-signature.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/003-window-too-long.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/004-alg-not-allowed.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/005-missing-authority-component.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/006-missing-content-digest.json +25 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/007-unknown-keyid.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/008-wrong-adcp-use.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/009-content-digest-mismatch.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/010-malformed-signature-input.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/011-signature-without-input.json +25 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/012-missing-expires-param.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/013-expires-le-created.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/014-missing-nonce-param.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/015-signature-invalid.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/016-replayed-nonce.json +37 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/017-key-revoked.json +32 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/018-rate-abuse.json +33 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/019-revocation-stale.json +32 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/020-key-ops-missing-verify.json +41 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/negative/021-base64-alphabet-mixing.json +26 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/positive/001-basic-post.json +24 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/positive/002-es256-post.json +24 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/positive/003-multiple-signature-labels.json +24 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/positive/004-default-port-stripped.json +24 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/positive/005-percent-encoded-path.json +24 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/positive/006-query-byte-preserved.json +24 -0
- package/compliance/cache/3.0.6.previous/test-vectors/webhook-signing/positive/007-body-without-idempotency-key.json +25 -0
- package/compliance/cache/3.0.6.previous/universal/capability-discovery.yaml +125 -0
- package/compliance/cache/3.0.6.previous/universal/collection-lists-pagination-integrity.yaml +306 -0
- package/compliance/cache/3.0.6.previous/universal/content-standards-pagination-integrity.yaml +326 -0
- package/compliance/cache/3.0.6.previous/universal/deterministic-testing.yaml +1343 -0
- package/compliance/cache/3.0.6.previous/universal/error-compliance.yaml +474 -0
- package/compliance/cache/3.0.6.previous/universal/fictional-entities.yaml +307 -0
- package/compliance/cache/3.0.6.previous/universal/get-media-buys-pagination-integrity.yaml +160 -0
- package/compliance/cache/3.0.6.previous/universal/get-signals-pagination-integrity.yaml +211 -0
- package/compliance/cache/3.0.6.previous/universal/idempotency.yaml +593 -0
- package/compliance/cache/3.0.6.previous/universal/pagination-integrity-creative-formats.yaml +258 -0
- package/compliance/cache/3.0.6.previous/universal/pagination-integrity-list-accounts.yaml +262 -0
- package/compliance/cache/3.0.6.previous/universal/pagination-integrity.yaml +263 -0
- package/compliance/cache/3.0.6.previous/universal/property-lists-pagination-integrity.yaml +307 -0
- package/compliance/cache/3.0.6.previous/universal/runner-output-contract.yaml +358 -0
- package/compliance/cache/3.0.6.previous/universal/schema-validation.yaml +526 -0
- package/compliance/cache/3.0.6.previous/universal/security.yaml +431 -0
- package/compliance/cache/3.0.6.previous/universal/signed-requests.yaml +205 -0
- package/compliance/cache/3.0.6.previous/universal/storyboard-schema.yaml +1176 -0
- package/compliance/cache/3.0.6.previous/universal/v3-envelope-integrity.yaml +106 -0
- package/compliance/cache/3.0.6.previous/universal/webhook-emission.yaml +337 -0
- package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
- package/dist/lib/server/create-adcp-server.d.ts +33 -0
- package/dist/lib/server/create-adcp-server.d.ts.map +1 -1
- package/dist/lib/server/create-adcp-server.js +127 -1
- package/dist/lib/server/create-adcp-server.js.map +1 -1
- package/dist/lib/server/credential-policy.d.ts +221 -0
- package/dist/lib/server/credential-policy.d.ts.map +1 -0
- package/dist/lib/server/credential-policy.js +260 -0
- package/dist/lib/server/credential-policy.js.map +1 -0
- package/dist/lib/server/dynamic-registry.d.ts +219 -0
- package/dist/lib/server/dynamic-registry.d.ts.map +1 -0
- package/dist/lib/server/dynamic-registry.js +245 -0
- package/dist/lib/server/dynamic-registry.js.map +1 -0
- package/dist/lib/server/index.d.ts +8 -0
- package/dist/lib/server/index.d.ts.map +1 -1
- package/dist/lib/server/index.js +15 -4
- package/dist/lib/server/index.js.map +1 -1
- package/dist/lib/server/operational-platform.d.ts +239 -0
- package/dist/lib/server/operational-platform.d.ts.map +1 -0
- package/dist/lib/server/operational-platform.js +94 -0
- package/dist/lib/server/operational-platform.js.map +1 -0
- package/dist/lib/server/wire-safe.d.ts +211 -0
- package/dist/lib/server/wire-safe.d.ts.map +1 -0
- package/dist/lib/server/wire-safe.js +231 -0
- package/dist/lib/server/wire-safe.js.map +1 -0
- package/dist/lib/server/wire-spec-fields.generated.d.ts +168 -0
- package/dist/lib/server/wire-spec-fields.generated.d.ts.map +1 -0
- package/dist/lib/server/wire-spec-fields.generated.js +172 -0
- package/dist/lib/server/wire-spec-fields.generated.js.map +1 -0
- package/dist/lib/testing/compliance/index.d.ts +2 -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/summary.d.ts +77 -0
- package/dist/lib/testing/compliance/summary.d.ts.map +1 -0
- package/dist/lib/testing/compliance/summary.js +176 -0
- package/dist/lib/testing/compliance/summary.js.map +1 -0
- package/dist/lib/testing/storyboard/compliance.d.ts +26 -0
- package/dist/lib/testing/storyboard/compliance.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/compliance.js +51 -0
- package/dist/lib/testing/storyboard/compliance.js.map +1 -1
- package/dist/lib/testing/storyboard/index.d.ts +2 -2
- package/dist/lib/testing/storyboard/index.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/index.js +4 -2
- package/dist/lib/testing/storyboard/index.js.map +1 -1
- package/dist/lib/testing/storyboard/runner.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/runner.js +58 -5
- package/dist/lib/testing/storyboard/runner.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 +2 -2
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
id: creative_sales_agent
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
title: "Sales agent with creative capabilities"
|
|
4
|
+
category: creative_sales_agent
|
|
5
|
+
summary: "Stateful sales agent that accepts pushed creative assets and renders them in its environment."
|
|
6
|
+
track: creative
|
|
7
|
+
required_tools:
|
|
8
|
+
- sync_creatives
|
|
9
|
+
|
|
10
|
+
narrative: |
|
|
11
|
+
You run a publisher platform, retail media network, or other sell-side system that
|
|
12
|
+
accepts creative assets from buyers. The buyer pushes assets or catalog items to your
|
|
13
|
+
platform, and you render them in your environment.
|
|
14
|
+
|
|
15
|
+
Your agent is stateful: buyers push creatives to you via sync_creatives, and you
|
|
16
|
+
persist them for rendering. This is where catalogs get interesting — the buyer might
|
|
17
|
+
push product feeds (flights, hotels, retail products) that your platform renders as
|
|
18
|
+
native ads.
|
|
19
|
+
|
|
20
|
+
This storyboard walks through the push-and-preview flow from the buyer's perspective.
|
|
21
|
+
|
|
22
|
+
agent:
|
|
23
|
+
interaction_model: stateful_push
|
|
24
|
+
capabilities:
|
|
25
|
+
- has_creative_library
|
|
26
|
+
examples:
|
|
27
|
+
- "Publisher platforms"
|
|
28
|
+
- "Retail media networks"
|
|
29
|
+
- "Native ad platforms"
|
|
30
|
+
|
|
31
|
+
caller:
|
|
32
|
+
role: buyer_agent
|
|
33
|
+
example: "Pinnacle Agency (buyer)"
|
|
34
|
+
|
|
35
|
+
prerequisites:
|
|
36
|
+
description: |
|
|
37
|
+
The buyer has creative assets (images, catalog feeds, or ad tags) ready to push.
|
|
38
|
+
The test kit provides sample assets compatible with common publisher formats.
|
|
39
|
+
test_kit: "test-kits/acme-outdoor.yaml"
|
|
40
|
+
|
|
41
|
+
phases:
|
|
42
|
+
- id: capability_discovery
|
|
43
|
+
title: "Capability discovery"
|
|
44
|
+
narrative: |
|
|
45
|
+
The buyer calls get_adcp_capabilities to confirm the agent supports creative operations before browsing or building creatives.
|
|
46
|
+
|
|
47
|
+
steps:
|
|
48
|
+
- id: get_capabilities
|
|
49
|
+
title: "Check agent capabilities"
|
|
50
|
+
narrative: |
|
|
51
|
+
Verify that the agent declares the expected protocol support before
|
|
52
|
+
proceeding with domain-specific operations.
|
|
53
|
+
task: get_adcp_capabilities
|
|
54
|
+
schema_ref: "protocol/get-adcp-capabilities-request.json"
|
|
55
|
+
response_schema_ref: "protocol/get-adcp-capabilities-response.json"
|
|
56
|
+
doc_ref: "/protocol/get_adcp_capabilities"
|
|
57
|
+
comply_scenario: capability_discovery
|
|
58
|
+
stateful: false
|
|
59
|
+
expected: |
|
|
60
|
+
Return capabilities declaring creative in supported_protocols, confirming the agent handles creative operations.
|
|
61
|
+
sample_request:
|
|
62
|
+
context:
|
|
63
|
+
correlation_id: "creative_sales_agent--get_capabilities"
|
|
64
|
+
validations:
|
|
65
|
+
- check: response_schema
|
|
66
|
+
description: "Response matches get-adcp-capabilities-response.json schema"
|
|
67
|
+
- check: field_present
|
|
68
|
+
path: "supported_protocols"
|
|
69
|
+
description: "Agent declares supported protocols"
|
|
70
|
+
|
|
71
|
+
- check: field_present
|
|
72
|
+
path: "context"
|
|
73
|
+
description: "Response echoes back the context object"
|
|
74
|
+
- check: field_value
|
|
75
|
+
path: "context.correlation_id"
|
|
76
|
+
value: "creative_sales_agent--get_capabilities"
|
|
77
|
+
description: "Context correlation_id returned unchanged"
|
|
78
|
+
- id: discover_accepted_formats
|
|
79
|
+
title: "Discover accepted formats"
|
|
80
|
+
narrative: |
|
|
81
|
+
The buyer first needs to know what creative formats your platform accepts.
|
|
82
|
+
For a publisher, this includes your native ad formats, display placements,
|
|
83
|
+
and any custom units. For retail media, this might include product listing
|
|
84
|
+
formats or sponsored product cards.
|
|
85
|
+
|
|
86
|
+
steps:
|
|
87
|
+
- id: list_formats
|
|
88
|
+
title: "Discover accepted creative formats"
|
|
89
|
+
narrative: |
|
|
90
|
+
The buyer asks: "What creative formats does your platform accept?" Your
|
|
91
|
+
platform returns the formats you support — native post formats, display
|
|
92
|
+
units, video slots, or product listing formats.
|
|
93
|
+
task: list_creative_formats
|
|
94
|
+
schema_ref: "creative/list-creative-formats-request.json"
|
|
95
|
+
response_schema_ref: "creative/list-creative-formats-response.json"
|
|
96
|
+
doc_ref: "/creative/task-reference/list_creative_formats"
|
|
97
|
+
comply_scenario: creative_sync
|
|
98
|
+
stateful: false
|
|
99
|
+
expected: |
|
|
100
|
+
Return the creative formats your platform accepts. Each format should define:
|
|
101
|
+
- Asset requirements (what the buyer needs to provide)
|
|
102
|
+
- Render dimensions
|
|
103
|
+
- Any catalog requirements (for product-feed formats)
|
|
104
|
+
|
|
105
|
+
- id: push_creatives
|
|
106
|
+
title: "Push creative assets"
|
|
107
|
+
narrative: |
|
|
108
|
+
The buyer pushes their creative assets to your platform. This could be:
|
|
109
|
+
- Standard display assets (images, HTML tags)
|
|
110
|
+
- Catalog items (product feeds, flight listings, hotel inventory)
|
|
111
|
+
- Native ad content (headlines, descriptions, images)
|
|
112
|
+
|
|
113
|
+
Your platform validates the assets against your format specs and stores them.
|
|
114
|
+
|
|
115
|
+
steps:
|
|
116
|
+
- id: sync_creatives
|
|
117
|
+
title: "Push creatives to the platform"
|
|
118
|
+
narrative: |
|
|
119
|
+
The buyer uploads creative assets to your platform. For standard ads, this
|
|
120
|
+
is images and copy. For catalog-driven formats, this is a product feed or
|
|
121
|
+
set of catalog items. Your platform validates each creative against the
|
|
122
|
+
format's asset requirements and returns a per-creative status.
|
|
123
|
+
task: sync_creatives
|
|
124
|
+
schema_ref: "creative/sync-creatives-request.json"
|
|
125
|
+
response_schema_ref: "creative/sync-creatives-response.json"
|
|
126
|
+
doc_ref: "/creative/task-reference/sync_creatives"
|
|
127
|
+
comply_scenario: creative_sync
|
|
128
|
+
stateful: true
|
|
129
|
+
expected: |
|
|
130
|
+
Accept the creatives, validate against format specifications, and return:
|
|
131
|
+
- Per-creative action (created or updated)
|
|
132
|
+
- Per-creative status (accepted, pending_review, rejected)
|
|
133
|
+
- Platform-assigned IDs if applicable
|
|
134
|
+
- Validation errors for rejected creatives
|
|
135
|
+
|
|
136
|
+
sample_request:
|
|
137
|
+
account:
|
|
138
|
+
brand:
|
|
139
|
+
domain: "acmeoutdoor.example"
|
|
140
|
+
operator: "pinnacle-agency.example"
|
|
141
|
+
creatives:
|
|
142
|
+
- creative_id: "acme_summer_native_001"
|
|
143
|
+
name: "Acme Summer Sale — native 2026"
|
|
144
|
+
format_id:
|
|
145
|
+
agent_url: "https://your-platform.example.com"
|
|
146
|
+
id: "native_post"
|
|
147
|
+
assets:
|
|
148
|
+
headline:
|
|
149
|
+
asset_type: "text"
|
|
150
|
+
content: "Summer Sale — 40% Off All Gear"
|
|
151
|
+
image:
|
|
152
|
+
asset_type: "image"
|
|
153
|
+
url: "https://test-assets.adcontextprotocol.org/acme-outdoor/hero-master.jpg"
|
|
154
|
+
width: 1200
|
|
155
|
+
height: 628
|
|
156
|
+
click_url:
|
|
157
|
+
asset_type: "url"
|
|
158
|
+
url: "https://acmeoutdoor.example/summer-sale"
|
|
159
|
+
|
|
160
|
+
idempotency_key: "$generate:uuid_v4#creative_sales_agent_push_creatives_sync_creatives"
|
|
161
|
+
context:
|
|
162
|
+
correlation_id: "creative_sales_agent--sync_creatives"
|
|
163
|
+
validations:
|
|
164
|
+
- check: response_schema
|
|
165
|
+
description: "Response matches sync-creatives-response.json schema"
|
|
166
|
+
- check: field_present
|
|
167
|
+
path: "creatives[0].action"
|
|
168
|
+
description: "Each creative has an action (created/updated)"
|
|
169
|
+
|
|
170
|
+
- check: field_present
|
|
171
|
+
path: "context"
|
|
172
|
+
description: "Response echoes back the context object"
|
|
173
|
+
- check: field_value
|
|
174
|
+
path: "context.correlation_id"
|
|
175
|
+
value: "creative_sales_agent--sync_creatives"
|
|
176
|
+
description: "Context correlation_id returned unchanged"
|
|
177
|
+
- id: preview
|
|
178
|
+
title: "Preview pushed creatives"
|
|
179
|
+
narrative: |
|
|
180
|
+
After pushing assets, the buyer wants to see how their creatives will render
|
|
181
|
+
in your platform's environment. For a publisher, this shows the ad in the
|
|
182
|
+
publication's native chrome — with engagement buttons, community badges, and
|
|
183
|
+
platform-specific styling that the buyer can't preview elsewhere.
|
|
184
|
+
|
|
185
|
+
steps:
|
|
186
|
+
- id: preview_synced
|
|
187
|
+
title: "Preview a pushed creative"
|
|
188
|
+
narrative: |
|
|
189
|
+
The buyer asks to see how a synced creative will look in your environment.
|
|
190
|
+
Your platform renders the creative with its native chrome — the surrounding
|
|
191
|
+
UI, engagement buttons, and platform-specific styling.
|
|
192
|
+
task: preview_creative
|
|
193
|
+
schema_ref: "creative/preview-creative-request.json"
|
|
194
|
+
response_schema_ref: "creative/preview-creative-response.json"
|
|
195
|
+
doc_ref: "/creative/task-reference/preview_creative"
|
|
196
|
+
comply_scenario: creative_flow
|
|
197
|
+
stateful: true
|
|
198
|
+
expected: |
|
|
199
|
+
Return a preview showing the creative in your platform's environment.
|
|
200
|
+
The preview should include your platform's native chrome — not just the
|
|
201
|
+
raw assets, but how they'll actually appear to users.
|
|
202
|
+
|
|
203
|
+
sample_request:
|
|
204
|
+
account:
|
|
205
|
+
brand:
|
|
206
|
+
domain: "acmeoutdoor.example"
|
|
207
|
+
operator: "pinnacle-agency.example"
|
|
208
|
+
request_type: "single"
|
|
209
|
+
creative_manifest:
|
|
210
|
+
creative_id: "acme_summer_native_001"
|
|
211
|
+
format_id:
|
|
212
|
+
agent_url: "https://your-platform.example.com"
|
|
213
|
+
id: "native_post"
|
|
214
|
+
assets:
|
|
215
|
+
headline:
|
|
216
|
+
asset_type: "text"
|
|
217
|
+
content: "Summer Sale — 40% Off"
|
|
218
|
+
body:
|
|
219
|
+
asset_type: "text"
|
|
220
|
+
content: "Top-rated outdoor gear. This weekend only."
|
|
221
|
+
image:
|
|
222
|
+
asset_type: "image"
|
|
223
|
+
url: "https://test-assets.adcontextprotocol.org/acme-outdoor/hero.jpg"
|
|
224
|
+
width: 1200
|
|
225
|
+
height: 628
|
|
226
|
+
click_url:
|
|
227
|
+
asset_type: "url"
|
|
228
|
+
url: "https://acmeoutdoor.example/summer-sale"
|
|
229
|
+
output_format: "url"
|
|
230
|
+
quality: "draft"
|
|
231
|
+
|
|
232
|
+
context:
|
|
233
|
+
correlation_id: "creative_sales_agent--preview_synced"
|
|
234
|
+
validations:
|
|
235
|
+
- check: response_schema
|
|
236
|
+
description: "Response matches preview-creative-response.json schema"
|
|
237
|
+
- check: field_present
|
|
238
|
+
path: "previews[0].renders[0].preview_url"
|
|
239
|
+
description: "Preview includes a renderable URL"
|
|
240
|
+
|
|
241
|
+
- check: field_present
|
|
242
|
+
path: "context"
|
|
243
|
+
description: "Response echoes back the context object"
|
|
244
|
+
- check: field_value
|
|
245
|
+
path: "context.correlation_id"
|
|
246
|
+
value: "creative_sales_agent--preview_synced"
|
|
247
|
+
description: "Context correlation_id returned unchanged"
|