@adcp/sdk 5.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/.claude-plugin/marketplace.json +17 -0
- package/.claude-plugin/plugin.json +25 -0
- package/ADCP_VERSION +1 -0
- package/AGENTS.md +282 -0
- package/LICENSE +191 -0
- package/README.md +816 -0
- package/bin/adcp-async-handler.js +275 -0
- package/bin/adcp-config.js +240 -0
- package/bin/adcp-fuzz.js +391 -0
- package/bin/adcp-grade.js +505 -0
- package/bin/adcp-json-stdout.js +36 -0
- package/bin/adcp-registry.js +745 -0
- package/bin/adcp-signing.js +233 -0
- package/bin/adcp-step-hints.js +246 -0
- package/bin/adcp-version-check.js +150 -0
- package/bin/adcp.js +4821 -0
- package/compliance/cache/3.0.0/domains/brand/index.yaml +167 -0
- package/compliance/cache/3.0.0/domains/creative/index.yaml +412 -0
- package/compliance/cache/3.0.0/domains/governance/index.yaml +683 -0
- package/compliance/cache/3.0.0/domains/media-buy/creative-reception.yaml +247 -0
- package/compliance/cache/3.0.0/domains/media-buy/index.yaml +742 -0
- package/compliance/cache/3.0.0/domains/media-buy/scenarios/creative_fate_after_cancellation.yaml +414 -0
- package/compliance/cache/3.0.0/domains/media-buy/scenarios/delivery_reporting.yaml +180 -0
- package/compliance/cache/3.0.0/domains/media-buy/scenarios/governance_approved.yaml +186 -0
- package/compliance/cache/3.0.0/domains/media-buy/scenarios/governance_conditions.yaml +195 -0
- package/compliance/cache/3.0.0/domains/media-buy/scenarios/governance_denied.yaml +189 -0
- package/compliance/cache/3.0.0/domains/media-buy/scenarios/governance_denied_recovery.yaml +243 -0
- package/compliance/cache/3.0.0/domains/media-buy/scenarios/invalid_transitions.yaml +279 -0
- package/compliance/cache/3.0.0/domains/media-buy/scenarios/inventory_list_no_match.yaml +143 -0
- package/compliance/cache/3.0.0/domains/media-buy/scenarios/inventory_list_targeting.yaml +266 -0
- package/compliance/cache/3.0.0/domains/media-buy/scenarios/measurement_terms_rejected.yaml +194 -0
- package/compliance/cache/3.0.0/domains/media-buy/scenarios/pending_creatives_to_start.yaml +250 -0
- package/compliance/cache/3.0.0/domains/media-buy/scenarios/proposal_finalize.yaml +242 -0
- package/compliance/cache/3.0.0/domains/media-buy/scenarios/refine_products.yaml +148 -0
- package/compliance/cache/3.0.0/domains/media-buy/state-machine.yaml +437 -0
- package/compliance/cache/3.0.0/domains/signals/index.yaml +266 -0
- package/compliance/cache/3.0.0/domains/sponsored-intelligence/index.yaml +256 -0
- package/compliance/cache/3.0.0/index.json +324 -0
- package/compliance/cache/3.0.0/protocols/brand/index.yaml +167 -0
- package/compliance/cache/3.0.0/protocols/creative/index.yaml +412 -0
- package/compliance/cache/3.0.0/protocols/governance/index.yaml +683 -0
- package/compliance/cache/3.0.0/protocols/media-buy/creative-reception.yaml +247 -0
- package/compliance/cache/3.0.0/protocols/media-buy/index.yaml +742 -0
- package/compliance/cache/3.0.0/protocols/media-buy/scenarios/creative_fate_after_cancellation.yaml +414 -0
- package/compliance/cache/3.0.0/protocols/media-buy/scenarios/delivery_reporting.yaml +180 -0
- package/compliance/cache/3.0.0/protocols/media-buy/scenarios/governance_approved.yaml +186 -0
- package/compliance/cache/3.0.0/protocols/media-buy/scenarios/governance_conditions.yaml +195 -0
- package/compliance/cache/3.0.0/protocols/media-buy/scenarios/governance_denied.yaml +189 -0
- package/compliance/cache/3.0.0/protocols/media-buy/scenarios/governance_denied_recovery.yaml +243 -0
- package/compliance/cache/3.0.0/protocols/media-buy/scenarios/invalid_transitions.yaml +279 -0
- package/compliance/cache/3.0.0/protocols/media-buy/scenarios/inventory_list_no_match.yaml +143 -0
- package/compliance/cache/3.0.0/protocols/media-buy/scenarios/inventory_list_targeting.yaml +266 -0
- package/compliance/cache/3.0.0/protocols/media-buy/scenarios/measurement_terms_rejected.yaml +194 -0
- package/compliance/cache/3.0.0/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +250 -0
- package/compliance/cache/3.0.0/protocols/media-buy/scenarios/proposal_finalize.yaml +242 -0
- package/compliance/cache/3.0.0/protocols/media-buy/scenarios/refine_products.yaml +148 -0
- package/compliance/cache/3.0.0/protocols/media-buy/state-machine.yaml +437 -0
- package/compliance/cache/3.0.0/protocols/signals/index.yaml +266 -0
- package/compliance/cache/3.0.0/protocols/sponsored-intelligence/index.yaml +256 -0
- package/compliance/cache/3.0.0/specialisms/audience-sync/index.yaml +280 -0
- package/compliance/cache/3.0.0/specialisms/brand-rights/index.yaml +346 -0
- package/compliance/cache/3.0.0/specialisms/brand-rights/scenarios/governance_denied.yaml +203 -0
- package/compliance/cache/3.0.0/specialisms/collection-lists/index.yaml +359 -0
- package/compliance/cache/3.0.0/specialisms/content-standards/index.yaml +572 -0
- package/compliance/cache/3.0.0/specialisms/creative-ad-server/index.yaml +383 -0
- package/compliance/cache/3.0.0/specialisms/creative-generative/generative-seller.yaml +733 -0
- package/compliance/cache/3.0.0/specialisms/creative-generative/index.yaml +746 -0
- package/compliance/cache/3.0.0/specialisms/creative-template/index.yaml +413 -0
- package/compliance/cache/3.0.0/specialisms/governance-aware-seller/index.yaml +99 -0
- package/compliance/cache/3.0.0/specialisms/governance-delivery-monitor/index.yaml +419 -0
- package/compliance/cache/3.0.0/specialisms/governance-spend-authority/denied.yaml +221 -0
- package/compliance/cache/3.0.0/specialisms/governance-spend-authority/index.yaml +330 -0
- package/compliance/cache/3.0.0/specialisms/property-lists/index.yaml +482 -0
- package/compliance/cache/3.0.0/specialisms/sales-broadcast-tv/index.yaml +664 -0
- package/compliance/cache/3.0.0/specialisms/sales-catalog-driven/index.yaml +779 -0
- package/compliance/cache/3.0.0/specialisms/sales-guaranteed/index.yaml +479 -0
- package/compliance/cache/3.0.0/specialisms/sales-non-guaranteed/index.yaml +428 -0
- package/compliance/cache/3.0.0/specialisms/sales-proposal-mode/index.yaml +520 -0
- package/compliance/cache/3.0.0/specialisms/sales-social/index.yaml +521 -0
- package/compliance/cache/3.0.0/specialisms/signal-marketplace/index.yaml +415 -0
- package/compliance/cache/3.0.0/specialisms/signal-marketplace/scenarios/governance_denied.yaml +195 -0
- package/compliance/cache/3.0.0/specialisms/signal-owned/index.yaml +316 -0
- package/compliance/cache/3.0.0/specialisms/signed-requests/index.yaml +192 -0
- package/compliance/cache/3.0.0/test-kits/acme-outdoor.yaml +210 -0
- package/compliance/cache/3.0.0/test-kits/bistro-oranje.yaml +126 -0
- package/compliance/cache/3.0.0/test-kits/nova-motors.yaml +262 -0
- package/compliance/cache/3.0.0/test-kits/osei-natural.yaml +126 -0
- package/compliance/cache/3.0.0/test-kits/signed-requests-runner.yaml +153 -0
- package/compliance/cache/3.0.0/test-kits/substitution-observer-runner.yaml +690 -0
- package/compliance/cache/3.0.0/test-kits/summit-foods.yaml +125 -0
- package/compliance/cache/3.0.0/test-kits/webhook-receiver-runner.yaml +265 -0
- package/compliance/cache/3.0.0/test-vectors/plan-hash/001-minimal-plan.json +43 -0
- package/compliance/cache/3.0.0/test-vectors/plan-hash/002-full-plan.json +217 -0
- package/compliance/cache/3.0.0/test-vectors/plan-hash/003-bookkeeping-stripped.json +60 -0
- package/compliance/cache/3.0.0/test-vectors/plan-hash/004a-human-review-omitted.json +43 -0
- package/compliance/cache/3.0.0/test-vectors/plan-hash/004b-human-review-explicit-null.json +49 -0
- package/compliance/cache/3.0.0/test-vectors/plan-hash/005a-policy-categories-order-1.json +53 -0
- package/compliance/cache/3.0.0/test-vectors/plan-hash/005b-policy-categories-order-2.json +57 -0
- package/compliance/cache/3.0.0/test-vectors/plan-hash/006a-ext-trace-v1.json +49 -0
- package/compliance/cache/3.0.0/test-vectors/plan-hash/006b-ext-trace-v2.json +53 -0
- package/compliance/cache/3.0.0/test-vectors/plan-hash/007-unicode-objectives.json +43 -0
- package/compliance/cache/3.0.0/test-vectors/plan-hash/008-numeric-canonicalization.json +65 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/README.md +219 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/canonicalization.json +241 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/keys.json +60 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/negative/001-no-signature-header.json +24 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/negative/002-wrong-tag.json +26 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/negative/003-expired-signature.json +26 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/negative/004-window-too-long.json +26 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/negative/005-alg-not-allowed.json +26 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/negative/006-missing-covered-component.json +26 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/negative/007-missing-content-digest.json +26 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/negative/008-unknown-keyid.json +26 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/negative/009-key-ops-missing-verify.json +27 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/negative/010-content-digest-mismatch.json +33 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/negative/011-malformed-header.json +27 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/negative/012-missing-expires-param.json +26 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/negative/013-expires-le-created.json +27 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/negative/014-missing-nonce-param.json +27 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/negative/015-signature-invalid.json +28 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/negative/016-replayed-nonce.json +35 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/negative/017-key-revoked.json +38 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/negative/018-digest-covered-when-forbidden.json +28 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/negative/019-signature-without-signature-input.json +26 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/negative/020-rate-abuse.json +34 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/negative/021-duplicate-signature-input-label.json +31 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/negative/022-multi-valued-content-type.json +31 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/negative/023-multi-valued-content-digest.json +32 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/negative/024-unquoted-string-param.json +31 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/negative/025-jwk-alg-crv-mismatch.json +43 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/negative/026-non-ascii-host.json +31 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/negative/027-webhook-registration-authentication-unsigned.json +25 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/positive/001-basic-post.json +30 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/positive/002-post-with-content-digest.json +31 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/positive/003-es256-post.json +30 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/positive/004-multiple-signature-labels.json +26 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/positive/005-default-port-stripped.json +30 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/positive/006-dot-segment-path.json +30 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/positive/007-query-byte-preserved.json +30 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/positive/008-percent-encoded-path.json +30 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/positive/009-percent-encoded-unreserved-decoded.json +30 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/positive/010-percent-encoded-slash-preserved.json +30 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/positive/011-ipv6-authority.json +30 -0
- package/compliance/cache/3.0.0/test-vectors/request-signing/positive/012-ipv6-authority-default-port-stripped.json +30 -0
- package/compliance/cache/3.0.0/test-vectors/webhook-signing/README.md +211 -0
- package/compliance/cache/3.0.0/test-vectors/webhook-signing/keys.json +61 -0
- package/compliance/cache/3.0.0/test-vectors/webhook-signing/negative/001-wrong-tag.json +26 -0
- package/compliance/cache/3.0.0/test-vectors/webhook-signing/negative/002-expired-signature.json +26 -0
- package/compliance/cache/3.0.0/test-vectors/webhook-signing/negative/003-window-too-long.json +26 -0
- package/compliance/cache/3.0.0/test-vectors/webhook-signing/negative/004-alg-not-allowed.json +26 -0
- package/compliance/cache/3.0.0/test-vectors/webhook-signing/negative/005-missing-authority-component.json +26 -0
- package/compliance/cache/3.0.0/test-vectors/webhook-signing/negative/006-missing-content-digest.json +25 -0
- package/compliance/cache/3.0.0/test-vectors/webhook-signing/negative/007-unknown-keyid.json +26 -0
- package/compliance/cache/3.0.0/test-vectors/webhook-signing/negative/008-wrong-adcp-use.json +26 -0
- package/compliance/cache/3.0.0/test-vectors/webhook-signing/negative/009-content-digest-mismatch.json +26 -0
- package/compliance/cache/3.0.0/test-vectors/webhook-signing/negative/010-malformed-signature-input.json +26 -0
- package/compliance/cache/3.0.0/test-vectors/webhook-signing/negative/011-signature-without-input.json +25 -0
- package/compliance/cache/3.0.0/test-vectors/webhook-signing/negative/012-missing-expires-param.json +26 -0
- package/compliance/cache/3.0.0/test-vectors/webhook-signing/negative/013-expires-le-created.json +26 -0
- package/compliance/cache/3.0.0/test-vectors/webhook-signing/negative/014-missing-nonce-param.json +26 -0
- package/compliance/cache/3.0.0/test-vectors/webhook-signing/negative/015-signature-invalid.json +26 -0
- package/compliance/cache/3.0.0/test-vectors/webhook-signing/negative/016-replayed-nonce.json +37 -0
- package/compliance/cache/3.0.0/test-vectors/webhook-signing/negative/017-key-revoked.json +32 -0
- package/compliance/cache/3.0.0/test-vectors/webhook-signing/negative/018-rate-abuse.json +33 -0
- package/compliance/cache/3.0.0/test-vectors/webhook-signing/negative/019-revocation-stale.json +32 -0
- package/compliance/cache/3.0.0/test-vectors/webhook-signing/negative/020-key-ops-missing-verify.json +41 -0
- package/compliance/cache/3.0.0/test-vectors/webhook-signing/negative/021-base64-alphabet-mixing.json +26 -0
- package/compliance/cache/3.0.0/test-vectors/webhook-signing/positive/001-basic-post.json +24 -0
- package/compliance/cache/3.0.0/test-vectors/webhook-signing/positive/002-es256-post.json +24 -0
- package/compliance/cache/3.0.0/test-vectors/webhook-signing/positive/003-multiple-signature-labels.json +24 -0
- package/compliance/cache/3.0.0/test-vectors/webhook-signing/positive/004-default-port-stripped.json +24 -0
- package/compliance/cache/3.0.0/test-vectors/webhook-signing/positive/005-percent-encoded-path.json +24 -0
- package/compliance/cache/3.0.0/test-vectors/webhook-signing/positive/006-query-byte-preserved.json +24 -0
- package/compliance/cache/3.0.0/test-vectors/webhook-signing/positive/007-body-without-idempotency-key.json +25 -0
- package/compliance/cache/3.0.0/universal/capability-discovery.yaml +125 -0
- package/compliance/cache/3.0.0/universal/deterministic-testing.yaml +1318 -0
- package/compliance/cache/3.0.0/universal/error-compliance.yaml +468 -0
- package/compliance/cache/3.0.0/universal/fictional-entities.yaml +307 -0
- package/compliance/cache/3.0.0/universal/idempotency.yaml +577 -0
- package/compliance/cache/3.0.0/universal/runner-output-contract.yaml +335 -0
- package/compliance/cache/3.0.0/universal/schema-validation.yaml +514 -0
- package/compliance/cache/3.0.0/universal/security.yaml +428 -0
- package/compliance/cache/3.0.0/universal/storyboard-schema.yaml +1010 -0
- package/compliance/cache/3.0.0/universal/webhook-emission.yaml +337 -0
- package/compliance/cache/3.0.0.previous/domains/brand/index.yaml +167 -0
- package/compliance/cache/3.0.0.previous/domains/creative/index.yaml +412 -0
- package/compliance/cache/3.0.0.previous/domains/governance/index.yaml +683 -0
- package/compliance/cache/3.0.0.previous/domains/media-buy/creative-reception.yaml +247 -0
- package/compliance/cache/3.0.0.previous/domains/media-buy/index.yaml +742 -0
- package/compliance/cache/3.0.0.previous/domains/media-buy/scenarios/creative_fate_after_cancellation.yaml +414 -0
- package/compliance/cache/3.0.0.previous/domains/media-buy/scenarios/delivery_reporting.yaml +180 -0
- package/compliance/cache/3.0.0.previous/domains/media-buy/scenarios/governance_approved.yaml +186 -0
- package/compliance/cache/3.0.0.previous/domains/media-buy/scenarios/governance_conditions.yaml +195 -0
- package/compliance/cache/3.0.0.previous/domains/media-buy/scenarios/governance_denied.yaml +189 -0
- package/compliance/cache/3.0.0.previous/domains/media-buy/scenarios/governance_denied_recovery.yaml +243 -0
- package/compliance/cache/3.0.0.previous/domains/media-buy/scenarios/invalid_transitions.yaml +279 -0
- package/compliance/cache/3.0.0.previous/domains/media-buy/scenarios/inventory_list_no_match.yaml +143 -0
- package/compliance/cache/3.0.0.previous/domains/media-buy/scenarios/inventory_list_targeting.yaml +266 -0
- package/compliance/cache/3.0.0.previous/domains/media-buy/scenarios/measurement_terms_rejected.yaml +194 -0
- package/compliance/cache/3.0.0.previous/domains/media-buy/scenarios/pending_creatives_to_start.yaml +250 -0
- package/compliance/cache/3.0.0.previous/domains/media-buy/scenarios/proposal_finalize.yaml +242 -0
- package/compliance/cache/3.0.0.previous/domains/media-buy/scenarios/refine_products.yaml +148 -0
- package/compliance/cache/3.0.0.previous/domains/media-buy/state-machine.yaml +437 -0
- package/compliance/cache/3.0.0.previous/domains/signals/index.yaml +266 -0
- package/compliance/cache/3.0.0.previous/domains/sponsored-intelligence/index.yaml +256 -0
- package/compliance/cache/3.0.0.previous/index.json +324 -0
- package/compliance/cache/3.0.0.previous/protocols/brand/index.yaml +167 -0
- package/compliance/cache/3.0.0.previous/protocols/creative/index.yaml +412 -0
- package/compliance/cache/3.0.0.previous/protocols/governance/index.yaml +683 -0
- package/compliance/cache/3.0.0.previous/protocols/media-buy/creative-reception.yaml +247 -0
- package/compliance/cache/3.0.0.previous/protocols/media-buy/index.yaml +742 -0
- package/compliance/cache/3.0.0.previous/protocols/media-buy/scenarios/creative_fate_after_cancellation.yaml +414 -0
- package/compliance/cache/3.0.0.previous/protocols/media-buy/scenarios/delivery_reporting.yaml +180 -0
- package/compliance/cache/3.0.0.previous/protocols/media-buy/scenarios/governance_approved.yaml +186 -0
- package/compliance/cache/3.0.0.previous/protocols/media-buy/scenarios/governance_conditions.yaml +195 -0
- package/compliance/cache/3.0.0.previous/protocols/media-buy/scenarios/governance_denied.yaml +189 -0
- package/compliance/cache/3.0.0.previous/protocols/media-buy/scenarios/governance_denied_recovery.yaml +243 -0
- package/compliance/cache/3.0.0.previous/protocols/media-buy/scenarios/invalid_transitions.yaml +279 -0
- package/compliance/cache/3.0.0.previous/protocols/media-buy/scenarios/inventory_list_no_match.yaml +143 -0
- package/compliance/cache/3.0.0.previous/protocols/media-buy/scenarios/inventory_list_targeting.yaml +266 -0
- package/compliance/cache/3.0.0.previous/protocols/media-buy/scenarios/measurement_terms_rejected.yaml +194 -0
- package/compliance/cache/3.0.0.previous/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +250 -0
- package/compliance/cache/3.0.0.previous/protocols/media-buy/scenarios/proposal_finalize.yaml +242 -0
- package/compliance/cache/3.0.0.previous/protocols/media-buy/scenarios/refine_products.yaml +148 -0
- package/compliance/cache/3.0.0.previous/protocols/media-buy/state-machine.yaml +437 -0
- package/compliance/cache/3.0.0.previous/protocols/signals/index.yaml +266 -0
- package/compliance/cache/3.0.0.previous/protocols/sponsored-intelligence/index.yaml +256 -0
- package/compliance/cache/3.0.0.previous/specialisms/audience-sync/index.yaml +280 -0
- package/compliance/cache/3.0.0.previous/specialisms/brand-rights/index.yaml +346 -0
- package/compliance/cache/3.0.0.previous/specialisms/brand-rights/scenarios/governance_denied.yaml +203 -0
- package/compliance/cache/3.0.0.previous/specialisms/collection-lists/index.yaml +359 -0
- package/compliance/cache/3.0.0.previous/specialisms/content-standards/index.yaml +572 -0
- package/compliance/cache/3.0.0.previous/specialisms/creative-ad-server/index.yaml +383 -0
- package/compliance/cache/3.0.0.previous/specialisms/creative-generative/generative-seller.yaml +733 -0
- package/compliance/cache/3.0.0.previous/specialisms/creative-generative/index.yaml +746 -0
- package/compliance/cache/3.0.0.previous/specialisms/creative-template/index.yaml +413 -0
- package/compliance/cache/3.0.0.previous/specialisms/governance-aware-seller/index.yaml +99 -0
- package/compliance/cache/3.0.0.previous/specialisms/governance-delivery-monitor/index.yaml +419 -0
- package/compliance/cache/3.0.0.previous/specialisms/governance-spend-authority/denied.yaml +221 -0
- package/compliance/cache/3.0.0.previous/specialisms/governance-spend-authority/index.yaml +330 -0
- package/compliance/cache/3.0.0.previous/specialisms/property-lists/index.yaml +482 -0
- package/compliance/cache/3.0.0.previous/specialisms/sales-broadcast-tv/index.yaml +664 -0
- package/compliance/cache/3.0.0.previous/specialisms/sales-catalog-driven/index.yaml +779 -0
- package/compliance/cache/3.0.0.previous/specialisms/sales-guaranteed/index.yaml +479 -0
- package/compliance/cache/3.0.0.previous/specialisms/sales-non-guaranteed/index.yaml +428 -0
- package/compliance/cache/3.0.0.previous/specialisms/sales-proposal-mode/index.yaml +520 -0
- package/compliance/cache/3.0.0.previous/specialisms/sales-social/index.yaml +521 -0
- package/compliance/cache/3.0.0.previous/specialisms/signal-marketplace/index.yaml +415 -0
- package/compliance/cache/3.0.0.previous/specialisms/signal-marketplace/scenarios/governance_denied.yaml +195 -0
- package/compliance/cache/3.0.0.previous/specialisms/signal-owned/index.yaml +316 -0
- package/compliance/cache/3.0.0.previous/specialisms/signed-requests/index.yaml +192 -0
- package/compliance/cache/3.0.0.previous/test-kits/acme-outdoor.yaml +210 -0
- package/compliance/cache/3.0.0.previous/test-kits/bistro-oranje.yaml +126 -0
- package/compliance/cache/3.0.0.previous/test-kits/nova-motors.yaml +262 -0
- package/compliance/cache/3.0.0.previous/test-kits/osei-natural.yaml +126 -0
- package/compliance/cache/3.0.0.previous/test-kits/signed-requests-runner.yaml +153 -0
- package/compliance/cache/3.0.0.previous/test-kits/substitution-observer-runner.yaml +690 -0
- package/compliance/cache/3.0.0.previous/test-kits/summit-foods.yaml +125 -0
- package/compliance/cache/3.0.0.previous/test-kits/webhook-receiver-runner.yaml +265 -0
- package/compliance/cache/3.0.0.previous/test-vectors/plan-hash/001-minimal-plan.json +43 -0
- package/compliance/cache/3.0.0.previous/test-vectors/plan-hash/002-full-plan.json +217 -0
- package/compliance/cache/3.0.0.previous/test-vectors/plan-hash/003-bookkeeping-stripped.json +60 -0
- package/compliance/cache/3.0.0.previous/test-vectors/plan-hash/004a-human-review-omitted.json +43 -0
- package/compliance/cache/3.0.0.previous/test-vectors/plan-hash/004b-human-review-explicit-null.json +49 -0
- package/compliance/cache/3.0.0.previous/test-vectors/plan-hash/005a-policy-categories-order-1.json +53 -0
- package/compliance/cache/3.0.0.previous/test-vectors/plan-hash/005b-policy-categories-order-2.json +57 -0
- package/compliance/cache/3.0.0.previous/test-vectors/plan-hash/006a-ext-trace-v1.json +49 -0
- package/compliance/cache/3.0.0.previous/test-vectors/plan-hash/006b-ext-trace-v2.json +53 -0
- package/compliance/cache/3.0.0.previous/test-vectors/plan-hash/007-unicode-objectives.json +43 -0
- package/compliance/cache/3.0.0.previous/test-vectors/plan-hash/008-numeric-canonicalization.json +65 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/README.md +219 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/canonicalization.json +241 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/keys.json +60 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/negative/001-no-signature-header.json +24 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/negative/002-wrong-tag.json +26 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/negative/003-expired-signature.json +26 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/negative/004-window-too-long.json +26 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/negative/005-alg-not-allowed.json +26 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/negative/006-missing-covered-component.json +26 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/negative/007-missing-content-digest.json +26 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/negative/008-unknown-keyid.json +26 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/negative/009-key-ops-missing-verify.json +27 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/negative/010-content-digest-mismatch.json +33 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/negative/011-malformed-header.json +27 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/negative/012-missing-expires-param.json +26 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/negative/013-expires-le-created.json +27 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/negative/014-missing-nonce-param.json +27 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/negative/015-signature-invalid.json +28 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/negative/016-replayed-nonce.json +35 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/negative/017-key-revoked.json +38 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/negative/018-digest-covered-when-forbidden.json +28 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/negative/019-signature-without-signature-input.json +26 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/negative/020-rate-abuse.json +34 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/negative/021-duplicate-signature-input-label.json +31 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/negative/022-multi-valued-content-type.json +31 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/negative/023-multi-valued-content-digest.json +32 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/negative/024-unquoted-string-param.json +31 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/negative/025-jwk-alg-crv-mismatch.json +43 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/negative/026-non-ascii-host.json +31 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/negative/027-webhook-registration-authentication-unsigned.json +25 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/positive/001-basic-post.json +30 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/positive/002-post-with-content-digest.json +31 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/positive/003-es256-post.json +30 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/positive/004-multiple-signature-labels.json +26 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/positive/005-default-port-stripped.json +30 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/positive/006-dot-segment-path.json +30 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/positive/007-query-byte-preserved.json +30 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/positive/008-percent-encoded-path.json +30 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/positive/009-percent-encoded-unreserved-decoded.json +30 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/positive/010-percent-encoded-slash-preserved.json +30 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/positive/011-ipv6-authority.json +30 -0
- package/compliance/cache/3.0.0.previous/test-vectors/request-signing/positive/012-ipv6-authority-default-port-stripped.json +30 -0
- package/compliance/cache/3.0.0.previous/test-vectors/webhook-signing/README.md +211 -0
- package/compliance/cache/3.0.0.previous/test-vectors/webhook-signing/keys.json +61 -0
- package/compliance/cache/3.0.0.previous/test-vectors/webhook-signing/negative/001-wrong-tag.json +26 -0
- package/compliance/cache/3.0.0.previous/test-vectors/webhook-signing/negative/002-expired-signature.json +26 -0
- package/compliance/cache/3.0.0.previous/test-vectors/webhook-signing/negative/003-window-too-long.json +26 -0
- package/compliance/cache/3.0.0.previous/test-vectors/webhook-signing/negative/004-alg-not-allowed.json +26 -0
- package/compliance/cache/3.0.0.previous/test-vectors/webhook-signing/negative/005-missing-authority-component.json +26 -0
- package/compliance/cache/3.0.0.previous/test-vectors/webhook-signing/negative/006-missing-content-digest.json +25 -0
- package/compliance/cache/3.0.0.previous/test-vectors/webhook-signing/negative/007-unknown-keyid.json +26 -0
- package/compliance/cache/3.0.0.previous/test-vectors/webhook-signing/negative/008-wrong-adcp-use.json +26 -0
- package/compliance/cache/3.0.0.previous/test-vectors/webhook-signing/negative/009-content-digest-mismatch.json +26 -0
- package/compliance/cache/3.0.0.previous/test-vectors/webhook-signing/negative/010-malformed-signature-input.json +26 -0
- package/compliance/cache/3.0.0.previous/test-vectors/webhook-signing/negative/011-signature-without-input.json +25 -0
- package/compliance/cache/3.0.0.previous/test-vectors/webhook-signing/negative/012-missing-expires-param.json +26 -0
- package/compliance/cache/3.0.0.previous/test-vectors/webhook-signing/negative/013-expires-le-created.json +26 -0
- package/compliance/cache/3.0.0.previous/test-vectors/webhook-signing/negative/014-missing-nonce-param.json +26 -0
- package/compliance/cache/3.0.0.previous/test-vectors/webhook-signing/negative/015-signature-invalid.json +26 -0
- package/compliance/cache/3.0.0.previous/test-vectors/webhook-signing/negative/016-replayed-nonce.json +37 -0
- package/compliance/cache/3.0.0.previous/test-vectors/webhook-signing/negative/017-key-revoked.json +32 -0
- package/compliance/cache/3.0.0.previous/test-vectors/webhook-signing/negative/018-rate-abuse.json +33 -0
- package/compliance/cache/3.0.0.previous/test-vectors/webhook-signing/negative/019-revocation-stale.json +32 -0
- package/compliance/cache/3.0.0.previous/test-vectors/webhook-signing/negative/020-key-ops-missing-verify.json +41 -0
- package/compliance/cache/3.0.0.previous/test-vectors/webhook-signing/negative/021-base64-alphabet-mixing.json +26 -0
- package/compliance/cache/3.0.0.previous/test-vectors/webhook-signing/positive/001-basic-post.json +24 -0
- package/compliance/cache/3.0.0.previous/test-vectors/webhook-signing/positive/002-es256-post.json +24 -0
- package/compliance/cache/3.0.0.previous/test-vectors/webhook-signing/positive/003-multiple-signature-labels.json +24 -0
- package/compliance/cache/3.0.0.previous/test-vectors/webhook-signing/positive/004-default-port-stripped.json +24 -0
- package/compliance/cache/3.0.0.previous/test-vectors/webhook-signing/positive/005-percent-encoded-path.json +24 -0
- package/compliance/cache/3.0.0.previous/test-vectors/webhook-signing/positive/006-query-byte-preserved.json +24 -0
- package/compliance/cache/3.0.0.previous/test-vectors/webhook-signing/positive/007-body-without-idempotency-key.json +25 -0
- package/compliance/cache/3.0.0.previous/universal/capability-discovery.yaml +125 -0
- package/compliance/cache/3.0.0.previous/universal/deterministic-testing.yaml +1318 -0
- package/compliance/cache/3.0.0.previous/universal/error-compliance.yaml +468 -0
- package/compliance/cache/3.0.0.previous/universal/fictional-entities.yaml +307 -0
- package/compliance/cache/3.0.0.previous/universal/idempotency.yaml +577 -0
- package/compliance/cache/3.0.0.previous/universal/runner-output-contract.yaml +335 -0
- package/compliance/cache/3.0.0.previous/universal/schema-validation.yaml +514 -0
- package/compliance/cache/3.0.0.previous/universal/security.yaml +428 -0
- package/compliance/cache/3.0.0.previous/universal/storyboard-schema.yaml +1010 -0
- package/compliance/cache/3.0.0.previous/universal/webhook-emission.yaml +337 -0
- package/compliance/cache/3.0.1/domains/brand/index.yaml +163 -0
- package/compliance/cache/3.0.1/domains/creative/index.yaml +412 -0
- package/compliance/cache/3.0.1/domains/governance/index.yaml +683 -0
- package/compliance/cache/3.0.1/domains/media-buy/creative-reception.yaml +247 -0
- package/compliance/cache/3.0.1/domains/media-buy/index.yaml +769 -0
- package/compliance/cache/3.0.1/domains/media-buy/scenarios/create_media_buy_async.yaml +232 -0
- package/compliance/cache/3.0.1/domains/media-buy/scenarios/creative_fate_after_cancellation.yaml +414 -0
- package/compliance/cache/3.0.1/domains/media-buy/scenarios/delivery_reporting.yaml +205 -0
- package/compliance/cache/3.0.1/domains/media-buy/scenarios/governance_approved.yaml +211 -0
- package/compliance/cache/3.0.1/domains/media-buy/scenarios/governance_conditions.yaml +196 -0
- package/compliance/cache/3.0.1/domains/media-buy/scenarios/governance_denied.yaml +192 -0
- package/compliance/cache/3.0.1/domains/media-buy/scenarios/governance_denied_recovery.yaml +244 -0
- package/compliance/cache/3.0.1/domains/media-buy/scenarios/invalid_transitions.yaml +284 -0
- package/compliance/cache/3.0.1/domains/media-buy/scenarios/inventory_list_no_match.yaml +143 -0
- package/compliance/cache/3.0.1/domains/media-buy/scenarios/inventory_list_targeting.yaml +266 -0
- package/compliance/cache/3.0.1/domains/media-buy/scenarios/measurement_terms_rejected.yaml +195 -0
- package/compliance/cache/3.0.1/domains/media-buy/scenarios/pending_creatives_to_start.yaml +250 -0
- package/compliance/cache/3.0.1/domains/media-buy/scenarios/proposal_finalize.yaml +243 -0
- package/compliance/cache/3.0.1/domains/media-buy/scenarios/refine_products.yaml +148 -0
- package/compliance/cache/3.0.1/domains/media-buy/state-machine.yaml +442 -0
- package/compliance/cache/3.0.1/domains/signals/index.yaml +266 -0
- package/compliance/cache/3.0.1/domains/sponsored-intelligence/index.yaml +256 -0
- package/compliance/cache/3.0.1/index.json +324 -0
- package/compliance/cache/3.0.1/protocols/brand/index.yaml +163 -0
- package/compliance/cache/3.0.1/protocols/creative/index.yaml +412 -0
- package/compliance/cache/3.0.1/protocols/governance/index.yaml +683 -0
- package/compliance/cache/3.0.1/protocols/media-buy/creative-reception.yaml +247 -0
- package/compliance/cache/3.0.1/protocols/media-buy/index.yaml +769 -0
- package/compliance/cache/3.0.1/protocols/media-buy/scenarios/create_media_buy_async.yaml +232 -0
- package/compliance/cache/3.0.1/protocols/media-buy/scenarios/creative_fate_after_cancellation.yaml +414 -0
- package/compliance/cache/3.0.1/protocols/media-buy/scenarios/delivery_reporting.yaml +205 -0
- package/compliance/cache/3.0.1/protocols/media-buy/scenarios/governance_approved.yaml +211 -0
- package/compliance/cache/3.0.1/protocols/media-buy/scenarios/governance_conditions.yaml +196 -0
- package/compliance/cache/3.0.1/protocols/media-buy/scenarios/governance_denied.yaml +192 -0
- package/compliance/cache/3.0.1/protocols/media-buy/scenarios/governance_denied_recovery.yaml +244 -0
- package/compliance/cache/3.0.1/protocols/media-buy/scenarios/invalid_transitions.yaml +284 -0
- package/compliance/cache/3.0.1/protocols/media-buy/scenarios/inventory_list_no_match.yaml +143 -0
- package/compliance/cache/3.0.1/protocols/media-buy/scenarios/inventory_list_targeting.yaml +266 -0
- package/compliance/cache/3.0.1/protocols/media-buy/scenarios/measurement_terms_rejected.yaml +195 -0
- package/compliance/cache/3.0.1/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +250 -0
- package/compliance/cache/3.0.1/protocols/media-buy/scenarios/proposal_finalize.yaml +243 -0
- package/compliance/cache/3.0.1/protocols/media-buy/scenarios/refine_products.yaml +148 -0
- package/compliance/cache/3.0.1/protocols/media-buy/state-machine.yaml +442 -0
- package/compliance/cache/3.0.1/protocols/signals/index.yaml +266 -0
- package/compliance/cache/3.0.1/protocols/sponsored-intelligence/index.yaml +256 -0
- package/compliance/cache/3.0.1/specialisms/audience-sync/index.yaml +280 -0
- package/compliance/cache/3.0.1/specialisms/brand-rights/index.yaml +350 -0
- package/compliance/cache/3.0.1/specialisms/brand-rights/scenarios/governance_denied.yaml +204 -0
- package/compliance/cache/3.0.1/specialisms/collection-lists/index.yaml +359 -0
- package/compliance/cache/3.0.1/specialisms/content-standards/index.yaml +572 -0
- package/compliance/cache/3.0.1/specialisms/creative-ad-server/index.yaml +383 -0
- package/compliance/cache/3.0.1/specialisms/creative-generative/generative-seller.yaml +758 -0
- package/compliance/cache/3.0.1/specialisms/creative-generative/index.yaml +746 -0
- package/compliance/cache/3.0.1/specialisms/creative-template/index.yaml +413 -0
- package/compliance/cache/3.0.1/specialisms/governance-aware-seller/index.yaml +136 -0
- package/compliance/cache/3.0.1/specialisms/governance-delivery-monitor/index.yaml +441 -0
- package/compliance/cache/3.0.1/specialisms/governance-spend-authority/denied.yaml +221 -0
- package/compliance/cache/3.0.1/specialisms/governance-spend-authority/index.yaml +330 -0
- package/compliance/cache/3.0.1/specialisms/property-lists/index.yaml +482 -0
- package/compliance/cache/3.0.1/specialisms/sales-broadcast-tv/index.yaml +689 -0
- package/compliance/cache/3.0.1/specialisms/sales-catalog-driven/index.yaml +779 -0
- package/compliance/cache/3.0.1/specialisms/sales-guaranteed/index.yaml +504 -0
- package/compliance/cache/3.0.1/specialisms/sales-non-guaranteed/index.yaml +428 -0
- package/compliance/cache/3.0.1/specialisms/sales-proposal-mode/index.yaml +520 -0
- package/compliance/cache/3.0.1/specialisms/sales-social/index.yaml +577 -0
- package/compliance/cache/3.0.1/specialisms/signal-marketplace/index.yaml +415 -0
- package/compliance/cache/3.0.1/specialisms/signal-marketplace/scenarios/governance_denied.yaml +207 -0
- package/compliance/cache/3.0.1/specialisms/signal-owned/index.yaml +316 -0
- package/compliance/cache/3.0.1/test-kits/acme-outdoor.yaml +210 -0
- package/compliance/cache/3.0.1/test-kits/bistro-oranje.yaml +126 -0
- package/compliance/cache/3.0.1/test-kits/nova-motors.yaml +262 -0
- package/compliance/cache/3.0.1/test-kits/osei-natural.yaml +126 -0
- package/compliance/cache/3.0.1/test-kits/signed-requests-runner.yaml +155 -0
- package/compliance/cache/3.0.1/test-kits/substitution-observer-runner.yaml +690 -0
- package/compliance/cache/3.0.1/test-kits/summit-foods.yaml +125 -0
- package/compliance/cache/3.0.1/test-kits/webhook-receiver-runner.yaml +265 -0
- package/compliance/cache/3.0.1/test-vectors/plan-hash/001-minimal-plan.json +43 -0
- package/compliance/cache/3.0.1/test-vectors/plan-hash/002-full-plan.json +217 -0
- package/compliance/cache/3.0.1/test-vectors/plan-hash/003-bookkeeping-stripped.json +60 -0
- package/compliance/cache/3.0.1/test-vectors/plan-hash/004a-human-review-omitted.json +43 -0
- package/compliance/cache/3.0.1/test-vectors/plan-hash/004b-human-review-explicit-null.json +49 -0
- package/compliance/cache/3.0.1/test-vectors/plan-hash/005a-policy-categories-order-1.json +53 -0
- package/compliance/cache/3.0.1/test-vectors/plan-hash/005b-policy-categories-order-2.json +57 -0
- package/compliance/cache/3.0.1/test-vectors/plan-hash/006a-ext-trace-v1.json +49 -0
- package/compliance/cache/3.0.1/test-vectors/plan-hash/006b-ext-trace-v2.json +53 -0
- package/compliance/cache/3.0.1/test-vectors/plan-hash/007-unicode-objectives.json +43 -0
- package/compliance/cache/3.0.1/test-vectors/plan-hash/008-numeric-canonicalization.json +65 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/README.md +219 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/canonicalization.json +241 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/keys.json +60 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/negative/001-no-signature-header.json +24 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/negative/002-wrong-tag.json +26 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/negative/003-expired-signature.json +26 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/negative/004-window-too-long.json +26 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/negative/005-alg-not-allowed.json +26 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/negative/006-missing-covered-component.json +26 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/negative/007-missing-content-digest.json +26 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/negative/008-unknown-keyid.json +26 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/negative/009-key-ops-missing-verify.json +27 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/negative/010-content-digest-mismatch.json +33 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/negative/011-malformed-header.json +27 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/negative/012-missing-expires-param.json +26 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/negative/013-expires-le-created.json +27 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/negative/014-missing-nonce-param.json +27 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/negative/015-signature-invalid.json +28 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/negative/016-replayed-nonce.json +35 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/negative/017-key-revoked.json +38 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/negative/018-digest-covered-when-forbidden.json +28 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/negative/019-signature-without-signature-input.json +26 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/negative/020-rate-abuse.json +34 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/negative/021-duplicate-signature-input-label.json +31 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/negative/022-multi-valued-content-type.json +31 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/negative/023-multi-valued-content-digest.json +32 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/negative/024-unquoted-string-param.json +31 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/negative/025-jwk-alg-crv-mismatch.json +43 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/negative/026-non-ascii-host.json +31 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/negative/027-webhook-registration-authentication-unsigned.json +25 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/positive/001-basic-post.json +30 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/positive/002-post-with-content-digest.json +31 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/positive/003-es256-post.json +30 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/positive/004-multiple-signature-labels.json +26 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/positive/005-default-port-stripped.json +30 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/positive/006-dot-segment-path.json +30 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/positive/007-query-byte-preserved.json +30 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/positive/008-percent-encoded-path.json +30 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/positive/009-percent-encoded-unreserved-decoded.json +30 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/positive/010-percent-encoded-slash-preserved.json +30 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/positive/011-ipv6-authority.json +30 -0
- package/compliance/cache/3.0.1/test-vectors/request-signing/positive/012-ipv6-authority-default-port-stripped.json +30 -0
- package/compliance/cache/3.0.1/test-vectors/webhook-signing/README.md +211 -0
- package/compliance/cache/3.0.1/test-vectors/webhook-signing/keys.json +61 -0
- package/compliance/cache/3.0.1/test-vectors/webhook-signing/negative/001-wrong-tag.json +26 -0
- package/compliance/cache/3.0.1/test-vectors/webhook-signing/negative/002-expired-signature.json +26 -0
- package/compliance/cache/3.0.1/test-vectors/webhook-signing/negative/003-window-too-long.json +26 -0
- package/compliance/cache/3.0.1/test-vectors/webhook-signing/negative/004-alg-not-allowed.json +26 -0
- package/compliance/cache/3.0.1/test-vectors/webhook-signing/negative/005-missing-authority-component.json +26 -0
- package/compliance/cache/3.0.1/test-vectors/webhook-signing/negative/006-missing-content-digest.json +25 -0
- package/compliance/cache/3.0.1/test-vectors/webhook-signing/negative/007-unknown-keyid.json +26 -0
- package/compliance/cache/3.0.1/test-vectors/webhook-signing/negative/008-wrong-adcp-use.json +26 -0
- package/compliance/cache/3.0.1/test-vectors/webhook-signing/negative/009-content-digest-mismatch.json +26 -0
- package/compliance/cache/3.0.1/test-vectors/webhook-signing/negative/010-malformed-signature-input.json +26 -0
- package/compliance/cache/3.0.1/test-vectors/webhook-signing/negative/011-signature-without-input.json +25 -0
- package/compliance/cache/3.0.1/test-vectors/webhook-signing/negative/012-missing-expires-param.json +26 -0
- package/compliance/cache/3.0.1/test-vectors/webhook-signing/negative/013-expires-le-created.json +26 -0
- package/compliance/cache/3.0.1/test-vectors/webhook-signing/negative/014-missing-nonce-param.json +26 -0
- package/compliance/cache/3.0.1/test-vectors/webhook-signing/negative/015-signature-invalid.json +26 -0
- package/compliance/cache/3.0.1/test-vectors/webhook-signing/negative/016-replayed-nonce.json +37 -0
- package/compliance/cache/3.0.1/test-vectors/webhook-signing/negative/017-key-revoked.json +32 -0
- package/compliance/cache/3.0.1/test-vectors/webhook-signing/negative/018-rate-abuse.json +33 -0
- package/compliance/cache/3.0.1/test-vectors/webhook-signing/negative/019-revocation-stale.json +32 -0
- package/compliance/cache/3.0.1/test-vectors/webhook-signing/negative/020-key-ops-missing-verify.json +41 -0
- package/compliance/cache/3.0.1/test-vectors/webhook-signing/negative/021-base64-alphabet-mixing.json +26 -0
- package/compliance/cache/3.0.1/test-vectors/webhook-signing/positive/001-basic-post.json +24 -0
- package/compliance/cache/3.0.1/test-vectors/webhook-signing/positive/002-es256-post.json +24 -0
- package/compliance/cache/3.0.1/test-vectors/webhook-signing/positive/003-multiple-signature-labels.json +24 -0
- package/compliance/cache/3.0.1/test-vectors/webhook-signing/positive/004-default-port-stripped.json +24 -0
- package/compliance/cache/3.0.1/test-vectors/webhook-signing/positive/005-percent-encoded-path.json +24 -0
- package/compliance/cache/3.0.1/test-vectors/webhook-signing/positive/006-query-byte-preserved.json +24 -0
- package/compliance/cache/3.0.1/test-vectors/webhook-signing/positive/007-body-without-idempotency-key.json +25 -0
- package/compliance/cache/3.0.1/universal/capability-discovery.yaml +125 -0
- package/compliance/cache/3.0.1/universal/collection-lists-pagination-integrity.yaml +306 -0
- package/compliance/cache/3.0.1/universal/content-standards-pagination-integrity.yaml +326 -0
- package/compliance/cache/3.0.1/universal/deterministic-testing.yaml +1343 -0
- package/compliance/cache/3.0.1/universal/error-compliance.yaml +474 -0
- package/compliance/cache/3.0.1/universal/fictional-entities.yaml +307 -0
- package/compliance/cache/3.0.1/universal/get-media-buys-pagination-integrity.yaml +160 -0
- package/compliance/cache/3.0.1/universal/get-signals-pagination-integrity.yaml +211 -0
- package/compliance/cache/3.0.1/universal/idempotency.yaml +593 -0
- package/compliance/cache/3.0.1/universal/pagination-integrity-creative-formats.yaml +258 -0
- package/compliance/cache/3.0.1/universal/pagination-integrity-list-accounts.yaml +262 -0
- package/compliance/cache/3.0.1/universal/pagination-integrity.yaml +263 -0
- package/compliance/cache/3.0.1/universal/property-lists-pagination-integrity.yaml +307 -0
- package/compliance/cache/3.0.1/universal/runner-output-contract.yaml +339 -0
- package/compliance/cache/3.0.1/universal/schema-validation.yaml +526 -0
- package/compliance/cache/3.0.1/universal/security.yaml +431 -0
- package/compliance/cache/3.0.1/universal/signed-requests.yaml +205 -0
- package/compliance/cache/3.0.1/universal/storyboard-schema.yaml +1056 -0
- package/compliance/cache/3.0.1/universal/v3-envelope-integrity.yaml +104 -0
- package/compliance/cache/3.0.1/universal/webhook-emission.yaml +337 -0
- package/compliance/cache/3.0.1.previous/domains/brand/index.yaml +163 -0
- package/compliance/cache/3.0.1.previous/domains/creative/index.yaml +412 -0
- package/compliance/cache/3.0.1.previous/domains/governance/index.yaml +683 -0
- package/compliance/cache/3.0.1.previous/domains/media-buy/creative-reception.yaml +247 -0
- package/compliance/cache/3.0.1.previous/domains/media-buy/index.yaml +769 -0
- package/compliance/cache/3.0.1.previous/domains/media-buy/scenarios/create_media_buy_async.yaml +232 -0
- package/compliance/cache/3.0.1.previous/domains/media-buy/scenarios/creative_fate_after_cancellation.yaml +414 -0
- package/compliance/cache/3.0.1.previous/domains/media-buy/scenarios/delivery_reporting.yaml +205 -0
- package/compliance/cache/3.0.1.previous/domains/media-buy/scenarios/governance_approved.yaml +211 -0
- package/compliance/cache/3.0.1.previous/domains/media-buy/scenarios/governance_conditions.yaml +196 -0
- package/compliance/cache/3.0.1.previous/domains/media-buy/scenarios/governance_denied.yaml +192 -0
- package/compliance/cache/3.0.1.previous/domains/media-buy/scenarios/governance_denied_recovery.yaml +244 -0
- package/compliance/cache/3.0.1.previous/domains/media-buy/scenarios/invalid_transitions.yaml +284 -0
- package/compliance/cache/3.0.1.previous/domains/media-buy/scenarios/inventory_list_no_match.yaml +143 -0
- package/compliance/cache/3.0.1.previous/domains/media-buy/scenarios/inventory_list_targeting.yaml +266 -0
- package/compliance/cache/3.0.1.previous/domains/media-buy/scenarios/measurement_terms_rejected.yaml +195 -0
- package/compliance/cache/3.0.1.previous/domains/media-buy/scenarios/pending_creatives_to_start.yaml +250 -0
- package/compliance/cache/3.0.1.previous/domains/media-buy/scenarios/proposal_finalize.yaml +243 -0
- package/compliance/cache/3.0.1.previous/domains/media-buy/scenarios/refine_products.yaml +148 -0
- package/compliance/cache/3.0.1.previous/domains/media-buy/state-machine.yaml +442 -0
- package/compliance/cache/3.0.1.previous/domains/signals/index.yaml +266 -0
- package/compliance/cache/3.0.1.previous/domains/sponsored-intelligence/index.yaml +256 -0
- package/compliance/cache/3.0.1.previous/index.json +324 -0
- package/compliance/cache/3.0.1.previous/protocols/brand/index.yaml +163 -0
- package/compliance/cache/3.0.1.previous/protocols/creative/index.yaml +412 -0
- package/compliance/cache/3.0.1.previous/protocols/governance/index.yaml +683 -0
- package/compliance/cache/3.0.1.previous/protocols/media-buy/creative-reception.yaml +247 -0
- package/compliance/cache/3.0.1.previous/protocols/media-buy/index.yaml +769 -0
- package/compliance/cache/3.0.1.previous/protocols/media-buy/scenarios/create_media_buy_async.yaml +232 -0
- package/compliance/cache/3.0.1.previous/protocols/media-buy/scenarios/creative_fate_after_cancellation.yaml +414 -0
- package/compliance/cache/3.0.1.previous/protocols/media-buy/scenarios/delivery_reporting.yaml +205 -0
- package/compliance/cache/3.0.1.previous/protocols/media-buy/scenarios/governance_approved.yaml +211 -0
- package/compliance/cache/3.0.1.previous/protocols/media-buy/scenarios/governance_conditions.yaml +196 -0
- package/compliance/cache/3.0.1.previous/protocols/media-buy/scenarios/governance_denied.yaml +192 -0
- package/compliance/cache/3.0.1.previous/protocols/media-buy/scenarios/governance_denied_recovery.yaml +244 -0
- package/compliance/cache/3.0.1.previous/protocols/media-buy/scenarios/invalid_transitions.yaml +284 -0
- package/compliance/cache/3.0.1.previous/protocols/media-buy/scenarios/inventory_list_no_match.yaml +143 -0
- package/compliance/cache/3.0.1.previous/protocols/media-buy/scenarios/inventory_list_targeting.yaml +266 -0
- package/compliance/cache/3.0.1.previous/protocols/media-buy/scenarios/measurement_terms_rejected.yaml +195 -0
- package/compliance/cache/3.0.1.previous/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +250 -0
- package/compliance/cache/3.0.1.previous/protocols/media-buy/scenarios/proposal_finalize.yaml +243 -0
- package/compliance/cache/3.0.1.previous/protocols/media-buy/scenarios/refine_products.yaml +148 -0
- package/compliance/cache/3.0.1.previous/protocols/media-buy/state-machine.yaml +442 -0
- package/compliance/cache/3.0.1.previous/protocols/signals/index.yaml +266 -0
- package/compliance/cache/3.0.1.previous/protocols/sponsored-intelligence/index.yaml +256 -0
- package/compliance/cache/3.0.1.previous/specialisms/audience-sync/index.yaml +280 -0
- package/compliance/cache/3.0.1.previous/specialisms/brand-rights/index.yaml +350 -0
- package/compliance/cache/3.0.1.previous/specialisms/brand-rights/scenarios/governance_denied.yaml +204 -0
- package/compliance/cache/3.0.1.previous/specialisms/collection-lists/index.yaml +359 -0
- package/compliance/cache/3.0.1.previous/specialisms/content-standards/index.yaml +572 -0
- package/compliance/cache/3.0.1.previous/specialisms/creative-ad-server/index.yaml +383 -0
- package/compliance/cache/3.0.1.previous/specialisms/creative-generative/generative-seller.yaml +758 -0
- package/compliance/cache/3.0.1.previous/specialisms/creative-generative/index.yaml +746 -0
- package/compliance/cache/3.0.1.previous/specialisms/creative-template/index.yaml +413 -0
- package/compliance/cache/3.0.1.previous/specialisms/governance-aware-seller/index.yaml +136 -0
- package/compliance/cache/3.0.1.previous/specialisms/governance-delivery-monitor/index.yaml +441 -0
- package/compliance/cache/3.0.1.previous/specialisms/governance-spend-authority/denied.yaml +221 -0
- package/compliance/cache/3.0.1.previous/specialisms/governance-spend-authority/index.yaml +330 -0
- package/compliance/cache/3.0.1.previous/specialisms/property-lists/index.yaml +482 -0
- package/compliance/cache/3.0.1.previous/specialisms/sales-broadcast-tv/index.yaml +689 -0
- package/compliance/cache/3.0.1.previous/specialisms/sales-catalog-driven/index.yaml +779 -0
- package/compliance/cache/3.0.1.previous/specialisms/sales-guaranteed/index.yaml +504 -0
- package/compliance/cache/3.0.1.previous/specialisms/sales-non-guaranteed/index.yaml +428 -0
- package/compliance/cache/3.0.1.previous/specialisms/sales-proposal-mode/index.yaml +520 -0
- package/compliance/cache/3.0.1.previous/specialisms/sales-social/index.yaml +577 -0
- package/compliance/cache/3.0.1.previous/specialisms/signal-marketplace/index.yaml +415 -0
- package/compliance/cache/3.0.1.previous/specialisms/signal-marketplace/scenarios/governance_denied.yaml +207 -0
- package/compliance/cache/3.0.1.previous/specialisms/signal-owned/index.yaml +316 -0
- package/compliance/cache/3.0.1.previous/test-kits/acme-outdoor.yaml +210 -0
- package/compliance/cache/3.0.1.previous/test-kits/bistro-oranje.yaml +126 -0
- package/compliance/cache/3.0.1.previous/test-kits/nova-motors.yaml +262 -0
- package/compliance/cache/3.0.1.previous/test-kits/osei-natural.yaml +126 -0
- package/compliance/cache/3.0.1.previous/test-kits/signed-requests-runner.yaml +155 -0
- package/compliance/cache/3.0.1.previous/test-kits/substitution-observer-runner.yaml +690 -0
- package/compliance/cache/3.0.1.previous/test-kits/summit-foods.yaml +125 -0
- package/compliance/cache/3.0.1.previous/test-kits/webhook-receiver-runner.yaml +265 -0
- package/compliance/cache/3.0.1.previous/test-vectors/plan-hash/001-minimal-plan.json +43 -0
- package/compliance/cache/3.0.1.previous/test-vectors/plan-hash/002-full-plan.json +217 -0
- package/compliance/cache/3.0.1.previous/test-vectors/plan-hash/003-bookkeeping-stripped.json +60 -0
- package/compliance/cache/3.0.1.previous/test-vectors/plan-hash/004a-human-review-omitted.json +43 -0
- package/compliance/cache/3.0.1.previous/test-vectors/plan-hash/004b-human-review-explicit-null.json +49 -0
- package/compliance/cache/3.0.1.previous/test-vectors/plan-hash/005a-policy-categories-order-1.json +53 -0
- package/compliance/cache/3.0.1.previous/test-vectors/plan-hash/005b-policy-categories-order-2.json +57 -0
- package/compliance/cache/3.0.1.previous/test-vectors/plan-hash/006a-ext-trace-v1.json +49 -0
- package/compliance/cache/3.0.1.previous/test-vectors/plan-hash/006b-ext-trace-v2.json +53 -0
- package/compliance/cache/3.0.1.previous/test-vectors/plan-hash/007-unicode-objectives.json +43 -0
- package/compliance/cache/3.0.1.previous/test-vectors/plan-hash/008-numeric-canonicalization.json +65 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/README.md +219 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/canonicalization.json +241 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/keys.json +60 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/negative/001-no-signature-header.json +24 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/negative/002-wrong-tag.json +26 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/negative/003-expired-signature.json +26 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/negative/004-window-too-long.json +26 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/negative/005-alg-not-allowed.json +26 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/negative/006-missing-covered-component.json +26 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/negative/007-missing-content-digest.json +26 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/negative/008-unknown-keyid.json +26 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/negative/009-key-ops-missing-verify.json +27 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/negative/010-content-digest-mismatch.json +33 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/negative/011-malformed-header.json +27 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/negative/012-missing-expires-param.json +26 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/negative/013-expires-le-created.json +27 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/negative/014-missing-nonce-param.json +27 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/negative/015-signature-invalid.json +28 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/negative/016-replayed-nonce.json +35 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/negative/017-key-revoked.json +38 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/negative/018-digest-covered-when-forbidden.json +28 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/negative/019-signature-without-signature-input.json +26 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/negative/020-rate-abuse.json +34 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/negative/021-duplicate-signature-input-label.json +31 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/negative/022-multi-valued-content-type.json +31 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/negative/023-multi-valued-content-digest.json +32 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/negative/024-unquoted-string-param.json +31 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/negative/025-jwk-alg-crv-mismatch.json +43 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/negative/026-non-ascii-host.json +31 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/negative/027-webhook-registration-authentication-unsigned.json +25 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/positive/001-basic-post.json +30 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/positive/002-post-with-content-digest.json +31 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/positive/003-es256-post.json +30 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/positive/004-multiple-signature-labels.json +26 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/positive/005-default-port-stripped.json +30 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/positive/006-dot-segment-path.json +30 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/positive/007-query-byte-preserved.json +30 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/positive/008-percent-encoded-path.json +30 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/positive/009-percent-encoded-unreserved-decoded.json +30 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/positive/010-percent-encoded-slash-preserved.json +30 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/positive/011-ipv6-authority.json +30 -0
- package/compliance/cache/3.0.1.previous/test-vectors/request-signing/positive/012-ipv6-authority-default-port-stripped.json +30 -0
- package/compliance/cache/3.0.1.previous/test-vectors/webhook-signing/README.md +211 -0
- package/compliance/cache/3.0.1.previous/test-vectors/webhook-signing/keys.json +61 -0
- package/compliance/cache/3.0.1.previous/test-vectors/webhook-signing/negative/001-wrong-tag.json +26 -0
- package/compliance/cache/3.0.1.previous/test-vectors/webhook-signing/negative/002-expired-signature.json +26 -0
- package/compliance/cache/3.0.1.previous/test-vectors/webhook-signing/negative/003-window-too-long.json +26 -0
- package/compliance/cache/3.0.1.previous/test-vectors/webhook-signing/negative/004-alg-not-allowed.json +26 -0
- package/compliance/cache/3.0.1.previous/test-vectors/webhook-signing/negative/005-missing-authority-component.json +26 -0
- package/compliance/cache/3.0.1.previous/test-vectors/webhook-signing/negative/006-missing-content-digest.json +25 -0
- package/compliance/cache/3.0.1.previous/test-vectors/webhook-signing/negative/007-unknown-keyid.json +26 -0
- package/compliance/cache/3.0.1.previous/test-vectors/webhook-signing/negative/008-wrong-adcp-use.json +26 -0
- package/compliance/cache/3.0.1.previous/test-vectors/webhook-signing/negative/009-content-digest-mismatch.json +26 -0
- package/compliance/cache/3.0.1.previous/test-vectors/webhook-signing/negative/010-malformed-signature-input.json +26 -0
- package/compliance/cache/3.0.1.previous/test-vectors/webhook-signing/negative/011-signature-without-input.json +25 -0
- package/compliance/cache/3.0.1.previous/test-vectors/webhook-signing/negative/012-missing-expires-param.json +26 -0
- package/compliance/cache/3.0.1.previous/test-vectors/webhook-signing/negative/013-expires-le-created.json +26 -0
- package/compliance/cache/3.0.1.previous/test-vectors/webhook-signing/negative/014-missing-nonce-param.json +26 -0
- package/compliance/cache/3.0.1.previous/test-vectors/webhook-signing/negative/015-signature-invalid.json +26 -0
- package/compliance/cache/3.0.1.previous/test-vectors/webhook-signing/negative/016-replayed-nonce.json +37 -0
- package/compliance/cache/3.0.1.previous/test-vectors/webhook-signing/negative/017-key-revoked.json +32 -0
- package/compliance/cache/3.0.1.previous/test-vectors/webhook-signing/negative/018-rate-abuse.json +33 -0
- package/compliance/cache/3.0.1.previous/test-vectors/webhook-signing/negative/019-revocation-stale.json +32 -0
- package/compliance/cache/3.0.1.previous/test-vectors/webhook-signing/negative/020-key-ops-missing-verify.json +41 -0
- package/compliance/cache/3.0.1.previous/test-vectors/webhook-signing/negative/021-base64-alphabet-mixing.json +26 -0
- package/compliance/cache/3.0.1.previous/test-vectors/webhook-signing/positive/001-basic-post.json +24 -0
- package/compliance/cache/3.0.1.previous/test-vectors/webhook-signing/positive/002-es256-post.json +24 -0
- package/compliance/cache/3.0.1.previous/test-vectors/webhook-signing/positive/003-multiple-signature-labels.json +24 -0
- package/compliance/cache/3.0.1.previous/test-vectors/webhook-signing/positive/004-default-port-stripped.json +24 -0
- package/compliance/cache/3.0.1.previous/test-vectors/webhook-signing/positive/005-percent-encoded-path.json +24 -0
- package/compliance/cache/3.0.1.previous/test-vectors/webhook-signing/positive/006-query-byte-preserved.json +24 -0
- package/compliance/cache/3.0.1.previous/test-vectors/webhook-signing/positive/007-body-without-idempotency-key.json +25 -0
- package/compliance/cache/3.0.1.previous/universal/capability-discovery.yaml +125 -0
- package/compliance/cache/3.0.1.previous/universal/collection-lists-pagination-integrity.yaml +306 -0
- package/compliance/cache/3.0.1.previous/universal/content-standards-pagination-integrity.yaml +326 -0
- package/compliance/cache/3.0.1.previous/universal/deterministic-testing.yaml +1343 -0
- package/compliance/cache/3.0.1.previous/universal/error-compliance.yaml +474 -0
- package/compliance/cache/3.0.1.previous/universal/fictional-entities.yaml +307 -0
- package/compliance/cache/3.0.1.previous/universal/get-media-buys-pagination-integrity.yaml +160 -0
- package/compliance/cache/3.0.1.previous/universal/get-signals-pagination-integrity.yaml +211 -0
- package/compliance/cache/3.0.1.previous/universal/idempotency.yaml +593 -0
- package/compliance/cache/3.0.1.previous/universal/pagination-integrity-creative-formats.yaml +258 -0
- package/compliance/cache/3.0.1.previous/universal/pagination-integrity-list-accounts.yaml +262 -0
- package/compliance/cache/3.0.1.previous/universal/pagination-integrity.yaml +263 -0
- package/compliance/cache/3.0.1.previous/universal/property-lists-pagination-integrity.yaml +307 -0
- package/compliance/cache/3.0.1.previous/universal/runner-output-contract.yaml +339 -0
- package/compliance/cache/3.0.1.previous/universal/schema-validation.yaml +526 -0
- package/compliance/cache/3.0.1.previous/universal/security.yaml +431 -0
- package/compliance/cache/3.0.1.previous/universal/signed-requests.yaml +205 -0
- package/compliance/cache/3.0.1.previous/universal/storyboard-schema.yaml +1056 -0
- package/compliance/cache/3.0.1.previous/universal/v3-envelope-integrity.yaml +104 -0
- package/compliance/cache/3.0.1.previous/universal/webhook-emission.yaml +337 -0
- package/dist/lib/adapters/content-standards-adapter.d.ts +106 -0
- package/dist/lib/adapters/content-standards-adapter.d.ts.map +1 -0
- package/dist/lib/adapters/content-standards-adapter.js +201 -0
- package/dist/lib/adapters/content-standards-adapter.js.map +1 -0
- package/dist/lib/adapters/governance-adapter.d.ts +88 -0
- package/dist/lib/adapters/governance-adapter.d.ts.map +1 -0
- package/dist/lib/adapters/governance-adapter.js +93 -0
- package/dist/lib/adapters/governance-adapter.js.map +1 -0
- package/dist/lib/adapters/index.d.ts +19 -0
- package/dist/lib/adapters/index.d.ts.map +1 -0
- package/dist/lib/adapters/index.js +47 -0
- package/dist/lib/adapters/index.js.map +1 -0
- package/dist/lib/adapters/property-list-adapter.d.ts +123 -0
- package/dist/lib/adapters/property-list-adapter.d.ts.map +1 -0
- package/dist/lib/adapters/property-list-adapter.js +231 -0
- package/dist/lib/adapters/property-list-adapter.js.map +1 -0
- package/dist/lib/adapters/proposal-manager.d.ts +142 -0
- package/dist/lib/adapters/proposal-manager.d.ts.map +1 -0
- package/dist/lib/adapters/proposal-manager.js +184 -0
- package/dist/lib/adapters/proposal-manager.js.map +1 -0
- package/dist/lib/adapters/si-session-manager.d.ts +164 -0
- package/dist/lib/adapters/si-session-manager.d.ts.map +1 -0
- package/dist/lib/adapters/si-session-manager.js +330 -0
- package/dist/lib/adapters/si-session-manager.js.map +1 -0
- package/dist/lib/advanced.d.ts +41 -0
- package/dist/lib/advanced.d.ts.map +1 -0
- package/dist/lib/advanced.js +49 -0
- package/dist/lib/advanced.js.map +1 -0
- package/dist/lib/agents/index.generated.d.ts +397 -0
- package/dist/lib/agents/index.generated.d.ts.map +1 -0
- package/dist/lib/agents/index.generated.js +624 -0
- package/dist/lib/agents/index.generated.js.map +1 -0
- package/dist/lib/auth/index.d.ts +39 -0
- package/dist/lib/auth/index.d.ts.map +1 -0
- package/dist/lib/auth/index.js +100 -0
- package/dist/lib/auth/index.js.map +1 -0
- package/dist/lib/auth/oauth/CLIFlowHandler.d.ts +61 -0
- package/dist/lib/auth/oauth/CLIFlowHandler.d.ts.map +1 -0
- package/dist/lib/auth/oauth/CLIFlowHandler.js +287 -0
- package/dist/lib/auth/oauth/CLIFlowHandler.js.map +1 -0
- package/dist/lib/auth/oauth/ClientCredentialsFlow.d.ts +134 -0
- package/dist/lib/auth/oauth/ClientCredentialsFlow.d.ts.map +1 -0
- package/dist/lib/auth/oauth/ClientCredentialsFlow.js +325 -0
- package/dist/lib/auth/oauth/ClientCredentialsFlow.js.map +1 -0
- package/dist/lib/auth/oauth/MCPOAuthProvider.d.ts +136 -0
- package/dist/lib/auth/oauth/MCPOAuthProvider.d.ts.map +1 -0
- package/dist/lib/auth/oauth/MCPOAuthProvider.js +255 -0
- package/dist/lib/auth/oauth/MCPOAuthProvider.js.map +1 -0
- package/dist/lib/auth/oauth/NonInteractiveFlowHandler.d.ts +37 -0
- package/dist/lib/auth/oauth/NonInteractiveFlowHandler.d.ts.map +1 -0
- package/dist/lib/auth/oauth/NonInteractiveFlowHandler.js +30 -0
- package/dist/lib/auth/oauth/NonInteractiveFlowHandler.js.map +1 -0
- package/dist/lib/auth/oauth/authorization-required.d.ts +112 -0
- package/dist/lib/auth/oauth/authorization-required.d.ts.map +1 -0
- package/dist/lib/auth/oauth/authorization-required.js +363 -0
- package/dist/lib/auth/oauth/authorization-required.js.map +1 -0
- package/dist/lib/auth/oauth/diagnose.d.ts +101 -0
- package/dist/lib/auth/oauth/diagnose.d.ts.map +1 -0
- package/dist/lib/auth/oauth/diagnose.js +630 -0
- package/dist/lib/auth/oauth/diagnose.js.map +1 -0
- package/dist/lib/auth/oauth/diagnostics.d.ts +129 -0
- package/dist/lib/auth/oauth/diagnostics.d.ts.map +1 -0
- package/dist/lib/auth/oauth/diagnostics.js +207 -0
- package/dist/lib/auth/oauth/diagnostics.js.map +1 -0
- package/dist/lib/auth/oauth/discovery.d.ts +96 -0
- package/dist/lib/auth/oauth/discovery.d.ts.map +1 -0
- package/dist/lib/auth/oauth/discovery.js +119 -0
- package/dist/lib/auth/oauth/discovery.js.map +1 -0
- package/dist/lib/auth/oauth/file-storage.d.ts +40 -0
- package/dist/lib/auth/oauth/file-storage.d.ts.map +1 -0
- package/dist/lib/auth/oauth/file-storage.js +112 -0
- package/dist/lib/auth/oauth/file-storage.js.map +1 -0
- package/dist/lib/auth/oauth/index.d.ts +133 -0
- package/dist/lib/auth/oauth/index.d.ts.map +1 -0
- package/dist/lib/auth/oauth/index.js +246 -0
- package/dist/lib/auth/oauth/index.js.map +1 -0
- package/dist/lib/auth/oauth/secret-resolver.d.ts +54 -0
- package/dist/lib/auth/oauth/secret-resolver.d.ts.map +1 -0
- package/dist/lib/auth/oauth/secret-resolver.js +96 -0
- package/dist/lib/auth/oauth/secret-resolver.js.map +1 -0
- package/dist/lib/auth/oauth/storage-registry.d.ts +44 -0
- package/dist/lib/auth/oauth/storage-registry.d.ts.map +1 -0
- package/dist/lib/auth/oauth/storage-registry.js +33 -0
- package/dist/lib/auth/oauth/storage-registry.js.map +1 -0
- package/dist/lib/auth/oauth/types.d.ts +114 -0
- package/dist/lib/auth/oauth/types.d.ts.map +1 -0
- package/dist/lib/auth/oauth/types.js +104 -0
- package/dist/lib/auth/oauth/types.js.map +1 -0
- package/dist/lib/client/index.d.ts +2 -0
- package/dist/lib/client/index.d.ts.map +1 -0
- package/dist/lib/client/index.js +26 -0
- package/dist/lib/client/index.js.map +1 -0
- package/dist/lib/compliance/index.d.ts +5 -0
- package/dist/lib/compliance/index.d.ts.map +1 -0
- package/dist/lib/compliance/index.js +52 -0
- package/dist/lib/compliance/index.js.map +1 -0
- package/dist/lib/compliance-fixtures/index.d.ts +167 -0
- package/dist/lib/compliance-fixtures/index.d.ts.map +1 -0
- package/dist/lib/compliance-fixtures/index.js +218 -0
- package/dist/lib/compliance-fixtures/index.js.map +1 -0
- package/dist/lib/compliance-fixtures/test-authorization-server.d.ts +88 -0
- package/dist/lib/compliance-fixtures/test-authorization-server.d.ts.map +1 -0
- package/dist/lib/compliance-fixtures/test-authorization-server.js +252 -0
- package/dist/lib/compliance-fixtures/test-authorization-server.js.map +1 -0
- package/dist/lib/conformance/index.d.ts +26 -0
- package/dist/lib/conformance/index.d.ts.map +1 -0
- package/dist/lib/conformance/index.js +34 -0
- package/dist/lib/conformance/index.js.map +1 -0
- package/dist/lib/conformance/invariants/uniformError.d.ts +45 -0
- package/dist/lib/conformance/invariants/uniformError.d.ts.map +1 -0
- package/dist/lib/conformance/invariants/uniformError.js +179 -0
- package/dist/lib/conformance/invariants/uniformError.js.map +1 -0
- package/dist/lib/conformance/invariants/uniformErrorComparator.d.ts +8 -0
- package/dist/lib/conformance/invariants/uniformErrorComparator.d.ts.map +1 -0
- package/dist/lib/conformance/invariants/uniformErrorComparator.js +488 -0
- package/dist/lib/conformance/invariants/uniformErrorComparator.js.map +1 -0
- package/dist/lib/conformance/oracle.d.ts +36 -0
- package/dist/lib/conformance/oracle.d.ts.map +1 -0
- package/dist/lib/conformance/oracle.js +267 -0
- package/dist/lib/conformance/oracle.js.map +1 -0
- package/dist/lib/conformance/runConformance.d.ts +17 -0
- package/dist/lib/conformance/runConformance.d.ts.map +1 -0
- package/dist/lib/conformance/runConformance.js +174 -0
- package/dist/lib/conformance/runConformance.js.map +1 -0
- package/dist/lib/conformance/runners.d.ts +27 -0
- package/dist/lib/conformance/runners.d.ts.map +1 -0
- package/dist/lib/conformance/runners.js +159 -0
- package/dist/lib/conformance/runners.js.map +1 -0
- package/dist/lib/conformance/schemaArbitrary.d.ts +39 -0
- package/dist/lib/conformance/schemaArbitrary.d.ts.map +1 -0
- package/dist/lib/conformance/schemaArbitrary.js +382 -0
- package/dist/lib/conformance/schemaArbitrary.js.map +1 -0
- package/dist/lib/conformance/schemaLoader.d.ts +12 -0
- package/dist/lib/conformance/schemaLoader.d.ts.map +1 -0
- package/dist/lib/conformance/schemaLoader.js +122 -0
- package/dist/lib/conformance/schemaLoader.js.map +1 -0
- package/dist/lib/conformance/seeder.d.ts +51 -0
- package/dist/lib/conformance/seeder.d.ts.map +1 -0
- package/dist/lib/conformance/seeder.js +341 -0
- package/dist/lib/conformance/seeder.js.map +1 -0
- package/dist/lib/conformance/types.d.ts +201 -0
- package/dist/lib/conformance/types.d.ts.map +1 -0
- package/dist/lib/conformance/types.js +56 -0
- package/dist/lib/conformance/types.js.map +1 -0
- package/dist/lib/core/ADCPMultiAgentClient.d.ts +624 -0
- package/dist/lib/core/ADCPMultiAgentClient.d.ts.map +1 -0
- package/dist/lib/core/ADCPMultiAgentClient.js +908 -0
- package/dist/lib/core/ADCPMultiAgentClient.js.map +1 -0
- package/dist/lib/core/AgentClient.d.ts +517 -0
- package/dist/lib/core/AgentClient.d.ts.map +1 -0
- package/dist/lib/core/AgentClient.js +784 -0
- package/dist/lib/core/AgentClient.js.map +1 -0
- package/dist/lib/core/AsyncHandler.d.ts +210 -0
- package/dist/lib/core/AsyncHandler.d.ts.map +1 -0
- package/dist/lib/core/AsyncHandler.js +182 -0
- package/dist/lib/core/AsyncHandler.js.map +1 -0
- package/dist/lib/core/ConfigurationManager.d.ts +79 -0
- package/dist/lib/core/ConfigurationManager.d.ts.map +1 -0
- package/dist/lib/core/ConfigurationManager.js +249 -0
- package/dist/lib/core/ConfigurationManager.js.map +1 -0
- package/dist/lib/core/ConversationTypes.d.ts +422 -0
- package/dist/lib/core/ConversationTypes.d.ts.map +1 -0
- package/dist/lib/core/ConversationTypes.js +5 -0
- package/dist/lib/core/ConversationTypes.js.map +1 -0
- package/dist/lib/core/CreativeAgentClient.d.ts +144 -0
- package/dist/lib/core/CreativeAgentClient.d.ts.map +1 -0
- package/dist/lib/core/CreativeAgentClient.js +169 -0
- package/dist/lib/core/CreativeAgentClient.js.map +1 -0
- package/dist/lib/core/GovernanceMiddleware.d.ts +93 -0
- package/dist/lib/core/GovernanceMiddleware.d.ts.map +1 -0
- package/dist/lib/core/GovernanceMiddleware.js +306 -0
- package/dist/lib/core/GovernanceMiddleware.js.map +1 -0
- package/dist/lib/core/GovernanceTypes.d.ts +116 -0
- package/dist/lib/core/GovernanceTypes.d.ts.map +1 -0
- package/dist/lib/core/GovernanceTypes.js +60 -0
- package/dist/lib/core/GovernanceTypes.js.map +1 -0
- package/dist/lib/core/ProtocolResponseParser.d.ts +80 -0
- package/dist/lib/core/ProtocolResponseParser.d.ts.map +1 -0
- package/dist/lib/core/ProtocolResponseParser.js +367 -0
- package/dist/lib/core/ProtocolResponseParser.js.map +1 -0
- package/dist/lib/core/ResponseValidator.d.ts +68 -0
- package/dist/lib/core/ResponseValidator.d.ts.map +1 -0
- package/dist/lib/core/ResponseValidator.js +283 -0
- package/dist/lib/core/ResponseValidator.js.map +1 -0
- package/dist/lib/core/SingleAgentClient.d.ts +1065 -0
- package/dist/lib/core/SingleAgentClient.d.ts.map +1 -0
- package/dist/lib/core/SingleAgentClient.js +2134 -0
- package/dist/lib/core/SingleAgentClient.js.map +1 -0
- package/dist/lib/core/TaskEventTypes.d.ts +220 -0
- package/dist/lib/core/TaskEventTypes.d.ts.map +1 -0
- package/dist/lib/core/TaskEventTypes.js +80 -0
- package/dist/lib/core/TaskEventTypes.js.map +1 -0
- package/dist/lib/core/TaskExecutor.d.ts +245 -0
- package/dist/lib/core/TaskExecutor.d.ts.map +1 -0
- package/dist/lib/core/TaskExecutor.js +1452 -0
- package/dist/lib/core/TaskExecutor.js.map +1 -0
- package/dist/lib/core/match.d.ts +84 -0
- package/dist/lib/core/match.d.ts.map +1 -0
- package/dist/lib/core/match.js +47 -0
- package/dist/lib/core/match.js.map +1 -0
- package/dist/lib/discovery/network-consistency-checker.d.ts +111 -0
- package/dist/lib/discovery/network-consistency-checker.d.ts.map +1 -0
- package/dist/lib/discovery/network-consistency-checker.js +541 -0
- package/dist/lib/discovery/network-consistency-checker.js.map +1 -0
- package/dist/lib/discovery/property-crawler.d.ts +91 -0
- package/dist/lib/discovery/property-crawler.d.ts.map +1 -0
- package/dist/lib/discovery/property-crawler.js +290 -0
- package/dist/lib/discovery/property-crawler.js.map +1 -0
- package/dist/lib/discovery/property-index.d.ts +68 -0
- package/dist/lib/discovery/property-index.d.ts.map +1 -0
- package/dist/lib/discovery/property-index.js +163 -0
- package/dist/lib/discovery/property-index.js.map +1 -0
- package/dist/lib/discovery/types.d.ts +42 -0
- package/dist/lib/discovery/types.d.ts.map +1 -0
- package/dist/lib/discovery/types.js +7 -0
- package/dist/lib/discovery/types.js.map +1 -0
- package/dist/lib/errors/index.d.ts +284 -0
- package/dist/lib/errors/index.d.ts.map +1 -0
- package/dist/lib/errors/index.js +446 -0
- package/dist/lib/errors/index.js.map +1 -0
- package/dist/lib/express-mcp/index.d.ts +62 -0
- package/dist/lib/express-mcp/index.d.ts.map +1 -0
- package/dist/lib/express-mcp/index.js +118 -0
- package/dist/lib/express-mcp/index.js.map +1 -0
- package/dist/lib/governance/index.d.ts +149 -0
- package/dist/lib/governance/index.d.ts.map +1 -0
- package/dist/lib/governance/index.js +171 -0
- package/dist/lib/governance/index.js.map +1 -0
- package/dist/lib/handlers/types.d.ts +119 -0
- package/dist/lib/handlers/types.d.ts.map +1 -0
- package/dist/lib/handlers/types.js +239 -0
- package/dist/lib/handlers/types.js.map +1 -0
- package/dist/lib/index.d.ts +118 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +689 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/net/address-guards.d.ts +34 -0
- package/dist/lib/net/address-guards.d.ts.map +1 -0
- package/dist/lib/net/address-guards.js +132 -0
- package/dist/lib/net/address-guards.js.map +1 -0
- package/dist/lib/net/index.d.ts +8 -0
- package/dist/lib/net/index.d.ts.map +1 -0
- package/dist/lib/net/index.js +17 -0
- package/dist/lib/net/index.js.map +1 -0
- package/dist/lib/net/ssrf-fetch.d.ts +56 -0
- package/dist/lib/net/ssrf-fetch.d.ts.map +1 -0
- package/dist/lib/net/ssrf-fetch.js +199 -0
- package/dist/lib/net/ssrf-fetch.js.map +1 -0
- package/dist/lib/observability/index.d.ts +8 -0
- package/dist/lib/observability/index.d.ts.map +1 -0
- package/dist/lib/observability/index.js +17 -0
- package/dist/lib/observability/index.js.map +1 -0
- package/dist/lib/observability/tracing.d.ts +42 -0
- package/dist/lib/observability/tracing.d.ts.map +1 -0
- package/dist/lib/observability/tracing.js +126 -0
- package/dist/lib/observability/tracing.js.map +1 -0
- package/dist/lib/protocols/a2a.d.ts +23 -0
- package/dist/lib/protocols/a2a.d.ts.map +1 -0
- package/dist/lib/protocols/a2a.js +268 -0
- package/dist/lib/protocols/a2a.js.map +1 -0
- package/dist/lib/protocols/index.d.ts +43 -0
- package/dist/lib/protocols/index.d.ts.map +1 -0
- package/dist/lib/protocols/index.js +264 -0
- package/dist/lib/protocols/index.js.map +1 -0
- package/dist/lib/protocols/mcp-tasks.d.ts +79 -0
- package/dist/lib/protocols/mcp-tasks.d.ts.map +1 -0
- package/dist/lib/protocols/mcp-tasks.js +407 -0
- package/dist/lib/protocols/mcp-tasks.js.map +1 -0
- package/dist/lib/protocols/mcp.d.ts +124 -0
- package/dist/lib/protocols/mcp.d.ts.map +1 -0
- package/dist/lib/protocols/mcp.js +564 -0
- package/dist/lib/protocols/mcp.js.map +1 -0
- package/dist/lib/protocols/rawResponseCapture.d.ts +44 -0
- package/dist/lib/protocols/rawResponseCapture.d.ts.map +1 -0
- package/dist/lib/protocols/rawResponseCapture.js +147 -0
- package/dist/lib/protocols/rawResponseCapture.js.map +1 -0
- package/dist/lib/registry/cursor-store.d.ts +19 -0
- package/dist/lib/registry/cursor-store.d.ts.map +1 -0
- package/dist/lib/registry/cursor-store.js +44 -0
- package/dist/lib/registry/cursor-store.js.map +1 -0
- package/dist/lib/registry/index.d.ts +278 -0
- package/dist/lib/registry/index.d.ts.map +1 -0
- package/dist/lib/registry/index.js +652 -0
- package/dist/lib/registry/index.js.map +1 -0
- package/dist/lib/registry/property-registry.d.ts +57 -0
- package/dist/lib/registry/property-registry.d.ts.map +1 -0
- package/dist/lib/registry/property-registry.js +92 -0
- package/dist/lib/registry/property-registry.js.map +1 -0
- package/dist/lib/registry/sync.d.ts +139 -0
- package/dist/lib/registry/sync.d.ts.map +1 -0
- package/dist/lib/registry/sync.js +390 -0
- package/dist/lib/registry/sync.js.map +1 -0
- package/dist/lib/registry/types.d.ts +112 -0
- package/dist/lib/registry/types.d.ts.map +1 -0
- package/dist/lib/registry/types.generated.d.ts +5680 -0
- package/dist/lib/registry/types.generated.d.ts.map +1 -0
- package/dist/lib/registry/types.generated.js +8 -0
- package/dist/lib/registry/types.generated.js.map +1 -0
- package/dist/lib/registry/types.js +9 -0
- package/dist/lib/registry/types.js.map +1 -0
- package/dist/lib/schemas/index.d.ts +76 -0
- package/dist/lib/schemas/index.d.ts.map +1 -0
- package/dist/lib/schemas/index.js +133 -0
- package/dist/lib/schemas/index.js.map +1 -0
- package/dist/lib/schemas-data/3.0.1/a2ui/bound-value.json +81 -0
- package/dist/lib/schemas-data/3.0.1/a2ui/component.json +32 -0
- package/dist/lib/schemas-data/3.0.1/a2ui/si-catalog.json +427 -0
- package/dist/lib/schemas-data/3.0.1/a2ui/surface.json +39 -0
- package/dist/lib/schemas-data/3.0.1/a2ui/user-action.json +47 -0
- package/dist/lib/schemas-data/3.0.1/account/get-account-financials-request.json +70 -0
- package/dist/lib/schemas-data/3.0.1/account/get-account-financials-response.json +320 -0
- package/dist/lib/schemas-data/3.0.1/account/list-accounts-request.json +42 -0
- package/dist/lib/schemas-data/3.0.1/account/list-accounts-response.json +108 -0
- package/dist/lib/schemas-data/3.0.1/account/report-usage-request.json +168 -0
- package/dist/lib/schemas-data/3.0.1/account/report-usage-response.json +56 -0
- package/dist/lib/schemas-data/3.0.1/account/sync-accounts-request.json +201 -0
- package/dist/lib/schemas-data/3.0.1/account/sync-accounts-response.json +346 -0
- package/dist/lib/schemas-data/3.0.1/account/sync-governance-request.json +170 -0
- package/dist/lib/schemas-data/3.0.1/account/sync-governance-response.json +193 -0
- package/dist/lib/schemas-data/3.0.1/adagents.json +1225 -0
- package/dist/lib/schemas-data/3.0.1/brand/acquire-rights-request.json +114 -0
- package/dist/lib/schemas-data/3.0.1/brand/acquire-rights-response.json +220 -0
- package/dist/lib/schemas-data/3.0.1/brand/creative-approval-request.json +63 -0
- package/dist/lib/schemas-data/3.0.1/brand/creative-approval-response.json +189 -0
- package/dist/lib/schemas-data/3.0.1/brand/get-brand-identity-request.json +56 -0
- package/dist/lib/schemas-data/3.0.1/brand/get-brand-identity-response.json +585 -0
- package/dist/lib/schemas-data/3.0.1/brand/get-rights-request.json +70 -0
- package/dist/lib/schemas-data/3.0.1/brand/get-rights-response.json +220 -0
- package/dist/lib/schemas-data/3.0.1/brand/revocation-notification.json +57 -0
- package/dist/lib/schemas-data/3.0.1/brand/rights-pricing-option.json +65 -0
- package/dist/lib/schemas-data/3.0.1/brand/rights-terms.json +70 -0
- package/dist/lib/schemas-data/3.0.1/brand/update-rights-request.json +63 -0
- package/dist/lib/schemas-data/3.0.1/brand/update-rights-response.json +99 -0
- package/dist/lib/schemas-data/3.0.1/brand.json +2582 -0
- package/dist/lib/schemas-data/3.0.1/bundled/content-standards/calibrate-content-request.json +1712 -0
- package/dist/lib/schemas-data/3.0.1/bundled/content-standards/calibrate-content-response.json +180 -0
- package/dist/lib/schemas-data/3.0.1/bundled/content-standards/create-content-standards-request.json +3622 -0
- package/dist/lib/schemas-data/3.0.1/bundled/content-standards/create-content-standards-response.json +116 -0
- package/dist/lib/schemas-data/3.0.1/bundled/content-standards/get-content-standards-request.json +38 -0
- package/dist/lib/schemas-data/3.0.1/bundled/content-standards/get-content-standards-response.json +3851 -0
- package/dist/lib/schemas-data/3.0.1/bundled/content-standards/get-media-buy-artifacts-request.json +234 -0
- package/dist/lib/schemas-data/3.0.1/bundled/content-standards/get-media-buy-artifacts-response.json +1880 -0
- package/dist/lib/schemas-data/3.0.1/bundled/content-standards/list-content-standards-request.json +121 -0
- package/dist/lib/schemas-data/3.0.1/bundled/content-standards/list-content-standards-response.json +3880 -0
- package/dist/lib/schemas-data/3.0.1/bundled/content-standards/update-content-standards-request.json +3611 -0
- package/dist/lib/schemas-data/3.0.1/bundled/content-standards/update-content-standards-response.json +131 -0
- package/dist/lib/schemas-data/3.0.1/bundled/content-standards/validate-content-delivery-request.json +1766 -0
- package/dist/lib/schemas-data/3.0.1/bundled/content-standards/validate-content-delivery-response.json +208 -0
- package/dist/lib/schemas-data/3.0.1/bundled/core/tasks-get-request.json +60 -0
- package/dist/lib/schemas-data/3.0.1/bundled/core/tasks-get-response.json +264 -0
- package/dist/lib/schemas-data/3.0.1/bundled/core/tasks-list-request.json +318 -0
- package/dist/lib/schemas-data/3.0.1/bundled/core/tasks-list-response.json +258 -0
- package/dist/lib/schemas-data/3.0.1/bundled/creative/get-creative-delivery-request.json +245 -0
- package/dist/lib/schemas-data/3.0.1/bundled/creative/get-creative-delivery-response.json +5967 -0
- package/dist/lib/schemas-data/3.0.1/bundled/creative/get-creative-features-request.json +5091 -0
- package/dist/lib/schemas-data/3.0.1/bundled/creative/get-creative-features-response.json +230 -0
- package/dist/lib/schemas-data/3.0.1/bundled/creative/list-creative-formats-request.json +485 -0
- package/dist/lib/schemas-data/3.0.1/bundled/creative/list-creative-formats-response.json +4076 -0
- package/dist/lib/schemas-data/3.0.1/bundled/creative/list-creatives-request.json +687 -0
- package/dist/lib/schemas-data/3.0.1/bundled/creative/list-creatives-response.json +5977 -0
- package/dist/lib/schemas-data/3.0.1/bundled/creative/preview-creative-request.json +9624 -0
- package/dist/lib/schemas-data/3.0.1/bundled/creative/preview-creative-response.json +5931 -0
- package/dist/lib/schemas-data/3.0.1/bundled/creative/sync-creatives-request.json +5268 -0
- package/dist/lib/schemas-data/3.0.1/bundled/creative/sync-creatives-response.json +1146 -0
- package/dist/lib/schemas-data/3.0.1/bundled/media-buy/build-creative-request.json +5369 -0
- package/dist/lib/schemas-data/3.0.1/bundled/media-buy/build-creative-response.json +10286 -0
- package/dist/lib/schemas-data/3.0.1/bundled/media-buy/create-media-buy-request.json +7893 -0
- package/dist/lib/schemas-data/3.0.1/bundled/media-buy/create-media-buy-response.json +4170 -0
- package/dist/lib/schemas-data/3.0.1/bundled/media-buy/get-media-buy-delivery-request.json +494 -0
- package/dist/lib/schemas-data/3.0.1/bundled/media-buy/get-media-buy-delivery-response.json +4256 -0
- package/dist/lib/schemas-data/3.0.1/bundled/media-buy/get-media-buys-request.json +261 -0
- package/dist/lib/schemas-data/3.0.1/bundled/media-buy/get-media-buys-response.json +2357 -0
- package/dist/lib/schemas-data/3.0.1/bundled/media-buy/get-products-request.json +2046 -0
- package/dist/lib/schemas-data/3.0.1/bundled/media-buy/get-products-response.json +6809 -0
- package/dist/lib/schemas-data/3.0.1/bundled/media-buy/list-creative-formats-request.json +311 -0
- package/dist/lib/schemas-data/3.0.1/bundled/media-buy/list-creative-formats-response.json +4080 -0
- package/dist/lib/schemas-data/3.0.1/bundled/media-buy/log-event-request.json +394 -0
- package/dist/lib/schemas-data/3.0.1/bundled/media-buy/log-event-response.json +193 -0
- package/dist/lib/schemas-data/3.0.1/bundled/media-buy/package-request.json +6923 -0
- package/dist/lib/schemas-data/3.0.1/bundled/media-buy/provide-performance-feedback-request.json +119 -0
- package/dist/lib/schemas-data/3.0.1/bundled/media-buy/provide-performance-feedback-response.json +142 -0
- package/dist/lib/schemas-data/3.0.1/bundled/media-buy/sync-audiences-request.json +454 -0
- package/dist/lib/schemas-data/3.0.1/bundled/media-buy/sync-audiences-response.json +335 -0
- package/dist/lib/schemas-data/3.0.1/bundled/media-buy/sync-catalogs-request.json +836 -0
- package/dist/lib/schemas-data/3.0.1/bundled/media-buy/sync-catalogs-response.json +344 -0
- package/dist/lib/schemas-data/3.0.1/bundled/media-buy/sync-event-sources-request.json +299 -0
- package/dist/lib/schemas-data/3.0.1/bundled/media-buy/sync-event-sources-response.json +461 -0
- package/dist/lib/schemas-data/3.0.1/bundled/media-buy/update-media-buy-request.json +13548 -0
- package/dist/lib/schemas-data/3.0.1/bundled/media-buy/update-media-buy-response.json +2799 -0
- package/dist/lib/schemas-data/3.0.1/bundled/property/create-property-list-request.json +661 -0
- package/dist/lib/schemas-data/3.0.1/bundled/property/create-property-list-response.json +928 -0
- package/dist/lib/schemas-data/3.0.1/bundled/property/delete-property-list-request.json +198 -0
- package/dist/lib/schemas-data/3.0.1/bundled/property/delete-property-list-response.json +44 -0
- package/dist/lib/schemas-data/3.0.1/bundled/property/get-property-list-request.json +212 -0
- package/dist/lib/schemas-data/3.0.1/bundled/property/get-property-list-response.json +1001 -0
- package/dist/lib/schemas-data/3.0.1/bundled/property/list-property-lists-request.json +204 -0
- package/dist/lib/schemas-data/3.0.1/bundled/property/list-property-lists-response.json +946 -0
- package/dist/lib/schemas-data/3.0.1/bundled/property/update-property-list-request.json +670 -0
- package/dist/lib/schemas-data/3.0.1/bundled/property/update-property-list-response.json +923 -0
- package/dist/lib/schemas-data/3.0.1/bundled/property/validate-property-delivery-request.json +308 -0
- package/dist/lib/schemas-data/3.0.1/bundled/property/validate-property-delivery-response.json +418 -0
- package/dist/lib/schemas-data/3.0.1/bundled/protocol/get-adcp-capabilities-request.json +47 -0
- package/dist/lib/schemas-data/3.0.1/bundled/protocol/get-adcp-capabilities-response.json +1729 -0
- package/dist/lib/schemas-data/3.0.1/bundled/signals/activate-signal-request.json +269 -0
- package/dist/lib/schemas-data/3.0.1/bundled/signals/activate-signal-response.json +320 -0
- package/dist/lib/schemas-data/3.0.1/bundled/signals/get-signals-request.json +409 -0
- package/dist/lib/schemas-data/3.0.1/bundled/signals/get-signals-response.json +689 -0
- package/dist/lib/schemas-data/3.0.1/bundled/sponsored-intelligence/si-get-offering-request.json +57 -0
- package/dist/lib/schemas-data/3.0.1/bundled/sponsored-intelligence/si-get-offering-response.json +207 -0
- package/dist/lib/schemas-data/3.0.1/bundled/sponsored-intelligence/si-initiate-session-request.json +322 -0
- package/dist/lib/schemas-data/3.0.1/bundled/sponsored-intelligence/si-initiate-session-response.json +618 -0
- package/dist/lib/schemas-data/3.0.1/bundled/sponsored-intelligence/si-send-message-request.json +81 -0
- package/dist/lib/schemas-data/3.0.1/bundled/sponsored-intelligence/si-send-message-response.json +589 -0
- package/dist/lib/schemas-data/3.0.1/bundled/sponsored-intelligence/si-terminate-session-request.json +87 -0
- package/dist/lib/schemas-data/3.0.1/bundled/sponsored-intelligence/si-terminate-session-response.json +156 -0
- package/dist/lib/schemas-data/3.0.1/collection/base-collection-source.json +118 -0
- package/dist/lib/schemas-data/3.0.1/collection/collection-list-changed-webhook.json +74 -0
- package/dist/lib/schemas-data/3.0.1/collection/collection-list-filters.json +85 -0
- package/dist/lib/schemas-data/3.0.1/collection/collection-list.json +71 -0
- package/dist/lib/schemas-data/3.0.1/collection/create-collection-list-request.json +62 -0
- package/dist/lib/schemas-data/3.0.1/collection/create-collection-list-response.json +33 -0
- package/dist/lib/schemas-data/3.0.1/collection/delete-collection-list-request.json +43 -0
- package/dist/lib/schemas-data/3.0.1/collection/delete-collection-list-response.json +34 -0
- package/dist/lib/schemas-data/3.0.1/collection/get-collection-list-request.json +57 -0
- package/dist/lib/schemas-data/3.0.1/collection/get-collection-list-response.json +122 -0
- package/dist/lib/schemas-data/3.0.1/collection/list-collection-lists-request.json +33 -0
- package/dist/lib/schemas-data/3.0.1/collection/list-collection-lists-response.json +29 -0
- package/dist/lib/schemas-data/3.0.1/collection/update-collection-list-request.json +71 -0
- package/dist/lib/schemas-data/3.0.1/collection/update-collection-list-response.json +28 -0
- package/dist/lib/schemas-data/3.0.1/content-standards/artifact-webhook-payload.json +88 -0
- package/dist/lib/schemas-data/3.0.1/content-standards/artifact.json +407 -0
- package/dist/lib/schemas-data/3.0.1/content-standards/calibrate-content-request.json +42 -0
- package/dist/lib/schemas-data/3.0.1/content-standards/calibrate-content-response.json +93 -0
- package/dist/lib/schemas-data/3.0.1/content-standards/content-standards.json +83 -0
- package/dist/lib/schemas-data/3.0.1/content-standards/create-content-standards-request.json +177 -0
- package/dist/lib/schemas-data/3.0.1/content-standards/create-content-standards-response.json +53 -0
- package/dist/lib/schemas-data/3.0.1/content-standards/get-content-standards-request.json +28 -0
- package/dist/lib/schemas-data/3.0.1/content-standards/get-content-standards-response.json +47 -0
- package/dist/lib/schemas-data/3.0.1/content-standards/get-media-buy-artifacts-request.json +79 -0
- package/dist/lib/schemas-data/3.0.1/content-standards/get-media-buy-artifacts-response.json +136 -0
- package/dist/lib/schemas-data/3.0.1/content-standards/list-content-standards-request.json +49 -0
- package/dist/lib/schemas-data/3.0.1/content-standards/list-content-standards-response.json +55 -0
- package/dist/lib/schemas-data/3.0.1/content-standards/update-content-standards-request.json +166 -0
- package/dist/lib/schemas-data/3.0.1/content-standards/update-content-standards-response.json +68 -0
- package/dist/lib/schemas-data/3.0.1/content-standards/validate-content-delivery-request.json +96 -0
- package/dist/lib/schemas-data/3.0.1/content-standards/validate-content-delivery-response.json +121 -0
- package/dist/lib/schemas-data/3.0.1/core/account-ref.json +71 -0
- package/dist/lib/schemas-data/3.0.1/core/account.json +344 -0
- package/dist/lib/schemas-data/3.0.1/core/activation-key.json +50 -0
- package/dist/lib/schemas-data/3.0.1/core/ad-inventory-config.json +39 -0
- package/dist/lib/schemas-data/3.0.1/core/agent-encryption-key.json +41 -0
- package/dist/lib/schemas-data/3.0.1/core/agent-signing-key.json +55 -0
- package/dist/lib/schemas-data/3.0.1/core/app-item.json +170 -0
- package/dist/lib/schemas-data/3.0.1/core/assets/audio-asset.json +82 -0
- package/dist/lib/schemas-data/3.0.1/core/assets/brief-asset.json +22 -0
- package/dist/lib/schemas-data/3.0.1/core/assets/catalog-asset.json +22 -0
- package/dist/lib/schemas-data/3.0.1/core/assets/css-asset.json +31 -0
- package/dist/lib/schemas-data/3.0.1/core/assets/daast-asset.json +88 -0
- package/dist/lib/schemas-data/3.0.1/core/assets/html-asset.json +54 -0
- package/dist/lib/schemas-data/3.0.1/core/assets/image-asset.json +49 -0
- package/dist/lib/schemas-data/3.0.1/core/assets/javascript-asset.json +54 -0
- package/dist/lib/schemas-data/3.0.1/core/assets/markdown-asset.json +37 -0
- package/dist/lib/schemas-data/3.0.1/core/assets/text-asset.json +31 -0
- package/dist/lib/schemas-data/3.0.1/core/assets/url-asset.json +36 -0
- package/dist/lib/schemas-data/3.0.1/core/assets/vast-asset.json +94 -0
- package/dist/lib/schemas-data/3.0.1/core/assets/video-asset.json +179 -0
- package/dist/lib/schemas-data/3.0.1/core/assets/webhook-asset.json +97 -0
- package/dist/lib/schemas-data/3.0.1/core/async-response-data.json +128 -0
- package/dist/lib/schemas-data/3.0.1/core/attribution-window.json +33 -0
- package/dist/lib/schemas-data/3.0.1/core/audience-member.json +70 -0
- package/dist/lib/schemas-data/3.0.1/core/audience-selector.json +134 -0
- package/dist/lib/schemas-data/3.0.1/core/brand-id.json +16 -0
- package/dist/lib/schemas-data/3.0.1/core/brand-ref.json +76 -0
- package/dist/lib/schemas-data/3.0.1/core/business-entity.json +207 -0
- package/dist/lib/schemas-data/3.0.1/core/cancellation-policy.json +49 -0
- package/dist/lib/schemas-data/3.0.1/core/catalog-field-mapping.json +144 -0
- package/dist/lib/schemas-data/3.0.1/core/catalog.json +222 -0
- package/dist/lib/schemas-data/3.0.1/core/catchment.json +221 -0
- package/dist/lib/schemas-data/3.0.1/core/collection-distribution.json +41 -0
- package/dist/lib/schemas-data/3.0.1/core/collection-list-ref.json +29 -0
- package/dist/lib/schemas-data/3.0.1/core/collection-selector.json +27 -0
- package/dist/lib/schemas-data/3.0.1/core/collection.json +116 -0
- package/dist/lib/schemas-data/3.0.1/core/content-rating.json +22 -0
- package/dist/lib/schemas-data/3.0.1/core/context.json +8 -0
- package/dist/lib/schemas-data/3.0.1/core/creative-asset.json +150 -0
- package/dist/lib/schemas-data/3.0.1/core/creative-assignment.json +32 -0
- package/dist/lib/schemas-data/3.0.1/core/creative-brief.json +136 -0
- package/dist/lib/schemas-data/3.0.1/core/creative-consumption.json +30 -0
- package/dist/lib/schemas-data/3.0.1/core/creative-filters.json +119 -0
- package/dist/lib/schemas-data/3.0.1/core/creative-item.json +79 -0
- package/dist/lib/schemas-data/3.0.1/core/creative-manifest.json +96 -0
- package/dist/lib/schemas-data/3.0.1/core/creative-policy.json +31 -0
- package/dist/lib/schemas-data/3.0.1/core/creative-variable.json +47 -0
- package/dist/lib/schemas-data/3.0.1/core/creative-variant.json +60 -0
- package/dist/lib/schemas-data/3.0.1/core/data-provider-signal-selector.json +94 -0
- package/dist/lib/schemas-data/3.0.1/core/date-range.json +24 -0
- package/dist/lib/schemas-data/3.0.1/core/datetime-range.json +24 -0
- package/dist/lib/schemas-data/3.0.1/core/daypart-target.json +39 -0
- package/dist/lib/schemas-data/3.0.1/core/deadline-policy.json +58 -0
- package/dist/lib/schemas-data/3.0.1/core/delivery-forecast.json +86 -0
- package/dist/lib/schemas-data/3.0.1/core/delivery-metrics.json +327 -0
- package/dist/lib/schemas-data/3.0.1/core/deployment.json +93 -0
- package/dist/lib/schemas-data/3.0.1/core/destination-item.json +168 -0
- package/dist/lib/schemas-data/3.0.1/core/destination.json +53 -0
- package/dist/lib/schemas-data/3.0.1/core/diagnostic-issue.json +27 -0
- package/dist/lib/schemas-data/3.0.1/core/duration.json +30 -0
- package/dist/lib/schemas-data/3.0.1/core/education-item.json +168 -0
- package/dist/lib/schemas-data/3.0.1/core/error.json +52 -0
- package/dist/lib/schemas-data/3.0.1/core/event-custom-data.json +86 -0
- package/dist/lib/schemas-data/3.0.1/core/event-source-health.json +70 -0
- package/dist/lib/schemas-data/3.0.1/core/event.json +54 -0
- package/dist/lib/schemas-data/3.0.1/core/ext.json +8 -0
- package/dist/lib/schemas-data/3.0.1/core/feature-requirement.json +45 -0
- package/dist/lib/schemas-data/3.0.1/core/flight-item.json +159 -0
- package/dist/lib/schemas-data/3.0.1/core/forecast-point.json +85 -0
- package/dist/lib/schemas-data/3.0.1/core/forecast-range.json +38 -0
- package/dist/lib/schemas-data/3.0.1/core/format-id.json +48 -0
- package/dist/lib/schemas-data/3.0.1/core/format.json +904 -0
- package/dist/lib/schemas-data/3.0.1/core/frequency-cap.json +73 -0
- package/dist/lib/schemas-data/3.0.1/core/generation-credential.json +44 -0
- package/dist/lib/schemas-data/3.0.1/core/geo-breakdown-support.json +38 -0
- package/dist/lib/schemas-data/3.0.1/core/hotel-item.json +214 -0
- package/dist/lib/schemas-data/3.0.1/core/identifier.json +22 -0
- package/dist/lib/schemas-data/3.0.1/core/industry-identifier.json +22 -0
- package/dist/lib/schemas-data/3.0.1/core/insertion-order.json +91 -0
- package/dist/lib/schemas-data/3.0.1/core/installment-deadlines.json +29 -0
- package/dist/lib/schemas-data/3.0.1/core/installment.json +108 -0
- package/dist/lib/schemas-data/3.0.1/core/job-item.json +199 -0
- package/dist/lib/schemas-data/3.0.1/core/limited-series.json +28 -0
- package/dist/lib/schemas-data/3.0.1/core/material-deadline.json +31 -0
- package/dist/lib/schemas-data/3.0.1/core/mcp-webhook-payload.json +163 -0
- package/dist/lib/schemas-data/3.0.1/core/measurement-readiness.json +43 -0
- package/dist/lib/schemas-data/3.0.1/core/measurement-terms.json +63 -0
- package/dist/lib/schemas-data/3.0.1/core/measurement-window.json +54 -0
- package/dist/lib/schemas-data/3.0.1/core/media-buy-features.json +24 -0
- package/dist/lib/schemas-data/3.0.1/core/media-buy.json +101 -0
- package/dist/lib/schemas-data/3.0.1/core/offering-asset-group.json +118 -0
- package/dist/lib/schemas-data/3.0.1/core/offering.json +267 -0
- package/dist/lib/schemas-data/3.0.1/core/optimization-goal.json +285 -0
- package/dist/lib/schemas-data/3.0.1/core/outcome-measurement.json +48 -0
- package/dist/lib/schemas-data/3.0.1/core/overlay.json +89 -0
- package/dist/lib/schemas-data/3.0.1/core/package.json +170 -0
- package/dist/lib/schemas-data/3.0.1/core/pagination-request.json +21 -0
- package/dist/lib/schemas-data/3.0.1/core/pagination-response.json +26 -0
- package/dist/lib/schemas-data/3.0.1/core/performance-feedback.json +90 -0
- package/dist/lib/schemas-data/3.0.1/core/performance-standard.json +33 -0
- package/dist/lib/schemas-data/3.0.1/core/placement-definition.json +81 -0
- package/dist/lib/schemas-data/3.0.1/core/placement.json +42 -0
- package/dist/lib/schemas-data/3.0.1/core/planned-delivery.json +84 -0
- package/dist/lib/schemas-data/3.0.1/core/price.json +59 -0
- package/dist/lib/schemas-data/3.0.1/core/pricing-option.json +35 -0
- package/dist/lib/schemas-data/3.0.1/core/product-allocation.json +69 -0
- package/dist/lib/schemas-data/3.0.1/core/product-filters.json +435 -0
- package/dist/lib/schemas-data/3.0.1/core/product.json +493 -0
- package/dist/lib/schemas-data/3.0.1/core/property-id.json +15 -0
- package/dist/lib/schemas-data/3.0.1/core/property-list-ref.json +29 -0
- package/dist/lib/schemas-data/3.0.1/core/property-tag.json +16 -0
- package/dist/lib/schemas-data/3.0.1/core/property.json +70 -0
- package/dist/lib/schemas-data/3.0.1/core/proposal.json +89 -0
- package/dist/lib/schemas-data/3.0.1/core/protocol-envelope.json +186 -0
- package/dist/lib/schemas-data/3.0.1/core/provenance.json +234 -0
- package/dist/lib/schemas-data/3.0.1/core/publisher-property-selector.json +92 -0
- package/dist/lib/schemas-data/3.0.1/core/push-notification-config.json +47 -0
- package/dist/lib/schemas-data/3.0.1/core/real-estate-item.json +241 -0
- package/dist/lib/schemas-data/3.0.1/core/reference-asset.json +36 -0
- package/dist/lib/schemas-data/3.0.1/core/reporting-capabilities.json +118 -0
- package/dist/lib/schemas-data/3.0.1/core/reporting-webhook.json +67 -0
- package/dist/lib/schemas-data/3.0.1/core/requirements/asset-requirements.json +44 -0
- package/dist/lib/schemas-data/3.0.1/core/requirements/audio-asset-requirements.json +68 -0
- package/dist/lib/schemas-data/3.0.1/core/requirements/catalog-field-binding.json +172 -0
- package/dist/lib/schemas-data/3.0.1/core/requirements/catalog-requirements.json +68 -0
- package/dist/lib/schemas-data/3.0.1/core/requirements/css-asset-requirements.json +15 -0
- package/dist/lib/schemas-data/3.0.1/core/requirements/daast-asset-requirements.json +17 -0
- package/dist/lib/schemas-data/3.0.1/core/requirements/html-asset-requirements.json +38 -0
- package/dist/lib/schemas-data/3.0.1/core/requirements/image-asset-requirements.json +151 -0
- package/dist/lib/schemas-data/3.0.1/core/requirements/javascript-asset-requirements.json +40 -0
- package/dist/lib/schemas-data/3.0.1/core/requirements/markdown-asset-requirements.json +15 -0
- package/dist/lib/schemas-data/3.0.1/core/requirements/offering-asset-constraint.json +66 -0
- package/dist/lib/schemas-data/3.0.1/core/requirements/text-asset-requirements.json +41 -0
- package/dist/lib/schemas-data/3.0.1/core/requirements/url-asset-requirements.json +50 -0
- package/dist/lib/schemas-data/3.0.1/core/requirements/vast-asset-requirements.json +21 -0
- package/dist/lib/schemas-data/3.0.1/core/requirements/video-asset-requirements.json +172 -0
- package/dist/lib/schemas-data/3.0.1/core/requirements/webhook-asset-requirements.json +21 -0
- package/dist/lib/schemas-data/3.0.1/core/response.json +24 -0
- package/dist/lib/schemas-data/3.0.1/core/rights-constraint.json +98 -0
- package/dist/lib/schemas-data/3.0.1/core/seller-agent-ref.json +30 -0
- package/dist/lib/schemas-data/3.0.1/core/signal-definition.json +89 -0
- package/dist/lib/schemas-data/3.0.1/core/signal-filters.json +43 -0
- package/dist/lib/schemas-data/3.0.1/core/signal-id.json +66 -0
- package/dist/lib/schemas-data/3.0.1/core/signal-pricing-option.json +7 -0
- package/dist/lib/schemas-data/3.0.1/core/signal-pricing.json +194 -0
- package/dist/lib/schemas-data/3.0.1/core/signal-targeting.json +93 -0
- package/dist/lib/schemas-data/3.0.1/core/special.json +31 -0
- package/dist/lib/schemas-data/3.0.1/core/start-timing.json +18 -0
- package/dist/lib/schemas-data/3.0.1/core/store-item.json +259 -0
- package/dist/lib/schemas-data/3.0.1/core/talent.json +27 -0
- package/dist/lib/schemas-data/3.0.1/core/targeting.json +510 -0
- package/dist/lib/schemas-data/3.0.1/core/tasks-get-request.json +50 -0
- package/dist/lib/schemas-data/3.0.1/core/tasks-get-response.json +159 -0
- package/dist/lib/schemas-data/3.0.1/core/tasks-list-request.json +185 -0
- package/dist/lib/schemas-data/3.0.1/core/tasks-list-response.json +153 -0
- package/dist/lib/schemas-data/3.0.1/core/user-match.json +90 -0
- package/dist/lib/schemas-data/3.0.1/core/vehicle-item.json +231 -0
- package/dist/lib/schemas-data/3.0.1/core/vendor-pricing-option.json +24 -0
- package/dist/lib/schemas-data/3.0.1/core/x-entity-types.json +69 -0
- package/dist/lib/schemas-data/3.0.1/creative/asset-types/index.json +118 -0
- package/dist/lib/schemas-data/3.0.1/creative/creative-feature-result.json +69 -0
- package/dist/lib/schemas-data/3.0.1/creative/get-creative-delivery-request.json +75 -0
- package/dist/lib/schemas-data/3.0.1/creative/get-creative-delivery-response.json +143 -0
- package/dist/lib/schemas-data/3.0.1/creative/get-creative-features-request.json +41 -0
- package/dist/lib/schemas-data/3.0.1/creative/get-creative-features-response.json +76 -0
- package/dist/lib/schemas-data/3.0.1/creative/list-creative-formats-request.json +150 -0
- package/dist/lib/schemas-data/3.0.1/creative/list-creative-formats-response.json +64 -0
- package/dist/lib/schemas-data/3.0.1/creative/list-creatives-request.json +184 -0
- package/dist/lib/schemas-data/3.0.1/creative/list-creatives-response.json +445 -0
- package/dist/lib/schemas-data/3.0.1/creative/preview-creative-request.json +212 -0
- package/dist/lib/schemas-data/3.0.1/creative/preview-creative-response.json +307 -0
- package/dist/lib/schemas-data/3.0.1/creative/preview-render.json +225 -0
- package/dist/lib/schemas-data/3.0.1/creative/sync-creatives-async-response-input-required.json +25 -0
- package/dist/lib/schemas-data/3.0.1/creative/sync-creatives-async-response-submitted.json +16 -0
- package/dist/lib/schemas-data/3.0.1/creative/sync-creatives-async-response-working.json +46 -0
- package/dist/lib/schemas-data/3.0.1/creative/sync-creatives-request.json +242 -0
- package/dist/lib/schemas-data/3.0.1/creative/sync-creatives-response.json +270 -0
- package/dist/lib/schemas-data/3.0.1/enums/account-scope.json +19 -0
- package/dist/lib/schemas-data/3.0.1/enums/account-status.json +23 -0
- package/dist/lib/schemas-data/3.0.1/enums/action-source.json +29 -0
- package/dist/lib/schemas-data/3.0.1/enums/adcp-protocol.json +23 -0
- package/dist/lib/schemas-data/3.0.1/enums/adjustment-kind.json +19 -0
- package/dist/lib/schemas-data/3.0.1/enums/advertiser-industry.json +175 -0
- package/dist/lib/schemas-data/3.0.1/enums/age-verification-method.json +14 -0
- package/dist/lib/schemas-data/3.0.1/enums/assessment-status.json +19 -0
- package/dist/lib/schemas-data/3.0.1/enums/asset-content-type.json +23 -0
- package/dist/lib/schemas-data/3.0.1/enums/attribution-model.json +14 -0
- package/dist/lib/schemas-data/3.0.1/enums/audience-source.json +15 -0
- package/dist/lib/schemas-data/3.0.1/enums/audience-status.json +17 -0
- package/dist/lib/schemas-data/3.0.1/enums/audio-channel-layout.json +13 -0
- package/dist/lib/schemas-data/3.0.1/enums/auth-scheme.json +11 -0
- package/dist/lib/schemas-data/3.0.1/enums/available-metric.json +31 -0
- package/dist/lib/schemas-data/3.0.1/enums/billing-party.json +17 -0
- package/dist/lib/schemas-data/3.0.1/enums/binary-verdict.json +15 -0
- package/dist/lib/schemas-data/3.0.1/enums/brand-agent-type.json +27 -0
- package/dist/lib/schemas-data/3.0.1/enums/canceled-by.json +15 -0
- package/dist/lib/schemas-data/3.0.1/enums/catalog-action.json +14 -0
- package/dist/lib/schemas-data/3.0.1/enums/catalog-item-status.json +19 -0
- package/dist/lib/schemas-data/3.0.1/enums/catalog-type.json +22 -0
- package/dist/lib/schemas-data/3.0.1/enums/channels.json +51 -0
- package/dist/lib/schemas-data/3.0.1/enums/cloud-storage-protocol.json +12 -0
- package/dist/lib/schemas-data/3.0.1/enums/co-branding-requirement.json +12 -0
- package/dist/lib/schemas-data/3.0.1/enums/collection-cadence.json +23 -0
- package/dist/lib/schemas-data/3.0.1/enums/collection-kind.json +19 -0
- package/dist/lib/schemas-data/3.0.1/enums/collection-relationship.json +21 -0
- package/dist/lib/schemas-data/3.0.1/enums/collection-status.json +19 -0
- package/dist/lib/schemas-data/3.0.1/enums/consent-basis.json +13 -0
- package/dist/lib/schemas-data/3.0.1/enums/content-id-type.json +21 -0
- package/dist/lib/schemas-data/3.0.1/enums/content-rating-system.json +33 -0
- package/dist/lib/schemas-data/3.0.1/enums/creative-action.json +14 -0
- package/dist/lib/schemas-data/3.0.1/enums/creative-agent-capability.json +14 -0
- package/dist/lib/schemas-data/3.0.1/enums/creative-approval-status.json +17 -0
- package/dist/lib/schemas-data/3.0.1/enums/creative-identifier-type.json +22 -0
- package/dist/lib/schemas-data/3.0.1/enums/creative-quality.json +15 -0
- package/dist/lib/schemas-data/3.0.1/enums/creative-sort-field.json +14 -0
- package/dist/lib/schemas-data/3.0.1/enums/creative-status.json +21 -0
- package/dist/lib/schemas-data/3.0.1/enums/daast-tracking-event.json +32 -0
- package/dist/lib/schemas-data/3.0.1/enums/daast-version.json +11 -0
- package/dist/lib/schemas-data/3.0.1/enums/day-of-week.json +16 -0
- package/dist/lib/schemas-data/3.0.1/enums/delegation-authority.json +17 -0
- package/dist/lib/schemas-data/3.0.1/enums/delivery-type.json +15 -0
- package/dist/lib/schemas-data/3.0.1/enums/demographic-system.json +23 -0
- package/dist/lib/schemas-data/3.0.1/enums/derivative-type.json +21 -0
- package/dist/lib/schemas-data/3.0.1/enums/device-platform.json +21 -0
- package/dist/lib/schemas-data/3.0.1/enums/device-type.json +15 -0
- package/dist/lib/schemas-data/3.0.1/enums/digital-source-type.json +29 -0
- package/dist/lib/schemas-data/3.0.1/enums/dimension-unit.json +15 -0
- package/dist/lib/schemas-data/3.0.1/enums/disclosure-persistence.json +17 -0
- package/dist/lib/schemas-data/3.0.1/enums/disclosure-position.json +17 -0
- package/dist/lib/schemas-data/3.0.1/enums/distance-unit.json +17 -0
- package/dist/lib/schemas-data/3.0.1/enums/distribution-identifier-type.json +53 -0
- package/dist/lib/schemas-data/3.0.1/enums/error-code.json +101 -0
- package/dist/lib/schemas-data/3.0.1/enums/escalation-severity.json +17 -0
- package/dist/lib/schemas-data/3.0.1/enums/event-type.json +67 -0
- package/dist/lib/schemas-data/3.0.1/enums/exclusivity.json +17 -0
- package/dist/lib/schemas-data/3.0.1/enums/feature-check-status.json +19 -0
- package/dist/lib/schemas-data/3.0.1/enums/feed-format.json +14 -0
- package/dist/lib/schemas-data/3.0.1/enums/feedback-source.json +13 -0
- package/dist/lib/schemas-data/3.0.1/enums/forecast-method.json +17 -0
- package/dist/lib/schemas-data/3.0.1/enums/forecast-range-unit.json +27 -0
- package/dist/lib/schemas-data/3.0.1/enums/forecastable-metric.json +43 -0
- package/dist/lib/schemas-data/3.0.1/enums/format-id-parameter.json +11 -0
- package/dist/lib/schemas-data/3.0.1/enums/frame-rate-type.json +15 -0
- package/dist/lib/schemas-data/3.0.1/enums/frequency-cap-scope.json +13 -0
- package/dist/lib/schemas-data/3.0.1/enums/genre-taxonomy.json +29 -0
- package/dist/lib/schemas-data/3.0.1/enums/geo-level.json +13 -0
- package/dist/lib/schemas-data/3.0.1/enums/gop-type.json +15 -0
- package/dist/lib/schemas-data/3.0.1/enums/governance-decision.json +18 -0
- package/dist/lib/schemas-data/3.0.1/enums/governance-domain.json +13 -0
- package/dist/lib/schemas-data/3.0.1/enums/governance-mode.json +18 -0
- package/dist/lib/schemas-data/3.0.1/enums/governance-phase.json +12 -0
- package/dist/lib/schemas-data/3.0.1/enums/history-entry-type.json +11 -0
- package/dist/lib/schemas-data/3.0.1/enums/http-method.json +11 -0
- package/dist/lib/schemas-data/3.0.1/enums/identifier-types.json +61 -0
- package/dist/lib/schemas-data/3.0.1/enums/installment-status.json +25 -0
- package/dist/lib/schemas-data/3.0.1/enums/javascript-module-type.json +12 -0
- package/dist/lib/schemas-data/3.0.1/enums/landing-page-requirement.json +12 -0
- package/dist/lib/schemas-data/3.0.1/enums/makegood-remedy.json +17 -0
- package/dist/lib/schemas-data/3.0.1/enums/markdown-flavor.json +11 -0
- package/dist/lib/schemas-data/3.0.1/enums/match-id-type.json +29 -0
- package/dist/lib/schemas-data/3.0.1/enums/match-type.json +17 -0
- package/dist/lib/schemas-data/3.0.1/enums/media-buy-status.json +25 -0
- package/dist/lib/schemas-data/3.0.1/enums/media-buy-valid-action.json +17 -0
- package/dist/lib/schemas-data/3.0.1/enums/metric-type.json +17 -0
- package/dist/lib/schemas-data/3.0.1/enums/metro-system.json +14 -0
- package/dist/lib/schemas-data/3.0.1/enums/moov-atom-position.json +15 -0
- package/dist/lib/schemas-data/3.0.1/enums/notification-type.json +13 -0
- package/dist/lib/schemas-data/3.0.1/enums/outcome-type.json +17 -0
- package/dist/lib/schemas-data/3.0.1/enums/pacing.json +17 -0
- package/dist/lib/schemas-data/3.0.1/enums/payment-terms.json +23 -0
- package/dist/lib/schemas-data/3.0.1/enums/performance-standard-metric.json +21 -0
- package/dist/lib/schemas-data/3.0.1/enums/policy-category.json +15 -0
- package/dist/lib/schemas-data/3.0.1/enums/policy-enforcement.json +17 -0
- package/dist/lib/schemas-data/3.0.1/enums/postal-system.json +20 -0
- package/dist/lib/schemas-data/3.0.1/enums/preview-output-format.json +11 -0
- package/dist/lib/schemas-data/3.0.1/enums/pricing-model.json +29 -0
- package/dist/lib/schemas-data/3.0.1/enums/production-quality.json +17 -0
- package/dist/lib/schemas-data/3.0.1/enums/property-type.json +31 -0
- package/dist/lib/schemas-data/3.0.1/enums/proposal-status.json +15 -0
- package/dist/lib/schemas-data/3.0.1/enums/publisher-identifier-types.json +19 -0
- package/dist/lib/schemas-data/3.0.1/enums/purchase-type.json +13 -0
- package/dist/lib/schemas-data/3.0.1/enums/reach-unit.json +23 -0
- package/dist/lib/schemas-data/3.0.1/enums/reporting-frequency.json +12 -0
- package/dist/lib/schemas-data/3.0.1/enums/response-type.json +19 -0
- package/dist/lib/schemas-data/3.0.1/enums/restricted-attribute.json +31 -0
- package/dist/lib/schemas-data/3.0.1/enums/right-type.json +22 -0
- package/dist/lib/schemas-data/3.0.1/enums/right-use.json +36 -0
- package/dist/lib/schemas-data/3.0.1/enums/rights-billing-period.json +15 -0
- package/dist/lib/schemas-data/3.0.1/enums/scan-type.json +15 -0
- package/dist/lib/schemas-data/3.0.1/enums/si-session-status.json +19 -0
- package/dist/lib/schemas-data/3.0.1/enums/signal-catalog-type.json +17 -0
- package/dist/lib/schemas-data/3.0.1/enums/signal-source.json +15 -0
- package/dist/lib/schemas-data/3.0.1/enums/signal-value-type.json +17 -0
- package/dist/lib/schemas-data/3.0.1/enums/snapshot-unavailable-reason.json +17 -0
- package/dist/lib/schemas-data/3.0.1/enums/sort-direction.json +11 -0
- package/dist/lib/schemas-data/3.0.1/enums/sort-metric.json +31 -0
- package/dist/lib/schemas-data/3.0.1/enums/special-category.json +35 -0
- package/dist/lib/schemas-data/3.0.1/enums/specialism.json +55 -0
- package/dist/lib/schemas-data/3.0.1/enums/talent-role.json +29 -0
- package/dist/lib/schemas-data/3.0.1/enums/task-status.json +29 -0
- package/dist/lib/schemas-data/3.0.1/enums/task-type.json +57 -0
- package/dist/lib/schemas-data/3.0.1/enums/transport-mode.json +19 -0
- package/dist/lib/schemas-data/3.0.1/enums/travel-time-unit.json +15 -0
- package/dist/lib/schemas-data/3.0.1/enums/uid-type.json +31 -0
- package/dist/lib/schemas-data/3.0.1/enums/universal-macro.json +149 -0
- package/dist/lib/schemas-data/3.0.1/enums/update-frequency.json +13 -0
- package/dist/lib/schemas-data/3.0.1/enums/url-asset-type.json +12 -0
- package/dist/lib/schemas-data/3.0.1/enums/validation-mode.json +11 -0
- package/dist/lib/schemas-data/3.0.1/enums/vast-tracking-event.json +41 -0
- package/dist/lib/schemas-data/3.0.1/enums/vast-version.json +14 -0
- package/dist/lib/schemas-data/3.0.1/enums/viewability-standard.json +15 -0
- package/dist/lib/schemas-data/3.0.1/enums/wcag-level.json +17 -0
- package/dist/lib/schemas-data/3.0.1/enums/webhook-response-type.json +13 -0
- package/dist/lib/schemas-data/3.0.1/enums/webhook-security-method.json +12 -0
- package/dist/lib/schemas-data/3.0.1/error-details/account-setup-required.json +22 -0
- package/dist/lib/schemas-data/3.0.1/error-details/audience-too-small.json +18 -0
- package/dist/lib/schemas-data/3.0.1/error-details/budget-too-low.json +18 -0
- package/dist/lib/schemas-data/3.0.1/error-details/conflict.json +28 -0
- package/dist/lib/schemas-data/3.0.1/error-details/creative-rejected.json +27 -0
- package/dist/lib/schemas-data/3.0.1/error-details/policy-violation.json +27 -0
- package/dist/lib/schemas-data/3.0.1/error-details/rate-limited.json +31 -0
- package/dist/lib/schemas-data/3.0.1/error-details/vendor-error-codes.json +55 -0
- package/dist/lib/schemas-data/3.0.1/extensions/extension-meta.json +69 -0
- package/dist/lib/schemas-data/3.0.1/extensions/index.json +9 -0
- package/dist/lib/schemas-data/3.0.1/governance/attribute-definition.json +82 -0
- package/dist/lib/schemas-data/3.0.1/governance/audience-constraints.json +27 -0
- package/dist/lib/schemas-data/3.0.1/governance/check-governance-request.json +198 -0
- package/dist/lib/schemas-data/3.0.1/governance/check-governance-response.json +217 -0
- package/dist/lib/schemas-data/3.0.1/governance/get-plan-audit-logs-request.json +79 -0
- package/dist/lib/schemas-data/3.0.1/governance/get-plan-audit-logs-response.json +423 -0
- package/dist/lib/schemas-data/3.0.1/governance/policy-category-definition.json +95 -0
- package/dist/lib/schemas-data/3.0.1/governance/policy-entry.json +165 -0
- package/dist/lib/schemas-data/3.0.1/governance/policy-ref.json +27 -0
- package/dist/lib/schemas-data/3.0.1/governance/report-plan-outcome-request.json +165 -0
- package/dist/lib/schemas-data/3.0.1/governance/report-plan-outcome-response.json +89 -0
- package/dist/lib/schemas-data/3.0.1/governance/sync-plans-request.json +449 -0
- package/dist/lib/schemas-data/3.0.1/governance/sync-plans-response.json +119 -0
- package/dist/lib/schemas-data/3.0.1/index.json +1678 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/build-creative-async-response-input-required.json +32 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/build-creative-async-response-submitted.json +16 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/build-creative-async-response-working.json +36 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/build-creative-request.json +138 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/build-creative-response.json +293 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/create-media-buy-async-response-input-required.json +31 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/create-media-buy-async-response-submitted.json +16 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/create-media-buy-async-response-working.json +36 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/create-media-buy-request.json +221 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/create-media-buy-response.json +194 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/get-media-buy-delivery-request.json +205 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/get-media-buy-delivery-response.json +704 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/get-media-buys-request.json +66 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/get-media-buys-response.json +394 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/get-products-async-response-input-required.json +38 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/get-products-async-response-submitted.json +21 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/get-products-async-response-working.json +34 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/get-products-request.json +229 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/get-products-response.json +195 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/list-creative-formats-request.json +103 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/list-creative-formats-response.json +68 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/log-event-request.json +53 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/log-event-response.json +130 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/package-request.json +133 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/package-update.json +202 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/provide-performance-feedback-request.json +73 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/provide-performance-feedback-response.json +79 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/sync-audiences-request.json +127 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/sync-audiences-response.json +191 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/sync-catalogs-async-response-input-required.json +26 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/sync-catalogs-async-response-submitted.json +16 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/sync-catalogs-async-response-working.json +56 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/sync-catalogs-request.json +162 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/sync-catalogs-response.json +213 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/sync-event-sources-request.json +82 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/sync-event-sources-response.json +167 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/update-media-buy-async-response-input-required.json +24 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/update-media-buy-async-response-submitted.json +16 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/update-media-buy-async-response-working.json +36 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/update-media-buy-request.json +99 -0
- package/dist/lib/schemas-data/3.0.1/media-buy/update-media-buy-response.json +119 -0
- package/dist/lib/schemas-data/3.0.1/pricing-options/cpa-option.json +75 -0
- package/dist/lib/schemas-data/3.0.1/pricing-options/cpc-option.json +71 -0
- package/dist/lib/schemas-data/3.0.1/pricing-options/cpcv-option.json +71 -0
- package/dist/lib/schemas-data/3.0.1/pricing-options/cpm-option.json +71 -0
- package/dist/lib/schemas-data/3.0.1/pricing-options/cpp-option.json +90 -0
- package/dist/lib/schemas-data/3.0.1/pricing-options/cpv-option.json +107 -0
- package/dist/lib/schemas-data/3.0.1/pricing-options/flat-rate-option.json +116 -0
- package/dist/lib/schemas-data/3.0.1/pricing-options/price-breakdown.json +88 -0
- package/dist/lib/schemas-data/3.0.1/pricing-options/price-guidance.json +30 -0
- package/dist/lib/schemas-data/3.0.1/pricing-options/time-option.json +97 -0
- package/dist/lib/schemas-data/3.0.1/pricing-options/vcpm-option.json +71 -0
- package/dist/lib/schemas-data/3.0.1/property/authorization-result.json +50 -0
- package/dist/lib/schemas-data/3.0.1/property/base-property-source.json +98 -0
- package/dist/lib/schemas-data/3.0.1/property/create-property-list-request.json +62 -0
- package/dist/lib/schemas-data/3.0.1/property/create-property-list-response.json +33 -0
- package/dist/lib/schemas-data/3.0.1/property/delete-property-list-request.json +43 -0
- package/dist/lib/schemas-data/3.0.1/property/delete-property-list-response.json +34 -0
- package/dist/lib/schemas-data/3.0.1/property/delivery-record.json +35 -0
- package/dist/lib/schemas-data/3.0.1/property/get-property-list-request.json +57 -0
- package/dist/lib/schemas-data/3.0.1/property/get-property-list-response.json +53 -0
- package/dist/lib/schemas-data/3.0.1/property/list-property-lists-request.json +33 -0
- package/dist/lib/schemas-data/3.0.1/property/list-property-lists-response.json +29 -0
- package/dist/lib/schemas-data/3.0.1/property/property-error.json +34 -0
- package/dist/lib/schemas-data/3.0.1/property/property-feature-definition.json +96 -0
- package/dist/lib/schemas-data/3.0.1/property/property-feature-result.json +50 -0
- package/dist/lib/schemas-data/3.0.1/property/property-feature-value.json +59 -0
- package/dist/lib/schemas-data/3.0.1/property/property-feature.json +26 -0
- package/dist/lib/schemas-data/3.0.1/property/property-list-changed-webhook.json +74 -0
- package/dist/lib/schemas-data/3.0.1/property/property-list-filters.json +51 -0
- package/dist/lib/schemas-data/3.0.1/property/property-list.json +79 -0
- package/dist/lib/schemas-data/3.0.1/property/update-property-list-request.json +71 -0
- package/dist/lib/schemas-data/3.0.1/property/update-property-list-response.json +28 -0
- package/dist/lib/schemas-data/3.0.1/property/validate-property-delivery-request.json +49 -0
- package/dist/lib/schemas-data/3.0.1/property/validate-property-delivery-response.json +180 -0
- package/dist/lib/schemas-data/3.0.1/property/validation-result.json +101 -0
- package/dist/lib/schemas-data/3.0.1/protocol/get-adcp-capabilities-request.json +37 -0
- package/dist/lib/schemas-data/3.0.1/protocol/get-adcp-capabilities-response.json +1108 -0
- package/dist/lib/schemas-data/3.0.1/signals/activate-signal-request.json +66 -0
- package/dist/lib/schemas-data/3.0.1/signals/activate-signal-response.json +81 -0
- package/dist/lib/schemas-data/3.0.1/signals/get-signals-request.json +80 -0
- package/dist/lib/schemas-data/3.0.1/signals/get-signals-response.json +130 -0
- package/dist/lib/schemas-data/3.0.1/sponsored-intelligence/si-capabilities.json +154 -0
- package/dist/lib/schemas-data/3.0.1/sponsored-intelligence/si-get-offering-request.json +47 -0
- package/dist/lib/schemas-data/3.0.1/sponsored-intelligence/si-get-offering-response.json +150 -0
- package/dist/lib/schemas-data/3.0.1/sponsored-intelligence/si-identity.json +104 -0
- package/dist/lib/schemas-data/3.0.1/sponsored-intelligence/si-initiate-session-request.json +65 -0
- package/dist/lib/schemas-data/3.0.1/sponsored-intelligence/si-initiate-session-response.json +64 -0
- package/dist/lib/schemas-data/3.0.1/sponsored-intelligence/si-send-message-request.json +71 -0
- package/dist/lib/schemas-data/3.0.1/sponsored-intelligence/si-send-message-response.json +123 -0
- package/dist/lib/schemas-data/3.0.1/sponsored-intelligence/si-terminate-session-request.json +77 -0
- package/dist/lib/schemas-data/3.0.1/sponsored-intelligence/si-terminate-session-response.json +86 -0
- package/dist/lib/schemas-data/3.0.1/sponsored-intelligence/si-ui-element.json +341 -0
- package/dist/lib/server/a2a-adapter.d.ts +234 -0
- package/dist/lib/server/a2a-adapter.d.ts.map +1 -0
- package/dist/lib/server/a2a-adapter.js +503 -0
- package/dist/lib/server/a2a-adapter.js.map +1 -0
- package/dist/lib/server/adcp-server.d.ts +265 -0
- package/dist/lib/server/adcp-server.d.ts.map +1 -0
- package/dist/lib/server/adcp-server.js +187 -0
- package/dist/lib/server/adcp-server.js.map +1 -0
- package/dist/lib/server/auth-introspection.d.ts +83 -0
- package/dist/lib/server/auth-introspection.d.ts.map +1 -0
- package/dist/lib/server/auth-introspection.js +297 -0
- package/dist/lib/server/auth-introspection.js.map +1 -0
- package/dist/lib/server/auth-signature.d.ts +322 -0
- package/dist/lib/server/auth-signature.d.ts.map +1 -0
- package/dist/lib/server/auth-signature.js +310 -0
- package/dist/lib/server/auth-signature.js.map +1 -0
- package/dist/lib/server/auth.d.ts +303 -0
- package/dist/lib/server/auth.d.ts.map +1 -0
- package/dist/lib/server/auth.js +387 -0
- package/dist/lib/server/auth.js.map +1 -0
- package/dist/lib/server/create-adcp-server.d.ts +968 -0
- package/dist/lib/server/create-adcp-server.d.ts.map +1 -0
- package/dist/lib/server/create-adcp-server.js +1831 -0
- package/dist/lib/server/create-adcp-server.js.map +1 -0
- package/dist/lib/server/envelope-allowlist.d.ts +109 -0
- package/dist/lib/server/envelope-allowlist.d.ts.map +1 -0
- package/dist/lib/server/envelope-allowlist.js +155 -0
- package/dist/lib/server/envelope-allowlist.js.map +1 -0
- package/dist/lib/server/errors.d.ts +129 -0
- package/dist/lib/server/errors.d.ts.map +1 -0
- package/dist/lib/server/errors.js +85 -0
- package/dist/lib/server/errors.js.map +1 -0
- package/dist/lib/server/express-adapter.d.ts +169 -0
- package/dist/lib/server/express-adapter.d.ts.map +1 -0
- package/dist/lib/server/express-adapter.js +271 -0
- package/dist/lib/server/express-adapter.js.map +1 -0
- package/dist/lib/server/governance.d.ts +122 -0
- package/dist/lib/server/governance.d.ts.map +1 -0
- package/dist/lib/server/governance.js +189 -0
- package/dist/lib/server/governance.js.map +1 -0
- package/dist/lib/server/idempotency/backends/memory.d.ts +22 -0
- package/dist/lib/server/idempotency/backends/memory.d.ts.map +1 -0
- package/dist/lib/server/idempotency/backends/memory.js +78 -0
- package/dist/lib/server/idempotency/backends/memory.js.map +1 -0
- package/dist/lib/server/idempotency/backends/pg.d.ts +76 -0
- package/dist/lib/server/idempotency/backends/pg.d.ts.map +1 -0
- package/dist/lib/server/idempotency/backends/pg.js +163 -0
- package/dist/lib/server/idempotency/backends/pg.js.map +1 -0
- package/dist/lib/server/idempotency/index.d.ts +7 -0
- package/dist/lib/server/idempotency/index.d.ts.map +1 -0
- package/dist/lib/server/idempotency/index.js +15 -0
- package/dist/lib/server/idempotency/index.js.map +1 -0
- package/dist/lib/server/idempotency/store.d.ts +302 -0
- package/dist/lib/server/idempotency/store.d.ts.map +1 -0
- package/dist/lib/server/idempotency/store.js +272 -0
- package/dist/lib/server/idempotency/store.js.map +1 -0
- package/dist/lib/server/index.d.ts +50 -0
- package/dist/lib/server/index.d.ts.map +1 -0
- package/dist/lib/server/index.js +164 -0
- package/dist/lib/server/index.js.map +1 -0
- package/dist/lib/server/media-buy-helpers.d.ts +47 -0
- package/dist/lib/server/media-buy-helpers.d.ts.map +1 -0
- package/dist/lib/server/media-buy-helpers.js +43 -0
- package/dist/lib/server/media-buy-helpers.js.map +1 -0
- package/dist/lib/server/pin-and-bind-fetch.d.ts +115 -0
- package/dist/lib/server/pin-and-bind-fetch.d.ts.map +1 -0
- package/dist/lib/server/pin-and-bind-fetch.js +244 -0
- package/dist/lib/server/pin-and-bind-fetch.js.map +1 -0
- package/dist/lib/server/postgres-state-store.d.ts +76 -0
- package/dist/lib/server/postgres-state-store.d.ts.map +1 -0
- package/dist/lib/server/postgres-state-store.js +218 -0
- package/dist/lib/server/postgres-state-store.js.map +1 -0
- package/dist/lib/server/postgres-task-store.d.ts +121 -0
- package/dist/lib/server/postgres-task-store.d.ts.map +1 -0
- package/dist/lib/server/postgres-task-store.js +298 -0
- package/dist/lib/server/postgres-task-store.js.map +1 -0
- package/dist/lib/server/product-defaults.d.ts +16 -0
- package/dist/lib/server/product-defaults.d.ts.map +1 -0
- package/dist/lib/server/product-defaults.js +25 -0
- package/dist/lib/server/product-defaults.js.map +1 -0
- package/dist/lib/server/responses.d.ts +257 -0
- package/dist/lib/server/responses.d.ts.map +1 -0
- package/dist/lib/server/responses.js +542 -0
- package/dist/lib/server/responses.js.map +1 -0
- package/dist/lib/server/serve.d.ts +308 -0
- package/dist/lib/server/serve.d.ts.map +1 -0
- package/dist/lib/server/serve.js +663 -0
- package/dist/lib/server/serve.js.map +1 -0
- package/dist/lib/server/state-store.d.ts +296 -0
- package/dist/lib/server/state-store.d.ts.map +1 -0
- package/dist/lib/server/state-store.js +459 -0
- package/dist/lib/server/state-store.js.map +1 -0
- package/dist/lib/server/structured-serialize.d.ts +30 -0
- package/dist/lib/server/structured-serialize.d.ts.map +1 -0
- package/dist/lib/server/structured-serialize.js +109 -0
- package/dist/lib/server/structured-serialize.js.map +1 -0
- package/dist/lib/server/targeting-helpers.d.ts +90 -0
- package/dist/lib/server/targeting-helpers.d.ts.map +1 -0
- package/dist/lib/server/targeting-helpers.js +144 -0
- package/dist/lib/server/targeting-helpers.js.map +1 -0
- package/dist/lib/server/tasks.d.ts +91 -0
- package/dist/lib/server/tasks.d.ts.map +1 -0
- package/dist/lib/server/tasks.js +116 -0
- package/dist/lib/server/tasks.js.map +1 -0
- package/dist/lib/server/test-controller-bridge.d.ts +192 -0
- package/dist/lib/server/test-controller-bridge.d.ts.map +1 -0
- package/dist/lib/server/test-controller-bridge.js +207 -0
- package/dist/lib/server/test-controller-bridge.js.map +1 -0
- package/dist/lib/server/test-controller.d.ts +388 -0
- package/dist/lib/server/test-controller.d.ts.map +1 -0
- package/dist/lib/server/test-controller.js +735 -0
- package/dist/lib/server/test-controller.js.map +1 -0
- package/dist/lib/server/webhook-emitter.d.ts +192 -0
- package/dist/lib/server/webhook-emitter.d.ts.map +1 -0
- package/dist/lib/server/webhook-emitter.js +316 -0
- package/dist/lib/server/webhook-emitter.js.map +1 -0
- package/dist/lib/server/wrap-envelope.d.ts +162 -0
- package/dist/lib/server/wrap-envelope.d.ts.map +1 -0
- package/dist/lib/server/wrap-envelope.js +145 -0
- package/dist/lib/server/wrap-envelope.js.map +1 -0
- package/dist/lib/signing/agent-context.d.ts +73 -0
- package/dist/lib/signing/agent-context.d.ts.map +1 -0
- package/dist/lib/signing/agent-context.js +104 -0
- package/dist/lib/signing/agent-context.js.map +1 -0
- package/dist/lib/signing/agent-fetch.d.ts +177 -0
- package/dist/lib/signing/agent-fetch.d.ts.map +1 -0
- package/dist/lib/signing/agent-fetch.js +271 -0
- package/dist/lib/signing/agent-fetch.js.map +1 -0
- package/dist/lib/signing/brand-jwks.d.ts +102 -0
- package/dist/lib/signing/brand-jwks.d.ts.map +1 -0
- package/dist/lib/signing/brand-jwks.js +433 -0
- package/dist/lib/signing/brand-jwks.js.map +1 -0
- package/dist/lib/signing/canonicalize.d.ts +39 -0
- package/dist/lib/signing/canonicalize.d.ts.map +1 -0
- package/dist/lib/signing/canonicalize.js +149 -0
- package/dist/lib/signing/canonicalize.js.map +1 -0
- package/dist/lib/signing/capability-cache.d.ts +70 -0
- package/dist/lib/signing/capability-cache.d.ts.map +1 -0
- package/dist/lib/signing/capability-cache.js +90 -0
- package/dist/lib/signing/capability-cache.js.map +1 -0
- package/dist/lib/signing/capability-priming.d.ts +30 -0
- package/dist/lib/signing/capability-priming.d.ts.map +1 -0
- package/dist/lib/signing/capability-priming.js +145 -0
- package/dist/lib/signing/capability-priming.js.map +1 -0
- package/dist/lib/signing/client.d.ts +25 -0
- package/dist/lib/signing/client.d.ts.map +1 -0
- package/dist/lib/signing/client.js +70 -0
- package/dist/lib/signing/client.js.map +1 -0
- package/dist/lib/signing/content-digest.d.ts +9 -0
- package/dist/lib/signing/content-digest.d.ts.map +1 -0
- package/dist/lib/signing/content-digest.js +48 -0
- package/dist/lib/signing/content-digest.js.map +1 -0
- package/dist/lib/signing/crypto.d.ts +5 -0
- package/dist/lib/signing/crypto.d.ts.map +1 -0
- package/dist/lib/signing/crypto.js +35 -0
- package/dist/lib/signing/crypto.js.map +1 -0
- package/dist/lib/signing/ecdsa-encoding.d.ts +20 -0
- package/dist/lib/signing/ecdsa-encoding.d.ts.map +1 -0
- package/dist/lib/signing/ecdsa-encoding.js +91 -0
- package/dist/lib/signing/ecdsa-encoding.js.map +1 -0
- package/dist/lib/signing/errors.d.ts +49 -0
- package/dist/lib/signing/errors.d.ts.map +1 -0
- package/dist/lib/signing/errors.js +48 -0
- package/dist/lib/signing/errors.js.map +1 -0
- package/dist/lib/signing/fetch-async.d.ts +23 -0
- package/dist/lib/signing/fetch-async.d.ts.map +1 -0
- package/dist/lib/signing/fetch-async.js +96 -0
- package/dist/lib/signing/fetch-async.js.map +1 -0
- package/dist/lib/signing/fetch.d.ts +17 -0
- package/dist/lib/signing/fetch.d.ts.map +1 -0
- package/dist/lib/signing/fetch.js +89 -0
- package/dist/lib/signing/fetch.js.map +1 -0
- package/dist/lib/signing/index.d.ts +16 -0
- package/dist/lib/signing/index.d.ts.map +1 -0
- package/dist/lib/signing/index.js +32 -0
- package/dist/lib/signing/index.js.map +1 -0
- package/dist/lib/signing/jwks-helpers.d.ts +48 -0
- package/dist/lib/signing/jwks-helpers.d.ts.map +1 -0
- package/dist/lib/signing/jwks-helpers.js +87 -0
- package/dist/lib/signing/jwks-helpers.js.map +1 -0
- package/dist/lib/signing/jwks-https.d.ts +61 -0
- package/dist/lib/signing/jwks-https.d.ts.map +1 -0
- package/dist/lib/signing/jwks-https.js +165 -0
- package/dist/lib/signing/jwks-https.js.map +1 -0
- package/dist/lib/signing/jwks.d.ts +10 -0
- package/dist/lib/signing/jwks.d.ts.map +1 -0
- package/dist/lib/signing/jwks.js +15 -0
- package/dist/lib/signing/jwks.js.map +1 -0
- package/dist/lib/signing/middleware.d.ts +77 -0
- package/dist/lib/signing/middleware.d.ts.map +1 -0
- package/dist/lib/signing/middleware.js +77 -0
- package/dist/lib/signing/middleware.js.map +1 -0
- package/dist/lib/signing/parser.d.ts +35 -0
- package/dist/lib/signing/parser.d.ts.map +1 -0
- package/dist/lib/signing/parser.js +244 -0
- package/dist/lib/signing/parser.js.map +1 -0
- package/dist/lib/signing/postgres-replay-store.d.ts +138 -0
- package/dist/lib/signing/postgres-replay-store.d.ts.map +1 -0
- package/dist/lib/signing/postgres-replay-store.js +236 -0
- package/dist/lib/signing/postgres-replay-store.js.map +1 -0
- package/dist/lib/signing/provider.d.ts +81 -0
- package/dist/lib/signing/provider.d.ts.map +1 -0
- package/dist/lib/signing/provider.js +3 -0
- package/dist/lib/signing/provider.js.map +1 -0
- package/dist/lib/signing/replay.d.ts +62 -0
- package/dist/lib/signing/replay.d.ts.map +1 -0
- package/dist/lib/signing/replay.js +106 -0
- package/dist/lib/signing/replay.js.map +1 -0
- package/dist/lib/signing/revocation-https.d.ts +79 -0
- package/dist/lib/signing/revocation-https.d.ts.map +1 -0
- package/dist/lib/signing/revocation-https.js +144 -0
- package/dist/lib/signing/revocation-https.js.map +1 -0
- package/dist/lib/signing/revocation.d.ts +11 -0
- package/dist/lib/signing/revocation.d.ts.map +1 -0
- package/dist/lib/signing/revocation.js +18 -0
- package/dist/lib/signing/revocation.js.map +1 -0
- package/dist/lib/signing/server.d.ts +27 -0
- package/dist/lib/signing/server.d.ts.map +1 -0
- package/dist/lib/signing/server.js +67 -0
- package/dist/lib/signing/server.js.map +1 -0
- package/dist/lib/signing/signer-async.d.ts +24 -0
- package/dist/lib/signing/signer-async.d.ts.map +1 -0
- package/dist/lib/signing/signer-async.js +34 -0
- package/dist/lib/signing/signer-async.js.map +1 -0
- package/dist/lib/signing/signer.d.ts +94 -0
- package/dist/lib/signing/signer.d.ts.map +1 -0
- package/dist/lib/signing/signer.js +131 -0
- package/dist/lib/signing/signer.js.map +1 -0
- package/dist/lib/signing/testing.d.ts +45 -0
- package/dist/lib/signing/testing.d.ts.map +1 -0
- package/dist/lib/signing/testing.js +81 -0
- package/dist/lib/signing/testing.js.map +1 -0
- package/dist/lib/signing/types.d.ts +90 -0
- package/dist/lib/signing/types.d.ts.map +1 -0
- package/dist/lib/signing/types.js +9 -0
- package/dist/lib/signing/types.js.map +1 -0
- package/dist/lib/signing/verifier.d.ts +23 -0
- package/dist/lib/signing/verifier.d.ts.map +1 -0
- package/dist/lib/signing/verifier.js +386 -0
- package/dist/lib/signing/verifier.js.map +1 -0
- package/dist/lib/signing/webhook-verifier.d.ts +119 -0
- package/dist/lib/signing/webhook-verifier.d.ts.map +1 -0
- package/dist/lib/signing/webhook-verifier.js +292 -0
- package/dist/lib/signing/webhook-verifier.js.map +1 -0
- package/dist/lib/storage/MemoryStorage.d.ts +93 -0
- package/dist/lib/storage/MemoryStorage.d.ts.map +1 -0
- package/dist/lib/storage/MemoryStorage.js +219 -0
- package/dist/lib/storage/MemoryStorage.js.map +1 -0
- package/dist/lib/storage/interfaces.d.ts +195 -0
- package/dist/lib/storage/interfaces.d.ts.map +1 -0
- package/dist/lib/storage/interfaces.js +5 -0
- package/dist/lib/storage/interfaces.js.map +1 -0
- package/dist/lib/substitution/encoder/SubstitutionEncoder.d.ts +45 -0
- package/dist/lib/substitution/encoder/SubstitutionEncoder.d.ts.map +1 -0
- package/dist/lib/substitution/encoder/SubstitutionEncoder.js +73 -0
- package/dist/lib/substitution/encoder/SubstitutionEncoder.js.map +1 -0
- package/dist/lib/substitution/encoder/index.d.ts +2 -0
- package/dist/lib/substitution/encoder/index.d.ts.map +1 -0
- package/dist/lib/substitution/encoder/index.js +7 -0
- package/dist/lib/substitution/encoder/index.js.map +1 -0
- package/dist/lib/substitution/index.d.ts +36 -0
- package/dist/lib/substitution/index.d.ts.map +1 -0
- package/dist/lib/substitution/index.js +56 -0
- package/dist/lib/substitution/index.js.map +1 -0
- package/dist/lib/substitution/observer/SubstitutionObserver.d.ts +91 -0
- package/dist/lib/substitution/observer/SubstitutionObserver.d.ts.map +1 -0
- package/dist/lib/substitution/observer/SubstitutionObserver.js +248 -0
- package/dist/lib/substitution/observer/SubstitutionObserver.js.map +1 -0
- package/dist/lib/substitution/observer/alignment.d.ts +24 -0
- package/dist/lib/substitution/observer/alignment.d.ts.map +1 -0
- package/dist/lib/substitution/observer/alignment.js +279 -0
- package/dist/lib/substitution/observer/alignment.js.map +1 -0
- package/dist/lib/substitution/observer/assertions.d.ts +48 -0
- package/dist/lib/substitution/observer/assertions.d.ts.map +1 -0
- package/dist/lib/substitution/observer/assertions.js +145 -0
- package/dist/lib/substitution/observer/assertions.js.map +1 -0
- package/dist/lib/substitution/observer/html-parser.d.ts +29 -0
- package/dist/lib/substitution/observer/html-parser.d.ts.map +1 -0
- package/dist/lib/substitution/observer/html-parser.js +308 -0
- package/dist/lib/substitution/observer/html-parser.js.map +1 -0
- package/dist/lib/substitution/observer/index.d.ts +7 -0
- package/dist/lib/substitution/observer/index.d.ts.map +1 -0
- package/dist/lib/substitution/observer/index.js +21 -0
- package/dist/lib/substitution/observer/index.js.map +1 -0
- package/dist/lib/substitution/observer/ssrf.d.ts +29 -0
- package/dist/lib/substitution/observer/ssrf.d.ts.map +1 -0
- package/dist/lib/substitution/observer/ssrf.js +226 -0
- package/dist/lib/substitution/observer/ssrf.js.map +1 -0
- package/dist/lib/substitution/rfc3986.d.ts +51 -0
- package/dist/lib/substitution/rfc3986.d.ts.map +1 -0
- package/dist/lib/substitution/rfc3986.js +139 -0
- package/dist/lib/substitution/rfc3986.js.map +1 -0
- package/dist/lib/substitution/types.d.ts +147 -0
- package/dist/lib/substitution/types.d.ts.map +1 -0
- package/dist/lib/substitution/types.js +8 -0
- package/dist/lib/substitution/types.js.map +1 -0
- package/dist/lib/substitution/vectors.d.ts +18 -0
- package/dist/lib/substitution/vectors.d.ts.map +1 -0
- package/dist/lib/substitution/vectors.js +79 -0
- package/dist/lib/substitution/vectors.js.map +1 -0
- package/dist/lib/testing/agent-tester.d.ts +34 -0
- package/dist/lib/testing/agent-tester.d.ts.map +1 -0
- package/dist/lib/testing/agent-tester.js +421 -0
- package/dist/lib/testing/agent-tester.js.map +1 -0
- package/dist/lib/testing/client.d.ts +104 -0
- package/dist/lib/testing/client.d.ts.map +1 -0
- package/dist/lib/testing/client.js +487 -0
- package/dist/lib/testing/client.js.map +1 -0
- package/dist/lib/testing/compliance/briefs.d.ts +11 -0
- package/dist/lib/testing/compliance/briefs.d.ts.map +1 -0
- package/dist/lib/testing/compliance/briefs.js +156 -0
- package/dist/lib/testing/compliance/briefs.js.map +1 -0
- package/dist/lib/testing/compliance/comply.d.ts +83 -0
- package/dist/lib/testing/compliance/comply.d.ts.map +1 -0
- package/dist/lib/testing/compliance/comply.js +1275 -0
- package/dist/lib/testing/compliance/comply.js.map +1 -0
- package/dist/lib/testing/compliance/index.d.ts +10 -0
- package/dist/lib/testing/compliance/index.d.ts.map +1 -0
- package/dist/lib/testing/compliance/index.js +18 -0
- package/dist/lib/testing/compliance/index.js.map +1 -0
- package/dist/lib/testing/compliance/storyboard-tracks.d.ts +17 -0
- package/dist/lib/testing/compliance/storyboard-tracks.d.ts.map +1 -0
- package/dist/lib/testing/compliance/storyboard-tracks.js +147 -0
- package/dist/lib/testing/compliance/storyboard-tracks.js.map +1 -0
- package/dist/lib/testing/compliance/types.d.ts +145 -0
- package/dist/lib/testing/compliance/types.d.ts.map +1 -0
- package/dist/lib/testing/compliance/types.js +6 -0
- package/dist/lib/testing/compliance/types.js.map +1 -0
- package/dist/lib/testing/comply-controller.d.ts +193 -0
- package/dist/lib/testing/comply-controller.d.ts.map +1 -0
- package/dist/lib/testing/comply-controller.js +199 -0
- package/dist/lib/testing/comply-controller.js.map +1 -0
- package/dist/lib/testing/controller-assertions.d.ts +67 -0
- package/dist/lib/testing/controller-assertions.d.ts.map +1 -0
- package/dist/lib/testing/controller-assertions.js +60 -0
- package/dist/lib/testing/controller-assertions.js.map +1 -0
- package/dist/lib/testing/formatter.d.ts +17 -0
- package/dist/lib/testing/formatter.d.ts.map +1 -0
- package/dist/lib/testing/formatter.js +92 -0
- package/dist/lib/testing/formatter.js.map +1 -0
- package/dist/lib/testing/index.d.ts +19 -0
- package/dist/lib/testing/index.d.ts.map +1 -0
- package/dist/lib/testing/index.js +185 -0
- package/dist/lib/testing/index.js.map +1 -0
- package/dist/lib/testing/local-agent-runner.d.ts +189 -0
- package/dist/lib/testing/local-agent-runner.d.ts.map +1 -0
- package/dist/lib/testing/local-agent-runner.js +290 -0
- package/dist/lib/testing/local-agent-runner.js.map +1 -0
- package/dist/lib/testing/orchestrator.d.ts +70 -0
- package/dist/lib/testing/orchestrator.d.ts.map +1 -0
- package/dist/lib/testing/orchestrator.js +278 -0
- package/dist/lib/testing/orchestrator.js.map +1 -0
- package/dist/lib/testing/scenarios/brand-rights.d.ts +41 -0
- package/dist/lib/testing/scenarios/brand-rights.d.ts.map +1 -0
- package/dist/lib/testing/scenarios/brand-rights.js +278 -0
- package/dist/lib/testing/scenarios/brand-rights.js.map +1 -0
- package/dist/lib/testing/scenarios/capabilities.d.ts +27 -0
- package/dist/lib/testing/scenarios/capabilities.d.ts.map +1 -0
- package/dist/lib/testing/scenarios/capabilities.js +332 -0
- package/dist/lib/testing/scenarios/capabilities.js.map +1 -0
- package/dist/lib/testing/scenarios/creative.d.ts +38 -0
- package/dist/lib/testing/scenarios/creative.d.ts.map +1 -0
- package/dist/lib/testing/scenarios/creative.js +429 -0
- package/dist/lib/testing/scenarios/creative.js.map +1 -0
- package/dist/lib/testing/scenarios/deterministic.d.ts +37 -0
- package/dist/lib/testing/scenarios/deterministic.d.ts.map +1 -0
- package/dist/lib/testing/scenarios/deterministic.js +705 -0
- package/dist/lib/testing/scenarios/deterministic.js.map +1 -0
- package/dist/lib/testing/scenarios/discovery.d.ts +15 -0
- package/dist/lib/testing/scenarios/discovery.d.ts.map +1 -0
- package/dist/lib/testing/scenarios/discovery.js +68 -0
- package/dist/lib/testing/scenarios/discovery.js.map +1 -0
- package/dist/lib/testing/scenarios/edge-cases.d.ts +64 -0
- package/dist/lib/testing/scenarios/edge-cases.d.ts.map +1 -0
- package/dist/lib/testing/scenarios/edge-cases.js +569 -0
- package/dist/lib/testing/scenarios/edge-cases.js.map +1 -0
- package/dist/lib/testing/scenarios/error-compliance.d.ts +30 -0
- package/dist/lib/testing/scenarios/error-compliance.d.ts.map +1 -0
- package/dist/lib/testing/scenarios/error-compliance.js +372 -0
- package/dist/lib/testing/scenarios/error-compliance.js.map +1 -0
- package/dist/lib/testing/scenarios/governance.d.ts +114 -0
- package/dist/lib/testing/scenarios/governance.d.ts.map +1 -0
- package/dist/lib/testing/scenarios/governance.js +1619 -0
- package/dist/lib/testing/scenarios/governance.js.map +1 -0
- package/dist/lib/testing/scenarios/health.d.ts +12 -0
- package/dist/lib/testing/scenarios/health.d.ts.map +1 -0
- package/dist/lib/testing/scenarios/health.js +21 -0
- package/dist/lib/testing/scenarios/health.js.map +1 -0
- package/dist/lib/testing/scenarios/index.d.ts +20 -0
- package/dist/lib/testing/scenarios/index.d.ts.map +1 -0
- package/dist/lib/testing/scenarios/index.js +96 -0
- package/dist/lib/testing/scenarios/index.js.map +1 -0
- package/dist/lib/testing/scenarios/media-buy.d.ts +128 -0
- package/dist/lib/testing/scenarios/media-buy.d.ts.map +1 -0
- package/dist/lib/testing/scenarios/media-buy.js +1655 -0
- package/dist/lib/testing/scenarios/media-buy.js.map +1 -0
- package/dist/lib/testing/scenarios/schema-compliance.d.ts +17 -0
- package/dist/lib/testing/scenarios/schema-compliance.d.ts.map +1 -0
- package/dist/lib/testing/scenarios/schema-compliance.js +194 -0
- package/dist/lib/testing/scenarios/schema-compliance.js.map +1 -0
- package/dist/lib/testing/scenarios/signals.d.ts +22 -0
- package/dist/lib/testing/scenarios/signals.d.ts.map +1 -0
- package/dist/lib/testing/scenarios/signals.js +221 -0
- package/dist/lib/testing/scenarios/signals.js.map +1 -0
- package/dist/lib/testing/scenarios/sponsored-intelligence.d.ts +45 -0
- package/dist/lib/testing/scenarios/sponsored-intelligence.d.ts.map +1 -0
- package/dist/lib/testing/scenarios/sponsored-intelligence.js +554 -0
- package/dist/lib/testing/scenarios/sponsored-intelligence.js.map +1 -0
- package/dist/lib/testing/scenarios/trusted-match.d.ts +22 -0
- package/dist/lib/testing/scenarios/trusted-match.d.ts.map +1 -0
- package/dist/lib/testing/scenarios/trusted-match.js +128 -0
- package/dist/lib/testing/scenarios/trusted-match.js.map +1 -0
- package/dist/lib/testing/seed-merge.d.ts +150 -0
- package/dist/lib/testing/seed-merge.d.ts.map +1 -0
- package/dist/lib/testing/seed-merge.js +315 -0
- package/dist/lib/testing/seed-merge.js.map +1 -0
- package/dist/lib/testing/storyboard/assertions.d.ts +148 -0
- package/dist/lib/testing/storyboard/assertions.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/assertions.js +270 -0
- package/dist/lib/testing/storyboard/assertions.js.map +1 -0
- package/dist/lib/testing/storyboard/compliance.d.ts +166 -0
- package/dist/lib/testing/storyboard/compliance.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/compliance.js +434 -0
- package/dist/lib/testing/storyboard/compliance.js.map +1 -0
- package/dist/lib/testing/storyboard/context.d.ts +124 -0
- package/dist/lib/testing/storyboard/context.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/context.js +560 -0
- package/dist/lib/testing/storyboard/context.js.map +1 -0
- package/dist/lib/testing/storyboard/default-invariants.d.ts +36 -0
- package/dist/lib/testing/storyboard/default-invariants.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/default-invariants.js +882 -0
- package/dist/lib/testing/storyboard/default-invariants.js.map +1 -0
- package/dist/lib/testing/storyboard/index.d.ts +34 -0
- package/dist/lib/testing/storyboard/index.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/index.js +110 -0
- package/dist/lib/testing/storyboard/index.js.map +1 -0
- package/dist/lib/testing/storyboard/junit.d.ts +2 -0
- package/dist/lib/testing/storyboard/junit.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/junit.js +104 -0
- package/dist/lib/testing/storyboard/junit.js.map +1 -0
- package/dist/lib/testing/storyboard/loader.d.ts +28 -0
- package/dist/lib/testing/storyboard/loader.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/loader.js +194 -0
- package/dist/lib/testing/storyboard/loader.js.map +1 -0
- package/dist/lib/testing/storyboard/path.d.ts +76 -0
- package/dist/lib/testing/storyboard/path.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/path.js +258 -0
- package/dist/lib/testing/storyboard/path.js.map +1 -0
- package/dist/lib/testing/storyboard/probes.d.ts +148 -0
- package/dist/lib/testing/storyboard/probes.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/probes.js +402 -0
- package/dist/lib/testing/storyboard/probes.js.map +1 -0
- package/dist/lib/testing/storyboard/rejection-hints.d.ts +41 -0
- package/dist/lib/testing/storyboard/rejection-hints.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/rejection-hints.js +344 -0
- package/dist/lib/testing/storyboard/rejection-hints.js.map +1 -0
- package/dist/lib/testing/storyboard/request-builder.d.ts +35 -0
- package/dist/lib/testing/storyboard/request-builder.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/request-builder.js +845 -0
- package/dist/lib/testing/storyboard/request-builder.js.map +1 -0
- package/dist/lib/testing/storyboard/request-signing/builder.d.ts +60 -0
- package/dist/lib/testing/storyboard/request-signing/builder.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/request-signing/builder.js +462 -0
- package/dist/lib/testing/storyboard/request-signing/builder.js.map +1 -0
- package/dist/lib/testing/storyboard/request-signing/grader.d.ts +166 -0
- package/dist/lib/testing/storyboard/request-signing/grader.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/request-signing/grader.js +517 -0
- package/dist/lib/testing/storyboard/request-signing/grader.js.map +1 -0
- package/dist/lib/testing/storyboard/request-signing/index.d.ts +38 -0
- package/dist/lib/testing/storyboard/request-signing/index.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/request-signing/index.js +62 -0
- package/dist/lib/testing/storyboard/request-signing/index.js.map +1 -0
- package/dist/lib/testing/storyboard/request-signing/probe-dispatch.d.ts +10 -0
- package/dist/lib/testing/storyboard/request-signing/probe-dispatch.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/request-signing/probe-dispatch.js +81 -0
- package/dist/lib/testing/storyboard/request-signing/probe-dispatch.js.map +1 -0
- package/dist/lib/testing/storyboard/request-signing/probe.d.ts +41 -0
- package/dist/lib/testing/storyboard/request-signing/probe.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/request-signing/probe.js +220 -0
- package/dist/lib/testing/storyboard/request-signing/probe.js.map +1 -0
- package/dist/lib/testing/storyboard/request-signing/synthesize.d.ts +28 -0
- package/dist/lib/testing/storyboard/request-signing/synthesize.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/request-signing/synthesize.js +79 -0
- package/dist/lib/testing/storyboard/request-signing/synthesize.js.map +1 -0
- package/dist/lib/testing/storyboard/request-signing/test-kit.d.ts +42 -0
- package/dist/lib/testing/storyboard/request-signing/test-kit.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/request-signing/test-kit.js +101 -0
- package/dist/lib/testing/storyboard/request-signing/test-kit.js.map +1 -0
- package/dist/lib/testing/storyboard/request-signing/types.d.ts +72 -0
- package/dist/lib/testing/storyboard/request-signing/types.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/request-signing/types.js +6 -0
- package/dist/lib/testing/storyboard/request-signing/types.js.map +1 -0
- package/dist/lib/testing/storyboard/request-signing/vector-loader.d.ts +16 -0
- package/dist/lib/testing/storyboard/request-signing/vector-loader.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/request-signing/vector-loader.js +242 -0
- package/dist/lib/testing/storyboard/request-signing/vector-loader.js.map +1 -0
- package/dist/lib/testing/storyboard/runner.d.ts +141 -0
- package/dist/lib/testing/storyboard/runner.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/runner.js +2349 -0
- package/dist/lib/testing/storyboard/runner.js.map +1 -0
- package/dist/lib/testing/storyboard/sandbox-entities.d.ts +56 -0
- package/dist/lib/testing/storyboard/sandbox-entities.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/sandbox-entities.js +222 -0
- package/dist/lib/testing/storyboard/sandbox-entities.js.map +1 -0
- package/dist/lib/testing/storyboard/seeding.d.ts +72 -0
- package/dist/lib/testing/storyboard/seeding.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/seeding.js +282 -0
- package/dist/lib/testing/storyboard/seeding.js.map +1 -0
- package/dist/lib/testing/storyboard/shape-drift-hints.d.ts +54 -0
- package/dist/lib/testing/storyboard/shape-drift-hints.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/shape-drift-hints.js +200 -0
- package/dist/lib/testing/storyboard/shape-drift-hints.js.map +1 -0
- package/dist/lib/testing/storyboard/signer-grader/grader.d.ts +56 -0
- package/dist/lib/testing/storyboard/signer-grader/grader.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/signer-grader/grader.js +270 -0
- package/dist/lib/testing/storyboard/signer-grader/grader.js.map +1 -0
- package/dist/lib/testing/storyboard/signer-grader/index.d.ts +3 -0
- package/dist/lib/testing/storyboard/signer-grader/index.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/signer-grader/index.js +6 -0
- package/dist/lib/testing/storyboard/signer-grader/index.js.map +1 -0
- package/dist/lib/testing/storyboard/signer-grader/types.d.ts +62 -0
- package/dist/lib/testing/storyboard/signer-grader/types.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/signer-grader/types.js +3 -0
- package/dist/lib/testing/storyboard/signer-grader/types.js.map +1 -0
- package/dist/lib/testing/storyboard/strict-validation-hints.d.ts +28 -0
- package/dist/lib/testing/storyboard/strict-validation-hints.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/strict-validation-hints.js +128 -0
- package/dist/lib/testing/storyboard/strict-validation-hints.js.map +1 -0
- package/dist/lib/testing/storyboard/task-map.d.ts +25 -0
- package/dist/lib/testing/storyboard/task-map.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/task-map.js +130 -0
- package/dist/lib/testing/storyboard/task-map.js.map +1 -0
- package/dist/lib/testing/storyboard/test-kit.d.ts +52 -0
- package/dist/lib/testing/storyboard/test-kit.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/test-kit.js +93 -0
- package/dist/lib/testing/storyboard/test-kit.js.map +1 -0
- package/dist/lib/testing/storyboard/types.d.ts +1404 -0
- package/dist/lib/testing/storyboard/types.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/types.js +35 -0
- package/dist/lib/testing/storyboard/types.js.map +1 -0
- package/dist/lib/testing/storyboard/validations.d.ts +103 -0
- package/dist/lib/testing/storyboard/validations.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/validations.js +1729 -0
- package/dist/lib/testing/storyboard/validations.js.map +1 -0
- package/dist/lib/testing/storyboard/webhook-assertions.d.ts +62 -0
- package/dist/lib/testing/storyboard/webhook-assertions.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/webhook-assertions.js +538 -0
- package/dist/lib/testing/storyboard/webhook-assertions.js.map +1 -0
- package/dist/lib/testing/storyboard/webhook-receiver.d.ts +104 -0
- package/dist/lib/testing/storyboard/webhook-receiver.d.ts.map +1 -0
- package/dist/lib/testing/storyboard/webhook-receiver.js +402 -0
- package/dist/lib/testing/storyboard/webhook-receiver.js.map +1 -0
- package/dist/lib/testing/stubs/governance-agent-stub.d.ts +72 -0
- package/dist/lib/testing/stubs/governance-agent-stub.d.ts.map +1 -0
- package/dist/lib/testing/stubs/governance-agent-stub.js +297 -0
- package/dist/lib/testing/stubs/governance-agent-stub.js.map +1 -0
- package/dist/lib/testing/stubs/index.d.ts +3 -0
- package/dist/lib/testing/stubs/index.d.ts.map +1 -0
- package/dist/lib/testing/stubs/index.js +6 -0
- package/dist/lib/testing/stubs/index.js.map +1 -0
- package/dist/lib/testing/test-controller.d.ts +46 -0
- package/dist/lib/testing/test-controller.d.ts.map +1 -0
- package/dist/lib/testing/test-controller.js +143 -0
- package/dist/lib/testing/test-controller.js.map +1 -0
- package/dist/lib/testing/test-helpers.d.ts +213 -0
- package/dist/lib/testing/test-helpers.d.ts.map +1 -0
- package/dist/lib/testing/test-helpers.js +250 -0
- package/dist/lib/testing/test-helpers.js.map +1 -0
- package/dist/lib/testing/types.d.ts +222 -0
- package/dist/lib/testing/types.d.ts.map +1 -0
- package/dist/lib/testing/types.js +6 -0
- package/dist/lib/testing/types.js.map +1 -0
- package/dist/lib/types/adcp.d.ts +625 -0
- package/dist/lib/types/adcp.d.ts.map +1 -0
- package/dist/lib/types/adcp.js +20 -0
- package/dist/lib/types/adcp.js.map +1 -0
- package/dist/lib/types/asset-instances.d.ts +32 -0
- package/dist/lib/types/asset-instances.d.ts.map +1 -0
- package/dist/lib/types/asset-instances.js +24 -0
- package/dist/lib/types/asset-instances.js.map +1 -0
- package/dist/lib/types/compat.d.ts +105 -0
- package/dist/lib/types/compat.d.ts.map +1 -0
- package/dist/lib/types/compat.js +52 -0
- package/dist/lib/types/compat.js.map +1 -0
- package/dist/lib/types/core.generated.d.ts +15973 -0
- package/dist/lib/types/core.generated.d.ts.map +1 -0
- package/dist/lib/types/core.generated.js +5 -0
- package/dist/lib/types/core.generated.js.map +1 -0
- package/dist/lib/types/enums.generated.d.ts +139 -0
- package/dist/lib/types/enums.generated.d.ts.map +1 -0
- package/dist/lib/types/enums.generated.js +158 -0
- package/dist/lib/types/enums.generated.js.map +1 -0
- package/dist/lib/types/error-codes.d.ts +32 -0
- package/dist/lib/types/error-codes.d.ts.map +1 -0
- package/dist/lib/types/error-codes.js +146 -0
- package/dist/lib/types/error-codes.js.map +1 -0
- package/dist/lib/types/format-asset-slots.d.ts +117 -0
- package/dist/lib/types/format-asset-slots.d.ts.map +1 -0
- package/dist/lib/types/format-asset-slots.js +20 -0
- package/dist/lib/types/format-asset-slots.js.map +1 -0
- package/dist/lib/types/index.d.ts +20 -0
- package/dist/lib/types/index.d.ts.map +1 -0
- package/dist/lib/types/index.js +48 -0
- package/dist/lib/types/index.js.map +1 -0
- package/dist/lib/types/inline-enums.aliases.d.ts +53 -0
- package/dist/lib/types/inline-enums.aliases.d.ts.map +1 -0
- package/dist/lib/types/inline-enums.aliases.js +73 -0
- package/dist/lib/types/inline-enums.aliases.js.map +1 -0
- package/dist/lib/types/inline-enums.generated.d.ts +157 -0
- package/dist/lib/types/inline-enums.generated.d.ts.map +1 -0
- package/dist/lib/types/inline-enums.generated.js +239 -0
- package/dist/lib/types/inline-enums.generated.js.map +1 -0
- package/dist/lib/types/schemas.generated.d.ts +46531 -0
- package/dist/lib/types/schemas.generated.d.ts.map +1 -0
- package/dist/lib/types/schemas.generated.js +5867 -0
- package/dist/lib/types/schemas.generated.js.map +1 -0
- package/dist/lib/types/sync-rows.d.ts +37 -0
- package/dist/lib/types/sync-rows.d.ts.map +1 -0
- package/dist/lib/types/sync-rows.js +21 -0
- package/dist/lib/types/sync-rows.js.map +1 -0
- package/dist/lib/types/tools.generated.d.ts +13423 -0
- package/dist/lib/types/tools.generated.d.ts.map +1 -0
- package/dist/lib/types/tools.generated.js +5 -0
- package/dist/lib/types/tools.generated.js.map +1 -0
- package/dist/lib/types/wellknown-schemas.generated.d.ts +1363 -0
- package/dist/lib/types/wellknown-schemas.generated.d.ts.map +1 -0
- package/dist/lib/types/wellknown-schemas.generated.js +14 -0
- package/dist/lib/types/wellknown-schemas.generated.js.map +1 -0
- package/dist/lib/utils/a2a-discovery.d.ts +42 -0
- package/dist/lib/utils/a2a-discovery.d.ts.map +1 -0
- package/dist/lib/utils/a2a-discovery.js +68 -0
- package/dist/lib/utils/a2a-discovery.js.map +1 -0
- package/dist/lib/utils/adcp-version-config.d.ts +11 -0
- package/dist/lib/utils/adcp-version-config.d.ts.map +1 -0
- package/dist/lib/utils/adcp-version-config.js +44 -0
- package/dist/lib/utils/adcp-version-config.js.map +1 -0
- package/dist/lib/utils/asset-builders.d.ts +44 -0
- package/dist/lib/utils/asset-builders.d.ts.map +1 -0
- package/dist/lib/utils/asset-builders.js +84 -0
- package/dist/lib/utils/asset-builders.js.map +1 -0
- package/dist/lib/utils/capabilities.d.ts +259 -0
- package/dist/lib/utils/capabilities.d.ts.map +1 -0
- package/dist/lib/utils/capabilities.js +463 -0
- package/dist/lib/utils/capabilities.js.map +1 -0
- package/dist/lib/utils/creative-adapter.d.ts +91 -0
- package/dist/lib/utils/creative-adapter.d.ts.map +1 -0
- package/dist/lib/utils/creative-adapter.js +156 -0
- package/dist/lib/utils/creative-adapter.js.map +1 -0
- package/dist/lib/utils/deprecation.d.ts +11 -0
- package/dist/lib/utils/deprecation.d.ts.map +1 -0
- package/dist/lib/utils/deprecation.js +23 -0
- package/dist/lib/utils/deprecation.js.map +1 -0
- package/dist/lib/utils/error-extraction.d.ts +43 -0
- package/dist/lib/utils/error-extraction.d.ts.map +1 -0
- package/dist/lib/utils/error-extraction.js +225 -0
- package/dist/lib/utils/error-extraction.js.map +1 -0
- package/dist/lib/utils/extract-result.d.ts +45 -0
- package/dist/lib/utils/extract-result.d.ts.map +1 -0
- package/dist/lib/utils/extract-result.js +27 -0
- package/dist/lib/utils/extract-result.js.map +1 -0
- package/dist/lib/utils/format-asset-slot-builders.d.ts +76 -0
- package/dist/lib/utils/format-asset-slot-builders.d.ts.map +1 -0
- package/dist/lib/utils/format-asset-slot-builders.js +174 -0
- package/dist/lib/utils/format-asset-slot-builders.js.map +1 -0
- package/dist/lib/utils/format-assets.d.ts +100 -0
- package/dist/lib/utils/format-assets.d.ts.map +1 -0
- package/dist/lib/utils/format-assets.js +147 -0
- package/dist/lib/utils/format-assets.js.map +1 -0
- package/dist/lib/utils/format-render-builders.d.ts +76 -0
- package/dist/lib/utils/format-render-builders.d.ts.map +1 -0
- package/dist/lib/utils/format-render-builders.js +76 -0
- package/dist/lib/utils/format-render-builders.js.map +1 -0
- package/dist/lib/utils/format-renders.d.ts +96 -0
- package/dist/lib/utils/format-renders.d.ts.map +1 -0
- package/dist/lib/utils/format-renders.js +141 -0
- package/dist/lib/utils/format-renders.js.map +1 -0
- package/dist/lib/utils/idempotency.d.ts +96 -0
- package/dist/lib/utils/idempotency.d.ts.map +1 -0
- package/dist/lib/utils/idempotency.js +156 -0
- package/dist/lib/utils/idempotency.js.map +1 -0
- package/dist/lib/utils/index.d.ts +39 -0
- package/dist/lib/utils/index.d.ts.map +1 -0
- package/dist/lib/utils/index.js +196 -0
- package/dist/lib/utils/index.js.map +1 -0
- package/dist/lib/utils/jcs.d.ts +30 -0
- package/dist/lib/utils/jcs.d.ts.map +1 -0
- package/dist/lib/utils/jcs.js +167 -0
- package/dist/lib/utils/jcs.js.map +1 -0
- package/dist/lib/utils/logger.d.ts +55 -0
- package/dist/lib/utils/logger.d.ts.map +1 -0
- package/dist/lib/utils/logger.js +100 -0
- package/dist/lib/utils/logger.js.map +1 -0
- package/dist/lib/utils/pagination.d.ts +31 -0
- package/dist/lib/utils/pagination.d.ts.map +1 -0
- package/dist/lib/utils/pagination.js +51 -0
- package/dist/lib/utils/pagination.js.map +1 -0
- package/dist/lib/utils/preview-normalizer.d.ts +109 -0
- package/dist/lib/utils/preview-normalizer.d.ts.map +1 -0
- package/dist/lib/utils/preview-normalizer.js +122 -0
- package/dist/lib/utils/preview-normalizer.js.map +1 -0
- package/dist/lib/utils/preview-utils.d.ts +87 -0
- package/dist/lib/utils/preview-utils.d.ts.map +1 -0
- package/dist/lib/utils/preview-utils.js +340 -0
- package/dist/lib/utils/preview-utils.js.map +1 -0
- package/dist/lib/utils/pricing-adapter.d.ts +144 -0
- package/dist/lib/utils/pricing-adapter.d.ts.map +1 -0
- package/dist/lib/utils/pricing-adapter.js +322 -0
- package/dist/lib/utils/pricing-adapter.js.map +1 -0
- package/dist/lib/utils/protocol-detection.d.ts +26 -0
- package/dist/lib/utils/protocol-detection.d.ts.map +1 -0
- package/dist/lib/utils/protocol-detection.js +62 -0
- package/dist/lib/utils/protocol-detection.js.map +1 -0
- package/dist/lib/utils/render-builders.d.ts +41 -0
- package/dist/lib/utils/render-builders.d.ts.map +1 -0
- package/dist/lib/utils/render-builders.js +52 -0
- package/dist/lib/utils/render-builders.js.map +1 -0
- package/dist/lib/utils/request-normalizer.d.ts +26 -0
- package/dist/lib/utils/request-normalizer.d.ts.map +1 -0
- package/dist/lib/utils/request-normalizer.js +175 -0
- package/dist/lib/utils/request-normalizer.js.map +1 -0
- package/dist/lib/utils/response-schemas.d.ts +9 -0
- package/dist/lib/utils/response-schemas.d.ts.map +1 -0
- package/dist/lib/utils/response-schemas.js +129 -0
- package/dist/lib/utils/response-schemas.js.map +1 -0
- package/dist/lib/utils/response-unwrapper.d.ts +54 -0
- package/dist/lib/utils/response-unwrapper.d.ts.map +1 -0
- package/dist/lib/utils/response-unwrapper.js +406 -0
- package/dist/lib/utils/response-unwrapper.js.map +1 -0
- package/dist/lib/utils/retry.d.ts +15 -0
- package/dist/lib/utils/retry.d.ts.map +1 -0
- package/dist/lib/utils/retry.js +22 -0
- package/dist/lib/utils/retry.js.map +1 -0
- package/dist/lib/utils/sync-creatives-adapter.d.ts +18 -0
- package/dist/lib/utils/sync-creatives-adapter.d.ts.map +1 -0
- package/dist/lib/utils/sync-creatives-adapter.js +46 -0
- package/dist/lib/utils/sync-creatives-adapter.js.map +1 -0
- package/dist/lib/utils/tool-request-schemas.d.ts +15 -0
- package/dist/lib/utils/tool-request-schemas.d.ts.map +1 -0
- package/dist/lib/utils/tool-request-schemas.js +129 -0
- package/dist/lib/utils/tool-request-schemas.js.map +1 -0
- package/dist/lib/utils/typeGuards.d.ts +147 -0
- package/dist/lib/utils/typeGuards.d.ts.map +1 -0
- package/dist/lib/utils/typeGuards.js +240 -0
- package/dist/lib/utils/typeGuards.js.map +1 -0
- package/dist/lib/utils/union-errors.d.ts +20 -0
- package/dist/lib/utils/union-errors.d.ts.map +1 -0
- package/dist/lib/utils/union-errors.js +38 -0
- package/dist/lib/utils/union-errors.js.map +1 -0
- package/dist/lib/utils/validate-user-agent.d.ts +8 -0
- package/dist/lib/utils/validate-user-agent.d.ts.map +1 -0
- package/dist/lib/utils/validate-user-agent.js +15 -0
- package/dist/lib/utils/validate-user-agent.js.map +1 -0
- package/dist/lib/validation/client-hooks.d.ts +49 -0
- package/dist/lib/validation/client-hooks.d.ts.map +1 -0
- package/dist/lib/validation/client-hooks.js +82 -0
- package/dist/lib/validation/client-hooks.js.map +1 -0
- package/dist/lib/validation/index.d.ts +37 -0
- package/dist/lib/validation/index.d.ts.map +1 -0
- package/dist/lib/validation/index.js +202 -0
- package/dist/lib/validation/index.js.map +1 -0
- package/dist/lib/validation/schema-errors.d.ts +67 -0
- package/dist/lib/validation/schema-errors.d.ts.map +1 -0
- package/dist/lib/validation/schema-errors.js +75 -0
- package/dist/lib/validation/schema-errors.js.map +1 -0
- package/dist/lib/validation/schema-loader.d.ts +24 -0
- package/dist/lib/validation/schema-loader.d.ts.map +1 -0
- package/dist/lib/validation/schema-loader.js +315 -0
- package/dist/lib/validation/schema-loader.js.map +1 -0
- package/dist/lib/validation/schema-validator.d.ts +83 -0
- package/dist/lib/validation/schema-validator.d.ts.map +1 -0
- package/dist/lib/validation/schema-validator.js +142 -0
- package/dist/lib/validation/schema-validator.js.map +1 -0
- package/dist/lib/validation/sync-creatives.d.ts +327 -0
- package/dist/lib/validation/sync-creatives.d.ts.map +1 -0
- package/dist/lib/validation/sync-creatives.js +72 -0
- package/dist/lib/validation/sync-creatives.js.map +1 -0
- package/dist/lib/version.d.ts +63 -0
- package/dist/lib/version.d.ts.map +1 -0
- package/dist/lib/version.js +85 -0
- package/dist/lib/version.js.map +1 -0
- package/docs/README.md +42 -0
- package/docs/guides/BUILD-AN-AGENT.md +632 -0
- package/docs/llms.txt +1197 -0
- package/examples/README.md +117 -0
- package/examples/adcp.config.json +30 -0
- package/examples/basic-a2a.ts +76 -0
- package/examples/basic-mcp.ts +50 -0
- package/examples/batch-preview-test.ts +266 -0
- package/examples/comply-controller-seller.ts +146 -0
- package/examples/conversation-client.ts +291 -0
- package/examples/debug-preview-response.ts +73 -0
- package/examples/debug-preview-with-logging.ts +50 -0
- package/examples/easy-config-demo.ts +242 -0
- package/examples/env-config.ts +51 -0
- package/examples/error-compliant-server.ts +241 -0
- package/examples/gcp-kms-signing-provider.ts +281 -0
- package/examples/generative-creative-demo.ts +196 -0
- package/examples/inspect-card-formats.ts +161 -0
- package/examples/logger-usage.ts +165 -0
- package/examples/oauth-cli-example.ts +154 -0
- package/examples/pr78-async-patterns-demo.ts +247 -0
- package/examples/seller-test-controller.ts +320 -0
- package/examples/signals-agent.ts +201 -0
- package/examples/simple-getting-started.ts +225 -0
- package/examples/simple-protocol-demo.ts +75 -0
- package/examples/test-helpers-demo.ts +239 -0
- package/examples/zod-validation-example.ts +126 -0
- package/package.json +313 -0
- package/skills/adcp/SKILL.md +326 -0
- package/skills/adcp-brand/SKILL.md +202 -0
- package/skills/adcp-brand.previous/SKILL.md +202 -0
- package/skills/adcp-creative/SKILL.md +301 -0
- package/skills/adcp-creative.previous/SKILL.md +301 -0
- package/skills/adcp-governance/SKILL.md +566 -0
- package/skills/adcp-governance.previous/SKILL.md +566 -0
- package/skills/adcp-media-buy/SKILL.md +446 -0
- package/skills/adcp-media-buy.previous/SKILL.md +446 -0
- package/skills/adcp-si/SKILL.md +206 -0
- package/skills/adcp-si.previous/SKILL.md +206 -0
- package/skills/adcp-signals/SKILL.md +204 -0
- package/skills/adcp-signals.previous/SKILL.md +204 -0
- package/skills/build-brand-rights-agent/SKILL.md +528 -0
- package/skills/build-creative-agent/SKILL.md +824 -0
- package/skills/build-generative-seller-agent/SKILL.md +579 -0
- package/skills/build-governance-agent/SKILL.md +966 -0
- package/skills/build-retail-media-agent/SKILL.md +488 -0
- package/skills/build-seller-agent/SKILL.md +1407 -0
- package/skills/build-seller-agent/deployment.md +407 -0
- package/skills/build-seller-agent/specialisms/audience-sync.md +63 -0
- package/skills/build-seller-agent/specialisms/sales-broadcast-tv.md +71 -0
- package/skills/build-seller-agent/specialisms/sales-guaranteed.md +67 -0
- package/skills/build-seller-agent/specialisms/sales-non-guaranteed.md +39 -0
- package/skills/build-seller-agent/specialisms/sales-proposal-mode.md +51 -0
- package/skills/build-seller-agent/specialisms/sales-social.md +30 -0
- package/skills/build-seller-agent/specialisms/signed-requests.md +89 -0
- package/skills/build-si-agent/SKILL.md +347 -0
- package/skills/build-signals-agent/SKILL.md +527 -0
- package/skills/call-adcp-agent/SKILL.md +255 -0
- package/skills/call-adcp-agent.previous/SKILL.md +255 -0
|
@@ -0,0 +1,4256 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "/schemas/3.0.1/bundled/media-buy/get-media-buy-delivery-response.json",
|
|
4
|
+
"title": "Get Media Buy Delivery Response",
|
|
5
|
+
"description": "Response payload for get_media_buy_delivery task",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"notification_type": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"enum": [
|
|
11
|
+
"scheduled",
|
|
12
|
+
"final",
|
|
13
|
+
"delayed",
|
|
14
|
+
"adjusted",
|
|
15
|
+
"window_update"
|
|
16
|
+
],
|
|
17
|
+
"description": "Type of webhook notification (only present in webhook deliveries): scheduled = regular periodic update, final = campaign completed, delayed = data not yet available, adjusted = resending period with corrected data (same window), window_update = resending period with a wider measurement window (e.g., C3 superseding live, C7 superseding C3)"
|
|
18
|
+
},
|
|
19
|
+
"partial_data": {
|
|
20
|
+
"type": "boolean",
|
|
21
|
+
"description": "Indicates if any media buys in this webhook have missing/delayed data (only present in webhook deliveries)"
|
|
22
|
+
},
|
|
23
|
+
"unavailable_count": {
|
|
24
|
+
"type": "integer",
|
|
25
|
+
"minimum": 0,
|
|
26
|
+
"description": "Number of media buys with reporting_delayed or failed status (only present in webhook deliveries when partial_data is true)"
|
|
27
|
+
},
|
|
28
|
+
"sequence_number": {
|
|
29
|
+
"type": "integer",
|
|
30
|
+
"minimum": 1,
|
|
31
|
+
"description": "Sequential notification number (only present in webhook deliveries, starts at 1)"
|
|
32
|
+
},
|
|
33
|
+
"next_expected_at": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"format": "date-time",
|
|
36
|
+
"description": "ISO 8601 timestamp for next expected notification (only present in webhook deliveries when notification_type is not 'final')"
|
|
37
|
+
},
|
|
38
|
+
"reporting_period": {
|
|
39
|
+
"type": "object",
|
|
40
|
+
"description": "Date range for the report. All periods use UTC timezone.",
|
|
41
|
+
"properties": {
|
|
42
|
+
"start": {
|
|
43
|
+
"type": "string",
|
|
44
|
+
"format": "date-time",
|
|
45
|
+
"description": "ISO 8601 start timestamp in UTC (e.g., 2024-02-05T00:00:00Z)"
|
|
46
|
+
},
|
|
47
|
+
"end": {
|
|
48
|
+
"type": "string",
|
|
49
|
+
"format": "date-time",
|
|
50
|
+
"description": "ISO 8601 end timestamp in UTC (e.g., 2024-02-05T23:59:59Z)"
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"required": [
|
|
54
|
+
"start",
|
|
55
|
+
"end"
|
|
56
|
+
],
|
|
57
|
+
"additionalProperties": true
|
|
58
|
+
},
|
|
59
|
+
"currency": {
|
|
60
|
+
"type": "string",
|
|
61
|
+
"description": "ISO 4217 currency code",
|
|
62
|
+
"pattern": "^[A-Z]{3}$"
|
|
63
|
+
},
|
|
64
|
+
"attribution_window": {
|
|
65
|
+
"title": "Attribution Window",
|
|
66
|
+
"description": "Attribution methodology and lookback windows used for conversion metrics in this response. All media buys from a single seller share the same attribution methodology. Enables cross-platform comparison (e.g., Amazon 14-day click vs. Criteo 30-day click).",
|
|
67
|
+
"type": "object",
|
|
68
|
+
"properties": {
|
|
69
|
+
"post_click": {
|
|
70
|
+
"allOf": [
|
|
71
|
+
{
|
|
72
|
+
"title": "Duration",
|
|
73
|
+
"description": "A time duration expressed as an interval and unit. Used for frequency cap windows, attribution windows, reach optimization windows, time budgets, and other time-based settings. When unit is 'campaign', interval must be 1 — the window spans the full campaign flight.",
|
|
74
|
+
"type": "object",
|
|
75
|
+
"properties": {
|
|
76
|
+
"interval": {
|
|
77
|
+
"type": "integer",
|
|
78
|
+
"minimum": 1,
|
|
79
|
+
"description": "Number of time units. Must be 1 when unit is 'campaign'."
|
|
80
|
+
},
|
|
81
|
+
"unit": {
|
|
82
|
+
"type": "string",
|
|
83
|
+
"enum": [
|
|
84
|
+
"seconds",
|
|
85
|
+
"minutes",
|
|
86
|
+
"hours",
|
|
87
|
+
"days",
|
|
88
|
+
"campaign"
|
|
89
|
+
],
|
|
90
|
+
"description": "Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight."
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
"required": [
|
|
94
|
+
"interval",
|
|
95
|
+
"unit"
|
|
96
|
+
],
|
|
97
|
+
"additionalProperties": false
|
|
98
|
+
}
|
|
99
|
+
],
|
|
100
|
+
"description": "Post-click attribution window. Conversions occurring within this duration after a click are attributed to the ad."
|
|
101
|
+
},
|
|
102
|
+
"post_view": {
|
|
103
|
+
"allOf": [
|
|
104
|
+
{
|
|
105
|
+
"title": "Duration",
|
|
106
|
+
"description": "A time duration expressed as an interval and unit. Used for frequency cap windows, attribution windows, reach optimization windows, time budgets, and other time-based settings. When unit is 'campaign', interval must be 1 — the window spans the full campaign flight.",
|
|
107
|
+
"type": "object",
|
|
108
|
+
"properties": {
|
|
109
|
+
"interval": {
|
|
110
|
+
"type": "integer",
|
|
111
|
+
"minimum": 1,
|
|
112
|
+
"description": "Number of time units. Must be 1 when unit is 'campaign'."
|
|
113
|
+
},
|
|
114
|
+
"unit": {
|
|
115
|
+
"type": "string",
|
|
116
|
+
"enum": [
|
|
117
|
+
"seconds",
|
|
118
|
+
"minutes",
|
|
119
|
+
"hours",
|
|
120
|
+
"days",
|
|
121
|
+
"campaign"
|
|
122
|
+
],
|
|
123
|
+
"description": "Time unit. 'seconds' for sub-minute precision. 'campaign' spans the full campaign flight."
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
"required": [
|
|
127
|
+
"interval",
|
|
128
|
+
"unit"
|
|
129
|
+
],
|
|
130
|
+
"additionalProperties": false
|
|
131
|
+
}
|
|
132
|
+
],
|
|
133
|
+
"description": "Post-view attribution window. Conversions occurring within this duration after an ad impression (without click) are attributed to the ad."
|
|
134
|
+
},
|
|
135
|
+
"model": {
|
|
136
|
+
"title": "Attribution Model",
|
|
137
|
+
"description": "Attribution model used to assign credit when multiple touchpoints exist",
|
|
138
|
+
"type": "string",
|
|
139
|
+
"enum": [
|
|
140
|
+
"last_touch",
|
|
141
|
+
"first_touch",
|
|
142
|
+
"linear",
|
|
143
|
+
"time_decay",
|
|
144
|
+
"data_driven"
|
|
145
|
+
]
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
"required": [
|
|
149
|
+
"model"
|
|
150
|
+
],
|
|
151
|
+
"additionalProperties": true
|
|
152
|
+
},
|
|
153
|
+
"aggregated_totals": {
|
|
154
|
+
"type": "object",
|
|
155
|
+
"description": "Combined metrics across all returned media buys. Only included in API responses (get_media_buy_delivery), not in webhook notifications.",
|
|
156
|
+
"properties": {
|
|
157
|
+
"impressions": {
|
|
158
|
+
"type": "number",
|
|
159
|
+
"description": "Total impressions delivered across all media buys",
|
|
160
|
+
"minimum": 0
|
|
161
|
+
},
|
|
162
|
+
"spend": {
|
|
163
|
+
"type": "number",
|
|
164
|
+
"description": "Total amount spent across all media buys",
|
|
165
|
+
"minimum": 0
|
|
166
|
+
},
|
|
167
|
+
"clicks": {
|
|
168
|
+
"type": "number",
|
|
169
|
+
"description": "Total clicks across all media buys (if applicable)",
|
|
170
|
+
"minimum": 0
|
|
171
|
+
},
|
|
172
|
+
"completed_views": {
|
|
173
|
+
"type": "number",
|
|
174
|
+
"description": "Total audio/video completions across all media buys (if applicable)",
|
|
175
|
+
"minimum": 0
|
|
176
|
+
},
|
|
177
|
+
"views": {
|
|
178
|
+
"type": "number",
|
|
179
|
+
"description": "Total views across all media buys (if applicable)",
|
|
180
|
+
"minimum": 0
|
|
181
|
+
},
|
|
182
|
+
"conversions": {
|
|
183
|
+
"type": "number",
|
|
184
|
+
"description": "Total conversions across all media buys (if applicable)",
|
|
185
|
+
"minimum": 0
|
|
186
|
+
},
|
|
187
|
+
"conversion_value": {
|
|
188
|
+
"type": "number",
|
|
189
|
+
"description": "Total conversion value across all media buys (if applicable)",
|
|
190
|
+
"minimum": 0
|
|
191
|
+
},
|
|
192
|
+
"roas": {
|
|
193
|
+
"type": "number",
|
|
194
|
+
"description": "Aggregate return on ad spend across all media buys (total conversion_value / total spend)",
|
|
195
|
+
"minimum": 0
|
|
196
|
+
},
|
|
197
|
+
"new_to_brand_rate": {
|
|
198
|
+
"type": "number",
|
|
199
|
+
"description": "Fraction of total conversions across all media buys from first-time brand buyers (weighted by conversion volume, not a simple average of per-buy rates)",
|
|
200
|
+
"minimum": 0,
|
|
201
|
+
"maximum": 1
|
|
202
|
+
},
|
|
203
|
+
"cost_per_acquisition": {
|
|
204
|
+
"type": "number",
|
|
205
|
+
"description": "Aggregate cost per conversion across all media buys (total spend / total conversions)",
|
|
206
|
+
"minimum": 0
|
|
207
|
+
},
|
|
208
|
+
"completion_rate": {
|
|
209
|
+
"type": "number",
|
|
210
|
+
"description": "Aggregate completion rate across all media buys (weighted by impressions, not a simple average of per-buy rates)",
|
|
211
|
+
"minimum": 0,
|
|
212
|
+
"maximum": 1
|
|
213
|
+
},
|
|
214
|
+
"reach": {
|
|
215
|
+
"type": "number",
|
|
216
|
+
"description": "Deduplicated reach across all media buys (if the seller can deduplicate across buys; otherwise sum of per-buy reach). Only present when all media buys share the same reach_unit. Omitted when reach units are heterogeneous — use per-buy reach values instead.",
|
|
217
|
+
"minimum": 0
|
|
218
|
+
},
|
|
219
|
+
"reach_unit": {
|
|
220
|
+
"allOf": [
|
|
221
|
+
{
|
|
222
|
+
"$ref": "#/$defs/ReachUnit"
|
|
223
|
+
}
|
|
224
|
+
],
|
|
225
|
+
"description": "Unit of measurement for reach. Only present when all aggregated media buys use the same reach_unit."
|
|
226
|
+
},
|
|
227
|
+
"frequency": {
|
|
228
|
+
"type": "number",
|
|
229
|
+
"description": "Average frequency per reach unit across all media buys (impressions / reach when cross-buy deduplication is available). Only present when reach is present.",
|
|
230
|
+
"minimum": 0
|
|
231
|
+
},
|
|
232
|
+
"media_buy_count": {
|
|
233
|
+
"type": "integer",
|
|
234
|
+
"description": "Number of media buys included in the response",
|
|
235
|
+
"minimum": 0
|
|
236
|
+
}
|
|
237
|
+
},
|
|
238
|
+
"required": [
|
|
239
|
+
"impressions",
|
|
240
|
+
"spend",
|
|
241
|
+
"media_buy_count"
|
|
242
|
+
],
|
|
243
|
+
"additionalProperties": true
|
|
244
|
+
},
|
|
245
|
+
"media_buy_deliveries": {
|
|
246
|
+
"type": "array",
|
|
247
|
+
"description": "Array of delivery data for media buys. When used in webhook notifications, may contain multiple media buys aggregated by publisher. When used in get_media_buy_delivery API responses, typically contains requested media buys.",
|
|
248
|
+
"items": {
|
|
249
|
+
"type": "object",
|
|
250
|
+
"properties": {
|
|
251
|
+
"media_buy_id": {
|
|
252
|
+
"type": "string",
|
|
253
|
+
"description": "Seller's media buy identifier",
|
|
254
|
+
"x-entity": "media_buy"
|
|
255
|
+
},
|
|
256
|
+
"status": {
|
|
257
|
+
"type": "string",
|
|
258
|
+
"description": "Current media buy status. Lifecycle states use the same taxonomy as media-buy-status (`pending_creatives`, `pending_start`, `active`, `paused`, `completed`, `rejected`, `canceled`). In webhook context, reporting_delayed indicates data temporarily unavailable. `pending` is accepted as a legacy alias for pending_start.",
|
|
259
|
+
"enum": [
|
|
260
|
+
"pending_creatives",
|
|
261
|
+
"pending_start",
|
|
262
|
+
"pending",
|
|
263
|
+
"active",
|
|
264
|
+
"paused",
|
|
265
|
+
"completed",
|
|
266
|
+
"rejected",
|
|
267
|
+
"canceled",
|
|
268
|
+
"failed",
|
|
269
|
+
"reporting_delayed"
|
|
270
|
+
]
|
|
271
|
+
},
|
|
272
|
+
"expected_availability": {
|
|
273
|
+
"type": "string",
|
|
274
|
+
"format": "date-time",
|
|
275
|
+
"description": "When delayed data is expected to be available (only present when status is reporting_delayed)"
|
|
276
|
+
},
|
|
277
|
+
"is_adjusted": {
|
|
278
|
+
"type": "boolean",
|
|
279
|
+
"description": "Indicates this delivery contains updated data for a previously reported period. Buyer should replace previous period data with these totals."
|
|
280
|
+
},
|
|
281
|
+
"pricing_model": {
|
|
282
|
+
"$ref": "#/$defs/PricingModel"
|
|
283
|
+
},
|
|
284
|
+
"totals": {
|
|
285
|
+
"allOf": [
|
|
286
|
+
{
|
|
287
|
+
"title": "Delivery Metrics",
|
|
288
|
+
"description": "Standard delivery metrics that can be reported at media buy, package, or creative level",
|
|
289
|
+
"type": "object",
|
|
290
|
+
"properties": {
|
|
291
|
+
"impressions": {
|
|
292
|
+
"type": "number",
|
|
293
|
+
"description": "Impressions delivered",
|
|
294
|
+
"minimum": 0
|
|
295
|
+
},
|
|
296
|
+
"spend": {
|
|
297
|
+
"type": "number",
|
|
298
|
+
"description": "Amount spent",
|
|
299
|
+
"minimum": 0
|
|
300
|
+
},
|
|
301
|
+
"clicks": {
|
|
302
|
+
"type": "number",
|
|
303
|
+
"description": "Total clicks",
|
|
304
|
+
"minimum": 0
|
|
305
|
+
},
|
|
306
|
+
"ctr": {
|
|
307
|
+
"type": "number",
|
|
308
|
+
"description": "Click-through rate (clicks/impressions)",
|
|
309
|
+
"minimum": 0,
|
|
310
|
+
"maximum": 1
|
|
311
|
+
},
|
|
312
|
+
"views": {
|
|
313
|
+
"type": "number",
|
|
314
|
+
"description": "Content engagements counted toward the billable view threshold. For video this is a platform-defined view event (e.g., 30 seconds or video midpoint); for audio/podcast it is a stream start; for other formats it follows the pricing model's view definition. When the package uses CPV pricing, spend = views × rate.",
|
|
315
|
+
"minimum": 0
|
|
316
|
+
},
|
|
317
|
+
"completed_views": {
|
|
318
|
+
"type": "number",
|
|
319
|
+
"description": "Video/audio completions. When the package has a completed_views optimization goal with view_duration_seconds, completions are counted at that threshold rather than 100% completion.",
|
|
320
|
+
"minimum": 0
|
|
321
|
+
},
|
|
322
|
+
"completion_rate": {
|
|
323
|
+
"type": "number",
|
|
324
|
+
"description": "Completion rate (completed_views/impressions)",
|
|
325
|
+
"minimum": 0,
|
|
326
|
+
"maximum": 1
|
|
327
|
+
},
|
|
328
|
+
"conversions": {
|
|
329
|
+
"type": "number",
|
|
330
|
+
"description": "Total conversions attributed to this delivery. When by_event_type is present, this equals the sum of all by_event_type[].count entries.",
|
|
331
|
+
"minimum": 0
|
|
332
|
+
},
|
|
333
|
+
"conversion_value": {
|
|
334
|
+
"type": "number",
|
|
335
|
+
"description": "Total monetary value of attributed conversions (in the reporting currency)",
|
|
336
|
+
"minimum": 0
|
|
337
|
+
},
|
|
338
|
+
"roas": {
|
|
339
|
+
"type": "number",
|
|
340
|
+
"description": "Return on ad spend (conversion_value / spend)",
|
|
341
|
+
"minimum": 0
|
|
342
|
+
},
|
|
343
|
+
"cost_per_acquisition": {
|
|
344
|
+
"type": "number",
|
|
345
|
+
"description": "Cost per conversion (spend / conversions)",
|
|
346
|
+
"minimum": 0
|
|
347
|
+
},
|
|
348
|
+
"new_to_brand_rate": {
|
|
349
|
+
"type": "number",
|
|
350
|
+
"description": "Fraction of conversions from first-time brand buyers (0 = none, 1 = all)",
|
|
351
|
+
"minimum": 0,
|
|
352
|
+
"maximum": 1
|
|
353
|
+
},
|
|
354
|
+
"leads": {
|
|
355
|
+
"type": "number",
|
|
356
|
+
"description": "Leads generated (convenience alias for by_event_type where event_type='lead')",
|
|
357
|
+
"minimum": 0
|
|
358
|
+
},
|
|
359
|
+
"by_event_type": {
|
|
360
|
+
"type": "array",
|
|
361
|
+
"description": "Conversion metrics broken down by event type. Spend-derived metrics (ROAS, CPA) are only available at the package/totals level since spend cannot be attributed to individual event types.",
|
|
362
|
+
"items": {
|
|
363
|
+
"type": "object",
|
|
364
|
+
"properties": {
|
|
365
|
+
"event_type": {
|
|
366
|
+
"$ref": "#/$defs/EventType"
|
|
367
|
+
},
|
|
368
|
+
"event_source_id": {
|
|
369
|
+
"type": "string",
|
|
370
|
+
"description": "Event source that produced these conversions (for disambiguation when multiple event sources are configured)"
|
|
371
|
+
},
|
|
372
|
+
"count": {
|
|
373
|
+
"type": "number",
|
|
374
|
+
"description": "Number of events of this type",
|
|
375
|
+
"minimum": 0
|
|
376
|
+
},
|
|
377
|
+
"value": {
|
|
378
|
+
"type": "number",
|
|
379
|
+
"description": "Total monetary value of events of this type",
|
|
380
|
+
"minimum": 0
|
|
381
|
+
}
|
|
382
|
+
},
|
|
383
|
+
"required": [
|
|
384
|
+
"event_type",
|
|
385
|
+
"count"
|
|
386
|
+
],
|
|
387
|
+
"additionalProperties": true
|
|
388
|
+
}
|
|
389
|
+
},
|
|
390
|
+
"grps": {
|
|
391
|
+
"type": "number",
|
|
392
|
+
"description": "Gross Rating Points delivered (for CPP)",
|
|
393
|
+
"minimum": 0
|
|
394
|
+
},
|
|
395
|
+
"reach": {
|
|
396
|
+
"type": "number",
|
|
397
|
+
"description": "Unique reach in the units specified by reach_unit. When reach_unit is omitted, units are unspecified — do not compare reach values across packages or media buys without a common reach_unit.",
|
|
398
|
+
"minimum": 0
|
|
399
|
+
},
|
|
400
|
+
"reach_unit": {
|
|
401
|
+
"allOf": [
|
|
402
|
+
{
|
|
403
|
+
"$ref": "#/$defs/ReachUnit"
|
|
404
|
+
}
|
|
405
|
+
],
|
|
406
|
+
"description": "Unit of measurement for the reach field. Aligns with the reach_unit declared on optimization goals and delivery forecasts. Required when reach is present to enable cross-platform comparison."
|
|
407
|
+
},
|
|
408
|
+
"frequency": {
|
|
409
|
+
"type": "number",
|
|
410
|
+
"description": "Average frequency per reach unit (typically measured over campaign duration, but can vary by measurement provider). When reach_unit is 'households', this is average exposures per household; when 'accounts', per logged-in account; etc.",
|
|
411
|
+
"minimum": 0
|
|
412
|
+
},
|
|
413
|
+
"quartile_data": {
|
|
414
|
+
"type": "object",
|
|
415
|
+
"description": "Audio/video quartile completion data",
|
|
416
|
+
"properties": {
|
|
417
|
+
"q1_views": {
|
|
418
|
+
"type": "number",
|
|
419
|
+
"description": "25% completion views",
|
|
420
|
+
"minimum": 0
|
|
421
|
+
},
|
|
422
|
+
"q2_views": {
|
|
423
|
+
"type": "number",
|
|
424
|
+
"description": "50% completion views",
|
|
425
|
+
"minimum": 0
|
|
426
|
+
},
|
|
427
|
+
"q3_views": {
|
|
428
|
+
"type": "number",
|
|
429
|
+
"description": "75% completion views",
|
|
430
|
+
"minimum": 0
|
|
431
|
+
},
|
|
432
|
+
"q4_views": {
|
|
433
|
+
"type": "number",
|
|
434
|
+
"description": "100% completion views",
|
|
435
|
+
"minimum": 0
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
},
|
|
439
|
+
"dooh_metrics": {
|
|
440
|
+
"type": "object",
|
|
441
|
+
"description": "DOOH-specific metrics (only included for DOOH campaigns)",
|
|
442
|
+
"properties": {
|
|
443
|
+
"loop_plays": {
|
|
444
|
+
"type": "integer",
|
|
445
|
+
"description": "Number of times ad played in rotation",
|
|
446
|
+
"minimum": 0
|
|
447
|
+
},
|
|
448
|
+
"screens_used": {
|
|
449
|
+
"type": "integer",
|
|
450
|
+
"description": "Number of unique screens displaying the ad",
|
|
451
|
+
"minimum": 0
|
|
452
|
+
},
|
|
453
|
+
"screen_time_seconds": {
|
|
454
|
+
"type": "integer",
|
|
455
|
+
"description": "Total display time in seconds",
|
|
456
|
+
"minimum": 0
|
|
457
|
+
},
|
|
458
|
+
"sov_achieved": {
|
|
459
|
+
"type": "number",
|
|
460
|
+
"description": "Actual share of voice delivered (0.0 to 1.0)",
|
|
461
|
+
"minimum": 0,
|
|
462
|
+
"maximum": 1
|
|
463
|
+
},
|
|
464
|
+
"calculation_notes": {
|
|
465
|
+
"type": "string",
|
|
466
|
+
"description": "Explanation of how DOOH impressions were calculated"
|
|
467
|
+
},
|
|
468
|
+
"venue_breakdown": {
|
|
469
|
+
"type": "array",
|
|
470
|
+
"description": "Per-venue performance breakdown",
|
|
471
|
+
"items": {
|
|
472
|
+
"type": "object",
|
|
473
|
+
"properties": {
|
|
474
|
+
"venue_id": {
|
|
475
|
+
"type": "string",
|
|
476
|
+
"description": "Venue identifier"
|
|
477
|
+
},
|
|
478
|
+
"venue_name": {
|
|
479
|
+
"type": "string",
|
|
480
|
+
"description": "Human-readable venue name"
|
|
481
|
+
},
|
|
482
|
+
"venue_type": {
|
|
483
|
+
"type": "string",
|
|
484
|
+
"description": "Venue type (e.g., 'airport', 'transit', 'retail', 'billboard')"
|
|
485
|
+
},
|
|
486
|
+
"impressions": {
|
|
487
|
+
"type": "integer",
|
|
488
|
+
"description": "Impressions delivered at this venue",
|
|
489
|
+
"minimum": 0
|
|
490
|
+
},
|
|
491
|
+
"loop_plays": {
|
|
492
|
+
"type": "integer",
|
|
493
|
+
"description": "Loop plays at this venue",
|
|
494
|
+
"minimum": 0
|
|
495
|
+
},
|
|
496
|
+
"screens_used": {
|
|
497
|
+
"type": "integer",
|
|
498
|
+
"description": "Number of screens used at this venue",
|
|
499
|
+
"minimum": 0
|
|
500
|
+
}
|
|
501
|
+
},
|
|
502
|
+
"required": [
|
|
503
|
+
"venue_id",
|
|
504
|
+
"impressions"
|
|
505
|
+
],
|
|
506
|
+
"additionalProperties": true
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
},
|
|
510
|
+
"additionalProperties": true
|
|
511
|
+
},
|
|
512
|
+
"viewability": {
|
|
513
|
+
"type": "object",
|
|
514
|
+
"description": "Viewability metrics. Viewable rate should be calculated as viewable_impressions / measurable_impressions (not total impressions), since some environments cannot measure viewability.",
|
|
515
|
+
"properties": {
|
|
516
|
+
"measurable_impressions": {
|
|
517
|
+
"type": "number",
|
|
518
|
+
"description": "Impressions where viewability could be measured. Excludes environments without measurement capability (e.g., non-Intersection Observer browsers, certain app environments).",
|
|
519
|
+
"minimum": 0
|
|
520
|
+
},
|
|
521
|
+
"viewable_impressions": {
|
|
522
|
+
"type": "number",
|
|
523
|
+
"description": "Impressions that met the viewability threshold defined by the measurement standard.",
|
|
524
|
+
"minimum": 0
|
|
525
|
+
},
|
|
526
|
+
"viewable_rate": {
|
|
527
|
+
"type": "number",
|
|
528
|
+
"description": "Viewable impression rate (viewable_impressions / measurable_impressions). Range 0.0 to 1.0.",
|
|
529
|
+
"minimum": 0,
|
|
530
|
+
"maximum": 1
|
|
531
|
+
},
|
|
532
|
+
"standard": {
|
|
533
|
+
"$ref": "#/$defs/ViewabilityStandard"
|
|
534
|
+
}
|
|
535
|
+
},
|
|
536
|
+
"additionalProperties": true
|
|
537
|
+
},
|
|
538
|
+
"engagements": {
|
|
539
|
+
"type": "number",
|
|
540
|
+
"description": "Total engagements — direct interactions with the ad beyond viewing. Includes social reactions/comments/shares, story/unit opens, interactive overlay taps on CTV, companion banner interactions on audio. Platform-specific; corresponds to the 'engagements' optimization metric.",
|
|
541
|
+
"minimum": 0
|
|
542
|
+
},
|
|
543
|
+
"follows": {
|
|
544
|
+
"type": "number",
|
|
545
|
+
"description": "New followers, page likes, artist/podcast/channel subscribes attributed to this delivery.",
|
|
546
|
+
"minimum": 0
|
|
547
|
+
},
|
|
548
|
+
"saves": {
|
|
549
|
+
"type": "number",
|
|
550
|
+
"description": "Saves, bookmarks, playlist adds, pins attributed to this delivery.",
|
|
551
|
+
"minimum": 0
|
|
552
|
+
},
|
|
553
|
+
"profile_visits": {
|
|
554
|
+
"type": "number",
|
|
555
|
+
"description": "Visits to the brand's in-platform page (profile, artist page, channel, or storefront) attributed to this delivery. Does not include external website clicks.",
|
|
556
|
+
"minimum": 0
|
|
557
|
+
},
|
|
558
|
+
"engagement_rate": {
|
|
559
|
+
"type": "number",
|
|
560
|
+
"description": "Platform-specific engagement rate (0.0 to 1.0). Typically engagements/impressions, but definition varies by platform.",
|
|
561
|
+
"minimum": 0,
|
|
562
|
+
"maximum": 1
|
|
563
|
+
},
|
|
564
|
+
"cost_per_click": {
|
|
565
|
+
"type": "number",
|
|
566
|
+
"description": "Cost per click (spend / clicks)",
|
|
567
|
+
"minimum": 0
|
|
568
|
+
},
|
|
569
|
+
"by_action_source": {
|
|
570
|
+
"type": "array",
|
|
571
|
+
"description": "Conversion metrics broken down by action source (website, app, in_store, etc.). Useful for omnichannel sellers where conversions occur across digital and physical channels.",
|
|
572
|
+
"items": {
|
|
573
|
+
"type": "object",
|
|
574
|
+
"properties": {
|
|
575
|
+
"action_source": {
|
|
576
|
+
"$ref": "#/$defs/ActionSource"
|
|
577
|
+
},
|
|
578
|
+
"event_source_id": {
|
|
579
|
+
"type": "string",
|
|
580
|
+
"description": "Event source that produced these conversions (for disambiguation when multiple event sources are configured)"
|
|
581
|
+
},
|
|
582
|
+
"count": {
|
|
583
|
+
"type": "number",
|
|
584
|
+
"description": "Number of conversions from this action source",
|
|
585
|
+
"minimum": 0
|
|
586
|
+
},
|
|
587
|
+
"value": {
|
|
588
|
+
"type": "number",
|
|
589
|
+
"description": "Total monetary value of conversions from this action source",
|
|
590
|
+
"minimum": 0
|
|
591
|
+
}
|
|
592
|
+
},
|
|
593
|
+
"required": [
|
|
594
|
+
"action_source",
|
|
595
|
+
"count"
|
|
596
|
+
],
|
|
597
|
+
"additionalProperties": true
|
|
598
|
+
}
|
|
599
|
+
}
|
|
600
|
+
},
|
|
601
|
+
"dependencies": {
|
|
602
|
+
"reach": [
|
|
603
|
+
"reach_unit"
|
|
604
|
+
]
|
|
605
|
+
},
|
|
606
|
+
"additionalProperties": true
|
|
607
|
+
},
|
|
608
|
+
{
|
|
609
|
+
"type": "object",
|
|
610
|
+
"description": "Aggregate metrics for this media buy across all packages",
|
|
611
|
+
"properties": {
|
|
612
|
+
"effective_rate": {
|
|
613
|
+
"type": "number",
|
|
614
|
+
"description": "Effective rate paid per unit based on pricing_model (e.g., actual CPM for 'cpm', actual cost per completed view for 'cpcv', actual cost per point for 'cpp')",
|
|
615
|
+
"minimum": 0
|
|
616
|
+
}
|
|
617
|
+
},
|
|
618
|
+
"required": [
|
|
619
|
+
"spend"
|
|
620
|
+
]
|
|
621
|
+
}
|
|
622
|
+
]
|
|
623
|
+
},
|
|
624
|
+
"by_package": {
|
|
625
|
+
"type": "array",
|
|
626
|
+
"description": "Metrics broken down by package",
|
|
627
|
+
"items": {
|
|
628
|
+
"allOf": [
|
|
629
|
+
{
|
|
630
|
+
"title": "Delivery Metrics",
|
|
631
|
+
"description": "Standard delivery metrics that can be reported at media buy, package, or creative level",
|
|
632
|
+
"type": "object",
|
|
633
|
+
"properties": {
|
|
634
|
+
"impressions": {
|
|
635
|
+
"type": "number",
|
|
636
|
+
"description": "Impressions delivered",
|
|
637
|
+
"minimum": 0
|
|
638
|
+
},
|
|
639
|
+
"spend": {
|
|
640
|
+
"type": "number",
|
|
641
|
+
"description": "Amount spent",
|
|
642
|
+
"minimum": 0
|
|
643
|
+
},
|
|
644
|
+
"clicks": {
|
|
645
|
+
"type": "number",
|
|
646
|
+
"description": "Total clicks",
|
|
647
|
+
"minimum": 0
|
|
648
|
+
},
|
|
649
|
+
"ctr": {
|
|
650
|
+
"type": "number",
|
|
651
|
+
"description": "Click-through rate (clicks/impressions)",
|
|
652
|
+
"minimum": 0,
|
|
653
|
+
"maximum": 1
|
|
654
|
+
},
|
|
655
|
+
"views": {
|
|
656
|
+
"type": "number",
|
|
657
|
+
"description": "Content engagements counted toward the billable view threshold. For video this is a platform-defined view event (e.g., 30 seconds or video midpoint); for audio/podcast it is a stream start; for other formats it follows the pricing model's view definition. When the package uses CPV pricing, spend = views × rate.",
|
|
658
|
+
"minimum": 0
|
|
659
|
+
},
|
|
660
|
+
"completed_views": {
|
|
661
|
+
"type": "number",
|
|
662
|
+
"description": "Video/audio completions. When the package has a completed_views optimization goal with view_duration_seconds, completions are counted at that threshold rather than 100% completion.",
|
|
663
|
+
"minimum": 0
|
|
664
|
+
},
|
|
665
|
+
"completion_rate": {
|
|
666
|
+
"type": "number",
|
|
667
|
+
"description": "Completion rate (completed_views/impressions)",
|
|
668
|
+
"minimum": 0,
|
|
669
|
+
"maximum": 1
|
|
670
|
+
},
|
|
671
|
+
"conversions": {
|
|
672
|
+
"type": "number",
|
|
673
|
+
"description": "Total conversions attributed to this delivery. When by_event_type is present, this equals the sum of all by_event_type[].count entries.",
|
|
674
|
+
"minimum": 0
|
|
675
|
+
},
|
|
676
|
+
"conversion_value": {
|
|
677
|
+
"type": "number",
|
|
678
|
+
"description": "Total monetary value of attributed conversions (in the reporting currency)",
|
|
679
|
+
"minimum": 0
|
|
680
|
+
},
|
|
681
|
+
"roas": {
|
|
682
|
+
"type": "number",
|
|
683
|
+
"description": "Return on ad spend (conversion_value / spend)",
|
|
684
|
+
"minimum": 0
|
|
685
|
+
},
|
|
686
|
+
"cost_per_acquisition": {
|
|
687
|
+
"type": "number",
|
|
688
|
+
"description": "Cost per conversion (spend / conversions)",
|
|
689
|
+
"minimum": 0
|
|
690
|
+
},
|
|
691
|
+
"new_to_brand_rate": {
|
|
692
|
+
"type": "number",
|
|
693
|
+
"description": "Fraction of conversions from first-time brand buyers (0 = none, 1 = all)",
|
|
694
|
+
"minimum": 0,
|
|
695
|
+
"maximum": 1
|
|
696
|
+
},
|
|
697
|
+
"leads": {
|
|
698
|
+
"type": "number",
|
|
699
|
+
"description": "Leads generated (convenience alias for by_event_type where event_type='lead')",
|
|
700
|
+
"minimum": 0
|
|
701
|
+
},
|
|
702
|
+
"by_event_type": {
|
|
703
|
+
"type": "array",
|
|
704
|
+
"description": "Conversion metrics broken down by event type. Spend-derived metrics (ROAS, CPA) are only available at the package/totals level since spend cannot be attributed to individual event types.",
|
|
705
|
+
"items": {
|
|
706
|
+
"type": "object",
|
|
707
|
+
"properties": {
|
|
708
|
+
"event_type": {
|
|
709
|
+
"$ref": "#/$defs/EventType"
|
|
710
|
+
},
|
|
711
|
+
"event_source_id": {
|
|
712
|
+
"type": "string",
|
|
713
|
+
"description": "Event source that produced these conversions (for disambiguation when multiple event sources are configured)"
|
|
714
|
+
},
|
|
715
|
+
"count": {
|
|
716
|
+
"type": "number",
|
|
717
|
+
"description": "Number of events of this type",
|
|
718
|
+
"minimum": 0
|
|
719
|
+
},
|
|
720
|
+
"value": {
|
|
721
|
+
"type": "number",
|
|
722
|
+
"description": "Total monetary value of events of this type",
|
|
723
|
+
"minimum": 0
|
|
724
|
+
}
|
|
725
|
+
},
|
|
726
|
+
"required": [
|
|
727
|
+
"event_type",
|
|
728
|
+
"count"
|
|
729
|
+
],
|
|
730
|
+
"additionalProperties": true
|
|
731
|
+
}
|
|
732
|
+
},
|
|
733
|
+
"grps": {
|
|
734
|
+
"type": "number",
|
|
735
|
+
"description": "Gross Rating Points delivered (for CPP)",
|
|
736
|
+
"minimum": 0
|
|
737
|
+
},
|
|
738
|
+
"reach": {
|
|
739
|
+
"type": "number",
|
|
740
|
+
"description": "Unique reach in the units specified by reach_unit. When reach_unit is omitted, units are unspecified — do not compare reach values across packages or media buys without a common reach_unit.",
|
|
741
|
+
"minimum": 0
|
|
742
|
+
},
|
|
743
|
+
"reach_unit": {
|
|
744
|
+
"allOf": [
|
|
745
|
+
{
|
|
746
|
+
"$ref": "#/$defs/ReachUnit"
|
|
747
|
+
}
|
|
748
|
+
],
|
|
749
|
+
"description": "Unit of measurement for the reach field. Aligns with the reach_unit declared on optimization goals and delivery forecasts. Required when reach is present to enable cross-platform comparison."
|
|
750
|
+
},
|
|
751
|
+
"frequency": {
|
|
752
|
+
"type": "number",
|
|
753
|
+
"description": "Average frequency per reach unit (typically measured over campaign duration, but can vary by measurement provider). When reach_unit is 'households', this is average exposures per household; when 'accounts', per logged-in account; etc.",
|
|
754
|
+
"minimum": 0
|
|
755
|
+
},
|
|
756
|
+
"quartile_data": {
|
|
757
|
+
"type": "object",
|
|
758
|
+
"description": "Audio/video quartile completion data",
|
|
759
|
+
"properties": {
|
|
760
|
+
"q1_views": {
|
|
761
|
+
"type": "number",
|
|
762
|
+
"description": "25% completion views",
|
|
763
|
+
"minimum": 0
|
|
764
|
+
},
|
|
765
|
+
"q2_views": {
|
|
766
|
+
"type": "number",
|
|
767
|
+
"description": "50% completion views",
|
|
768
|
+
"minimum": 0
|
|
769
|
+
},
|
|
770
|
+
"q3_views": {
|
|
771
|
+
"type": "number",
|
|
772
|
+
"description": "75% completion views",
|
|
773
|
+
"minimum": 0
|
|
774
|
+
},
|
|
775
|
+
"q4_views": {
|
|
776
|
+
"type": "number",
|
|
777
|
+
"description": "100% completion views",
|
|
778
|
+
"minimum": 0
|
|
779
|
+
}
|
|
780
|
+
}
|
|
781
|
+
},
|
|
782
|
+
"dooh_metrics": {
|
|
783
|
+
"type": "object",
|
|
784
|
+
"description": "DOOH-specific metrics (only included for DOOH campaigns)",
|
|
785
|
+
"properties": {
|
|
786
|
+
"loop_plays": {
|
|
787
|
+
"type": "integer",
|
|
788
|
+
"description": "Number of times ad played in rotation",
|
|
789
|
+
"minimum": 0
|
|
790
|
+
},
|
|
791
|
+
"screens_used": {
|
|
792
|
+
"type": "integer",
|
|
793
|
+
"description": "Number of unique screens displaying the ad",
|
|
794
|
+
"minimum": 0
|
|
795
|
+
},
|
|
796
|
+
"screen_time_seconds": {
|
|
797
|
+
"type": "integer",
|
|
798
|
+
"description": "Total display time in seconds",
|
|
799
|
+
"minimum": 0
|
|
800
|
+
},
|
|
801
|
+
"sov_achieved": {
|
|
802
|
+
"type": "number",
|
|
803
|
+
"description": "Actual share of voice delivered (0.0 to 1.0)",
|
|
804
|
+
"minimum": 0,
|
|
805
|
+
"maximum": 1
|
|
806
|
+
},
|
|
807
|
+
"calculation_notes": {
|
|
808
|
+
"type": "string",
|
|
809
|
+
"description": "Explanation of how DOOH impressions were calculated"
|
|
810
|
+
},
|
|
811
|
+
"venue_breakdown": {
|
|
812
|
+
"type": "array",
|
|
813
|
+
"description": "Per-venue performance breakdown",
|
|
814
|
+
"items": {
|
|
815
|
+
"type": "object",
|
|
816
|
+
"properties": {
|
|
817
|
+
"venue_id": {
|
|
818
|
+
"type": "string",
|
|
819
|
+
"description": "Venue identifier"
|
|
820
|
+
},
|
|
821
|
+
"venue_name": {
|
|
822
|
+
"type": "string",
|
|
823
|
+
"description": "Human-readable venue name"
|
|
824
|
+
},
|
|
825
|
+
"venue_type": {
|
|
826
|
+
"type": "string",
|
|
827
|
+
"description": "Venue type (e.g., 'airport', 'transit', 'retail', 'billboard')"
|
|
828
|
+
},
|
|
829
|
+
"impressions": {
|
|
830
|
+
"type": "integer",
|
|
831
|
+
"description": "Impressions delivered at this venue",
|
|
832
|
+
"minimum": 0
|
|
833
|
+
},
|
|
834
|
+
"loop_plays": {
|
|
835
|
+
"type": "integer",
|
|
836
|
+
"description": "Loop plays at this venue",
|
|
837
|
+
"minimum": 0
|
|
838
|
+
},
|
|
839
|
+
"screens_used": {
|
|
840
|
+
"type": "integer",
|
|
841
|
+
"description": "Number of screens used at this venue",
|
|
842
|
+
"minimum": 0
|
|
843
|
+
}
|
|
844
|
+
},
|
|
845
|
+
"required": [
|
|
846
|
+
"venue_id",
|
|
847
|
+
"impressions"
|
|
848
|
+
],
|
|
849
|
+
"additionalProperties": true
|
|
850
|
+
}
|
|
851
|
+
}
|
|
852
|
+
},
|
|
853
|
+
"additionalProperties": true
|
|
854
|
+
},
|
|
855
|
+
"viewability": {
|
|
856
|
+
"type": "object",
|
|
857
|
+
"description": "Viewability metrics. Viewable rate should be calculated as viewable_impressions / measurable_impressions (not total impressions), since some environments cannot measure viewability.",
|
|
858
|
+
"properties": {
|
|
859
|
+
"measurable_impressions": {
|
|
860
|
+
"type": "number",
|
|
861
|
+
"description": "Impressions where viewability could be measured. Excludes environments without measurement capability (e.g., non-Intersection Observer browsers, certain app environments).",
|
|
862
|
+
"minimum": 0
|
|
863
|
+
},
|
|
864
|
+
"viewable_impressions": {
|
|
865
|
+
"type": "number",
|
|
866
|
+
"description": "Impressions that met the viewability threshold defined by the measurement standard.",
|
|
867
|
+
"minimum": 0
|
|
868
|
+
},
|
|
869
|
+
"viewable_rate": {
|
|
870
|
+
"type": "number",
|
|
871
|
+
"description": "Viewable impression rate (viewable_impressions / measurable_impressions). Range 0.0 to 1.0.",
|
|
872
|
+
"minimum": 0,
|
|
873
|
+
"maximum": 1
|
|
874
|
+
},
|
|
875
|
+
"standard": {
|
|
876
|
+
"$ref": "#/$defs/ViewabilityStandard"
|
|
877
|
+
}
|
|
878
|
+
},
|
|
879
|
+
"additionalProperties": true
|
|
880
|
+
},
|
|
881
|
+
"engagements": {
|
|
882
|
+
"type": "number",
|
|
883
|
+
"description": "Total engagements — direct interactions with the ad beyond viewing. Includes social reactions/comments/shares, story/unit opens, interactive overlay taps on CTV, companion banner interactions on audio. Platform-specific; corresponds to the 'engagements' optimization metric.",
|
|
884
|
+
"minimum": 0
|
|
885
|
+
},
|
|
886
|
+
"follows": {
|
|
887
|
+
"type": "number",
|
|
888
|
+
"description": "New followers, page likes, artist/podcast/channel subscribes attributed to this delivery.",
|
|
889
|
+
"minimum": 0
|
|
890
|
+
},
|
|
891
|
+
"saves": {
|
|
892
|
+
"type": "number",
|
|
893
|
+
"description": "Saves, bookmarks, playlist adds, pins attributed to this delivery.",
|
|
894
|
+
"minimum": 0
|
|
895
|
+
},
|
|
896
|
+
"profile_visits": {
|
|
897
|
+
"type": "number",
|
|
898
|
+
"description": "Visits to the brand's in-platform page (profile, artist page, channel, or storefront) attributed to this delivery. Does not include external website clicks.",
|
|
899
|
+
"minimum": 0
|
|
900
|
+
},
|
|
901
|
+
"engagement_rate": {
|
|
902
|
+
"type": "number",
|
|
903
|
+
"description": "Platform-specific engagement rate (0.0 to 1.0). Typically engagements/impressions, but definition varies by platform.",
|
|
904
|
+
"minimum": 0,
|
|
905
|
+
"maximum": 1
|
|
906
|
+
},
|
|
907
|
+
"cost_per_click": {
|
|
908
|
+
"type": "number",
|
|
909
|
+
"description": "Cost per click (spend / clicks)",
|
|
910
|
+
"minimum": 0
|
|
911
|
+
},
|
|
912
|
+
"by_action_source": {
|
|
913
|
+
"type": "array",
|
|
914
|
+
"description": "Conversion metrics broken down by action source (website, app, in_store, etc.). Useful for omnichannel sellers where conversions occur across digital and physical channels.",
|
|
915
|
+
"items": {
|
|
916
|
+
"type": "object",
|
|
917
|
+
"properties": {
|
|
918
|
+
"action_source": {
|
|
919
|
+
"$ref": "#/$defs/ActionSource"
|
|
920
|
+
},
|
|
921
|
+
"event_source_id": {
|
|
922
|
+
"type": "string",
|
|
923
|
+
"description": "Event source that produced these conversions (for disambiguation when multiple event sources are configured)"
|
|
924
|
+
},
|
|
925
|
+
"count": {
|
|
926
|
+
"type": "number",
|
|
927
|
+
"description": "Number of conversions from this action source",
|
|
928
|
+
"minimum": 0
|
|
929
|
+
},
|
|
930
|
+
"value": {
|
|
931
|
+
"type": "number",
|
|
932
|
+
"description": "Total monetary value of conversions from this action source",
|
|
933
|
+
"minimum": 0
|
|
934
|
+
}
|
|
935
|
+
},
|
|
936
|
+
"required": [
|
|
937
|
+
"action_source",
|
|
938
|
+
"count"
|
|
939
|
+
],
|
|
940
|
+
"additionalProperties": true
|
|
941
|
+
}
|
|
942
|
+
}
|
|
943
|
+
},
|
|
944
|
+
"dependencies": {
|
|
945
|
+
"reach": [
|
|
946
|
+
"reach_unit"
|
|
947
|
+
]
|
|
948
|
+
},
|
|
949
|
+
"additionalProperties": true
|
|
950
|
+
},
|
|
951
|
+
{
|
|
952
|
+
"type": "object",
|
|
953
|
+
"properties": {
|
|
954
|
+
"package_id": {
|
|
955
|
+
"type": "string",
|
|
956
|
+
"description": "Seller's package identifier",
|
|
957
|
+
"x-entity": "package"
|
|
958
|
+
},
|
|
959
|
+
"pacing_index": {
|
|
960
|
+
"type": "number",
|
|
961
|
+
"description": "Delivery pace (1.0 = on track, <1.0 = behind, >1.0 = ahead)",
|
|
962
|
+
"minimum": 0
|
|
963
|
+
},
|
|
964
|
+
"pricing_model": {
|
|
965
|
+
"$ref": "#/$defs/PricingModel"
|
|
966
|
+
},
|
|
967
|
+
"rate": {
|
|
968
|
+
"type": "number",
|
|
969
|
+
"description": "The pricing rate for this package in the specified currency. For fixed-rate pricing, this is the agreed rate (e.g., CPM rate of 12.50 means $12.50 per 1,000 impressions). For auction-based pricing, this represents the effective rate based on actual delivery.",
|
|
970
|
+
"minimum": 0
|
|
971
|
+
},
|
|
972
|
+
"currency": {
|
|
973
|
+
"type": "string",
|
|
974
|
+
"description": "ISO 4217 currency code (e.g., USD, EUR, GBP) for this package's pricing. Indicates the currency in which the rate and spend values are denominated. Different packages can use different currencies when supported by the publisher.",
|
|
975
|
+
"pattern": "^[A-Z]{3}$"
|
|
976
|
+
},
|
|
977
|
+
"delivery_status": {
|
|
978
|
+
"type": "string",
|
|
979
|
+
"description": "System-reported operational state of this package. Reflects actual delivery state independent of buyer pause control.",
|
|
980
|
+
"enum": [
|
|
981
|
+
"delivering",
|
|
982
|
+
"completed",
|
|
983
|
+
"budget_exhausted",
|
|
984
|
+
"flight_ended",
|
|
985
|
+
"goal_met"
|
|
986
|
+
]
|
|
987
|
+
},
|
|
988
|
+
"paused": {
|
|
989
|
+
"type": "boolean",
|
|
990
|
+
"description": "Whether this package is currently paused by the buyer"
|
|
991
|
+
},
|
|
992
|
+
"is_final": {
|
|
993
|
+
"type": "boolean",
|
|
994
|
+
"description": "Whether this delivery data is final for the reporting period. When false, the data may be updated as measurement matures (e.g., broadcast C7 window accumulating DVR playback) or as processing completes (e.g., IVT filtering, deduplication). When true, the seller considers this data closed — no further updates for this period. Absent means the seller does not distinguish provisional from final data."
|
|
995
|
+
},
|
|
996
|
+
"measurement_window": {
|
|
997
|
+
"type": "string",
|
|
998
|
+
"maxLength": 50,
|
|
999
|
+
"description": "Which measurement window this data represents, referencing a window_id from the product's reporting_capabilities.measurement_windows. For broadcast: 'live', 'c3', 'c7'. When absent, the data is not windowed (standard digital reporting). When present with is_final: false, a later report for the same period will provide a wider window or more complete data.",
|
|
1000
|
+
"examples": [
|
|
1001
|
+
"live",
|
|
1002
|
+
"c3",
|
|
1003
|
+
"c7"
|
|
1004
|
+
]
|
|
1005
|
+
},
|
|
1006
|
+
"supersedes_window": {
|
|
1007
|
+
"type": "string",
|
|
1008
|
+
"maxLength": 50,
|
|
1009
|
+
"description": "Which measurement window this data replaces. Present on window_update notifications to indicate progression (e.g., 'live' when reporting C3 data that supersedes live-only numbers). Absent on the first report for a period. Buyers should replace stored data for the superseded window with this report's data.",
|
|
1010
|
+
"examples": [
|
|
1011
|
+
"live",
|
|
1012
|
+
"c3"
|
|
1013
|
+
]
|
|
1014
|
+
},
|
|
1015
|
+
"by_catalog_item": {
|
|
1016
|
+
"type": "array",
|
|
1017
|
+
"description": "Delivery by catalog item within this package. Available for catalog-driven packages when the seller supports item-level reporting.",
|
|
1018
|
+
"items": {
|
|
1019
|
+
"allOf": [
|
|
1020
|
+
{
|
|
1021
|
+
"title": "Delivery Metrics",
|
|
1022
|
+
"description": "Standard delivery metrics that can be reported at media buy, package, or creative level",
|
|
1023
|
+
"type": "object",
|
|
1024
|
+
"properties": {
|
|
1025
|
+
"impressions": {
|
|
1026
|
+
"type": "number",
|
|
1027
|
+
"description": "Impressions delivered",
|
|
1028
|
+
"minimum": 0
|
|
1029
|
+
},
|
|
1030
|
+
"spend": {
|
|
1031
|
+
"type": "number",
|
|
1032
|
+
"description": "Amount spent",
|
|
1033
|
+
"minimum": 0
|
|
1034
|
+
},
|
|
1035
|
+
"clicks": {
|
|
1036
|
+
"type": "number",
|
|
1037
|
+
"description": "Total clicks",
|
|
1038
|
+
"minimum": 0
|
|
1039
|
+
},
|
|
1040
|
+
"ctr": {
|
|
1041
|
+
"type": "number",
|
|
1042
|
+
"description": "Click-through rate (clicks/impressions)",
|
|
1043
|
+
"minimum": 0,
|
|
1044
|
+
"maximum": 1
|
|
1045
|
+
},
|
|
1046
|
+
"views": {
|
|
1047
|
+
"type": "number",
|
|
1048
|
+
"description": "Content engagements counted toward the billable view threshold. For video this is a platform-defined view event (e.g., 30 seconds or video midpoint); for audio/podcast it is a stream start; for other formats it follows the pricing model's view definition. When the package uses CPV pricing, spend = views × rate.",
|
|
1049
|
+
"minimum": 0
|
|
1050
|
+
},
|
|
1051
|
+
"completed_views": {
|
|
1052
|
+
"type": "number",
|
|
1053
|
+
"description": "Video/audio completions. When the package has a completed_views optimization goal with view_duration_seconds, completions are counted at that threshold rather than 100% completion.",
|
|
1054
|
+
"minimum": 0
|
|
1055
|
+
},
|
|
1056
|
+
"completion_rate": {
|
|
1057
|
+
"type": "number",
|
|
1058
|
+
"description": "Completion rate (completed_views/impressions)",
|
|
1059
|
+
"minimum": 0,
|
|
1060
|
+
"maximum": 1
|
|
1061
|
+
},
|
|
1062
|
+
"conversions": {
|
|
1063
|
+
"type": "number",
|
|
1064
|
+
"description": "Total conversions attributed to this delivery. When by_event_type is present, this equals the sum of all by_event_type[].count entries.",
|
|
1065
|
+
"minimum": 0
|
|
1066
|
+
},
|
|
1067
|
+
"conversion_value": {
|
|
1068
|
+
"type": "number",
|
|
1069
|
+
"description": "Total monetary value of attributed conversions (in the reporting currency)",
|
|
1070
|
+
"minimum": 0
|
|
1071
|
+
},
|
|
1072
|
+
"roas": {
|
|
1073
|
+
"type": "number",
|
|
1074
|
+
"description": "Return on ad spend (conversion_value / spend)",
|
|
1075
|
+
"minimum": 0
|
|
1076
|
+
},
|
|
1077
|
+
"cost_per_acquisition": {
|
|
1078
|
+
"type": "number",
|
|
1079
|
+
"description": "Cost per conversion (spend / conversions)",
|
|
1080
|
+
"minimum": 0
|
|
1081
|
+
},
|
|
1082
|
+
"new_to_brand_rate": {
|
|
1083
|
+
"type": "number",
|
|
1084
|
+
"description": "Fraction of conversions from first-time brand buyers (0 = none, 1 = all)",
|
|
1085
|
+
"minimum": 0,
|
|
1086
|
+
"maximum": 1
|
|
1087
|
+
},
|
|
1088
|
+
"leads": {
|
|
1089
|
+
"type": "number",
|
|
1090
|
+
"description": "Leads generated (convenience alias for by_event_type where event_type='lead')",
|
|
1091
|
+
"minimum": 0
|
|
1092
|
+
},
|
|
1093
|
+
"by_event_type": {
|
|
1094
|
+
"type": "array",
|
|
1095
|
+
"description": "Conversion metrics broken down by event type. Spend-derived metrics (ROAS, CPA) are only available at the package/totals level since spend cannot be attributed to individual event types.",
|
|
1096
|
+
"items": {
|
|
1097
|
+
"type": "object",
|
|
1098
|
+
"properties": {
|
|
1099
|
+
"event_type": {
|
|
1100
|
+
"$ref": "#/$defs/EventType"
|
|
1101
|
+
},
|
|
1102
|
+
"event_source_id": {
|
|
1103
|
+
"type": "string",
|
|
1104
|
+
"description": "Event source that produced these conversions (for disambiguation when multiple event sources are configured)"
|
|
1105
|
+
},
|
|
1106
|
+
"count": {
|
|
1107
|
+
"type": "number",
|
|
1108
|
+
"description": "Number of events of this type",
|
|
1109
|
+
"minimum": 0
|
|
1110
|
+
},
|
|
1111
|
+
"value": {
|
|
1112
|
+
"type": "number",
|
|
1113
|
+
"description": "Total monetary value of events of this type",
|
|
1114
|
+
"minimum": 0
|
|
1115
|
+
}
|
|
1116
|
+
},
|
|
1117
|
+
"required": [
|
|
1118
|
+
"event_type",
|
|
1119
|
+
"count"
|
|
1120
|
+
],
|
|
1121
|
+
"additionalProperties": true
|
|
1122
|
+
}
|
|
1123
|
+
},
|
|
1124
|
+
"grps": {
|
|
1125
|
+
"type": "number",
|
|
1126
|
+
"description": "Gross Rating Points delivered (for CPP)",
|
|
1127
|
+
"minimum": 0
|
|
1128
|
+
},
|
|
1129
|
+
"reach": {
|
|
1130
|
+
"type": "number",
|
|
1131
|
+
"description": "Unique reach in the units specified by reach_unit. When reach_unit is omitted, units are unspecified — do not compare reach values across packages or media buys without a common reach_unit.",
|
|
1132
|
+
"minimum": 0
|
|
1133
|
+
},
|
|
1134
|
+
"reach_unit": {
|
|
1135
|
+
"allOf": [
|
|
1136
|
+
{
|
|
1137
|
+
"$ref": "#/$defs/ReachUnit"
|
|
1138
|
+
}
|
|
1139
|
+
],
|
|
1140
|
+
"description": "Unit of measurement for the reach field. Aligns with the reach_unit declared on optimization goals and delivery forecasts. Required when reach is present to enable cross-platform comparison."
|
|
1141
|
+
},
|
|
1142
|
+
"frequency": {
|
|
1143
|
+
"type": "number",
|
|
1144
|
+
"description": "Average frequency per reach unit (typically measured over campaign duration, but can vary by measurement provider). When reach_unit is 'households', this is average exposures per household; when 'accounts', per logged-in account; etc.",
|
|
1145
|
+
"minimum": 0
|
|
1146
|
+
},
|
|
1147
|
+
"quartile_data": {
|
|
1148
|
+
"type": "object",
|
|
1149
|
+
"description": "Audio/video quartile completion data",
|
|
1150
|
+
"properties": {
|
|
1151
|
+
"q1_views": {
|
|
1152
|
+
"type": "number",
|
|
1153
|
+
"description": "25% completion views",
|
|
1154
|
+
"minimum": 0
|
|
1155
|
+
},
|
|
1156
|
+
"q2_views": {
|
|
1157
|
+
"type": "number",
|
|
1158
|
+
"description": "50% completion views",
|
|
1159
|
+
"minimum": 0
|
|
1160
|
+
},
|
|
1161
|
+
"q3_views": {
|
|
1162
|
+
"type": "number",
|
|
1163
|
+
"description": "75% completion views",
|
|
1164
|
+
"minimum": 0
|
|
1165
|
+
},
|
|
1166
|
+
"q4_views": {
|
|
1167
|
+
"type": "number",
|
|
1168
|
+
"description": "100% completion views",
|
|
1169
|
+
"minimum": 0
|
|
1170
|
+
}
|
|
1171
|
+
}
|
|
1172
|
+
},
|
|
1173
|
+
"dooh_metrics": {
|
|
1174
|
+
"type": "object",
|
|
1175
|
+
"description": "DOOH-specific metrics (only included for DOOH campaigns)",
|
|
1176
|
+
"properties": {
|
|
1177
|
+
"loop_plays": {
|
|
1178
|
+
"type": "integer",
|
|
1179
|
+
"description": "Number of times ad played in rotation",
|
|
1180
|
+
"minimum": 0
|
|
1181
|
+
},
|
|
1182
|
+
"screens_used": {
|
|
1183
|
+
"type": "integer",
|
|
1184
|
+
"description": "Number of unique screens displaying the ad",
|
|
1185
|
+
"minimum": 0
|
|
1186
|
+
},
|
|
1187
|
+
"screen_time_seconds": {
|
|
1188
|
+
"type": "integer",
|
|
1189
|
+
"description": "Total display time in seconds",
|
|
1190
|
+
"minimum": 0
|
|
1191
|
+
},
|
|
1192
|
+
"sov_achieved": {
|
|
1193
|
+
"type": "number",
|
|
1194
|
+
"description": "Actual share of voice delivered (0.0 to 1.0)",
|
|
1195
|
+
"minimum": 0,
|
|
1196
|
+
"maximum": 1
|
|
1197
|
+
},
|
|
1198
|
+
"calculation_notes": {
|
|
1199
|
+
"type": "string",
|
|
1200
|
+
"description": "Explanation of how DOOH impressions were calculated"
|
|
1201
|
+
},
|
|
1202
|
+
"venue_breakdown": {
|
|
1203
|
+
"type": "array",
|
|
1204
|
+
"description": "Per-venue performance breakdown",
|
|
1205
|
+
"items": {
|
|
1206
|
+
"type": "object",
|
|
1207
|
+
"properties": {
|
|
1208
|
+
"venue_id": {
|
|
1209
|
+
"type": "string",
|
|
1210
|
+
"description": "Venue identifier"
|
|
1211
|
+
},
|
|
1212
|
+
"venue_name": {
|
|
1213
|
+
"type": "string",
|
|
1214
|
+
"description": "Human-readable venue name"
|
|
1215
|
+
},
|
|
1216
|
+
"venue_type": {
|
|
1217
|
+
"type": "string",
|
|
1218
|
+
"description": "Venue type (e.g., 'airport', 'transit', 'retail', 'billboard')"
|
|
1219
|
+
},
|
|
1220
|
+
"impressions": {
|
|
1221
|
+
"type": "integer",
|
|
1222
|
+
"description": "Impressions delivered at this venue",
|
|
1223
|
+
"minimum": 0
|
|
1224
|
+
},
|
|
1225
|
+
"loop_plays": {
|
|
1226
|
+
"type": "integer",
|
|
1227
|
+
"description": "Loop plays at this venue",
|
|
1228
|
+
"minimum": 0
|
|
1229
|
+
},
|
|
1230
|
+
"screens_used": {
|
|
1231
|
+
"type": "integer",
|
|
1232
|
+
"description": "Number of screens used at this venue",
|
|
1233
|
+
"minimum": 0
|
|
1234
|
+
}
|
|
1235
|
+
},
|
|
1236
|
+
"required": [
|
|
1237
|
+
"venue_id",
|
|
1238
|
+
"impressions"
|
|
1239
|
+
],
|
|
1240
|
+
"additionalProperties": true
|
|
1241
|
+
}
|
|
1242
|
+
}
|
|
1243
|
+
},
|
|
1244
|
+
"additionalProperties": true
|
|
1245
|
+
},
|
|
1246
|
+
"viewability": {
|
|
1247
|
+
"type": "object",
|
|
1248
|
+
"description": "Viewability metrics. Viewable rate should be calculated as viewable_impressions / measurable_impressions (not total impressions), since some environments cannot measure viewability.",
|
|
1249
|
+
"properties": {
|
|
1250
|
+
"measurable_impressions": {
|
|
1251
|
+
"type": "number",
|
|
1252
|
+
"description": "Impressions where viewability could be measured. Excludes environments without measurement capability (e.g., non-Intersection Observer browsers, certain app environments).",
|
|
1253
|
+
"minimum": 0
|
|
1254
|
+
},
|
|
1255
|
+
"viewable_impressions": {
|
|
1256
|
+
"type": "number",
|
|
1257
|
+
"description": "Impressions that met the viewability threshold defined by the measurement standard.",
|
|
1258
|
+
"minimum": 0
|
|
1259
|
+
},
|
|
1260
|
+
"viewable_rate": {
|
|
1261
|
+
"type": "number",
|
|
1262
|
+
"description": "Viewable impression rate (viewable_impressions / measurable_impressions). Range 0.0 to 1.0.",
|
|
1263
|
+
"minimum": 0,
|
|
1264
|
+
"maximum": 1
|
|
1265
|
+
},
|
|
1266
|
+
"standard": {
|
|
1267
|
+
"$ref": "#/$defs/ViewabilityStandard"
|
|
1268
|
+
}
|
|
1269
|
+
},
|
|
1270
|
+
"additionalProperties": true
|
|
1271
|
+
},
|
|
1272
|
+
"engagements": {
|
|
1273
|
+
"type": "number",
|
|
1274
|
+
"description": "Total engagements — direct interactions with the ad beyond viewing. Includes social reactions/comments/shares, story/unit opens, interactive overlay taps on CTV, companion banner interactions on audio. Platform-specific; corresponds to the 'engagements' optimization metric.",
|
|
1275
|
+
"minimum": 0
|
|
1276
|
+
},
|
|
1277
|
+
"follows": {
|
|
1278
|
+
"type": "number",
|
|
1279
|
+
"description": "New followers, page likes, artist/podcast/channel subscribes attributed to this delivery.",
|
|
1280
|
+
"minimum": 0
|
|
1281
|
+
},
|
|
1282
|
+
"saves": {
|
|
1283
|
+
"type": "number",
|
|
1284
|
+
"description": "Saves, bookmarks, playlist adds, pins attributed to this delivery.",
|
|
1285
|
+
"minimum": 0
|
|
1286
|
+
},
|
|
1287
|
+
"profile_visits": {
|
|
1288
|
+
"type": "number",
|
|
1289
|
+
"description": "Visits to the brand's in-platform page (profile, artist page, channel, or storefront) attributed to this delivery. Does not include external website clicks.",
|
|
1290
|
+
"minimum": 0
|
|
1291
|
+
},
|
|
1292
|
+
"engagement_rate": {
|
|
1293
|
+
"type": "number",
|
|
1294
|
+
"description": "Platform-specific engagement rate (0.0 to 1.0). Typically engagements/impressions, but definition varies by platform.",
|
|
1295
|
+
"minimum": 0,
|
|
1296
|
+
"maximum": 1
|
|
1297
|
+
},
|
|
1298
|
+
"cost_per_click": {
|
|
1299
|
+
"type": "number",
|
|
1300
|
+
"description": "Cost per click (spend / clicks)",
|
|
1301
|
+
"minimum": 0
|
|
1302
|
+
},
|
|
1303
|
+
"by_action_source": {
|
|
1304
|
+
"type": "array",
|
|
1305
|
+
"description": "Conversion metrics broken down by action source (website, app, in_store, etc.). Useful for omnichannel sellers where conversions occur across digital and physical channels.",
|
|
1306
|
+
"items": {
|
|
1307
|
+
"type": "object",
|
|
1308
|
+
"properties": {
|
|
1309
|
+
"action_source": {
|
|
1310
|
+
"$ref": "#/$defs/ActionSource"
|
|
1311
|
+
},
|
|
1312
|
+
"event_source_id": {
|
|
1313
|
+
"type": "string",
|
|
1314
|
+
"description": "Event source that produced these conversions (for disambiguation when multiple event sources are configured)"
|
|
1315
|
+
},
|
|
1316
|
+
"count": {
|
|
1317
|
+
"type": "number",
|
|
1318
|
+
"description": "Number of conversions from this action source",
|
|
1319
|
+
"minimum": 0
|
|
1320
|
+
},
|
|
1321
|
+
"value": {
|
|
1322
|
+
"type": "number",
|
|
1323
|
+
"description": "Total monetary value of conversions from this action source",
|
|
1324
|
+
"minimum": 0
|
|
1325
|
+
}
|
|
1326
|
+
},
|
|
1327
|
+
"required": [
|
|
1328
|
+
"action_source",
|
|
1329
|
+
"count"
|
|
1330
|
+
],
|
|
1331
|
+
"additionalProperties": true
|
|
1332
|
+
}
|
|
1333
|
+
}
|
|
1334
|
+
},
|
|
1335
|
+
"dependencies": {
|
|
1336
|
+
"reach": [
|
|
1337
|
+
"reach_unit"
|
|
1338
|
+
]
|
|
1339
|
+
},
|
|
1340
|
+
"additionalProperties": true
|
|
1341
|
+
},
|
|
1342
|
+
{
|
|
1343
|
+
"type": "object",
|
|
1344
|
+
"properties": {
|
|
1345
|
+
"content_id": {
|
|
1346
|
+
"type": "string",
|
|
1347
|
+
"description": "Catalog item identifier (e.g., SKU, GTIN, job_id, offering_id)"
|
|
1348
|
+
},
|
|
1349
|
+
"content_id_type": {
|
|
1350
|
+
"title": "Content ID Type",
|
|
1351
|
+
"description": "Identifier type for this content_id",
|
|
1352
|
+
"type": "string",
|
|
1353
|
+
"enum": [
|
|
1354
|
+
"sku",
|
|
1355
|
+
"gtin",
|
|
1356
|
+
"offering_id",
|
|
1357
|
+
"job_id",
|
|
1358
|
+
"hotel_id",
|
|
1359
|
+
"flight_id",
|
|
1360
|
+
"vehicle_id",
|
|
1361
|
+
"listing_id",
|
|
1362
|
+
"store_id",
|
|
1363
|
+
"program_id",
|
|
1364
|
+
"destination_id",
|
|
1365
|
+
"app_id"
|
|
1366
|
+
]
|
|
1367
|
+
}
|
|
1368
|
+
},
|
|
1369
|
+
"required": [
|
|
1370
|
+
"content_id",
|
|
1371
|
+
"impressions",
|
|
1372
|
+
"spend"
|
|
1373
|
+
]
|
|
1374
|
+
}
|
|
1375
|
+
]
|
|
1376
|
+
}
|
|
1377
|
+
},
|
|
1378
|
+
"by_creative": {
|
|
1379
|
+
"type": "array",
|
|
1380
|
+
"description": "Metrics broken down by creative within this package. Available when the seller supports creative-level reporting.",
|
|
1381
|
+
"items": {
|
|
1382
|
+
"allOf": [
|
|
1383
|
+
{
|
|
1384
|
+
"title": "Delivery Metrics",
|
|
1385
|
+
"description": "Standard delivery metrics that can be reported at media buy, package, or creative level",
|
|
1386
|
+
"type": "object",
|
|
1387
|
+
"properties": {
|
|
1388
|
+
"impressions": {
|
|
1389
|
+
"type": "number",
|
|
1390
|
+
"description": "Impressions delivered",
|
|
1391
|
+
"minimum": 0
|
|
1392
|
+
},
|
|
1393
|
+
"spend": {
|
|
1394
|
+
"type": "number",
|
|
1395
|
+
"description": "Amount spent",
|
|
1396
|
+
"minimum": 0
|
|
1397
|
+
},
|
|
1398
|
+
"clicks": {
|
|
1399
|
+
"type": "number",
|
|
1400
|
+
"description": "Total clicks",
|
|
1401
|
+
"minimum": 0
|
|
1402
|
+
},
|
|
1403
|
+
"ctr": {
|
|
1404
|
+
"type": "number",
|
|
1405
|
+
"description": "Click-through rate (clicks/impressions)",
|
|
1406
|
+
"minimum": 0,
|
|
1407
|
+
"maximum": 1
|
|
1408
|
+
},
|
|
1409
|
+
"views": {
|
|
1410
|
+
"type": "number",
|
|
1411
|
+
"description": "Content engagements counted toward the billable view threshold. For video this is a platform-defined view event (e.g., 30 seconds or video midpoint); for audio/podcast it is a stream start; for other formats it follows the pricing model's view definition. When the package uses CPV pricing, spend = views × rate.",
|
|
1412
|
+
"minimum": 0
|
|
1413
|
+
},
|
|
1414
|
+
"completed_views": {
|
|
1415
|
+
"type": "number",
|
|
1416
|
+
"description": "Video/audio completions. When the package has a completed_views optimization goal with view_duration_seconds, completions are counted at that threshold rather than 100% completion.",
|
|
1417
|
+
"minimum": 0
|
|
1418
|
+
},
|
|
1419
|
+
"completion_rate": {
|
|
1420
|
+
"type": "number",
|
|
1421
|
+
"description": "Completion rate (completed_views/impressions)",
|
|
1422
|
+
"minimum": 0,
|
|
1423
|
+
"maximum": 1
|
|
1424
|
+
},
|
|
1425
|
+
"conversions": {
|
|
1426
|
+
"type": "number",
|
|
1427
|
+
"description": "Total conversions attributed to this delivery. When by_event_type is present, this equals the sum of all by_event_type[].count entries.",
|
|
1428
|
+
"minimum": 0
|
|
1429
|
+
},
|
|
1430
|
+
"conversion_value": {
|
|
1431
|
+
"type": "number",
|
|
1432
|
+
"description": "Total monetary value of attributed conversions (in the reporting currency)",
|
|
1433
|
+
"minimum": 0
|
|
1434
|
+
},
|
|
1435
|
+
"roas": {
|
|
1436
|
+
"type": "number",
|
|
1437
|
+
"description": "Return on ad spend (conversion_value / spend)",
|
|
1438
|
+
"minimum": 0
|
|
1439
|
+
},
|
|
1440
|
+
"cost_per_acquisition": {
|
|
1441
|
+
"type": "number",
|
|
1442
|
+
"description": "Cost per conversion (spend / conversions)",
|
|
1443
|
+
"minimum": 0
|
|
1444
|
+
},
|
|
1445
|
+
"new_to_brand_rate": {
|
|
1446
|
+
"type": "number",
|
|
1447
|
+
"description": "Fraction of conversions from first-time brand buyers (0 = none, 1 = all)",
|
|
1448
|
+
"minimum": 0,
|
|
1449
|
+
"maximum": 1
|
|
1450
|
+
},
|
|
1451
|
+
"leads": {
|
|
1452
|
+
"type": "number",
|
|
1453
|
+
"description": "Leads generated (convenience alias for by_event_type where event_type='lead')",
|
|
1454
|
+
"minimum": 0
|
|
1455
|
+
},
|
|
1456
|
+
"by_event_type": {
|
|
1457
|
+
"type": "array",
|
|
1458
|
+
"description": "Conversion metrics broken down by event type. Spend-derived metrics (ROAS, CPA) are only available at the package/totals level since spend cannot be attributed to individual event types.",
|
|
1459
|
+
"items": {
|
|
1460
|
+
"type": "object",
|
|
1461
|
+
"properties": {
|
|
1462
|
+
"event_type": {
|
|
1463
|
+
"$ref": "#/$defs/EventType"
|
|
1464
|
+
},
|
|
1465
|
+
"event_source_id": {
|
|
1466
|
+
"type": "string",
|
|
1467
|
+
"description": "Event source that produced these conversions (for disambiguation when multiple event sources are configured)"
|
|
1468
|
+
},
|
|
1469
|
+
"count": {
|
|
1470
|
+
"type": "number",
|
|
1471
|
+
"description": "Number of events of this type",
|
|
1472
|
+
"minimum": 0
|
|
1473
|
+
},
|
|
1474
|
+
"value": {
|
|
1475
|
+
"type": "number",
|
|
1476
|
+
"description": "Total monetary value of events of this type",
|
|
1477
|
+
"minimum": 0
|
|
1478
|
+
}
|
|
1479
|
+
},
|
|
1480
|
+
"required": [
|
|
1481
|
+
"event_type",
|
|
1482
|
+
"count"
|
|
1483
|
+
],
|
|
1484
|
+
"additionalProperties": true
|
|
1485
|
+
}
|
|
1486
|
+
},
|
|
1487
|
+
"grps": {
|
|
1488
|
+
"type": "number",
|
|
1489
|
+
"description": "Gross Rating Points delivered (for CPP)",
|
|
1490
|
+
"minimum": 0
|
|
1491
|
+
},
|
|
1492
|
+
"reach": {
|
|
1493
|
+
"type": "number",
|
|
1494
|
+
"description": "Unique reach in the units specified by reach_unit. When reach_unit is omitted, units are unspecified — do not compare reach values across packages or media buys without a common reach_unit.",
|
|
1495
|
+
"minimum": 0
|
|
1496
|
+
},
|
|
1497
|
+
"reach_unit": {
|
|
1498
|
+
"allOf": [
|
|
1499
|
+
{
|
|
1500
|
+
"$ref": "#/$defs/ReachUnit"
|
|
1501
|
+
}
|
|
1502
|
+
],
|
|
1503
|
+
"description": "Unit of measurement for the reach field. Aligns with the reach_unit declared on optimization goals and delivery forecasts. Required when reach is present to enable cross-platform comparison."
|
|
1504
|
+
},
|
|
1505
|
+
"frequency": {
|
|
1506
|
+
"type": "number",
|
|
1507
|
+
"description": "Average frequency per reach unit (typically measured over campaign duration, but can vary by measurement provider). When reach_unit is 'households', this is average exposures per household; when 'accounts', per logged-in account; etc.",
|
|
1508
|
+
"minimum": 0
|
|
1509
|
+
},
|
|
1510
|
+
"quartile_data": {
|
|
1511
|
+
"type": "object",
|
|
1512
|
+
"description": "Audio/video quartile completion data",
|
|
1513
|
+
"properties": {
|
|
1514
|
+
"q1_views": {
|
|
1515
|
+
"type": "number",
|
|
1516
|
+
"description": "25% completion views",
|
|
1517
|
+
"minimum": 0
|
|
1518
|
+
},
|
|
1519
|
+
"q2_views": {
|
|
1520
|
+
"type": "number",
|
|
1521
|
+
"description": "50% completion views",
|
|
1522
|
+
"minimum": 0
|
|
1523
|
+
},
|
|
1524
|
+
"q3_views": {
|
|
1525
|
+
"type": "number",
|
|
1526
|
+
"description": "75% completion views",
|
|
1527
|
+
"minimum": 0
|
|
1528
|
+
},
|
|
1529
|
+
"q4_views": {
|
|
1530
|
+
"type": "number",
|
|
1531
|
+
"description": "100% completion views",
|
|
1532
|
+
"minimum": 0
|
|
1533
|
+
}
|
|
1534
|
+
}
|
|
1535
|
+
},
|
|
1536
|
+
"dooh_metrics": {
|
|
1537
|
+
"type": "object",
|
|
1538
|
+
"description": "DOOH-specific metrics (only included for DOOH campaigns)",
|
|
1539
|
+
"properties": {
|
|
1540
|
+
"loop_plays": {
|
|
1541
|
+
"type": "integer",
|
|
1542
|
+
"description": "Number of times ad played in rotation",
|
|
1543
|
+
"minimum": 0
|
|
1544
|
+
},
|
|
1545
|
+
"screens_used": {
|
|
1546
|
+
"type": "integer",
|
|
1547
|
+
"description": "Number of unique screens displaying the ad",
|
|
1548
|
+
"minimum": 0
|
|
1549
|
+
},
|
|
1550
|
+
"screen_time_seconds": {
|
|
1551
|
+
"type": "integer",
|
|
1552
|
+
"description": "Total display time in seconds",
|
|
1553
|
+
"minimum": 0
|
|
1554
|
+
},
|
|
1555
|
+
"sov_achieved": {
|
|
1556
|
+
"type": "number",
|
|
1557
|
+
"description": "Actual share of voice delivered (0.0 to 1.0)",
|
|
1558
|
+
"minimum": 0,
|
|
1559
|
+
"maximum": 1
|
|
1560
|
+
},
|
|
1561
|
+
"calculation_notes": {
|
|
1562
|
+
"type": "string",
|
|
1563
|
+
"description": "Explanation of how DOOH impressions were calculated"
|
|
1564
|
+
},
|
|
1565
|
+
"venue_breakdown": {
|
|
1566
|
+
"type": "array",
|
|
1567
|
+
"description": "Per-venue performance breakdown",
|
|
1568
|
+
"items": {
|
|
1569
|
+
"type": "object",
|
|
1570
|
+
"properties": {
|
|
1571
|
+
"venue_id": {
|
|
1572
|
+
"type": "string",
|
|
1573
|
+
"description": "Venue identifier"
|
|
1574
|
+
},
|
|
1575
|
+
"venue_name": {
|
|
1576
|
+
"type": "string",
|
|
1577
|
+
"description": "Human-readable venue name"
|
|
1578
|
+
},
|
|
1579
|
+
"venue_type": {
|
|
1580
|
+
"type": "string",
|
|
1581
|
+
"description": "Venue type (e.g., 'airport', 'transit', 'retail', 'billboard')"
|
|
1582
|
+
},
|
|
1583
|
+
"impressions": {
|
|
1584
|
+
"type": "integer",
|
|
1585
|
+
"description": "Impressions delivered at this venue",
|
|
1586
|
+
"minimum": 0
|
|
1587
|
+
},
|
|
1588
|
+
"loop_plays": {
|
|
1589
|
+
"type": "integer",
|
|
1590
|
+
"description": "Loop plays at this venue",
|
|
1591
|
+
"minimum": 0
|
|
1592
|
+
},
|
|
1593
|
+
"screens_used": {
|
|
1594
|
+
"type": "integer",
|
|
1595
|
+
"description": "Number of screens used at this venue",
|
|
1596
|
+
"minimum": 0
|
|
1597
|
+
}
|
|
1598
|
+
},
|
|
1599
|
+
"required": [
|
|
1600
|
+
"venue_id",
|
|
1601
|
+
"impressions"
|
|
1602
|
+
],
|
|
1603
|
+
"additionalProperties": true
|
|
1604
|
+
}
|
|
1605
|
+
}
|
|
1606
|
+
},
|
|
1607
|
+
"additionalProperties": true
|
|
1608
|
+
},
|
|
1609
|
+
"viewability": {
|
|
1610
|
+
"type": "object",
|
|
1611
|
+
"description": "Viewability metrics. Viewable rate should be calculated as viewable_impressions / measurable_impressions (not total impressions), since some environments cannot measure viewability.",
|
|
1612
|
+
"properties": {
|
|
1613
|
+
"measurable_impressions": {
|
|
1614
|
+
"type": "number",
|
|
1615
|
+
"description": "Impressions where viewability could be measured. Excludes environments without measurement capability (e.g., non-Intersection Observer browsers, certain app environments).",
|
|
1616
|
+
"minimum": 0
|
|
1617
|
+
},
|
|
1618
|
+
"viewable_impressions": {
|
|
1619
|
+
"type": "number",
|
|
1620
|
+
"description": "Impressions that met the viewability threshold defined by the measurement standard.",
|
|
1621
|
+
"minimum": 0
|
|
1622
|
+
},
|
|
1623
|
+
"viewable_rate": {
|
|
1624
|
+
"type": "number",
|
|
1625
|
+
"description": "Viewable impression rate (viewable_impressions / measurable_impressions). Range 0.0 to 1.0.",
|
|
1626
|
+
"minimum": 0,
|
|
1627
|
+
"maximum": 1
|
|
1628
|
+
},
|
|
1629
|
+
"standard": {
|
|
1630
|
+
"$ref": "#/$defs/ViewabilityStandard"
|
|
1631
|
+
}
|
|
1632
|
+
},
|
|
1633
|
+
"additionalProperties": true
|
|
1634
|
+
},
|
|
1635
|
+
"engagements": {
|
|
1636
|
+
"type": "number",
|
|
1637
|
+
"description": "Total engagements — direct interactions with the ad beyond viewing. Includes social reactions/comments/shares, story/unit opens, interactive overlay taps on CTV, companion banner interactions on audio. Platform-specific; corresponds to the 'engagements' optimization metric.",
|
|
1638
|
+
"minimum": 0
|
|
1639
|
+
},
|
|
1640
|
+
"follows": {
|
|
1641
|
+
"type": "number",
|
|
1642
|
+
"description": "New followers, page likes, artist/podcast/channel subscribes attributed to this delivery.",
|
|
1643
|
+
"minimum": 0
|
|
1644
|
+
},
|
|
1645
|
+
"saves": {
|
|
1646
|
+
"type": "number",
|
|
1647
|
+
"description": "Saves, bookmarks, playlist adds, pins attributed to this delivery.",
|
|
1648
|
+
"minimum": 0
|
|
1649
|
+
},
|
|
1650
|
+
"profile_visits": {
|
|
1651
|
+
"type": "number",
|
|
1652
|
+
"description": "Visits to the brand's in-platform page (profile, artist page, channel, or storefront) attributed to this delivery. Does not include external website clicks.",
|
|
1653
|
+
"minimum": 0
|
|
1654
|
+
},
|
|
1655
|
+
"engagement_rate": {
|
|
1656
|
+
"type": "number",
|
|
1657
|
+
"description": "Platform-specific engagement rate (0.0 to 1.0). Typically engagements/impressions, but definition varies by platform.",
|
|
1658
|
+
"minimum": 0,
|
|
1659
|
+
"maximum": 1
|
|
1660
|
+
},
|
|
1661
|
+
"cost_per_click": {
|
|
1662
|
+
"type": "number",
|
|
1663
|
+
"description": "Cost per click (spend / clicks)",
|
|
1664
|
+
"minimum": 0
|
|
1665
|
+
},
|
|
1666
|
+
"by_action_source": {
|
|
1667
|
+
"type": "array",
|
|
1668
|
+
"description": "Conversion metrics broken down by action source (website, app, in_store, etc.). Useful for omnichannel sellers where conversions occur across digital and physical channels.",
|
|
1669
|
+
"items": {
|
|
1670
|
+
"type": "object",
|
|
1671
|
+
"properties": {
|
|
1672
|
+
"action_source": {
|
|
1673
|
+
"$ref": "#/$defs/ActionSource"
|
|
1674
|
+
},
|
|
1675
|
+
"event_source_id": {
|
|
1676
|
+
"type": "string",
|
|
1677
|
+
"description": "Event source that produced these conversions (for disambiguation when multiple event sources are configured)"
|
|
1678
|
+
},
|
|
1679
|
+
"count": {
|
|
1680
|
+
"type": "number",
|
|
1681
|
+
"description": "Number of conversions from this action source",
|
|
1682
|
+
"minimum": 0
|
|
1683
|
+
},
|
|
1684
|
+
"value": {
|
|
1685
|
+
"type": "number",
|
|
1686
|
+
"description": "Total monetary value of conversions from this action source",
|
|
1687
|
+
"minimum": 0
|
|
1688
|
+
}
|
|
1689
|
+
},
|
|
1690
|
+
"required": [
|
|
1691
|
+
"action_source",
|
|
1692
|
+
"count"
|
|
1693
|
+
],
|
|
1694
|
+
"additionalProperties": true
|
|
1695
|
+
}
|
|
1696
|
+
}
|
|
1697
|
+
},
|
|
1698
|
+
"dependencies": {
|
|
1699
|
+
"reach": [
|
|
1700
|
+
"reach_unit"
|
|
1701
|
+
]
|
|
1702
|
+
},
|
|
1703
|
+
"additionalProperties": true
|
|
1704
|
+
},
|
|
1705
|
+
{
|
|
1706
|
+
"type": "object",
|
|
1707
|
+
"properties": {
|
|
1708
|
+
"creative_id": {
|
|
1709
|
+
"type": "string",
|
|
1710
|
+
"description": "Creative identifier matching the creative assignment",
|
|
1711
|
+
"x-entity": "creative"
|
|
1712
|
+
},
|
|
1713
|
+
"weight": {
|
|
1714
|
+
"type": "number",
|
|
1715
|
+
"description": "Observed delivery share for this creative within the package during the reporting period, expressed as a percentage (0-100). Reflects actual delivery distribution, not a configured setting.",
|
|
1716
|
+
"minimum": 0,
|
|
1717
|
+
"maximum": 100
|
|
1718
|
+
}
|
|
1719
|
+
},
|
|
1720
|
+
"required": [
|
|
1721
|
+
"creative_id",
|
|
1722
|
+
"impressions",
|
|
1723
|
+
"spend"
|
|
1724
|
+
]
|
|
1725
|
+
}
|
|
1726
|
+
]
|
|
1727
|
+
}
|
|
1728
|
+
},
|
|
1729
|
+
"by_keyword": {
|
|
1730
|
+
"type": "array",
|
|
1731
|
+
"description": "Metrics broken down by keyword within this package. One row per (keyword, match_type) pair — the same keyword with different match types appears as separate rows. Keyword-grain only: rows reflect aggregate performance of each targeted keyword, not individual search queries. Rows may not sum to package totals when a single impression is attributed to the triggering keyword only. Available for search and retail media packages when the seller supports keyword-level reporting.",
|
|
1732
|
+
"items": {
|
|
1733
|
+
"allOf": [
|
|
1734
|
+
{
|
|
1735
|
+
"title": "Delivery Metrics",
|
|
1736
|
+
"description": "Standard delivery metrics that can be reported at media buy, package, or creative level",
|
|
1737
|
+
"type": "object",
|
|
1738
|
+
"properties": {
|
|
1739
|
+
"impressions": {
|
|
1740
|
+
"type": "number",
|
|
1741
|
+
"description": "Impressions delivered",
|
|
1742
|
+
"minimum": 0
|
|
1743
|
+
},
|
|
1744
|
+
"spend": {
|
|
1745
|
+
"type": "number",
|
|
1746
|
+
"description": "Amount spent",
|
|
1747
|
+
"minimum": 0
|
|
1748
|
+
},
|
|
1749
|
+
"clicks": {
|
|
1750
|
+
"type": "number",
|
|
1751
|
+
"description": "Total clicks",
|
|
1752
|
+
"minimum": 0
|
|
1753
|
+
},
|
|
1754
|
+
"ctr": {
|
|
1755
|
+
"type": "number",
|
|
1756
|
+
"description": "Click-through rate (clicks/impressions)",
|
|
1757
|
+
"minimum": 0,
|
|
1758
|
+
"maximum": 1
|
|
1759
|
+
},
|
|
1760
|
+
"views": {
|
|
1761
|
+
"type": "number",
|
|
1762
|
+
"description": "Content engagements counted toward the billable view threshold. For video this is a platform-defined view event (e.g., 30 seconds or video midpoint); for audio/podcast it is a stream start; for other formats it follows the pricing model's view definition. When the package uses CPV pricing, spend = views × rate.",
|
|
1763
|
+
"minimum": 0
|
|
1764
|
+
},
|
|
1765
|
+
"completed_views": {
|
|
1766
|
+
"type": "number",
|
|
1767
|
+
"description": "Video/audio completions. When the package has a completed_views optimization goal with view_duration_seconds, completions are counted at that threshold rather than 100% completion.",
|
|
1768
|
+
"minimum": 0
|
|
1769
|
+
},
|
|
1770
|
+
"completion_rate": {
|
|
1771
|
+
"type": "number",
|
|
1772
|
+
"description": "Completion rate (completed_views/impressions)",
|
|
1773
|
+
"minimum": 0,
|
|
1774
|
+
"maximum": 1
|
|
1775
|
+
},
|
|
1776
|
+
"conversions": {
|
|
1777
|
+
"type": "number",
|
|
1778
|
+
"description": "Total conversions attributed to this delivery. When by_event_type is present, this equals the sum of all by_event_type[].count entries.",
|
|
1779
|
+
"minimum": 0
|
|
1780
|
+
},
|
|
1781
|
+
"conversion_value": {
|
|
1782
|
+
"type": "number",
|
|
1783
|
+
"description": "Total monetary value of attributed conversions (in the reporting currency)",
|
|
1784
|
+
"minimum": 0
|
|
1785
|
+
},
|
|
1786
|
+
"roas": {
|
|
1787
|
+
"type": "number",
|
|
1788
|
+
"description": "Return on ad spend (conversion_value / spend)",
|
|
1789
|
+
"minimum": 0
|
|
1790
|
+
},
|
|
1791
|
+
"cost_per_acquisition": {
|
|
1792
|
+
"type": "number",
|
|
1793
|
+
"description": "Cost per conversion (spend / conversions)",
|
|
1794
|
+
"minimum": 0
|
|
1795
|
+
},
|
|
1796
|
+
"new_to_brand_rate": {
|
|
1797
|
+
"type": "number",
|
|
1798
|
+
"description": "Fraction of conversions from first-time brand buyers (0 = none, 1 = all)",
|
|
1799
|
+
"minimum": 0,
|
|
1800
|
+
"maximum": 1
|
|
1801
|
+
},
|
|
1802
|
+
"leads": {
|
|
1803
|
+
"type": "number",
|
|
1804
|
+
"description": "Leads generated (convenience alias for by_event_type where event_type='lead')",
|
|
1805
|
+
"minimum": 0
|
|
1806
|
+
},
|
|
1807
|
+
"by_event_type": {
|
|
1808
|
+
"type": "array",
|
|
1809
|
+
"description": "Conversion metrics broken down by event type. Spend-derived metrics (ROAS, CPA) are only available at the package/totals level since spend cannot be attributed to individual event types.",
|
|
1810
|
+
"items": {
|
|
1811
|
+
"type": "object",
|
|
1812
|
+
"properties": {
|
|
1813
|
+
"event_type": {
|
|
1814
|
+
"$ref": "#/$defs/EventType"
|
|
1815
|
+
},
|
|
1816
|
+
"event_source_id": {
|
|
1817
|
+
"type": "string",
|
|
1818
|
+
"description": "Event source that produced these conversions (for disambiguation when multiple event sources are configured)"
|
|
1819
|
+
},
|
|
1820
|
+
"count": {
|
|
1821
|
+
"type": "number",
|
|
1822
|
+
"description": "Number of events of this type",
|
|
1823
|
+
"minimum": 0
|
|
1824
|
+
},
|
|
1825
|
+
"value": {
|
|
1826
|
+
"type": "number",
|
|
1827
|
+
"description": "Total monetary value of events of this type",
|
|
1828
|
+
"minimum": 0
|
|
1829
|
+
}
|
|
1830
|
+
},
|
|
1831
|
+
"required": [
|
|
1832
|
+
"event_type",
|
|
1833
|
+
"count"
|
|
1834
|
+
],
|
|
1835
|
+
"additionalProperties": true
|
|
1836
|
+
}
|
|
1837
|
+
},
|
|
1838
|
+
"grps": {
|
|
1839
|
+
"type": "number",
|
|
1840
|
+
"description": "Gross Rating Points delivered (for CPP)",
|
|
1841
|
+
"minimum": 0
|
|
1842
|
+
},
|
|
1843
|
+
"reach": {
|
|
1844
|
+
"type": "number",
|
|
1845
|
+
"description": "Unique reach in the units specified by reach_unit. When reach_unit is omitted, units are unspecified — do not compare reach values across packages or media buys without a common reach_unit.",
|
|
1846
|
+
"minimum": 0
|
|
1847
|
+
},
|
|
1848
|
+
"reach_unit": {
|
|
1849
|
+
"allOf": [
|
|
1850
|
+
{
|
|
1851
|
+
"$ref": "#/$defs/ReachUnit"
|
|
1852
|
+
}
|
|
1853
|
+
],
|
|
1854
|
+
"description": "Unit of measurement for the reach field. Aligns with the reach_unit declared on optimization goals and delivery forecasts. Required when reach is present to enable cross-platform comparison."
|
|
1855
|
+
},
|
|
1856
|
+
"frequency": {
|
|
1857
|
+
"type": "number",
|
|
1858
|
+
"description": "Average frequency per reach unit (typically measured over campaign duration, but can vary by measurement provider). When reach_unit is 'households', this is average exposures per household; when 'accounts', per logged-in account; etc.",
|
|
1859
|
+
"minimum": 0
|
|
1860
|
+
},
|
|
1861
|
+
"quartile_data": {
|
|
1862
|
+
"type": "object",
|
|
1863
|
+
"description": "Audio/video quartile completion data",
|
|
1864
|
+
"properties": {
|
|
1865
|
+
"q1_views": {
|
|
1866
|
+
"type": "number",
|
|
1867
|
+
"description": "25% completion views",
|
|
1868
|
+
"minimum": 0
|
|
1869
|
+
},
|
|
1870
|
+
"q2_views": {
|
|
1871
|
+
"type": "number",
|
|
1872
|
+
"description": "50% completion views",
|
|
1873
|
+
"minimum": 0
|
|
1874
|
+
},
|
|
1875
|
+
"q3_views": {
|
|
1876
|
+
"type": "number",
|
|
1877
|
+
"description": "75% completion views",
|
|
1878
|
+
"minimum": 0
|
|
1879
|
+
},
|
|
1880
|
+
"q4_views": {
|
|
1881
|
+
"type": "number",
|
|
1882
|
+
"description": "100% completion views",
|
|
1883
|
+
"minimum": 0
|
|
1884
|
+
}
|
|
1885
|
+
}
|
|
1886
|
+
},
|
|
1887
|
+
"dooh_metrics": {
|
|
1888
|
+
"type": "object",
|
|
1889
|
+
"description": "DOOH-specific metrics (only included for DOOH campaigns)",
|
|
1890
|
+
"properties": {
|
|
1891
|
+
"loop_plays": {
|
|
1892
|
+
"type": "integer",
|
|
1893
|
+
"description": "Number of times ad played in rotation",
|
|
1894
|
+
"minimum": 0
|
|
1895
|
+
},
|
|
1896
|
+
"screens_used": {
|
|
1897
|
+
"type": "integer",
|
|
1898
|
+
"description": "Number of unique screens displaying the ad",
|
|
1899
|
+
"minimum": 0
|
|
1900
|
+
},
|
|
1901
|
+
"screen_time_seconds": {
|
|
1902
|
+
"type": "integer",
|
|
1903
|
+
"description": "Total display time in seconds",
|
|
1904
|
+
"minimum": 0
|
|
1905
|
+
},
|
|
1906
|
+
"sov_achieved": {
|
|
1907
|
+
"type": "number",
|
|
1908
|
+
"description": "Actual share of voice delivered (0.0 to 1.0)",
|
|
1909
|
+
"minimum": 0,
|
|
1910
|
+
"maximum": 1
|
|
1911
|
+
},
|
|
1912
|
+
"calculation_notes": {
|
|
1913
|
+
"type": "string",
|
|
1914
|
+
"description": "Explanation of how DOOH impressions were calculated"
|
|
1915
|
+
},
|
|
1916
|
+
"venue_breakdown": {
|
|
1917
|
+
"type": "array",
|
|
1918
|
+
"description": "Per-venue performance breakdown",
|
|
1919
|
+
"items": {
|
|
1920
|
+
"type": "object",
|
|
1921
|
+
"properties": {
|
|
1922
|
+
"venue_id": {
|
|
1923
|
+
"type": "string",
|
|
1924
|
+
"description": "Venue identifier"
|
|
1925
|
+
},
|
|
1926
|
+
"venue_name": {
|
|
1927
|
+
"type": "string",
|
|
1928
|
+
"description": "Human-readable venue name"
|
|
1929
|
+
},
|
|
1930
|
+
"venue_type": {
|
|
1931
|
+
"type": "string",
|
|
1932
|
+
"description": "Venue type (e.g., 'airport', 'transit', 'retail', 'billboard')"
|
|
1933
|
+
},
|
|
1934
|
+
"impressions": {
|
|
1935
|
+
"type": "integer",
|
|
1936
|
+
"description": "Impressions delivered at this venue",
|
|
1937
|
+
"minimum": 0
|
|
1938
|
+
},
|
|
1939
|
+
"loop_plays": {
|
|
1940
|
+
"type": "integer",
|
|
1941
|
+
"description": "Loop plays at this venue",
|
|
1942
|
+
"minimum": 0
|
|
1943
|
+
},
|
|
1944
|
+
"screens_used": {
|
|
1945
|
+
"type": "integer",
|
|
1946
|
+
"description": "Number of screens used at this venue",
|
|
1947
|
+
"minimum": 0
|
|
1948
|
+
}
|
|
1949
|
+
},
|
|
1950
|
+
"required": [
|
|
1951
|
+
"venue_id",
|
|
1952
|
+
"impressions"
|
|
1953
|
+
],
|
|
1954
|
+
"additionalProperties": true
|
|
1955
|
+
}
|
|
1956
|
+
}
|
|
1957
|
+
},
|
|
1958
|
+
"additionalProperties": true
|
|
1959
|
+
},
|
|
1960
|
+
"viewability": {
|
|
1961
|
+
"type": "object",
|
|
1962
|
+
"description": "Viewability metrics. Viewable rate should be calculated as viewable_impressions / measurable_impressions (not total impressions), since some environments cannot measure viewability.",
|
|
1963
|
+
"properties": {
|
|
1964
|
+
"measurable_impressions": {
|
|
1965
|
+
"type": "number",
|
|
1966
|
+
"description": "Impressions where viewability could be measured. Excludes environments without measurement capability (e.g., non-Intersection Observer browsers, certain app environments).",
|
|
1967
|
+
"minimum": 0
|
|
1968
|
+
},
|
|
1969
|
+
"viewable_impressions": {
|
|
1970
|
+
"type": "number",
|
|
1971
|
+
"description": "Impressions that met the viewability threshold defined by the measurement standard.",
|
|
1972
|
+
"minimum": 0
|
|
1973
|
+
},
|
|
1974
|
+
"viewable_rate": {
|
|
1975
|
+
"type": "number",
|
|
1976
|
+
"description": "Viewable impression rate (viewable_impressions / measurable_impressions). Range 0.0 to 1.0.",
|
|
1977
|
+
"minimum": 0,
|
|
1978
|
+
"maximum": 1
|
|
1979
|
+
},
|
|
1980
|
+
"standard": {
|
|
1981
|
+
"$ref": "#/$defs/ViewabilityStandard"
|
|
1982
|
+
}
|
|
1983
|
+
},
|
|
1984
|
+
"additionalProperties": true
|
|
1985
|
+
},
|
|
1986
|
+
"engagements": {
|
|
1987
|
+
"type": "number",
|
|
1988
|
+
"description": "Total engagements — direct interactions with the ad beyond viewing. Includes social reactions/comments/shares, story/unit opens, interactive overlay taps on CTV, companion banner interactions on audio. Platform-specific; corresponds to the 'engagements' optimization metric.",
|
|
1989
|
+
"minimum": 0
|
|
1990
|
+
},
|
|
1991
|
+
"follows": {
|
|
1992
|
+
"type": "number",
|
|
1993
|
+
"description": "New followers, page likes, artist/podcast/channel subscribes attributed to this delivery.",
|
|
1994
|
+
"minimum": 0
|
|
1995
|
+
},
|
|
1996
|
+
"saves": {
|
|
1997
|
+
"type": "number",
|
|
1998
|
+
"description": "Saves, bookmarks, playlist adds, pins attributed to this delivery.",
|
|
1999
|
+
"minimum": 0
|
|
2000
|
+
},
|
|
2001
|
+
"profile_visits": {
|
|
2002
|
+
"type": "number",
|
|
2003
|
+
"description": "Visits to the brand's in-platform page (profile, artist page, channel, or storefront) attributed to this delivery. Does not include external website clicks.",
|
|
2004
|
+
"minimum": 0
|
|
2005
|
+
},
|
|
2006
|
+
"engagement_rate": {
|
|
2007
|
+
"type": "number",
|
|
2008
|
+
"description": "Platform-specific engagement rate (0.0 to 1.0). Typically engagements/impressions, but definition varies by platform.",
|
|
2009
|
+
"minimum": 0,
|
|
2010
|
+
"maximum": 1
|
|
2011
|
+
},
|
|
2012
|
+
"cost_per_click": {
|
|
2013
|
+
"type": "number",
|
|
2014
|
+
"description": "Cost per click (spend / clicks)",
|
|
2015
|
+
"minimum": 0
|
|
2016
|
+
},
|
|
2017
|
+
"by_action_source": {
|
|
2018
|
+
"type": "array",
|
|
2019
|
+
"description": "Conversion metrics broken down by action source (website, app, in_store, etc.). Useful for omnichannel sellers where conversions occur across digital and physical channels.",
|
|
2020
|
+
"items": {
|
|
2021
|
+
"type": "object",
|
|
2022
|
+
"properties": {
|
|
2023
|
+
"action_source": {
|
|
2024
|
+
"$ref": "#/$defs/ActionSource"
|
|
2025
|
+
},
|
|
2026
|
+
"event_source_id": {
|
|
2027
|
+
"type": "string",
|
|
2028
|
+
"description": "Event source that produced these conversions (for disambiguation when multiple event sources are configured)"
|
|
2029
|
+
},
|
|
2030
|
+
"count": {
|
|
2031
|
+
"type": "number",
|
|
2032
|
+
"description": "Number of conversions from this action source",
|
|
2033
|
+
"minimum": 0
|
|
2034
|
+
},
|
|
2035
|
+
"value": {
|
|
2036
|
+
"type": "number",
|
|
2037
|
+
"description": "Total monetary value of conversions from this action source",
|
|
2038
|
+
"minimum": 0
|
|
2039
|
+
}
|
|
2040
|
+
},
|
|
2041
|
+
"required": [
|
|
2042
|
+
"action_source",
|
|
2043
|
+
"count"
|
|
2044
|
+
],
|
|
2045
|
+
"additionalProperties": true
|
|
2046
|
+
}
|
|
2047
|
+
}
|
|
2048
|
+
},
|
|
2049
|
+
"dependencies": {
|
|
2050
|
+
"reach": [
|
|
2051
|
+
"reach_unit"
|
|
2052
|
+
]
|
|
2053
|
+
},
|
|
2054
|
+
"additionalProperties": true
|
|
2055
|
+
},
|
|
2056
|
+
{
|
|
2057
|
+
"type": "object",
|
|
2058
|
+
"properties": {
|
|
2059
|
+
"keyword": {
|
|
2060
|
+
"type": "string",
|
|
2061
|
+
"description": "The targeted keyword"
|
|
2062
|
+
},
|
|
2063
|
+
"match_type": {
|
|
2064
|
+
"title": "Match Type",
|
|
2065
|
+
"description": "Keyword targeting match type. broad: ads may serve on queries semantically related to the keyword. phrase: ads serve when the query contains the keyword phrase. exact: ads serve only when the query matches the keyword exactly.",
|
|
2066
|
+
"type": "string",
|
|
2067
|
+
"enum": [
|
|
2068
|
+
"broad",
|
|
2069
|
+
"phrase",
|
|
2070
|
+
"exact"
|
|
2071
|
+
],
|
|
2072
|
+
"enumDescriptions": {
|
|
2073
|
+
"broad": "Ads may serve on queries semantically related to the keyword",
|
|
2074
|
+
"phrase": "Ads serve when the query contains the keyword phrase in order",
|
|
2075
|
+
"exact": "Ads serve only when the query matches the keyword exactly"
|
|
2076
|
+
}
|
|
2077
|
+
}
|
|
2078
|
+
},
|
|
2079
|
+
"required": [
|
|
2080
|
+
"keyword",
|
|
2081
|
+
"match_type",
|
|
2082
|
+
"impressions",
|
|
2083
|
+
"spend"
|
|
2084
|
+
]
|
|
2085
|
+
}
|
|
2086
|
+
]
|
|
2087
|
+
}
|
|
2088
|
+
},
|
|
2089
|
+
"by_geo": {
|
|
2090
|
+
"type": "array",
|
|
2091
|
+
"description": "Delivery by geographic area within this package. Available when the buyer requests geo breakdown via reporting_dimensions and the seller supports it. Each dimension's rows are independent slices that should sum to the package total.",
|
|
2092
|
+
"items": {
|
|
2093
|
+
"allOf": [
|
|
2094
|
+
{
|
|
2095
|
+
"title": "Delivery Metrics",
|
|
2096
|
+
"description": "Standard delivery metrics that can be reported at media buy, package, or creative level",
|
|
2097
|
+
"type": "object",
|
|
2098
|
+
"properties": {
|
|
2099
|
+
"impressions": {
|
|
2100
|
+
"type": "number",
|
|
2101
|
+
"description": "Impressions delivered",
|
|
2102
|
+
"minimum": 0
|
|
2103
|
+
},
|
|
2104
|
+
"spend": {
|
|
2105
|
+
"type": "number",
|
|
2106
|
+
"description": "Amount spent",
|
|
2107
|
+
"minimum": 0
|
|
2108
|
+
},
|
|
2109
|
+
"clicks": {
|
|
2110
|
+
"type": "number",
|
|
2111
|
+
"description": "Total clicks",
|
|
2112
|
+
"minimum": 0
|
|
2113
|
+
},
|
|
2114
|
+
"ctr": {
|
|
2115
|
+
"type": "number",
|
|
2116
|
+
"description": "Click-through rate (clicks/impressions)",
|
|
2117
|
+
"minimum": 0,
|
|
2118
|
+
"maximum": 1
|
|
2119
|
+
},
|
|
2120
|
+
"views": {
|
|
2121
|
+
"type": "number",
|
|
2122
|
+
"description": "Content engagements counted toward the billable view threshold. For video this is a platform-defined view event (e.g., 30 seconds or video midpoint); for audio/podcast it is a stream start; for other formats it follows the pricing model's view definition. When the package uses CPV pricing, spend = views × rate.",
|
|
2123
|
+
"minimum": 0
|
|
2124
|
+
},
|
|
2125
|
+
"completed_views": {
|
|
2126
|
+
"type": "number",
|
|
2127
|
+
"description": "Video/audio completions. When the package has a completed_views optimization goal with view_duration_seconds, completions are counted at that threshold rather than 100% completion.",
|
|
2128
|
+
"minimum": 0
|
|
2129
|
+
},
|
|
2130
|
+
"completion_rate": {
|
|
2131
|
+
"type": "number",
|
|
2132
|
+
"description": "Completion rate (completed_views/impressions)",
|
|
2133
|
+
"minimum": 0,
|
|
2134
|
+
"maximum": 1
|
|
2135
|
+
},
|
|
2136
|
+
"conversions": {
|
|
2137
|
+
"type": "number",
|
|
2138
|
+
"description": "Total conversions attributed to this delivery. When by_event_type is present, this equals the sum of all by_event_type[].count entries.",
|
|
2139
|
+
"minimum": 0
|
|
2140
|
+
},
|
|
2141
|
+
"conversion_value": {
|
|
2142
|
+
"type": "number",
|
|
2143
|
+
"description": "Total monetary value of attributed conversions (in the reporting currency)",
|
|
2144
|
+
"minimum": 0
|
|
2145
|
+
},
|
|
2146
|
+
"roas": {
|
|
2147
|
+
"type": "number",
|
|
2148
|
+
"description": "Return on ad spend (conversion_value / spend)",
|
|
2149
|
+
"minimum": 0
|
|
2150
|
+
},
|
|
2151
|
+
"cost_per_acquisition": {
|
|
2152
|
+
"type": "number",
|
|
2153
|
+
"description": "Cost per conversion (spend / conversions)",
|
|
2154
|
+
"minimum": 0
|
|
2155
|
+
},
|
|
2156
|
+
"new_to_brand_rate": {
|
|
2157
|
+
"type": "number",
|
|
2158
|
+
"description": "Fraction of conversions from first-time brand buyers (0 = none, 1 = all)",
|
|
2159
|
+
"minimum": 0,
|
|
2160
|
+
"maximum": 1
|
|
2161
|
+
},
|
|
2162
|
+
"leads": {
|
|
2163
|
+
"type": "number",
|
|
2164
|
+
"description": "Leads generated (convenience alias for by_event_type where event_type='lead')",
|
|
2165
|
+
"minimum": 0
|
|
2166
|
+
},
|
|
2167
|
+
"by_event_type": {
|
|
2168
|
+
"type": "array",
|
|
2169
|
+
"description": "Conversion metrics broken down by event type. Spend-derived metrics (ROAS, CPA) are only available at the package/totals level since spend cannot be attributed to individual event types.",
|
|
2170
|
+
"items": {
|
|
2171
|
+
"type": "object",
|
|
2172
|
+
"properties": {
|
|
2173
|
+
"event_type": {
|
|
2174
|
+
"$ref": "#/$defs/EventType"
|
|
2175
|
+
},
|
|
2176
|
+
"event_source_id": {
|
|
2177
|
+
"type": "string",
|
|
2178
|
+
"description": "Event source that produced these conversions (for disambiguation when multiple event sources are configured)"
|
|
2179
|
+
},
|
|
2180
|
+
"count": {
|
|
2181
|
+
"type": "number",
|
|
2182
|
+
"description": "Number of events of this type",
|
|
2183
|
+
"minimum": 0
|
|
2184
|
+
},
|
|
2185
|
+
"value": {
|
|
2186
|
+
"type": "number",
|
|
2187
|
+
"description": "Total monetary value of events of this type",
|
|
2188
|
+
"minimum": 0
|
|
2189
|
+
}
|
|
2190
|
+
},
|
|
2191
|
+
"required": [
|
|
2192
|
+
"event_type",
|
|
2193
|
+
"count"
|
|
2194
|
+
],
|
|
2195
|
+
"additionalProperties": true
|
|
2196
|
+
}
|
|
2197
|
+
},
|
|
2198
|
+
"grps": {
|
|
2199
|
+
"type": "number",
|
|
2200
|
+
"description": "Gross Rating Points delivered (for CPP)",
|
|
2201
|
+
"minimum": 0
|
|
2202
|
+
},
|
|
2203
|
+
"reach": {
|
|
2204
|
+
"type": "number",
|
|
2205
|
+
"description": "Unique reach in the units specified by reach_unit. When reach_unit is omitted, units are unspecified — do not compare reach values across packages or media buys without a common reach_unit.",
|
|
2206
|
+
"minimum": 0
|
|
2207
|
+
},
|
|
2208
|
+
"reach_unit": {
|
|
2209
|
+
"allOf": [
|
|
2210
|
+
{
|
|
2211
|
+
"$ref": "#/$defs/ReachUnit"
|
|
2212
|
+
}
|
|
2213
|
+
],
|
|
2214
|
+
"description": "Unit of measurement for the reach field. Aligns with the reach_unit declared on optimization goals and delivery forecasts. Required when reach is present to enable cross-platform comparison."
|
|
2215
|
+
},
|
|
2216
|
+
"frequency": {
|
|
2217
|
+
"type": "number",
|
|
2218
|
+
"description": "Average frequency per reach unit (typically measured over campaign duration, but can vary by measurement provider). When reach_unit is 'households', this is average exposures per household; when 'accounts', per logged-in account; etc.",
|
|
2219
|
+
"minimum": 0
|
|
2220
|
+
},
|
|
2221
|
+
"quartile_data": {
|
|
2222
|
+
"type": "object",
|
|
2223
|
+
"description": "Audio/video quartile completion data",
|
|
2224
|
+
"properties": {
|
|
2225
|
+
"q1_views": {
|
|
2226
|
+
"type": "number",
|
|
2227
|
+
"description": "25% completion views",
|
|
2228
|
+
"minimum": 0
|
|
2229
|
+
},
|
|
2230
|
+
"q2_views": {
|
|
2231
|
+
"type": "number",
|
|
2232
|
+
"description": "50% completion views",
|
|
2233
|
+
"minimum": 0
|
|
2234
|
+
},
|
|
2235
|
+
"q3_views": {
|
|
2236
|
+
"type": "number",
|
|
2237
|
+
"description": "75% completion views",
|
|
2238
|
+
"minimum": 0
|
|
2239
|
+
},
|
|
2240
|
+
"q4_views": {
|
|
2241
|
+
"type": "number",
|
|
2242
|
+
"description": "100% completion views",
|
|
2243
|
+
"minimum": 0
|
|
2244
|
+
}
|
|
2245
|
+
}
|
|
2246
|
+
},
|
|
2247
|
+
"dooh_metrics": {
|
|
2248
|
+
"type": "object",
|
|
2249
|
+
"description": "DOOH-specific metrics (only included for DOOH campaigns)",
|
|
2250
|
+
"properties": {
|
|
2251
|
+
"loop_plays": {
|
|
2252
|
+
"type": "integer",
|
|
2253
|
+
"description": "Number of times ad played in rotation",
|
|
2254
|
+
"minimum": 0
|
|
2255
|
+
},
|
|
2256
|
+
"screens_used": {
|
|
2257
|
+
"type": "integer",
|
|
2258
|
+
"description": "Number of unique screens displaying the ad",
|
|
2259
|
+
"minimum": 0
|
|
2260
|
+
},
|
|
2261
|
+
"screen_time_seconds": {
|
|
2262
|
+
"type": "integer",
|
|
2263
|
+
"description": "Total display time in seconds",
|
|
2264
|
+
"minimum": 0
|
|
2265
|
+
},
|
|
2266
|
+
"sov_achieved": {
|
|
2267
|
+
"type": "number",
|
|
2268
|
+
"description": "Actual share of voice delivered (0.0 to 1.0)",
|
|
2269
|
+
"minimum": 0,
|
|
2270
|
+
"maximum": 1
|
|
2271
|
+
},
|
|
2272
|
+
"calculation_notes": {
|
|
2273
|
+
"type": "string",
|
|
2274
|
+
"description": "Explanation of how DOOH impressions were calculated"
|
|
2275
|
+
},
|
|
2276
|
+
"venue_breakdown": {
|
|
2277
|
+
"type": "array",
|
|
2278
|
+
"description": "Per-venue performance breakdown",
|
|
2279
|
+
"items": {
|
|
2280
|
+
"type": "object",
|
|
2281
|
+
"properties": {
|
|
2282
|
+
"venue_id": {
|
|
2283
|
+
"type": "string",
|
|
2284
|
+
"description": "Venue identifier"
|
|
2285
|
+
},
|
|
2286
|
+
"venue_name": {
|
|
2287
|
+
"type": "string",
|
|
2288
|
+
"description": "Human-readable venue name"
|
|
2289
|
+
},
|
|
2290
|
+
"venue_type": {
|
|
2291
|
+
"type": "string",
|
|
2292
|
+
"description": "Venue type (e.g., 'airport', 'transit', 'retail', 'billboard')"
|
|
2293
|
+
},
|
|
2294
|
+
"impressions": {
|
|
2295
|
+
"type": "integer",
|
|
2296
|
+
"description": "Impressions delivered at this venue",
|
|
2297
|
+
"minimum": 0
|
|
2298
|
+
},
|
|
2299
|
+
"loop_plays": {
|
|
2300
|
+
"type": "integer",
|
|
2301
|
+
"description": "Loop plays at this venue",
|
|
2302
|
+
"minimum": 0
|
|
2303
|
+
},
|
|
2304
|
+
"screens_used": {
|
|
2305
|
+
"type": "integer",
|
|
2306
|
+
"description": "Number of screens used at this venue",
|
|
2307
|
+
"minimum": 0
|
|
2308
|
+
}
|
|
2309
|
+
},
|
|
2310
|
+
"required": [
|
|
2311
|
+
"venue_id",
|
|
2312
|
+
"impressions"
|
|
2313
|
+
],
|
|
2314
|
+
"additionalProperties": true
|
|
2315
|
+
}
|
|
2316
|
+
}
|
|
2317
|
+
},
|
|
2318
|
+
"additionalProperties": true
|
|
2319
|
+
},
|
|
2320
|
+
"viewability": {
|
|
2321
|
+
"type": "object",
|
|
2322
|
+
"description": "Viewability metrics. Viewable rate should be calculated as viewable_impressions / measurable_impressions (not total impressions), since some environments cannot measure viewability.",
|
|
2323
|
+
"properties": {
|
|
2324
|
+
"measurable_impressions": {
|
|
2325
|
+
"type": "number",
|
|
2326
|
+
"description": "Impressions where viewability could be measured. Excludes environments without measurement capability (e.g., non-Intersection Observer browsers, certain app environments).",
|
|
2327
|
+
"minimum": 0
|
|
2328
|
+
},
|
|
2329
|
+
"viewable_impressions": {
|
|
2330
|
+
"type": "number",
|
|
2331
|
+
"description": "Impressions that met the viewability threshold defined by the measurement standard.",
|
|
2332
|
+
"minimum": 0
|
|
2333
|
+
},
|
|
2334
|
+
"viewable_rate": {
|
|
2335
|
+
"type": "number",
|
|
2336
|
+
"description": "Viewable impression rate (viewable_impressions / measurable_impressions). Range 0.0 to 1.0.",
|
|
2337
|
+
"minimum": 0,
|
|
2338
|
+
"maximum": 1
|
|
2339
|
+
},
|
|
2340
|
+
"standard": {
|
|
2341
|
+
"$ref": "#/$defs/ViewabilityStandard"
|
|
2342
|
+
}
|
|
2343
|
+
},
|
|
2344
|
+
"additionalProperties": true
|
|
2345
|
+
},
|
|
2346
|
+
"engagements": {
|
|
2347
|
+
"type": "number",
|
|
2348
|
+
"description": "Total engagements — direct interactions with the ad beyond viewing. Includes social reactions/comments/shares, story/unit opens, interactive overlay taps on CTV, companion banner interactions on audio. Platform-specific; corresponds to the 'engagements' optimization metric.",
|
|
2349
|
+
"minimum": 0
|
|
2350
|
+
},
|
|
2351
|
+
"follows": {
|
|
2352
|
+
"type": "number",
|
|
2353
|
+
"description": "New followers, page likes, artist/podcast/channel subscribes attributed to this delivery.",
|
|
2354
|
+
"minimum": 0
|
|
2355
|
+
},
|
|
2356
|
+
"saves": {
|
|
2357
|
+
"type": "number",
|
|
2358
|
+
"description": "Saves, bookmarks, playlist adds, pins attributed to this delivery.",
|
|
2359
|
+
"minimum": 0
|
|
2360
|
+
},
|
|
2361
|
+
"profile_visits": {
|
|
2362
|
+
"type": "number",
|
|
2363
|
+
"description": "Visits to the brand's in-platform page (profile, artist page, channel, or storefront) attributed to this delivery. Does not include external website clicks.",
|
|
2364
|
+
"minimum": 0
|
|
2365
|
+
},
|
|
2366
|
+
"engagement_rate": {
|
|
2367
|
+
"type": "number",
|
|
2368
|
+
"description": "Platform-specific engagement rate (0.0 to 1.0). Typically engagements/impressions, but definition varies by platform.",
|
|
2369
|
+
"minimum": 0,
|
|
2370
|
+
"maximum": 1
|
|
2371
|
+
},
|
|
2372
|
+
"cost_per_click": {
|
|
2373
|
+
"type": "number",
|
|
2374
|
+
"description": "Cost per click (spend / clicks)",
|
|
2375
|
+
"minimum": 0
|
|
2376
|
+
},
|
|
2377
|
+
"by_action_source": {
|
|
2378
|
+
"type": "array",
|
|
2379
|
+
"description": "Conversion metrics broken down by action source (website, app, in_store, etc.). Useful for omnichannel sellers where conversions occur across digital and physical channels.",
|
|
2380
|
+
"items": {
|
|
2381
|
+
"type": "object",
|
|
2382
|
+
"properties": {
|
|
2383
|
+
"action_source": {
|
|
2384
|
+
"$ref": "#/$defs/ActionSource"
|
|
2385
|
+
},
|
|
2386
|
+
"event_source_id": {
|
|
2387
|
+
"type": "string",
|
|
2388
|
+
"description": "Event source that produced these conversions (for disambiguation when multiple event sources are configured)"
|
|
2389
|
+
},
|
|
2390
|
+
"count": {
|
|
2391
|
+
"type": "number",
|
|
2392
|
+
"description": "Number of conversions from this action source",
|
|
2393
|
+
"minimum": 0
|
|
2394
|
+
},
|
|
2395
|
+
"value": {
|
|
2396
|
+
"type": "number",
|
|
2397
|
+
"description": "Total monetary value of conversions from this action source",
|
|
2398
|
+
"minimum": 0
|
|
2399
|
+
}
|
|
2400
|
+
},
|
|
2401
|
+
"required": [
|
|
2402
|
+
"action_source",
|
|
2403
|
+
"count"
|
|
2404
|
+
],
|
|
2405
|
+
"additionalProperties": true
|
|
2406
|
+
}
|
|
2407
|
+
}
|
|
2408
|
+
},
|
|
2409
|
+
"dependencies": {
|
|
2410
|
+
"reach": [
|
|
2411
|
+
"reach_unit"
|
|
2412
|
+
]
|
|
2413
|
+
},
|
|
2414
|
+
"additionalProperties": true
|
|
2415
|
+
},
|
|
2416
|
+
{
|
|
2417
|
+
"type": "object",
|
|
2418
|
+
"properties": {
|
|
2419
|
+
"geo_level": {
|
|
2420
|
+
"title": "Geographic Targeting Level",
|
|
2421
|
+
"description": "Geographic level of this entry (country, region, metro, postal_area)",
|
|
2422
|
+
"type": "string",
|
|
2423
|
+
"enum": [
|
|
2424
|
+
"country",
|
|
2425
|
+
"region",
|
|
2426
|
+
"metro",
|
|
2427
|
+
"postal_area"
|
|
2428
|
+
]
|
|
2429
|
+
},
|
|
2430
|
+
"system": {
|
|
2431
|
+
"type": "string",
|
|
2432
|
+
"description": "Classification system for metro or postal_area levels (e.g., 'nielsen_dma', 'us_zip'). Present when geo_level is 'metro' or 'postal_area'."
|
|
2433
|
+
},
|
|
2434
|
+
"geo_code": {
|
|
2435
|
+
"type": "string",
|
|
2436
|
+
"description": "Geographic code within the level and system. Country: ISO 3166-1 alpha-2 ('US'). Region: ISO 3166-2 with country prefix ('US-CA'). Metro/postal: system-specific code ('501', '10001')."
|
|
2437
|
+
},
|
|
2438
|
+
"geo_name": {
|
|
2439
|
+
"type": "string",
|
|
2440
|
+
"description": "Human-readable geographic name (e.g., 'United States', 'California', 'New York DMA')"
|
|
2441
|
+
}
|
|
2442
|
+
},
|
|
2443
|
+
"required": [
|
|
2444
|
+
"geo_level",
|
|
2445
|
+
"geo_code",
|
|
2446
|
+
"impressions",
|
|
2447
|
+
"spend"
|
|
2448
|
+
]
|
|
2449
|
+
}
|
|
2450
|
+
]
|
|
2451
|
+
}
|
|
2452
|
+
},
|
|
2453
|
+
"by_geo_truncated": {
|
|
2454
|
+
"type": "boolean",
|
|
2455
|
+
"description": "Whether by_geo was truncated due to the requested limit or a seller-imposed maximum. Sellers MUST return this flag whenever by_geo is present (false means the list is complete)."
|
|
2456
|
+
},
|
|
2457
|
+
"by_device_type": {
|
|
2458
|
+
"type": "array",
|
|
2459
|
+
"description": "Delivery by device form factor within this package. Available when the buyer requests device_type breakdown via reporting_dimensions and the seller supports it.",
|
|
2460
|
+
"items": {
|
|
2461
|
+
"allOf": [
|
|
2462
|
+
{
|
|
2463
|
+
"title": "Delivery Metrics",
|
|
2464
|
+
"description": "Standard delivery metrics that can be reported at media buy, package, or creative level",
|
|
2465
|
+
"type": "object",
|
|
2466
|
+
"properties": {
|
|
2467
|
+
"impressions": {
|
|
2468
|
+
"type": "number",
|
|
2469
|
+
"description": "Impressions delivered",
|
|
2470
|
+
"minimum": 0
|
|
2471
|
+
},
|
|
2472
|
+
"spend": {
|
|
2473
|
+
"type": "number",
|
|
2474
|
+
"description": "Amount spent",
|
|
2475
|
+
"minimum": 0
|
|
2476
|
+
},
|
|
2477
|
+
"clicks": {
|
|
2478
|
+
"type": "number",
|
|
2479
|
+
"description": "Total clicks",
|
|
2480
|
+
"minimum": 0
|
|
2481
|
+
},
|
|
2482
|
+
"ctr": {
|
|
2483
|
+
"type": "number",
|
|
2484
|
+
"description": "Click-through rate (clicks/impressions)",
|
|
2485
|
+
"minimum": 0,
|
|
2486
|
+
"maximum": 1
|
|
2487
|
+
},
|
|
2488
|
+
"views": {
|
|
2489
|
+
"type": "number",
|
|
2490
|
+
"description": "Content engagements counted toward the billable view threshold. For video this is a platform-defined view event (e.g., 30 seconds or video midpoint); for audio/podcast it is a stream start; for other formats it follows the pricing model's view definition. When the package uses CPV pricing, spend = views × rate.",
|
|
2491
|
+
"minimum": 0
|
|
2492
|
+
},
|
|
2493
|
+
"completed_views": {
|
|
2494
|
+
"type": "number",
|
|
2495
|
+
"description": "Video/audio completions. When the package has a completed_views optimization goal with view_duration_seconds, completions are counted at that threshold rather than 100% completion.",
|
|
2496
|
+
"minimum": 0
|
|
2497
|
+
},
|
|
2498
|
+
"completion_rate": {
|
|
2499
|
+
"type": "number",
|
|
2500
|
+
"description": "Completion rate (completed_views/impressions)",
|
|
2501
|
+
"minimum": 0,
|
|
2502
|
+
"maximum": 1
|
|
2503
|
+
},
|
|
2504
|
+
"conversions": {
|
|
2505
|
+
"type": "number",
|
|
2506
|
+
"description": "Total conversions attributed to this delivery. When by_event_type is present, this equals the sum of all by_event_type[].count entries.",
|
|
2507
|
+
"minimum": 0
|
|
2508
|
+
},
|
|
2509
|
+
"conversion_value": {
|
|
2510
|
+
"type": "number",
|
|
2511
|
+
"description": "Total monetary value of attributed conversions (in the reporting currency)",
|
|
2512
|
+
"minimum": 0
|
|
2513
|
+
},
|
|
2514
|
+
"roas": {
|
|
2515
|
+
"type": "number",
|
|
2516
|
+
"description": "Return on ad spend (conversion_value / spend)",
|
|
2517
|
+
"minimum": 0
|
|
2518
|
+
},
|
|
2519
|
+
"cost_per_acquisition": {
|
|
2520
|
+
"type": "number",
|
|
2521
|
+
"description": "Cost per conversion (spend / conversions)",
|
|
2522
|
+
"minimum": 0
|
|
2523
|
+
},
|
|
2524
|
+
"new_to_brand_rate": {
|
|
2525
|
+
"type": "number",
|
|
2526
|
+
"description": "Fraction of conversions from first-time brand buyers (0 = none, 1 = all)",
|
|
2527
|
+
"minimum": 0,
|
|
2528
|
+
"maximum": 1
|
|
2529
|
+
},
|
|
2530
|
+
"leads": {
|
|
2531
|
+
"type": "number",
|
|
2532
|
+
"description": "Leads generated (convenience alias for by_event_type where event_type='lead')",
|
|
2533
|
+
"minimum": 0
|
|
2534
|
+
},
|
|
2535
|
+
"by_event_type": {
|
|
2536
|
+
"type": "array",
|
|
2537
|
+
"description": "Conversion metrics broken down by event type. Spend-derived metrics (ROAS, CPA) are only available at the package/totals level since spend cannot be attributed to individual event types.",
|
|
2538
|
+
"items": {
|
|
2539
|
+
"type": "object",
|
|
2540
|
+
"properties": {
|
|
2541
|
+
"event_type": {
|
|
2542
|
+
"$ref": "#/$defs/EventType"
|
|
2543
|
+
},
|
|
2544
|
+
"event_source_id": {
|
|
2545
|
+
"type": "string",
|
|
2546
|
+
"description": "Event source that produced these conversions (for disambiguation when multiple event sources are configured)"
|
|
2547
|
+
},
|
|
2548
|
+
"count": {
|
|
2549
|
+
"type": "number",
|
|
2550
|
+
"description": "Number of events of this type",
|
|
2551
|
+
"minimum": 0
|
|
2552
|
+
},
|
|
2553
|
+
"value": {
|
|
2554
|
+
"type": "number",
|
|
2555
|
+
"description": "Total monetary value of events of this type",
|
|
2556
|
+
"minimum": 0
|
|
2557
|
+
}
|
|
2558
|
+
},
|
|
2559
|
+
"required": [
|
|
2560
|
+
"event_type",
|
|
2561
|
+
"count"
|
|
2562
|
+
],
|
|
2563
|
+
"additionalProperties": true
|
|
2564
|
+
}
|
|
2565
|
+
},
|
|
2566
|
+
"grps": {
|
|
2567
|
+
"type": "number",
|
|
2568
|
+
"description": "Gross Rating Points delivered (for CPP)",
|
|
2569
|
+
"minimum": 0
|
|
2570
|
+
},
|
|
2571
|
+
"reach": {
|
|
2572
|
+
"type": "number",
|
|
2573
|
+
"description": "Unique reach in the units specified by reach_unit. When reach_unit is omitted, units are unspecified — do not compare reach values across packages or media buys without a common reach_unit.",
|
|
2574
|
+
"minimum": 0
|
|
2575
|
+
},
|
|
2576
|
+
"reach_unit": {
|
|
2577
|
+
"allOf": [
|
|
2578
|
+
{
|
|
2579
|
+
"$ref": "#/$defs/ReachUnit"
|
|
2580
|
+
}
|
|
2581
|
+
],
|
|
2582
|
+
"description": "Unit of measurement for the reach field. Aligns with the reach_unit declared on optimization goals and delivery forecasts. Required when reach is present to enable cross-platform comparison."
|
|
2583
|
+
},
|
|
2584
|
+
"frequency": {
|
|
2585
|
+
"type": "number",
|
|
2586
|
+
"description": "Average frequency per reach unit (typically measured over campaign duration, but can vary by measurement provider). When reach_unit is 'households', this is average exposures per household; when 'accounts', per logged-in account; etc.",
|
|
2587
|
+
"minimum": 0
|
|
2588
|
+
},
|
|
2589
|
+
"quartile_data": {
|
|
2590
|
+
"type": "object",
|
|
2591
|
+
"description": "Audio/video quartile completion data",
|
|
2592
|
+
"properties": {
|
|
2593
|
+
"q1_views": {
|
|
2594
|
+
"type": "number",
|
|
2595
|
+
"description": "25% completion views",
|
|
2596
|
+
"minimum": 0
|
|
2597
|
+
},
|
|
2598
|
+
"q2_views": {
|
|
2599
|
+
"type": "number",
|
|
2600
|
+
"description": "50% completion views",
|
|
2601
|
+
"minimum": 0
|
|
2602
|
+
},
|
|
2603
|
+
"q3_views": {
|
|
2604
|
+
"type": "number",
|
|
2605
|
+
"description": "75% completion views",
|
|
2606
|
+
"minimum": 0
|
|
2607
|
+
},
|
|
2608
|
+
"q4_views": {
|
|
2609
|
+
"type": "number",
|
|
2610
|
+
"description": "100% completion views",
|
|
2611
|
+
"minimum": 0
|
|
2612
|
+
}
|
|
2613
|
+
}
|
|
2614
|
+
},
|
|
2615
|
+
"dooh_metrics": {
|
|
2616
|
+
"type": "object",
|
|
2617
|
+
"description": "DOOH-specific metrics (only included for DOOH campaigns)",
|
|
2618
|
+
"properties": {
|
|
2619
|
+
"loop_plays": {
|
|
2620
|
+
"type": "integer",
|
|
2621
|
+
"description": "Number of times ad played in rotation",
|
|
2622
|
+
"minimum": 0
|
|
2623
|
+
},
|
|
2624
|
+
"screens_used": {
|
|
2625
|
+
"type": "integer",
|
|
2626
|
+
"description": "Number of unique screens displaying the ad",
|
|
2627
|
+
"minimum": 0
|
|
2628
|
+
},
|
|
2629
|
+
"screen_time_seconds": {
|
|
2630
|
+
"type": "integer",
|
|
2631
|
+
"description": "Total display time in seconds",
|
|
2632
|
+
"minimum": 0
|
|
2633
|
+
},
|
|
2634
|
+
"sov_achieved": {
|
|
2635
|
+
"type": "number",
|
|
2636
|
+
"description": "Actual share of voice delivered (0.0 to 1.0)",
|
|
2637
|
+
"minimum": 0,
|
|
2638
|
+
"maximum": 1
|
|
2639
|
+
},
|
|
2640
|
+
"calculation_notes": {
|
|
2641
|
+
"type": "string",
|
|
2642
|
+
"description": "Explanation of how DOOH impressions were calculated"
|
|
2643
|
+
},
|
|
2644
|
+
"venue_breakdown": {
|
|
2645
|
+
"type": "array",
|
|
2646
|
+
"description": "Per-venue performance breakdown",
|
|
2647
|
+
"items": {
|
|
2648
|
+
"type": "object",
|
|
2649
|
+
"properties": {
|
|
2650
|
+
"venue_id": {
|
|
2651
|
+
"type": "string",
|
|
2652
|
+
"description": "Venue identifier"
|
|
2653
|
+
},
|
|
2654
|
+
"venue_name": {
|
|
2655
|
+
"type": "string",
|
|
2656
|
+
"description": "Human-readable venue name"
|
|
2657
|
+
},
|
|
2658
|
+
"venue_type": {
|
|
2659
|
+
"type": "string",
|
|
2660
|
+
"description": "Venue type (e.g., 'airport', 'transit', 'retail', 'billboard')"
|
|
2661
|
+
},
|
|
2662
|
+
"impressions": {
|
|
2663
|
+
"type": "integer",
|
|
2664
|
+
"description": "Impressions delivered at this venue",
|
|
2665
|
+
"minimum": 0
|
|
2666
|
+
},
|
|
2667
|
+
"loop_plays": {
|
|
2668
|
+
"type": "integer",
|
|
2669
|
+
"description": "Loop plays at this venue",
|
|
2670
|
+
"minimum": 0
|
|
2671
|
+
},
|
|
2672
|
+
"screens_used": {
|
|
2673
|
+
"type": "integer",
|
|
2674
|
+
"description": "Number of screens used at this venue",
|
|
2675
|
+
"minimum": 0
|
|
2676
|
+
}
|
|
2677
|
+
},
|
|
2678
|
+
"required": [
|
|
2679
|
+
"venue_id",
|
|
2680
|
+
"impressions"
|
|
2681
|
+
],
|
|
2682
|
+
"additionalProperties": true
|
|
2683
|
+
}
|
|
2684
|
+
}
|
|
2685
|
+
},
|
|
2686
|
+
"additionalProperties": true
|
|
2687
|
+
},
|
|
2688
|
+
"viewability": {
|
|
2689
|
+
"type": "object",
|
|
2690
|
+
"description": "Viewability metrics. Viewable rate should be calculated as viewable_impressions / measurable_impressions (not total impressions), since some environments cannot measure viewability.",
|
|
2691
|
+
"properties": {
|
|
2692
|
+
"measurable_impressions": {
|
|
2693
|
+
"type": "number",
|
|
2694
|
+
"description": "Impressions where viewability could be measured. Excludes environments without measurement capability (e.g., non-Intersection Observer browsers, certain app environments).",
|
|
2695
|
+
"minimum": 0
|
|
2696
|
+
},
|
|
2697
|
+
"viewable_impressions": {
|
|
2698
|
+
"type": "number",
|
|
2699
|
+
"description": "Impressions that met the viewability threshold defined by the measurement standard.",
|
|
2700
|
+
"minimum": 0
|
|
2701
|
+
},
|
|
2702
|
+
"viewable_rate": {
|
|
2703
|
+
"type": "number",
|
|
2704
|
+
"description": "Viewable impression rate (viewable_impressions / measurable_impressions). Range 0.0 to 1.0.",
|
|
2705
|
+
"minimum": 0,
|
|
2706
|
+
"maximum": 1
|
|
2707
|
+
},
|
|
2708
|
+
"standard": {
|
|
2709
|
+
"$ref": "#/$defs/ViewabilityStandard"
|
|
2710
|
+
}
|
|
2711
|
+
},
|
|
2712
|
+
"additionalProperties": true
|
|
2713
|
+
},
|
|
2714
|
+
"engagements": {
|
|
2715
|
+
"type": "number",
|
|
2716
|
+
"description": "Total engagements — direct interactions with the ad beyond viewing. Includes social reactions/comments/shares, story/unit opens, interactive overlay taps on CTV, companion banner interactions on audio. Platform-specific; corresponds to the 'engagements' optimization metric.",
|
|
2717
|
+
"minimum": 0
|
|
2718
|
+
},
|
|
2719
|
+
"follows": {
|
|
2720
|
+
"type": "number",
|
|
2721
|
+
"description": "New followers, page likes, artist/podcast/channel subscribes attributed to this delivery.",
|
|
2722
|
+
"minimum": 0
|
|
2723
|
+
},
|
|
2724
|
+
"saves": {
|
|
2725
|
+
"type": "number",
|
|
2726
|
+
"description": "Saves, bookmarks, playlist adds, pins attributed to this delivery.",
|
|
2727
|
+
"minimum": 0
|
|
2728
|
+
},
|
|
2729
|
+
"profile_visits": {
|
|
2730
|
+
"type": "number",
|
|
2731
|
+
"description": "Visits to the brand's in-platform page (profile, artist page, channel, or storefront) attributed to this delivery. Does not include external website clicks.",
|
|
2732
|
+
"minimum": 0
|
|
2733
|
+
},
|
|
2734
|
+
"engagement_rate": {
|
|
2735
|
+
"type": "number",
|
|
2736
|
+
"description": "Platform-specific engagement rate (0.0 to 1.0). Typically engagements/impressions, but definition varies by platform.",
|
|
2737
|
+
"minimum": 0,
|
|
2738
|
+
"maximum": 1
|
|
2739
|
+
},
|
|
2740
|
+
"cost_per_click": {
|
|
2741
|
+
"type": "number",
|
|
2742
|
+
"description": "Cost per click (spend / clicks)",
|
|
2743
|
+
"minimum": 0
|
|
2744
|
+
},
|
|
2745
|
+
"by_action_source": {
|
|
2746
|
+
"type": "array",
|
|
2747
|
+
"description": "Conversion metrics broken down by action source (website, app, in_store, etc.). Useful for omnichannel sellers where conversions occur across digital and physical channels.",
|
|
2748
|
+
"items": {
|
|
2749
|
+
"type": "object",
|
|
2750
|
+
"properties": {
|
|
2751
|
+
"action_source": {
|
|
2752
|
+
"$ref": "#/$defs/ActionSource"
|
|
2753
|
+
},
|
|
2754
|
+
"event_source_id": {
|
|
2755
|
+
"type": "string",
|
|
2756
|
+
"description": "Event source that produced these conversions (for disambiguation when multiple event sources are configured)"
|
|
2757
|
+
},
|
|
2758
|
+
"count": {
|
|
2759
|
+
"type": "number",
|
|
2760
|
+
"description": "Number of conversions from this action source",
|
|
2761
|
+
"minimum": 0
|
|
2762
|
+
},
|
|
2763
|
+
"value": {
|
|
2764
|
+
"type": "number",
|
|
2765
|
+
"description": "Total monetary value of conversions from this action source",
|
|
2766
|
+
"minimum": 0
|
|
2767
|
+
}
|
|
2768
|
+
},
|
|
2769
|
+
"required": [
|
|
2770
|
+
"action_source",
|
|
2771
|
+
"count"
|
|
2772
|
+
],
|
|
2773
|
+
"additionalProperties": true
|
|
2774
|
+
}
|
|
2775
|
+
}
|
|
2776
|
+
},
|
|
2777
|
+
"dependencies": {
|
|
2778
|
+
"reach": [
|
|
2779
|
+
"reach_unit"
|
|
2780
|
+
]
|
|
2781
|
+
},
|
|
2782
|
+
"additionalProperties": true
|
|
2783
|
+
},
|
|
2784
|
+
{
|
|
2785
|
+
"type": "object",
|
|
2786
|
+
"properties": {
|
|
2787
|
+
"device_type": {
|
|
2788
|
+
"title": "Device Type",
|
|
2789
|
+
"description": "Device form factor (desktop, mobile, tablet, ctv, dooh, unknown)",
|
|
2790
|
+
"type": "string",
|
|
2791
|
+
"enum": [
|
|
2792
|
+
"desktop",
|
|
2793
|
+
"mobile",
|
|
2794
|
+
"tablet",
|
|
2795
|
+
"ctv",
|
|
2796
|
+
"dooh",
|
|
2797
|
+
"unknown"
|
|
2798
|
+
]
|
|
2799
|
+
}
|
|
2800
|
+
},
|
|
2801
|
+
"required": [
|
|
2802
|
+
"device_type",
|
|
2803
|
+
"impressions",
|
|
2804
|
+
"spend"
|
|
2805
|
+
]
|
|
2806
|
+
}
|
|
2807
|
+
]
|
|
2808
|
+
}
|
|
2809
|
+
},
|
|
2810
|
+
"by_device_type_truncated": {
|
|
2811
|
+
"type": "boolean",
|
|
2812
|
+
"description": "Whether by_device_type was truncated. Sellers MUST return this flag whenever by_device_type is present (false means the list is complete)."
|
|
2813
|
+
},
|
|
2814
|
+
"by_device_platform": {
|
|
2815
|
+
"type": "array",
|
|
2816
|
+
"description": "Delivery by operating system within this package. Available when the buyer requests device_platform breakdown via reporting_dimensions and the seller supports it. Useful for CTV campaigns where tvOS vs Roku OS vs Fire OS matters.",
|
|
2817
|
+
"items": {
|
|
2818
|
+
"allOf": [
|
|
2819
|
+
{
|
|
2820
|
+
"title": "Delivery Metrics",
|
|
2821
|
+
"description": "Standard delivery metrics that can be reported at media buy, package, or creative level",
|
|
2822
|
+
"type": "object",
|
|
2823
|
+
"properties": {
|
|
2824
|
+
"impressions": {
|
|
2825
|
+
"type": "number",
|
|
2826
|
+
"description": "Impressions delivered",
|
|
2827
|
+
"minimum": 0
|
|
2828
|
+
},
|
|
2829
|
+
"spend": {
|
|
2830
|
+
"type": "number",
|
|
2831
|
+
"description": "Amount spent",
|
|
2832
|
+
"minimum": 0
|
|
2833
|
+
},
|
|
2834
|
+
"clicks": {
|
|
2835
|
+
"type": "number",
|
|
2836
|
+
"description": "Total clicks",
|
|
2837
|
+
"minimum": 0
|
|
2838
|
+
},
|
|
2839
|
+
"ctr": {
|
|
2840
|
+
"type": "number",
|
|
2841
|
+
"description": "Click-through rate (clicks/impressions)",
|
|
2842
|
+
"minimum": 0,
|
|
2843
|
+
"maximum": 1
|
|
2844
|
+
},
|
|
2845
|
+
"views": {
|
|
2846
|
+
"type": "number",
|
|
2847
|
+
"description": "Content engagements counted toward the billable view threshold. For video this is a platform-defined view event (e.g., 30 seconds or video midpoint); for audio/podcast it is a stream start; for other formats it follows the pricing model's view definition. When the package uses CPV pricing, spend = views × rate.",
|
|
2848
|
+
"minimum": 0
|
|
2849
|
+
},
|
|
2850
|
+
"completed_views": {
|
|
2851
|
+
"type": "number",
|
|
2852
|
+
"description": "Video/audio completions. When the package has a completed_views optimization goal with view_duration_seconds, completions are counted at that threshold rather than 100% completion.",
|
|
2853
|
+
"minimum": 0
|
|
2854
|
+
},
|
|
2855
|
+
"completion_rate": {
|
|
2856
|
+
"type": "number",
|
|
2857
|
+
"description": "Completion rate (completed_views/impressions)",
|
|
2858
|
+
"minimum": 0,
|
|
2859
|
+
"maximum": 1
|
|
2860
|
+
},
|
|
2861
|
+
"conversions": {
|
|
2862
|
+
"type": "number",
|
|
2863
|
+
"description": "Total conversions attributed to this delivery. When by_event_type is present, this equals the sum of all by_event_type[].count entries.",
|
|
2864
|
+
"minimum": 0
|
|
2865
|
+
},
|
|
2866
|
+
"conversion_value": {
|
|
2867
|
+
"type": "number",
|
|
2868
|
+
"description": "Total monetary value of attributed conversions (in the reporting currency)",
|
|
2869
|
+
"minimum": 0
|
|
2870
|
+
},
|
|
2871
|
+
"roas": {
|
|
2872
|
+
"type": "number",
|
|
2873
|
+
"description": "Return on ad spend (conversion_value / spend)",
|
|
2874
|
+
"minimum": 0
|
|
2875
|
+
},
|
|
2876
|
+
"cost_per_acquisition": {
|
|
2877
|
+
"type": "number",
|
|
2878
|
+
"description": "Cost per conversion (spend / conversions)",
|
|
2879
|
+
"minimum": 0
|
|
2880
|
+
},
|
|
2881
|
+
"new_to_brand_rate": {
|
|
2882
|
+
"type": "number",
|
|
2883
|
+
"description": "Fraction of conversions from first-time brand buyers (0 = none, 1 = all)",
|
|
2884
|
+
"minimum": 0,
|
|
2885
|
+
"maximum": 1
|
|
2886
|
+
},
|
|
2887
|
+
"leads": {
|
|
2888
|
+
"type": "number",
|
|
2889
|
+
"description": "Leads generated (convenience alias for by_event_type where event_type='lead')",
|
|
2890
|
+
"minimum": 0
|
|
2891
|
+
},
|
|
2892
|
+
"by_event_type": {
|
|
2893
|
+
"type": "array",
|
|
2894
|
+
"description": "Conversion metrics broken down by event type. Spend-derived metrics (ROAS, CPA) are only available at the package/totals level since spend cannot be attributed to individual event types.",
|
|
2895
|
+
"items": {
|
|
2896
|
+
"type": "object",
|
|
2897
|
+
"properties": {
|
|
2898
|
+
"event_type": {
|
|
2899
|
+
"$ref": "#/$defs/EventType"
|
|
2900
|
+
},
|
|
2901
|
+
"event_source_id": {
|
|
2902
|
+
"type": "string",
|
|
2903
|
+
"description": "Event source that produced these conversions (for disambiguation when multiple event sources are configured)"
|
|
2904
|
+
},
|
|
2905
|
+
"count": {
|
|
2906
|
+
"type": "number",
|
|
2907
|
+
"description": "Number of events of this type",
|
|
2908
|
+
"minimum": 0
|
|
2909
|
+
},
|
|
2910
|
+
"value": {
|
|
2911
|
+
"type": "number",
|
|
2912
|
+
"description": "Total monetary value of events of this type",
|
|
2913
|
+
"minimum": 0
|
|
2914
|
+
}
|
|
2915
|
+
},
|
|
2916
|
+
"required": [
|
|
2917
|
+
"event_type",
|
|
2918
|
+
"count"
|
|
2919
|
+
],
|
|
2920
|
+
"additionalProperties": true
|
|
2921
|
+
}
|
|
2922
|
+
},
|
|
2923
|
+
"grps": {
|
|
2924
|
+
"type": "number",
|
|
2925
|
+
"description": "Gross Rating Points delivered (for CPP)",
|
|
2926
|
+
"minimum": 0
|
|
2927
|
+
},
|
|
2928
|
+
"reach": {
|
|
2929
|
+
"type": "number",
|
|
2930
|
+
"description": "Unique reach in the units specified by reach_unit. When reach_unit is omitted, units are unspecified — do not compare reach values across packages or media buys without a common reach_unit.",
|
|
2931
|
+
"minimum": 0
|
|
2932
|
+
},
|
|
2933
|
+
"reach_unit": {
|
|
2934
|
+
"allOf": [
|
|
2935
|
+
{
|
|
2936
|
+
"$ref": "#/$defs/ReachUnit"
|
|
2937
|
+
}
|
|
2938
|
+
],
|
|
2939
|
+
"description": "Unit of measurement for the reach field. Aligns with the reach_unit declared on optimization goals and delivery forecasts. Required when reach is present to enable cross-platform comparison."
|
|
2940
|
+
},
|
|
2941
|
+
"frequency": {
|
|
2942
|
+
"type": "number",
|
|
2943
|
+
"description": "Average frequency per reach unit (typically measured over campaign duration, but can vary by measurement provider). When reach_unit is 'households', this is average exposures per household; when 'accounts', per logged-in account; etc.",
|
|
2944
|
+
"minimum": 0
|
|
2945
|
+
},
|
|
2946
|
+
"quartile_data": {
|
|
2947
|
+
"type": "object",
|
|
2948
|
+
"description": "Audio/video quartile completion data",
|
|
2949
|
+
"properties": {
|
|
2950
|
+
"q1_views": {
|
|
2951
|
+
"type": "number",
|
|
2952
|
+
"description": "25% completion views",
|
|
2953
|
+
"minimum": 0
|
|
2954
|
+
},
|
|
2955
|
+
"q2_views": {
|
|
2956
|
+
"type": "number",
|
|
2957
|
+
"description": "50% completion views",
|
|
2958
|
+
"minimum": 0
|
|
2959
|
+
},
|
|
2960
|
+
"q3_views": {
|
|
2961
|
+
"type": "number",
|
|
2962
|
+
"description": "75% completion views",
|
|
2963
|
+
"minimum": 0
|
|
2964
|
+
},
|
|
2965
|
+
"q4_views": {
|
|
2966
|
+
"type": "number",
|
|
2967
|
+
"description": "100% completion views",
|
|
2968
|
+
"minimum": 0
|
|
2969
|
+
}
|
|
2970
|
+
}
|
|
2971
|
+
},
|
|
2972
|
+
"dooh_metrics": {
|
|
2973
|
+
"type": "object",
|
|
2974
|
+
"description": "DOOH-specific metrics (only included for DOOH campaigns)",
|
|
2975
|
+
"properties": {
|
|
2976
|
+
"loop_plays": {
|
|
2977
|
+
"type": "integer",
|
|
2978
|
+
"description": "Number of times ad played in rotation",
|
|
2979
|
+
"minimum": 0
|
|
2980
|
+
},
|
|
2981
|
+
"screens_used": {
|
|
2982
|
+
"type": "integer",
|
|
2983
|
+
"description": "Number of unique screens displaying the ad",
|
|
2984
|
+
"minimum": 0
|
|
2985
|
+
},
|
|
2986
|
+
"screen_time_seconds": {
|
|
2987
|
+
"type": "integer",
|
|
2988
|
+
"description": "Total display time in seconds",
|
|
2989
|
+
"minimum": 0
|
|
2990
|
+
},
|
|
2991
|
+
"sov_achieved": {
|
|
2992
|
+
"type": "number",
|
|
2993
|
+
"description": "Actual share of voice delivered (0.0 to 1.0)",
|
|
2994
|
+
"minimum": 0,
|
|
2995
|
+
"maximum": 1
|
|
2996
|
+
},
|
|
2997
|
+
"calculation_notes": {
|
|
2998
|
+
"type": "string",
|
|
2999
|
+
"description": "Explanation of how DOOH impressions were calculated"
|
|
3000
|
+
},
|
|
3001
|
+
"venue_breakdown": {
|
|
3002
|
+
"type": "array",
|
|
3003
|
+
"description": "Per-venue performance breakdown",
|
|
3004
|
+
"items": {
|
|
3005
|
+
"type": "object",
|
|
3006
|
+
"properties": {
|
|
3007
|
+
"venue_id": {
|
|
3008
|
+
"type": "string",
|
|
3009
|
+
"description": "Venue identifier"
|
|
3010
|
+
},
|
|
3011
|
+
"venue_name": {
|
|
3012
|
+
"type": "string",
|
|
3013
|
+
"description": "Human-readable venue name"
|
|
3014
|
+
},
|
|
3015
|
+
"venue_type": {
|
|
3016
|
+
"type": "string",
|
|
3017
|
+
"description": "Venue type (e.g., 'airport', 'transit', 'retail', 'billboard')"
|
|
3018
|
+
},
|
|
3019
|
+
"impressions": {
|
|
3020
|
+
"type": "integer",
|
|
3021
|
+
"description": "Impressions delivered at this venue",
|
|
3022
|
+
"minimum": 0
|
|
3023
|
+
},
|
|
3024
|
+
"loop_plays": {
|
|
3025
|
+
"type": "integer",
|
|
3026
|
+
"description": "Loop plays at this venue",
|
|
3027
|
+
"minimum": 0
|
|
3028
|
+
},
|
|
3029
|
+
"screens_used": {
|
|
3030
|
+
"type": "integer",
|
|
3031
|
+
"description": "Number of screens used at this venue",
|
|
3032
|
+
"minimum": 0
|
|
3033
|
+
}
|
|
3034
|
+
},
|
|
3035
|
+
"required": [
|
|
3036
|
+
"venue_id",
|
|
3037
|
+
"impressions"
|
|
3038
|
+
],
|
|
3039
|
+
"additionalProperties": true
|
|
3040
|
+
}
|
|
3041
|
+
}
|
|
3042
|
+
},
|
|
3043
|
+
"additionalProperties": true
|
|
3044
|
+
},
|
|
3045
|
+
"viewability": {
|
|
3046
|
+
"type": "object",
|
|
3047
|
+
"description": "Viewability metrics. Viewable rate should be calculated as viewable_impressions / measurable_impressions (not total impressions), since some environments cannot measure viewability.",
|
|
3048
|
+
"properties": {
|
|
3049
|
+
"measurable_impressions": {
|
|
3050
|
+
"type": "number",
|
|
3051
|
+
"description": "Impressions where viewability could be measured. Excludes environments without measurement capability (e.g., non-Intersection Observer browsers, certain app environments).",
|
|
3052
|
+
"minimum": 0
|
|
3053
|
+
},
|
|
3054
|
+
"viewable_impressions": {
|
|
3055
|
+
"type": "number",
|
|
3056
|
+
"description": "Impressions that met the viewability threshold defined by the measurement standard.",
|
|
3057
|
+
"minimum": 0
|
|
3058
|
+
},
|
|
3059
|
+
"viewable_rate": {
|
|
3060
|
+
"type": "number",
|
|
3061
|
+
"description": "Viewable impression rate (viewable_impressions / measurable_impressions). Range 0.0 to 1.0.",
|
|
3062
|
+
"minimum": 0,
|
|
3063
|
+
"maximum": 1
|
|
3064
|
+
},
|
|
3065
|
+
"standard": {
|
|
3066
|
+
"$ref": "#/$defs/ViewabilityStandard"
|
|
3067
|
+
}
|
|
3068
|
+
},
|
|
3069
|
+
"additionalProperties": true
|
|
3070
|
+
},
|
|
3071
|
+
"engagements": {
|
|
3072
|
+
"type": "number",
|
|
3073
|
+
"description": "Total engagements — direct interactions with the ad beyond viewing. Includes social reactions/comments/shares, story/unit opens, interactive overlay taps on CTV, companion banner interactions on audio. Platform-specific; corresponds to the 'engagements' optimization metric.",
|
|
3074
|
+
"minimum": 0
|
|
3075
|
+
},
|
|
3076
|
+
"follows": {
|
|
3077
|
+
"type": "number",
|
|
3078
|
+
"description": "New followers, page likes, artist/podcast/channel subscribes attributed to this delivery.",
|
|
3079
|
+
"minimum": 0
|
|
3080
|
+
},
|
|
3081
|
+
"saves": {
|
|
3082
|
+
"type": "number",
|
|
3083
|
+
"description": "Saves, bookmarks, playlist adds, pins attributed to this delivery.",
|
|
3084
|
+
"minimum": 0
|
|
3085
|
+
},
|
|
3086
|
+
"profile_visits": {
|
|
3087
|
+
"type": "number",
|
|
3088
|
+
"description": "Visits to the brand's in-platform page (profile, artist page, channel, or storefront) attributed to this delivery. Does not include external website clicks.",
|
|
3089
|
+
"minimum": 0
|
|
3090
|
+
},
|
|
3091
|
+
"engagement_rate": {
|
|
3092
|
+
"type": "number",
|
|
3093
|
+
"description": "Platform-specific engagement rate (0.0 to 1.0). Typically engagements/impressions, but definition varies by platform.",
|
|
3094
|
+
"minimum": 0,
|
|
3095
|
+
"maximum": 1
|
|
3096
|
+
},
|
|
3097
|
+
"cost_per_click": {
|
|
3098
|
+
"type": "number",
|
|
3099
|
+
"description": "Cost per click (spend / clicks)",
|
|
3100
|
+
"minimum": 0
|
|
3101
|
+
},
|
|
3102
|
+
"by_action_source": {
|
|
3103
|
+
"type": "array",
|
|
3104
|
+
"description": "Conversion metrics broken down by action source (website, app, in_store, etc.). Useful for omnichannel sellers where conversions occur across digital and physical channels.",
|
|
3105
|
+
"items": {
|
|
3106
|
+
"type": "object",
|
|
3107
|
+
"properties": {
|
|
3108
|
+
"action_source": {
|
|
3109
|
+
"$ref": "#/$defs/ActionSource"
|
|
3110
|
+
},
|
|
3111
|
+
"event_source_id": {
|
|
3112
|
+
"type": "string",
|
|
3113
|
+
"description": "Event source that produced these conversions (for disambiguation when multiple event sources are configured)"
|
|
3114
|
+
},
|
|
3115
|
+
"count": {
|
|
3116
|
+
"type": "number",
|
|
3117
|
+
"description": "Number of conversions from this action source",
|
|
3118
|
+
"minimum": 0
|
|
3119
|
+
},
|
|
3120
|
+
"value": {
|
|
3121
|
+
"type": "number",
|
|
3122
|
+
"description": "Total monetary value of conversions from this action source",
|
|
3123
|
+
"minimum": 0
|
|
3124
|
+
}
|
|
3125
|
+
},
|
|
3126
|
+
"required": [
|
|
3127
|
+
"action_source",
|
|
3128
|
+
"count"
|
|
3129
|
+
],
|
|
3130
|
+
"additionalProperties": true
|
|
3131
|
+
}
|
|
3132
|
+
}
|
|
3133
|
+
},
|
|
3134
|
+
"dependencies": {
|
|
3135
|
+
"reach": [
|
|
3136
|
+
"reach_unit"
|
|
3137
|
+
]
|
|
3138
|
+
},
|
|
3139
|
+
"additionalProperties": true
|
|
3140
|
+
},
|
|
3141
|
+
{
|
|
3142
|
+
"type": "object",
|
|
3143
|
+
"properties": {
|
|
3144
|
+
"device_platform": {
|
|
3145
|
+
"title": "Device Platform",
|
|
3146
|
+
"description": "Operating system platform",
|
|
3147
|
+
"type": "string",
|
|
3148
|
+
"enum": [
|
|
3149
|
+
"ios",
|
|
3150
|
+
"android",
|
|
3151
|
+
"windows",
|
|
3152
|
+
"macos",
|
|
3153
|
+
"linux",
|
|
3154
|
+
"chromeos",
|
|
3155
|
+
"tvos",
|
|
3156
|
+
"tizen",
|
|
3157
|
+
"webos",
|
|
3158
|
+
"fire_os",
|
|
3159
|
+
"roku_os",
|
|
3160
|
+
"unknown"
|
|
3161
|
+
]
|
|
3162
|
+
}
|
|
3163
|
+
},
|
|
3164
|
+
"required": [
|
|
3165
|
+
"device_platform",
|
|
3166
|
+
"impressions",
|
|
3167
|
+
"spend"
|
|
3168
|
+
]
|
|
3169
|
+
}
|
|
3170
|
+
]
|
|
3171
|
+
}
|
|
3172
|
+
},
|
|
3173
|
+
"by_device_platform_truncated": {
|
|
3174
|
+
"type": "boolean",
|
|
3175
|
+
"description": "Whether by_device_platform was truncated. Sellers MUST return this flag whenever by_device_platform is present (false means the list is complete)."
|
|
3176
|
+
},
|
|
3177
|
+
"by_audience": {
|
|
3178
|
+
"type": "array",
|
|
3179
|
+
"description": "Delivery by audience segment within this package. Available when the buyer requests audience breakdown via reporting_dimensions and the seller supports it. Only 'synced' audiences are directly targetable via the targeting overlay; other sources are informational.",
|
|
3180
|
+
"items": {
|
|
3181
|
+
"allOf": [
|
|
3182
|
+
{
|
|
3183
|
+
"title": "Delivery Metrics",
|
|
3184
|
+
"description": "Standard delivery metrics that can be reported at media buy, package, or creative level",
|
|
3185
|
+
"type": "object",
|
|
3186
|
+
"properties": {
|
|
3187
|
+
"impressions": {
|
|
3188
|
+
"type": "number",
|
|
3189
|
+
"description": "Impressions delivered",
|
|
3190
|
+
"minimum": 0
|
|
3191
|
+
},
|
|
3192
|
+
"spend": {
|
|
3193
|
+
"type": "number",
|
|
3194
|
+
"description": "Amount spent",
|
|
3195
|
+
"minimum": 0
|
|
3196
|
+
},
|
|
3197
|
+
"clicks": {
|
|
3198
|
+
"type": "number",
|
|
3199
|
+
"description": "Total clicks",
|
|
3200
|
+
"minimum": 0
|
|
3201
|
+
},
|
|
3202
|
+
"ctr": {
|
|
3203
|
+
"type": "number",
|
|
3204
|
+
"description": "Click-through rate (clicks/impressions)",
|
|
3205
|
+
"minimum": 0,
|
|
3206
|
+
"maximum": 1
|
|
3207
|
+
},
|
|
3208
|
+
"views": {
|
|
3209
|
+
"type": "number",
|
|
3210
|
+
"description": "Content engagements counted toward the billable view threshold. For video this is a platform-defined view event (e.g., 30 seconds or video midpoint); for audio/podcast it is a stream start; for other formats it follows the pricing model's view definition. When the package uses CPV pricing, spend = views × rate.",
|
|
3211
|
+
"minimum": 0
|
|
3212
|
+
},
|
|
3213
|
+
"completed_views": {
|
|
3214
|
+
"type": "number",
|
|
3215
|
+
"description": "Video/audio completions. When the package has a completed_views optimization goal with view_duration_seconds, completions are counted at that threshold rather than 100% completion.",
|
|
3216
|
+
"minimum": 0
|
|
3217
|
+
},
|
|
3218
|
+
"completion_rate": {
|
|
3219
|
+
"type": "number",
|
|
3220
|
+
"description": "Completion rate (completed_views/impressions)",
|
|
3221
|
+
"minimum": 0,
|
|
3222
|
+
"maximum": 1
|
|
3223
|
+
},
|
|
3224
|
+
"conversions": {
|
|
3225
|
+
"type": "number",
|
|
3226
|
+
"description": "Total conversions attributed to this delivery. When by_event_type is present, this equals the sum of all by_event_type[].count entries.",
|
|
3227
|
+
"minimum": 0
|
|
3228
|
+
},
|
|
3229
|
+
"conversion_value": {
|
|
3230
|
+
"type": "number",
|
|
3231
|
+
"description": "Total monetary value of attributed conversions (in the reporting currency)",
|
|
3232
|
+
"minimum": 0
|
|
3233
|
+
},
|
|
3234
|
+
"roas": {
|
|
3235
|
+
"type": "number",
|
|
3236
|
+
"description": "Return on ad spend (conversion_value / spend)",
|
|
3237
|
+
"minimum": 0
|
|
3238
|
+
},
|
|
3239
|
+
"cost_per_acquisition": {
|
|
3240
|
+
"type": "number",
|
|
3241
|
+
"description": "Cost per conversion (spend / conversions)",
|
|
3242
|
+
"minimum": 0
|
|
3243
|
+
},
|
|
3244
|
+
"new_to_brand_rate": {
|
|
3245
|
+
"type": "number",
|
|
3246
|
+
"description": "Fraction of conversions from first-time brand buyers (0 = none, 1 = all)",
|
|
3247
|
+
"minimum": 0,
|
|
3248
|
+
"maximum": 1
|
|
3249
|
+
},
|
|
3250
|
+
"leads": {
|
|
3251
|
+
"type": "number",
|
|
3252
|
+
"description": "Leads generated (convenience alias for by_event_type where event_type='lead')",
|
|
3253
|
+
"minimum": 0
|
|
3254
|
+
},
|
|
3255
|
+
"by_event_type": {
|
|
3256
|
+
"type": "array",
|
|
3257
|
+
"description": "Conversion metrics broken down by event type. Spend-derived metrics (ROAS, CPA) are only available at the package/totals level since spend cannot be attributed to individual event types.",
|
|
3258
|
+
"items": {
|
|
3259
|
+
"type": "object",
|
|
3260
|
+
"properties": {
|
|
3261
|
+
"event_type": {
|
|
3262
|
+
"$ref": "#/$defs/EventType"
|
|
3263
|
+
},
|
|
3264
|
+
"event_source_id": {
|
|
3265
|
+
"type": "string",
|
|
3266
|
+
"description": "Event source that produced these conversions (for disambiguation when multiple event sources are configured)"
|
|
3267
|
+
},
|
|
3268
|
+
"count": {
|
|
3269
|
+
"type": "number",
|
|
3270
|
+
"description": "Number of events of this type",
|
|
3271
|
+
"minimum": 0
|
|
3272
|
+
},
|
|
3273
|
+
"value": {
|
|
3274
|
+
"type": "number",
|
|
3275
|
+
"description": "Total monetary value of events of this type",
|
|
3276
|
+
"minimum": 0
|
|
3277
|
+
}
|
|
3278
|
+
},
|
|
3279
|
+
"required": [
|
|
3280
|
+
"event_type",
|
|
3281
|
+
"count"
|
|
3282
|
+
],
|
|
3283
|
+
"additionalProperties": true
|
|
3284
|
+
}
|
|
3285
|
+
},
|
|
3286
|
+
"grps": {
|
|
3287
|
+
"type": "number",
|
|
3288
|
+
"description": "Gross Rating Points delivered (for CPP)",
|
|
3289
|
+
"minimum": 0
|
|
3290
|
+
},
|
|
3291
|
+
"reach": {
|
|
3292
|
+
"type": "number",
|
|
3293
|
+
"description": "Unique reach in the units specified by reach_unit. When reach_unit is omitted, units are unspecified — do not compare reach values across packages or media buys without a common reach_unit.",
|
|
3294
|
+
"minimum": 0
|
|
3295
|
+
},
|
|
3296
|
+
"reach_unit": {
|
|
3297
|
+
"allOf": [
|
|
3298
|
+
{
|
|
3299
|
+
"$ref": "#/$defs/ReachUnit"
|
|
3300
|
+
}
|
|
3301
|
+
],
|
|
3302
|
+
"description": "Unit of measurement for the reach field. Aligns with the reach_unit declared on optimization goals and delivery forecasts. Required when reach is present to enable cross-platform comparison."
|
|
3303
|
+
},
|
|
3304
|
+
"frequency": {
|
|
3305
|
+
"type": "number",
|
|
3306
|
+
"description": "Average frequency per reach unit (typically measured over campaign duration, but can vary by measurement provider). When reach_unit is 'households', this is average exposures per household; when 'accounts', per logged-in account; etc.",
|
|
3307
|
+
"minimum": 0
|
|
3308
|
+
},
|
|
3309
|
+
"quartile_data": {
|
|
3310
|
+
"type": "object",
|
|
3311
|
+
"description": "Audio/video quartile completion data",
|
|
3312
|
+
"properties": {
|
|
3313
|
+
"q1_views": {
|
|
3314
|
+
"type": "number",
|
|
3315
|
+
"description": "25% completion views",
|
|
3316
|
+
"minimum": 0
|
|
3317
|
+
},
|
|
3318
|
+
"q2_views": {
|
|
3319
|
+
"type": "number",
|
|
3320
|
+
"description": "50% completion views",
|
|
3321
|
+
"minimum": 0
|
|
3322
|
+
},
|
|
3323
|
+
"q3_views": {
|
|
3324
|
+
"type": "number",
|
|
3325
|
+
"description": "75% completion views",
|
|
3326
|
+
"minimum": 0
|
|
3327
|
+
},
|
|
3328
|
+
"q4_views": {
|
|
3329
|
+
"type": "number",
|
|
3330
|
+
"description": "100% completion views",
|
|
3331
|
+
"minimum": 0
|
|
3332
|
+
}
|
|
3333
|
+
}
|
|
3334
|
+
},
|
|
3335
|
+
"dooh_metrics": {
|
|
3336
|
+
"type": "object",
|
|
3337
|
+
"description": "DOOH-specific metrics (only included for DOOH campaigns)",
|
|
3338
|
+
"properties": {
|
|
3339
|
+
"loop_plays": {
|
|
3340
|
+
"type": "integer",
|
|
3341
|
+
"description": "Number of times ad played in rotation",
|
|
3342
|
+
"minimum": 0
|
|
3343
|
+
},
|
|
3344
|
+
"screens_used": {
|
|
3345
|
+
"type": "integer",
|
|
3346
|
+
"description": "Number of unique screens displaying the ad",
|
|
3347
|
+
"minimum": 0
|
|
3348
|
+
},
|
|
3349
|
+
"screen_time_seconds": {
|
|
3350
|
+
"type": "integer",
|
|
3351
|
+
"description": "Total display time in seconds",
|
|
3352
|
+
"minimum": 0
|
|
3353
|
+
},
|
|
3354
|
+
"sov_achieved": {
|
|
3355
|
+
"type": "number",
|
|
3356
|
+
"description": "Actual share of voice delivered (0.0 to 1.0)",
|
|
3357
|
+
"minimum": 0,
|
|
3358
|
+
"maximum": 1
|
|
3359
|
+
},
|
|
3360
|
+
"calculation_notes": {
|
|
3361
|
+
"type": "string",
|
|
3362
|
+
"description": "Explanation of how DOOH impressions were calculated"
|
|
3363
|
+
},
|
|
3364
|
+
"venue_breakdown": {
|
|
3365
|
+
"type": "array",
|
|
3366
|
+
"description": "Per-venue performance breakdown",
|
|
3367
|
+
"items": {
|
|
3368
|
+
"type": "object",
|
|
3369
|
+
"properties": {
|
|
3370
|
+
"venue_id": {
|
|
3371
|
+
"type": "string",
|
|
3372
|
+
"description": "Venue identifier"
|
|
3373
|
+
},
|
|
3374
|
+
"venue_name": {
|
|
3375
|
+
"type": "string",
|
|
3376
|
+
"description": "Human-readable venue name"
|
|
3377
|
+
},
|
|
3378
|
+
"venue_type": {
|
|
3379
|
+
"type": "string",
|
|
3380
|
+
"description": "Venue type (e.g., 'airport', 'transit', 'retail', 'billboard')"
|
|
3381
|
+
},
|
|
3382
|
+
"impressions": {
|
|
3383
|
+
"type": "integer",
|
|
3384
|
+
"description": "Impressions delivered at this venue",
|
|
3385
|
+
"minimum": 0
|
|
3386
|
+
},
|
|
3387
|
+
"loop_plays": {
|
|
3388
|
+
"type": "integer",
|
|
3389
|
+
"description": "Loop plays at this venue",
|
|
3390
|
+
"minimum": 0
|
|
3391
|
+
},
|
|
3392
|
+
"screens_used": {
|
|
3393
|
+
"type": "integer",
|
|
3394
|
+
"description": "Number of screens used at this venue",
|
|
3395
|
+
"minimum": 0
|
|
3396
|
+
}
|
|
3397
|
+
},
|
|
3398
|
+
"required": [
|
|
3399
|
+
"venue_id",
|
|
3400
|
+
"impressions"
|
|
3401
|
+
],
|
|
3402
|
+
"additionalProperties": true
|
|
3403
|
+
}
|
|
3404
|
+
}
|
|
3405
|
+
},
|
|
3406
|
+
"additionalProperties": true
|
|
3407
|
+
},
|
|
3408
|
+
"viewability": {
|
|
3409
|
+
"type": "object",
|
|
3410
|
+
"description": "Viewability metrics. Viewable rate should be calculated as viewable_impressions / measurable_impressions (not total impressions), since some environments cannot measure viewability.",
|
|
3411
|
+
"properties": {
|
|
3412
|
+
"measurable_impressions": {
|
|
3413
|
+
"type": "number",
|
|
3414
|
+
"description": "Impressions where viewability could be measured. Excludes environments without measurement capability (e.g., non-Intersection Observer browsers, certain app environments).",
|
|
3415
|
+
"minimum": 0
|
|
3416
|
+
},
|
|
3417
|
+
"viewable_impressions": {
|
|
3418
|
+
"type": "number",
|
|
3419
|
+
"description": "Impressions that met the viewability threshold defined by the measurement standard.",
|
|
3420
|
+
"minimum": 0
|
|
3421
|
+
},
|
|
3422
|
+
"viewable_rate": {
|
|
3423
|
+
"type": "number",
|
|
3424
|
+
"description": "Viewable impression rate (viewable_impressions / measurable_impressions). Range 0.0 to 1.0.",
|
|
3425
|
+
"minimum": 0,
|
|
3426
|
+
"maximum": 1
|
|
3427
|
+
},
|
|
3428
|
+
"standard": {
|
|
3429
|
+
"$ref": "#/$defs/ViewabilityStandard"
|
|
3430
|
+
}
|
|
3431
|
+
},
|
|
3432
|
+
"additionalProperties": true
|
|
3433
|
+
},
|
|
3434
|
+
"engagements": {
|
|
3435
|
+
"type": "number",
|
|
3436
|
+
"description": "Total engagements — direct interactions with the ad beyond viewing. Includes social reactions/comments/shares, story/unit opens, interactive overlay taps on CTV, companion banner interactions on audio. Platform-specific; corresponds to the 'engagements' optimization metric.",
|
|
3437
|
+
"minimum": 0
|
|
3438
|
+
},
|
|
3439
|
+
"follows": {
|
|
3440
|
+
"type": "number",
|
|
3441
|
+
"description": "New followers, page likes, artist/podcast/channel subscribes attributed to this delivery.",
|
|
3442
|
+
"minimum": 0
|
|
3443
|
+
},
|
|
3444
|
+
"saves": {
|
|
3445
|
+
"type": "number",
|
|
3446
|
+
"description": "Saves, bookmarks, playlist adds, pins attributed to this delivery.",
|
|
3447
|
+
"minimum": 0
|
|
3448
|
+
},
|
|
3449
|
+
"profile_visits": {
|
|
3450
|
+
"type": "number",
|
|
3451
|
+
"description": "Visits to the brand's in-platform page (profile, artist page, channel, or storefront) attributed to this delivery. Does not include external website clicks.",
|
|
3452
|
+
"minimum": 0
|
|
3453
|
+
},
|
|
3454
|
+
"engagement_rate": {
|
|
3455
|
+
"type": "number",
|
|
3456
|
+
"description": "Platform-specific engagement rate (0.0 to 1.0). Typically engagements/impressions, but definition varies by platform.",
|
|
3457
|
+
"minimum": 0,
|
|
3458
|
+
"maximum": 1
|
|
3459
|
+
},
|
|
3460
|
+
"cost_per_click": {
|
|
3461
|
+
"type": "number",
|
|
3462
|
+
"description": "Cost per click (spend / clicks)",
|
|
3463
|
+
"minimum": 0
|
|
3464
|
+
},
|
|
3465
|
+
"by_action_source": {
|
|
3466
|
+
"type": "array",
|
|
3467
|
+
"description": "Conversion metrics broken down by action source (website, app, in_store, etc.). Useful for omnichannel sellers where conversions occur across digital and physical channels.",
|
|
3468
|
+
"items": {
|
|
3469
|
+
"type": "object",
|
|
3470
|
+
"properties": {
|
|
3471
|
+
"action_source": {
|
|
3472
|
+
"$ref": "#/$defs/ActionSource"
|
|
3473
|
+
},
|
|
3474
|
+
"event_source_id": {
|
|
3475
|
+
"type": "string",
|
|
3476
|
+
"description": "Event source that produced these conversions (for disambiguation when multiple event sources are configured)"
|
|
3477
|
+
},
|
|
3478
|
+
"count": {
|
|
3479
|
+
"type": "number",
|
|
3480
|
+
"description": "Number of conversions from this action source",
|
|
3481
|
+
"minimum": 0
|
|
3482
|
+
},
|
|
3483
|
+
"value": {
|
|
3484
|
+
"type": "number",
|
|
3485
|
+
"description": "Total monetary value of conversions from this action source",
|
|
3486
|
+
"minimum": 0
|
|
3487
|
+
}
|
|
3488
|
+
},
|
|
3489
|
+
"required": [
|
|
3490
|
+
"action_source",
|
|
3491
|
+
"count"
|
|
3492
|
+
],
|
|
3493
|
+
"additionalProperties": true
|
|
3494
|
+
}
|
|
3495
|
+
}
|
|
3496
|
+
},
|
|
3497
|
+
"dependencies": {
|
|
3498
|
+
"reach": [
|
|
3499
|
+
"reach_unit"
|
|
3500
|
+
]
|
|
3501
|
+
},
|
|
3502
|
+
"additionalProperties": true
|
|
3503
|
+
},
|
|
3504
|
+
{
|
|
3505
|
+
"type": "object",
|
|
3506
|
+
"properties": {
|
|
3507
|
+
"audience_id": {
|
|
3508
|
+
"type": "string",
|
|
3509
|
+
"description": "Audience segment identifier. For 'synced' source, matches audience_id from sync_audiences. For other sources, seller-defined.",
|
|
3510
|
+
"x-entity": "audience"
|
|
3511
|
+
},
|
|
3512
|
+
"audience_source": {
|
|
3513
|
+
"title": "Audience Source",
|
|
3514
|
+
"description": "Origin of the audience segment (synced, platform, third_party, lookalike, retargeting, unknown)",
|
|
3515
|
+
"type": "string",
|
|
3516
|
+
"enum": [
|
|
3517
|
+
"synced",
|
|
3518
|
+
"platform",
|
|
3519
|
+
"third_party",
|
|
3520
|
+
"lookalike",
|
|
3521
|
+
"retargeting",
|
|
3522
|
+
"unknown"
|
|
3523
|
+
]
|
|
3524
|
+
},
|
|
3525
|
+
"audience_name": {
|
|
3526
|
+
"type": "string",
|
|
3527
|
+
"description": "Human-readable audience segment name"
|
|
3528
|
+
}
|
|
3529
|
+
},
|
|
3530
|
+
"required": [
|
|
3531
|
+
"audience_id",
|
|
3532
|
+
"audience_source",
|
|
3533
|
+
"impressions",
|
|
3534
|
+
"spend"
|
|
3535
|
+
]
|
|
3536
|
+
}
|
|
3537
|
+
]
|
|
3538
|
+
}
|
|
3539
|
+
},
|
|
3540
|
+
"by_audience_truncated": {
|
|
3541
|
+
"type": "boolean",
|
|
3542
|
+
"description": "Whether by_audience was truncated. Sellers MUST return this flag whenever by_audience is present (false means the list is complete)."
|
|
3543
|
+
},
|
|
3544
|
+
"by_placement": {
|
|
3545
|
+
"type": "array",
|
|
3546
|
+
"description": "Delivery by placement within this package. Available when the buyer requests placement breakdown via reporting_dimensions and the seller supports it. Placement IDs reference the product's placements array.",
|
|
3547
|
+
"items": {
|
|
3548
|
+
"allOf": [
|
|
3549
|
+
{
|
|
3550
|
+
"title": "Delivery Metrics",
|
|
3551
|
+
"description": "Standard delivery metrics that can be reported at media buy, package, or creative level",
|
|
3552
|
+
"type": "object",
|
|
3553
|
+
"properties": {
|
|
3554
|
+
"impressions": {
|
|
3555
|
+
"type": "number",
|
|
3556
|
+
"description": "Impressions delivered",
|
|
3557
|
+
"minimum": 0
|
|
3558
|
+
},
|
|
3559
|
+
"spend": {
|
|
3560
|
+
"type": "number",
|
|
3561
|
+
"description": "Amount spent",
|
|
3562
|
+
"minimum": 0
|
|
3563
|
+
},
|
|
3564
|
+
"clicks": {
|
|
3565
|
+
"type": "number",
|
|
3566
|
+
"description": "Total clicks",
|
|
3567
|
+
"minimum": 0
|
|
3568
|
+
},
|
|
3569
|
+
"ctr": {
|
|
3570
|
+
"type": "number",
|
|
3571
|
+
"description": "Click-through rate (clicks/impressions)",
|
|
3572
|
+
"minimum": 0,
|
|
3573
|
+
"maximum": 1
|
|
3574
|
+
},
|
|
3575
|
+
"views": {
|
|
3576
|
+
"type": "number",
|
|
3577
|
+
"description": "Content engagements counted toward the billable view threshold. For video this is a platform-defined view event (e.g., 30 seconds or video midpoint); for audio/podcast it is a stream start; for other formats it follows the pricing model's view definition. When the package uses CPV pricing, spend = views × rate.",
|
|
3578
|
+
"minimum": 0
|
|
3579
|
+
},
|
|
3580
|
+
"completed_views": {
|
|
3581
|
+
"type": "number",
|
|
3582
|
+
"description": "Video/audio completions. When the package has a completed_views optimization goal with view_duration_seconds, completions are counted at that threshold rather than 100% completion.",
|
|
3583
|
+
"minimum": 0
|
|
3584
|
+
},
|
|
3585
|
+
"completion_rate": {
|
|
3586
|
+
"type": "number",
|
|
3587
|
+
"description": "Completion rate (completed_views/impressions)",
|
|
3588
|
+
"minimum": 0,
|
|
3589
|
+
"maximum": 1
|
|
3590
|
+
},
|
|
3591
|
+
"conversions": {
|
|
3592
|
+
"type": "number",
|
|
3593
|
+
"description": "Total conversions attributed to this delivery. When by_event_type is present, this equals the sum of all by_event_type[].count entries.",
|
|
3594
|
+
"minimum": 0
|
|
3595
|
+
},
|
|
3596
|
+
"conversion_value": {
|
|
3597
|
+
"type": "number",
|
|
3598
|
+
"description": "Total monetary value of attributed conversions (in the reporting currency)",
|
|
3599
|
+
"minimum": 0
|
|
3600
|
+
},
|
|
3601
|
+
"roas": {
|
|
3602
|
+
"type": "number",
|
|
3603
|
+
"description": "Return on ad spend (conversion_value / spend)",
|
|
3604
|
+
"minimum": 0
|
|
3605
|
+
},
|
|
3606
|
+
"cost_per_acquisition": {
|
|
3607
|
+
"type": "number",
|
|
3608
|
+
"description": "Cost per conversion (spend / conversions)",
|
|
3609
|
+
"minimum": 0
|
|
3610
|
+
},
|
|
3611
|
+
"new_to_brand_rate": {
|
|
3612
|
+
"type": "number",
|
|
3613
|
+
"description": "Fraction of conversions from first-time brand buyers (0 = none, 1 = all)",
|
|
3614
|
+
"minimum": 0,
|
|
3615
|
+
"maximum": 1
|
|
3616
|
+
},
|
|
3617
|
+
"leads": {
|
|
3618
|
+
"type": "number",
|
|
3619
|
+
"description": "Leads generated (convenience alias for by_event_type where event_type='lead')",
|
|
3620
|
+
"minimum": 0
|
|
3621
|
+
},
|
|
3622
|
+
"by_event_type": {
|
|
3623
|
+
"type": "array",
|
|
3624
|
+
"description": "Conversion metrics broken down by event type. Spend-derived metrics (ROAS, CPA) are only available at the package/totals level since spend cannot be attributed to individual event types.",
|
|
3625
|
+
"items": {
|
|
3626
|
+
"type": "object",
|
|
3627
|
+
"properties": {
|
|
3628
|
+
"event_type": {
|
|
3629
|
+
"$ref": "#/$defs/EventType"
|
|
3630
|
+
},
|
|
3631
|
+
"event_source_id": {
|
|
3632
|
+
"type": "string",
|
|
3633
|
+
"description": "Event source that produced these conversions (for disambiguation when multiple event sources are configured)"
|
|
3634
|
+
},
|
|
3635
|
+
"count": {
|
|
3636
|
+
"type": "number",
|
|
3637
|
+
"description": "Number of events of this type",
|
|
3638
|
+
"minimum": 0
|
|
3639
|
+
},
|
|
3640
|
+
"value": {
|
|
3641
|
+
"type": "number",
|
|
3642
|
+
"description": "Total monetary value of events of this type",
|
|
3643
|
+
"minimum": 0
|
|
3644
|
+
}
|
|
3645
|
+
},
|
|
3646
|
+
"required": [
|
|
3647
|
+
"event_type",
|
|
3648
|
+
"count"
|
|
3649
|
+
],
|
|
3650
|
+
"additionalProperties": true
|
|
3651
|
+
}
|
|
3652
|
+
},
|
|
3653
|
+
"grps": {
|
|
3654
|
+
"type": "number",
|
|
3655
|
+
"description": "Gross Rating Points delivered (for CPP)",
|
|
3656
|
+
"minimum": 0
|
|
3657
|
+
},
|
|
3658
|
+
"reach": {
|
|
3659
|
+
"type": "number",
|
|
3660
|
+
"description": "Unique reach in the units specified by reach_unit. When reach_unit is omitted, units are unspecified — do not compare reach values across packages or media buys without a common reach_unit.",
|
|
3661
|
+
"minimum": 0
|
|
3662
|
+
},
|
|
3663
|
+
"reach_unit": {
|
|
3664
|
+
"allOf": [
|
|
3665
|
+
{
|
|
3666
|
+
"$ref": "#/$defs/ReachUnit"
|
|
3667
|
+
}
|
|
3668
|
+
],
|
|
3669
|
+
"description": "Unit of measurement for the reach field. Aligns with the reach_unit declared on optimization goals and delivery forecasts. Required when reach is present to enable cross-platform comparison."
|
|
3670
|
+
},
|
|
3671
|
+
"frequency": {
|
|
3672
|
+
"type": "number",
|
|
3673
|
+
"description": "Average frequency per reach unit (typically measured over campaign duration, but can vary by measurement provider). When reach_unit is 'households', this is average exposures per household; when 'accounts', per logged-in account; etc.",
|
|
3674
|
+
"minimum": 0
|
|
3675
|
+
},
|
|
3676
|
+
"quartile_data": {
|
|
3677
|
+
"type": "object",
|
|
3678
|
+
"description": "Audio/video quartile completion data",
|
|
3679
|
+
"properties": {
|
|
3680
|
+
"q1_views": {
|
|
3681
|
+
"type": "number",
|
|
3682
|
+
"description": "25% completion views",
|
|
3683
|
+
"minimum": 0
|
|
3684
|
+
},
|
|
3685
|
+
"q2_views": {
|
|
3686
|
+
"type": "number",
|
|
3687
|
+
"description": "50% completion views",
|
|
3688
|
+
"minimum": 0
|
|
3689
|
+
},
|
|
3690
|
+
"q3_views": {
|
|
3691
|
+
"type": "number",
|
|
3692
|
+
"description": "75% completion views",
|
|
3693
|
+
"minimum": 0
|
|
3694
|
+
},
|
|
3695
|
+
"q4_views": {
|
|
3696
|
+
"type": "number",
|
|
3697
|
+
"description": "100% completion views",
|
|
3698
|
+
"minimum": 0
|
|
3699
|
+
}
|
|
3700
|
+
}
|
|
3701
|
+
},
|
|
3702
|
+
"dooh_metrics": {
|
|
3703
|
+
"type": "object",
|
|
3704
|
+
"description": "DOOH-specific metrics (only included for DOOH campaigns)",
|
|
3705
|
+
"properties": {
|
|
3706
|
+
"loop_plays": {
|
|
3707
|
+
"type": "integer",
|
|
3708
|
+
"description": "Number of times ad played in rotation",
|
|
3709
|
+
"minimum": 0
|
|
3710
|
+
},
|
|
3711
|
+
"screens_used": {
|
|
3712
|
+
"type": "integer",
|
|
3713
|
+
"description": "Number of unique screens displaying the ad",
|
|
3714
|
+
"minimum": 0
|
|
3715
|
+
},
|
|
3716
|
+
"screen_time_seconds": {
|
|
3717
|
+
"type": "integer",
|
|
3718
|
+
"description": "Total display time in seconds",
|
|
3719
|
+
"minimum": 0
|
|
3720
|
+
},
|
|
3721
|
+
"sov_achieved": {
|
|
3722
|
+
"type": "number",
|
|
3723
|
+
"description": "Actual share of voice delivered (0.0 to 1.0)",
|
|
3724
|
+
"minimum": 0,
|
|
3725
|
+
"maximum": 1
|
|
3726
|
+
},
|
|
3727
|
+
"calculation_notes": {
|
|
3728
|
+
"type": "string",
|
|
3729
|
+
"description": "Explanation of how DOOH impressions were calculated"
|
|
3730
|
+
},
|
|
3731
|
+
"venue_breakdown": {
|
|
3732
|
+
"type": "array",
|
|
3733
|
+
"description": "Per-venue performance breakdown",
|
|
3734
|
+
"items": {
|
|
3735
|
+
"type": "object",
|
|
3736
|
+
"properties": {
|
|
3737
|
+
"venue_id": {
|
|
3738
|
+
"type": "string",
|
|
3739
|
+
"description": "Venue identifier"
|
|
3740
|
+
},
|
|
3741
|
+
"venue_name": {
|
|
3742
|
+
"type": "string",
|
|
3743
|
+
"description": "Human-readable venue name"
|
|
3744
|
+
},
|
|
3745
|
+
"venue_type": {
|
|
3746
|
+
"type": "string",
|
|
3747
|
+
"description": "Venue type (e.g., 'airport', 'transit', 'retail', 'billboard')"
|
|
3748
|
+
},
|
|
3749
|
+
"impressions": {
|
|
3750
|
+
"type": "integer",
|
|
3751
|
+
"description": "Impressions delivered at this venue",
|
|
3752
|
+
"minimum": 0
|
|
3753
|
+
},
|
|
3754
|
+
"loop_plays": {
|
|
3755
|
+
"type": "integer",
|
|
3756
|
+
"description": "Loop plays at this venue",
|
|
3757
|
+
"minimum": 0
|
|
3758
|
+
},
|
|
3759
|
+
"screens_used": {
|
|
3760
|
+
"type": "integer",
|
|
3761
|
+
"description": "Number of screens used at this venue",
|
|
3762
|
+
"minimum": 0
|
|
3763
|
+
}
|
|
3764
|
+
},
|
|
3765
|
+
"required": [
|
|
3766
|
+
"venue_id",
|
|
3767
|
+
"impressions"
|
|
3768
|
+
],
|
|
3769
|
+
"additionalProperties": true
|
|
3770
|
+
}
|
|
3771
|
+
}
|
|
3772
|
+
},
|
|
3773
|
+
"additionalProperties": true
|
|
3774
|
+
},
|
|
3775
|
+
"viewability": {
|
|
3776
|
+
"type": "object",
|
|
3777
|
+
"description": "Viewability metrics. Viewable rate should be calculated as viewable_impressions / measurable_impressions (not total impressions), since some environments cannot measure viewability.",
|
|
3778
|
+
"properties": {
|
|
3779
|
+
"measurable_impressions": {
|
|
3780
|
+
"type": "number",
|
|
3781
|
+
"description": "Impressions where viewability could be measured. Excludes environments without measurement capability (e.g., non-Intersection Observer browsers, certain app environments).",
|
|
3782
|
+
"minimum": 0
|
|
3783
|
+
},
|
|
3784
|
+
"viewable_impressions": {
|
|
3785
|
+
"type": "number",
|
|
3786
|
+
"description": "Impressions that met the viewability threshold defined by the measurement standard.",
|
|
3787
|
+
"minimum": 0
|
|
3788
|
+
},
|
|
3789
|
+
"viewable_rate": {
|
|
3790
|
+
"type": "number",
|
|
3791
|
+
"description": "Viewable impression rate (viewable_impressions / measurable_impressions). Range 0.0 to 1.0.",
|
|
3792
|
+
"minimum": 0,
|
|
3793
|
+
"maximum": 1
|
|
3794
|
+
},
|
|
3795
|
+
"standard": {
|
|
3796
|
+
"$ref": "#/$defs/ViewabilityStandard"
|
|
3797
|
+
}
|
|
3798
|
+
},
|
|
3799
|
+
"additionalProperties": true
|
|
3800
|
+
},
|
|
3801
|
+
"engagements": {
|
|
3802
|
+
"type": "number",
|
|
3803
|
+
"description": "Total engagements — direct interactions with the ad beyond viewing. Includes social reactions/comments/shares, story/unit opens, interactive overlay taps on CTV, companion banner interactions on audio. Platform-specific; corresponds to the 'engagements' optimization metric.",
|
|
3804
|
+
"minimum": 0
|
|
3805
|
+
},
|
|
3806
|
+
"follows": {
|
|
3807
|
+
"type": "number",
|
|
3808
|
+
"description": "New followers, page likes, artist/podcast/channel subscribes attributed to this delivery.",
|
|
3809
|
+
"minimum": 0
|
|
3810
|
+
},
|
|
3811
|
+
"saves": {
|
|
3812
|
+
"type": "number",
|
|
3813
|
+
"description": "Saves, bookmarks, playlist adds, pins attributed to this delivery.",
|
|
3814
|
+
"minimum": 0
|
|
3815
|
+
},
|
|
3816
|
+
"profile_visits": {
|
|
3817
|
+
"type": "number",
|
|
3818
|
+
"description": "Visits to the brand's in-platform page (profile, artist page, channel, or storefront) attributed to this delivery. Does not include external website clicks.",
|
|
3819
|
+
"minimum": 0
|
|
3820
|
+
},
|
|
3821
|
+
"engagement_rate": {
|
|
3822
|
+
"type": "number",
|
|
3823
|
+
"description": "Platform-specific engagement rate (0.0 to 1.0). Typically engagements/impressions, but definition varies by platform.",
|
|
3824
|
+
"minimum": 0,
|
|
3825
|
+
"maximum": 1
|
|
3826
|
+
},
|
|
3827
|
+
"cost_per_click": {
|
|
3828
|
+
"type": "number",
|
|
3829
|
+
"description": "Cost per click (spend / clicks)",
|
|
3830
|
+
"minimum": 0
|
|
3831
|
+
},
|
|
3832
|
+
"by_action_source": {
|
|
3833
|
+
"type": "array",
|
|
3834
|
+
"description": "Conversion metrics broken down by action source (website, app, in_store, etc.). Useful for omnichannel sellers where conversions occur across digital and physical channels.",
|
|
3835
|
+
"items": {
|
|
3836
|
+
"type": "object",
|
|
3837
|
+
"properties": {
|
|
3838
|
+
"action_source": {
|
|
3839
|
+
"$ref": "#/$defs/ActionSource"
|
|
3840
|
+
},
|
|
3841
|
+
"event_source_id": {
|
|
3842
|
+
"type": "string",
|
|
3843
|
+
"description": "Event source that produced these conversions (for disambiguation when multiple event sources are configured)"
|
|
3844
|
+
},
|
|
3845
|
+
"count": {
|
|
3846
|
+
"type": "number",
|
|
3847
|
+
"description": "Number of conversions from this action source",
|
|
3848
|
+
"minimum": 0
|
|
3849
|
+
},
|
|
3850
|
+
"value": {
|
|
3851
|
+
"type": "number",
|
|
3852
|
+
"description": "Total monetary value of conversions from this action source",
|
|
3853
|
+
"minimum": 0
|
|
3854
|
+
}
|
|
3855
|
+
},
|
|
3856
|
+
"required": [
|
|
3857
|
+
"action_source",
|
|
3858
|
+
"count"
|
|
3859
|
+
],
|
|
3860
|
+
"additionalProperties": true
|
|
3861
|
+
}
|
|
3862
|
+
}
|
|
3863
|
+
},
|
|
3864
|
+
"dependencies": {
|
|
3865
|
+
"reach": [
|
|
3866
|
+
"reach_unit"
|
|
3867
|
+
]
|
|
3868
|
+
},
|
|
3869
|
+
"additionalProperties": true
|
|
3870
|
+
},
|
|
3871
|
+
{
|
|
3872
|
+
"type": "object",
|
|
3873
|
+
"properties": {
|
|
3874
|
+
"placement_id": {
|
|
3875
|
+
"type": "string",
|
|
3876
|
+
"description": "Placement identifier from the product's placements array"
|
|
3877
|
+
},
|
|
3878
|
+
"placement_name": {
|
|
3879
|
+
"type": "string",
|
|
3880
|
+
"description": "Human-readable placement name"
|
|
3881
|
+
}
|
|
3882
|
+
},
|
|
3883
|
+
"required": [
|
|
3884
|
+
"placement_id",
|
|
3885
|
+
"impressions",
|
|
3886
|
+
"spend"
|
|
3887
|
+
]
|
|
3888
|
+
}
|
|
3889
|
+
]
|
|
3890
|
+
}
|
|
3891
|
+
},
|
|
3892
|
+
"by_placement_truncated": {
|
|
3893
|
+
"type": "boolean",
|
|
3894
|
+
"description": "Whether by_placement was truncated. Sellers MUST return this flag whenever by_placement is present (false means the list is complete)."
|
|
3895
|
+
},
|
|
3896
|
+
"daily_breakdown": {
|
|
3897
|
+
"type": "array",
|
|
3898
|
+
"description": "Day-by-day delivery for this package. Only present when include_package_daily_breakdown is true in the request. Enables per-package pacing analysis and line-item monitoring.",
|
|
3899
|
+
"items": {
|
|
3900
|
+
"type": "object",
|
|
3901
|
+
"properties": {
|
|
3902
|
+
"date": {
|
|
3903
|
+
"type": "string",
|
|
3904
|
+
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
|
|
3905
|
+
"description": "Date (YYYY-MM-DD)"
|
|
3906
|
+
},
|
|
3907
|
+
"impressions": {
|
|
3908
|
+
"type": "number",
|
|
3909
|
+
"description": "Daily impressions for this package",
|
|
3910
|
+
"minimum": 0
|
|
3911
|
+
},
|
|
3912
|
+
"spend": {
|
|
3913
|
+
"type": "number",
|
|
3914
|
+
"description": "Daily spend for this package",
|
|
3915
|
+
"minimum": 0
|
|
3916
|
+
},
|
|
3917
|
+
"conversions": {
|
|
3918
|
+
"type": "number",
|
|
3919
|
+
"description": "Daily conversions for this package",
|
|
3920
|
+
"minimum": 0
|
|
3921
|
+
},
|
|
3922
|
+
"conversion_value": {
|
|
3923
|
+
"type": "number",
|
|
3924
|
+
"description": "Daily conversion value for this package",
|
|
3925
|
+
"minimum": 0
|
|
3926
|
+
},
|
|
3927
|
+
"roas": {
|
|
3928
|
+
"type": "number",
|
|
3929
|
+
"description": "Daily return on ad spend (conversion_value / spend)",
|
|
3930
|
+
"minimum": 0
|
|
3931
|
+
},
|
|
3932
|
+
"new_to_brand_rate": {
|
|
3933
|
+
"type": "number",
|
|
3934
|
+
"description": "Daily fraction of conversions from first-time brand buyers (0 = none, 1 = all)",
|
|
3935
|
+
"minimum": 0,
|
|
3936
|
+
"maximum": 1
|
|
3937
|
+
}
|
|
3938
|
+
},
|
|
3939
|
+
"required": [
|
|
3940
|
+
"date",
|
|
3941
|
+
"impressions",
|
|
3942
|
+
"spend"
|
|
3943
|
+
],
|
|
3944
|
+
"additionalProperties": true
|
|
3945
|
+
}
|
|
3946
|
+
}
|
|
3947
|
+
},
|
|
3948
|
+
"required": [
|
|
3949
|
+
"package_id",
|
|
3950
|
+
"spend",
|
|
3951
|
+
"pricing_model",
|
|
3952
|
+
"rate",
|
|
3953
|
+
"currency"
|
|
3954
|
+
]
|
|
3955
|
+
}
|
|
3956
|
+
]
|
|
3957
|
+
}
|
|
3958
|
+
},
|
|
3959
|
+
"daily_breakdown": {
|
|
3960
|
+
"type": "array",
|
|
3961
|
+
"description": "Day-by-day delivery",
|
|
3962
|
+
"items": {
|
|
3963
|
+
"type": "object",
|
|
3964
|
+
"properties": {
|
|
3965
|
+
"date": {
|
|
3966
|
+
"type": "string",
|
|
3967
|
+
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
|
|
3968
|
+
"description": "Date (YYYY-MM-DD)"
|
|
3969
|
+
},
|
|
3970
|
+
"impressions": {
|
|
3971
|
+
"type": "number",
|
|
3972
|
+
"description": "Daily impressions",
|
|
3973
|
+
"minimum": 0
|
|
3974
|
+
},
|
|
3975
|
+
"spend": {
|
|
3976
|
+
"type": "number",
|
|
3977
|
+
"description": "Daily spend",
|
|
3978
|
+
"minimum": 0
|
|
3979
|
+
},
|
|
3980
|
+
"conversions": {
|
|
3981
|
+
"type": "number",
|
|
3982
|
+
"description": "Daily conversions",
|
|
3983
|
+
"minimum": 0
|
|
3984
|
+
},
|
|
3985
|
+
"conversion_value": {
|
|
3986
|
+
"type": "number",
|
|
3987
|
+
"description": "Daily conversion value",
|
|
3988
|
+
"minimum": 0
|
|
3989
|
+
},
|
|
3990
|
+
"roas": {
|
|
3991
|
+
"type": "number",
|
|
3992
|
+
"description": "Daily return on ad spend (conversion_value / spend)",
|
|
3993
|
+
"minimum": 0
|
|
3994
|
+
},
|
|
3995
|
+
"new_to_brand_rate": {
|
|
3996
|
+
"type": "number",
|
|
3997
|
+
"description": "Daily fraction of conversions from first-time brand buyers (0 = none, 1 = all)",
|
|
3998
|
+
"minimum": 0,
|
|
3999
|
+
"maximum": 1
|
|
4000
|
+
}
|
|
4001
|
+
},
|
|
4002
|
+
"required": [
|
|
4003
|
+
"date",
|
|
4004
|
+
"impressions",
|
|
4005
|
+
"spend"
|
|
4006
|
+
],
|
|
4007
|
+
"additionalProperties": true
|
|
4008
|
+
}
|
|
4009
|
+
}
|
|
4010
|
+
},
|
|
4011
|
+
"required": [
|
|
4012
|
+
"media_buy_id",
|
|
4013
|
+
"status",
|
|
4014
|
+
"totals",
|
|
4015
|
+
"by_package"
|
|
4016
|
+
],
|
|
4017
|
+
"additionalProperties": true
|
|
4018
|
+
}
|
|
4019
|
+
},
|
|
4020
|
+
"errors": {
|
|
4021
|
+
"type": "array",
|
|
4022
|
+
"description": "Task-specific errors and warnings (e.g., missing delivery data, reporting platform issues)",
|
|
4023
|
+
"items": {
|
|
4024
|
+
"title": "Error",
|
|
4025
|
+
"description": "Standard error structure for task-specific errors and warnings",
|
|
4026
|
+
"type": "object",
|
|
4027
|
+
"properties": {
|
|
4028
|
+
"code": {
|
|
4029
|
+
"type": "string",
|
|
4030
|
+
"minLength": 1,
|
|
4031
|
+
"maxLength": 64,
|
|
4032
|
+
"description": "Error code for programmatic handling. Standard codes are defined in error-code.json and enable autonomous agent recovery. Sellers MAY use codes not in the standard vocabulary for platform-specific errors; agents MUST handle unknown codes gracefully by falling back to the recovery classification."
|
|
4033
|
+
},
|
|
4034
|
+
"message": {
|
|
4035
|
+
"type": "string",
|
|
4036
|
+
"description": "Human-readable error message"
|
|
4037
|
+
},
|
|
4038
|
+
"field": {
|
|
4039
|
+
"type": "string",
|
|
4040
|
+
"description": "Field path associated with the error (e.g., 'packages[0].targeting')"
|
|
4041
|
+
},
|
|
4042
|
+
"suggestion": {
|
|
4043
|
+
"type": "string",
|
|
4044
|
+
"description": "Suggested fix for the error"
|
|
4045
|
+
},
|
|
4046
|
+
"retry_after": {
|
|
4047
|
+
"type": "number",
|
|
4048
|
+
"description": "Seconds to wait before retrying the operation. Sellers MUST return values between 1 and 3600. Clients MUST clamp values outside this range.",
|
|
4049
|
+
"minimum": 1,
|
|
4050
|
+
"maximum": 3600
|
|
4051
|
+
},
|
|
4052
|
+
"details": {
|
|
4053
|
+
"type": "object",
|
|
4054
|
+
"description": "Additional task-specific error details",
|
|
4055
|
+
"additionalProperties": true
|
|
4056
|
+
},
|
|
4057
|
+
"recovery": {
|
|
4058
|
+
"type": "string",
|
|
4059
|
+
"enum": [
|
|
4060
|
+
"transient",
|
|
4061
|
+
"correctable",
|
|
4062
|
+
"terminal"
|
|
4063
|
+
],
|
|
4064
|
+
"description": "Agent recovery classification. transient: retry after delay (rate limit, service unavailable, timeout). correctable: fix the request and resend (invalid field, budget too low, creative rejected). terminal: requires human action (account suspended, payment required, account not found)."
|
|
4065
|
+
}
|
|
4066
|
+
},
|
|
4067
|
+
"required": [
|
|
4068
|
+
"code",
|
|
4069
|
+
"message"
|
|
4070
|
+
],
|
|
4071
|
+
"additionalProperties": true
|
|
4072
|
+
}
|
|
4073
|
+
},
|
|
4074
|
+
"sandbox": {
|
|
4075
|
+
"type": "boolean",
|
|
4076
|
+
"description": "When true, this response contains simulated data from sandbox mode."
|
|
4077
|
+
},
|
|
4078
|
+
"context": {
|
|
4079
|
+
"title": "Context Object",
|
|
4080
|
+
"description": "Opaque correlation data that is echoed unchanged in responses. Used for internal tracking, UI session IDs, trace IDs, and other caller-specific identifiers that don't affect protocol behavior. Context data is never parsed by AdCP agents - it's simply preserved and returned.",
|
|
4081
|
+
"type": "object",
|
|
4082
|
+
"additionalProperties": true
|
|
4083
|
+
},
|
|
4084
|
+
"ext": {
|
|
4085
|
+
"title": "Extension Object",
|
|
4086
|
+
"description": "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.",
|
|
4087
|
+
"type": "object",
|
|
4088
|
+
"additionalProperties": true
|
|
4089
|
+
}
|
|
4090
|
+
},
|
|
4091
|
+
"required": [
|
|
4092
|
+
"reporting_period",
|
|
4093
|
+
"currency",
|
|
4094
|
+
"media_buy_deliveries"
|
|
4095
|
+
],
|
|
4096
|
+
"additionalProperties": true,
|
|
4097
|
+
"$defs": {
|
|
4098
|
+
"ReachUnit": {
|
|
4099
|
+
"title": "Reach Unit",
|
|
4100
|
+
"description": "Unit of measurement for reach and audience size metrics. Different channels and measurement providers count reach in fundamentally different units, making cross-channel comparison impossible without declaring the unit.",
|
|
4101
|
+
"type": "string",
|
|
4102
|
+
"enum": [
|
|
4103
|
+
"individuals",
|
|
4104
|
+
"households",
|
|
4105
|
+
"devices",
|
|
4106
|
+
"accounts",
|
|
4107
|
+
"cookies",
|
|
4108
|
+
"custom"
|
|
4109
|
+
],
|
|
4110
|
+
"enumDescriptions": {
|
|
4111
|
+
"individuals": "Unique people. Panel-based or identity-resolved measurement.",
|
|
4112
|
+
"households": "Unique households or TV homes.",
|
|
4113
|
+
"devices": "Unique device identifiers (IDFA, GAID, CTV device ID).",
|
|
4114
|
+
"accounts": "Unique logged-in accounts (platform-specific identity).",
|
|
4115
|
+
"cookies": "Unique browser cookies.",
|
|
4116
|
+
"custom": "Publisher-defined reach unit. Describe in ext."
|
|
4117
|
+
}
|
|
4118
|
+
},
|
|
4119
|
+
"PricingModel": {
|
|
4120
|
+
"title": "Pricing Model",
|
|
4121
|
+
"description": "Pricing model used for this media buy",
|
|
4122
|
+
"type": "string",
|
|
4123
|
+
"enum": [
|
|
4124
|
+
"cpm",
|
|
4125
|
+
"vcpm",
|
|
4126
|
+
"cpc",
|
|
4127
|
+
"cpcv",
|
|
4128
|
+
"cpv",
|
|
4129
|
+
"cpp",
|
|
4130
|
+
"cpa",
|
|
4131
|
+
"flat_rate",
|
|
4132
|
+
"time"
|
|
4133
|
+
],
|
|
4134
|
+
"enumDescriptions": {
|
|
4135
|
+
"cpm": "Cost Per Mille - cost per 1,000 impressions",
|
|
4136
|
+
"vcpm": "Viewable Cost Per Mille - cost per 1,000 viewable impressions (MRC standard)",
|
|
4137
|
+
"cpc": "Cost Per Click - cost per click on the ad",
|
|
4138
|
+
"cpcv": "Cost Per Completed View - cost per 100% video/audio completion",
|
|
4139
|
+
"cpv": "Cost Per View - cost per view at publisher-defined threshold (e.g., 50% completion)",
|
|
4140
|
+
"cpp": "Cost Per Point - cost per Gross Rating Point or Target Rating Point (TV/audio)",
|
|
4141
|
+
"cpa": "Cost Per Acquisition - cost per conversion event (purchase, lead, signup, etc.)",
|
|
4142
|
+
"flat_rate": "Flat Rate - fixed cost regardless of delivery volume (sponsorships, takeovers)",
|
|
4143
|
+
"time": "Time - cost per time unit (hour, day, week, or month) that scales with campaign duration"
|
|
4144
|
+
}
|
|
4145
|
+
},
|
|
4146
|
+
"EventType": {
|
|
4147
|
+
"title": "Event Type",
|
|
4148
|
+
"description": "The event type",
|
|
4149
|
+
"type": "string",
|
|
4150
|
+
"enum": [
|
|
4151
|
+
"page_view",
|
|
4152
|
+
"view_content",
|
|
4153
|
+
"select_content",
|
|
4154
|
+
"select_item",
|
|
4155
|
+
"search",
|
|
4156
|
+
"share",
|
|
4157
|
+
"add_to_cart",
|
|
4158
|
+
"remove_from_cart",
|
|
4159
|
+
"viewed_cart",
|
|
4160
|
+
"add_to_wishlist",
|
|
4161
|
+
"initiate_checkout",
|
|
4162
|
+
"add_payment_info",
|
|
4163
|
+
"purchase",
|
|
4164
|
+
"refund",
|
|
4165
|
+
"lead",
|
|
4166
|
+
"qualify_lead",
|
|
4167
|
+
"close_convert_lead",
|
|
4168
|
+
"disqualify_lead",
|
|
4169
|
+
"complete_registration",
|
|
4170
|
+
"subscribe",
|
|
4171
|
+
"start_trial",
|
|
4172
|
+
"app_install",
|
|
4173
|
+
"app_launch",
|
|
4174
|
+
"contact",
|
|
4175
|
+
"schedule",
|
|
4176
|
+
"donate",
|
|
4177
|
+
"submit_application",
|
|
4178
|
+
"custom"
|
|
4179
|
+
],
|
|
4180
|
+
"enumDescriptions": {
|
|
4181
|
+
"page_view": "User viewed a page",
|
|
4182
|
+
"view_content": "User viewed specific content (product, article, etc.)",
|
|
4183
|
+
"select_content": "User selected or clicked on content (article, video, etc.)",
|
|
4184
|
+
"select_item": "User selected a specific product or item from a list",
|
|
4185
|
+
"search": "User performed a search",
|
|
4186
|
+
"share": "User shared content via social or messaging",
|
|
4187
|
+
"add_to_cart": "User added an item to cart",
|
|
4188
|
+
"remove_from_cart": "User removed an item from cart",
|
|
4189
|
+
"viewed_cart": "User viewed their shopping cart",
|
|
4190
|
+
"add_to_wishlist": "User added an item to a wishlist",
|
|
4191
|
+
"initiate_checkout": "User started checkout process",
|
|
4192
|
+
"add_payment_info": "User added payment information",
|
|
4193
|
+
"purchase": "User completed a purchase",
|
|
4194
|
+
"refund": "A purchase was fully or partially refunded (adjusts ROAS)",
|
|
4195
|
+
"lead": "User expressed interest (form submission, signup, etc.)",
|
|
4196
|
+
"qualify_lead": "Lead qualified by sales or scoring criteria",
|
|
4197
|
+
"close_convert_lead": "Lead converted to a customer or closed deal",
|
|
4198
|
+
"disqualify_lead": "Lead disqualified or marked as not viable",
|
|
4199
|
+
"complete_registration": "User completed account registration",
|
|
4200
|
+
"subscribe": "User subscribed to a service or newsletter",
|
|
4201
|
+
"start_trial": "User started a free trial",
|
|
4202
|
+
"app_install": "User installed an application",
|
|
4203
|
+
"app_launch": "User launched an application",
|
|
4204
|
+
"contact": "User initiated contact (call, message, etc.)",
|
|
4205
|
+
"schedule": "User scheduled an appointment or event",
|
|
4206
|
+
"donate": "User made a donation",
|
|
4207
|
+
"submit_application": "User submitted an application (loan, job, etc.)",
|
|
4208
|
+
"custom": "Custom event type (specify in custom_event_name)"
|
|
4209
|
+
}
|
|
4210
|
+
},
|
|
4211
|
+
"ViewabilityStandard": {
|
|
4212
|
+
"title": "Viewability Standard",
|
|
4213
|
+
"description": "Viewability measurement standard applied to these metrics.",
|
|
4214
|
+
"type": "string",
|
|
4215
|
+
"enum": [
|
|
4216
|
+
"mrc",
|
|
4217
|
+
"groupm"
|
|
4218
|
+
],
|
|
4219
|
+
"enumDescriptions": {
|
|
4220
|
+
"mrc": "MRC/IAB standard: 50% of pixels in view for 1 continuous second (display) or 2 continuous seconds (video).",
|
|
4221
|
+
"groupm": "GroupM standard: 100% of pixels in view for 1 continuous second (display) or 50% of video duration."
|
|
4222
|
+
}
|
|
4223
|
+
},
|
|
4224
|
+
"ActionSource": {
|
|
4225
|
+
"title": "Action Source",
|
|
4226
|
+
"description": "Where the conversion occurred",
|
|
4227
|
+
"type": "string",
|
|
4228
|
+
"enum": [
|
|
4229
|
+
"website",
|
|
4230
|
+
"app",
|
|
4231
|
+
"offline",
|
|
4232
|
+
"phone_call",
|
|
4233
|
+
"chat",
|
|
4234
|
+
"email",
|
|
4235
|
+
"in_store",
|
|
4236
|
+
"system_generated",
|
|
4237
|
+
"other"
|
|
4238
|
+
],
|
|
4239
|
+
"enumDescriptions": {
|
|
4240
|
+
"website": "Event occurred on a website",
|
|
4241
|
+
"app": "Event occurred in a mobile or desktop app",
|
|
4242
|
+
"offline": "Event occurred offline (imported data)",
|
|
4243
|
+
"phone_call": "Event originated from a phone call",
|
|
4244
|
+
"chat": "Event originated from a chat conversation",
|
|
4245
|
+
"email": "Event originated from an email interaction",
|
|
4246
|
+
"in_store": "Event occurred at a physical retail location",
|
|
4247
|
+
"system_generated": "Event generated by an automated system",
|
|
4248
|
+
"other": "Other source (specify in ext)"
|
|
4249
|
+
}
|
|
4250
|
+
}
|
|
4251
|
+
},
|
|
4252
|
+
"_bundled": {
|
|
4253
|
+
"generatedAt": "2026-04-28T12:32:22.983Z",
|
|
4254
|
+
"note": "This is a bundled schema with all $ref resolved inline. For the modular version with references, use the parent directory."
|
|
4255
|
+
}
|
|
4256
|
+
}
|