@adcp/sdk 6.0.0 → 6.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/adapters/legacy/v2-5/create_media_buy.d.ts +4 -0
- package/dist/lib/adapters/legacy/v2-5/create_media_buy.d.ts.map +1 -0
- package/dist/lib/adapters/legacy/v2-5/create_media_buy.js +10 -0
- package/dist/lib/adapters/legacy/v2-5/create_media_buy.js.map +1 -0
- package/dist/lib/adapters/legacy/v2-5/get_products.d.ts +9 -0
- package/dist/lib/adapters/legacy/v2-5/get_products.d.ts.map +1 -0
- package/dist/lib/adapters/legacy/v2-5/get_products.js +15 -0
- package/dist/lib/adapters/legacy/v2-5/get_products.js.map +1 -0
- package/dist/lib/adapters/legacy/v2-5/index.d.ts +35 -0
- package/dist/lib/adapters/legacy/v2-5/index.d.ts.map +1 -0
- package/dist/lib/adapters/legacy/v2-5/index.js +56 -0
- package/dist/lib/adapters/legacy/v2-5/index.js.map +1 -0
- package/dist/lib/adapters/legacy/v2-5/list_creative_formats.d.ts +9 -0
- package/dist/lib/adapters/legacy/v2-5/list_creative_formats.d.ts.map +1 -0
- package/dist/lib/adapters/legacy/v2-5/list_creative_formats.js +15 -0
- package/dist/lib/adapters/legacy/v2-5/list_creative_formats.js.map +1 -0
- package/dist/lib/adapters/legacy/v2-5/preview_creative.d.ts +4 -0
- package/dist/lib/adapters/legacy/v2-5/preview_creative.d.ts.map +1 -0
- package/dist/lib/adapters/legacy/v2-5/preview_creative.js +10 -0
- package/dist/lib/adapters/legacy/v2-5/preview_creative.js.map +1 -0
- package/dist/lib/adapters/legacy/v2-5/sync_creatives.d.ts +11 -0
- package/dist/lib/adapters/legacy/v2-5/sync_creatives.d.ts.map +1 -0
- package/dist/lib/adapters/legacy/v2-5/sync_creatives.js +16 -0
- package/dist/lib/adapters/legacy/v2-5/sync_creatives.js.map +1 -0
- package/dist/lib/adapters/legacy/v2-5/types.d.ts +40 -0
- package/dist/lib/adapters/legacy/v2-5/types.d.ts.map +1 -0
- package/dist/lib/adapters/legacy/v2-5/types.js +25 -0
- package/dist/lib/adapters/legacy/v2-5/types.js.map +1 -0
- package/dist/lib/adapters/legacy/v2-5/update_media_buy.d.ts +4 -0
- package/dist/lib/adapters/legacy/v2-5/update_media_buy.d.ts.map +1 -0
- package/dist/lib/adapters/legacy/v2-5/update_media_buy.js +12 -0
- package/dist/lib/adapters/legacy/v2-5/update_media_buy.js.map +1 -0
- package/dist/lib/core/AgentClient.d.ts.map +1 -1
- package/dist/lib/core/ConversationTypes.d.ts +7 -0
- package/dist/lib/core/ConversationTypes.d.ts.map +1 -1
- package/dist/lib/core/SingleAgentClient.d.ts +9 -14
- package/dist/lib/core/SingleAgentClient.d.ts.map +1 -1
- package/dist/lib/core/SingleAgentClient.js +103 -35
- package/dist/lib/core/SingleAgentClient.js.map +1 -1
- package/dist/lib/core/TaskExecutor.d.ts +19 -0
- package/dist/lib/core/TaskExecutor.d.ts.map +1 -1
- package/dist/lib/core/TaskExecutor.js +28 -1
- package/dist/lib/core/TaskExecutor.js.map +1 -1
- package/dist/lib/errors/index.d.ts +30 -0
- package/dist/lib/errors/index.d.ts.map +1 -1
- package/dist/lib/errors/index.js +36 -1
- package/dist/lib/errors/index.js.map +1 -1
- package/dist/lib/index.d.ts +4 -2
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +12 -8
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/protocols/a2a.d.ts.map +1 -1
- package/dist/lib/protocols/a2a.js +5 -1
- package/dist/lib/protocols/a2a.js.map +1 -1
- package/dist/lib/protocols/index.d.ts +53 -3
- package/dist/lib/protocols/index.d.ts.map +1 -1
- package/dist/lib/protocols/index.js +19 -8
- package/dist/lib/protocols/index.js.map +1 -1
- package/dist/lib/protocols/mcp.d.ts.map +1 -1
- package/dist/lib/protocols/mcp.js +13 -5
- package/dist/lib/protocols/mcp.js.map +1 -1
- package/dist/lib/protocols/responseSizeLimit.d.ts +25 -0
- package/dist/lib/protocols/responseSizeLimit.d.ts.map +1 -0
- package/dist/lib/protocols/responseSizeLimit.js +141 -0
- package/dist/lib/protocols/responseSizeLimit.js.map +1 -0
- package/dist/lib/schemas-data/v2.5/_provenance.json +8 -0
- package/dist/lib/schemas-data/v2.5/adagents.json +494 -0
- package/dist/lib/schemas-data/v2.5/core/activation-key.json +50 -0
- package/dist/lib/schemas-data/v2.5/core/assets/audio-asset.json +32 -0
- package/dist/lib/schemas-data/v2.5/core/assets/css-asset.json +21 -0
- package/dist/lib/schemas-data/v2.5/core/assets/daast-asset.json +87 -0
- package/dist/lib/schemas-data/v2.5/core/assets/html-asset.json +21 -0
- package/dist/lib/schemas-data/v2.5/core/assets/image-asset.json +38 -0
- package/dist/lib/schemas-data/v2.5/core/assets/javascript-asset.json +21 -0
- package/dist/lib/schemas-data/v2.5/core/assets/markdown-asset.json +31 -0
- package/dist/lib/schemas-data/v2.5/core/assets/text-asset.json +21 -0
- package/dist/lib/schemas-data/v2.5/core/assets/url-asset.json +26 -0
- package/dist/lib/schemas-data/v2.5/core/assets/vast-asset.json +87 -0
- package/dist/lib/schemas-data/v2.5/core/assets/video-asset.json +44 -0
- package/dist/lib/schemas-data/v2.5/core/assets/webhook-asset.json +71 -0
- package/dist/lib/schemas-data/v2.5/core/async-response-data.json +88 -0
- package/dist/lib/schemas-data/v2.5/core/brand-manifest-ref.json +33 -0
- package/dist/lib/schemas-data/v2.5/core/brand-manifest.json +409 -0
- package/dist/lib/schemas-data/v2.5/core/context.json +8 -0
- package/dist/lib/schemas-data/v2.5/core/creative-asset.json +125 -0
- package/dist/lib/schemas-data/v2.5/core/creative-assignment.json +31 -0
- package/dist/lib/schemas-data/v2.5/core/creative-filters.json +111 -0
- package/dist/lib/schemas-data/v2.5/core/creative-manifest.json +72 -0
- package/dist/lib/schemas-data/v2.5/core/creative-policy.json +27 -0
- package/dist/lib/schemas-data/v2.5/core/delivery-metrics.json +171 -0
- package/dist/lib/schemas-data/v2.5/core/deployment.json +93 -0
- package/dist/lib/schemas-data/v2.5/core/destination.json +53 -0
- package/dist/lib/schemas-data/v2.5/core/error.json +40 -0
- package/dist/lib/schemas-data/v2.5/core/ext.json +8 -0
- package/dist/lib/schemas-data/v2.5/core/format-id.json +47 -0
- package/dist/lib/schemas-data/v2.5/core/format.json +324 -0
- package/dist/lib/schemas-data/v2.5/core/frequency-cap.json +18 -0
- package/dist/lib/schemas-data/v2.5/core/mcp-webhook-payload.json +152 -0
- package/dist/lib/schemas-data/v2.5/core/measurement.json +48 -0
- package/dist/lib/schemas-data/v2.5/core/media-buy.json +62 -0
- package/dist/lib/schemas-data/v2.5/core/package.json +72 -0
- package/dist/lib/schemas-data/v2.5/core/performance-feedback.json +90 -0
- package/dist/lib/schemas-data/v2.5/core/placement.json +34 -0
- package/dist/lib/schemas-data/v2.5/core/pricing-option.json +35 -0
- package/dist/lib/schemas-data/v2.5/core/product-filters.json +102 -0
- package/dist/lib/schemas-data/v2.5/core/product.json +153 -0
- package/dist/lib/schemas-data/v2.5/core/promoted-offerings.json +115 -0
- package/dist/lib/schemas-data/v2.5/core/promoted-products.json +67 -0
- package/dist/lib/schemas-data/v2.5/core/property-id.json +14 -0
- package/dist/lib/schemas-data/v2.5/core/property-tag.json +16 -0
- package/dist/lib/schemas-data/v2.5/core/property.json +62 -0
- package/dist/lib/schemas-data/v2.5/core/protocol-envelope.json +146 -0
- package/dist/lib/schemas-data/v2.5/core/publisher-property-selector.json +92 -0
- package/dist/lib/schemas-data/v2.5/core/push-notification-config.json +48 -0
- package/dist/lib/schemas-data/v2.5/core/reporting-capabilities.json +71 -0
- package/dist/lib/schemas-data/v2.5/core/response.json +24 -0
- package/dist/lib/schemas-data/v2.5/core/signal-filters.json +35 -0
- package/dist/lib/schemas-data/v2.5/core/start-timing.json +18 -0
- package/dist/lib/schemas-data/v2.5/core/sub-asset.json +79 -0
- package/dist/lib/schemas-data/v2.5/core/targeting.json +50 -0
- package/dist/lib/schemas-data/v2.5/core/tasks-get-request.json +43 -0
- package/dist/lib/schemas-data/v2.5/core/tasks-get-response.json +166 -0
- package/dist/lib/schemas-data/v2.5/core/tasks-list-request.json +192 -0
- package/dist/lib/schemas-data/v2.5/core/tasks-list-response.json +183 -0
- package/dist/lib/schemas-data/v2.5/creative/asset-types/index.json +101 -0
- package/dist/lib/schemas-data/v2.5/creative/list-creative-formats-request.json +73 -0
- package/dist/lib/schemas-data/v2.5/creative/list-creative-formats-response.json +61 -0
- package/dist/lib/schemas-data/v2.5/creative/preview-creative-request.json +164 -0
- package/dist/lib/schemas-data/v2.5/creative/preview-creative-response.json +245 -0
- package/dist/lib/schemas-data/v2.5/creative/preview-render.json +225 -0
- package/dist/lib/schemas-data/v2.5/enums/adcp-domain.json +11 -0
- package/dist/lib/schemas-data/v2.5/enums/asset-content-type.json +22 -0
- package/dist/lib/schemas-data/v2.5/enums/auth-scheme.json +11 -0
- package/dist/lib/schemas-data/v2.5/enums/available-metric.json +18 -0
- package/dist/lib/schemas-data/v2.5/enums/channels.json +18 -0
- package/dist/lib/schemas-data/v2.5/enums/co-branding-requirement.json +12 -0
- package/dist/lib/schemas-data/v2.5/enums/creative-action.json +14 -0
- package/dist/lib/schemas-data/v2.5/enums/creative-agent-capability.json +13 -0
- package/dist/lib/schemas-data/v2.5/enums/creative-sort-field.json +15 -0
- package/dist/lib/schemas-data/v2.5/enums/creative-status.json +19 -0
- package/dist/lib/schemas-data/v2.5/enums/daast-tracking-event.json +20 -0
- package/dist/lib/schemas-data/v2.5/enums/daast-version.json +11 -0
- package/dist/lib/schemas-data/v2.5/enums/delivery-type.json +15 -0
- package/dist/lib/schemas-data/v2.5/enums/dimension-unit.json +13 -0
- package/dist/lib/schemas-data/v2.5/enums/feed-format.json +12 -0
- package/dist/lib/schemas-data/v2.5/enums/feedback-source.json +13 -0
- package/dist/lib/schemas-data/v2.5/enums/format-category.json +16 -0
- package/dist/lib/schemas-data/v2.5/enums/format-id-parameter.json +11 -0
- package/dist/lib/schemas-data/v2.5/enums/frequency-cap-scope.json +13 -0
- package/dist/lib/schemas-data/v2.5/enums/history-entry-type.json +11 -0
- package/dist/lib/schemas-data/v2.5/enums/http-method.json +11 -0
- package/dist/lib/schemas-data/v2.5/enums/identifier-types.json +34 -0
- package/dist/lib/schemas-data/v2.5/enums/javascript-module-type.json +12 -0
- package/dist/lib/schemas-data/v2.5/enums/landing-page-requirement.json +12 -0
- package/dist/lib/schemas-data/v2.5/enums/markdown-flavor.json +11 -0
- package/dist/lib/schemas-data/v2.5/enums/media-buy-status.json +19 -0
- package/dist/lib/schemas-data/v2.5/enums/metric-type.json +17 -0
- package/dist/lib/schemas-data/v2.5/enums/notification-type.json +13 -0
- package/dist/lib/schemas-data/v2.5/enums/pacing.json +17 -0
- package/dist/lib/schemas-data/v2.5/enums/preview-output-format.json +11 -0
- package/dist/lib/schemas-data/v2.5/enums/pricing-model.json +25 -0
- package/dist/lib/schemas-data/v2.5/enums/property-type.json +16 -0
- package/dist/lib/schemas-data/v2.5/enums/publisher-identifier-types.json +19 -0
- package/dist/lib/schemas-data/v2.5/enums/reporting-frequency.json +12 -0
- package/dist/lib/schemas-data/v2.5/enums/signal-catalog-type.json +12 -0
- package/dist/lib/schemas-data/v2.5/enums/sort-direction.json +11 -0
- package/dist/lib/schemas-data/v2.5/enums/standard-format-ids.json +103 -0
- package/dist/lib/schemas-data/v2.5/enums/task-status.json +29 -0
- package/dist/lib/schemas-data/v2.5/enums/task-type.json +27 -0
- package/dist/lib/schemas-data/v2.5/enums/update-frequency.json +13 -0
- package/dist/lib/schemas-data/v2.5/enums/url-asset-type.json +12 -0
- package/dist/lib/schemas-data/v2.5/enums/validation-mode.json +11 -0
- package/dist/lib/schemas-data/v2.5/enums/vast-tracking-event.json +25 -0
- package/dist/lib/schemas-data/v2.5/enums/vast-version.json +14 -0
- package/dist/lib/schemas-data/v2.5/enums/webhook-response-type.json +13 -0
- package/dist/lib/schemas-data/v2.5/enums/webhook-security-method.json +12 -0
- package/dist/lib/schemas-data/v2.5/index.json +604 -0
- package/dist/lib/schemas-data/v2.5/media-buy/build-creative-request.json +31 -0
- package/dist/lib/schemas-data/v2.5/media-buy/build-creative-response.json +65 -0
- package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-async-response-input-required.json +31 -0
- package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-async-response-submitted.json +16 -0
- package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-async-response-working.json +36 -0
- package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-request.json +126 -0
- package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-response.json +97 -0
- package/dist/lib/schemas-data/v2.5/media-buy/get-media-buy-delivery-request.json +54 -0
- package/dist/lib/schemas-data/v2.5/media-buy/get-media-buy-delivery-response.json +285 -0
- package/dist/lib/schemas-data/v2.5/media-buy/get-products-async-response-input-required.json +38 -0
- package/dist/lib/schemas-data/v2.5/media-buy/get-products-async-response-submitted.json +21 -0
- package/dist/lib/schemas-data/v2.5/media-buy/get-products-async-response-working.json +34 -0
- package/dist/lib/schemas-data/v2.5/media-buy/get-products-request.json +28 -0
- package/dist/lib/schemas-data/v2.5/media-buy/get-products-response.json +33 -0
- package/dist/lib/schemas-data/v2.5/media-buy/list-authorized-properties-request.json +26 -0
- package/dist/lib/schemas-data/v2.5/media-buy/list-authorized-properties-response.json +70 -0
- package/dist/lib/schemas-data/v2.5/media-buy/list-creative-formats-request.json +58 -0
- package/dist/lib/schemas-data/v2.5/media-buy/list-creative-formats-response.json +61 -0
- package/dist/lib/schemas-data/v2.5/media-buy/list-creatives-request.json +137 -0
- package/dist/lib/schemas-data/v2.5/media-buy/list-creatives-response.json +437 -0
- package/dist/lib/schemas-data/v2.5/media-buy/package-request.json +80 -0
- package/dist/lib/schemas-data/v2.5/media-buy/provide-performance-feedback-request.json +88 -0
- package/dist/lib/schemas-data/v2.5/media-buy/provide-performance-feedback-response.json +66 -0
- package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-async-response-input-required.json +25 -0
- package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-async-response-submitted.json +16 -0
- package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-async-response-working.json +46 -0
- package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-request.json +178 -0
- package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-response.json +149 -0
- package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-async-response-input-required.json +24 -0
- package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-async-response-submitted.json +16 -0
- package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-async-response-working.json +36 -0
- package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-request.json +129 -0
- package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-response.json +99 -0
- package/dist/lib/schemas-data/v2.5/pricing-options/cpc-option.json +52 -0
- package/dist/lib/schemas-data/v2.5/pricing-options/cpcv-option.json +52 -0
- package/dist/lib/schemas-data/v2.5/pricing-options/cpm-auction-option.json +81 -0
- package/dist/lib/schemas-data/v2.5/pricing-options/cpm-fixed-option.json +52 -0
- package/dist/lib/schemas-data/v2.5/pricing-options/cpp-option.json +73 -0
- package/dist/lib/schemas-data/v2.5/pricing-options/cpv-option.json +88 -0
- package/dist/lib/schemas-data/v2.5/pricing-options/flat-rate-option.json +93 -0
- package/dist/lib/schemas-data/v2.5/pricing-options/vcpm-auction-option.json +81 -0
- package/dist/lib/schemas-data/v2.5/pricing-options/vcpm-fixed-option.json +52 -0
- package/dist/lib/schemas-data/v2.5/protocols/adcp-extension.json +33 -0
- package/dist/lib/schemas-data/v2.5/signals/activate-signal-request.json +32 -0
- package/dist/lib/schemas-data/v2.5/signals/activate-signal-response.json +68 -0
- package/dist/lib/schemas-data/v2.5/signals/get-signals-request.json +59 -0
- package/dist/lib/schemas-data/v2.5/signals/get-signals-response.json +100 -0
- package/dist/lib/server/create-adcp-server.d.ts.map +1 -1
- package/dist/lib/server/create-adcp-server.js +40 -25
- package/dist/lib/server/create-adcp-server.js.map +1 -1
- package/dist/lib/server/decisioning/async-outcome.d.ts +16 -10
- package/dist/lib/server/decisioning/async-outcome.d.ts.map +1 -1
- package/dist/lib/server/decisioning/async-outcome.js +15 -56
- package/dist/lib/server/decisioning/async-outcome.js.map +1 -1
- package/dist/lib/server/decisioning/errors-typed.d.ts +10 -4
- package/dist/lib/server/decisioning/errors-typed.d.ts.map +1 -1
- package/dist/lib/server/decisioning/errors-typed.js +13 -29
- package/dist/lib/server/decisioning/errors-typed.js.map +1 -1
- package/dist/lib/server/decisioning/helpers.d.ts.map +1 -1
- package/dist/lib/server/decisioning/helpers.js +0 -2
- package/dist/lib/server/decisioning/helpers.js.map +1 -1
- package/dist/lib/server/decisioning/manifest-helpers.d.ts.map +1 -1
- package/dist/lib/server/decisioning/manifest-helpers.js +0 -2
- package/dist/lib/server/decisioning/manifest-helpers.js.map +1 -1
- package/dist/lib/server/decisioning/runtime/from-platform.js +0 -9
- package/dist/lib/server/decisioning/runtime/from-platform.js.map +1 -1
- package/dist/lib/server/decisioning/start-time.d.ts.map +1 -1
- package/dist/lib/server/decisioning/start-time.js +0 -2
- package/dist/lib/server/decisioning/start-time.js.map +1 -1
- package/dist/lib/testing/storyboard/runner.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/runner.js +107 -26
- package/dist/lib/testing/storyboard/runner.js.map +1 -1
- package/dist/lib/types/error-codes.d.ts +196 -9
- package/dist/lib/types/error-codes.d.ts.map +1 -1
- package/dist/lib/types/error-codes.js +104 -26
- package/dist/lib/types/error-codes.js.map +1 -1
- package/dist/lib/types/v2-5/index.d.ts +2 -0
- package/dist/lib/types/v2-5/index.d.ts.map +1 -0
- package/dist/lib/types/v2-5/index.js +30 -0
- package/dist/lib/types/v2-5/index.js.map +1 -0
- package/dist/lib/types/v2-5/tools.generated.d.ts +3507 -0
- package/dist/lib/types/v2-5/tools.generated.d.ts.map +1 -0
- package/dist/lib/types/v2-5/tools.generated.js +6 -0
- package/dist/lib/types/v2-5/tools.generated.js.map +1 -0
- package/dist/lib/utils/buyer-retry-policy.d.ts +136 -0
- package/dist/lib/utils/buyer-retry-policy.d.ts.map +1 -0
- package/dist/lib/utils/buyer-retry-policy.js +247 -0
- package/dist/lib/utils/buyer-retry-policy.js.map +1 -0
- package/dist/lib/utils/creative-adapter.d.ts +32 -2
- package/dist/lib/utils/creative-adapter.d.ts.map +1 -1
- package/dist/lib/utils/creative-adapter.js +42 -6
- package/dist/lib/utils/creative-adapter.js.map +1 -1
- package/dist/lib/utils/sync-creatives-adapter.d.ts +18 -8
- package/dist/lib/utils/sync-creatives-adapter.d.ts.map +1 -1
- package/dist/lib/utils/sync-creatives-adapter.js +70 -17
- package/dist/lib/utils/sync-creatives-adapter.js.map +1 -1
- package/dist/lib/validation/client-hooks.d.ts +13 -8
- package/dist/lib/validation/client-hooks.d.ts.map +1 -1
- package/dist/lib/validation/client-hooks.js +12 -12
- package/dist/lib/validation/client-hooks.js.map +1 -1
- package/dist/lib/validation/schema-loader.d.ts.map +1 -1
- package/dist/lib/validation/schema-loader.js +20 -2
- package/dist/lib/validation/schema-loader.js.map +1 -1
- package/dist/lib/version.d.ts +3 -3
- package/dist/lib/version.js +3 -3
- package/docs/guides/BUILD-AN-AGENT.md +2 -0
- package/docs/llms.txt +39 -22
- package/package.json +17 -5
- package/skills/build-seller-agent/SKILL.md +38 -5
- package/skills/build-seller-agent/specialisms/sales-guaranteed.md +4 -3
- package/skills/call-adcp-agent.previous/SKILL.md +83 -4
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "/schemas/core/format.json",
|
|
4
|
+
"title": "Format",
|
|
5
|
+
"description": "Represents a creative format with its requirements",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"format_id": {
|
|
9
|
+
"$ref": "/schemas/core/format-id.json",
|
|
10
|
+
"description": "Structured format identifier with agent URL and format name"
|
|
11
|
+
},
|
|
12
|
+
"name": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"description": "Human-readable format name"
|
|
15
|
+
},
|
|
16
|
+
"description": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"description": "Plain text explanation of what this format does and what assets it requires"
|
|
19
|
+
},
|
|
20
|
+
"preview_image": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"format": "uri",
|
|
23
|
+
"description": "DEPRECATED: Use format_card instead. Optional preview image URL for format browsing/discovery UI. Should be 400x300px (4:3 aspect ratio) PNG or JPG. Used as thumbnail/card image in format browsers. This field is maintained for backward compatibility but format_card provides a more flexible, structured approach."
|
|
24
|
+
},
|
|
25
|
+
"example_url": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"format": "uri",
|
|
28
|
+
"description": "Optional URL to showcase page with examples and interactive demos of this format"
|
|
29
|
+
},
|
|
30
|
+
"type": {
|
|
31
|
+
"$ref": "/schemas/enums/format-category.json",
|
|
32
|
+
"description": "Media type of this format - determines rendering method and asset requirements"
|
|
33
|
+
},
|
|
34
|
+
"accepts_parameters": {
|
|
35
|
+
"type": "array",
|
|
36
|
+
"description": "List of parameters this format accepts in format_id. Template formats define which parameters (dimensions, duration, etc.) can be specified when instantiating the format. Empty or omitted means this is a concrete format with fixed parameters.",
|
|
37
|
+
"items": {
|
|
38
|
+
"$ref": "/schemas/enums/format-id-parameter.json"
|
|
39
|
+
},
|
|
40
|
+
"uniqueItems": true
|
|
41
|
+
},
|
|
42
|
+
"renders": {
|
|
43
|
+
"type": "array",
|
|
44
|
+
"description": "Specification of rendered pieces for this format. Most formats produce a single render. Companion ad formats (video + banner), adaptive formats, and multi-placement formats produce multiple renders. Each render specifies its role and dimensions.",
|
|
45
|
+
"items": {
|
|
46
|
+
"type": "object",
|
|
47
|
+
"properties": {
|
|
48
|
+
"role": {
|
|
49
|
+
"type": "string",
|
|
50
|
+
"description": "Semantic role of this rendered piece (e.g., 'primary', 'companion', 'mobile_variant')"
|
|
51
|
+
},
|
|
52
|
+
"parameters_from_format_id": {
|
|
53
|
+
"type": "boolean",
|
|
54
|
+
"description": "When true, parameters for this render (dimensions and/or duration) are specified in the format_id. Used for template formats that accept parameters. Mutually exclusive with specifying dimensions object explicitly."
|
|
55
|
+
},
|
|
56
|
+
"dimensions": {
|
|
57
|
+
"type": "object",
|
|
58
|
+
"description": "Dimensions for this rendered piece (in pixels)",
|
|
59
|
+
"properties": {
|
|
60
|
+
"width": {
|
|
61
|
+
"type": "integer",
|
|
62
|
+
"minimum": 1,
|
|
63
|
+
"description": "Fixed width in pixels"
|
|
64
|
+
},
|
|
65
|
+
"height": {
|
|
66
|
+
"type": "integer",
|
|
67
|
+
"minimum": 1,
|
|
68
|
+
"description": "Fixed height in pixels"
|
|
69
|
+
},
|
|
70
|
+
"min_width": {
|
|
71
|
+
"type": "integer",
|
|
72
|
+
"minimum": 1,
|
|
73
|
+
"description": "Minimum width in pixels for responsive renders"
|
|
74
|
+
},
|
|
75
|
+
"min_height": {
|
|
76
|
+
"type": "integer",
|
|
77
|
+
"minimum": 1,
|
|
78
|
+
"description": "Minimum height in pixels for responsive renders"
|
|
79
|
+
},
|
|
80
|
+
"max_width": {
|
|
81
|
+
"type": "integer",
|
|
82
|
+
"minimum": 1,
|
|
83
|
+
"description": "Maximum width in pixels for responsive renders"
|
|
84
|
+
},
|
|
85
|
+
"max_height": {
|
|
86
|
+
"type": "integer",
|
|
87
|
+
"minimum": 1,
|
|
88
|
+
"description": "Maximum height in pixels for responsive renders"
|
|
89
|
+
},
|
|
90
|
+
"responsive": {
|
|
91
|
+
"type": "object",
|
|
92
|
+
"description": "Indicates which dimensions are responsive/fluid",
|
|
93
|
+
"properties": {
|
|
94
|
+
"width": {
|
|
95
|
+
"type": "boolean"
|
|
96
|
+
},
|
|
97
|
+
"height": {
|
|
98
|
+
"type": "boolean"
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
"required": [
|
|
102
|
+
"width",
|
|
103
|
+
"height"
|
|
104
|
+
]
|
|
105
|
+
},
|
|
106
|
+
"aspect_ratio": {
|
|
107
|
+
"type": "string",
|
|
108
|
+
"description": "Fixed aspect ratio constraint (e.g., '16:9', '4:3', '1:1')",
|
|
109
|
+
"pattern": "^\\d+:\\d+$"
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
"required": [
|
|
115
|
+
"role"
|
|
116
|
+
],
|
|
117
|
+
"oneOf": [
|
|
118
|
+
{
|
|
119
|
+
"required": [
|
|
120
|
+
"dimensions"
|
|
121
|
+
],
|
|
122
|
+
"not": {
|
|
123
|
+
"required": [
|
|
124
|
+
"parameters_from_format_id"
|
|
125
|
+
]
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"required": [
|
|
130
|
+
"parameters_from_format_id"
|
|
131
|
+
],
|
|
132
|
+
"properties": {
|
|
133
|
+
"parameters_from_format_id": {
|
|
134
|
+
"const": true
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
"not": {
|
|
138
|
+
"required": [
|
|
139
|
+
"dimensions"
|
|
140
|
+
]
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
]
|
|
144
|
+
},
|
|
145
|
+
"minItems": 1
|
|
146
|
+
},
|
|
147
|
+
"assets_required": {
|
|
148
|
+
"type": "array",
|
|
149
|
+
"description": "Array of required assets or asset groups for this format. Each asset is identified by its asset_id, which must be used as the key in creative manifests. Can contain individual assets or repeatable asset sequences (e.g., carousel products, slideshow frames).",
|
|
150
|
+
"items": {
|
|
151
|
+
"oneOf": [
|
|
152
|
+
{
|
|
153
|
+
"description": "Individual asset requirement",
|
|
154
|
+
"type": "object",
|
|
155
|
+
"properties": {
|
|
156
|
+
"item_type": {
|
|
157
|
+
"type": "string",
|
|
158
|
+
"const": "individual",
|
|
159
|
+
"description": "Discriminator indicating this is an individual asset requirement"
|
|
160
|
+
},
|
|
161
|
+
"asset_id": {
|
|
162
|
+
"type": "string",
|
|
163
|
+
"description": "Unique identifier for this asset. Creative manifests MUST use this exact value as the key in the assets object."
|
|
164
|
+
},
|
|
165
|
+
"asset_type": {
|
|
166
|
+
"$ref": "/schemas/enums/asset-content-type.json",
|
|
167
|
+
"description": "Type of asset"
|
|
168
|
+
},
|
|
169
|
+
"asset_role": {
|
|
170
|
+
"type": "string",
|
|
171
|
+
"description": "Optional descriptive label for this asset's purpose (e.g., 'hero_image', 'logo'). Not used for referencing assets in manifests\u2014use asset_id instead. This field is for human-readable documentation and UI display only."
|
|
172
|
+
},
|
|
173
|
+
"required": {
|
|
174
|
+
"type": "boolean",
|
|
175
|
+
"description": "Whether this asset is required"
|
|
176
|
+
},
|
|
177
|
+
"requirements": {
|
|
178
|
+
"type": "object",
|
|
179
|
+
"description": "Technical requirements for this asset (dimensions, file size, duration, etc.). For template formats, use parameters_from_format_id: true to indicate asset parameters must match the format_id parameters (width/height/unit and/or duration_ms).",
|
|
180
|
+
"additionalProperties": true
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
"required": [
|
|
184
|
+
"item_type",
|
|
185
|
+
"asset_id",
|
|
186
|
+
"asset_type"
|
|
187
|
+
]
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
"description": "Repeatable asset group (for carousels, slideshows, playlists, etc.)",
|
|
191
|
+
"type": "object",
|
|
192
|
+
"properties": {
|
|
193
|
+
"item_type": {
|
|
194
|
+
"type": "string",
|
|
195
|
+
"const": "repeatable_group",
|
|
196
|
+
"description": "Discriminator indicating this is a repeatable asset group"
|
|
197
|
+
},
|
|
198
|
+
"asset_group_id": {
|
|
199
|
+
"type": "string",
|
|
200
|
+
"description": "Identifier for this asset group (e.g., 'product', 'slide', 'card')"
|
|
201
|
+
},
|
|
202
|
+
"min_count": {
|
|
203
|
+
"type": "integer",
|
|
204
|
+
"description": "Minimum number of repetitions required",
|
|
205
|
+
"minimum": 1
|
|
206
|
+
},
|
|
207
|
+
"max_count": {
|
|
208
|
+
"type": "integer",
|
|
209
|
+
"description": "Maximum number of repetitions allowed",
|
|
210
|
+
"minimum": 1
|
|
211
|
+
},
|
|
212
|
+
"assets": {
|
|
213
|
+
"type": "array",
|
|
214
|
+
"description": "Assets within each repetition of this group",
|
|
215
|
+
"items": {
|
|
216
|
+
"type": "object",
|
|
217
|
+
"properties": {
|
|
218
|
+
"asset_id": {
|
|
219
|
+
"type": "string",
|
|
220
|
+
"description": "Identifier for this asset within the group"
|
|
221
|
+
},
|
|
222
|
+
"asset_type": {
|
|
223
|
+
"$ref": "/schemas/enums/asset-content-type.json",
|
|
224
|
+
"description": "Type of asset"
|
|
225
|
+
},
|
|
226
|
+
"asset_role": {
|
|
227
|
+
"type": "string",
|
|
228
|
+
"description": "Optional descriptive label for this asset's purpose (e.g., 'hero_image', 'logo'). Not used for referencing assets in manifests\u2014use asset_id instead. This field is for human-readable documentation and UI display only."
|
|
229
|
+
},
|
|
230
|
+
"required": {
|
|
231
|
+
"type": "boolean",
|
|
232
|
+
"description": "Whether this asset is required in each repetition"
|
|
233
|
+
},
|
|
234
|
+
"requirements": {
|
|
235
|
+
"type": "object",
|
|
236
|
+
"description": "Technical requirements for this asset. For template formats, use parameters_from_format_id: true to indicate asset parameters must match the format_id parameters (width/height/unit and/or duration_ms).",
|
|
237
|
+
"additionalProperties": true
|
|
238
|
+
}
|
|
239
|
+
},
|
|
240
|
+
"required": [
|
|
241
|
+
"asset_id",
|
|
242
|
+
"asset_type"
|
|
243
|
+
]
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
},
|
|
247
|
+
"required": [
|
|
248
|
+
"item_type",
|
|
249
|
+
"asset_group_id",
|
|
250
|
+
"min_count",
|
|
251
|
+
"max_count",
|
|
252
|
+
"assets"
|
|
253
|
+
]
|
|
254
|
+
}
|
|
255
|
+
]
|
|
256
|
+
}
|
|
257
|
+
},
|
|
258
|
+
"delivery": {
|
|
259
|
+
"type": "object",
|
|
260
|
+
"description": "Delivery method specifications (e.g., hosted, VAST, third-party tags)",
|
|
261
|
+
"additionalProperties": true
|
|
262
|
+
},
|
|
263
|
+
"supported_macros": {
|
|
264
|
+
"type": "array",
|
|
265
|
+
"description": "List of universal macros supported by this format (e.g., MEDIA_BUY_ID, CACHEBUSTER, DEVICE_ID). Used for validation and developer tooling.",
|
|
266
|
+
"items": {
|
|
267
|
+
"type": "string"
|
|
268
|
+
}
|
|
269
|
+
},
|
|
270
|
+
"output_format_ids": {
|
|
271
|
+
"type": "array",
|
|
272
|
+
"description": "For generative formats: array of format IDs that this format can generate. When a format accepts inputs like brand_manifest and message, this specifies what concrete output formats can be produced (e.g., a generative banner format might output standard image banner formats).",
|
|
273
|
+
"items": {
|
|
274
|
+
"$ref": "/schemas/core/format-id.json"
|
|
275
|
+
}
|
|
276
|
+
},
|
|
277
|
+
"format_card": {
|
|
278
|
+
"type": "object",
|
|
279
|
+
"description": "Optional standard visual card (300x400px) for displaying this format in user interfaces. Can be rendered via preview_creative or pre-generated.",
|
|
280
|
+
"properties": {
|
|
281
|
+
"format_id": {
|
|
282
|
+
"$ref": "/schemas/core/format-id.json",
|
|
283
|
+
"description": "Creative format defining the card layout (typically format_card_standard)"
|
|
284
|
+
},
|
|
285
|
+
"manifest": {
|
|
286
|
+
"type": "object",
|
|
287
|
+
"description": "Asset manifest for rendering the card, structure defined by the format",
|
|
288
|
+
"additionalProperties": true
|
|
289
|
+
}
|
|
290
|
+
},
|
|
291
|
+
"required": [
|
|
292
|
+
"format_id",
|
|
293
|
+
"manifest"
|
|
294
|
+
],
|
|
295
|
+
"additionalProperties": true
|
|
296
|
+
},
|
|
297
|
+
"format_card_detailed": {
|
|
298
|
+
"type": "object",
|
|
299
|
+
"description": "Optional detailed card with carousel and full specifications. Provides rich format documentation similar to ad spec pages.",
|
|
300
|
+
"properties": {
|
|
301
|
+
"format_id": {
|
|
302
|
+
"$ref": "/schemas/core/format-id.json",
|
|
303
|
+
"description": "Creative format defining the detailed card layout (typically format_card_detailed)"
|
|
304
|
+
},
|
|
305
|
+
"manifest": {
|
|
306
|
+
"type": "object",
|
|
307
|
+
"description": "Asset manifest for rendering the detailed card, structure defined by the format",
|
|
308
|
+
"additionalProperties": true
|
|
309
|
+
}
|
|
310
|
+
},
|
|
311
|
+
"required": [
|
|
312
|
+
"format_id",
|
|
313
|
+
"manifest"
|
|
314
|
+
],
|
|
315
|
+
"additionalProperties": true
|
|
316
|
+
}
|
|
317
|
+
},
|
|
318
|
+
"required": [
|
|
319
|
+
"format_id",
|
|
320
|
+
"name",
|
|
321
|
+
"type"
|
|
322
|
+
],
|
|
323
|
+
"additionalProperties": true
|
|
324
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "/schemas/core/frequency-cap.json",
|
|
4
|
+
"title": "Frequency Cap",
|
|
5
|
+
"description": "Frequency capping settings for package-level application",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"suppress_minutes": {
|
|
9
|
+
"type": "number",
|
|
10
|
+
"description": "Minutes to suppress after impression",
|
|
11
|
+
"minimum": 0
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"required": [
|
|
15
|
+
"suppress_minutes"
|
|
16
|
+
],
|
|
17
|
+
"additionalProperties": true
|
|
18
|
+
}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "/schemas/core/mcp-webhook-payload.json",
|
|
4
|
+
"title": "MCP Webhook Payload",
|
|
5
|
+
"description": "Standard envelope for HTTP-based push notifications (MCP). This defines the wire format sent to the URL configured in `pushNotificationConfig`. NOTE: This envelope is NOT used in A2A integration, which uses native Task/TaskStatusUpdateEvent messages with the AdCP payload nested in `status.message.parts[].data`.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"operation_id": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"description": "Publisher-defined operation identifier correlating a sequence of task updates across webhooks."
|
|
11
|
+
},
|
|
12
|
+
"task_id": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"description": "Unique identifier for this task. Use this to correlate webhook notifications with the original task submission."
|
|
15
|
+
},
|
|
16
|
+
"task_type": {
|
|
17
|
+
"$ref": "/schemas/enums/task-type.json",
|
|
18
|
+
"description": "Type of AdCP operation that triggered this webhook. Enables webhook handlers to route to appropriate processing logic."
|
|
19
|
+
},
|
|
20
|
+
"domain": {
|
|
21
|
+
"$ref": "/schemas/enums/adcp-domain.json",
|
|
22
|
+
"description": "AdCP domain this task belongs to. Helps classify the operation type at a high level."
|
|
23
|
+
},
|
|
24
|
+
"status": {
|
|
25
|
+
"$ref": "/schemas/enums/task-status.json",
|
|
26
|
+
"description": "Current task status. Webhooks are triggered for status changes after initial submission."
|
|
27
|
+
},
|
|
28
|
+
"timestamp": {
|
|
29
|
+
"type": "string",
|
|
30
|
+
"format": "date-time",
|
|
31
|
+
"description": "ISO 8601 timestamp when this webhook was generated."
|
|
32
|
+
},
|
|
33
|
+
"message": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"description": "Human-readable summary of the current task state. Provides context about what happened and what action may be needed."
|
|
36
|
+
},
|
|
37
|
+
"context_id": {
|
|
38
|
+
"type": "string",
|
|
39
|
+
"description": "Session/conversation identifier. Use this to continue the conversation if input-required status needs clarification or additional parameters."
|
|
40
|
+
},
|
|
41
|
+
"result": {
|
|
42
|
+
"$ref": "/schemas/core/async-response-data.json",
|
|
43
|
+
"description": "Task-specific payload matching the status. For completed/failed, contains the full task response. For working/input-required/submitted, contains status-specific data. This is the data layer that AdCP specs - same structure used in A2A status.message.parts[].data."
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"required": [
|
|
47
|
+
"task_id",
|
|
48
|
+
"task_type",
|
|
49
|
+
"status",
|
|
50
|
+
"timestamp"
|
|
51
|
+
],
|
|
52
|
+
"additionalProperties": true,
|
|
53
|
+
"examples": [
|
|
54
|
+
{
|
|
55
|
+
"description": "Webhook for input-required status (human approval needed)",
|
|
56
|
+
"data": {
|
|
57
|
+
"operation_id": "op_456",
|
|
58
|
+
"task_id": "task_456",
|
|
59
|
+
"task_type": "create_media_buy",
|
|
60
|
+
"domain": "media-buy",
|
|
61
|
+
"status": "input-required",
|
|
62
|
+
"timestamp": "2025-01-22T10:15:00Z",
|
|
63
|
+
"context_id": "ctx_abc123",
|
|
64
|
+
"message": "Campaign budget $150K requires VP approval to proceed",
|
|
65
|
+
"result": {
|
|
66
|
+
"reason": "BUDGET_EXCEEDS_LIMIT",
|
|
67
|
+
"errors": [
|
|
68
|
+
{
|
|
69
|
+
"code": "APPROVAL_REQUIRED",
|
|
70
|
+
"message": "Budget exceeds auto-approval threshold",
|
|
71
|
+
"field": "total_budget"
|
|
72
|
+
}
|
|
73
|
+
]
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"description": "Webhook for completed create_media_buy",
|
|
79
|
+
"data": {
|
|
80
|
+
"operation_id": "op_456",
|
|
81
|
+
"task_id": "task_456",
|
|
82
|
+
"task_type": "create_media_buy",
|
|
83
|
+
"domain": "media-buy",
|
|
84
|
+
"status": "completed",
|
|
85
|
+
"timestamp": "2025-01-22T10:30:00Z",
|
|
86
|
+
"message": "Media buy created successfully with 2 packages ready for creative assignment",
|
|
87
|
+
"result": {
|
|
88
|
+
"media_buy_id": "mb_12345",
|
|
89
|
+
"buyer_ref": "nike_q1_campaign_2024",
|
|
90
|
+
"creative_deadline": "2024-01-30T23:59:59Z",
|
|
91
|
+
"packages": [
|
|
92
|
+
{
|
|
93
|
+
"package_id": "pkg_12345_001",
|
|
94
|
+
"buyer_ref": "nike_ctv_package",
|
|
95
|
+
"product_id": "ctv_sports_premium",
|
|
96
|
+
"budget": 60000,
|
|
97
|
+
"pacing": "even",
|
|
98
|
+
"pricing_option_id": "cpm-fixed-sports",
|
|
99
|
+
"paused": false,
|
|
100
|
+
"creative_assignments": [],
|
|
101
|
+
"format_ids_to_provide": [
|
|
102
|
+
{
|
|
103
|
+
"agent_url": "https://creative.adcontextprotocol.org",
|
|
104
|
+
"id": "video_standard_30s"
|
|
105
|
+
}
|
|
106
|
+
]
|
|
107
|
+
}
|
|
108
|
+
]
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"description": "Webhook for working status with progress",
|
|
114
|
+
"data": {
|
|
115
|
+
"operation_id": "op_456",
|
|
116
|
+
"task_id": "task_456",
|
|
117
|
+
"task_type": "create_media_buy",
|
|
118
|
+
"domain": "media-buy",
|
|
119
|
+
"status": "working",
|
|
120
|
+
"timestamp": "2025-01-22T10:20:00Z",
|
|
121
|
+
"message": "Validating inventory availability...",
|
|
122
|
+
"result": {
|
|
123
|
+
"percentage": 50,
|
|
124
|
+
"current_step": "inventory_validation",
|
|
125
|
+
"step_number": 2,
|
|
126
|
+
"total_steps": 4
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"description": "Webhook for failed sync_creatives",
|
|
132
|
+
"data": {
|
|
133
|
+
"operation_id": "op_789",
|
|
134
|
+
"task_id": "task_789",
|
|
135
|
+
"task_type": "sync_creatives",
|
|
136
|
+
"domain": "media-buy",
|
|
137
|
+
"status": "failed",
|
|
138
|
+
"timestamp": "2025-01-22T10:46:00Z",
|
|
139
|
+
"message": "Creative sync failed due to invalid asset URLs",
|
|
140
|
+
"result": {
|
|
141
|
+
"errors": [
|
|
142
|
+
{
|
|
143
|
+
"code": "INVALID_ASSET_URL",
|
|
144
|
+
"message": "One or more creative assets could not be accessed",
|
|
145
|
+
"field": "creatives[0].asset_url"
|
|
146
|
+
}
|
|
147
|
+
]
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
]
|
|
152
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "/schemas/core/measurement.json",
|
|
4
|
+
"title": "Measurement",
|
|
5
|
+
"description": "Measurement capabilities included with a product",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"type": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"description": "Type of measurement",
|
|
11
|
+
"examples": [
|
|
12
|
+
"incremental_sales_lift",
|
|
13
|
+
"brand_lift",
|
|
14
|
+
"foot_traffic"
|
|
15
|
+
]
|
|
16
|
+
},
|
|
17
|
+
"attribution": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"description": "Attribution methodology",
|
|
20
|
+
"examples": [
|
|
21
|
+
"deterministic_purchase",
|
|
22
|
+
"probabilistic"
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
"window": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"description": "Attribution window",
|
|
28
|
+
"examples": [
|
|
29
|
+
"30_days",
|
|
30
|
+
"7_days"
|
|
31
|
+
]
|
|
32
|
+
},
|
|
33
|
+
"reporting": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"description": "Reporting frequency and format",
|
|
36
|
+
"examples": [
|
|
37
|
+
"weekly_dashboard",
|
|
38
|
+
"real_time_api"
|
|
39
|
+
]
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"required": [
|
|
43
|
+
"type",
|
|
44
|
+
"attribution",
|
|
45
|
+
"reporting"
|
|
46
|
+
],
|
|
47
|
+
"additionalProperties": true
|
|
48
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "/schemas/core/media-buy.json",
|
|
4
|
+
"title": "Media Buy",
|
|
5
|
+
"description": "Represents a purchased advertising campaign",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"media_buy_id": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"description": "Publisher's unique identifier for the media buy"
|
|
11
|
+
},
|
|
12
|
+
"buyer_ref": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"description": "Buyer's reference identifier for this media buy"
|
|
15
|
+
},
|
|
16
|
+
"status": {
|
|
17
|
+
"$ref": "/schemas/enums/media-buy-status.json"
|
|
18
|
+
},
|
|
19
|
+
"promoted_offering": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"description": "Description of advertiser and what is being promoted"
|
|
22
|
+
},
|
|
23
|
+
"total_budget": {
|
|
24
|
+
"type": "number",
|
|
25
|
+
"description": "Total budget amount",
|
|
26
|
+
"minimum": 0
|
|
27
|
+
},
|
|
28
|
+
"packages": {
|
|
29
|
+
"type": "array",
|
|
30
|
+
"description": "Array of packages within this media buy",
|
|
31
|
+
"items": {
|
|
32
|
+
"$ref": "/schemas/core/package.json"
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"creative_deadline": {
|
|
36
|
+
"type": "string",
|
|
37
|
+
"format": "date-time",
|
|
38
|
+
"description": "ISO 8601 timestamp for creative upload deadline"
|
|
39
|
+
},
|
|
40
|
+
"created_at": {
|
|
41
|
+
"type": "string",
|
|
42
|
+
"format": "date-time",
|
|
43
|
+
"description": "Creation timestamp"
|
|
44
|
+
},
|
|
45
|
+
"updated_at": {
|
|
46
|
+
"type": "string",
|
|
47
|
+
"format": "date-time",
|
|
48
|
+
"description": "Last update timestamp"
|
|
49
|
+
},
|
|
50
|
+
"ext": {
|
|
51
|
+
"$ref": "/schemas/core/ext.json"
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"required": [
|
|
55
|
+
"media_buy_id",
|
|
56
|
+
"status",
|
|
57
|
+
"promoted_offering",
|
|
58
|
+
"total_budget",
|
|
59
|
+
"packages"
|
|
60
|
+
],
|
|
61
|
+
"additionalProperties": true
|
|
62
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "/schemas/core/package.json",
|
|
4
|
+
"title": "Package",
|
|
5
|
+
"description": "A specific product within a media buy (line item)",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"properties": {
|
|
8
|
+
"package_id": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"description": "Publisher's unique identifier for the package"
|
|
11
|
+
},
|
|
12
|
+
"buyer_ref": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"description": "Buyer's reference identifier for this package"
|
|
15
|
+
},
|
|
16
|
+
"product_id": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"description": "ID of the product this package is based on"
|
|
19
|
+
},
|
|
20
|
+
"budget": {
|
|
21
|
+
"type": "number",
|
|
22
|
+
"description": "Budget allocation for this package in the currency specified by the pricing option",
|
|
23
|
+
"minimum": 0
|
|
24
|
+
},
|
|
25
|
+
"pacing": {
|
|
26
|
+
"$ref": "/schemas/enums/pacing.json"
|
|
27
|
+
},
|
|
28
|
+
"pricing_option_id": {
|
|
29
|
+
"type": "string",
|
|
30
|
+
"description": "ID of the selected pricing option from the product's pricing_options array"
|
|
31
|
+
},
|
|
32
|
+
"bid_price": {
|
|
33
|
+
"type": "number",
|
|
34
|
+
"description": "Bid price for auction-based CPM pricing (present if using cpm-auction-option)",
|
|
35
|
+
"minimum": 0
|
|
36
|
+
},
|
|
37
|
+
"impressions": {
|
|
38
|
+
"type": "number",
|
|
39
|
+
"description": "Impression goal for this package",
|
|
40
|
+
"minimum": 0
|
|
41
|
+
},
|
|
42
|
+
"targeting_overlay": {
|
|
43
|
+
"$ref": "/schemas/core/targeting.json"
|
|
44
|
+
},
|
|
45
|
+
"creative_assignments": {
|
|
46
|
+
"type": "array",
|
|
47
|
+
"description": "Creative assets assigned to this package",
|
|
48
|
+
"items": {
|
|
49
|
+
"$ref": "/schemas/core/creative-assignment.json"
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"format_ids_to_provide": {
|
|
53
|
+
"type": "array",
|
|
54
|
+
"description": "Format IDs that creative assets will be provided for this package",
|
|
55
|
+
"items": {
|
|
56
|
+
"$ref": "/schemas/core/format-id.json"
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"paused": {
|
|
60
|
+
"type": "boolean",
|
|
61
|
+
"description": "Whether this package is paused by the buyer. Paused packages do not deliver impressions. Defaults to false.",
|
|
62
|
+
"default": false
|
|
63
|
+
},
|
|
64
|
+
"ext": {
|
|
65
|
+
"$ref": "/schemas/core/ext.json"
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
"required": [
|
|
69
|
+
"package_id"
|
|
70
|
+
],
|
|
71
|
+
"additionalProperties": true
|
|
72
|
+
}
|