@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,3507 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Brand information manifest providing brand context, assets, and product catalog. Can be provided inline or as a URL reference to a hosted manifest.
|
|
3
|
+
*/
|
|
4
|
+
export type BrandManifestReference = BrandManifest | string;
|
|
5
|
+
/**
|
|
6
|
+
* Type of asset. Note: Brand manifests typically contain basic media assets (image, video, audio, text). Code assets (html, javascript, css) and ad markup (vast, daast) are usually not part of brand asset libraries.
|
|
7
|
+
*/
|
|
8
|
+
export type AssetContentType = 'image' | 'video' | 'audio' | 'text' | 'markdown' | 'html' | 'css' | 'javascript' | 'vast' | 'daast' | 'promoted_offerings' | 'url' | 'webhook';
|
|
9
|
+
/**
|
|
10
|
+
* Type of inventory delivery
|
|
11
|
+
*/
|
|
12
|
+
export type DeliveryType = 'guaranteed' | 'non_guaranteed';
|
|
13
|
+
/**
|
|
14
|
+
* High-level categories for creative formats based on media type and delivery channel. Describes WHERE and HOW a creative displays, not what content it contains.
|
|
15
|
+
*/
|
|
16
|
+
export type FormatCategory = 'audio' | 'video' | 'display' | 'native' | 'dooh' | 'rich_media' | 'universal';
|
|
17
|
+
/**
|
|
18
|
+
* Standard advertising channels supported by AdCP
|
|
19
|
+
*/
|
|
20
|
+
export type AdvertisingChannels = 'display' | 'video' | 'audio' | 'native' | 'dooh' | 'ctv' | 'podcast' | 'retail' | 'social';
|
|
21
|
+
/**
|
|
22
|
+
* Selects properties from a publisher's adagents.json. Used for both product definitions and agent authorization. Supports three selection patterns: all properties, specific IDs, or by tags.
|
|
23
|
+
*/
|
|
24
|
+
export type PublisherPropertySelector = {
|
|
25
|
+
/**
|
|
26
|
+
* Domain where publisher's adagents.json is hosted (e.g., 'cnn.com')
|
|
27
|
+
*/
|
|
28
|
+
publisher_domain: string;
|
|
29
|
+
/**
|
|
30
|
+
* Discriminator indicating all properties from this publisher are included
|
|
31
|
+
*/
|
|
32
|
+
selection_type: 'all';
|
|
33
|
+
} | {
|
|
34
|
+
/**
|
|
35
|
+
* Domain where publisher's adagents.json is hosted (e.g., 'cnn.com')
|
|
36
|
+
*/
|
|
37
|
+
publisher_domain: string;
|
|
38
|
+
/**
|
|
39
|
+
* Discriminator indicating selection by specific property IDs
|
|
40
|
+
*/
|
|
41
|
+
selection_type: 'by_id';
|
|
42
|
+
/**
|
|
43
|
+
* Specific property IDs from the publisher's adagents.json
|
|
44
|
+
*/
|
|
45
|
+
property_ids: PropertyID[];
|
|
46
|
+
} | {
|
|
47
|
+
/**
|
|
48
|
+
* Domain where publisher's adagents.json is hosted (e.g., 'cnn.com')
|
|
49
|
+
*/
|
|
50
|
+
publisher_domain: string;
|
|
51
|
+
/**
|
|
52
|
+
* Discriminator indicating selection by property tags
|
|
53
|
+
*/
|
|
54
|
+
selection_type: 'by_tag';
|
|
55
|
+
/**
|
|
56
|
+
* Property tags from the publisher's adagents.json. Selector covers all properties with these tags
|
|
57
|
+
*/
|
|
58
|
+
property_tags: PropertyTag[];
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Identifier for a publisher property. Must be lowercase alphanumeric with underscores only.
|
|
62
|
+
*/
|
|
63
|
+
export type PropertyID = string;
|
|
64
|
+
/**
|
|
65
|
+
* Tag for categorizing publisher properties. Must be lowercase alphanumeric with underscores only.
|
|
66
|
+
*/
|
|
67
|
+
export type PropertyTag = string;
|
|
68
|
+
/**
|
|
69
|
+
* A pricing model option offered by a publisher for a product. Each pricing model has its own schema with model-specific requirements.
|
|
70
|
+
*/
|
|
71
|
+
export type PricingOption = CPMFixedRatePricingOption | CPMAuctionPricingOption | VCPMFixedRatePricingOption | VCPMAuctionPricingOption | CPCPricingOption | CPCVPricingOption | CPVPricingOption | CPPPricingOption | FlatRatePricingOption;
|
|
72
|
+
/**
|
|
73
|
+
* Available frequencies for delivery reports and metrics updates
|
|
74
|
+
*/
|
|
75
|
+
export type ReportingFrequency = 'hourly' | 'daily' | 'monthly';
|
|
76
|
+
/**
|
|
77
|
+
* Standard delivery and performance metrics available for reporting
|
|
78
|
+
*/
|
|
79
|
+
export type AvailableMetric = 'impressions' | 'spend' | 'clicks' | 'ctr' | 'video_completions' | 'completion_rate' | 'conversions' | 'viewability' | 'engagement_rate';
|
|
80
|
+
/**
|
|
81
|
+
* Co-branding requirement
|
|
82
|
+
*/
|
|
83
|
+
export type CoBrandingRequirement = 'required' | 'optional' | 'none';
|
|
84
|
+
/**
|
|
85
|
+
* Landing page requirements
|
|
86
|
+
*/
|
|
87
|
+
export type LandingPageRequirement = 'any' | 'retailer_site_only' | 'must_include_retailer';
|
|
88
|
+
/**
|
|
89
|
+
* Types of parameters that template formats accept in format_id objects to create parameterized format identifiers
|
|
90
|
+
*/
|
|
91
|
+
export type FormatIDParameter = 'dimensions' | 'duration';
|
|
92
|
+
/**
|
|
93
|
+
* Capabilities supported by creative agents for format handling
|
|
94
|
+
*/
|
|
95
|
+
export type CreativeAgentCapability = 'validation' | 'assembly' | 'generation' | 'preview';
|
|
96
|
+
/**
|
|
97
|
+
* Budget pacing strategy
|
|
98
|
+
*/
|
|
99
|
+
export type Pacing = 'even' | 'asap' | 'front_loaded';
|
|
100
|
+
/**
|
|
101
|
+
* JavaScript module type
|
|
102
|
+
*/
|
|
103
|
+
export type JavaScriptModuleType = 'esm' | 'commonjs' | 'script';
|
|
104
|
+
/**
|
|
105
|
+
* VAST (Video Ad Serving Template) tag for third-party video ad serving
|
|
106
|
+
*/
|
|
107
|
+
export type VASTAsset = {
|
|
108
|
+
/**
|
|
109
|
+
* Discriminator indicating VAST is delivered via URL endpoint
|
|
110
|
+
*/
|
|
111
|
+
delivery_type: 'url';
|
|
112
|
+
/**
|
|
113
|
+
* URL endpoint that returns VAST XML
|
|
114
|
+
*/
|
|
115
|
+
url: string;
|
|
116
|
+
vast_version?: VASTVersion;
|
|
117
|
+
/**
|
|
118
|
+
* Whether VPAID (Video Player-Ad Interface Definition) is supported
|
|
119
|
+
*/
|
|
120
|
+
vpaid_enabled?: boolean;
|
|
121
|
+
/**
|
|
122
|
+
* Expected video duration in milliseconds (if known)
|
|
123
|
+
*/
|
|
124
|
+
duration_ms?: number;
|
|
125
|
+
/**
|
|
126
|
+
* Tracking events supported by this VAST tag
|
|
127
|
+
*/
|
|
128
|
+
tracking_events?: VASTTrackingEvent[];
|
|
129
|
+
} | {
|
|
130
|
+
/**
|
|
131
|
+
* Discriminator indicating VAST is delivered as inline XML content
|
|
132
|
+
*/
|
|
133
|
+
delivery_type: 'inline';
|
|
134
|
+
/**
|
|
135
|
+
* Inline VAST XML content
|
|
136
|
+
*/
|
|
137
|
+
content: string;
|
|
138
|
+
vast_version?: VASTVersion;
|
|
139
|
+
/**
|
|
140
|
+
* Whether VPAID (Video Player-Ad Interface Definition) is supported
|
|
141
|
+
*/
|
|
142
|
+
vpaid_enabled?: boolean;
|
|
143
|
+
/**
|
|
144
|
+
* Expected video duration in milliseconds (if known)
|
|
145
|
+
*/
|
|
146
|
+
duration_ms?: number;
|
|
147
|
+
/**
|
|
148
|
+
* Tracking events supported by this VAST tag
|
|
149
|
+
*/
|
|
150
|
+
tracking_events?: VASTTrackingEvent[];
|
|
151
|
+
};
|
|
152
|
+
/**
|
|
153
|
+
* VAST specification version
|
|
154
|
+
*/
|
|
155
|
+
export type VASTVersion = '2.0' | '3.0' | '4.0' | '4.1' | '4.2';
|
|
156
|
+
/**
|
|
157
|
+
* Standard VAST tracking events for video ad playback and interaction
|
|
158
|
+
*/
|
|
159
|
+
export type VASTTrackingEvent = 'start' | 'firstQuartile' | 'midpoint' | 'thirdQuartile' | 'complete' | 'impression' | 'click' | 'pause' | 'resume' | 'skip' | 'mute' | 'unmute' | 'fullscreen' | 'exitFullscreen' | 'playerExpand' | 'playerCollapse';
|
|
160
|
+
/**
|
|
161
|
+
* DAAST (Digital Audio Ad Serving Template) tag for third-party audio ad serving
|
|
162
|
+
*/
|
|
163
|
+
export type DAASTAsset = {
|
|
164
|
+
/**
|
|
165
|
+
* Discriminator indicating DAAST is delivered via URL endpoint
|
|
166
|
+
*/
|
|
167
|
+
delivery_type: 'url';
|
|
168
|
+
/**
|
|
169
|
+
* URL endpoint that returns DAAST XML
|
|
170
|
+
*/
|
|
171
|
+
url: string;
|
|
172
|
+
daast_version?: DAASTVersion;
|
|
173
|
+
/**
|
|
174
|
+
* Expected audio duration in milliseconds (if known)
|
|
175
|
+
*/
|
|
176
|
+
duration_ms?: number;
|
|
177
|
+
/**
|
|
178
|
+
* Tracking events supported by this DAAST tag
|
|
179
|
+
*/
|
|
180
|
+
tracking_events?: DAASTTrackingEvent[];
|
|
181
|
+
/**
|
|
182
|
+
* Whether companion display ads are included
|
|
183
|
+
*/
|
|
184
|
+
companion_ads?: boolean;
|
|
185
|
+
} | {
|
|
186
|
+
/**
|
|
187
|
+
* Discriminator indicating DAAST is delivered as inline XML content
|
|
188
|
+
*/
|
|
189
|
+
delivery_type: 'inline';
|
|
190
|
+
/**
|
|
191
|
+
* Inline DAAST XML content
|
|
192
|
+
*/
|
|
193
|
+
content: string;
|
|
194
|
+
daast_version?: DAASTVersion;
|
|
195
|
+
/**
|
|
196
|
+
* Expected audio duration in milliseconds (if known)
|
|
197
|
+
*/
|
|
198
|
+
duration_ms?: number;
|
|
199
|
+
/**
|
|
200
|
+
* Tracking events supported by this DAAST tag
|
|
201
|
+
*/
|
|
202
|
+
tracking_events?: DAASTTrackingEvent[];
|
|
203
|
+
/**
|
|
204
|
+
* Whether companion display ads are included
|
|
205
|
+
*/
|
|
206
|
+
companion_ads?: boolean;
|
|
207
|
+
};
|
|
208
|
+
/**
|
|
209
|
+
* DAAST specification version
|
|
210
|
+
*/
|
|
211
|
+
export type DAASTVersion = '1.0' | '1.1';
|
|
212
|
+
/**
|
|
213
|
+
* Standard DAAST tracking events for audio ad playback and interaction
|
|
214
|
+
*/
|
|
215
|
+
export type DAASTTrackingEvent = 'start' | 'firstQuartile' | 'midpoint' | 'thirdQuartile' | 'complete' | 'impression' | 'pause' | 'resume' | 'skip' | 'mute' | 'unmute';
|
|
216
|
+
/**
|
|
217
|
+
* Type of URL asset: 'clickthrough' for user click destination (landing page), 'tracker_pixel' for impression/event tracking via HTTP request (fires GET, expects pixel/204 response), 'tracker_script' for measurement SDKs that must load as <script> tag (OMID verification, native event trackers using method:2)
|
|
218
|
+
*/
|
|
219
|
+
export type URLAssetType = 'clickthrough' | 'tracker_pixel' | 'tracker_script';
|
|
220
|
+
/**
|
|
221
|
+
* Campaign start timing: 'asap' or ISO 8601 date-time
|
|
222
|
+
*/
|
|
223
|
+
export type StartTiming = 'asap' | string;
|
|
224
|
+
/**
|
|
225
|
+
* Authentication schemes for push notification endpoints
|
|
226
|
+
*/
|
|
227
|
+
export type AuthenticationScheme = 'Bearer' | 'HMAC-SHA256';
|
|
228
|
+
/**
|
|
229
|
+
* Response payload for create_media_buy task. Returns either complete success data OR error information, never both. This enforces atomic operation semantics - the media buy is either fully created or not created at all.
|
|
230
|
+
*/
|
|
231
|
+
export type CreateMediaBuyResponse = CreateMediaBuySuccess | CreateMediaBuyError;
|
|
232
|
+
/**
|
|
233
|
+
* Validation strictness. 'strict' fails entire sync on any validation error. 'lenient' processes valid creatives and reports errors.
|
|
234
|
+
*/
|
|
235
|
+
export type ValidationMode = 'strict' | 'lenient';
|
|
236
|
+
/**
|
|
237
|
+
* Response from creative sync operation. Returns either per-creative results (best-effort processing) OR operation-level errors (complete failure). This enforces atomic semantics at the operation level while allowing per-item failures within successful operations.
|
|
238
|
+
*/
|
|
239
|
+
export type SyncCreativesResponse = SyncCreativesSuccess | SyncCreativesError;
|
|
240
|
+
/**
|
|
241
|
+
* Action taken for this creative
|
|
242
|
+
*/
|
|
243
|
+
export type CreativeAction = 'created' | 'updated' | 'unchanged' | 'failed' | 'deleted';
|
|
244
|
+
/**
|
|
245
|
+
* Filter by creative approval status
|
|
246
|
+
*/
|
|
247
|
+
export type CreativeStatus = 'processing' | 'approved' | 'rejected' | 'pending_review';
|
|
248
|
+
/**
|
|
249
|
+
* Field to sort by
|
|
250
|
+
*/
|
|
251
|
+
export type CreativeSortField = 'created_date' | 'updated_date' | 'name' | 'status' | 'assignment_count' | 'performance_score';
|
|
252
|
+
/**
|
|
253
|
+
* Sort direction
|
|
254
|
+
*/
|
|
255
|
+
export type SortDirection = 'asc' | 'desc';
|
|
256
|
+
/**
|
|
257
|
+
* Sub-asset for multi-asset creative formats, including carousel images and native ad template variables
|
|
258
|
+
*/
|
|
259
|
+
export type SubAsset = {
|
|
260
|
+
/**
|
|
261
|
+
* Discriminator indicating this is a media asset with content_uri
|
|
262
|
+
*/
|
|
263
|
+
asset_kind: 'media';
|
|
264
|
+
/**
|
|
265
|
+
* Type of asset. Common types: thumbnail_image, product_image, featured_image, logo
|
|
266
|
+
*/
|
|
267
|
+
asset_type: string;
|
|
268
|
+
/**
|
|
269
|
+
* Unique identifier for the asset within the creative
|
|
270
|
+
*/
|
|
271
|
+
asset_id: string;
|
|
272
|
+
/**
|
|
273
|
+
* URL for media assets (images, videos, etc.)
|
|
274
|
+
*/
|
|
275
|
+
content_uri: string;
|
|
276
|
+
} | {
|
|
277
|
+
/**
|
|
278
|
+
* Discriminator indicating this is a text asset with content
|
|
279
|
+
*/
|
|
280
|
+
asset_kind: 'text';
|
|
281
|
+
/**
|
|
282
|
+
* Type of asset. Common types: headline, body_text, cta_text, price_text, sponsor_name, author_name, click_url
|
|
283
|
+
*/
|
|
284
|
+
asset_type: string;
|
|
285
|
+
/**
|
|
286
|
+
* Unique identifier for the asset within the creative
|
|
287
|
+
*/
|
|
288
|
+
asset_id: string;
|
|
289
|
+
/**
|
|
290
|
+
* Text content for text-based assets like headlines, body text, CTA text, etc.
|
|
291
|
+
*/
|
|
292
|
+
content: string | string[];
|
|
293
|
+
};
|
|
294
|
+
/**
|
|
295
|
+
* Request parameters for updating campaign and package settings
|
|
296
|
+
*/
|
|
297
|
+
export type UpdateMediaBuyRequest = {
|
|
298
|
+
/**
|
|
299
|
+
* Publisher's ID of the media buy to update
|
|
300
|
+
*/
|
|
301
|
+
media_buy_id?: string;
|
|
302
|
+
/**
|
|
303
|
+
* Buyer's reference for the media buy to update
|
|
304
|
+
*/
|
|
305
|
+
buyer_ref?: string;
|
|
306
|
+
/**
|
|
307
|
+
* Pause/resume the entire media buy (true = paused, false = active)
|
|
308
|
+
*/
|
|
309
|
+
paused?: boolean;
|
|
310
|
+
start_time?: StartTiming;
|
|
311
|
+
/**
|
|
312
|
+
* New end date/time in ISO 8601 format
|
|
313
|
+
*/
|
|
314
|
+
end_time?: string;
|
|
315
|
+
/**
|
|
316
|
+
* Package-specific updates
|
|
317
|
+
*/
|
|
318
|
+
packages?: {
|
|
319
|
+
[k: string]: unknown | undefined;
|
|
320
|
+
}[];
|
|
321
|
+
push_notification_config?: PushNotificationConfig;
|
|
322
|
+
context?: ContextObject;
|
|
323
|
+
ext?: ExtensionObject;
|
|
324
|
+
} & UpdateMediaBuyRequest1;
|
|
325
|
+
export type UpdateMediaBuyRequest1 = {
|
|
326
|
+
[k: string]: unknown | undefined;
|
|
327
|
+
};
|
|
328
|
+
/**
|
|
329
|
+
* Response payload for update_media_buy task. Returns either complete success data OR error information, never both. This enforces atomic operation semantics - updates are either fully applied or not applied at all.
|
|
330
|
+
*/
|
|
331
|
+
export type UpdateMediaBuyResponse = UpdateMediaBuySuccess | UpdateMediaBuyError;
|
|
332
|
+
/**
|
|
333
|
+
* Status of a media buy
|
|
334
|
+
*/
|
|
335
|
+
export type MediaBuyStatus = 'pending_activation' | 'active' | 'paused' | 'completed';
|
|
336
|
+
/**
|
|
337
|
+
* Pricing model used for this media buy
|
|
338
|
+
*/
|
|
339
|
+
export type PricingModel = 'cpm' | 'vcpm' | 'cpc' | 'cpcv' | 'cpv' | 'cpp' | 'flat_rate';
|
|
340
|
+
/**
|
|
341
|
+
* Request payload for provide_performance_feedback task
|
|
342
|
+
*/
|
|
343
|
+
export type ProvidePerformanceFeedbackRequest = {
|
|
344
|
+
/**
|
|
345
|
+
* Publisher's media buy identifier
|
|
346
|
+
*/
|
|
347
|
+
media_buy_id?: string;
|
|
348
|
+
/**
|
|
349
|
+
* Buyer's reference for the media buy
|
|
350
|
+
*/
|
|
351
|
+
buyer_ref?: string;
|
|
352
|
+
/**
|
|
353
|
+
* Time period for performance measurement
|
|
354
|
+
*/
|
|
355
|
+
measurement_period?: {
|
|
356
|
+
/**
|
|
357
|
+
* ISO 8601 start timestamp for measurement period
|
|
358
|
+
*/
|
|
359
|
+
start: string;
|
|
360
|
+
/**
|
|
361
|
+
* ISO 8601 end timestamp for measurement period
|
|
362
|
+
*/
|
|
363
|
+
end: string;
|
|
364
|
+
};
|
|
365
|
+
/**
|
|
366
|
+
* Normalized performance score (0.0 = no value, 1.0 = expected, >1.0 = above expected)
|
|
367
|
+
*/
|
|
368
|
+
performance_index?: number;
|
|
369
|
+
/**
|
|
370
|
+
* Specific package within the media buy (if feedback is package-specific)
|
|
371
|
+
*/
|
|
372
|
+
package_id?: string;
|
|
373
|
+
/**
|
|
374
|
+
* Specific creative asset (if feedback is creative-specific)
|
|
375
|
+
*/
|
|
376
|
+
creative_id?: string;
|
|
377
|
+
metric_type?: MetricType;
|
|
378
|
+
feedback_source?: FeedbackSource;
|
|
379
|
+
context?: ContextObject;
|
|
380
|
+
ext?: ExtensionObject;
|
|
381
|
+
} & ProvidePerformanceFeedbackRequest1;
|
|
382
|
+
/**
|
|
383
|
+
* The business metric being measured
|
|
384
|
+
*/
|
|
385
|
+
export type MetricType = 'overall_performance' | 'conversion_rate' | 'brand_lift' | 'click_through_rate' | 'completion_rate' | 'viewability' | 'brand_safety' | 'cost_efficiency';
|
|
386
|
+
/**
|
|
387
|
+
* Source of the performance data
|
|
388
|
+
*/
|
|
389
|
+
export type FeedbackSource = 'buyer_attribution' | 'third_party_measurement' | 'platform_analytics' | 'verification_partner';
|
|
390
|
+
export type ProvidePerformanceFeedbackRequest1 = {
|
|
391
|
+
[k: string]: unknown | undefined;
|
|
392
|
+
};
|
|
393
|
+
/**
|
|
394
|
+
* Response payload for provide_performance_feedback task. Returns either success confirmation OR error information, never both.
|
|
395
|
+
*/
|
|
396
|
+
export type ProvidePerformanceFeedbackResponse = ProvidePerformanceFeedbackSuccess | ProvidePerformanceFeedbackError;
|
|
397
|
+
/**
|
|
398
|
+
* HTTP method
|
|
399
|
+
*/
|
|
400
|
+
export type HTTPMethod = 'GET' | 'POST';
|
|
401
|
+
/**
|
|
402
|
+
* Expected content type of webhook response
|
|
403
|
+
*/
|
|
404
|
+
export type WebhookResponseType = 'html' | 'json' | 'xml' | 'javascript';
|
|
405
|
+
/**
|
|
406
|
+
* Authentication method
|
|
407
|
+
*/
|
|
408
|
+
export type WebhookSecurityMethod = 'hmac_sha256' | 'api_key' | 'none';
|
|
409
|
+
/**
|
|
410
|
+
* Response containing the transformed or generated creative manifest, ready for use with preview_creative or sync_creatives. Returns either the complete creative manifest OR error information, never both.
|
|
411
|
+
*/
|
|
412
|
+
export type BuildCreativeResponse = BuildCreativeSuccess | BuildCreativeError;
|
|
413
|
+
/**
|
|
414
|
+
* Request to generate previews of one or more creative manifests. Accepts either a single creative request or an array of requests for batch processing.
|
|
415
|
+
*/
|
|
416
|
+
export type PreviewCreativeRequest = {
|
|
417
|
+
/**
|
|
418
|
+
* Discriminator indicating this is a single preview request
|
|
419
|
+
*/
|
|
420
|
+
request_type: 'single';
|
|
421
|
+
format_id: FormatID;
|
|
422
|
+
creative_manifest: CreativeManifest;
|
|
423
|
+
/**
|
|
424
|
+
* Array of input sets for generating multiple preview variants. Each input set defines macros and context values for one preview rendering. If not provided, creative agent will generate default previews.
|
|
425
|
+
*/
|
|
426
|
+
inputs?: {
|
|
427
|
+
/**
|
|
428
|
+
* Human-readable name for this input set (e.g., 'Sunny morning on mobile', 'Evening podcast ad', 'Desktop dark mode')
|
|
429
|
+
*/
|
|
430
|
+
name: string;
|
|
431
|
+
/**
|
|
432
|
+
* Macro values to use for this preview. Supports all universal macros from the format's supported_macros list. See docs/creative/universal-macros.md for available macros.
|
|
433
|
+
*/
|
|
434
|
+
macros?: {
|
|
435
|
+
[k: string]: string | undefined;
|
|
436
|
+
};
|
|
437
|
+
/**
|
|
438
|
+
* Natural language description of the context for AI-generated content (e.g., 'User just searched for running shoes', 'Podcast discussing weather patterns', 'Article about electric vehicles')
|
|
439
|
+
*/
|
|
440
|
+
context_description?: string;
|
|
441
|
+
}[];
|
|
442
|
+
/**
|
|
443
|
+
* Specific template ID for custom format rendering
|
|
444
|
+
*/
|
|
445
|
+
template_id?: string;
|
|
446
|
+
output_format?: PreviewOutputFormat;
|
|
447
|
+
context?: ContextObject;
|
|
448
|
+
ext?: ExtensionObject;
|
|
449
|
+
} | {
|
|
450
|
+
/**
|
|
451
|
+
* Discriminator indicating this is a batch preview request
|
|
452
|
+
*/
|
|
453
|
+
request_type: 'batch';
|
|
454
|
+
/**
|
|
455
|
+
* Array of preview requests (1-50 items). Each follows the single request structure.
|
|
456
|
+
*/
|
|
457
|
+
requests: {
|
|
458
|
+
format_id: FormatID;
|
|
459
|
+
creative_manifest: CreativeManifest;
|
|
460
|
+
/**
|
|
461
|
+
* Array of input sets for generating multiple preview variants
|
|
462
|
+
*/
|
|
463
|
+
inputs?: {
|
|
464
|
+
/**
|
|
465
|
+
* Human-readable name for this input set
|
|
466
|
+
*/
|
|
467
|
+
name: string;
|
|
468
|
+
/**
|
|
469
|
+
* Macro values to use for this preview
|
|
470
|
+
*/
|
|
471
|
+
macros?: {
|
|
472
|
+
[k: string]: string | undefined;
|
|
473
|
+
};
|
|
474
|
+
/**
|
|
475
|
+
* Natural language description of the context for AI-generated content
|
|
476
|
+
*/
|
|
477
|
+
context_description?: string;
|
|
478
|
+
}[];
|
|
479
|
+
/**
|
|
480
|
+
* Specific template ID for custom format rendering
|
|
481
|
+
*/
|
|
482
|
+
template_id?: string;
|
|
483
|
+
output_format?: PreviewOutputFormat;
|
|
484
|
+
}[];
|
|
485
|
+
output_format?: PreviewOutputFormat;
|
|
486
|
+
context?: ContextObject;
|
|
487
|
+
ext?: ExtensionObject;
|
|
488
|
+
};
|
|
489
|
+
/**
|
|
490
|
+
* Output format for previews. 'url' returns preview_url (iframe-embeddable URL), 'html' returns preview_html (raw HTML for direct embedding). Default: 'url' for backward compatibility.
|
|
491
|
+
*/
|
|
492
|
+
export type PreviewOutputFormat = 'url' | 'html';
|
|
493
|
+
/**
|
|
494
|
+
* Response containing preview links for one or more creatives. Format matches the request: single preview response for single requests, batch results for batch requests.
|
|
495
|
+
*/
|
|
496
|
+
export type PreviewCreativeResponse = PreviewCreativeSingleResponse | PreviewCreativeBatchResponse;
|
|
497
|
+
/**
|
|
498
|
+
* A single rendered piece of a creative preview with discriminated output format
|
|
499
|
+
*/
|
|
500
|
+
export type PreviewRender = {
|
|
501
|
+
/**
|
|
502
|
+
* Unique identifier for this rendered piece within the variant
|
|
503
|
+
*/
|
|
504
|
+
render_id: string;
|
|
505
|
+
/**
|
|
506
|
+
* Discriminator indicating preview_url is provided
|
|
507
|
+
*/
|
|
508
|
+
output_format: 'url';
|
|
509
|
+
/**
|
|
510
|
+
* URL to an HTML page that renders this piece. Can be embedded in an iframe.
|
|
511
|
+
*/
|
|
512
|
+
preview_url: string;
|
|
513
|
+
/**
|
|
514
|
+
* Semantic role of this rendered piece. Use 'primary' for main content, 'companion' for associated banners, descriptive strings for device variants or custom roles.
|
|
515
|
+
*/
|
|
516
|
+
role: string;
|
|
517
|
+
/**
|
|
518
|
+
* Dimensions for this rendered piece
|
|
519
|
+
*/
|
|
520
|
+
dimensions?: {
|
|
521
|
+
width: number;
|
|
522
|
+
height: number;
|
|
523
|
+
};
|
|
524
|
+
/**
|
|
525
|
+
* Optional security and embedding metadata for safe iframe integration
|
|
526
|
+
*/
|
|
527
|
+
embedding?: {
|
|
528
|
+
/**
|
|
529
|
+
* Recommended iframe sandbox attribute value (e.g., 'allow-scripts allow-same-origin')
|
|
530
|
+
*/
|
|
531
|
+
recommended_sandbox?: string;
|
|
532
|
+
/**
|
|
533
|
+
* Whether this output requires HTTPS for secure embedding
|
|
534
|
+
*/
|
|
535
|
+
requires_https?: boolean;
|
|
536
|
+
/**
|
|
537
|
+
* Whether this output supports fullscreen mode
|
|
538
|
+
*/
|
|
539
|
+
supports_fullscreen?: boolean;
|
|
540
|
+
/**
|
|
541
|
+
* Content Security Policy requirements for embedding
|
|
542
|
+
*/
|
|
543
|
+
csp_policy?: string;
|
|
544
|
+
};
|
|
545
|
+
} | {
|
|
546
|
+
/**
|
|
547
|
+
* Unique identifier for this rendered piece within the variant
|
|
548
|
+
*/
|
|
549
|
+
render_id: string;
|
|
550
|
+
/**
|
|
551
|
+
* Discriminator indicating preview_html is provided
|
|
552
|
+
*/
|
|
553
|
+
output_format: 'html';
|
|
554
|
+
/**
|
|
555
|
+
* Raw HTML for this rendered piece. Can be embedded directly in the page without iframe. Security warning: Only use with trusted creative agents as this bypasses iframe sandboxing.
|
|
556
|
+
*/
|
|
557
|
+
preview_html: string;
|
|
558
|
+
/**
|
|
559
|
+
* Semantic role of this rendered piece. Use 'primary' for main content, 'companion' for associated banners, descriptive strings for device variants or custom roles.
|
|
560
|
+
*/
|
|
561
|
+
role: string;
|
|
562
|
+
/**
|
|
563
|
+
* Dimensions for this rendered piece
|
|
564
|
+
*/
|
|
565
|
+
dimensions?: {
|
|
566
|
+
width: number;
|
|
567
|
+
height: number;
|
|
568
|
+
};
|
|
569
|
+
/**
|
|
570
|
+
* Optional security and embedding metadata
|
|
571
|
+
*/
|
|
572
|
+
embedding?: {
|
|
573
|
+
/**
|
|
574
|
+
* Recommended iframe sandbox attribute value (e.g., 'allow-scripts allow-same-origin')
|
|
575
|
+
*/
|
|
576
|
+
recommended_sandbox?: string;
|
|
577
|
+
/**
|
|
578
|
+
* Whether this output requires HTTPS for secure embedding
|
|
579
|
+
*/
|
|
580
|
+
requires_https?: boolean;
|
|
581
|
+
/**
|
|
582
|
+
* Whether this output supports fullscreen mode
|
|
583
|
+
*/
|
|
584
|
+
supports_fullscreen?: boolean;
|
|
585
|
+
/**
|
|
586
|
+
* Content Security Policy requirements for embedding
|
|
587
|
+
*/
|
|
588
|
+
csp_policy?: string;
|
|
589
|
+
};
|
|
590
|
+
} | {
|
|
591
|
+
/**
|
|
592
|
+
* Unique identifier for this rendered piece within the variant
|
|
593
|
+
*/
|
|
594
|
+
render_id: string;
|
|
595
|
+
/**
|
|
596
|
+
* Discriminator indicating both preview_url and preview_html are provided
|
|
597
|
+
*/
|
|
598
|
+
output_format: 'both';
|
|
599
|
+
/**
|
|
600
|
+
* URL to an HTML page that renders this piece. Can be embedded in an iframe.
|
|
601
|
+
*/
|
|
602
|
+
preview_url: string;
|
|
603
|
+
/**
|
|
604
|
+
* Raw HTML for this rendered piece. Can be embedded directly in the page without iframe. Security warning: Only use with trusted creative agents as this bypasses iframe sandboxing.
|
|
605
|
+
*/
|
|
606
|
+
preview_html: string;
|
|
607
|
+
/**
|
|
608
|
+
* Semantic role of this rendered piece. Use 'primary' for main content, 'companion' for associated banners, descriptive strings for device variants or custom roles.
|
|
609
|
+
*/
|
|
610
|
+
role: string;
|
|
611
|
+
/**
|
|
612
|
+
* Dimensions for this rendered piece
|
|
613
|
+
*/
|
|
614
|
+
dimensions?: {
|
|
615
|
+
width: number;
|
|
616
|
+
height: number;
|
|
617
|
+
};
|
|
618
|
+
/**
|
|
619
|
+
* Optional security and embedding metadata for safe iframe integration
|
|
620
|
+
*/
|
|
621
|
+
embedding?: {
|
|
622
|
+
/**
|
|
623
|
+
* Recommended iframe sandbox attribute value (e.g., 'allow-scripts allow-same-origin')
|
|
624
|
+
*/
|
|
625
|
+
recommended_sandbox?: string;
|
|
626
|
+
/**
|
|
627
|
+
* Whether this output requires HTTPS for secure embedding
|
|
628
|
+
*/
|
|
629
|
+
requires_https?: boolean;
|
|
630
|
+
/**
|
|
631
|
+
* Whether this output supports fullscreen mode
|
|
632
|
+
*/
|
|
633
|
+
supports_fullscreen?: boolean;
|
|
634
|
+
/**
|
|
635
|
+
* Content Security Policy requirements for embedding
|
|
636
|
+
*/
|
|
637
|
+
csp_policy?: string;
|
|
638
|
+
};
|
|
639
|
+
};
|
|
640
|
+
/**
|
|
641
|
+
* A deployment target where signals can be activated (DSP, sales agent, etc.)
|
|
642
|
+
*/
|
|
643
|
+
export type Destination = {
|
|
644
|
+
/**
|
|
645
|
+
* Discriminator indicating this is a platform-based deployment
|
|
646
|
+
*/
|
|
647
|
+
type: 'platform';
|
|
648
|
+
/**
|
|
649
|
+
* Platform identifier for DSPs (e.g., 'the-trade-desk', 'amazon-dsp')
|
|
650
|
+
*/
|
|
651
|
+
platform: string;
|
|
652
|
+
/**
|
|
653
|
+
* Optional account identifier on the platform
|
|
654
|
+
*/
|
|
655
|
+
account?: string;
|
|
656
|
+
} | {
|
|
657
|
+
/**
|
|
658
|
+
* Discriminator indicating this is an agent URL-based deployment
|
|
659
|
+
*/
|
|
660
|
+
type: 'agent';
|
|
661
|
+
/**
|
|
662
|
+
* URL identifying the deployment agent (for sales agents, etc.)
|
|
663
|
+
*/
|
|
664
|
+
agent_url: string;
|
|
665
|
+
/**
|
|
666
|
+
* Optional account identifier on the agent
|
|
667
|
+
*/
|
|
668
|
+
account?: string;
|
|
669
|
+
};
|
|
670
|
+
/**
|
|
671
|
+
* Types of signal catalogs available for audience targeting
|
|
672
|
+
*/
|
|
673
|
+
export type SignalCatalogType = 'marketplace' | 'custom' | 'owned';
|
|
674
|
+
/**
|
|
675
|
+
* A signal deployment to a specific deployment target with activation status and key
|
|
676
|
+
*/
|
|
677
|
+
export type Deployment = {
|
|
678
|
+
/**
|
|
679
|
+
* Discriminator indicating this is a platform-based deployment
|
|
680
|
+
*/
|
|
681
|
+
type: 'platform';
|
|
682
|
+
/**
|
|
683
|
+
* Platform identifier for DSPs
|
|
684
|
+
*/
|
|
685
|
+
platform: string;
|
|
686
|
+
/**
|
|
687
|
+
* Account identifier if applicable
|
|
688
|
+
*/
|
|
689
|
+
account?: string;
|
|
690
|
+
/**
|
|
691
|
+
* Whether signal is currently active on this deployment
|
|
692
|
+
*/
|
|
693
|
+
is_live: boolean;
|
|
694
|
+
activation_key?: ActivationKey;
|
|
695
|
+
/**
|
|
696
|
+
* Estimated time to activate if not live, or to complete activation if in progress
|
|
697
|
+
*/
|
|
698
|
+
estimated_activation_duration_minutes?: number;
|
|
699
|
+
/**
|
|
700
|
+
* Timestamp when activation completed (if is_live=true)
|
|
701
|
+
*/
|
|
702
|
+
deployed_at?: string;
|
|
703
|
+
} | {
|
|
704
|
+
/**
|
|
705
|
+
* Discriminator indicating this is an agent URL-based deployment
|
|
706
|
+
*/
|
|
707
|
+
type: 'agent';
|
|
708
|
+
/**
|
|
709
|
+
* URL identifying the deployment agent
|
|
710
|
+
*/
|
|
711
|
+
agent_url: string;
|
|
712
|
+
/**
|
|
713
|
+
* Account identifier if applicable
|
|
714
|
+
*/
|
|
715
|
+
account?: string;
|
|
716
|
+
/**
|
|
717
|
+
* Whether signal is currently active on this deployment
|
|
718
|
+
*/
|
|
719
|
+
is_live: boolean;
|
|
720
|
+
activation_key?: ActivationKey;
|
|
721
|
+
/**
|
|
722
|
+
* Estimated time to activate if not live, or to complete activation if in progress
|
|
723
|
+
*/
|
|
724
|
+
estimated_activation_duration_minutes?: number;
|
|
725
|
+
/**
|
|
726
|
+
* Timestamp when activation completed (if is_live=true)
|
|
727
|
+
*/
|
|
728
|
+
deployed_at?: string;
|
|
729
|
+
};
|
|
730
|
+
/**
|
|
731
|
+
* The key to use for targeting. Only present if is_live=true AND requester has access to this deployment.
|
|
732
|
+
*/
|
|
733
|
+
export type ActivationKey = {
|
|
734
|
+
/**
|
|
735
|
+
* Segment ID based targeting
|
|
736
|
+
*/
|
|
737
|
+
type: 'segment_id';
|
|
738
|
+
/**
|
|
739
|
+
* The platform-specific segment identifier to use in campaign targeting
|
|
740
|
+
*/
|
|
741
|
+
segment_id: string;
|
|
742
|
+
} | {
|
|
743
|
+
/**
|
|
744
|
+
* Key-value pair based targeting
|
|
745
|
+
*/
|
|
746
|
+
type: 'key_value';
|
|
747
|
+
/**
|
|
748
|
+
* The targeting parameter key
|
|
749
|
+
*/
|
|
750
|
+
key: string;
|
|
751
|
+
/**
|
|
752
|
+
* The targeting parameter value
|
|
753
|
+
*/
|
|
754
|
+
value: string;
|
|
755
|
+
};
|
|
756
|
+
/**
|
|
757
|
+
* Response payload for activate_signal task. Returns either complete success data OR error information, never both. This enforces atomic operation semantics - the signal is either fully activated or not activated at all.
|
|
758
|
+
*/
|
|
759
|
+
export type ActivateSignalResponse = ActivateSignalSuccess | ActivateSignalError;
|
|
760
|
+
/**
|
|
761
|
+
* Request parameters for discovering available advertising products
|
|
762
|
+
*/
|
|
763
|
+
export interface GetProductsRequest {
|
|
764
|
+
/**
|
|
765
|
+
* Natural language description of campaign requirements
|
|
766
|
+
*/
|
|
767
|
+
brief?: string;
|
|
768
|
+
brand_manifest?: BrandManifestReference;
|
|
769
|
+
filters?: ProductFilters;
|
|
770
|
+
context?: ContextObject;
|
|
771
|
+
ext?: ExtensionObject;
|
|
772
|
+
}
|
|
773
|
+
/**
|
|
774
|
+
* Inline brand manifest object
|
|
775
|
+
*/
|
|
776
|
+
export interface BrandManifest {
|
|
777
|
+
/**
|
|
778
|
+
* Primary brand URL for context and asset discovery. Creative agents can infer brand information from this URL.
|
|
779
|
+
*/
|
|
780
|
+
url?: string;
|
|
781
|
+
/**
|
|
782
|
+
* Brand or business name
|
|
783
|
+
*/
|
|
784
|
+
name: string;
|
|
785
|
+
/**
|
|
786
|
+
* Brand logo assets with semantic tags for different use cases
|
|
787
|
+
*/
|
|
788
|
+
logos?: {
|
|
789
|
+
/**
|
|
790
|
+
* URL to the logo asset
|
|
791
|
+
*/
|
|
792
|
+
url: string;
|
|
793
|
+
/**
|
|
794
|
+
* Semantic tags describing the logo variant (e.g., 'dark', 'light', 'square', 'horizontal', 'icon')
|
|
795
|
+
*/
|
|
796
|
+
tags?: string[];
|
|
797
|
+
/**
|
|
798
|
+
* Logo width in pixels
|
|
799
|
+
*/
|
|
800
|
+
width?: number;
|
|
801
|
+
/**
|
|
802
|
+
* Logo height in pixels
|
|
803
|
+
*/
|
|
804
|
+
height?: number;
|
|
805
|
+
}[];
|
|
806
|
+
/**
|
|
807
|
+
* Brand color palette
|
|
808
|
+
*/
|
|
809
|
+
colors?: {
|
|
810
|
+
/**
|
|
811
|
+
* Primary brand color (hex format)
|
|
812
|
+
*/
|
|
813
|
+
primary?: string;
|
|
814
|
+
/**
|
|
815
|
+
* Secondary brand color (hex format)
|
|
816
|
+
*/
|
|
817
|
+
secondary?: string;
|
|
818
|
+
/**
|
|
819
|
+
* Accent color (hex format)
|
|
820
|
+
*/
|
|
821
|
+
accent?: string;
|
|
822
|
+
/**
|
|
823
|
+
* Background color (hex format)
|
|
824
|
+
*/
|
|
825
|
+
background?: string;
|
|
826
|
+
/**
|
|
827
|
+
* Text color (hex format)
|
|
828
|
+
*/
|
|
829
|
+
text?: string;
|
|
830
|
+
};
|
|
831
|
+
/**
|
|
832
|
+
* Brand typography guidelines
|
|
833
|
+
*/
|
|
834
|
+
fonts?: {
|
|
835
|
+
/**
|
|
836
|
+
* Primary font family name
|
|
837
|
+
*/
|
|
838
|
+
primary?: string;
|
|
839
|
+
/**
|
|
840
|
+
* Secondary font family name
|
|
841
|
+
*/
|
|
842
|
+
secondary?: string;
|
|
843
|
+
/**
|
|
844
|
+
* URLs to web font files if using custom fonts
|
|
845
|
+
*/
|
|
846
|
+
font_urls?: string[];
|
|
847
|
+
};
|
|
848
|
+
/**
|
|
849
|
+
* Brand voice and messaging tone (e.g., 'professional', 'casual', 'humorous', 'trustworthy', 'innovative')
|
|
850
|
+
*/
|
|
851
|
+
tone?: string;
|
|
852
|
+
/**
|
|
853
|
+
* Brand tagline or slogan
|
|
854
|
+
*/
|
|
855
|
+
tagline?: string;
|
|
856
|
+
/**
|
|
857
|
+
* Brand asset library with explicit assets and tags. Assets are referenced inline with URLs pointing to CDN-hosted files.
|
|
858
|
+
*/
|
|
859
|
+
assets?: {
|
|
860
|
+
/**
|
|
861
|
+
* Unique identifier for this asset
|
|
862
|
+
*/
|
|
863
|
+
asset_id: string;
|
|
864
|
+
asset_type: AssetContentType;
|
|
865
|
+
/**
|
|
866
|
+
* URL to CDN-hosted asset file
|
|
867
|
+
*/
|
|
868
|
+
url: string;
|
|
869
|
+
/**
|
|
870
|
+
* Tags for asset discovery (e.g., 'holiday', 'lifestyle', 'product_shot')
|
|
871
|
+
*/
|
|
872
|
+
tags?: string[];
|
|
873
|
+
/**
|
|
874
|
+
* Human-readable asset name
|
|
875
|
+
*/
|
|
876
|
+
name?: string;
|
|
877
|
+
/**
|
|
878
|
+
* Asset description or usage notes
|
|
879
|
+
*/
|
|
880
|
+
description?: string;
|
|
881
|
+
/**
|
|
882
|
+
* Image/video width in pixels
|
|
883
|
+
*/
|
|
884
|
+
width?: number;
|
|
885
|
+
/**
|
|
886
|
+
* Image/video height in pixels
|
|
887
|
+
*/
|
|
888
|
+
height?: number;
|
|
889
|
+
/**
|
|
890
|
+
* Video/audio duration in seconds
|
|
891
|
+
*/
|
|
892
|
+
duration_seconds?: number;
|
|
893
|
+
/**
|
|
894
|
+
* File size in bytes
|
|
895
|
+
*/
|
|
896
|
+
file_size_bytes?: number;
|
|
897
|
+
/**
|
|
898
|
+
* File format (e.g., 'jpg', 'mp4', 'mp3')
|
|
899
|
+
*/
|
|
900
|
+
format?: string;
|
|
901
|
+
/**
|
|
902
|
+
* Additional asset-specific metadata
|
|
903
|
+
*/
|
|
904
|
+
metadata?: {};
|
|
905
|
+
}[];
|
|
906
|
+
/**
|
|
907
|
+
* Product catalog information for e-commerce advertisers. Enables SKU-level creative generation and product selection.
|
|
908
|
+
*/
|
|
909
|
+
product_catalog?: {
|
|
910
|
+
/**
|
|
911
|
+
* URL to product catalog feed
|
|
912
|
+
*/
|
|
913
|
+
feed_url: string;
|
|
914
|
+
/**
|
|
915
|
+
* Format of the product feed
|
|
916
|
+
*/
|
|
917
|
+
feed_format?: 'google_merchant_center' | 'facebook_catalog' | 'custom';
|
|
918
|
+
/**
|
|
919
|
+
* Product categories available in the catalog (for filtering)
|
|
920
|
+
*/
|
|
921
|
+
categories?: string[];
|
|
922
|
+
/**
|
|
923
|
+
* When the product catalog was last updated
|
|
924
|
+
*/
|
|
925
|
+
last_updated?: string;
|
|
926
|
+
/**
|
|
927
|
+
* How frequently the product catalog is updated
|
|
928
|
+
*/
|
|
929
|
+
update_frequency?: 'realtime' | 'hourly' | 'daily' | 'weekly';
|
|
930
|
+
};
|
|
931
|
+
/**
|
|
932
|
+
* Legal disclaimers or required text that must appear in creatives
|
|
933
|
+
*/
|
|
934
|
+
disclaimers?: {
|
|
935
|
+
/**
|
|
936
|
+
* Disclaimer text
|
|
937
|
+
*/
|
|
938
|
+
text: string;
|
|
939
|
+
/**
|
|
940
|
+
* When this disclaimer applies (e.g., 'financial_products', 'health_claims', 'all')
|
|
941
|
+
*/
|
|
942
|
+
context?: string;
|
|
943
|
+
/**
|
|
944
|
+
* Whether this disclaimer must appear
|
|
945
|
+
*/
|
|
946
|
+
required?: boolean;
|
|
947
|
+
}[];
|
|
948
|
+
/**
|
|
949
|
+
* Industry or vertical (e.g., 'retail', 'automotive', 'finance', 'healthcare')
|
|
950
|
+
*/
|
|
951
|
+
industry?: string;
|
|
952
|
+
/**
|
|
953
|
+
* Primary target audience description
|
|
954
|
+
*/
|
|
955
|
+
target_audience?: string;
|
|
956
|
+
/**
|
|
957
|
+
* Brand contact information
|
|
958
|
+
*/
|
|
959
|
+
contact?: {
|
|
960
|
+
/**
|
|
961
|
+
* Contact email
|
|
962
|
+
*/
|
|
963
|
+
email?: string;
|
|
964
|
+
/**
|
|
965
|
+
* Contact phone number
|
|
966
|
+
*/
|
|
967
|
+
phone?: string;
|
|
968
|
+
};
|
|
969
|
+
/**
|
|
970
|
+
* Additional brand metadata
|
|
971
|
+
*/
|
|
972
|
+
metadata?: {
|
|
973
|
+
/**
|
|
974
|
+
* When this brand manifest was created
|
|
975
|
+
*/
|
|
976
|
+
created_date?: string;
|
|
977
|
+
/**
|
|
978
|
+
* When this brand manifest was last updated
|
|
979
|
+
*/
|
|
980
|
+
updated_date?: string;
|
|
981
|
+
/**
|
|
982
|
+
* Brand card version number
|
|
983
|
+
*/
|
|
984
|
+
version?: string;
|
|
985
|
+
};
|
|
986
|
+
}
|
|
987
|
+
/**
|
|
988
|
+
* Structured filters for product discovery
|
|
989
|
+
*/
|
|
990
|
+
export interface ProductFilters {
|
|
991
|
+
delivery_type?: DeliveryType;
|
|
992
|
+
/**
|
|
993
|
+
* Filter for fixed price vs auction products
|
|
994
|
+
*/
|
|
995
|
+
is_fixed_price?: boolean;
|
|
996
|
+
/**
|
|
997
|
+
* Filter by format types
|
|
998
|
+
*/
|
|
999
|
+
format_types?: FormatCategory[];
|
|
1000
|
+
/**
|
|
1001
|
+
* Filter by specific format IDs
|
|
1002
|
+
*/
|
|
1003
|
+
format_ids?: FormatID[];
|
|
1004
|
+
/**
|
|
1005
|
+
* Only return products accepting IAB standard formats
|
|
1006
|
+
*/
|
|
1007
|
+
standard_formats_only?: boolean;
|
|
1008
|
+
/**
|
|
1009
|
+
* Minimum exposures/impressions needed for measurement validity
|
|
1010
|
+
*/
|
|
1011
|
+
min_exposures?: number;
|
|
1012
|
+
/**
|
|
1013
|
+
* Campaign start date (ISO 8601 date format: YYYY-MM-DD) for availability checks
|
|
1014
|
+
*/
|
|
1015
|
+
start_date?: string;
|
|
1016
|
+
/**
|
|
1017
|
+
* Campaign end date (ISO 8601 date format: YYYY-MM-DD) for availability checks
|
|
1018
|
+
*/
|
|
1019
|
+
end_date?: string;
|
|
1020
|
+
/**
|
|
1021
|
+
* Budget range to filter appropriate products
|
|
1022
|
+
*/
|
|
1023
|
+
budget_range?: {
|
|
1024
|
+
[k: string]: unknown | undefined;
|
|
1025
|
+
};
|
|
1026
|
+
/**
|
|
1027
|
+
* Filter by target countries using ISO 3166-1 alpha-2 country codes (e.g., ['US', 'CA', 'GB'])
|
|
1028
|
+
*/
|
|
1029
|
+
countries?: string[];
|
|
1030
|
+
/**
|
|
1031
|
+
* Filter by advertising channels (e.g., ['display', 'video', 'dooh'])
|
|
1032
|
+
*/
|
|
1033
|
+
channels?: AdvertisingChannels[];
|
|
1034
|
+
}
|
|
1035
|
+
/**
|
|
1036
|
+
* Structured format identifier with agent URL and format name. Can reference: (1) a concrete format with fixed dimensions (id only), (2) a template format without parameters (id only), or (3) a template format with parameters (id + dimensions/duration). Template formats accept parameters in format_id while concrete formats have fixed dimensions in their definition. Parameterized format IDs create unique, specific format variants.
|
|
1037
|
+
*/
|
|
1038
|
+
export interface FormatID {
|
|
1039
|
+
/**
|
|
1040
|
+
* URL of the agent that defines this format (e.g., 'https://creatives.adcontextprotocol.org' for standard formats, or 'https://publisher.com/.well-known/adcp/sales' for custom formats)
|
|
1041
|
+
*/
|
|
1042
|
+
agent_url: string;
|
|
1043
|
+
/**
|
|
1044
|
+
* Format identifier within the agent's namespace (e.g., 'display_static', 'video_hosted', 'audio_standard'). When used alone, references a template format. When combined with dimension/duration fields, creates a parameterized format ID for a specific variant.
|
|
1045
|
+
*/
|
|
1046
|
+
id: string;
|
|
1047
|
+
/**
|
|
1048
|
+
* Width in pixels for visual formats. When specified, height must also be specified. Both fields together create a parameterized format ID for dimension-specific variants.
|
|
1049
|
+
*/
|
|
1050
|
+
width?: number;
|
|
1051
|
+
/**
|
|
1052
|
+
* Height in pixels for visual formats. When specified, width must also be specified. Both fields together create a parameterized format ID for dimension-specific variants.
|
|
1053
|
+
*/
|
|
1054
|
+
height?: number;
|
|
1055
|
+
/**
|
|
1056
|
+
* Duration in milliseconds for time-based formats (video, audio). When specified, creates a parameterized format ID. Omit to reference a template format without parameters.
|
|
1057
|
+
*/
|
|
1058
|
+
duration_ms?: number;
|
|
1059
|
+
}
|
|
1060
|
+
/**
|
|
1061
|
+
* 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.
|
|
1062
|
+
*/
|
|
1063
|
+
export interface ContextObject {
|
|
1064
|
+
}
|
|
1065
|
+
/**
|
|
1066
|
+
* 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.
|
|
1067
|
+
*/
|
|
1068
|
+
export interface ExtensionObject {
|
|
1069
|
+
}
|
|
1070
|
+
/**
|
|
1071
|
+
* Response payload for get_products task
|
|
1072
|
+
*/
|
|
1073
|
+
export interface GetProductsResponse {
|
|
1074
|
+
/**
|
|
1075
|
+
* Array of matching products
|
|
1076
|
+
*/
|
|
1077
|
+
products: Product[];
|
|
1078
|
+
/**
|
|
1079
|
+
* Task-specific errors and warnings (e.g., product filtering issues)
|
|
1080
|
+
*/
|
|
1081
|
+
errors?: Error[];
|
|
1082
|
+
context?: ContextObject;
|
|
1083
|
+
ext?: ExtensionObject;
|
|
1084
|
+
}
|
|
1085
|
+
/**
|
|
1086
|
+
* Represents available advertising inventory
|
|
1087
|
+
*/
|
|
1088
|
+
export interface Product {
|
|
1089
|
+
/**
|
|
1090
|
+
* Unique identifier for the product
|
|
1091
|
+
*/
|
|
1092
|
+
product_id: string;
|
|
1093
|
+
/**
|
|
1094
|
+
* Human-readable product name
|
|
1095
|
+
*/
|
|
1096
|
+
name: string;
|
|
1097
|
+
/**
|
|
1098
|
+
* Detailed description of the product and its inventory
|
|
1099
|
+
*/
|
|
1100
|
+
description: string;
|
|
1101
|
+
/**
|
|
1102
|
+
* Publisher properties covered by this product. Buyers fetch actual property definitions from each publisher's adagents.json and validate agent authorization. Selection patterns mirror the authorization patterns in adagents.json for consistency.
|
|
1103
|
+
*/
|
|
1104
|
+
publisher_properties: PublisherPropertySelector[];
|
|
1105
|
+
/**
|
|
1106
|
+
* Array of supported creative format IDs - structured format_id objects with agent_url and id
|
|
1107
|
+
*/
|
|
1108
|
+
format_ids: FormatID[];
|
|
1109
|
+
/**
|
|
1110
|
+
* Optional array of specific placements within this product. When provided, buyers can target specific placements when assigning creatives.
|
|
1111
|
+
*/
|
|
1112
|
+
placements?: Placement[];
|
|
1113
|
+
delivery_type: DeliveryType;
|
|
1114
|
+
/**
|
|
1115
|
+
* Available pricing models for this product
|
|
1116
|
+
*/
|
|
1117
|
+
pricing_options: PricingOption[];
|
|
1118
|
+
/**
|
|
1119
|
+
* Estimated exposures/impressions for guaranteed products
|
|
1120
|
+
*/
|
|
1121
|
+
estimated_exposures?: number;
|
|
1122
|
+
measurement?: Measurement;
|
|
1123
|
+
/**
|
|
1124
|
+
* Measurement provider and methodology for delivery metrics. The buyer accepts the declared provider as the source of truth for the buy. REQUIRED for all products.
|
|
1125
|
+
*/
|
|
1126
|
+
delivery_measurement: {
|
|
1127
|
+
/**
|
|
1128
|
+
* Measurement provider(s) used for this product (e.g., 'Google Ad Manager with IAS viewability', 'Nielsen DAR', 'Geopath for DOOH impressions')
|
|
1129
|
+
*/
|
|
1130
|
+
provider: string;
|
|
1131
|
+
/**
|
|
1132
|
+
* Additional details about measurement methodology in plain language (e.g., 'MRC-accredited viewability. 50% in-view for 1s display / 2s video', 'Panel-based demographic measurement updated monthly')
|
|
1133
|
+
*/
|
|
1134
|
+
notes?: string;
|
|
1135
|
+
};
|
|
1136
|
+
reporting_capabilities?: ReportingCapabilities;
|
|
1137
|
+
creative_policy?: CreativePolicy;
|
|
1138
|
+
/**
|
|
1139
|
+
* Whether this is a custom product
|
|
1140
|
+
*/
|
|
1141
|
+
is_custom?: boolean;
|
|
1142
|
+
/**
|
|
1143
|
+
* Explanation of why this product matches the brief (only included when brief is provided)
|
|
1144
|
+
*/
|
|
1145
|
+
brief_relevance?: string;
|
|
1146
|
+
/**
|
|
1147
|
+
* Expiration timestamp for custom products
|
|
1148
|
+
*/
|
|
1149
|
+
expires_at?: string;
|
|
1150
|
+
/**
|
|
1151
|
+
* Optional standard visual card (300x400px) for displaying this product in user interfaces. Can be rendered via preview_creative or pre-generated.
|
|
1152
|
+
*/
|
|
1153
|
+
product_card?: {
|
|
1154
|
+
format_id: FormatID;
|
|
1155
|
+
/**
|
|
1156
|
+
* Asset manifest for rendering the card, structure defined by the format
|
|
1157
|
+
*/
|
|
1158
|
+
manifest: {};
|
|
1159
|
+
};
|
|
1160
|
+
/**
|
|
1161
|
+
* Optional detailed card with carousel and full specifications. Provides rich product presentation similar to media kit pages.
|
|
1162
|
+
*/
|
|
1163
|
+
product_card_detailed?: {
|
|
1164
|
+
format_id: FormatID;
|
|
1165
|
+
/**
|
|
1166
|
+
* Asset manifest for rendering the detailed card, structure defined by the format
|
|
1167
|
+
*/
|
|
1168
|
+
manifest: {};
|
|
1169
|
+
};
|
|
1170
|
+
ext?: ExtensionObject;
|
|
1171
|
+
}
|
|
1172
|
+
/**
|
|
1173
|
+
* Represents a specific ad placement within a product's inventory
|
|
1174
|
+
*/
|
|
1175
|
+
export interface Placement {
|
|
1176
|
+
/**
|
|
1177
|
+
* Unique identifier for the placement within the product
|
|
1178
|
+
*/
|
|
1179
|
+
placement_id: string;
|
|
1180
|
+
/**
|
|
1181
|
+
* Human-readable name for the placement (e.g., 'Homepage Banner', 'Article Sidebar')
|
|
1182
|
+
*/
|
|
1183
|
+
name: string;
|
|
1184
|
+
/**
|
|
1185
|
+
* Detailed description of where and how the placement appears
|
|
1186
|
+
*/
|
|
1187
|
+
description?: string;
|
|
1188
|
+
/**
|
|
1189
|
+
* Format IDs supported by this specific placement. Can include: (1) concrete format_ids (fixed dimensions), (2) template format_ids without parameters (accepts any dimensions/duration), or (3) parameterized format_ids (specific dimension/duration constraints).
|
|
1190
|
+
*/
|
|
1191
|
+
format_ids?: FormatID[];
|
|
1192
|
+
}
|
|
1193
|
+
/**
|
|
1194
|
+
* Cost Per Mille (cost per 1,000 impressions) with guaranteed fixed rate - common for direct/guaranteed deals
|
|
1195
|
+
*/
|
|
1196
|
+
export interface CPMFixedRatePricingOption {
|
|
1197
|
+
/**
|
|
1198
|
+
* Unique identifier for this pricing option within the product (e.g., 'cpm_usd_guaranteed')
|
|
1199
|
+
*/
|
|
1200
|
+
pricing_option_id: string;
|
|
1201
|
+
/**
|
|
1202
|
+
* Cost per 1,000 impressions
|
|
1203
|
+
*/
|
|
1204
|
+
pricing_model: 'cpm';
|
|
1205
|
+
/**
|
|
1206
|
+
* Fixed CPM rate (cost per 1,000 impressions)
|
|
1207
|
+
*/
|
|
1208
|
+
rate: number;
|
|
1209
|
+
/**
|
|
1210
|
+
* ISO 4217 currency code
|
|
1211
|
+
*/
|
|
1212
|
+
currency: string;
|
|
1213
|
+
/**
|
|
1214
|
+
* Whether this is a fixed rate (true) or auction-based (false)
|
|
1215
|
+
*/
|
|
1216
|
+
is_fixed: true;
|
|
1217
|
+
/**
|
|
1218
|
+
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
1219
|
+
*/
|
|
1220
|
+
min_spend_per_package?: number;
|
|
1221
|
+
}
|
|
1222
|
+
/**
|
|
1223
|
+
* Cost Per Mille (cost per 1,000 impressions) with auction-based pricing - common for programmatic/non-guaranteed inventory
|
|
1224
|
+
*/
|
|
1225
|
+
export interface CPMAuctionPricingOption {
|
|
1226
|
+
/**
|
|
1227
|
+
* Unique identifier for this pricing option within the product (e.g., 'cpm_usd_auction')
|
|
1228
|
+
*/
|
|
1229
|
+
pricing_option_id: string;
|
|
1230
|
+
/**
|
|
1231
|
+
* Cost per 1,000 impressions
|
|
1232
|
+
*/
|
|
1233
|
+
pricing_model: 'cpm';
|
|
1234
|
+
/**
|
|
1235
|
+
* ISO 4217 currency code
|
|
1236
|
+
*/
|
|
1237
|
+
currency: string;
|
|
1238
|
+
/**
|
|
1239
|
+
* Whether this is a fixed rate (true) or auction-based (false)
|
|
1240
|
+
*/
|
|
1241
|
+
is_fixed: false;
|
|
1242
|
+
/**
|
|
1243
|
+
* Pricing guidance for auction-based CPM bidding
|
|
1244
|
+
*/
|
|
1245
|
+
price_guidance: {
|
|
1246
|
+
/**
|
|
1247
|
+
* Minimum bid price - publisher will reject bids under this value
|
|
1248
|
+
*/
|
|
1249
|
+
floor: number;
|
|
1250
|
+
/**
|
|
1251
|
+
* 25th percentile winning price
|
|
1252
|
+
*/
|
|
1253
|
+
p25?: number;
|
|
1254
|
+
/**
|
|
1255
|
+
* Median winning price
|
|
1256
|
+
*/
|
|
1257
|
+
p50?: number;
|
|
1258
|
+
/**
|
|
1259
|
+
* 75th percentile winning price
|
|
1260
|
+
*/
|
|
1261
|
+
p75?: number;
|
|
1262
|
+
/**
|
|
1263
|
+
* 90th percentile winning price
|
|
1264
|
+
*/
|
|
1265
|
+
p90?: number;
|
|
1266
|
+
};
|
|
1267
|
+
/**
|
|
1268
|
+
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
1269
|
+
*/
|
|
1270
|
+
min_spend_per_package?: number;
|
|
1271
|
+
}
|
|
1272
|
+
/**
|
|
1273
|
+
* Viewable Cost Per Mille (cost per 1,000 viewable impressions) with guaranteed fixed rate - impressions meeting MRC viewability standard (50% pixels in-view for 1 second for display, 2 seconds for video)
|
|
1274
|
+
*/
|
|
1275
|
+
export interface VCPMFixedRatePricingOption {
|
|
1276
|
+
/**
|
|
1277
|
+
* Unique identifier for this pricing option within the product (e.g., 'vcpm_usd_guaranteed')
|
|
1278
|
+
*/
|
|
1279
|
+
pricing_option_id: string;
|
|
1280
|
+
/**
|
|
1281
|
+
* Cost per 1,000 viewable impressions (MRC standard)
|
|
1282
|
+
*/
|
|
1283
|
+
pricing_model: 'vcpm';
|
|
1284
|
+
/**
|
|
1285
|
+
* Fixed vCPM rate (cost per 1,000 viewable impressions)
|
|
1286
|
+
*/
|
|
1287
|
+
rate: number;
|
|
1288
|
+
/**
|
|
1289
|
+
* ISO 4217 currency code
|
|
1290
|
+
*/
|
|
1291
|
+
currency: string;
|
|
1292
|
+
/**
|
|
1293
|
+
* Whether this is a fixed rate (true) or auction-based (false)
|
|
1294
|
+
*/
|
|
1295
|
+
is_fixed: true;
|
|
1296
|
+
/**
|
|
1297
|
+
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
1298
|
+
*/
|
|
1299
|
+
min_spend_per_package?: number;
|
|
1300
|
+
}
|
|
1301
|
+
/**
|
|
1302
|
+
* Viewable Cost Per Mille (cost per 1,000 viewable impressions) with auction-based pricing - impressions meeting MRC viewability standard (50% pixels in-view for 1 second for display, 2 seconds for video)
|
|
1303
|
+
*/
|
|
1304
|
+
export interface VCPMAuctionPricingOption {
|
|
1305
|
+
/**
|
|
1306
|
+
* Unique identifier for this pricing option within the product (e.g., 'vcpm_usd_auction')
|
|
1307
|
+
*/
|
|
1308
|
+
pricing_option_id: string;
|
|
1309
|
+
/**
|
|
1310
|
+
* Cost per 1,000 viewable impressions (MRC standard)
|
|
1311
|
+
*/
|
|
1312
|
+
pricing_model: 'vcpm';
|
|
1313
|
+
/**
|
|
1314
|
+
* ISO 4217 currency code
|
|
1315
|
+
*/
|
|
1316
|
+
currency: string;
|
|
1317
|
+
/**
|
|
1318
|
+
* Whether this is a fixed rate (true) or auction-based (false)
|
|
1319
|
+
*/
|
|
1320
|
+
is_fixed: false;
|
|
1321
|
+
/**
|
|
1322
|
+
* Statistical guidance for auction pricing
|
|
1323
|
+
*/
|
|
1324
|
+
price_guidance: {
|
|
1325
|
+
/**
|
|
1326
|
+
* Minimum acceptable bid price
|
|
1327
|
+
*/
|
|
1328
|
+
floor: number;
|
|
1329
|
+
/**
|
|
1330
|
+
* 25th percentile of recent winning bids
|
|
1331
|
+
*/
|
|
1332
|
+
p25?: number;
|
|
1333
|
+
/**
|
|
1334
|
+
* Median of recent winning bids
|
|
1335
|
+
*/
|
|
1336
|
+
p50?: number;
|
|
1337
|
+
/**
|
|
1338
|
+
* 75th percentile of recent winning bids
|
|
1339
|
+
*/
|
|
1340
|
+
p75?: number;
|
|
1341
|
+
/**
|
|
1342
|
+
* 90th percentile of recent winning bids
|
|
1343
|
+
*/
|
|
1344
|
+
p90?: number;
|
|
1345
|
+
};
|
|
1346
|
+
/**
|
|
1347
|
+
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
1348
|
+
*/
|
|
1349
|
+
min_spend_per_package?: number;
|
|
1350
|
+
}
|
|
1351
|
+
/**
|
|
1352
|
+
* Cost Per Click fixed-rate pricing for performance-driven advertising campaigns
|
|
1353
|
+
*/
|
|
1354
|
+
export interface CPCPricingOption {
|
|
1355
|
+
/**
|
|
1356
|
+
* Unique identifier for this pricing option within the product (e.g., 'cpc_usd_fixed')
|
|
1357
|
+
*/
|
|
1358
|
+
pricing_option_id: string;
|
|
1359
|
+
/**
|
|
1360
|
+
* Cost per click
|
|
1361
|
+
*/
|
|
1362
|
+
pricing_model: 'cpc';
|
|
1363
|
+
/**
|
|
1364
|
+
* Fixed CPC rate (cost per click)
|
|
1365
|
+
*/
|
|
1366
|
+
rate: number;
|
|
1367
|
+
/**
|
|
1368
|
+
* ISO 4217 currency code
|
|
1369
|
+
*/
|
|
1370
|
+
currency: string;
|
|
1371
|
+
/**
|
|
1372
|
+
* Whether this is a fixed rate (true) or auction-based (false)
|
|
1373
|
+
*/
|
|
1374
|
+
is_fixed: true;
|
|
1375
|
+
/**
|
|
1376
|
+
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
1377
|
+
*/
|
|
1378
|
+
min_spend_per_package?: number;
|
|
1379
|
+
}
|
|
1380
|
+
/**
|
|
1381
|
+
* Cost Per Completed View (100% video/audio completion) fixed-rate pricing
|
|
1382
|
+
*/
|
|
1383
|
+
export interface CPCVPricingOption {
|
|
1384
|
+
/**
|
|
1385
|
+
* Unique identifier for this pricing option within the product (e.g., 'cpcv_usd_guaranteed')
|
|
1386
|
+
*/
|
|
1387
|
+
pricing_option_id: string;
|
|
1388
|
+
/**
|
|
1389
|
+
* Cost per completed view (100% completion)
|
|
1390
|
+
*/
|
|
1391
|
+
pricing_model: 'cpcv';
|
|
1392
|
+
/**
|
|
1393
|
+
* Fixed CPCV rate (cost per 100% completion)
|
|
1394
|
+
*/
|
|
1395
|
+
rate: number;
|
|
1396
|
+
/**
|
|
1397
|
+
* ISO 4217 currency code
|
|
1398
|
+
*/
|
|
1399
|
+
currency: string;
|
|
1400
|
+
/**
|
|
1401
|
+
* Whether this is a fixed rate (true) or auction-based (false)
|
|
1402
|
+
*/
|
|
1403
|
+
is_fixed: true;
|
|
1404
|
+
/**
|
|
1405
|
+
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
1406
|
+
*/
|
|
1407
|
+
min_spend_per_package?: number;
|
|
1408
|
+
}
|
|
1409
|
+
/**
|
|
1410
|
+
* Cost Per View (at publisher-defined threshold) fixed-rate pricing for video/audio
|
|
1411
|
+
*/
|
|
1412
|
+
export interface CPVPricingOption {
|
|
1413
|
+
/**
|
|
1414
|
+
* Unique identifier for this pricing option within the product (e.g., 'cpv_usd_50pct')
|
|
1415
|
+
*/
|
|
1416
|
+
pricing_option_id: string;
|
|
1417
|
+
/**
|
|
1418
|
+
* Cost per view at threshold
|
|
1419
|
+
*/
|
|
1420
|
+
pricing_model: 'cpv';
|
|
1421
|
+
/**
|
|
1422
|
+
* Fixed CPV rate (cost per view)
|
|
1423
|
+
*/
|
|
1424
|
+
rate: number;
|
|
1425
|
+
/**
|
|
1426
|
+
* ISO 4217 currency code
|
|
1427
|
+
*/
|
|
1428
|
+
currency: string;
|
|
1429
|
+
/**
|
|
1430
|
+
* Whether this is a fixed rate (true) or auction-based (false)
|
|
1431
|
+
*/
|
|
1432
|
+
is_fixed: true;
|
|
1433
|
+
/**
|
|
1434
|
+
* CPV-specific parameters defining the view threshold
|
|
1435
|
+
*/
|
|
1436
|
+
parameters: {
|
|
1437
|
+
view_threshold: number | {
|
|
1438
|
+
/**
|
|
1439
|
+
* Seconds of viewing required (e.g., 30 for YouTube-style '30 seconds = view')
|
|
1440
|
+
*/
|
|
1441
|
+
duration_seconds: number;
|
|
1442
|
+
};
|
|
1443
|
+
};
|
|
1444
|
+
/**
|
|
1445
|
+
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
1446
|
+
*/
|
|
1447
|
+
min_spend_per_package?: number;
|
|
1448
|
+
}
|
|
1449
|
+
/**
|
|
1450
|
+
* Cost Per Point (Gross Rating Point) fixed-rate pricing for TV and audio campaigns requiring demographic measurement
|
|
1451
|
+
*/
|
|
1452
|
+
export interface CPPPricingOption {
|
|
1453
|
+
/**
|
|
1454
|
+
* Unique identifier for this pricing option within the product (e.g., 'cpp_usd_p18-49')
|
|
1455
|
+
*/
|
|
1456
|
+
pricing_option_id: string;
|
|
1457
|
+
/**
|
|
1458
|
+
* Cost per Gross Rating Point
|
|
1459
|
+
*/
|
|
1460
|
+
pricing_model: 'cpp';
|
|
1461
|
+
/**
|
|
1462
|
+
* Fixed CPP rate (cost per rating point)
|
|
1463
|
+
*/
|
|
1464
|
+
rate: number;
|
|
1465
|
+
/**
|
|
1466
|
+
* ISO 4217 currency code
|
|
1467
|
+
*/
|
|
1468
|
+
currency: string;
|
|
1469
|
+
/**
|
|
1470
|
+
* Whether this is a fixed rate (true) or auction-based (false)
|
|
1471
|
+
*/
|
|
1472
|
+
is_fixed: true;
|
|
1473
|
+
/**
|
|
1474
|
+
* CPP-specific parameters for demographic targeting and GRP requirements
|
|
1475
|
+
*/
|
|
1476
|
+
parameters: {
|
|
1477
|
+
/**
|
|
1478
|
+
* Target demographic in Nielsen format: P/M/W/A/C + age range. Examples: P18-49 (Persons 18-49), M25-54 (Men 25-54), W35+ (Women 35+), A18-34 (Adults 18-34), C2-11 (Children 2-11)
|
|
1479
|
+
*/
|
|
1480
|
+
demographic: string;
|
|
1481
|
+
/**
|
|
1482
|
+
* Minimum GRPs/TRPs required for this pricing option
|
|
1483
|
+
*/
|
|
1484
|
+
min_points?: number;
|
|
1485
|
+
};
|
|
1486
|
+
/**
|
|
1487
|
+
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
1488
|
+
*/
|
|
1489
|
+
min_spend_per_package?: number;
|
|
1490
|
+
}
|
|
1491
|
+
/**
|
|
1492
|
+
* Flat rate pricing for DOOH, sponsorships, and time-based campaigns - fixed cost regardless of delivery volume
|
|
1493
|
+
*/
|
|
1494
|
+
export interface FlatRatePricingOption {
|
|
1495
|
+
/**
|
|
1496
|
+
* Unique identifier for this pricing option within the product (e.g., 'flat_rate_usd_24h_takeover')
|
|
1497
|
+
*/
|
|
1498
|
+
pricing_option_id: string;
|
|
1499
|
+
/**
|
|
1500
|
+
* Fixed cost regardless of delivery volume
|
|
1501
|
+
*/
|
|
1502
|
+
pricing_model: 'flat_rate';
|
|
1503
|
+
/**
|
|
1504
|
+
* Flat rate cost
|
|
1505
|
+
*/
|
|
1506
|
+
rate: number;
|
|
1507
|
+
/**
|
|
1508
|
+
* ISO 4217 currency code
|
|
1509
|
+
*/
|
|
1510
|
+
currency: string;
|
|
1511
|
+
/**
|
|
1512
|
+
* Whether this is a fixed rate (true) or auction-based (false)
|
|
1513
|
+
*/
|
|
1514
|
+
is_fixed: true;
|
|
1515
|
+
/**
|
|
1516
|
+
* Flat rate parameters for DOOH and time-based campaigns
|
|
1517
|
+
*/
|
|
1518
|
+
parameters?: {
|
|
1519
|
+
/**
|
|
1520
|
+
* Duration in hours for time-based flat rate pricing (DOOH)
|
|
1521
|
+
*/
|
|
1522
|
+
duration_hours?: number;
|
|
1523
|
+
/**
|
|
1524
|
+
* Guaranteed share of voice as percentage (DOOH, 0-100)
|
|
1525
|
+
*/
|
|
1526
|
+
sov_percentage?: number;
|
|
1527
|
+
/**
|
|
1528
|
+
* Duration of ad loop rotation in seconds (DOOH)
|
|
1529
|
+
*/
|
|
1530
|
+
loop_duration_seconds?: number;
|
|
1531
|
+
/**
|
|
1532
|
+
* Minimum number of times ad plays per hour (DOOH frequency guarantee)
|
|
1533
|
+
*/
|
|
1534
|
+
min_plays_per_hour?: number;
|
|
1535
|
+
/**
|
|
1536
|
+
* Named venue package identifier for DOOH (e.g., 'times_square_network', 'airport_terminals')
|
|
1537
|
+
*/
|
|
1538
|
+
venue_package?: string;
|
|
1539
|
+
/**
|
|
1540
|
+
* Estimated impressions for this flat rate option (informational, commonly used with SOV or time-based DOOH)
|
|
1541
|
+
*/
|
|
1542
|
+
estimated_impressions?: number;
|
|
1543
|
+
/**
|
|
1544
|
+
* Specific daypart for time-based pricing (e.g., 'morning_commute', 'evening_prime', 'overnight')
|
|
1545
|
+
*/
|
|
1546
|
+
daypart?: string;
|
|
1547
|
+
};
|
|
1548
|
+
/**
|
|
1549
|
+
* Minimum spend requirement per package using this pricing option, in the specified currency
|
|
1550
|
+
*/
|
|
1551
|
+
min_spend_per_package?: number;
|
|
1552
|
+
}
|
|
1553
|
+
/**
|
|
1554
|
+
* Measurement capabilities included with a product
|
|
1555
|
+
*/
|
|
1556
|
+
export interface Measurement {
|
|
1557
|
+
/**
|
|
1558
|
+
* Type of measurement
|
|
1559
|
+
*/
|
|
1560
|
+
type: string;
|
|
1561
|
+
/**
|
|
1562
|
+
* Attribution methodology
|
|
1563
|
+
*/
|
|
1564
|
+
attribution: string;
|
|
1565
|
+
/**
|
|
1566
|
+
* Attribution window
|
|
1567
|
+
*/
|
|
1568
|
+
window?: string;
|
|
1569
|
+
/**
|
|
1570
|
+
* Reporting frequency and format
|
|
1571
|
+
*/
|
|
1572
|
+
reporting: string;
|
|
1573
|
+
}
|
|
1574
|
+
/**
|
|
1575
|
+
* Reporting capabilities available for a product
|
|
1576
|
+
*/
|
|
1577
|
+
export interface ReportingCapabilities {
|
|
1578
|
+
/**
|
|
1579
|
+
* Supported reporting frequency options
|
|
1580
|
+
*/
|
|
1581
|
+
available_reporting_frequencies: ReportingFrequency[];
|
|
1582
|
+
/**
|
|
1583
|
+
* Expected delay in minutes before reporting data becomes available (e.g., 240 for 4-hour delay)
|
|
1584
|
+
*/
|
|
1585
|
+
expected_delay_minutes: number;
|
|
1586
|
+
/**
|
|
1587
|
+
* Timezone for reporting periods. Use 'UTC' or IANA timezone (e.g., 'America/New_York'). Critical for daily/monthly frequency alignment.
|
|
1588
|
+
*/
|
|
1589
|
+
timezone: string;
|
|
1590
|
+
/**
|
|
1591
|
+
* Whether this product supports webhook-based reporting notifications
|
|
1592
|
+
*/
|
|
1593
|
+
supports_webhooks: boolean;
|
|
1594
|
+
/**
|
|
1595
|
+
* Metrics available in reporting. Impressions and spend are always implicitly included.
|
|
1596
|
+
*/
|
|
1597
|
+
available_metrics: AvailableMetric[];
|
|
1598
|
+
}
|
|
1599
|
+
/**
|
|
1600
|
+
* Creative requirements and restrictions for a product
|
|
1601
|
+
*/
|
|
1602
|
+
export interface CreativePolicy {
|
|
1603
|
+
co_branding: CoBrandingRequirement;
|
|
1604
|
+
landing_page: LandingPageRequirement;
|
|
1605
|
+
/**
|
|
1606
|
+
* Whether creative templates are provided
|
|
1607
|
+
*/
|
|
1608
|
+
templates_available: boolean;
|
|
1609
|
+
}
|
|
1610
|
+
/**
|
|
1611
|
+
* Standard error structure for task-specific errors and warnings
|
|
1612
|
+
*/
|
|
1613
|
+
export interface Error {
|
|
1614
|
+
/**
|
|
1615
|
+
* Error code for programmatic handling
|
|
1616
|
+
*/
|
|
1617
|
+
code: string;
|
|
1618
|
+
/**
|
|
1619
|
+
* Human-readable error message
|
|
1620
|
+
*/
|
|
1621
|
+
message: string;
|
|
1622
|
+
/**
|
|
1623
|
+
* Field path associated with the error (e.g., 'packages[0].targeting')
|
|
1624
|
+
*/
|
|
1625
|
+
field?: string;
|
|
1626
|
+
/**
|
|
1627
|
+
* Suggested fix for the error
|
|
1628
|
+
*/
|
|
1629
|
+
suggestion?: string;
|
|
1630
|
+
/**
|
|
1631
|
+
* Seconds to wait before retrying the operation
|
|
1632
|
+
*/
|
|
1633
|
+
retry_after?: number;
|
|
1634
|
+
/**
|
|
1635
|
+
* Additional task-specific error details
|
|
1636
|
+
*/
|
|
1637
|
+
details?: {};
|
|
1638
|
+
}
|
|
1639
|
+
/**
|
|
1640
|
+
* Request parameters for discovering supported creative formats
|
|
1641
|
+
*/
|
|
1642
|
+
export interface ListCreativeFormatsRequest {
|
|
1643
|
+
/**
|
|
1644
|
+
* Return only these specific format IDs (e.g., from get_products response)
|
|
1645
|
+
*/
|
|
1646
|
+
format_ids?: FormatID[];
|
|
1647
|
+
type?: FormatCategory;
|
|
1648
|
+
/**
|
|
1649
|
+
* Filter to formats that include these asset types. For third-party tags, search for 'html' or 'javascript'. E.g., ['image', 'text'] returns formats with images and text, ['javascript'] returns formats accepting JavaScript tags.
|
|
1650
|
+
*/
|
|
1651
|
+
asset_types?: AssetContentType[];
|
|
1652
|
+
/**
|
|
1653
|
+
* Maximum width in pixels (inclusive). Returns formats where ANY render has width <= this value. For multi-render formats, matches if at least one render fits.
|
|
1654
|
+
*/
|
|
1655
|
+
max_width?: number;
|
|
1656
|
+
/**
|
|
1657
|
+
* Maximum height in pixels (inclusive). Returns formats where ANY render has height <= this value. For multi-render formats, matches if at least one render fits.
|
|
1658
|
+
*/
|
|
1659
|
+
max_height?: number;
|
|
1660
|
+
/**
|
|
1661
|
+
* Minimum width in pixels (inclusive). Returns formats where ANY render has width >= this value.
|
|
1662
|
+
*/
|
|
1663
|
+
min_width?: number;
|
|
1664
|
+
/**
|
|
1665
|
+
* Minimum height in pixels (inclusive). Returns formats where ANY render has height >= this value.
|
|
1666
|
+
*/
|
|
1667
|
+
min_height?: number;
|
|
1668
|
+
/**
|
|
1669
|
+
* Filter for responsive formats that adapt to container size. When true, returns formats without fixed dimensions.
|
|
1670
|
+
*/
|
|
1671
|
+
is_responsive?: boolean;
|
|
1672
|
+
/**
|
|
1673
|
+
* Search for formats by name (case-insensitive partial match)
|
|
1674
|
+
*/
|
|
1675
|
+
name_search?: string;
|
|
1676
|
+
context?: ContextObject;
|
|
1677
|
+
ext?: ExtensionObject;
|
|
1678
|
+
}
|
|
1679
|
+
/**
|
|
1680
|
+
* Response payload for list_creative_formats task
|
|
1681
|
+
*/
|
|
1682
|
+
export interface ListCreativeFormatsResponse {
|
|
1683
|
+
/**
|
|
1684
|
+
* Full format definitions for all formats this agent supports. Each format's authoritative source is indicated by its agent_url field.
|
|
1685
|
+
*/
|
|
1686
|
+
formats: Format[];
|
|
1687
|
+
/**
|
|
1688
|
+
* Optional: Creative agents that provide additional formats. Buyers can recursively query these agents to discover more formats. No authentication required for list_creative_formats.
|
|
1689
|
+
*/
|
|
1690
|
+
creative_agents?: {
|
|
1691
|
+
/**
|
|
1692
|
+
* Base URL for the creative agent (e.g., 'https://reference.adcp.org', 'https://dco.example.com'). Call list_creative_formats on this URL to get its formats.
|
|
1693
|
+
*/
|
|
1694
|
+
agent_url: string;
|
|
1695
|
+
/**
|
|
1696
|
+
* Human-readable name for the creative agent
|
|
1697
|
+
*/
|
|
1698
|
+
agent_name?: string;
|
|
1699
|
+
/**
|
|
1700
|
+
* Capabilities this creative agent provides
|
|
1701
|
+
*/
|
|
1702
|
+
capabilities?: CreativeAgentCapability[];
|
|
1703
|
+
}[];
|
|
1704
|
+
/**
|
|
1705
|
+
* Task-specific errors and warnings (e.g., format availability issues)
|
|
1706
|
+
*/
|
|
1707
|
+
errors?: Error[];
|
|
1708
|
+
context?: ContextObject;
|
|
1709
|
+
ext?: ExtensionObject;
|
|
1710
|
+
}
|
|
1711
|
+
/**
|
|
1712
|
+
* Represents a creative format with its requirements
|
|
1713
|
+
*/
|
|
1714
|
+
export interface Format {
|
|
1715
|
+
format_id: FormatID;
|
|
1716
|
+
/**
|
|
1717
|
+
* Human-readable format name
|
|
1718
|
+
*/
|
|
1719
|
+
name: string;
|
|
1720
|
+
/**
|
|
1721
|
+
* Plain text explanation of what this format does and what assets it requires
|
|
1722
|
+
*/
|
|
1723
|
+
description?: string;
|
|
1724
|
+
/**
|
|
1725
|
+
* 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.
|
|
1726
|
+
*/
|
|
1727
|
+
preview_image?: string;
|
|
1728
|
+
/**
|
|
1729
|
+
* Optional URL to showcase page with examples and interactive demos of this format
|
|
1730
|
+
*/
|
|
1731
|
+
example_url?: string;
|
|
1732
|
+
type: FormatCategory;
|
|
1733
|
+
/**
|
|
1734
|
+
* 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.
|
|
1735
|
+
*/
|
|
1736
|
+
accepts_parameters?: FormatIDParameter[];
|
|
1737
|
+
/**
|
|
1738
|
+
* 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.
|
|
1739
|
+
*/
|
|
1740
|
+
renders?: ({
|
|
1741
|
+
[k: string]: unknown | undefined;
|
|
1742
|
+
} | {
|
|
1743
|
+
parameters_from_format_id: true;
|
|
1744
|
+
})[];
|
|
1745
|
+
/**
|
|
1746
|
+
* 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).
|
|
1747
|
+
*/
|
|
1748
|
+
assets_required?: ({
|
|
1749
|
+
/**
|
|
1750
|
+
* Discriminator indicating this is an individual asset requirement
|
|
1751
|
+
*/
|
|
1752
|
+
item_type: 'individual';
|
|
1753
|
+
/**
|
|
1754
|
+
* Unique identifier for this asset. Creative manifests MUST use this exact value as the key in the assets object.
|
|
1755
|
+
*/
|
|
1756
|
+
asset_id: string;
|
|
1757
|
+
asset_type: AssetContentType;
|
|
1758
|
+
/**
|
|
1759
|
+
* Optional descriptive label for this asset's purpose (e.g., 'hero_image', 'logo'). Not used for referencing assets in manifests—use asset_id instead. This field is for human-readable documentation and UI display only.
|
|
1760
|
+
*/
|
|
1761
|
+
asset_role?: string;
|
|
1762
|
+
/**
|
|
1763
|
+
* Whether this asset is required
|
|
1764
|
+
*/
|
|
1765
|
+
required?: boolean;
|
|
1766
|
+
/**
|
|
1767
|
+
* 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).
|
|
1768
|
+
*/
|
|
1769
|
+
requirements?: {};
|
|
1770
|
+
} | {
|
|
1771
|
+
/**
|
|
1772
|
+
* Discriminator indicating this is a repeatable asset group
|
|
1773
|
+
*/
|
|
1774
|
+
item_type: 'repeatable_group';
|
|
1775
|
+
/**
|
|
1776
|
+
* Identifier for this asset group (e.g., 'product', 'slide', 'card')
|
|
1777
|
+
*/
|
|
1778
|
+
asset_group_id: string;
|
|
1779
|
+
/**
|
|
1780
|
+
* Minimum number of repetitions required
|
|
1781
|
+
*/
|
|
1782
|
+
min_count: number;
|
|
1783
|
+
/**
|
|
1784
|
+
* Maximum number of repetitions allowed
|
|
1785
|
+
*/
|
|
1786
|
+
max_count: number;
|
|
1787
|
+
/**
|
|
1788
|
+
* Assets within each repetition of this group
|
|
1789
|
+
*/
|
|
1790
|
+
assets: {
|
|
1791
|
+
/**
|
|
1792
|
+
* Identifier for this asset within the group
|
|
1793
|
+
*/
|
|
1794
|
+
asset_id: string;
|
|
1795
|
+
asset_type: AssetContentType;
|
|
1796
|
+
/**
|
|
1797
|
+
* Optional descriptive label for this asset's purpose (e.g., 'hero_image', 'logo'). Not used for referencing assets in manifests—use asset_id instead. This field is for human-readable documentation and UI display only.
|
|
1798
|
+
*/
|
|
1799
|
+
asset_role?: string;
|
|
1800
|
+
/**
|
|
1801
|
+
* Whether this asset is required in each repetition
|
|
1802
|
+
*/
|
|
1803
|
+
required?: boolean;
|
|
1804
|
+
/**
|
|
1805
|
+
* 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).
|
|
1806
|
+
*/
|
|
1807
|
+
requirements?: {};
|
|
1808
|
+
}[];
|
|
1809
|
+
})[];
|
|
1810
|
+
/**
|
|
1811
|
+
* Delivery method specifications (e.g., hosted, VAST, third-party tags)
|
|
1812
|
+
*/
|
|
1813
|
+
delivery?: {};
|
|
1814
|
+
/**
|
|
1815
|
+
* List of universal macros supported by this format (e.g., MEDIA_BUY_ID, CACHEBUSTER, DEVICE_ID). Used for validation and developer tooling.
|
|
1816
|
+
*/
|
|
1817
|
+
supported_macros?: string[];
|
|
1818
|
+
/**
|
|
1819
|
+
* 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).
|
|
1820
|
+
*/
|
|
1821
|
+
output_format_ids?: FormatID[];
|
|
1822
|
+
/**
|
|
1823
|
+
* Optional standard visual card (300x400px) for displaying this format in user interfaces. Can be rendered via preview_creative or pre-generated.
|
|
1824
|
+
*/
|
|
1825
|
+
format_card?: {
|
|
1826
|
+
format_id: FormatID;
|
|
1827
|
+
/**
|
|
1828
|
+
* Asset manifest for rendering the card, structure defined by the format
|
|
1829
|
+
*/
|
|
1830
|
+
manifest: {};
|
|
1831
|
+
};
|
|
1832
|
+
/**
|
|
1833
|
+
* Optional detailed card with carousel and full specifications. Provides rich format documentation similar to ad spec pages.
|
|
1834
|
+
*/
|
|
1835
|
+
format_card_detailed?: {
|
|
1836
|
+
format_id: FormatID;
|
|
1837
|
+
/**
|
|
1838
|
+
* Asset manifest for rendering the detailed card, structure defined by the format
|
|
1839
|
+
*/
|
|
1840
|
+
manifest: {};
|
|
1841
|
+
};
|
|
1842
|
+
}
|
|
1843
|
+
/**
|
|
1844
|
+
* Request parameters for creating a media buy
|
|
1845
|
+
*/
|
|
1846
|
+
export interface CreateMediaBuyRequest {
|
|
1847
|
+
/**
|
|
1848
|
+
* Buyer's reference identifier for this media buy
|
|
1849
|
+
*/
|
|
1850
|
+
buyer_ref: string;
|
|
1851
|
+
/**
|
|
1852
|
+
* Array of package configurations
|
|
1853
|
+
*/
|
|
1854
|
+
packages: PackageRequest[];
|
|
1855
|
+
brand_manifest: BrandManifestReference;
|
|
1856
|
+
/**
|
|
1857
|
+
* Purchase order number for tracking
|
|
1858
|
+
*/
|
|
1859
|
+
po_number?: string;
|
|
1860
|
+
start_time: StartTiming;
|
|
1861
|
+
/**
|
|
1862
|
+
* Campaign end date/time in ISO 8601 format
|
|
1863
|
+
*/
|
|
1864
|
+
end_time: string;
|
|
1865
|
+
/**
|
|
1866
|
+
* Optional webhook configuration for automated reporting delivery. Combines push_notification_config structure with reporting-specific fields.
|
|
1867
|
+
*/
|
|
1868
|
+
reporting_webhook?: {
|
|
1869
|
+
/**
|
|
1870
|
+
* Webhook endpoint URL for reporting notifications
|
|
1871
|
+
*/
|
|
1872
|
+
url: string;
|
|
1873
|
+
/**
|
|
1874
|
+
* Optional client-provided token for webhook validation. Echoed back in webhook payload to validate request authenticity.
|
|
1875
|
+
*/
|
|
1876
|
+
token?: string;
|
|
1877
|
+
/**
|
|
1878
|
+
* Authentication configuration for webhook delivery (A2A-compatible)
|
|
1879
|
+
*/
|
|
1880
|
+
authentication: {
|
|
1881
|
+
/**
|
|
1882
|
+
* Array of authentication schemes. Supported: ['Bearer'] for simple token auth, ['HMAC-SHA256'] for signature verification (recommended for production)
|
|
1883
|
+
*/
|
|
1884
|
+
schemes: AuthenticationScheme[];
|
|
1885
|
+
/**
|
|
1886
|
+
* Credentials for authentication. For Bearer: token sent in Authorization header. For HMAC-SHA256: shared secret used to generate signature. Minimum 32 characters. Exchanged out-of-band during onboarding.
|
|
1887
|
+
*/
|
|
1888
|
+
credentials: string;
|
|
1889
|
+
};
|
|
1890
|
+
/**
|
|
1891
|
+
* Frequency for automated reporting delivery. Must be supported by all products in the media buy.
|
|
1892
|
+
*/
|
|
1893
|
+
reporting_frequency: 'hourly' | 'daily' | 'monthly';
|
|
1894
|
+
/**
|
|
1895
|
+
* Optional list of metrics to include in webhook notifications. If omitted, all available metrics are included. Must be subset of product's available_metrics.
|
|
1896
|
+
*/
|
|
1897
|
+
requested_metrics?: ('impressions' | 'spend' | 'clicks' | 'ctr' | 'video_completions' | 'completion_rate' | 'conversions' | 'viewability' | 'engagement_rate')[];
|
|
1898
|
+
};
|
|
1899
|
+
context?: ContextObject;
|
|
1900
|
+
ext?: ExtensionObject;
|
|
1901
|
+
}
|
|
1902
|
+
/**
|
|
1903
|
+
* Package configuration for media buy creation
|
|
1904
|
+
*/
|
|
1905
|
+
export interface PackageRequest {
|
|
1906
|
+
/**
|
|
1907
|
+
* Buyer's reference identifier for this package
|
|
1908
|
+
*/
|
|
1909
|
+
buyer_ref: string;
|
|
1910
|
+
/**
|
|
1911
|
+
* Product ID for this package
|
|
1912
|
+
*/
|
|
1913
|
+
product_id: string;
|
|
1914
|
+
/**
|
|
1915
|
+
* Array of format IDs that will be used for this package - must be supported by the product. If omitted, defaults to all formats supported by the product.
|
|
1916
|
+
*/
|
|
1917
|
+
format_ids?: FormatID[];
|
|
1918
|
+
/**
|
|
1919
|
+
* Budget allocation for this package in the media buy's currency
|
|
1920
|
+
*/
|
|
1921
|
+
budget: number;
|
|
1922
|
+
pacing?: Pacing;
|
|
1923
|
+
/**
|
|
1924
|
+
* ID of the selected pricing option from the product's pricing_options array
|
|
1925
|
+
*/
|
|
1926
|
+
pricing_option_id: string;
|
|
1927
|
+
/**
|
|
1928
|
+
* Bid price for auction-based CPM pricing (required if using cpm-auction-option)
|
|
1929
|
+
*/
|
|
1930
|
+
bid_price?: number;
|
|
1931
|
+
/**
|
|
1932
|
+
* Impression goal for this package
|
|
1933
|
+
*/
|
|
1934
|
+
impressions?: number;
|
|
1935
|
+
/**
|
|
1936
|
+
* Whether this package should be created in a paused state. Paused packages do not deliver impressions. Defaults to false.
|
|
1937
|
+
*/
|
|
1938
|
+
paused?: boolean;
|
|
1939
|
+
targeting_overlay?: TargetingOverlay;
|
|
1940
|
+
/**
|
|
1941
|
+
* Creative IDs to assign to this package at creation time (references existing library creatives)
|
|
1942
|
+
*/
|
|
1943
|
+
creative_ids?: string[];
|
|
1944
|
+
/**
|
|
1945
|
+
* Full creative objects to upload and assign to this package at creation time (alternative to creative_ids - creatives will be added to library). Supports both static and generative creatives.
|
|
1946
|
+
*/
|
|
1947
|
+
creatives?: CreativeAsset[];
|
|
1948
|
+
ext?: ExtensionObject;
|
|
1949
|
+
}
|
|
1950
|
+
/**
|
|
1951
|
+
* Optional geographic refinements for media buys. Most targeting should be expressed in the brief and handled by the publisher. These fields are primarily for geographic restrictions (RCT testing, regulatory compliance).
|
|
1952
|
+
*/
|
|
1953
|
+
export interface TargetingOverlay {
|
|
1954
|
+
/**
|
|
1955
|
+
* Restrict delivery to specific countries (ISO codes). Use for regulatory compliance or RCT testing.
|
|
1956
|
+
*/
|
|
1957
|
+
geo_country_any_of?: string[];
|
|
1958
|
+
/**
|
|
1959
|
+
* Restrict delivery to specific regions/states. Use for regulatory compliance or RCT testing.
|
|
1960
|
+
*/
|
|
1961
|
+
geo_region_any_of?: string[];
|
|
1962
|
+
/**
|
|
1963
|
+
* Restrict delivery to specific metro areas (DMA codes). Use for regulatory compliance or RCT testing.
|
|
1964
|
+
*/
|
|
1965
|
+
geo_metro_any_of?: string[];
|
|
1966
|
+
/**
|
|
1967
|
+
* Restrict delivery to specific postal/ZIP codes. Use for regulatory compliance or RCT testing.
|
|
1968
|
+
*/
|
|
1969
|
+
geo_postal_code_any_of?: string[];
|
|
1970
|
+
/**
|
|
1971
|
+
* AXE segment ID to include for targeting
|
|
1972
|
+
*/
|
|
1973
|
+
axe_include_segment?: string;
|
|
1974
|
+
/**
|
|
1975
|
+
* AXE segment ID to exclude from targeting
|
|
1976
|
+
*/
|
|
1977
|
+
axe_exclude_segment?: string;
|
|
1978
|
+
frequency_cap?: FrequencyCap;
|
|
1979
|
+
}
|
|
1980
|
+
/**
|
|
1981
|
+
* Frequency capping settings for package-level application
|
|
1982
|
+
*/
|
|
1983
|
+
export interface FrequencyCap {
|
|
1984
|
+
/**
|
|
1985
|
+
* Minutes to suppress after impression
|
|
1986
|
+
*/
|
|
1987
|
+
suppress_minutes: number;
|
|
1988
|
+
}
|
|
1989
|
+
/**
|
|
1990
|
+
* Creative asset for upload to library - supports static assets, generative formats, and third-party snippets
|
|
1991
|
+
*/
|
|
1992
|
+
export interface CreativeAsset {
|
|
1993
|
+
/**
|
|
1994
|
+
* Unique identifier for the creative
|
|
1995
|
+
*/
|
|
1996
|
+
creative_id: string;
|
|
1997
|
+
/**
|
|
1998
|
+
* Human-readable creative name
|
|
1999
|
+
*/
|
|
2000
|
+
name: string;
|
|
2001
|
+
format_id: FormatID;
|
|
2002
|
+
/**
|
|
2003
|
+
* Assets required by the format, keyed by asset_role
|
|
2004
|
+
*/
|
|
2005
|
+
assets: {
|
|
2006
|
+
/**
|
|
2007
|
+
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
2008
|
+
* via the `patternProperty` "^[a-zA-Z0-9_-]+$".
|
|
2009
|
+
*/
|
|
2010
|
+
[k: string]: ImageAsset | VideoAsset | AudioAsset | TextAsset | HTMLAsset | CSSAsset | JavaScriptAsset | VASTAsset | DAASTAsset | PromotedOfferings | URLAsset;
|
|
2011
|
+
};
|
|
2012
|
+
/**
|
|
2013
|
+
* Preview contexts for generative formats - defines what scenarios to generate previews for
|
|
2014
|
+
*/
|
|
2015
|
+
inputs?: {
|
|
2016
|
+
/**
|
|
2017
|
+
* Human-readable name for this preview variant
|
|
2018
|
+
*/
|
|
2019
|
+
name: string;
|
|
2020
|
+
/**
|
|
2021
|
+
* Macro values to apply for this preview
|
|
2022
|
+
*/
|
|
2023
|
+
macros?: {
|
|
2024
|
+
[k: string]: string | undefined;
|
|
2025
|
+
};
|
|
2026
|
+
/**
|
|
2027
|
+
* Natural language description of the context for AI-generated content
|
|
2028
|
+
*/
|
|
2029
|
+
context_description?: string;
|
|
2030
|
+
}[];
|
|
2031
|
+
/**
|
|
2032
|
+
* User-defined tags for organization and searchability
|
|
2033
|
+
*/
|
|
2034
|
+
tags?: string[];
|
|
2035
|
+
/**
|
|
2036
|
+
* For generative creatives: set to true to approve and finalize, false to request regeneration with updated assets/message. Omit for non-generative creatives.
|
|
2037
|
+
*/
|
|
2038
|
+
approved?: boolean;
|
|
2039
|
+
/**
|
|
2040
|
+
* Optional delivery weight for creative rotation when uploading via create_media_buy or update_media_buy (0-100). If omitted, platform determines rotation. Only used during upload to media buy - not stored in creative library.
|
|
2041
|
+
*/
|
|
2042
|
+
weight?: number;
|
|
2043
|
+
/**
|
|
2044
|
+
* Optional array of placement IDs where this creative should run when uploading via create_media_buy or update_media_buy. References placement_id values from the product's placements array. If omitted, creative runs on all placements. Only used during upload to media buy - not stored in creative library.
|
|
2045
|
+
*/
|
|
2046
|
+
placement_ids?: string[];
|
|
2047
|
+
}
|
|
2048
|
+
/**
|
|
2049
|
+
* Image asset with URL and dimensions
|
|
2050
|
+
*/
|
|
2051
|
+
export interface ImageAsset {
|
|
2052
|
+
/**
|
|
2053
|
+
* URL to the image asset
|
|
2054
|
+
*/
|
|
2055
|
+
url: string;
|
|
2056
|
+
/**
|
|
2057
|
+
* Width in pixels
|
|
2058
|
+
*/
|
|
2059
|
+
width: number;
|
|
2060
|
+
/**
|
|
2061
|
+
* Height in pixels
|
|
2062
|
+
*/
|
|
2063
|
+
height: number;
|
|
2064
|
+
/**
|
|
2065
|
+
* Image file format (jpg, png, gif, webp, etc.)
|
|
2066
|
+
*/
|
|
2067
|
+
format?: string;
|
|
2068
|
+
/**
|
|
2069
|
+
* Alternative text for accessibility
|
|
2070
|
+
*/
|
|
2071
|
+
alt_text?: string;
|
|
2072
|
+
}
|
|
2073
|
+
/**
|
|
2074
|
+
* Video asset with URL and specifications
|
|
2075
|
+
*/
|
|
2076
|
+
export interface VideoAsset {
|
|
2077
|
+
/**
|
|
2078
|
+
* URL to the video asset
|
|
2079
|
+
*/
|
|
2080
|
+
url: string;
|
|
2081
|
+
/**
|
|
2082
|
+
* Width in pixels
|
|
2083
|
+
*/
|
|
2084
|
+
width: number;
|
|
2085
|
+
/**
|
|
2086
|
+
* Height in pixels
|
|
2087
|
+
*/
|
|
2088
|
+
height: number;
|
|
2089
|
+
/**
|
|
2090
|
+
* Video duration in milliseconds
|
|
2091
|
+
*/
|
|
2092
|
+
duration_ms?: number;
|
|
2093
|
+
/**
|
|
2094
|
+
* Video file format (mp4, webm, mov, etc.)
|
|
2095
|
+
*/
|
|
2096
|
+
format?: string;
|
|
2097
|
+
/**
|
|
2098
|
+
* Video bitrate in kilobits per second
|
|
2099
|
+
*/
|
|
2100
|
+
bitrate_kbps?: number;
|
|
2101
|
+
}
|
|
2102
|
+
/**
|
|
2103
|
+
* Audio asset with URL and specifications
|
|
2104
|
+
*/
|
|
2105
|
+
export interface AudioAsset {
|
|
2106
|
+
/**
|
|
2107
|
+
* URL to the audio asset
|
|
2108
|
+
*/
|
|
2109
|
+
url: string;
|
|
2110
|
+
/**
|
|
2111
|
+
* Audio duration in milliseconds
|
|
2112
|
+
*/
|
|
2113
|
+
duration_ms?: number;
|
|
2114
|
+
/**
|
|
2115
|
+
* Audio file format (mp3, wav, aac, etc.)
|
|
2116
|
+
*/
|
|
2117
|
+
format?: string;
|
|
2118
|
+
/**
|
|
2119
|
+
* Audio bitrate in kilobits per second
|
|
2120
|
+
*/
|
|
2121
|
+
bitrate_kbps?: number;
|
|
2122
|
+
}
|
|
2123
|
+
/**
|
|
2124
|
+
* Text content asset
|
|
2125
|
+
*/
|
|
2126
|
+
export interface TextAsset {
|
|
2127
|
+
/**
|
|
2128
|
+
* Text content
|
|
2129
|
+
*/
|
|
2130
|
+
content: string;
|
|
2131
|
+
/**
|
|
2132
|
+
* Language code (e.g., 'en', 'es', 'fr')
|
|
2133
|
+
*/
|
|
2134
|
+
language?: string;
|
|
2135
|
+
}
|
|
2136
|
+
/**
|
|
2137
|
+
* HTML content asset
|
|
2138
|
+
*/
|
|
2139
|
+
export interface HTMLAsset {
|
|
2140
|
+
/**
|
|
2141
|
+
* HTML content
|
|
2142
|
+
*/
|
|
2143
|
+
content: string;
|
|
2144
|
+
/**
|
|
2145
|
+
* HTML version (e.g., 'HTML5')
|
|
2146
|
+
*/
|
|
2147
|
+
version?: string;
|
|
2148
|
+
}
|
|
2149
|
+
/**
|
|
2150
|
+
* CSS stylesheet asset
|
|
2151
|
+
*/
|
|
2152
|
+
export interface CSSAsset {
|
|
2153
|
+
/**
|
|
2154
|
+
* CSS content
|
|
2155
|
+
*/
|
|
2156
|
+
content: string;
|
|
2157
|
+
/**
|
|
2158
|
+
* CSS media query context (e.g., 'screen', 'print')
|
|
2159
|
+
*/
|
|
2160
|
+
media?: string;
|
|
2161
|
+
}
|
|
2162
|
+
/**
|
|
2163
|
+
* JavaScript code asset
|
|
2164
|
+
*/
|
|
2165
|
+
export interface JavaScriptAsset {
|
|
2166
|
+
/**
|
|
2167
|
+
* JavaScript content
|
|
2168
|
+
*/
|
|
2169
|
+
content: string;
|
|
2170
|
+
module_type?: JavaScriptModuleType;
|
|
2171
|
+
}
|
|
2172
|
+
/**
|
|
2173
|
+
* Complete offering specification combining brand manifest, product selectors, and asset filters. Provides all context needed for creative generation about what is being promoted.
|
|
2174
|
+
*/
|
|
2175
|
+
export interface PromotedOfferings {
|
|
2176
|
+
brand_manifest: BrandManifestReference;
|
|
2177
|
+
product_selectors?: PromotedProducts;
|
|
2178
|
+
/**
|
|
2179
|
+
* Inline offerings for campaigns without a product catalog. Each offering has a name, description, and associated assets.
|
|
2180
|
+
*/
|
|
2181
|
+
offerings?: {
|
|
2182
|
+
/**
|
|
2183
|
+
* Offering name (e.g., 'Winter Sale', 'New Product Launch')
|
|
2184
|
+
*/
|
|
2185
|
+
name: string;
|
|
2186
|
+
/**
|
|
2187
|
+
* Description of what's being offered
|
|
2188
|
+
*/
|
|
2189
|
+
description?: string;
|
|
2190
|
+
/**
|
|
2191
|
+
* Assets specific to this offering
|
|
2192
|
+
*/
|
|
2193
|
+
assets?: {}[];
|
|
2194
|
+
}[];
|
|
2195
|
+
/**
|
|
2196
|
+
* Selectors to choose specific assets from the brand manifest
|
|
2197
|
+
*/
|
|
2198
|
+
asset_selectors?: {
|
|
2199
|
+
/**
|
|
2200
|
+
* Select assets with specific tags (e.g., ['holiday', 'premium'])
|
|
2201
|
+
*/
|
|
2202
|
+
tags?: string[];
|
|
2203
|
+
/**
|
|
2204
|
+
* Filter by asset type (e.g., ['image', 'video'])
|
|
2205
|
+
*/
|
|
2206
|
+
asset_types?: ('image' | 'video' | 'audio' | 'vast' | 'daast' | 'text' | 'url' | 'html' | 'css' | 'javascript' | 'webhook')[];
|
|
2207
|
+
/**
|
|
2208
|
+
* Exclude assets with these tags
|
|
2209
|
+
*/
|
|
2210
|
+
exclude_tags?: string[];
|
|
2211
|
+
};
|
|
2212
|
+
}
|
|
2213
|
+
/**
|
|
2214
|
+
* Selectors to choose which products/offerings from the brand manifest product catalog to promote
|
|
2215
|
+
*/
|
|
2216
|
+
export interface PromotedProducts {
|
|
2217
|
+
/**
|
|
2218
|
+
* Direct product SKU references from the brand manifest product catalog
|
|
2219
|
+
*/
|
|
2220
|
+
manifest_skus?: string[];
|
|
2221
|
+
/**
|
|
2222
|
+
* Select products by tags from the brand manifest product catalog (e.g., 'organic', 'sauces', 'holiday')
|
|
2223
|
+
*/
|
|
2224
|
+
manifest_tags?: string[];
|
|
2225
|
+
/**
|
|
2226
|
+
* Select products from a specific category in the brand manifest product catalog (e.g., 'beverages/soft-drinks', 'food/sauces')
|
|
2227
|
+
*/
|
|
2228
|
+
manifest_category?: string;
|
|
2229
|
+
/**
|
|
2230
|
+
* Natural language query to select products from the brand manifest (e.g., 'all Kraft Heinz pasta sauces', 'organic products under $20')
|
|
2231
|
+
*/
|
|
2232
|
+
manifest_query?: string;
|
|
2233
|
+
}
|
|
2234
|
+
/**
|
|
2235
|
+
* URL reference asset
|
|
2236
|
+
*/
|
|
2237
|
+
export interface URLAsset {
|
|
2238
|
+
/**
|
|
2239
|
+
* URL reference
|
|
2240
|
+
*/
|
|
2241
|
+
url: string;
|
|
2242
|
+
url_type?: URLAssetType;
|
|
2243
|
+
/**
|
|
2244
|
+
* Description of what this URL points to
|
|
2245
|
+
*/
|
|
2246
|
+
description?: string;
|
|
2247
|
+
}
|
|
2248
|
+
/**
|
|
2249
|
+
* Success response - media buy created successfully
|
|
2250
|
+
*/
|
|
2251
|
+
export interface CreateMediaBuySuccess {
|
|
2252
|
+
/**
|
|
2253
|
+
* Publisher's unique identifier for the created media buy
|
|
2254
|
+
*/
|
|
2255
|
+
media_buy_id: string;
|
|
2256
|
+
/**
|
|
2257
|
+
* Buyer's reference identifier for this media buy
|
|
2258
|
+
*/
|
|
2259
|
+
buyer_ref: string;
|
|
2260
|
+
/**
|
|
2261
|
+
* ISO 8601 timestamp for creative upload deadline
|
|
2262
|
+
*/
|
|
2263
|
+
creative_deadline?: string;
|
|
2264
|
+
/**
|
|
2265
|
+
* Array of created packages with complete state information
|
|
2266
|
+
*/
|
|
2267
|
+
packages: Package[];
|
|
2268
|
+
context?: ContextObject;
|
|
2269
|
+
ext?: ExtensionObject;
|
|
2270
|
+
}
|
|
2271
|
+
/**
|
|
2272
|
+
* A specific product within a media buy (line item)
|
|
2273
|
+
*/
|
|
2274
|
+
export interface Package {
|
|
2275
|
+
/**
|
|
2276
|
+
* Publisher's unique identifier for the package
|
|
2277
|
+
*/
|
|
2278
|
+
package_id: string;
|
|
2279
|
+
/**
|
|
2280
|
+
* Buyer's reference identifier for this package
|
|
2281
|
+
*/
|
|
2282
|
+
buyer_ref?: string;
|
|
2283
|
+
/**
|
|
2284
|
+
* ID of the product this package is based on
|
|
2285
|
+
*/
|
|
2286
|
+
product_id?: string;
|
|
2287
|
+
/**
|
|
2288
|
+
* Budget allocation for this package in the currency specified by the pricing option
|
|
2289
|
+
*/
|
|
2290
|
+
budget?: number;
|
|
2291
|
+
pacing?: Pacing;
|
|
2292
|
+
/**
|
|
2293
|
+
* ID of the selected pricing option from the product's pricing_options array
|
|
2294
|
+
*/
|
|
2295
|
+
pricing_option_id?: string;
|
|
2296
|
+
/**
|
|
2297
|
+
* Bid price for auction-based CPM pricing (present if using cpm-auction-option)
|
|
2298
|
+
*/
|
|
2299
|
+
bid_price?: number;
|
|
2300
|
+
/**
|
|
2301
|
+
* Impression goal for this package
|
|
2302
|
+
*/
|
|
2303
|
+
impressions?: number;
|
|
2304
|
+
targeting_overlay?: TargetingOverlay;
|
|
2305
|
+
/**
|
|
2306
|
+
* Creative assets assigned to this package
|
|
2307
|
+
*/
|
|
2308
|
+
creative_assignments?: CreativeAssignment[];
|
|
2309
|
+
/**
|
|
2310
|
+
* Format IDs that creative assets will be provided for this package
|
|
2311
|
+
*/
|
|
2312
|
+
format_ids_to_provide?: FormatID[];
|
|
2313
|
+
/**
|
|
2314
|
+
* Whether this package is paused by the buyer. Paused packages do not deliver impressions. Defaults to false.
|
|
2315
|
+
*/
|
|
2316
|
+
paused?: boolean;
|
|
2317
|
+
ext?: ExtensionObject;
|
|
2318
|
+
}
|
|
2319
|
+
/**
|
|
2320
|
+
* Assignment of a creative asset to a package with optional placement targeting. Used in create_media_buy and update_media_buy requests. Note: sync_creatives does not support placement_ids - use create/update_media_buy for placement-level targeting.
|
|
2321
|
+
*/
|
|
2322
|
+
export interface CreativeAssignment {
|
|
2323
|
+
/**
|
|
2324
|
+
* Unique identifier for the creative
|
|
2325
|
+
*/
|
|
2326
|
+
creative_id: string;
|
|
2327
|
+
/**
|
|
2328
|
+
* Delivery weight for this creative
|
|
2329
|
+
*/
|
|
2330
|
+
weight?: number;
|
|
2331
|
+
/**
|
|
2332
|
+
* Optional array of placement IDs where this creative should run. When omitted, the creative runs on all placements in the package. References placement_id values from the product's placements array.
|
|
2333
|
+
*/
|
|
2334
|
+
placement_ids?: string[];
|
|
2335
|
+
}
|
|
2336
|
+
/**
|
|
2337
|
+
* Error response - operation failed, no media buy created
|
|
2338
|
+
*/
|
|
2339
|
+
export interface CreateMediaBuyError {
|
|
2340
|
+
/**
|
|
2341
|
+
* Array of errors explaining why the operation failed
|
|
2342
|
+
*/
|
|
2343
|
+
errors: Error[];
|
|
2344
|
+
context?: ContextObject;
|
|
2345
|
+
ext?: ExtensionObject;
|
|
2346
|
+
}
|
|
2347
|
+
/**
|
|
2348
|
+
* Request parameters for syncing creative assets with upsert semantics - supports bulk operations, scoped updates, and assignment management
|
|
2349
|
+
*/
|
|
2350
|
+
export interface SyncCreativesRequest {
|
|
2351
|
+
/**
|
|
2352
|
+
* Array of creative assets to sync (create or update)
|
|
2353
|
+
*/
|
|
2354
|
+
creatives: CreativeAsset[];
|
|
2355
|
+
/**
|
|
2356
|
+
* Optional filter to limit sync scope to specific creative IDs. When provided, only these creatives will be created/updated. Other creatives in the library are unaffected. Useful for partial updates and error recovery.
|
|
2357
|
+
*/
|
|
2358
|
+
creative_ids?: string[];
|
|
2359
|
+
/**
|
|
2360
|
+
* Optional bulk assignment of creatives to packages
|
|
2361
|
+
*/
|
|
2362
|
+
assignments?: {
|
|
2363
|
+
/**
|
|
2364
|
+
* Array of package IDs to assign this creative to
|
|
2365
|
+
*
|
|
2366
|
+
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
2367
|
+
* via the `patternProperty` "^[a-zA-Z0-9_-]+$".
|
|
2368
|
+
*/
|
|
2369
|
+
[k: string]: string[];
|
|
2370
|
+
};
|
|
2371
|
+
/**
|
|
2372
|
+
* When true, creatives not included in this sync will be archived. Use with caution for full library replacement.
|
|
2373
|
+
*/
|
|
2374
|
+
delete_missing?: boolean;
|
|
2375
|
+
/**
|
|
2376
|
+
* When true, preview changes without applying them. Returns what would be created/updated/deleted.
|
|
2377
|
+
*/
|
|
2378
|
+
dry_run?: boolean;
|
|
2379
|
+
validation_mode?: ValidationMode;
|
|
2380
|
+
push_notification_config?: PushNotificationConfig;
|
|
2381
|
+
context?: ContextObject;
|
|
2382
|
+
ext?: ExtensionObject;
|
|
2383
|
+
}
|
|
2384
|
+
/**
|
|
2385
|
+
* Optional webhook configuration for async sync notifications. Publisher will send webhook when sync completes if operation takes longer than immediate response time (typically for large bulk operations or manual approval/HITL).
|
|
2386
|
+
*/
|
|
2387
|
+
export interface PushNotificationConfig {
|
|
2388
|
+
/**
|
|
2389
|
+
* Webhook endpoint URL for task status notifications
|
|
2390
|
+
*/
|
|
2391
|
+
url: string;
|
|
2392
|
+
/**
|
|
2393
|
+
* Optional client-provided token for webhook validation. Echoed back in webhook payload to validate request authenticity.
|
|
2394
|
+
*/
|
|
2395
|
+
token?: string;
|
|
2396
|
+
/**
|
|
2397
|
+
* Authentication configuration for webhook delivery (A2A-compatible)
|
|
2398
|
+
*/
|
|
2399
|
+
authentication: {
|
|
2400
|
+
/**
|
|
2401
|
+
* Array of authentication schemes. Supported: ['Bearer'] for simple token auth, ['HMAC-SHA256'] for signature verification (recommended for production)
|
|
2402
|
+
*/
|
|
2403
|
+
schemes: AuthenticationScheme[];
|
|
2404
|
+
/**
|
|
2405
|
+
* Credentials for authentication. For Bearer: token sent in Authorization header. For HMAC-SHA256: shared secret used to generate signature. Minimum 32 characters. Exchanged out-of-band during onboarding.
|
|
2406
|
+
*/
|
|
2407
|
+
credentials: string;
|
|
2408
|
+
};
|
|
2409
|
+
}
|
|
2410
|
+
/**
|
|
2411
|
+
* Success response - sync operation processed creatives (may include per-item failures)
|
|
2412
|
+
*/
|
|
2413
|
+
export interface SyncCreativesSuccess {
|
|
2414
|
+
/**
|
|
2415
|
+
* Whether this was a dry run (no actual changes made)
|
|
2416
|
+
*/
|
|
2417
|
+
dry_run?: boolean;
|
|
2418
|
+
/**
|
|
2419
|
+
* Results for each creative processed. Items with action='failed' indicate per-item validation/processing failures, not operation-level failures.
|
|
2420
|
+
*/
|
|
2421
|
+
creatives: {
|
|
2422
|
+
/**
|
|
2423
|
+
* Creative ID from the request
|
|
2424
|
+
*/
|
|
2425
|
+
creative_id: string;
|
|
2426
|
+
action: CreativeAction;
|
|
2427
|
+
/**
|
|
2428
|
+
* Platform-specific ID assigned to the creative
|
|
2429
|
+
*/
|
|
2430
|
+
platform_id?: string;
|
|
2431
|
+
/**
|
|
2432
|
+
* Field names that were modified (only present when action='updated')
|
|
2433
|
+
*/
|
|
2434
|
+
changes?: string[];
|
|
2435
|
+
/**
|
|
2436
|
+
* Validation or processing errors (only present when action='failed')
|
|
2437
|
+
*/
|
|
2438
|
+
errors?: string[];
|
|
2439
|
+
/**
|
|
2440
|
+
* Non-fatal warnings about this creative
|
|
2441
|
+
*/
|
|
2442
|
+
warnings?: string[];
|
|
2443
|
+
/**
|
|
2444
|
+
* Preview URL for generative creatives (only present for generative formats)
|
|
2445
|
+
*/
|
|
2446
|
+
preview_url?: string;
|
|
2447
|
+
/**
|
|
2448
|
+
* ISO 8601 timestamp when preview link expires (only present when preview_url exists)
|
|
2449
|
+
*/
|
|
2450
|
+
expires_at?: string;
|
|
2451
|
+
/**
|
|
2452
|
+
* Package IDs this creative was successfully assigned to (only present when assignments were requested)
|
|
2453
|
+
*/
|
|
2454
|
+
assigned_to?: string[];
|
|
2455
|
+
/**
|
|
2456
|
+
* Assignment errors by package ID (only present when assignment failures occurred)
|
|
2457
|
+
*/
|
|
2458
|
+
assignment_errors?: {
|
|
2459
|
+
/**
|
|
2460
|
+
* Error message for this package assignment
|
|
2461
|
+
*
|
|
2462
|
+
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
2463
|
+
* via the `patternProperty` "^[a-zA-Z0-9_-]+$".
|
|
2464
|
+
*/
|
|
2465
|
+
[k: string]: string;
|
|
2466
|
+
};
|
|
2467
|
+
}[];
|
|
2468
|
+
context?: ContextObject;
|
|
2469
|
+
ext?: ExtensionObject;
|
|
2470
|
+
}
|
|
2471
|
+
/**
|
|
2472
|
+
* Error response - operation failed completely, no creatives were processed
|
|
2473
|
+
*/
|
|
2474
|
+
export interface SyncCreativesError {
|
|
2475
|
+
/**
|
|
2476
|
+
* Operation-level errors that prevented processing any creatives (e.g., authentication failure, service unavailable, invalid request format)
|
|
2477
|
+
*/
|
|
2478
|
+
errors: Error[];
|
|
2479
|
+
context?: ContextObject;
|
|
2480
|
+
ext?: ExtensionObject;
|
|
2481
|
+
}
|
|
2482
|
+
/**
|
|
2483
|
+
* Request parameters for querying creative assets from the centralized library with filtering, sorting, and pagination
|
|
2484
|
+
*/
|
|
2485
|
+
export interface ListCreativesRequest {
|
|
2486
|
+
filters?: CreativeFilters;
|
|
2487
|
+
/**
|
|
2488
|
+
* Sorting parameters
|
|
2489
|
+
*/
|
|
2490
|
+
sort?: {
|
|
2491
|
+
field?: CreativeSortField;
|
|
2492
|
+
direction?: SortDirection;
|
|
2493
|
+
};
|
|
2494
|
+
/**
|
|
2495
|
+
* Pagination parameters
|
|
2496
|
+
*/
|
|
2497
|
+
pagination?: {
|
|
2498
|
+
/**
|
|
2499
|
+
* Maximum number of creatives to return
|
|
2500
|
+
*/
|
|
2501
|
+
limit?: number;
|
|
2502
|
+
/**
|
|
2503
|
+
* Number of creatives to skip
|
|
2504
|
+
*/
|
|
2505
|
+
offset?: number;
|
|
2506
|
+
};
|
|
2507
|
+
/**
|
|
2508
|
+
* Include package assignment information in response
|
|
2509
|
+
*/
|
|
2510
|
+
include_assignments?: boolean;
|
|
2511
|
+
/**
|
|
2512
|
+
* Include aggregated performance metrics in response
|
|
2513
|
+
*/
|
|
2514
|
+
include_performance?: boolean;
|
|
2515
|
+
/**
|
|
2516
|
+
* Include sub-assets (for carousel/native formats) in response
|
|
2517
|
+
*/
|
|
2518
|
+
include_sub_assets?: boolean;
|
|
2519
|
+
/**
|
|
2520
|
+
* Specific fields to include in response (omit for all fields)
|
|
2521
|
+
*/
|
|
2522
|
+
fields?: ('creative_id' | 'name' | 'format' | 'status' | 'created_date' | 'updated_date' | 'tags' | 'assignments' | 'performance' | 'sub_assets')[];
|
|
2523
|
+
context?: ContextObject;
|
|
2524
|
+
ext?: ExtensionObject;
|
|
2525
|
+
}
|
|
2526
|
+
/**
|
|
2527
|
+
* Filter criteria for querying creative assets from the centralized library
|
|
2528
|
+
*/
|
|
2529
|
+
export interface CreativeFilters {
|
|
2530
|
+
/**
|
|
2531
|
+
* Filter by creative format type (e.g., video, audio, display)
|
|
2532
|
+
*/
|
|
2533
|
+
format?: string;
|
|
2534
|
+
/**
|
|
2535
|
+
* Filter by multiple creative format types
|
|
2536
|
+
*/
|
|
2537
|
+
formats?: string[];
|
|
2538
|
+
status?: CreativeStatus;
|
|
2539
|
+
/**
|
|
2540
|
+
* Filter by multiple creative statuses
|
|
2541
|
+
*/
|
|
2542
|
+
statuses?: CreativeStatus[];
|
|
2543
|
+
/**
|
|
2544
|
+
* Filter by creative tags (all tags must match)
|
|
2545
|
+
*/
|
|
2546
|
+
tags?: string[];
|
|
2547
|
+
/**
|
|
2548
|
+
* Filter by creative tags (any tag must match)
|
|
2549
|
+
*/
|
|
2550
|
+
tags_any?: string[];
|
|
2551
|
+
/**
|
|
2552
|
+
* Filter by creative names containing this text (case-insensitive)
|
|
2553
|
+
*/
|
|
2554
|
+
name_contains?: string;
|
|
2555
|
+
/**
|
|
2556
|
+
* Filter by specific creative IDs
|
|
2557
|
+
*/
|
|
2558
|
+
creative_ids?: string[];
|
|
2559
|
+
/**
|
|
2560
|
+
* Filter creatives created after this date (ISO 8601)
|
|
2561
|
+
*/
|
|
2562
|
+
created_after?: string;
|
|
2563
|
+
/**
|
|
2564
|
+
* Filter creatives created before this date (ISO 8601)
|
|
2565
|
+
*/
|
|
2566
|
+
created_before?: string;
|
|
2567
|
+
/**
|
|
2568
|
+
* Filter creatives last updated after this date (ISO 8601)
|
|
2569
|
+
*/
|
|
2570
|
+
updated_after?: string;
|
|
2571
|
+
/**
|
|
2572
|
+
* Filter creatives last updated before this date (ISO 8601)
|
|
2573
|
+
*/
|
|
2574
|
+
updated_before?: string;
|
|
2575
|
+
/**
|
|
2576
|
+
* Filter creatives assigned to this specific package
|
|
2577
|
+
*/
|
|
2578
|
+
assigned_to_package?: string;
|
|
2579
|
+
/**
|
|
2580
|
+
* Filter creatives assigned to any of these packages
|
|
2581
|
+
*/
|
|
2582
|
+
assigned_to_packages?: string[];
|
|
2583
|
+
/**
|
|
2584
|
+
* Filter creatives assigned to any of these media buys
|
|
2585
|
+
*/
|
|
2586
|
+
media_buy_ids?: string[];
|
|
2587
|
+
/**
|
|
2588
|
+
* Filter creatives assigned to media buys with any of these buyer references
|
|
2589
|
+
*/
|
|
2590
|
+
buyer_refs?: string[];
|
|
2591
|
+
/**
|
|
2592
|
+
* Filter for unassigned creatives when true, assigned creatives when false
|
|
2593
|
+
*/
|
|
2594
|
+
unassigned?: boolean;
|
|
2595
|
+
/**
|
|
2596
|
+
* Filter creatives that have performance data when true
|
|
2597
|
+
*/
|
|
2598
|
+
has_performance_data?: boolean;
|
|
2599
|
+
}
|
|
2600
|
+
/**
|
|
2601
|
+
* Response from creative library query with filtered results, metadata, and optional enriched data
|
|
2602
|
+
*/
|
|
2603
|
+
export interface ListCreativesResponse {
|
|
2604
|
+
/**
|
|
2605
|
+
* Summary of the query that was executed
|
|
2606
|
+
*/
|
|
2607
|
+
query_summary: {
|
|
2608
|
+
/**
|
|
2609
|
+
* Total number of creatives matching filters (across all pages)
|
|
2610
|
+
*/
|
|
2611
|
+
total_matching: number;
|
|
2612
|
+
/**
|
|
2613
|
+
* Number of creatives returned in this response
|
|
2614
|
+
*/
|
|
2615
|
+
returned: number;
|
|
2616
|
+
/**
|
|
2617
|
+
* List of filters that were applied to the query
|
|
2618
|
+
*/
|
|
2619
|
+
filters_applied?: string[];
|
|
2620
|
+
/**
|
|
2621
|
+
* Sort order that was applied
|
|
2622
|
+
*/
|
|
2623
|
+
sort_applied?: {
|
|
2624
|
+
field?: string;
|
|
2625
|
+
direction?: SortDirection;
|
|
2626
|
+
};
|
|
2627
|
+
};
|
|
2628
|
+
/**
|
|
2629
|
+
* Pagination information for navigating results
|
|
2630
|
+
*/
|
|
2631
|
+
pagination: {
|
|
2632
|
+
/**
|
|
2633
|
+
* Maximum number of results requested
|
|
2634
|
+
*/
|
|
2635
|
+
limit: number;
|
|
2636
|
+
/**
|
|
2637
|
+
* Number of results skipped
|
|
2638
|
+
*/
|
|
2639
|
+
offset: number;
|
|
2640
|
+
/**
|
|
2641
|
+
* Whether more results are available
|
|
2642
|
+
*/
|
|
2643
|
+
has_more: boolean;
|
|
2644
|
+
/**
|
|
2645
|
+
* Total number of pages available
|
|
2646
|
+
*/
|
|
2647
|
+
total_pages?: number;
|
|
2648
|
+
/**
|
|
2649
|
+
* Current page number (1-based)
|
|
2650
|
+
*/
|
|
2651
|
+
current_page?: number;
|
|
2652
|
+
};
|
|
2653
|
+
/**
|
|
2654
|
+
* Array of creative assets matching the query
|
|
2655
|
+
*/
|
|
2656
|
+
creatives: {
|
|
2657
|
+
/**
|
|
2658
|
+
* Unique identifier for the creative
|
|
2659
|
+
*/
|
|
2660
|
+
creative_id: string;
|
|
2661
|
+
/**
|
|
2662
|
+
* Human-readable creative name
|
|
2663
|
+
*/
|
|
2664
|
+
name: string;
|
|
2665
|
+
format_id: FormatID;
|
|
2666
|
+
status: CreativeStatus;
|
|
2667
|
+
/**
|
|
2668
|
+
* When the creative was uploaded to the library
|
|
2669
|
+
*/
|
|
2670
|
+
created_date: string;
|
|
2671
|
+
/**
|
|
2672
|
+
* When the creative was last modified
|
|
2673
|
+
*/
|
|
2674
|
+
updated_date: string;
|
|
2675
|
+
/**
|
|
2676
|
+
* Assets for this creative, keyed by asset_role
|
|
2677
|
+
*/
|
|
2678
|
+
assets?: {
|
|
2679
|
+
/**
|
|
2680
|
+
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
2681
|
+
* via the `patternProperty` "^[a-zA-Z0-9_-]+$".
|
|
2682
|
+
*/
|
|
2683
|
+
[k: string]: ImageAsset | VideoAsset | AudioAsset | TextAsset | HTMLAsset | CSSAsset | JavaScriptAsset | VASTAsset | DAASTAsset | PromotedOfferings | URLAsset;
|
|
2684
|
+
};
|
|
2685
|
+
/**
|
|
2686
|
+
* User-defined tags for organization and searchability
|
|
2687
|
+
*/
|
|
2688
|
+
tags?: string[];
|
|
2689
|
+
/**
|
|
2690
|
+
* Current package assignments (included when include_assignments=true)
|
|
2691
|
+
*/
|
|
2692
|
+
assignments?: {
|
|
2693
|
+
/**
|
|
2694
|
+
* Total number of active package assignments
|
|
2695
|
+
*/
|
|
2696
|
+
assignment_count: number;
|
|
2697
|
+
/**
|
|
2698
|
+
* List of packages this creative is assigned to
|
|
2699
|
+
*/
|
|
2700
|
+
assigned_packages?: {
|
|
2701
|
+
/**
|
|
2702
|
+
* Package identifier
|
|
2703
|
+
*/
|
|
2704
|
+
package_id: string;
|
|
2705
|
+
/**
|
|
2706
|
+
* Human-readable package name
|
|
2707
|
+
*/
|
|
2708
|
+
package_name?: string;
|
|
2709
|
+
/**
|
|
2710
|
+
* When this assignment was created
|
|
2711
|
+
*/
|
|
2712
|
+
assigned_date: string;
|
|
2713
|
+
/**
|
|
2714
|
+
* Status of this specific assignment
|
|
2715
|
+
*/
|
|
2716
|
+
status: 'active' | 'paused' | 'ended';
|
|
2717
|
+
}[];
|
|
2718
|
+
};
|
|
2719
|
+
/**
|
|
2720
|
+
* Aggregated performance metrics (included when include_performance=true)
|
|
2721
|
+
*/
|
|
2722
|
+
performance?: {
|
|
2723
|
+
/**
|
|
2724
|
+
* Total impressions across all assignments
|
|
2725
|
+
*/
|
|
2726
|
+
impressions?: number;
|
|
2727
|
+
/**
|
|
2728
|
+
* Total clicks across all assignments
|
|
2729
|
+
*/
|
|
2730
|
+
clicks?: number;
|
|
2731
|
+
/**
|
|
2732
|
+
* Click-through rate (clicks/impressions)
|
|
2733
|
+
*/
|
|
2734
|
+
ctr?: number;
|
|
2735
|
+
/**
|
|
2736
|
+
* Conversion rate across all assignments
|
|
2737
|
+
*/
|
|
2738
|
+
conversion_rate?: number;
|
|
2739
|
+
/**
|
|
2740
|
+
* Aggregated performance score (0-100)
|
|
2741
|
+
*/
|
|
2742
|
+
performance_score?: number;
|
|
2743
|
+
/**
|
|
2744
|
+
* When performance data was last updated
|
|
2745
|
+
*/
|
|
2746
|
+
last_updated: string;
|
|
2747
|
+
};
|
|
2748
|
+
/**
|
|
2749
|
+
* Sub-assets for multi-asset formats (included when include_sub_assets=true)
|
|
2750
|
+
*/
|
|
2751
|
+
sub_assets?: SubAsset[];
|
|
2752
|
+
}[];
|
|
2753
|
+
/**
|
|
2754
|
+
* Breakdown of creatives by format type
|
|
2755
|
+
*/
|
|
2756
|
+
format_summary?: {
|
|
2757
|
+
/**
|
|
2758
|
+
* Number of creatives with this format
|
|
2759
|
+
*
|
|
2760
|
+
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
2761
|
+
* via the `patternProperty` "^[a-zA-Z0-9_-]+$".
|
|
2762
|
+
*/
|
|
2763
|
+
[k: string]: number;
|
|
2764
|
+
};
|
|
2765
|
+
/**
|
|
2766
|
+
* Breakdown of creatives by status
|
|
2767
|
+
*/
|
|
2768
|
+
status_summary?: {
|
|
2769
|
+
/**
|
|
2770
|
+
* Number of approved creatives
|
|
2771
|
+
*/
|
|
2772
|
+
approved?: number;
|
|
2773
|
+
/**
|
|
2774
|
+
* Number of creatives pending review
|
|
2775
|
+
*/
|
|
2776
|
+
pending_review?: number;
|
|
2777
|
+
/**
|
|
2778
|
+
* Number of rejected creatives
|
|
2779
|
+
*/
|
|
2780
|
+
rejected?: number;
|
|
2781
|
+
/**
|
|
2782
|
+
* Number of archived creatives
|
|
2783
|
+
*/
|
|
2784
|
+
archived?: number;
|
|
2785
|
+
};
|
|
2786
|
+
context?: ContextObject;
|
|
2787
|
+
ext?: ExtensionObject;
|
|
2788
|
+
}
|
|
2789
|
+
/**
|
|
2790
|
+
* Success response - media buy updated successfully
|
|
2791
|
+
*/
|
|
2792
|
+
export interface UpdateMediaBuySuccess {
|
|
2793
|
+
/**
|
|
2794
|
+
* Publisher's identifier for the media buy
|
|
2795
|
+
*/
|
|
2796
|
+
media_buy_id: string;
|
|
2797
|
+
/**
|
|
2798
|
+
* Buyer's reference identifier for the media buy
|
|
2799
|
+
*/
|
|
2800
|
+
buyer_ref: string;
|
|
2801
|
+
/**
|
|
2802
|
+
* ISO 8601 timestamp when changes take effect (null if pending approval)
|
|
2803
|
+
*/
|
|
2804
|
+
implementation_date?: string | null;
|
|
2805
|
+
/**
|
|
2806
|
+
* Array of packages that were modified with complete state information
|
|
2807
|
+
*/
|
|
2808
|
+
affected_packages?: Package[];
|
|
2809
|
+
context?: ContextObject;
|
|
2810
|
+
ext?: ExtensionObject;
|
|
2811
|
+
}
|
|
2812
|
+
/**
|
|
2813
|
+
* Error response - operation failed, no changes applied
|
|
2814
|
+
*/
|
|
2815
|
+
export interface UpdateMediaBuyError {
|
|
2816
|
+
/**
|
|
2817
|
+
* Array of errors explaining why the operation failed
|
|
2818
|
+
*/
|
|
2819
|
+
errors: Error[];
|
|
2820
|
+
context?: ContextObject;
|
|
2821
|
+
ext?: ExtensionObject;
|
|
2822
|
+
}
|
|
2823
|
+
/**
|
|
2824
|
+
* Request parameters for retrieving comprehensive delivery metrics
|
|
2825
|
+
*/
|
|
2826
|
+
export interface GetMediaBuyDeliveryRequest {
|
|
2827
|
+
/**
|
|
2828
|
+
* Array of publisher media buy IDs to get delivery data for
|
|
2829
|
+
*/
|
|
2830
|
+
media_buy_ids?: string[];
|
|
2831
|
+
/**
|
|
2832
|
+
* Array of buyer reference IDs to get delivery data for
|
|
2833
|
+
*/
|
|
2834
|
+
buyer_refs?: string[];
|
|
2835
|
+
/**
|
|
2836
|
+
* Filter by status. Can be a single status or array of statuses
|
|
2837
|
+
*/
|
|
2838
|
+
status_filter?: MediaBuyStatus | MediaBuyStatus[];
|
|
2839
|
+
/**
|
|
2840
|
+
* Start date for reporting period (YYYY-MM-DD)
|
|
2841
|
+
*/
|
|
2842
|
+
start_date?: string;
|
|
2843
|
+
/**
|
|
2844
|
+
* End date for reporting period (YYYY-MM-DD)
|
|
2845
|
+
*/
|
|
2846
|
+
end_date?: string;
|
|
2847
|
+
context?: ContextObject;
|
|
2848
|
+
ext?: ExtensionObject;
|
|
2849
|
+
}
|
|
2850
|
+
/**
|
|
2851
|
+
* Response payload for get_media_buy_delivery task
|
|
2852
|
+
*/
|
|
2853
|
+
export interface GetMediaBuyDeliveryResponse {
|
|
2854
|
+
/**
|
|
2855
|
+
* 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 updated data
|
|
2856
|
+
*/
|
|
2857
|
+
notification_type?: 'scheduled' | 'final' | 'delayed' | 'adjusted';
|
|
2858
|
+
/**
|
|
2859
|
+
* Indicates if any media buys in this webhook have missing/delayed data (only present in webhook deliveries)
|
|
2860
|
+
*/
|
|
2861
|
+
partial_data?: boolean;
|
|
2862
|
+
/**
|
|
2863
|
+
* Number of media buys with reporting_delayed or failed status (only present in webhook deliveries when partial_data is true)
|
|
2864
|
+
*/
|
|
2865
|
+
unavailable_count?: number;
|
|
2866
|
+
/**
|
|
2867
|
+
* Sequential notification number (only present in webhook deliveries, starts at 1)
|
|
2868
|
+
*/
|
|
2869
|
+
sequence_number?: number;
|
|
2870
|
+
/**
|
|
2871
|
+
* ISO 8601 timestamp for next expected notification (only present in webhook deliveries when notification_type is not 'final')
|
|
2872
|
+
*/
|
|
2873
|
+
next_expected_at?: string;
|
|
2874
|
+
/**
|
|
2875
|
+
* Date range for the report. All periods use UTC timezone.
|
|
2876
|
+
*/
|
|
2877
|
+
reporting_period: {
|
|
2878
|
+
/**
|
|
2879
|
+
* ISO 8601 start timestamp in UTC (e.g., 2024-02-05T00:00:00Z)
|
|
2880
|
+
*/
|
|
2881
|
+
start: string;
|
|
2882
|
+
/**
|
|
2883
|
+
* ISO 8601 end timestamp in UTC (e.g., 2024-02-05T23:59:59Z)
|
|
2884
|
+
*/
|
|
2885
|
+
end: string;
|
|
2886
|
+
};
|
|
2887
|
+
/**
|
|
2888
|
+
* ISO 4217 currency code
|
|
2889
|
+
*/
|
|
2890
|
+
currency: string;
|
|
2891
|
+
/**
|
|
2892
|
+
* Combined metrics across all returned media buys. Only included in API responses (get_media_buy_delivery), not in webhook notifications.
|
|
2893
|
+
*/
|
|
2894
|
+
aggregated_totals?: {
|
|
2895
|
+
/**
|
|
2896
|
+
* Total impressions delivered across all media buys
|
|
2897
|
+
*/
|
|
2898
|
+
impressions: number;
|
|
2899
|
+
/**
|
|
2900
|
+
* Total amount spent across all media buys
|
|
2901
|
+
*/
|
|
2902
|
+
spend: number;
|
|
2903
|
+
/**
|
|
2904
|
+
* Total clicks across all media buys (if applicable)
|
|
2905
|
+
*/
|
|
2906
|
+
clicks?: number;
|
|
2907
|
+
/**
|
|
2908
|
+
* Total video completions across all media buys (if applicable)
|
|
2909
|
+
*/
|
|
2910
|
+
video_completions?: number;
|
|
2911
|
+
/**
|
|
2912
|
+
* Number of media buys included in the response
|
|
2913
|
+
*/
|
|
2914
|
+
media_buy_count: number;
|
|
2915
|
+
};
|
|
2916
|
+
/**
|
|
2917
|
+
* 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.
|
|
2918
|
+
*/
|
|
2919
|
+
media_buy_deliveries: {
|
|
2920
|
+
/**
|
|
2921
|
+
* Publisher's media buy identifier
|
|
2922
|
+
*/
|
|
2923
|
+
media_buy_id: string;
|
|
2924
|
+
/**
|
|
2925
|
+
* Buyer's reference identifier for this media buy
|
|
2926
|
+
*/
|
|
2927
|
+
buyer_ref?: string;
|
|
2928
|
+
/**
|
|
2929
|
+
* Current media buy status. In webhook context, reporting_delayed indicates data temporarily unavailable.
|
|
2930
|
+
*/
|
|
2931
|
+
status: 'pending' | 'active' | 'paused' | 'completed' | 'failed' | 'reporting_delayed';
|
|
2932
|
+
/**
|
|
2933
|
+
* When delayed data is expected to be available (only present when status is reporting_delayed)
|
|
2934
|
+
*/
|
|
2935
|
+
expected_availability?: string;
|
|
2936
|
+
/**
|
|
2937
|
+
* Indicates this delivery contains updated data for a previously reported period. Buyer should replace previous period data with these totals.
|
|
2938
|
+
*/
|
|
2939
|
+
is_adjusted?: boolean;
|
|
2940
|
+
pricing_model?: PricingModel;
|
|
2941
|
+
totals: DeliveryMetrics & {
|
|
2942
|
+
/**
|
|
2943
|
+
* 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')
|
|
2944
|
+
*/
|
|
2945
|
+
effective_rate?: number;
|
|
2946
|
+
};
|
|
2947
|
+
/**
|
|
2948
|
+
* Metrics broken down by package
|
|
2949
|
+
*/
|
|
2950
|
+
by_package: (DeliveryMetrics & {
|
|
2951
|
+
/**
|
|
2952
|
+
* Publisher's package identifier
|
|
2953
|
+
*/
|
|
2954
|
+
package_id: string;
|
|
2955
|
+
/**
|
|
2956
|
+
* Buyer's reference identifier for this package
|
|
2957
|
+
*/
|
|
2958
|
+
buyer_ref?: string;
|
|
2959
|
+
/**
|
|
2960
|
+
* Delivery pace (1.0 = on track, <1.0 = behind, >1.0 = ahead)
|
|
2961
|
+
*/
|
|
2962
|
+
pacing_index?: number;
|
|
2963
|
+
pricing_model: PricingModel;
|
|
2964
|
+
/**
|
|
2965
|
+
* 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.
|
|
2966
|
+
*/
|
|
2967
|
+
rate: number;
|
|
2968
|
+
/**
|
|
2969
|
+
* 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.
|
|
2970
|
+
*/
|
|
2971
|
+
currency: string;
|
|
2972
|
+
/**
|
|
2973
|
+
* System-reported operational state of this package. Reflects actual delivery state independent of buyer pause control.
|
|
2974
|
+
*/
|
|
2975
|
+
delivery_status?: 'delivering' | 'completed' | 'budget_exhausted' | 'flight_ended' | 'goal_met';
|
|
2976
|
+
/**
|
|
2977
|
+
* Whether this package is currently paused by the buyer
|
|
2978
|
+
*/
|
|
2979
|
+
paused?: boolean;
|
|
2980
|
+
})[];
|
|
2981
|
+
/**
|
|
2982
|
+
* Day-by-day delivery
|
|
2983
|
+
*/
|
|
2984
|
+
daily_breakdown?: {
|
|
2985
|
+
/**
|
|
2986
|
+
* Date (YYYY-MM-DD)
|
|
2987
|
+
*/
|
|
2988
|
+
date: string;
|
|
2989
|
+
/**
|
|
2990
|
+
* Daily impressions
|
|
2991
|
+
*/
|
|
2992
|
+
impressions: number;
|
|
2993
|
+
/**
|
|
2994
|
+
* Daily spend
|
|
2995
|
+
*/
|
|
2996
|
+
spend: number;
|
|
2997
|
+
}[];
|
|
2998
|
+
}[];
|
|
2999
|
+
/**
|
|
3000
|
+
* Task-specific errors and warnings (e.g., missing delivery data, reporting platform issues)
|
|
3001
|
+
*/
|
|
3002
|
+
errors?: Error[];
|
|
3003
|
+
context?: ContextObject;
|
|
3004
|
+
ext?: ExtensionObject;
|
|
3005
|
+
}
|
|
3006
|
+
/**
|
|
3007
|
+
* Standard delivery metrics that can be reported at media buy, package, or creative level
|
|
3008
|
+
*/
|
|
3009
|
+
export interface DeliveryMetrics {
|
|
3010
|
+
/**
|
|
3011
|
+
* Impressions delivered
|
|
3012
|
+
*/
|
|
3013
|
+
impressions?: number;
|
|
3014
|
+
/**
|
|
3015
|
+
* Amount spent
|
|
3016
|
+
*/
|
|
3017
|
+
spend?: number;
|
|
3018
|
+
/**
|
|
3019
|
+
* Total clicks
|
|
3020
|
+
*/
|
|
3021
|
+
clicks?: number;
|
|
3022
|
+
/**
|
|
3023
|
+
* Click-through rate (clicks/impressions)
|
|
3024
|
+
*/
|
|
3025
|
+
ctr?: number;
|
|
3026
|
+
/**
|
|
3027
|
+
* Views at threshold (for CPV)
|
|
3028
|
+
*/
|
|
3029
|
+
views?: number;
|
|
3030
|
+
/**
|
|
3031
|
+
* 100% completions (for CPCV)
|
|
3032
|
+
*/
|
|
3033
|
+
completed_views?: number;
|
|
3034
|
+
/**
|
|
3035
|
+
* Completion rate (completed_views/impressions)
|
|
3036
|
+
*/
|
|
3037
|
+
completion_rate?: number;
|
|
3038
|
+
/**
|
|
3039
|
+
* Conversions (reserved for future CPA pricing support)
|
|
3040
|
+
*/
|
|
3041
|
+
conversions?: number;
|
|
3042
|
+
/**
|
|
3043
|
+
* Leads generated (reserved for future CPL pricing support)
|
|
3044
|
+
*/
|
|
3045
|
+
leads?: number;
|
|
3046
|
+
/**
|
|
3047
|
+
* Gross Rating Points delivered (for CPP)
|
|
3048
|
+
*/
|
|
3049
|
+
grps?: number;
|
|
3050
|
+
/**
|
|
3051
|
+
* Unique reach - units depend on measurement provider (e.g., individuals, households, devices, cookies). See delivery_measurement.provider for methodology.
|
|
3052
|
+
*/
|
|
3053
|
+
reach?: number;
|
|
3054
|
+
/**
|
|
3055
|
+
* Average frequency per individual (typically measured over campaign duration, but can vary by measurement provider)
|
|
3056
|
+
*/
|
|
3057
|
+
frequency?: number;
|
|
3058
|
+
/**
|
|
3059
|
+
* Video quartile completion data
|
|
3060
|
+
*/
|
|
3061
|
+
quartile_data?: {
|
|
3062
|
+
/**
|
|
3063
|
+
* 25% completion views
|
|
3064
|
+
*/
|
|
3065
|
+
q1_views?: number;
|
|
3066
|
+
/**
|
|
3067
|
+
* 50% completion views
|
|
3068
|
+
*/
|
|
3069
|
+
q2_views?: number;
|
|
3070
|
+
/**
|
|
3071
|
+
* 75% completion views
|
|
3072
|
+
*/
|
|
3073
|
+
q3_views?: number;
|
|
3074
|
+
/**
|
|
3075
|
+
* 100% completion views
|
|
3076
|
+
*/
|
|
3077
|
+
q4_views?: number;
|
|
3078
|
+
};
|
|
3079
|
+
/**
|
|
3080
|
+
* DOOH-specific metrics (only included for DOOH campaigns)
|
|
3081
|
+
*/
|
|
3082
|
+
dooh_metrics?: {
|
|
3083
|
+
/**
|
|
3084
|
+
* Number of times ad played in rotation
|
|
3085
|
+
*/
|
|
3086
|
+
loop_plays?: number;
|
|
3087
|
+
/**
|
|
3088
|
+
* Number of unique screens displaying the ad
|
|
3089
|
+
*/
|
|
3090
|
+
screens_used?: number;
|
|
3091
|
+
/**
|
|
3092
|
+
* Total display time in seconds
|
|
3093
|
+
*/
|
|
3094
|
+
screen_time_seconds?: number;
|
|
3095
|
+
/**
|
|
3096
|
+
* Actual share of voice delivered (0.0 to 1.0)
|
|
3097
|
+
*/
|
|
3098
|
+
sov_achieved?: number;
|
|
3099
|
+
/**
|
|
3100
|
+
* Explanation of how DOOH impressions were calculated
|
|
3101
|
+
*/
|
|
3102
|
+
calculation_notes?: string;
|
|
3103
|
+
/**
|
|
3104
|
+
* Per-venue performance breakdown
|
|
3105
|
+
*/
|
|
3106
|
+
venue_breakdown?: {
|
|
3107
|
+
/**
|
|
3108
|
+
* Venue identifier
|
|
3109
|
+
*/
|
|
3110
|
+
venue_id: string;
|
|
3111
|
+
/**
|
|
3112
|
+
* Human-readable venue name
|
|
3113
|
+
*/
|
|
3114
|
+
venue_name?: string;
|
|
3115
|
+
/**
|
|
3116
|
+
* Venue type (e.g., 'airport', 'transit', 'retail', 'billboard')
|
|
3117
|
+
*/
|
|
3118
|
+
venue_type?: string;
|
|
3119
|
+
/**
|
|
3120
|
+
* Impressions delivered at this venue
|
|
3121
|
+
*/
|
|
3122
|
+
impressions: number;
|
|
3123
|
+
/**
|
|
3124
|
+
* Loop plays at this venue
|
|
3125
|
+
*/
|
|
3126
|
+
loop_plays?: number;
|
|
3127
|
+
/**
|
|
3128
|
+
* Number of screens used at this venue
|
|
3129
|
+
*/
|
|
3130
|
+
screens_used?: number;
|
|
3131
|
+
}[];
|
|
3132
|
+
};
|
|
3133
|
+
}
|
|
3134
|
+
/**
|
|
3135
|
+
* Request parameters for discovering which publishers this agent is authorized to represent
|
|
3136
|
+
*/
|
|
3137
|
+
export interface ListAuthorizedPropertiesRequest {
|
|
3138
|
+
/**
|
|
3139
|
+
* Filter to specific publisher domains (optional). If omitted, returns all publishers this agent represents.
|
|
3140
|
+
*/
|
|
3141
|
+
publisher_domains?: string[];
|
|
3142
|
+
context?: ContextObject;
|
|
3143
|
+
ext?: ExtensionObject;
|
|
3144
|
+
}
|
|
3145
|
+
/**
|
|
3146
|
+
* Response payload for list_authorized_properties task. Lists publisher domains and authorization scope (property_ids or property_tags). Buyers fetch actual property definitions from each publisher's canonical adagents.json file.
|
|
3147
|
+
*/
|
|
3148
|
+
export interface ListAuthorizedPropertiesResponse {
|
|
3149
|
+
/**
|
|
3150
|
+
* Publisher domains this agent is authorized to represent. Buyers should fetch each publisher's adagents.json to see property definitions and verify this agent is in their authorized_agents list with authorization scope.
|
|
3151
|
+
*/
|
|
3152
|
+
publisher_domains: string[];
|
|
3153
|
+
/**
|
|
3154
|
+
* Primary advertising channels represented in this property portfolio. Helps buying agents quickly filter relevance.
|
|
3155
|
+
*/
|
|
3156
|
+
primary_channels?: AdvertisingChannels[];
|
|
3157
|
+
/**
|
|
3158
|
+
* Primary countries (ISO 3166-1 alpha-2 codes) where properties are concentrated. Helps buying agents quickly filter relevance.
|
|
3159
|
+
*/
|
|
3160
|
+
primary_countries?: string[];
|
|
3161
|
+
/**
|
|
3162
|
+
* Markdown-formatted description of the property portfolio, including inventory types, audience characteristics, and special features.
|
|
3163
|
+
*/
|
|
3164
|
+
portfolio_description?: string;
|
|
3165
|
+
/**
|
|
3166
|
+
* Publisher's advertising content policies, restrictions, and guidelines in natural language. May include prohibited categories, blocked advertisers, restricted tactics, brand safety requirements, or links to full policy documentation.
|
|
3167
|
+
*/
|
|
3168
|
+
advertising_policies?: string;
|
|
3169
|
+
/**
|
|
3170
|
+
* ISO 8601 timestamp of when the agent's publisher authorization list was last updated. Buyers can use this to determine if their cached publisher adagents.json files might be stale.
|
|
3171
|
+
*/
|
|
3172
|
+
last_updated?: string;
|
|
3173
|
+
/**
|
|
3174
|
+
* Task-specific errors and warnings (e.g., property availability issues)
|
|
3175
|
+
*/
|
|
3176
|
+
errors?: Error[];
|
|
3177
|
+
context?: ContextObject;
|
|
3178
|
+
ext?: ExtensionObject;
|
|
3179
|
+
}
|
|
3180
|
+
/**
|
|
3181
|
+
* Success response - feedback received and processed
|
|
3182
|
+
*/
|
|
3183
|
+
export interface ProvidePerformanceFeedbackSuccess {
|
|
3184
|
+
/**
|
|
3185
|
+
* Whether the performance feedback was successfully received
|
|
3186
|
+
*/
|
|
3187
|
+
success: true;
|
|
3188
|
+
context?: ContextObject;
|
|
3189
|
+
ext?: ExtensionObject;
|
|
3190
|
+
}
|
|
3191
|
+
/**
|
|
3192
|
+
* Error response - feedback rejected or could not be processed
|
|
3193
|
+
*/
|
|
3194
|
+
export interface ProvidePerformanceFeedbackError {
|
|
3195
|
+
/**
|
|
3196
|
+
* Array of errors explaining why feedback was rejected (e.g., invalid measurement period, missing campaign data)
|
|
3197
|
+
*/
|
|
3198
|
+
errors: Error[];
|
|
3199
|
+
context?: ContextObject;
|
|
3200
|
+
ext?: ExtensionObject;
|
|
3201
|
+
}
|
|
3202
|
+
/**
|
|
3203
|
+
* Request to transform or generate a creative manifest. Takes a source manifest (which may be minimal for pure generation) and produces a target manifest in the specified format. The source manifest should include all assets required by the target format (e.g., promoted_offerings for generative formats).
|
|
3204
|
+
*/
|
|
3205
|
+
export interface BuildCreativeRequest {
|
|
3206
|
+
/**
|
|
3207
|
+
* Natural language instructions for the transformation or generation. For pure generation, this is the creative brief. For transformation, this provides guidance on how to adapt the creative.
|
|
3208
|
+
*/
|
|
3209
|
+
message?: string;
|
|
3210
|
+
creative_manifest?: CreativeManifest;
|
|
3211
|
+
target_format_id: FormatID;
|
|
3212
|
+
context?: ContextObject;
|
|
3213
|
+
ext?: ExtensionObject;
|
|
3214
|
+
}
|
|
3215
|
+
/**
|
|
3216
|
+
* Creative manifest to transform or generate from. For pure generation, this should include the target format_id and any required input assets (e.g., promoted_offerings for generative formats). For transformation (e.g., resizing, reformatting), this is the complete creative to adapt.
|
|
3217
|
+
*/
|
|
3218
|
+
export interface CreativeManifest {
|
|
3219
|
+
format_id: FormatID;
|
|
3220
|
+
/**
|
|
3221
|
+
* Product name or offering being advertised. Maps to promoted_offerings in create_media_buy request to associate creative with the product being promoted.
|
|
3222
|
+
*/
|
|
3223
|
+
promoted_offering?: string;
|
|
3224
|
+
/**
|
|
3225
|
+
* Map of asset IDs to actual asset content. Each key MUST match an asset_id from the format's assets_required array (e.g., 'banner_image', 'clickthrough_url', 'video_file', 'vast_tag'). The asset_id is the technical identifier used to match assets to format requirements.
|
|
3226
|
+
*
|
|
3227
|
+
* IMPORTANT: Creative manifest validation MUST be performed in the context of the format specification. The format defines what type each asset_id should be, which eliminates any validation ambiguity.
|
|
3228
|
+
*/
|
|
3229
|
+
assets: {
|
|
3230
|
+
/**
|
|
3231
|
+
* This interface was referenced by `undefined`'s JSON-Schema definition
|
|
3232
|
+
* via the `patternProperty` "^[a-z0-9_]+$".
|
|
3233
|
+
*/
|
|
3234
|
+
[k: string]: ImageAsset | VideoAsset | AudioAsset | VASTAsset | TextAsset | URLAsset | HTMLAsset | JavaScriptAsset | WebhookAsset | CSSAsset | DAASTAsset | PromotedOfferings;
|
|
3235
|
+
};
|
|
3236
|
+
ext?: ExtensionObject;
|
|
3237
|
+
}
|
|
3238
|
+
/**
|
|
3239
|
+
* Webhook for server-side dynamic content rendering (DCO)
|
|
3240
|
+
*/
|
|
3241
|
+
export interface WebhookAsset {
|
|
3242
|
+
/**
|
|
3243
|
+
* Webhook URL to call for dynamic content
|
|
3244
|
+
*/
|
|
3245
|
+
url: string;
|
|
3246
|
+
method?: HTTPMethod;
|
|
3247
|
+
/**
|
|
3248
|
+
* Maximum time to wait for response in milliseconds
|
|
3249
|
+
*/
|
|
3250
|
+
timeout_ms?: number;
|
|
3251
|
+
/**
|
|
3252
|
+
* Universal macros that can be passed to webhook (e.g., {DEVICE_TYPE}, {COUNTRY})
|
|
3253
|
+
*/
|
|
3254
|
+
supported_macros?: string[];
|
|
3255
|
+
/**
|
|
3256
|
+
* Universal macros that must be provided for webhook to function
|
|
3257
|
+
*/
|
|
3258
|
+
required_macros?: string[];
|
|
3259
|
+
response_type: WebhookResponseType;
|
|
3260
|
+
/**
|
|
3261
|
+
* Security configuration for webhook calls
|
|
3262
|
+
*/
|
|
3263
|
+
security: {
|
|
3264
|
+
method: WebhookSecurityMethod;
|
|
3265
|
+
/**
|
|
3266
|
+
* Header name for HMAC signature (e.g., 'X-Signature')
|
|
3267
|
+
*/
|
|
3268
|
+
hmac_header?: string;
|
|
3269
|
+
/**
|
|
3270
|
+
* Header name for API key (e.g., 'X-API-Key')
|
|
3271
|
+
*/
|
|
3272
|
+
api_key_header?: string;
|
|
3273
|
+
};
|
|
3274
|
+
}
|
|
3275
|
+
/**
|
|
3276
|
+
* Success response - creative manifest generated successfully
|
|
3277
|
+
*/
|
|
3278
|
+
export interface BuildCreativeSuccess {
|
|
3279
|
+
creative_manifest: CreativeManifest;
|
|
3280
|
+
context?: ContextObject;
|
|
3281
|
+
ext?: ExtensionObject;
|
|
3282
|
+
}
|
|
3283
|
+
/**
|
|
3284
|
+
* Error response - creative generation failed
|
|
3285
|
+
*/
|
|
3286
|
+
export interface BuildCreativeError {
|
|
3287
|
+
/**
|
|
3288
|
+
* Array of errors explaining why creative generation failed
|
|
3289
|
+
*/
|
|
3290
|
+
errors: Error[];
|
|
3291
|
+
context?: ContextObject;
|
|
3292
|
+
ext?: ExtensionObject;
|
|
3293
|
+
}
|
|
3294
|
+
/**
|
|
3295
|
+
* Single preview response - each preview URL returns an HTML page that can be embedded in an iframe
|
|
3296
|
+
*/
|
|
3297
|
+
export interface PreviewCreativeSingleResponse {
|
|
3298
|
+
/**
|
|
3299
|
+
* Discriminator indicating this is a single preview response
|
|
3300
|
+
*/
|
|
3301
|
+
response_type: 'single';
|
|
3302
|
+
/**
|
|
3303
|
+
* Array of preview variants. Each preview corresponds to an input set from the request. If no inputs were provided, returns a single default preview.
|
|
3304
|
+
*/
|
|
3305
|
+
previews: {
|
|
3306
|
+
/**
|
|
3307
|
+
* Unique identifier for this preview variant
|
|
3308
|
+
*/
|
|
3309
|
+
preview_id: string;
|
|
3310
|
+
/**
|
|
3311
|
+
* Array of rendered pieces for this preview variant. Most formats render as a single piece. Companion ad formats (video + banner), multi-placement formats, and adaptive formats render as multiple pieces.
|
|
3312
|
+
*/
|
|
3313
|
+
renders: PreviewRender[];
|
|
3314
|
+
/**
|
|
3315
|
+
* The input parameters that generated this preview variant. Echoes back the request input or shows defaults used.
|
|
3316
|
+
*/
|
|
3317
|
+
input: {
|
|
3318
|
+
/**
|
|
3319
|
+
* Human-readable name for this variant
|
|
3320
|
+
*/
|
|
3321
|
+
name: string;
|
|
3322
|
+
/**
|
|
3323
|
+
* Macro values applied to this variant
|
|
3324
|
+
*/
|
|
3325
|
+
macros?: {
|
|
3326
|
+
[k: string]: string | undefined;
|
|
3327
|
+
};
|
|
3328
|
+
/**
|
|
3329
|
+
* Context description applied to this variant
|
|
3330
|
+
*/
|
|
3331
|
+
context_description?: string;
|
|
3332
|
+
};
|
|
3333
|
+
}[];
|
|
3334
|
+
/**
|
|
3335
|
+
* Optional URL to an interactive testing page that shows all preview variants with controls to switch between them, modify macro values, and test different scenarios.
|
|
3336
|
+
*/
|
|
3337
|
+
interactive_url?: string;
|
|
3338
|
+
/**
|
|
3339
|
+
* ISO 8601 timestamp when preview links expire
|
|
3340
|
+
*/
|
|
3341
|
+
expires_at: string;
|
|
3342
|
+
context?: ContextObject;
|
|
3343
|
+
ext?: ExtensionObject;
|
|
3344
|
+
}
|
|
3345
|
+
/**
|
|
3346
|
+
* Batch preview response - contains results for multiple creative requests
|
|
3347
|
+
*/
|
|
3348
|
+
export interface PreviewCreativeBatchResponse {
|
|
3349
|
+
/**
|
|
3350
|
+
* Discriminator indicating this is a batch preview response
|
|
3351
|
+
*/
|
|
3352
|
+
response_type: 'batch';
|
|
3353
|
+
/**
|
|
3354
|
+
* Array of preview results corresponding to each request in the same order. results[0] is the result for requests[0], results[1] for requests[1], etc. Order is guaranteed even when some requests fail. Each result contains either a successful preview response or an error.
|
|
3355
|
+
*/
|
|
3356
|
+
results: (PreviewBatchResultSuccess | PreviewBatchResultError)[];
|
|
3357
|
+
context?: ContextObject;
|
|
3358
|
+
ext?: ExtensionObject;
|
|
3359
|
+
}
|
|
3360
|
+
export interface PreviewBatchResultSuccess {
|
|
3361
|
+
success?: true;
|
|
3362
|
+
}
|
|
3363
|
+
export interface PreviewBatchResultError {
|
|
3364
|
+
success?: false;
|
|
3365
|
+
}
|
|
3366
|
+
/**
|
|
3367
|
+
* Request parameters for discovering signals based on description
|
|
3368
|
+
*/
|
|
3369
|
+
export interface GetSignalsRequest {
|
|
3370
|
+
/**
|
|
3371
|
+
* Natural language description of the desired signals
|
|
3372
|
+
*/
|
|
3373
|
+
signal_spec: string;
|
|
3374
|
+
/**
|
|
3375
|
+
* Deployment targets where signals need to be activated
|
|
3376
|
+
*/
|
|
3377
|
+
deliver_to: {
|
|
3378
|
+
/**
|
|
3379
|
+
* List of deployment targets (DSPs, sales agents, etc.). If the authenticated caller matches one of these deployment targets, activation keys will be included in the response.
|
|
3380
|
+
*/
|
|
3381
|
+
deployments: Destination[];
|
|
3382
|
+
/**
|
|
3383
|
+
* Countries where signals will be used (ISO codes)
|
|
3384
|
+
*/
|
|
3385
|
+
countries: string[];
|
|
3386
|
+
};
|
|
3387
|
+
filters?: SignalFilters;
|
|
3388
|
+
/**
|
|
3389
|
+
* Maximum number of results to return
|
|
3390
|
+
*/
|
|
3391
|
+
max_results?: number;
|
|
3392
|
+
context?: ContextObject;
|
|
3393
|
+
ext?: ExtensionObject;
|
|
3394
|
+
}
|
|
3395
|
+
/**
|
|
3396
|
+
* Filters to refine signal discovery results
|
|
3397
|
+
*/
|
|
3398
|
+
export interface SignalFilters {
|
|
3399
|
+
/**
|
|
3400
|
+
* Filter by catalog type
|
|
3401
|
+
*/
|
|
3402
|
+
catalog_types?: SignalCatalogType[];
|
|
3403
|
+
/**
|
|
3404
|
+
* Filter by specific data providers
|
|
3405
|
+
*/
|
|
3406
|
+
data_providers?: string[];
|
|
3407
|
+
/**
|
|
3408
|
+
* Maximum CPM price filter
|
|
3409
|
+
*/
|
|
3410
|
+
max_cpm?: number;
|
|
3411
|
+
/**
|
|
3412
|
+
* Minimum coverage requirement
|
|
3413
|
+
*/
|
|
3414
|
+
min_coverage_percentage?: number;
|
|
3415
|
+
}
|
|
3416
|
+
/**
|
|
3417
|
+
* Response payload for get_signals task
|
|
3418
|
+
*/
|
|
3419
|
+
export interface GetSignalsResponse {
|
|
3420
|
+
/**
|
|
3421
|
+
* Array of matching signals
|
|
3422
|
+
*/
|
|
3423
|
+
signals: {
|
|
3424
|
+
/**
|
|
3425
|
+
* Unique identifier for the signal
|
|
3426
|
+
*/
|
|
3427
|
+
signal_agent_segment_id: string;
|
|
3428
|
+
/**
|
|
3429
|
+
* Human-readable signal name
|
|
3430
|
+
*/
|
|
3431
|
+
name: string;
|
|
3432
|
+
/**
|
|
3433
|
+
* Detailed signal description
|
|
3434
|
+
*/
|
|
3435
|
+
description: string;
|
|
3436
|
+
signal_type: SignalCatalogType;
|
|
3437
|
+
/**
|
|
3438
|
+
* Name of the data provider
|
|
3439
|
+
*/
|
|
3440
|
+
data_provider: string;
|
|
3441
|
+
/**
|
|
3442
|
+
* Percentage of audience coverage
|
|
3443
|
+
*/
|
|
3444
|
+
coverage_percentage: number;
|
|
3445
|
+
/**
|
|
3446
|
+
* Array of deployment targets
|
|
3447
|
+
*/
|
|
3448
|
+
deployments: Deployment[];
|
|
3449
|
+
/**
|
|
3450
|
+
* Pricing information
|
|
3451
|
+
*/
|
|
3452
|
+
pricing: {
|
|
3453
|
+
/**
|
|
3454
|
+
* Cost per thousand impressions
|
|
3455
|
+
*/
|
|
3456
|
+
cpm: number;
|
|
3457
|
+
/**
|
|
3458
|
+
* Currency code
|
|
3459
|
+
*/
|
|
3460
|
+
currency: string;
|
|
3461
|
+
};
|
|
3462
|
+
}[];
|
|
3463
|
+
/**
|
|
3464
|
+
* Task-specific errors and warnings (e.g., signal discovery or pricing issues)
|
|
3465
|
+
*/
|
|
3466
|
+
errors?: Error[];
|
|
3467
|
+
context?: ContextObject;
|
|
3468
|
+
ext?: ExtensionObject;
|
|
3469
|
+
}
|
|
3470
|
+
/**
|
|
3471
|
+
* Request parameters for activating a signal on a specific deployment target
|
|
3472
|
+
*/
|
|
3473
|
+
export interface ActivateSignalRequest {
|
|
3474
|
+
/**
|
|
3475
|
+
* The universal identifier for the signal to activate
|
|
3476
|
+
*/
|
|
3477
|
+
signal_agent_segment_id: string;
|
|
3478
|
+
/**
|
|
3479
|
+
* Target deployment(s) for activation. If the authenticated caller matches one of these deployment targets, activation keys will be included in the response.
|
|
3480
|
+
*/
|
|
3481
|
+
deployments: Destination[];
|
|
3482
|
+
context?: ContextObject;
|
|
3483
|
+
ext?: ExtensionObject;
|
|
3484
|
+
}
|
|
3485
|
+
/**
|
|
3486
|
+
* Success response - signal activated successfully to one or more deployment targets
|
|
3487
|
+
*/
|
|
3488
|
+
export interface ActivateSignalSuccess {
|
|
3489
|
+
/**
|
|
3490
|
+
* Array of deployment results for each deployment target
|
|
3491
|
+
*/
|
|
3492
|
+
deployments: Deployment[];
|
|
3493
|
+
context?: ContextObject;
|
|
3494
|
+
ext?: ExtensionObject;
|
|
3495
|
+
}
|
|
3496
|
+
/**
|
|
3497
|
+
* Error response - operation failed, signal not activated
|
|
3498
|
+
*/
|
|
3499
|
+
export interface ActivateSignalError {
|
|
3500
|
+
/**
|
|
3501
|
+
* Array of errors explaining why activation failed (e.g., platform connectivity issues, signal definition problems, authentication failures)
|
|
3502
|
+
*/
|
|
3503
|
+
errors: Error[];
|
|
3504
|
+
context?: ContextObject;
|
|
3505
|
+
ext?: ExtensionObject;
|
|
3506
|
+
}
|
|
3507
|
+
//# sourceMappingURL=tools.generated.d.ts.map
|