@adcp/sdk API Reference - v14.0.0-beta.6
    Preparing search index...

    Class SingleAgentClient

    Index

    Constructors

    Methods

    • Returns the AdCP protocol version this client is configured to speak.

      Defaults to ADCP_VERSION (the GA version the SDK ships against) unless overridden via new SingleAgentClient(agent, { adcpVersion }).

      Plumbing surface — Stage 2 of the multi-version refactor exposes the configured value but does not yet vary validator/schema selection by version. Wire-shape adapters key off this method in subsequent stages.

      Returns string

    • Handle webhook from agent (async task status updates and completions)

      Accepts webhook payloads from both MCP and A2A protocols:

      1. MCP: MCPWebhookPayload envelope with AdCP data in .result field
      2. A2A: Native Task/TaskStatusUpdateEvent with AdCP data in either:
        • status.message.parts[].data (for status updates)
        • artifacts (for task completion, per A2A spec)

      The method normalizes both formats so handlers receive the unwrapped AdCP response data (AdCPAsyncResponseData), not the raw protocol structure.

      Parameters

      • payload: MCPWebhookPayload | Task | TaskStatusUpdateEvent

        Protocol-specific webhook payload (MCPWebhookPayload | Task | TaskStatusUpdateEvent)

      • taskType: string

        Task type (e.g create_media_buy) from url param or url part of the webhook delivery

      • operationId: string

        Operation id (e.g used for client app to track the operation) from the param or url part of the webhook delivery

      • Optionalsignature: WebhookHeaderValue

        X-ADCP-Signature header (format: "sha256=...")

      • Optionaltimestamp: WebhookHeaderValue

        X-ADCP-Timestamp header (Unix timestamp)

      • OptionalrawBody: string | Uint8Array<ArrayBufferLike> | Buffer<ArrayBufferLike>

      Returns Promise<boolean>

      Whether webhook was handled successfully

      import { verifyWebhookRequest } from '@adcp/sdk/webhooks';

      app.post('/webhook/:taskType', async (req, res) => {
      try {
      const check = verifyWebhookRequest({
      rawBody: req.rawBody,
      headers: req.headers,
      globalSecret: process.env.WEBHOOK_SECRET,
      });
      if (!check.ok) return res.status(401).json({ error: check.reason });

      const handled = await client.handleWebhook(
      req.body,
      req.params.taskType,
      req.params.operationId,
      check.signature,
      check.timestamp,
      req.rawBody
      );
      res.status(200).json({ received: handled });
      } catch (error) {
      res.status(401).json({ error: error.message });
      }
      });
    • Verify and normalize an inbound webhook without dispatching handlers.

      This is the lower-level receiver primitive for integrations that need to map malformed webhooks to precise HTTP responses. It verifies the mode selected by the trusted outbound registration (RFC 9421 by default, or legacy HMAC when webhookSecret was used), parses raw JSON bodies, validates the transport envelope shape, and returns the canonicalized AdCP result plus routing metadata. Legacy wire inspection is intentionally confined to the transport adapter and is not returned by this primary API.

      Parameters

      Returns Promise<WebhookParseResult>

    • Generate webhook URL using macro substitution

      Parameters

      • taskType: string

        Type of task (e.g., 'get_products', 'media_buy_delivery')

      • operationId: string

        Operation ID for this request

      Returns string

      Full webhook URL with macros replaced

      // With template: "https://myapp.com/webhook/{task_type}/{agent_id}/{operation_id}"
      const webhookUrl = client.getWebhookUrl('sync_creatives', 'op_123');
      // Returns: https://myapp.com/webhook/sync_creatives/agent_x/op_123

      // With template: "https://myapp.com/webhook?agent={agent_id}&op={operation_id}"
      const webhookUrl = client.getWebhookUrl('sync_creatives', 'op_123');
      // Returns: https://myapp.com/webhook?agent=agent_x&op=op_123
    • Create an HTTP webhook handler that automatically verifies signatures

      This helper creates a standard HTTP handler (Express/Next.js/etc.) that:

      • Reads the full header bag so duplicate/conflicting signature headers are rejected
      • Verifies the registered RFC 9421 or legacy HMAC signature mode
      • Validates signature freshness and RFC 9421 nonce replay
      • Calls handleWebhook() with proper error handling

      Parameters

      Returns (
          req: WebhookHandlerRequest,
          res: {
              status: (code: number) => { json: (body: unknown) => void };
              json?: unknown;
              writeHead: (code: number, headers: Record<string, string>) => void;
              end: (body: string) => void;
          },
      ) => Promise<void>

      HTTP handler function compatible with Express-style adapters.

      const client = new SingleAgentClient(agent, {
      webhookUrlTemplate: 'https://buyer.example/webhook/{task_type}/{operation_id}',
      handlers: {
      onSyncCreativesStatusChange: async (result) => {
      console.log('Creative synced:', result);
      }
      }
      });

      app.post(
      '/webhook/:task_type/:operation_id',
      express.raw({ type: 'application/json' }),
      client.createWebhookHandler({
      getRequestUrl: req => `https://buyer.example${req.originalUrl}`,
      }),
      );
    • Verify webhook signature using HMAC-SHA256 per AdCP spec.

      HMAC is computed over the raw HTTP body bytes — the exact bytes received on the wire, before JSON parsing. This ensures cross-language interop since different JSON serializers may produce different byte representations of the same logical payload.

      For backward compatibility, a parsed object is still accepted but will be re-serialized with JSON.stringify, which may not match the sender's bytes. Always prefer passing the raw body string.

      Signature format: sha256={hex_signature} Message format: {timestamp}.{raw_body}

      Parameters

      • rawBodyOrPayload: unknown

        Raw HTTP body string (preferred) or parsed payload object (deprecated)

      • signature: WebhookHeaderValue

        X-ADCP-Signature header value (format: "sha256=...")

      • timestamp: WebhookHeaderValue

        X-ADCP-Timestamp header value (Unix timestamp)

      Returns boolean

      true if signature is valid

    • Discover available advertising products

      brand is optional when catalog is absent, including for the brief-only request below. Requests with catalog must include brand; otherwise, include it whenever discovery should account for a specific advertiser.

      Parameters

      • params: CanonicalGetProductsRequest

        Product discovery parameters

      • OptionalinputHandler: InputHandler

        Handler for clarification requests

      • Optionaloptions: CanonicalReadTaskOptions

        Task execution options

      Returns Promise<TaskResult<CanonicalGetProductsResponse>>

      const products = await client.getProducts(
      {
      buying_mode: 'brief',
      brief: 'Find podcast and streaming audio placements for an eco-friendly bike subscription launch'
      },
      (context) => {
      if (context.inputRequest.field === 'budget') return 50000;
      return context.deferToHuman();
      }
      );
    • Parameters

      • params: {
            adcp_version?: string;
            adcp_major_version?: number;
            request_type: "single" | "batch" | "variant";
            creative_manifest?: LegacyCreativeManifest;
            target_capability_id?: string;
            format_id?: LegacyFormatReferenceStructuredObject;
            inputs?: {
                name: string;
                macros?: { [k: string]: string | undefined };
                context_description?: string;
            }[];
            template_id?: string;
            quality?: CreativeQuality;
            output_format?: PreviewOutputFormat;
            item_limit?: number;
            requests?: {
                target_capability_id?: string;
                format_id?: LegacyFormatReferenceStructuredObject;
                creative_manifest?: LegacyCreativeManifest;
                creative_id?: string;
                inputs?: {
                    name: string;
                    macros?: { [k: string]: string
                    | undefined };
                    context_description?: string;
                }[];
                template_id?: string;
                quality?: CreativeQuality;
                output_format?: PreviewOutputFormat;
                item_limit?: number;
            }[];
            variant_id?: string;
            creative_id?: string;
            allow_async?: boolean;
            push_notification_config?: PushNotificationConfig;
            context?: ContextObject;
            ext?: ExtensionObject;
        }
        • Optionaladcp_version?: string

          Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1", "3.1-beta"). On a request: the buyer's release pin — the seller validates against its supported_versions and returns VERSION_UNSUPPORTED on cross-major mismatch, or downshifts to the highest supported release within the same major. On a response: the release the seller actually served — clients SHOULD validate the response against that release's schema, not against their pin. Patches are not negotiated; surface them as build_version on capabilities for operational visibility. When omitted, falls back to adcp_major_version (deprecated) or server default. Buyers SHOULD emit both adcp_version and adcp_major_version through 3.x to remain compatible with sellers that only read the legacy field. NORMALIZATION: SDKs that read full-semver values from bundle metadata (e.g. ComplianceIndex.published_version = "3.1.0-beta.1") MUST normalize to release-precision ("3.1-beta.1") before emitting on the wire — meta-field values are NOT valid wire values.

        • Optionaladcp_major_version?: number

          DEPRECATED in favor of adcp_version (release-precision string). Servers MUST continue to honor this field through 3.x. Removed in 4.0. Original semantics: the AdCP major version the buyer's payloads conform to. Sellers validate against their supported major_versions and return VERSION_UNSUPPORTED if unsupported. When omitted, the seller assumes its highest supported version.

        • request_type: "single" | "batch" | "variant"

          Preview mode. 'single' previews one creative manifest. 'batch' previews multiple creatives in one call. 'variant' replays a post-flight variant by ID.

        • Optionalcreative_manifest?: LegacyCreativeManifest
        • Optionaltarget_capability_id?: string

          Canonical preview-operation selector. Identifies one get_adcp_capabilities creative.supported_formats[].capability_id entry whose operations contains preview. In single mode it selects the renderer for this request; in batch mode it is the default for items that omit their own target_capability_id. When omitted, the agent MAY resolve the renderer only if exactly one advertised preview capability satisfies the manifest's canonical declaration; zero matches or multiple matches MUST be rejected with FORMAT_NOT_SUPPORTED rather than choosing nondeterministically. Mutually exclusive with deprecated format_id.

          ^[a-zA-Z0-9_-]+$

        • Optionalformat_id?: LegacyFormatReferenceStructuredObject
        • Optionalinputs?: {
              name: string;
              macros?: { [k: string]: string | undefined };
              context_description?: string;
          }[]

          Array of input sets for generating multiple preview variants. Each input set defines macros and context values for one preview rendering. Used in single mode.

        • Optionaltemplate_id?: string

          Specific template ID for custom format rendering. Used in single mode.

        • Optionalquality?: CreativeQuality
        • Optionaloutput_format?: PreviewOutputFormat
        • Optionalitem_limit?: number

          Maximum number of catalog items to render per preview variant. Used in single mode. Creative agents SHOULD default to a reasonable sample when omitted and the catalog is large.

          1

        • Optionalrequests?: {
              target_capability_id?: string;
              format_id?: LegacyFormatReferenceStructuredObject;
              creative_manifest?: LegacyCreativeManifest;
              creative_id?: string;
              inputs?: {
                  name: string;
                  macros?: { [k: string]: string | undefined };
                  context_description?: string;
              }[];
              template_id?: string;
              quality?: CreativeQuality;
              output_format?: PreviewOutputFormat;
              item_limit?: number;
          }[]

          Array of preview requests (1-50 items). Required when request_type is 'batch'. Each item follows the single request structure.

        • Optionalvariant_id?: string

          Platform-assigned variant identifier from get_creative_delivery response. Required when request_type is 'variant'.

        • Optionalcreative_id?: string

          Creative-library identifier. In single mode, previews the stored canonical creative without requiring the caller to reconstruct its manifest. Also available as context in variant mode.

        • Optionalallow_async?: boolean

          Opt in to an asynchronous preview response. When true, the creative agent MAY return status 'submitted' with a task_id only when rendering has been handed to a queue or external renderer and will continue after the request connection is released. Active processing on an open connection uses working progress instead. The buyer polls get_task_status for completion. When false or absent, the agent MUST return a synchronous preview response or a terminal protocol error; it MUST NOT return the submitted shape. This field applies to preview_creative only; build_creative already defines its own async lifecycle.

        • Optionalpush_notification_config?: PushNotificationConfig
        • Optionalcontext?: ContextObject
        • Optionalext?: ExtensionObject
      • OptionalinputHandler: InputHandler
      • Optionaloptions: TaskOptions

      Returns Promise<TaskResult<LegacyPreviewCreativeResponse>>

      Migration-only access to format_id-based creative preview.

    • Get media buy status, creative approvals, and optional delivery snapshots

      Parameters

      • params: GetMediaBuysRequest

        Request parameters

      • OptionalinputHandler: InputHandler

        Handler for clarification requests

      • Optionaloptions: CanonicalReadTaskOptions

        Task execution options

      Returns Promise<
          TaskResult<
              {
                  context_id?: string;
                  context?: {};
                  task_id?: string;
                  status: TaskStatus;
                  message?: string;
                  timestamp?: string;
                  replayed?: boolean;
                  adcp_error?: {
                      code: string;
                      message: string;
                      field?: string;
                      suggestion?: string;
                      retry_after?: number;
                      issues?: {
                          pointer: string;
                          message: string;
                          keyword: string;
                          schemaPath?: string;
                          schema_id?: string;
                          discriminator?: { property_name: ...; value: ... }[];
                      }[];
                      details?: {};
                      recovery?: "transient"
                      | "correctable"
                      | "terminal";
                      source?: "producer" | "sdk";
                      sdk_id?: string;
                  };
                  push_notification_config?: {
                      url: string;
                      operation_id?: string;
                      token?: string;
                      authentication?: {
                          schemes: [AuthenticationScheme];
                          credentials: string;
                      };
                  };
                  governance_context?: string;
                  payload?: {};
                  adcp_version?: string;
                  adcp_major_version?: number;
                  media_buys: {
                      media_buy_id: string;
                      name?: string;
                      accepted_proposal_id?: string;
                      accepted_proposal_terms_digest?: string;
                      accepted_proposal?: {
                          proposal_id: string;
                          proposal_kind: | "new_media_buy"
                          | "media_buy_update"
                          | "media_buy_cancellation";
                          parent_proposal_id?: string;
                          media_buy_id: string;
                          opportunity_id?: string;
                          base_media_buy_revision?: number;
                          proposal_status: "accepted";
                          accepted_at?: string;
                          expires_at?: string;
                          name: string;
                          description?: string;
                          brief_alignment?: string;
                          commercial_terms: {
                              source_feed_version?: string;
                              source_pricing_version?: string;
                              brand: {
                                  domain: string;
                                  brand_id?: string;
                                  countries?: [(...), ...(...)[]];
                              };
                              advertiser_industry?: AdvertiserIndustry;
                              purchases: [
                                  {
                                      product_id: string;
                                      pricing_option_id: string;
                                      pricing?: (...)
                                      | (...);
                                      format_option_refs?: (...) | (...);
                                      catalog_ids?: (...) | (...);
                                      budget?: (...) | (...);
                                      daily_budget_cap?: (...) | (...);
                                      min_spend_target?: (...) | (...);
                                      impressions?: (...) | (...);
                                      start_time?: (...) | (...);
                                      end_time?: (...) | (...);
                                      pacing?: (...) | (...);
                                      bidding?: (...) | (...);
                                      targeting_overlay?: (...) | (...);
                                      optimization_goals?: (...) | (...);
                                      audience_evidence_requirements?: (...) | (...);
                                      audience_evidence_pins?: (...) | (...);
                                      agency_estimate_number?: (...) | (...);
                                      context?: (...) | (...);
                                      ext?: (...) | (...);
                                      measurement_terms?: (...) | (...);
                                      performance_standards?: (...) | (...);
                                  },
                                  ...{
                                      product_id: string;
                                      pricing_option_id: string;
                                      pricing?: (...)
                                      | (...);
                                      format_option_refs?: (...) | (...);
                                      catalog_ids?: (...) | (...);
                                      budget?: (...) | (...);
                                      daily_budget_cap?: (...) | (...);
                                      min_spend_target?: (...) | (...);
                                      impressions?: (...) | (...);
                                      start_time?: (...) | (...);
                                      end_time?: (...) | (...);
                                      pacing?: (...) | (...);
                                      bidding?: (...) | (...);
                                      targeting_overlay?: (...) | (...);
                                      optimization_goals?: (...) | (...);
                                      audience_evidence_requirements?: (...) | (...);
                                      audience_evidence_pins?: (...) | (...);
                                      agency_estimate_number?: (...) | (...);
                                      context?: (...) | (...);
                                      ext?: (...) | (...);
                                      measurement_terms?: (...) | (...);
                                      performance_standards?: (...) | (...);
                                  }[],
                              ];
                              start_time: string;
                              end_time: string;
                              total_budget?: { amount: number; currency: string };
                              daily_budget_cap?: number;
                              budget_cap_timezone?: string;
                              budget_allocation?:
                                  | { mode: "fixed" }
                                  | {
                                      mode: "seller_optimized";
                                      optimization_goals: [(...), ...(...)[]];
                                  };
                              pacing?: Pacing;
                              bidding?: {
                                  automatic?: (...)
                                  | (...);
                                  bid_amount?: (...) | (...);
                                  max_bid?: (...) | (...);
                                  cost_per?: (...) | (...);
                                  roas?: (...) | (...);
                              };
                              invoice_recipient?: {
                                  legal_name: string;
                                  vat_id?: (...)
                                  | (...);
                                  tax_id?: (...) | (...);
                                  registration_number?: (...) | (...);
                                  address?: (...) | (...);
                                  contacts?: (...) | (...);
                                  bank?: (...) | (...);
                                  ext?: (...) | (...);
                              };
                              purchase_order_ref?: string;
                              agency_estimate_number?: string;
                              reporting_commitments?: [
                                  { purchase_index: ...; metrics: ... },
                                  ...{ purchase_index: ...; metrics: ... }[],
                              ];
                              cancellation_terms?: {
                                  effective_at: string;
                                  fee?: (...) | (...);
                                  reason?: (...) | (...);
                              };
                          };
                          terms_digest: string;
                          insertion_order?: {
                              io_id: string;
                              terms?: {
                                  advertiser?: ...;
                                  publisher?: ...;
                                  total_budget?: ...;
                                  flight_start?: ...;
                                  flight_end?: ...;
                                  payment_terms?: ...;
                              };
                              terms_url?: string;
                              signing_url?: string;
                              requires_signature: boolean;
                          };
                      };
                      account?: {
                          account_id: string;
                          name: string;
                          advertiser?: string;
                          billing_proxy?: string;
                          status: AccountStatus;
                          brand?: {
                              domain: string;
                              brand_id?: string;
                              countries?: (...)[];
                              industries?: (...)[];
                              data_subject_contestation?: {
                                  url?: ...;
                                  email?: ...;
                                  languages?: ...;
                              };
                              brand_kit_override?: {
                                  logo?: ...;
                                  colors?: ...;
                                  voice?: ...;
                                  tagline?: ...;
                              };
                          };
                          operator?: string;
                          operator_unit?: { id: string; name?: string };
                          revision?: number;
                          identity_change?:
                              | {
                                  status: "pending_approval";
                                  requested_operator_identity: {
                                      operator: string;
                                      operator_unit?: (...)
                                      | (...);
                                  };
                                  requested_at?: string;
                              }
                              | {
                                  status: "rejected";
                                  requested_operator_identity: {
                                      operator: string;
                                      operator_unit?: (...)
                                      | (...);
                                  };
                                  requested_at?: string;
                                  reason: string;
                              };
                          currency?: string;
                          timezone?: string;
                          billing?: BillingParty;
                          billing_entity?: {
                              legal_name: string;
                              vat_id?: string;
                              tax_id?: string;
                              registration_number?: string;
                              address?: {
                                  street: ...;
                                  city: ...;
                                  postal_code: ...;
                                  region?: ...;
                                  country: ...;
                              };
                              contacts?: (...)[];
                              bank?: {
                                  account_holder: ...;
                                  iban?: ...;
                                  bic?: ...;
                                  routing_number?: ...;
                                  account_number?: ...;
                              };
                              ext?: { [key: ...]: ... };
                          };
                          destination_billing_entity?: {};
                          rate_card?: string;
                          payment_terms?: PaymentTerms;
                          credit_limit?: { amount: number; currency: string };
                          setup?: { url?: string; message: string; expires_at?: string };
                          account_scope?: AccountScope;
                          governance_agents?: [{ url: string }];
                          reporting_bucket?: {
                              protocol: CloudStorageProtocol;
                              bucket: string;
                              prefix?: string;
                              region?: string;
                              format?: "jsonl" | "csv" | "parquet" | "avro" | "orc";
                              compression?: "none" | "gzip";
                              file_retention_days: number;
                              setup_instructions?: string;
                          };
                          sandbox?: boolean;
                          notification_configs?: | []
                          | [
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                          ]
                          | [
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                          ]
                          | [
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                          ]
                          | [
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                          ]
                          | [
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                          ]
                          | [
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                          ]
                          | [
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                          ]
                          | [
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                          ]
                          | [
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                          ]
                          | [
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                          ]
                          | [
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                          ]
                          | [
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                          ]
                          | [
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                          ]
                          | [
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                          ]
                          | [
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                          ]
                          | [
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                              {
                                  subscriber_id: string;
                                  url: string;
                                  event_types: [(...), ...(...)[]];
                                  product_payload_view?: (...) | (...) | (...);
                                  authentication?: (...) | (...);
                                  active?: (...) | (...) | (...);
                                  ext?: (...) | (...);
                              },
                          ];
                          webhook_activity?: {
                              idempotency_key: string;
                              notification_id?: (...)
                              | (...);
                              subscriber_id?: (...) | (...);
                              fired_at: string;
                              completed_at?: (...) | (...) | (...);
                              notification_type: NotificationType;
                              sequence_number?: (...) | (...);
                              attempt: number;
                              status: (...) | (...) | (...) | (...) | (...);
                              url: string;
                              http_status_code?: (...) | (...) | (...);
                              response_time_ms?: (...) | (...) | (...);
                              payload_size_bytes?: (...) | (...);
                              error_message?: (...) | (...) | (...);
                              ext?: (...) | (...);
                          }[];
                          ext?: { [key: string]: unknown };
                      };
                      invoice_recipient?: {
                          legal_name: string;
                          vat_id?: string;
                          tax_id?: string;
                          registration_number?: string;
                          address?: {
                              street: string;
                              city: string;
                              postal_code: string;
                              region?: string;
                              country: string;
                          };
                          contacts?: {
                              role: (...)
                              | (...)
                              | (...)
                              | (...);
                              name?: (...) | (...);
                              email?: (...) | (...);
                              phone?: (...) | (...);
                          }[];
                          bank?: {
                              account_holder: string;
                              iban?: string;
                              bic?: string;
                              routing_number?: string;
                              account_number?: string;
                          };
                          ext?: { [key: string]: unknown };
                      };
                      status: MediaBuyStatus;
                      status_as_of?: string
                      | null;
                      health?: "ok" | "impaired";
                      impairments?: {
                          impairment_id: string;
                          resource_type:
                              | "creative"
                              | "property"
                              | "audience"
                              | "catalog_item"
                              | "event_source";
                          resource_id: string;
                          package_ids: [string, ...string[]];
                          transition: { from?: string; to: ImpairmentOfflineState };
                          reason_code: ImpairmentReasonCode;
                          reason?: string;
                          observed_at: string;
                          remediation?: string;
                      }[];
                      rejection_reason?: string;
                      currency: string;
                      total_budget?: number;
                      daily_budget_cap?: number;
                      budget_cap_timezone?: string;
                      budget_allocation?: | { mode: "fixed" }
                      | {
                          mode: "seller_optimized";
                          optimization_goals: [
                              | {
                                  kind: "metric";
                                  metric: | (...)
                                  | (...)
                                  | (...)
                                  | (...)
                                  | (...)
                                  | (...)
                                  | (...)
                                  | (...)
                                  | (...)
                                  | (...)
                                  | (...);
                                  reach_unit?: (...) | (...);
                                  target_frequency?: (...) | (...);
                                  view_duration_seconds?: (...) | (...);
                                  target?: (...) | (...) | (...);
                                  priority?: (...) | (...);
                              }
                              | {
                                  kind: "event";
                                  event_sources: [(...), ...(...)[]];
                                  target?: (...) | (...) | (...) | (...);
                                  attribution_window?: (...) | (...);
                                  priority?: (...) | (...);
                              }
                              | {
                                  kind: "vendor_metric";
                                  vendor: {
                                      domain: ...;
                                      brand_id?: ...;
                                      countries?: ...;
                                      industries?: ...;
                                      data_subject_contestation?: ...;
                                      brand_kit_override?: ...;
                                  };
                                  metric_id: string;
                                  target?: (...)
                                  | (...)
                                  | (...);
                                  priority?: (...) | (...);
                              },
                              ...(
                                  | {
                                      kind: "metric";
                                      metric: | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...);
                                      reach_unit?: (...) | (...);
                                      target_frequency?: (...) | (...);
                                      view_duration_seconds?: (...) | (...);
                                      target?: (...) | (...) | (...);
                                      priority?: (...) | (...);
                                  }
                                  | {
                                      kind: "event";
                                      event_sources: [(...), ...(...)[]];
                                      target?: (...) | (...) | (...) | (...);
                                      attribution_window?: (...) | (...);
                                      priority?: (...) | (...);
                                  }
                                  | {
                                      kind: "vendor_metric";
                                      vendor: {
                                          domain: ...;
                                          brand_id?: ...;
                                          countries?: ...;
                                          industries?: ...;
                                          data_subject_contestation?: ...;
                                          brand_kit_override?: ...;
                                      };
                                      metric_id: string;
                                      target?: (...)
                                      | (...)
                                      | (...);
                                      priority?: (...) | (...);
                                  }
                              )[],
                          ];
                      };
                      pacing?: Pacing;
                      bidding?: {
                          automatic?: true;
                          bid_amount?: number;
                          max_bid?: number;
                          cost_per?: { amount: number; strength: "cap"
                          | "target" };
                          roas?: { value: number; strength: "target" | "floor" };
                      };
                      start_time?: string;
                      end_time?: string;
                      creative_deadline?: string;
                      confirmed_at?: string
                      | null;
                      cancellation?: {
                          canceled_at: string;
                          canceled_by: CanceledBy;
                          reason?: string;
                      };
                      revision?: number;
                      created_at?: string;
                      updated_at?: string;
                      context?: {};
                      valid_actions?: MediaBuyValidAction[];
                      available_actions?: (
                          | {
                              action: MediaBuyValidAction;
                              mode: MediaBuyActionMode;
                              task?: "sync_creatives"
                              | "control_media_buy"
                              | "refine_proposals";
                              sla?: { response_max?: ...; completion_max?: ... };
                              terms_ref?: string;
                          }
                          | {
                              task: "control_media_buy";
                              action: | "pause"
                              | "resume"
                              | "cancel"
                              | "increase_budget"
                              | "decrease_budget"
                              | "reallocate_budget"
                              | "update_budget_allocation"
                              | "update_targeting"
                              | "update_pacing"
                              | "update_bidding"
                              | "update_frequency_caps"
                              | "update_catalog_assignments"
                              | "update_keywords"
                              | "update_optimization_goals"
                              | "update_impression_goal"
                              | "update_spend_target"
                              | "update_reporting_webhook"
                              | "remove_packages"
                              | "update_name";
                              mode: CanonicalMediaBuyActionMode;
                              sla?: { response_max?: ...; completion_max?: ... };
                              terms_ref?: string;
                          }
                          | {
                              task: "refine_proposals";
                              action: | "cancel"
                              | "extend_flight"
                              | "shorten_flight"
                              | "update_flight_dates"
                              | "increase_budget"
                              | "decrease_budget"
                              | "reallocate_budget"
                              | "update_budget_allocation"
                              | "update_targeting"
                              | "update_pacing"
                              | "update_bidding"
                              | "update_frequency_caps"
                              | "add_packages"
                              | "remove_packages";
                              mode: CanonicalMediaBuyActionMode;
                              sla?: { response_max?: ...; completion_max?: ... };
                              terms_ref?: string;
                          }
                          | {
                              task: "sync_creatives";
                              action: | "replace_creative"
                              | "update_creative_assignments"
                              | "remove_creative";
                              mode: CanonicalMediaBuyActionMode;
                              sla?: { response_max?: ...; completion_max?: ... };
                              terms_ref?: string;
                          }
                      )[];
                      webhook_activity?: {
                          idempotency_key: string;
                          notification_id?: string;
                          subscriber_id?: string;
                          fired_at: string;
                          completed_at?: string
                          | null;
                          notification_type: NotificationType;
                          sequence_number?: number;
                          attempt: number;
                          status:
                              | "failed"
                              | "pending"
                              | "success"
                              | "timeout"
                              | "connection_error";
                          url: string;
                          http_status_code?: number
                          | null;
                          response_time_ms?: number | null;
                          payload_size_bytes?: number;
                          error_message?: string | null;
                          ext?: { [key: string]: unknown };
                      }[];
                      history?: {
                          revision: number;
                          timestamp: string;
                          actor?: string;
                          action: string;
                          summary?: string;
                          package_id?: string;
                          ext?: { [key: string]: unknown };
                      }[];
                      packages: {
                          package_id: string;
                          product_id?: string;
                          budget?: number;
                          min_spend_target?: number;
                          daily_budget_cap?: number;
                          currency?: string;
                          bid_price?: number;
                          bidding?: {
                              automatic?: true;
                              bid_amount?: number;
                              max_bid?: number;
                              cost_per?: { amount: ...; strength: ... };
                              roas?: { value: ...; strength: ... };
                          };
                          optimization_goals?: (
                              | {
                                  kind: ...;
                                  metric: ...;
                                  reach_unit?: ...;
                                  target_frequency?: ...;
                                  view_duration_seconds?: ...;
                                  target?: ...;
                                  priority?: ...;
                              }
                              | {
                                  kind: ...;
                                  event_sources: ...;
                                  target?: ...;
                                  attribution_window?: ...;
                                  priority?: ...;
                              }
                              | {
                                  kind: ...;
                                  vendor: ...;
                                  metric_id: ...;
                                  target?: ...;
                                  priority?: ...;
                              }
                          )[];
                          format_option_refs?: (
                              | { scope: ...; publisher_domain: ...; format_option_id: ... }
                              | { scope: ...; format_option_id: ...; publisher_domain?: ... }
                          )[];
                          format_kind?: CanonicalFormatKind;
                          params?: {};
                          impressions?: number;
                          pacing?: Pacing;
                          targeting_overlay?: {
                              geo_countries?: [(...), ...(...)[]];
                              geo_countries_exclude?: [(...), ...(...)[]];
                              geo_regions?: [(...), ...(...)[]];
                              geo_regions_exclude?: [(...), ...(...)[]];
                              geo_metros?: [(...), ...(...)[]];
                              geo_metros_exclude?: [(...), ...(...)[]];
                              geo_postal_areas?: [(...), ...(...)[]];
                              geo_postal_areas_exclude?: [(...), ...(...)[]];
                              geo_places?: [(...), ...(...)[]];
                              geo_places_exclude?: [(...), ...(...)[]];
                              daypart_targets?: [(...), ...(...)[]];
                              axe_include_segment?: string;
                              axe_exclude_segment?: string;
                              audience_include?: [(...), ...(...)[]];
                              audience_exclude?: [(...), ...(...)[]];
                              signal_targeting_groups?: { operator: ...; groups: ... };
                              signal_targeting?: [(...), ...(...)[]];
                              demographics?: { age: ... };
                              frequency_cap?: {
                                  suppress?: ...;
                                  suppress_minutes?: ...;
                                  max_impressions?: ...;
                                  per?: ...;
                                  window?: ...;
                              };
                              property_list?: { agent_url: ...; list_id: ...; auth_token?: ... };
                              property_list_exclude?: {
                                  agent_url: ...;
                                  list_id: ...;
                                  auth_token?: ...;
                              };
                              collection_list?: { agent_url: ...; list_id: ...; auth_token?: ... };
                              collection_list_exclude?: {
                                  agent_url: ...;
                                  list_id: ...;
                                  auth_token?: ...;
                              };
                              placement_selection?: | { mode: ...; placement_refs: ...; ext?: ... }
                              | { mode: ...; ext?: ... };
                              age_restriction?: {
                                  min: ...;
                                  verification_required?: ...;
                                  accepted_methods?: ...;
                              };
                              device_platform?: [(...), ...(...)[]];
                              device_platform_exclude?: [(...), ...(...)[]];
                              device_type?: [(...), ...(...)[]];
                              device_type_exclude?: [(...), ...(...)[]];
                              browser?: [(...), ...(...)[]];
                              browser_exclude?: [(...), ...(...)[]];
                              store_catchments?: [(...), ...(...)[]];
                              geo_proximity?: [(...), ...(...)[]];
                              language?: [(...), ...(...)[]];
                              keyword_targets?: [(...), ...(...)[]];
                              negative_keywords?: [(...), ...(...)[]];
                          };
                          targeting_resolution?: {
                              demographics: {
                                  requested: { age: ... };
                                  applied: { age: ... };
                                  equivalent: true;
                                  execution: (...) | (...) | (...);
                                  applied_bases?: (...) | (...);
                                  applied_verification_methods?: (...) | (...);
                                  ext?: (...) | (...);
                              };
                              ext?: { [key: ...]: ... };
                          };
                          start_time?: string;
                          end_time?: string;
                          paused?: boolean;
                          canceled?: boolean;
                          cancellation?: {
                              canceled_at: string;
                              canceled_by: CanceledBy;
                              reason?: string;
                          };
                          creative_deadline?: string;
                          context?: {};
                          creative_approvals?: {
                              creative_id: string;
                              approval_status?: (...)
                              | (...);
                              rejection_reason?: (...) | (...);
                              approval_scopes?: (...) | (...);
                              indicators?: (...) | (...);
                              indicator_types_evaluated?: (...) | (...);
                              indicators_as_of?: (...) | (...);
                              indicators_evaluated_scope?: (...) | (...);
                          }[];
                          formats_to_provide?: (
                              | {
                                  format_option_id?: ...;
                                  publisher_domain?: ...;
                                  display_name?: ...;
                                  sample_render_url?: ...;
                                  applies_to_channels?: ...;
                                  seller_preference?: ...;
                                  locale_policy?: ...;
                                  canonical_formats_only?: ...;
                                  experimental?: ...;
                                  format_shape?: ...;
                                  format_schema?: ...;
                                  format_kind: ...;
                                  params: ...;
                              }
                              | {
                                  format_option_id?: ...;
                                  publisher_domain?: ...;
                                  display_name?: ...;
                                  sample_render_url?: ...;
                                  applies_to_channels?: ...;
                                  seller_preference?: ...;
                                  locale_policy?: ...;
                                  canonical_formats_only?: ...;
                                  experimental?: ...;
                                  format_shape?: ...;
                                  format_schema?: ...;
                                  format_kind: ...;
                                  params: ...;
                              }
                              | {
                                  format_option_id?: ...;
                                  publisher_domain?: ...;
                                  display_name?: ...;
                                  sample_render_url?: ...;
                                  applies_to_channels?: ...;
                                  seller_preference?: ...;
                                  locale_policy?: ...;
                                  canonical_formats_only?: ...;
                                  experimental?: ...;
                                  format_shape?: ...;
                                  format_schema?: ...;
                                  format_kind: ...;
                                  params: ...;
                              }
                              | {
                                  format_option_id?: ...;
                                  publisher_domain?: ...;
                                  display_name?: ...;
                                  sample_render_url?: ...;
                                  applies_to_channels?: ...;
                                  seller_preference?: ...;
                                  locale_policy?: ...;
                                  canonical_formats_only?: ...;
                                  experimental?: ...;
                                  format_shape?: ...;
                                  format_schema?: ...;
                                  format_kind: ...;
                                  params: ...;
                              }
                              | {
                                  format_option_id?: ...;
                                  publisher_domain?: ...;
                                  display_name?: ...;
                                  sample_render_url?: ...;
                                  applies_to_channels?: ...;
                                  seller_preference?: ...;
                                  locale_policy?: ...;
                                  canonical_formats_only?: ...;
                                  experimental?: ...;
                                  format_shape?: ...;
                                  format_schema?: ...;
                                  format_kind: ...;
                                  params: ...;
                              }
                              | {
                                  format_option_id?: ...;
                                  publisher_domain?: ...;
                                  display_name?: ...;
                                  sample_render_url?: ...;
                                  applies_to_channels?: ...;
                                  seller_preference?: ...;
                                  locale_policy?: ...;
                                  canonical_formats_only?: ...;
                                  experimental?: ...;
                                  format_shape?: ...;
                                  format_schema?: ...;
                                  format_kind: ...;
                                  params: ...;
                              }
                              | {
                                  format_option_id?: ...;
                                  publisher_domain?: ...;
                                  display_name?: ...;
                                  sample_render_url?: ...;
                                  applies_to_channels?: ...;
                                  seller_preference?: ...;
                                  locale_policy?: ...;
                                  canonical_formats_only?: ...;
                                  experimental?: ...;
                                  format_shape?: ...;
                                  format_schema?: ...;
                                  format_kind: ...;
                                  params: ...;
                              }
                              | {
                                  format_option_id?: ...;
                                  publisher_domain?: ...;
                                  display_name?: ...;
                                  sample_render_url?: ...;
                                  applies_to_channels?: ...;
                                  seller_preference?: ...;
                                  locale_policy?: ...;
                                  canonical_formats_only?: ...;
                                  experimental?: ...;
                                  format_shape?: ...;
                                  format_schema?: ...;
                                  format_kind: ...;
                                  params: ...;
                              }
                              | {
                                  format_option_id?: ...;
                                  publisher_domain?: ...;
                                  display_name?: ...;
                                  sample_render_url?: ...;
                                  applies_to_channels?: ...;
                                  seller_preference?: ...;
                                  locale_policy?: ...;
                                  canonical_formats_only?: ...;
                                  experimental?: ...;
                                  format_shape?: ...;
                                  format_schema?: ...;
                                  format_kind: ...;
                                  params: ...;
                              }
                              | {
                                  format_option_id?: ...;
                                  publisher_domain?: ...;
                                  display_name?: ...;
                                  sample_render_url?: ...;
                                  applies_to_channels?: ...;
                                  seller_preference?: ...;
                                  locale_policy?: ...;
                                  canonical_formats_only?: ...;
                                  experimental?: ...;
                                  format_shape?: ...;
                                  format_schema?: ...;
                                  format_kind: ...;
                                  params: ...;
                              }
                              | {
                                  format_option_id?: ...;
                                  publisher_domain?: ...;
                                  display_name?: ...;
                                  sample_render_url?: ...;
                                  applies_to_channels?: ...;
                                  seller_preference?: ...;
                                  locale_policy?: ...;
                                  canonical_formats_only?: ...;
                                  experimental?: ...;
                                  format_shape?: ...;
                                  format_schema?: ...;
                                  format_kind: ...;
                                  params: ...;
                              }
                              | {
                                  format_option_id?: ...;
                                  publisher_domain?: ...;
                                  display_name?: ...;
                                  sample_render_url?: ...;
                                  applies_to_channels?: ...;
                                  seller_preference?: ...;
                                  locale_policy?: ...;
                                  canonical_formats_only?: ...;
                                  experimental?: ...;
                                  format_shape?: ...;
                                  format_schema?: ...;
                                  format_kind: ...;
                                  params: ...;
                              }
                              | {
                                  format_option_id?: ...;
                                  publisher_domain?: ...;
                                  display_name?: ...;
                                  sample_render_url?: ...;
                                  applies_to_channels?: ...;
                                  seller_preference?: ...;
                                  locale_policy?: ...;
                                  canonical_formats_only?: ...;
                                  experimental?: ...;
                                  format_shape?: ...;
                                  format_schema?: ...;
                                  format_kind: ...;
                                  params: ...;
                              }
                          )[];
                          formats_pending?: (
                              | {
                                  format_option_id?: ...;
                                  publisher_domain?: ...;
                                  display_name?: ...;
                                  sample_render_url?: ...;
                                  applies_to_channels?: ...;
                                  seller_preference?: ...;
                                  locale_policy?: ...;
                                  canonical_formats_only?: ...;
                                  experimental?: ...;
                                  format_shape?: ...;
                                  format_schema?: ...;
                                  format_kind: ...;
                                  params: ...;
                              }
                              | {
                                  format_option_id?: ...;
                                  publisher_domain?: ...;
                                  display_name?: ...;
                                  sample_render_url?: ...;
                                  applies_to_channels?: ...;
                                  seller_preference?: ...;
                                  locale_policy?: ...;
                                  canonical_formats_only?: ...;
                                  experimental?: ...;
                                  format_shape?: ...;
                                  format_schema?: ...;
                                  format_kind: ...;
                                  params: ...;
                              }
                              | {
                                  format_option_id?: ...;
                                  publisher_domain?: ...;
                                  display_name?: ...;
                                  sample_render_url?: ...;
                                  applies_to_channels?: ...;
                                  seller_preference?: ...;
                                  locale_policy?: ...;
                                  canonical_formats_only?: ...;
                                  experimental?: ...;
                                  format_shape?: ...;
                                  format_schema?: ...;
                                  format_kind: ...;
                                  params: ...;
                              }
                              | {
                                  format_option_id?: ...;
                                  publisher_domain?: ...;
                                  display_name?: ...;
                                  sample_render_url?: ...;
                                  applies_to_channels?: ...;
                                  seller_preference?: ...;
                                  locale_policy?: ...;
                                  canonical_formats_only?: ...;
                                  experimental?: ...;
                                  format_shape?: ...;
                                  format_schema?: ...;
                                  format_kind: ...;
                                  params: ...;
                              }
                              | {
                                  format_option_id?: ...;
                                  publisher_domain?: ...;
                                  display_name?: ...;
                                  sample_render_url?: ...;
                                  applies_to_channels?: ...;
                                  seller_preference?: ...;
                                  locale_policy?: ...;
                                  canonical_formats_only?: ...;
                                  experimental?: ...;
                                  format_shape?: ...;
                                  format_schema?: ...;
                                  format_kind: ...;
                                  params: ...;
                              }
                              | {
                                  format_option_id?: ...;
                                  publisher_domain?: ...;
                                  display_name?: ...;
                                  sample_render_url?: ...;
                                  applies_to_channels?: ...;
                                  seller_preference?: ...;
                                  locale_policy?: ...;
                                  canonical_formats_only?: ...;
                                  experimental?: ...;
                                  format_shape?: ...;
                                  format_schema?: ...;
                                  format_kind: ...;
                                  params: ...;
                              }
                              | {
                                  format_option_id?: ...;
                                  publisher_domain?: ...;
                                  display_name?: ...;
                                  sample_render_url?: ...;
                                  applies_to_channels?: ...;
                                  seller_preference?: ...;
                                  locale_policy?: ...;
                                  canonical_formats_only?: ...;
                                  experimental?: ...;
                                  format_shape?: ...;
                                  format_schema?: ...;
                                  format_kind: ...;
                                  params: ...;
                              }
                              | {
                                  format_option_id?: ...;
                                  publisher_domain?: ...;
                                  display_name?: ...;
                                  sample_render_url?: ...;
                                  applies_to_channels?: ...;
                                  seller_preference?: ...;
                                  locale_policy?: ...;
                                  canonical_formats_only?: ...;
                                  experimental?: ...;
                                  format_shape?: ...;
                                  format_schema?: ...;
                                  format_kind: ...;
                                  params: ...;
                              }
                              | {
                                  format_option_id?: ...;
                                  publisher_domain?: ...;
                                  display_name?: ...;
                                  sample_render_url?: ...;
                                  applies_to_channels?: ...;
                                  seller_preference?: ...;
                                  locale_policy?: ...;
                                  canonical_formats_only?: ...;
                                  experimental?: ...;
                                  format_shape?: ...;
                                  format_schema?: ...;
                                  format_kind: ...;
                                  params: ...;
                              }
                              | {
                                  format_option_id?: ...;
                                  publisher_domain?: ...;
                                  display_name?: ...;
                                  sample_render_url?: ...;
                                  applies_to_channels?: ...;
                                  seller_preference?: ...;
                                  locale_policy?: ...;
                                  canonical_formats_only?: ...;
                                  experimental?: ...;
                                  format_shape?: ...;
                                  format_schema?: ...;
                                  format_kind: ...;
                                  params: ...;
                              }
                              | {
                                  format_option_id?: ...;
                                  publisher_domain?: ...;
                                  display_name?: ...;
                                  sample_render_url?: ...;
                                  applies_to_channels?: ...;
                                  seller_preference?: ...;
                                  locale_policy?: ...;
                                  canonical_formats_only?: ...;
                                  experimental?: ...;
                                  format_shape?: ...;
                                  format_schema?: ...;
                                  format_kind: ...;
                                  params: ...;
                              }
                              | {
                                  format_option_id?: ...;
                                  publisher_domain?: ...;
                                  display_name?: ...;
                                  sample_render_url?: ...;
                                  applies_to_channels?: ...;
                                  seller_preference?: ...;
                                  locale_policy?: ...;
                                  canonical_formats_only?: ...;
                                  experimental?: ...;
                                  format_shape?: ...;
                                  format_schema?: ...;
                                  format_kind: ...;
                                  params: ...;
                              }
                              | {
                                  format_option_id?: ...;
                                  publisher_domain?: ...;
                                  display_name?: ...;
                                  sample_render_url?: ...;
                                  applies_to_channels?: ...;
                                  seller_preference?: ...;
                                  locale_policy?: ...;
                                  canonical_formats_only?: ...;
                                  experimental?: ...;
                                  format_shape?: ...;
                                  format_schema?: ...;
                                  format_kind: ...;
                                  params: ...;
                              }
                          )[];
                          snapshot_unavailable_reason?: SnapshotUnavailableReason;
                          snapshot?: {
                              as_of: string;
                              staleness_seconds: number;
                              impressions: number;
                              spend: number;
                              currency?: string;
                              clicks?: number;
                              pacing_index?: number;
                              delivery_status?: DeliveryStatus;
                              ext?: { [key: ...]: ... };
                          };
                          ext?: { [key: string]: unknown };
                          indicator_types_evaluated?: (
                              | "creative_diversity_low"
                              | "audience_saturation"
                              | "inventory_shortfall_forecast"
                              | "pacing_risk"
                              | "budget_constrained"
                          )[];
                          indicators?: { type?: (...)
                          | (...)
                          | (...)
                          | (...)
                          | (...)
                          | (...) }[];
                      }[];
                      ext?: { [key: string]: unknown };
                      indicator_types_evaluated?: "budget_constrained"[];
                      indicators?: { type?: "budget_constrained" }[];
                  }[];
                  errors?: {
                      code: string;
                      message: string;
                      field?: string;
                      suggestion?: string;
                      retry_after?: number;
                      issues?: {
                          pointer: string;
                          message: string;
                          keyword: string;
                          schemaPath?: string;
                          schema_id?: string;
                          discriminator?: (...)[];
                      }[];
                      details?: {};
                      recovery?: "transient"
                      | "correctable"
                      | "terminal";
                      source?: "producer" | "sdk";
                      sdk_id?: string;
                  }[];
                  pagination?: { has_more: boolean; cursor?: string; total_count?: number };
                  sandbox?: boolean;
                  ext?: { [key: string]: unknown };
              },
          >,
      >

    • Get media buy delivery information

      Parameters

      • params: GetMediaBuyDeliveryRequest

        Delivery information parameters

      • OptionalinputHandler: InputHandler

        Handler for clarification requests

      • Optionaloptions: CanonicalReadTaskOptions

        Task execution options

      Returns Promise<
          TaskResult<
              {
                  context_id?: string;
                  context?: {};
                  task_id?: string;
                  status: TaskStatus;
                  message?: string;
                  timestamp?: string;
                  replayed?: boolean;
                  adcp_error?: {
                      code: string;
                      message: string;
                      field?: string;
                      suggestion?: string;
                      retry_after?: number;
                      issues?: {
                          pointer: string;
                          message: string;
                          keyword: string;
                          schemaPath?: string;
                          schema_id?: string;
                          discriminator?: { property_name: ...; value: ... }[];
                      }[];
                      details?: {};
                      recovery?: "transient"
                      | "correctable"
                      | "terminal";
                      source?: "producer" | "sdk";
                      sdk_id?: string;
                  };
                  push_notification_config?: {
                      url: string;
                      operation_id?: string;
                      token?: string;
                      authentication?: {
                          schemes: [AuthenticationScheme];
                          credentials: string;
                      };
                  };
                  governance_context?: string;
                  payload?: {};
                  adcp_version?: string;
                  adcp_major_version?: number;
                  notification_type?: | "scheduled"
                  | "final"
                  | "delayed"
                  | "adjusted"
                  | "window_update";
                  partial_data?: boolean;
                  unavailable_count?: number;
                  sequence_number?: number;
                  next_expected_at?: string;
                  reporting_period: { start: string; end: string };
                  currency?: string;
                  attribution_window?: {
                      post_click?: {
                          interval: number;
                          unit: "campaign" | "seconds" | "minutes" | "hours" | "days";
                      };
                      post_view?: {
                          interval: number;
                          unit: "campaign"
                          | "seconds"
                          | "minutes"
                          | "hours"
                          | "days";
                      };
                      model?: AttributionModel;
                  };
                  aggregated_totals?: {
                      impressions: number;
                      spend: number;
                      clicks?: number;
                      completed_views?: number;
                      views?: number;
                      conversions?: number;
                      conversion_value?: number;
                      commissionable_value?: number;
                      roas?: number;
                      new_to_brand_rate?: number;
                      cost_per_acquisition?: number;
                      completion_rate?: number
                      | null;
                      reach?: number;
                      reach_unit?: ReachUnit;
                      frequency?: number;
                      media_buy_count: number;
                      metric_aggregates?: (
                          | {
                              scope: "standard";
                              metric_id: AvailableMetric;
                              qualifier?: {
                                  viewability_standard?: ...;
                                  completion_source?: ...;
                                  attribution_methodology?: ...;
                                  attribution_window?: ...;
                                  lift_dimension?: ...;
                              };
                              value: number;
                              measurable_impressions?: number;
                              viewable_impressions?: number;
                              impressions?: number;
                              completed_views?: number;
                              spend?: number;
                              conversions?: number;
                              conversion_value?: number;
                              clicks?: number;
                          }
                          | {
                              scope: "vendor";
                              vendor: {
                                  domain: string;
                                  brand_id?: (...)
                                  | (...);
                                  countries?: (...) | (...);
                                  industries?: (...) | (...);
                                  data_subject_contestation?: (...) | (...);
                                  brand_kit_override?: (...) | (...);
                              };
                              metric_id: string;
                              qualifier?: {};
                              value: number;
                              measurable_impressions?: number;
                          }
                      )[];
                  };
                  media_buy_deliveries: {
                      media_buy_id: string;
                      status: | "active"
                      | "rejected"
                      | "failed"
                      | "pending"
                      | "completed"
                      | "pending_creatives"
                      | "pending_start"
                      | "paused"
                      | "canceled"
                      | "reporting_delayed";
                      expected_availability?: string;
                      is_adjusted?: boolean;
                      is_final?: boolean;
                      finalized_at?: string;
                      pricing_model?: PricingModel;
                      pacing_index?: number;
                      totals: {
                          impressions?: number;
                          spend?: number;
                          clicks?: number;
                          ctr?: number;
                          views?: number;
                          completed_views?: number;
                          completion_rate?: number
                          | null;
                          conversions?: number;
                          conversion_value?: number;
                          commissionable_value?: number;
                          roas?: number;
                          cost_per_acquisition?: number;
                          new_to_brand_rate?: number;
                          leads?: number;
                          incremental_sales_lift?: number;
                          brand_lift?: number;
                          foot_traffic?: number;
                          conversion_lift?: number;
                          brand_search_lift?: number;
                          plays?: number;
                          by_event_type?: {
                              event_type: EventType;
                              event_source_id?: string;
                              count: number;
                              value?: number;
                          }[];
                          grps?: number;
                          reach?: number;
                          reach_unit?: ReachUnit;
                          reach_window?: {
                              kind: "cumulative"
                              | "period"
                              | "rolling";
                              period?: {
                                  interval: number;
                                  unit: (...) | (...) | (...) | (...) | (...);
                              };
                          };
                          frequency?: number;
                          quartile_data?: | {
                              q1_views?: number;
                              q2_views?: number;
                              q3_views?: number;
                              q4_views?: number;
                          }
                          | null;
                          dooh_metrics?: {
                              loop_plays?: number;
                              screens_used?: number;
                              screen_time_seconds?: number;
                              sov_achieved?: number;
                              calculation_notes?: string;
                              venue_breakdown?: {
                                  venue_id: ...;
                                  venue_name?: ...;
                                  venue_type?: ...;
                                  impressions: ...;
                                  loop_plays?: ...;
                                  screens_used?: ...;
                              }[];
                          };
                          viewability?: {
                              vendor?: {
                                  domain: string;
                                  brand_id?: (...)
                                  | (...);
                                  countries?: (...) | (...);
                                  industries?: (...) | (...);
                                  data_subject_contestation?: (...) | (...);
                                  brand_kit_override?: (...) | (...);
                              };
                              measurable_impressions?: number;
                              viewable_impressions?: number;
                              viewable_rate?: number;
                              viewed_seconds?: number;
                              standard?: ViewabilityStandard;
                          };
                          engagements?: number;
                          follows?: number;
                          saves?: number;
                          profile_visits?: number;
                          engagement_rate?: number;
                          cost_per_click?: number;
                          cost_per_completed_view?: number;
                          cpm?: number;
                          downloads?: number;
                          units_sold?: number;
                          new_to_brand_units?: number;
                          by_action_source?: {
                              action_source: ActionSource;
                              event_source_id?: string;
                              count: number;
                              value?: number;
                          }[];
                          vendor_metric_values?: {
                              vendor: {
                                  domain: string;
                                  brand_id?: (...)
                                  | (...);
                                  countries?: (...) | (...);
                                  industries?: (...) | (...);
                                  data_subject_contestation?: (...) | (...);
                                  brand_kit_override?: (...) | (...);
                              };
                              metric_id: string;
                              value: number;
                              unit?: string;
                              measurable_impressions?: number;
                              breakdown?: {};
                          }[];
                          effective_rate?: number;
                      };
                      by_package: {
                          impressions?: number;
                          spend?: number;
                          clicks?: number;
                          ctr?: number;
                          views?: number;
                          completed_views?: number;
                          completion_rate?: number
                          | null;
                          conversions?: number;
                          conversion_value?: number;
                          commissionable_value?: number;
                          roas?: number;
                          cost_per_acquisition?: number;
                          new_to_brand_rate?: number;
                          leads?: number;
                          incremental_sales_lift?: number;
                          brand_lift?: number;
                          foot_traffic?: number;
                          conversion_lift?: number;
                          brand_search_lift?: number;
                          plays?: number;
                          by_event_type?: {
                              event_type: EventType;
                              event_source_id?: (...) | (...);
                              count: number;
                              value?: (...) | (...);
                          }[];
                          grps?: number;
                          reach?: number;
                          reach_unit?: ReachUnit;
                          reach_window?: {
                              kind: "cumulative"
                              | "period"
                              | "rolling";
                              period?: { interval: ...; unit: ... };
                          };
                          frequency?: number;
                          quartile_data?: | {
                              q1_views?: number;
                              q2_views?: number;
                              q3_views?: number;
                              q4_views?: number;
                          }
                          | null;
                          dooh_metrics?: {
                              loop_plays?: number;
                              screens_used?: number;
                              screen_time_seconds?: number;
                              sov_achieved?: number;
                              calculation_notes?: string;
                              venue_breakdown?: (...)[];
                          };
                          viewability?: {
                              vendor?: {
                                  domain: ...;
                                  brand_id?: ...;
                                  countries?: ...;
                                  industries?: ...;
                                  data_subject_contestation?: ...;
                                  brand_kit_override?: ...;
                              };
                              measurable_impressions?: number;
                              viewable_impressions?: number;
                              viewable_rate?: number;
                              viewed_seconds?: number;
                              standard?: ViewabilityStandard;
                          };
                          engagements?: number;
                          follows?: number;
                          saves?: number;
                          profile_visits?: number;
                          engagement_rate?: number;
                          cost_per_click?: number;
                          cost_per_completed_view?: number;
                          cpm?: number;
                          downloads?: number;
                          units_sold?: number;
                          new_to_brand_units?: number;
                          by_action_source?: {
                              action_source: ActionSource;
                              event_source_id?: (...)
                              | (...);
                              count: number;
                              value?: (...) | (...);
                          }[];
                          vendor_metric_values?: {
                              vendor: {
                                  domain: ...;
                                  brand_id?: ...;
                                  countries?: ...;
                                  industries?: ...;
                                  data_subject_contestation?: ...;
                                  brand_kit_override?: ...;
                              };
                              metric_id: string;
                              value: number;
                              unit?: (...)
                              | (...);
                              measurable_impressions?: (...) | (...);
                              breakdown?: (...) | (...);
                          }[];
                          package_id: string;
                          pacing_index?: number;
                          pricing_model?: PricingModel;
                          rate?: number;
                          currency?: string;
                          delivery_status?: DeliveryStatus;
                          paused?: boolean;
                          is_final?: boolean;
                          finalized_at?: string;
                          measurement_window?: string;
                          supersedes_window?: string;
                          missing_metrics?: (
                              | { scope: ...; metric_id: ...; qualifier?: ... }
                              | { scope: ...; vendor: ...; metric_id: ... }
                          )[];
                          by_catalog_item?: {
                              impressions?: (...) | (...);
                              spend?: (...) | (...);
                              clicks?: (...) | (...);
                              ctr?: (...) | (...);
                              views?: (...) | (...);
                              completed_views?: (...) | (...);
                              completion_rate?: (...) | (...) | (...);
                              conversions?: (...) | (...);
                              conversion_value?: (...) | (...);
                              commissionable_value?: (...) | (...);
                              roas?: (...) | (...);
                              cost_per_acquisition?: (...) | (...);
                              new_to_brand_rate?: (...) | (...);
                              leads?: (...) | (...);
                              incremental_sales_lift?: (...) | (...);
                              brand_lift?: (...) | (...);
                              foot_traffic?: (...) | (...);
                              conversion_lift?: (...) | (...);
                              brand_search_lift?: (...) | (...);
                              plays?: (...) | (...);
                              by_event_type?: (...) | (...);
                              grps?: (...) | (...);
                              reach?: (...) | (...);
                              reach_unit?: (...) | (...);
                              reach_window?: (...) | (...);
                              frequency?: (...) | (...);
                              quartile_data?: (...) | (...) | (...);
                              dooh_metrics?: (...) | (...);
                              viewability?: (...) | (...);
                              engagements?: (...) | (...);
                              follows?: (...) | (...);
                              saves?: (...) | (...);
                              profile_visits?: (...) | (...);
                              engagement_rate?: (...) | (...);
                              cost_per_click?: (...) | (...);
                              cost_per_completed_view?: (...) | (...);
                              cpm?: (...) | (...);
                              downloads?: (...) | (...);
                              units_sold?: (...) | (...);
                              new_to_brand_units?: (...) | (...);
                              by_action_source?: (...) | (...);
                              vendor_metric_values?: (...) | (...);
                              content_id?: (...) | (...);
                              content_id_type?: (...) | (...);
                          }[];
                          by_creative?: {
                              impressions?: (...)
                              | (...);
                              spend?: (...) | (...);
                              clicks?: (...) | (...);
                              ctr?: (...) | (...);
                              views?: (...) | (...);
                              completed_views?: (...) | (...);
                              completion_rate?: (...) | (...) | (...);
                              conversions?: (...) | (...);
                              conversion_value?: (...) | (...);
                              commissionable_value?: (...) | (...);
                              roas?: (...) | (...);
                              cost_per_acquisition?: (...) | (...);
                              new_to_brand_rate?: (...) | (...);
                              leads?: (...) | (...);
                              incremental_sales_lift?: (...) | (...);
                              brand_lift?: (...) | (...);
                              foot_traffic?: (...) | (...);
                              conversion_lift?: (...) | (...);
                              brand_search_lift?: (...) | (...);
                              plays?: (...) | (...);
                              by_event_type?: (...) | (...);
                              grps?: (...) | (...);
                              reach?: (...) | (...);
                              reach_unit?: (...) | (...);
                              reach_window?: (...) | (...);
                              frequency?: (...) | (...);
                              quartile_data?: (...) | (...) | (...);
                              dooh_metrics?: (...) | (...);
                              viewability?: (...) | (...);
                              engagements?: (...) | (...);
                              follows?: (...) | (...);
                              saves?: (...) | (...);
                              profile_visits?: (...) | (...);
                              engagement_rate?: (...) | (...);
                              cost_per_click?: (...) | (...);
                              cost_per_completed_view?: (...) | (...);
                              cpm?: (...) | (...);
                              downloads?: (...) | (...);
                              units_sold?: (...) | (...);
                              new_to_brand_units?: (...) | (...);
                              by_action_source?: (...) | (...);
                              vendor_metric_values?: (...) | (...);
                              creative_id: string;
                              weight?: (...) | (...);
                          }[];
                          by_keyword?: {
                              impressions?: (...)
                              | (...);
                              spend?: (...) | (...);
                              clicks?: (...) | (...);
                              ctr?: (...) | (...);
                              views?: (...) | (...);
                              completed_views?: (...) | (...);
                              completion_rate?: (...) | (...) | (...);
                              conversions?: (...) | (...);
                              conversion_value?: (...) | (...);
                              commissionable_value?: (...) | (...);
                              roas?: (...) | (...);
                              cost_per_acquisition?: (...) | (...);
                              new_to_brand_rate?: (...) | (...);
                              leads?: (...) | (...);
                              incremental_sales_lift?: (...) | (...);
                              brand_lift?: (...) | (...);
                              foot_traffic?: (...) | (...);
                              conversion_lift?: (...) | (...);
                              brand_search_lift?: (...) | (...);
                              plays?: (...) | (...);
                              by_event_type?: (...) | (...);
                              grps?: (...) | (...);
                              reach?: (...) | (...);
                              reach_unit?: (...) | (...);
                              reach_window?: (...) | (...);
                              frequency?: (...) | (...);
                              quartile_data?: (...) | (...) | (...);
                              dooh_metrics?: (...) | (...);
                              viewability?: (...) | (...);
                              engagements?: (...) | (...);
                              follows?: (...) | (...);
                              saves?: (...) | (...);
                              profile_visits?: (...) | (...);
                              engagement_rate?: (...) | (...);
                              cost_per_click?: (...) | (...);
                              cost_per_completed_view?: (...) | (...);
                              cpm?: (...) | (...);
                              downloads?: (...) | (...);
                              units_sold?: (...) | (...);
                              new_to_brand_units?: (...) | (...);
                              by_action_source?: (...) | (...);
                              vendor_metric_values?: (...) | (...);
                              keyword?: (...) | (...);
                              match_type?: (...) | (...);
                          }[];
                          by_geo?: {
                              impressions?: (...)
                              | (...);
                              spend?: (...) | (...);
                              clicks?: (...) | (...);
                              ctr?: (...) | (...);
                              views?: (...) | (...);
                              completed_views?: (...) | (...);
                              completion_rate?: (...) | (...) | (...);
                              conversions?: (...) | (...);
                              conversion_value?: (...) | (...);
                              commissionable_value?: (...) | (...);
                              roas?: (...) | (...);
                              cost_per_acquisition?: (...) | (...);
                              new_to_brand_rate?: (...) | (...);
                              leads?: (...) | (...);
                              incremental_sales_lift?: (...) | (...);
                              brand_lift?: (...) | (...);
                              foot_traffic?: (...) | (...);
                              conversion_lift?: (...) | (...);
                              brand_search_lift?: (...) | (...);
                              plays?: (...) | (...);
                              by_event_type?: (...) | (...);
                              grps?: (...) | (...);
                              reach?: (...) | (...);
                              reach_unit?: (...) | (...);
                              reach_window?: (...) | (...);
                              frequency?: (...) | (...);
                              quartile_data?: (...) | (...) | (...);
                              dooh_metrics?: (...) | (...);
                              viewability?: (...) | (...);
                              engagements?: (...) | (...);
                              follows?: (...) | (...);
                              saves?: (...) | (...);
                              profile_visits?: (...) | (...);
                              engagement_rate?: (...) | (...);
                              cost_per_click?: (...) | (...);
                              cost_per_completed_view?: (...) | (...);
                              cpm?: (...) | (...);
                              downloads?: (...) | (...);
                              units_sold?: (...) | (...);
                              new_to_brand_units?: (...) | (...);
                              by_action_source?: (...) | (...);
                              vendor_metric_values?: (...) | (...);
                              geo_level?: (...) | (...);
                              system?: (...) | (...);
                              country?: (...) | (...);
                              geo_code?: (...) | (...);
                              geo_name?: (...) | (...);
                          }[];
                          by_geo_truncated?: boolean;
                          by_device_type?: {
                              impressions?: (...)
                              | (...);
                              spend?: (...) | (...);
                              clicks?: (...) | (...);
                              ctr?: (...) | (...);
                              views?: (...) | (...);
                              completed_views?: (...) | (...);
                              completion_rate?: (...) | (...) | (...);
                              conversions?: (...) | (...);
                              conversion_value?: (...) | (...);
                              commissionable_value?: (...) | (...);
                              roas?: (...) | (...);
                              cost_per_acquisition?: (...) | (...);
                              new_to_brand_rate?: (...) | (...);
                              leads?: (...) | (...);
                              incremental_sales_lift?: (...) | (...);
                              brand_lift?: (...) | (...);
                              foot_traffic?: (...) | (...);
                              conversion_lift?: (...) | (...);
                              brand_search_lift?: (...) | (...);
                              plays?: (...) | (...);
                              by_event_type?: (...) | (...);
                              grps?: (...) | (...);
                              reach?: (...) | (...);
                              reach_unit?: (...) | (...);
                              reach_window?: (...) | (...);
                              frequency?: (...) | (...);
                              quartile_data?: (...) | (...) | (...);
                              dooh_metrics?: (...) | (...);
                              viewability?: (...) | (...);
                              engagements?: (...) | (...);
                              follows?: (...) | (...);
                              saves?: (...) | (...);
                              profile_visits?: (...) | (...);
                              engagement_rate?: (...) | (...);
                              cost_per_click?: (...) | (...);
                              cost_per_completed_view?: (...) | (...);
                              cpm?: (...) | (...);
                              downloads?: (...) | (...);
                              units_sold?: (...) | (...);
                              new_to_brand_units?: (...) | (...);
                              by_action_source?: (...) | (...);
                              vendor_metric_values?: (...) | (...);
                              device_type?: (...) | (...);
                          }[];
                          by_device_type_truncated?: boolean;
                          by_device_platform?: {
                              impressions?: (...)
                              | (...);
                              spend?: (...) | (...);
                              clicks?: (...) | (...);
                              ctr?: (...) | (...);
                              views?: (...) | (...);
                              completed_views?: (...) | (...);
                              completion_rate?: (...) | (...) | (...);
                              conversions?: (...) | (...);
                              conversion_value?: (...) | (...);
                              commissionable_value?: (...) | (...);
                              roas?: (...) | (...);
                              cost_per_acquisition?: (...) | (...);
                              new_to_brand_rate?: (...) | (...);
                              leads?: (...) | (...);
                              incremental_sales_lift?: (...) | (...);
                              brand_lift?: (...) | (...);
                              foot_traffic?: (...) | (...);
                              conversion_lift?: (...) | (...);
                              brand_search_lift?: (...) | (...);
                              plays?: (...) | (...);
                              by_event_type?: (...) | (...);
                              grps?: (...) | (...);
                              reach?: (...) | (...);
                              reach_unit?: (...) | (...);
                              reach_window?: (...) | (...);
                              frequency?: (...) | (...);
                              quartile_data?: (...) | (...) | (...);
                              dooh_metrics?: (...) | (...);
                              viewability?: (...) | (...);
                              engagements?: (...) | (...);
                              follows?: (...) | (...);
                              saves?: (...) | (...);
                              profile_visits?: (...) | (...);
                              engagement_rate?: (...) | (...);
                              cost_per_click?: (...) | (...);
                              cost_per_completed_view?: (...) | (...);
                              cpm?: (...) | (...);
                              downloads?: (...) | (...);
                              units_sold?: (...) | (...);
                              new_to_brand_units?: (...) | (...);
                              by_action_source?: (...) | (...);
                              vendor_metric_values?: (...) | (...);
                              device_platform?: (...) | (...);
                          }[];
                          by_device_platform_truncated?: boolean;
                          by_audience?: {
                              impressions?: (...)
                              | (...);
                              spend?: (...) | (...);
                              clicks?: (...) | (...);
                              ctr?: (...) | (...);
                              views?: (...) | (...);
                              completed_views?: (...) | (...);
                              completion_rate?: (...) | (...) | (...);
                              conversions?: (...) | (...);
                              conversion_value?: (...) | (...);
                              commissionable_value?: (...) | (...);
                              roas?: (...) | (...);
                              cost_per_acquisition?: (...) | (...);
                              new_to_brand_rate?: (...) | (...);
                              leads?: (...) | (...);
                              incremental_sales_lift?: (...) | (...);
                              brand_lift?: (...) | (...);
                              foot_traffic?: (...) | (...);
                              conversion_lift?: (...) | (...);
                              brand_search_lift?: (...) | (...);
                              plays?: (...) | (...);
                              by_event_type?: (...) | (...);
                              grps?: (...) | (...);
                              reach?: (...) | (...);
                              reach_unit?: (...) | (...);
                              reach_window?: (...) | (...);
                              frequency?: (...) | (...);
                              quartile_data?: (...) | (...) | (...);
                              dooh_metrics?: (...) | (...);
                              viewability?: (...) | (...);
                              engagements?: (...) | (...);
                              follows?: (...) | (...);
                              saves?: (...) | (...);
                              profile_visits?: (...) | (...);
                              engagement_rate?: (...) | (...);
                              cost_per_click?: (...) | (...);
                              cost_per_completed_view?: (...) | (...);
                              cpm?: (...) | (...);
                              downloads?: (...) | (...);
                              units_sold?: (...) | (...);
                              new_to_brand_units?: (...) | (...);
                              by_action_source?: (...) | (...);
                              vendor_metric_values?: (...) | (...);
                              audience_id?: (...) | (...);
                              audience_source?: (...) | (...);
                              audience_name?: (...) | (...);
                          }[];
                          by_audience_truncated?: boolean;
                          by_demographic?: {
                              impressions?: (...)
                              | (...);
                              spend?: (...) | (...);
                              clicks?: (...) | (...);
                              ctr?: (...) | (...);
                              views?: (...) | (...);
                              completed_views?: (...) | (...);
                              completion_rate?: (...) | (...) | (...);
                              conversions?: (...) | (...);
                              conversion_value?: (...) | (...);
                              commissionable_value?: (...) | (...);
                              roas?: (...) | (...);
                              cost_per_acquisition?: (...) | (...);
                              new_to_brand_rate?: (...) | (...);
                              leads?: (...) | (...);
                              incremental_sales_lift?: (...) | (...);
                              brand_lift?: (...) | (...);
                              foot_traffic?: (...) | (...);
                              conversion_lift?: (...) | (...);
                              brand_search_lift?: (...) | (...);
                              plays?: (...) | (...);
                              by_event_type?: (...) | (...);
                              grps?: (...) | (...);
                              reach?: (...) | (...);
                              reach_unit?: (...) | (...);
                              reach_window?: (...) | (...);
                              frequency?: (...) | (...);
                              quartile_data?: (...) | (...) | (...);
                              dooh_metrics?: (...) | (...);
                              viewability?: (...) | (...);
                              engagements?: (...) | (...);
                              follows?: (...) | (...);
                              saves?: (...) | (...);
                              profile_visits?: (...) | (...);
                              engagement_rate?: (...) | (...);
                              cost_per_click?: (...) | (...);
                              cost_per_completed_view?: (...) | (...);
                              cpm?: (...) | (...);
                              downloads?: (...) | (...);
                              units_sold?: (...) | (...);
                              new_to_brand_units?: (...) | (...);
                              by_action_source?: (...) | (...);
                              vendor_metric_values?: (...) | (...);
                              demographic: string;
                              demographic_system: DemographicSystem;
                              age?: (...) | (...);
                          }[];
                          by_demographic_truncated?: boolean;
                          by_demographic_suppressed?: boolean;
                          by_placement?: {
                              impressions?: (...)
                              | (...);
                              spend?: (...) | (...);
                              clicks?: (...) | (...);
                              ctr?: (...) | (...);
                              views?: (...) | (...);
                              completed_views?: (...) | (...);
                              completion_rate?: (...) | (...) | (...);
                              conversions?: (...) | (...);
                              conversion_value?: (...) | (...);
                              commissionable_value?: (...) | (...);
                              roas?: (...) | (...);
                              cost_per_acquisition?: (...) | (...);
                              new_to_brand_rate?: (...) | (...);
                              leads?: (...) | (...);
                              incremental_sales_lift?: (...) | (...);
                              brand_lift?: (...) | (...);
                              foot_traffic?: (...) | (...);
                              conversion_lift?: (...) | (...);
                              brand_search_lift?: (...) | (...);
                              plays?: (...) | (...);
                              by_event_type?: (...) | (...);
                              grps?: (...) | (...);
                              reach?: (...) | (...);
                              reach_unit?: (...) | (...);
                              reach_window?: (...) | (...);
                              frequency?: (...) | (...);
                              quartile_data?: (...) | (...) | (...);
                              dooh_metrics?: (...) | (...);
                              viewability?: (...) | (...);
                              engagements?: (...) | (...);
                              follows?: (...) | (...);
                              saves?: (...) | (...);
                              profile_visits?: (...) | (...);
                              engagement_rate?: (...) | (...);
                              cost_per_click?: (...) | (...);
                              cost_per_completed_view?: (...) | (...);
                              cpm?: (...) | (...);
                              downloads?: (...) | (...);
                              units_sold?: (...) | (...);
                              new_to_brand_units?: (...) | (...);
                              by_action_source?: (...) | (...);
                              vendor_metric_values?: (...) | (...);
                              placement_id?: (...) | (...);
                              placement_name?: (...) | (...);
                              publisher_domain?: (...) | (...);
                          }[];
                          by_placement_truncated?: boolean;
                          by_spot?: {
                              impressions?: (...)
                              | (...);
                              spend?: (...) | (...);
                              clicks?: (...) | (...);
                              ctr?: (...) | (...);
                              views?: (...) | (...);
                              completed_views?: (...) | (...);
                              completion_rate?: (...) | (...) | (...);
                              conversions?: (...) | (...);
                              conversion_value?: (...) | (...);
                              commissionable_value?: (...) | (...);
                              roas?: (...) | (...);
                              cost_per_acquisition?: (...) | (...);
                              new_to_brand_rate?: (...) | (...);
                              leads?: (...) | (...);
                              incremental_sales_lift?: (...) | (...);
                              brand_lift?: (...) | (...);
                              foot_traffic?: (...) | (...);
                              conversion_lift?: (...) | (...);
                              brand_search_lift?: (...) | (...);
                              plays?: (...) | (...);
                              by_event_type?: (...) | (...);
                              grps?: (...) | (...);
                              reach?: (...) | (...);
                              reach_unit?: (...) | (...);
                              reach_window?: (...) | (...);
                              frequency?: (...) | (...);
                              quartile_data?: (...) | (...) | (...);
                              dooh_metrics?: (...) | (...);
                              viewability?: (...) | (...);
                              engagements?: (...) | (...);
                              follows?: (...) | (...);
                              saves?: (...) | (...);
                              profile_visits?: (...) | (...);
                              engagement_rate?: (...) | (...);
                              cost_per_click?: (...) | (...);
                              cost_per_completed_view?: (...) | (...);
                              cpm?: (...) | (...);
                              downloads?: (...) | (...);
                              units_sold?: (...) | (...);
                              new_to_brand_units?: (...) | (...);
                              by_action_source?: (...) | (...);
                              vendor_metric_values?: (...) | (...);
                              spot_id: string;
                              aired_at: string;
                              network?: (...) | (...);
                              station?: (...) | (...);
                              daypart?: (...) | (...);
                          }[];
                          by_spot_truncated?: boolean;
                          daily_breakdown?: {
                              date: string;
                              impressions: number;
                              spend: number;
                              conversions?: (...)
                              | (...);
                              conversion_value?: (...) | (...);
                              commissionable_value?: (...) | (...);
                              roas?: (...) | (...);
                              new_to_brand_rate?: (...) | (...);
                          }[];
                      }[];
                      windows?: {
                          window_start: string;
                          window_end: string;
                          totals: {
                              impressions?: number;
                              spend?: number;
                              clicks?: number;
                              ctr?: number;
                              views?: number;
                              completed_views?: number;
                              completion_rate?: number
                              | null;
                              conversions?: number;
                              conversion_value?: number;
                              commissionable_value?: number;
                              roas?: number;
                              cost_per_acquisition?: number;
                              new_to_brand_rate?: number;
                              leads?: number;
                              incremental_sales_lift?: number;
                              brand_lift?: number;
                              foot_traffic?: number;
                              conversion_lift?: number;
                              brand_search_lift?: number;
                              plays?: number;
                              by_event_type?: (...)[];
                              grps?: number;
                              reach?: number;
                              reach_unit?: ReachUnit;
                              reach_window?: { kind: ...; period?: ... };
                              frequency?: number;
                              quartile_data?:
                                  | {
                                      q1_views?: ...;
                                      q2_views?: ...;
                                      q3_views?: ...;
                                      q4_views?: ...;
                                  }
                                  | null;
                              dooh_metrics?: {
                                  loop_plays?: ...;
                                  screens_used?: ...;
                                  screen_time_seconds?: ...;
                                  sov_achieved?: ...;
                                  calculation_notes?: ...;
                                  venue_breakdown?: ...;
                              };
                              viewability?: {
                                  vendor?: ...;
                                  measurable_impressions?: ...;
                                  viewable_impressions?: ...;
                                  viewable_rate?: ...;
                                  viewed_seconds?: ...;
                                  standard?: ...;
                              };
                              engagements?: number;
                              follows?: number;
                              saves?: number;
                              profile_visits?: number;
                              engagement_rate?: number;
                              cost_per_click?: number;
                              cost_per_completed_view?: number;
                              cpm?: number;
                              downloads?: number;
                              units_sold?: number;
                              new_to_brand_units?: number;
                              by_action_source?: (...)[];
                              vendor_metric_values?: (...)[];
                          };
                          by_package?: {
                              impressions?: ...;
                              spend?: ...;
                              clicks?: ...;
                              ctr?: ...;
                              views?: ...;
                              completed_views?: ...;
                              completion_rate?: ...;
                              conversions?: ...;
                              conversion_value?: ...;
                              commissionable_value?: ...;
                              roas?: ...;
                              cost_per_acquisition?: ...;
                              new_to_brand_rate?: ...;
                              leads?: ...;
                              incremental_sales_lift?: ...;
                              brand_lift?: ...;
                              foot_traffic?: ...;
                              conversion_lift?: ...;
                              brand_search_lift?: ...;
                              plays?: ...;
                              by_event_type?: ...;
                              grps?: ...;
                              reach?: ...;
                              reach_unit?: ...;
                              reach_window?: ...;
                              frequency?: ...;
                              quartile_data?: ...;
                              dooh_metrics?: ...;
                              viewability?: ...;
                              engagements?: ...;
                              follows?: ...;
                              saves?: ...;
                              profile_visits?: ...;
                              engagement_rate?: ...;
                              cost_per_click?: ...;
                              cost_per_completed_view?: ...;
                              cpm?: ...;
                              downloads?: ...;
                              units_sold?: ...;
                              new_to_brand_units?: ...;
                              by_action_source?: ...;
                              vendor_metric_values?: ...;
                              package_id: ...;
                          }[];
                          is_final?: boolean;
                          measurement_window?: string;
                      }[];
                      daily_breakdown?: {
                          date: string;
                          impressions: number;
                          spend: number;
                          conversions?: number;
                          conversion_value?: number;
                          commissionable_value?: number;
                          roas?: number;
                          new_to_brand_rate?: number;
                      }[];
                  }[];
                  errors?: {
                      code: string;
                      message: string;
                      field?: string;
                      suggestion?: string;
                      retry_after?: number;
                      issues?: {
                          pointer: string;
                          message: string;
                          keyword: string;
                          schemaPath?: string;
                          schema_id?: string;
                          discriminator?: (...)[];
                      }[];
                      details?: {};
                      recovery?: "transient"
                      | "correctable"
                      | "terminal";
                      source?: "producer" | "sdk";
                      sdk_id?: string;
                  }[];
                  sandbox?: boolean;
                  ext?: { [key: string]: unknown };
              },
          >,
      >

    • Retrieve canonical creative-level and variant-level delivery metrics.

      Parameters

      Returns Promise<
          TaskResult<
              {
                  context_id?: string;
                  context?: {};
                  task_id?: string;
                  status: TaskStatus;
                  message?: string;
                  timestamp?: string;
                  replayed?: boolean;
                  adcp_error?: {
                      code: string;
                      message: string;
                      field?: string;
                      suggestion?: string;
                      retry_after?: number;
                      issues?: {
                          pointer: string;
                          message: string;
                          keyword: string;
                          schemaPath?: string;
                          schema_id?: string;
                          discriminator?: { property_name: ...; value: ... }[];
                      }[];
                      details?: {};
                      recovery?: "transient"
                      | "correctable"
                      | "terminal";
                      source?: "producer" | "sdk";
                      sdk_id?: string;
                  };
                  push_notification_config?: {
                      url: string;
                      operation_id?: string;
                      token?: string;
                      authentication?: {
                          schemes: [AuthenticationScheme];
                          credentials: string;
                      };
                  };
                  governance_context?: string;
                  payload?: {};
                  adcp_version?: string;
                  adcp_major_version?: number;
                  account_id?: string;
                  media_buy_id?: string;
                  currency: string;
                  reporting_period: { start: string; end: string; timezone?: string };
                  creatives: {
                      creative_id: string;
                      media_buy_id?: string;
                      format_kind?: CanonicalFormatKind;
                      format_option_ref?:
                          | {
                              scope: "publisher";
                              publisher_domain: string;
                              format_option_id: string;
                          }
                          | {
                              scope: "product";
                              format_option_id: string;
                              publisher_domain?: undefined;
                          };
                      totals?: {
                          impressions?: number;
                          spend?: number;
                          clicks?: number;
                          ctr?: number;
                          views?: number;
                          completed_views?: number;
                          completion_rate?: number
                          | null;
                          conversions?: number;
                          conversion_value?: number;
                          commissionable_value?: number;
                          roas?: number;
                          cost_per_acquisition?: number;
                          new_to_brand_rate?: number;
                          leads?: number;
                          incremental_sales_lift?: number;
                          brand_lift?: number;
                          foot_traffic?: number;
                          conversion_lift?: number;
                          brand_search_lift?: number;
                          plays?: number;
                          by_event_type?: {
                              event_type: EventType;
                              event_source_id?: (...) | (...);
                              count: number;
                              value?: (...) | (...);
                          }[];
                          grps?: number;
                          reach?: number;
                          reach_unit?: ReachUnit;
                          reach_window?: {
                              kind: "cumulative"
                              | "period"
                              | "rolling";
                              period?: { interval: ...; unit: ... };
                          };
                          frequency?: number;
                          quartile_data?: | {
                              q1_views?: number;
                              q2_views?: number;
                              q3_views?: number;
                              q4_views?: number;
                          }
                          | null;
                          dooh_metrics?: {
                              loop_plays?: number;
                              screens_used?: number;
                              screen_time_seconds?: number;
                              sov_achieved?: number;
                              calculation_notes?: string;
                              venue_breakdown?: (...)[];
                          };
                          viewability?: {
                              vendor?: {
                                  domain: ...;
                                  brand_id?: ...;
                                  countries?: ...;
                                  industries?: ...;
                                  data_subject_contestation?: ...;
                                  brand_kit_override?: ...;
                              };
                              measurable_impressions?: number;
                              viewable_impressions?: number;
                              viewable_rate?: number;
                              viewed_seconds?: number;
                              standard?: ViewabilityStandard;
                          };
                          engagements?: number;
                          follows?: number;
                          saves?: number;
                          profile_visits?: number;
                          engagement_rate?: number;
                          cost_per_click?: number;
                          cost_per_completed_view?: number;
                          cpm?: number;
                          downloads?: number;
                          units_sold?: number;
                          new_to_brand_units?: number;
                          by_action_source?: {
                              action_source: ActionSource;
                              event_source_id?: (...)
                              | (...);
                              count: number;
                              value?: (...) | (...);
                          }[];
                          vendor_metric_values?: {
                              vendor: {
                                  domain: ...;
                                  brand_id?: ...;
                                  countries?: ...;
                                  industries?: ...;
                                  data_subject_contestation?: ...;
                                  brand_kit_override?: ...;
                              };
                              metric_id: string;
                              value: number;
                              unit?: (...)
                              | (...);
                              measurable_impressions?: (...) | (...);
                              breakdown?: (...) | (...);
                          }[];
                      };
                      variant_count?: number;
                      variants: {
                          impressions?: number;
                          spend?: number;
                          clicks?: number;
                          ctr?: number;
                          views?: number;
                          completed_views?: number;
                          completion_rate?: number
                          | null;
                          conversions?: number;
                          conversion_value?: number;
                          commissionable_value?: number;
                          roas?: number;
                          cost_per_acquisition?: number;
                          new_to_brand_rate?: number;
                          leads?: number;
                          incremental_sales_lift?: number;
                          brand_lift?: number;
                          foot_traffic?: number;
                          conversion_lift?: number;
                          brand_search_lift?: number;
                          plays?: number;
                          by_event_type?: {
                              event_type: EventType;
                              event_source_id?: (...) | (...);
                              count: number;
                              value?: (...) | (...);
                          }[];
                          grps?: number;
                          reach?: number;
                          reach_unit?: ReachUnit;
                          reach_window?: {
                              kind: "cumulative"
                              | "period"
                              | "rolling";
                              period?: { interval: ...; unit: ... };
                          };
                          frequency?: number;
                          quartile_data?: | {
                              q1_views?: number;
                              q2_views?: number;
                              q3_views?: number;
                              q4_views?: number;
                          }
                          | null;
                          dooh_metrics?: {
                              loop_plays?: number;
                              screens_used?: number;
                              screen_time_seconds?: number;
                              sov_achieved?: number;
                              calculation_notes?: string;
                              venue_breakdown?: (...)[];
                          };
                          viewability?: {
                              vendor?: {
                                  domain: ...;
                                  brand_id?: ...;
                                  countries?: ...;
                                  industries?: ...;
                                  data_subject_contestation?: ...;
                                  brand_kit_override?: ...;
                              };
                              measurable_impressions?: number;
                              viewable_impressions?: number;
                              viewable_rate?: number;
                              viewed_seconds?: number;
                              standard?: ViewabilityStandard;
                          };
                          engagements?: number;
                          follows?: number;
                          saves?: number;
                          profile_visits?: number;
                          engagement_rate?: number;
                          cost_per_click?: number;
                          cost_per_completed_view?: number;
                          cpm?: number;
                          downloads?: number;
                          units_sold?: number;
                          new_to_brand_units?: number;
                          by_action_source?: {
                              action_source: ActionSource;
                              event_source_id?: (...)
                              | (...);
                              count: number;
                              value?: (...) | (...);
                          }[];
                          vendor_metric_values?: {
                              vendor: {
                                  domain: ...;
                                  brand_id?: ...;
                                  countries?: ...;
                                  industries?: ...;
                                  data_subject_contestation?: ...;
                                  brand_kit_override?: ...;
                              };
                              metric_id: string;
                              value: number;
                              unit?: (...)
                              | (...);
                              measurable_impressions?: (...) | (...);
                              breakdown?: (...) | (...);
                          }[];
                          variant_id: string;
                          locale_variant_id?: string;
                          manifest?: | {
                              format_kind?: CanonicalFormatKind;
                              format_option_ref?: | {
                                  scope: ...;
                                  publisher_domain: ...;
                                  format_option_id: ...;
                              }
                              | { scope: ...; format_option_id: ...; publisher_domain?: ... };
                              assets: {
                                  [key: string]:
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...);
                              };
                              brand?: {
                                  domain: ...;
                                  brand_id?: ...;
                                  countries?: ...;
                                  industries?: ...;
                                  data_subject_contestation?: ...;
                                  brand_kit_override?: ...;
                              };
                              rights?: (...)[];
                              industry_identifiers?: (...)[];
                              provenance?: {
                                  digital_source_type?: ...;
                                  synthetic_depiction?: ...;
                                  ai_tool?: ...;
                                  human_oversight?: ...;
                                  declared_by?: ...;
                                  declared_at?: ...;
                                  created_time?: ...;
                                  c2pa?: ...;
                                  embedded_provenance?: ...;
                                  watermarks?: ...;
                                  disclosure?: ...;
                                  verification?: ...;
                                  ext?: ...;
                              };
                              ext?: { [key: ...]: ... };
                          }
                          | {
                              format_kind?: CanonicalFormatKind;
                              format_option_ref?: | {
                                  scope: ...;
                                  publisher_domain: ...;
                                  format_option_id: ...;
                              }
                              | { scope: ...; format_option_id: ...; publisher_domain?: ... };
                              assets: {
                                  [key: string]:
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...)
                                      | (...);
                              };
                              brand?: {
                                  domain: ...;
                                  brand_id?: ...;
                                  countries?: ...;
                                  industries?: ...;
                                  data_subject_contestation?: ...;
                                  brand_kit_override?: ...;
                              };
                              rights?: (...)[];
                              industry_identifiers?: (...)[];
                              provenance?: {
                                  digital_source_type?: ...;
                                  synthetic_depiction?: ...;
                                  ai_tool?: ...;
                                  human_oversight?: ...;
                                  declared_by?: ...;
                                  declared_at?: ...;
                                  created_time?: ...;
                                  c2pa?: ...;
                                  embedded_provenance?: ...;
                                  watermarks?: ...;
                                  disclosure?: ...;
                                  verification?: ...;
                                  ext?: ...;
                              };
                              ext?: { [key: ...]: ... };
                          };
                          generation_context?: {
                              context_type?: string;
                              artifact?: { property_id: ...; artifact_id: ... };
                              ext?: { [key: ...]: ... };
                          };
                      }[];
                  }[];
                  pagination?: {
                      limit: number;
                      offset: number;
                      has_more: boolean;
                      total_count?: number;
                      total?: number;
                  };
                  errors?: {
                      code: string;
                      message: string;
                      field?: string;
                      suggestion?: string;
                      retry_after?: number;
                      issues?: {
                          pointer: string;
                          message: string;
                          keyword: string;
                          schemaPath?: string;
                          schema_id?: string;
                          discriminator?: (...)[];
                      }[];
                      details?: {};
                      recovery?: "transient"
                      | "correctable"
                      | "terminal";
                      source?: "producer" | "sdk";
                      sdk_id?: string;
                  }[];
                  ext?: { [key: string]: unknown };
              },
          >,
      >

    • Report a governance outcome for an async task that has resolved.

      Use this when a task returned status 'submitted' or 'working' and later resolves via polling or webhooks. The checkId is available on the original TaskResult at result.governance.checkId. After a TaskTimeoutError during governance postflight, pass the error's governanceRecovery.outcomeIdempotencyKey in options to safely retry.

      Parameters

      • checkId: string
      • outcome: OutcomeType
      • OptionalgovernanceContext: string
      • OptionalsellerResponse: Record<string, unknown>
      • Optionalerror: { code?: string; message: string }
      • Optionaloptions: { outcomeIdempotencyKey?: string; signal?: AbortSignal }

      Returns Promise<GovernanceOutcome | undefined>

    • Execute an extension task that is not part of the standard AdCP task set.

      Keeping custom tasks on an explicitly named API prevents a response-type generic from weakening the canonical request types enforced by executeTask() for standard creative-boundary tasks.

      Type Parameters

      • T = unknown

      Parameters

      Returns Promise<TaskResult<T>>

    • Resume a deferred task using its token

      Type Parameters

      • T = any

      Parameters

      • token: string

        Deferred task token

      • inputHandler: InputHandler

        Handler to provide the missing input

      Returns Promise<TaskResult<T>>

      try {
      await client.createMediaBuy(params, handler);
      } catch (error) {
      if (error instanceof DeferredTaskError) {
      // Get human input and resume
      const result = await client.resumeDeferredTask(
      error.token,
      (context) => humanProvidedValue
      );
      }
      }
    • Continue an existing conversation with the agent

      Type Parameters

      • T = any

      Parameters

      • message: string

        Message to send to the agent

      • contextId: string

        Conversation context ID to continue

      • OptionalinputHandler: InputHandler

        Handler for any clarification requests

      Returns Promise<TaskResult<T>>

      const agent = new ADCPClient(config);
      const initial = await agent.getProducts({ brief: 'Tech products' });

      // Continue the conversation — use the server-returned contextId, not
      // the client-minted correlation taskId.
      const refined = await agent.continueConversation(
      'Focus only on laptops under $1000',
      initial.metadata.contextId!
      );
    • Get the agent configuration with normalized protocol

      Returns the agent config with:

      • Protocol normalized (e.g., .well-known URLs switch to A2A)
      • If canonical URL has been resolved, agent_uri will be the canonical URL

      For guaranteed canonical URL, use getResolvedAgent() instead.

      Returns AgentConfig

    • Get the fully resolved agent configuration

      This async method ensures the agent config has the canonical URL resolved:

      • For A2A: Fetches the agent card and uses its 'url' field
      • For MCP: Performs endpoint discovery

      Returns Promise<AgentConfig>

      Promise resolving to agent config with canonical URL

    • Get the canonical base URL for this agent

      Returns the canonical URL if already resolved, or computes it synchronously from the configured URL. For the most accurate canonical URL (especially for A2A where the agent card contains the authoritative URL), use resolveCanonicalUrl() first.

      The canonical URL is:

      • For A2A: The 'url' field from the agent card (if resolved), or base URL with the well-known agent card path stripped
      • For MCP: The discovered endpoint with /mcp stripped

      Returns string

      The canonical base URL (synchronous, may not be fully resolved)

    • Resolve and return the canonical base URL for this agent

      This async method ensures the canonical URL is properly resolved:

      • For A2A: Fetches the agent card and uses its 'url' field
      • For MCP: Performs endpoint discovery and strips /mcp suffix

      The result is cached, so subsequent calls are fast.

      Returns Promise<string>

      Promise resolving to the canonical base URL

    • Check if this agent is the same as another agent

      Compares agents by their canonical base URLs. Two agents are considered the same if they have the same canonical URL, regardless of:

      • Protocol (MCP vs A2A)
      • URL format (with/without /mcp, with/without well-known agent card path)
      • Trailing slashes

      Parameters

      Returns boolean

      true if agents have the same canonical URL

    • Async version of isSameAgent that resolves canonical URLs first

      This provides more accurate comparison for A2A agents since it fetches the agent card to get the authoritative canonical URL.

      Parameters

      Returns Promise<boolean>

      Promise resolving to true if agents have the same canonical URL

    • List all tasks for this agent with detailed information

      Returns Promise<TaskInfo[]>

      Promise resolving to array of task information

      const tasks = await client.listTasks();
      tasks.forEach(task => {
      console.log(`${task.taskName}: ${task.status}`);
      });
    • Get detailed information about a specific task

      Parameters

      • taskId: string

        ID of the task to get information for

      Returns Promise<TaskInfo | null>

      Promise resolving to task information

    • Subscribe to task notifications for this agent

      Parameters

      • callback: (task: TaskInfo) => void

        Function to call when task status changes

      Returns () => void

      Unsubscribe function

      const unsubscribe = client.onTaskUpdate((task) => {
      console.log(`Task ${task.taskName} is now ${task.status}`);
      if (task.status === 'completed') {
      // Handle completion
      }
      });

      // Later, stop listening
      unsubscribe();
    • Subscribe to all task events (create, update, complete, error)

      Parameters

      • callbacks: {
            onTaskCreated?: (task: TaskInfo) => void;
            onTaskUpdated?: (task: TaskInfo) => void;
            onTaskCompleted?: (task: TaskInfo) => void;
            onTaskFailed?: (task: TaskInfo, error: string) => void;
        }

        Event callbacks for different task events

      Returns () => void

      Unsubscribe function

    • Register webhook URL for receiving task notifications

      Parameters

      • webhookUrl: string

        URL to receive webhook notifications

      • OptionaltaskTypes: string[]

        Optional array of task types to watch (defaults to all)

      Returns Promise<void>

      await client.registerWebhook('https://myapp.com/webhook', ['create_media_buy']);
      
    • Get comprehensive agent information including name, description, and available tools/skills

      Works with both MCP (tools) and A2A (skills) protocols to discover what the agent can do.

      Auth resolution: this method forwards agent.headers as customHeaders to the MCP transport so header-only auth (HTTP Basic via gateways like Apigee/Kong, x-api-key, custom tenant routing) reaches the precheck path. The invariant — basic-auth credentials live entirely on headers.Authorization; do not also set auth_token — is documented at docs/guides/BASIC-AUTH.md. See #1864 for the failure mode if it's violated.

      Parameters

      • Optionaloptions: ReadRequestOptions

      Returns Promise<
          {
              name: string;
              description?: string;
              protocol: "mcp"
              | "a2a";
              url: string;
              tools: {
                  name: string;
                  description?: string;
                  inputSchema?: Record<string, unknown>;
                  parameters?: string[];
              }[];
          },
      >

      Promise resolving to agent information including tools

      const client = new ADCPClient(agentConfig);
      const info = await client.getAgentInfo();

      console.log(`${info.name}: ${info.description}`);
      console.log(`Supports ${info.tools.length} tools`);

      info.tools.forEach(tool => {
      console.log(` - ${tool.name}: ${tool.description}`);
      });
    • Get agent capabilities, including AdCP version support

      For v3 servers, calls get_adcp_capabilities tool. For v2 servers, builds synthetic capabilities from available tools.

      Parameters

      • Optionaloptions: ReadRequestOptions

      Returns Promise<AdcpCapabilities>

      Promise resolving to normalized capabilities object

      const capabilities = await client.getCapabilities();

      console.log(`Server version: ${capabilities.version}`);
      console.log(`Protocols: ${capabilities.protocols.join(', ')}`);

      if (capabilities.features.propertyListFiltering) {
      // Use v3 property list features
      }
    • Detect server AdCP version

      Parameters

      • Optionaloptions: ReadRequestOptions

      Returns Promise<"v3" | "v2">

      'v2' or 'v3' based on server capabilities

    • Whether the seller's capabilities are synthesized from tools/list with no authoritative get_adcp_capabilities response — i.e. the dispatcher routes through the v2 adapter and idempotency-TTL is unknown. Use this to gate retry behavior for sellers whose retry safety can't be derived from declared capabilities (lower attempt caps, longer backoff, or fall back to natural-key recovery).

      Returns false for declared v2 sellers, declared v3 sellers, and synthetic v3 sellers (which advertise the v3 discovery tool even when the call itself failed).

      Caveat for synthetic v3: the predicate returns false, but TTL is still unknown for those sellers — getIdempotencyReplayTtlSeconds() throws until the agent's capabilities endpoint is fixed (issue #1217). Retry-policy consumers that need a complete "TTL unknown" gate should additionally check getCapabilities()._synthetic.

      Returns Promise<boolean>

    • Check if server supports a specific AdCP major version

      Parameters

      • version: 2 | 3

      Returns Promise<boolean>

    • Return the seller's declared adcp.idempotency.replay_ttl_seconds.

      BYOK callers use this to compare the age of persisted keys against the seller's replay window — past the window, the safe recovery is a natural-key lookup rather than reusing the key.

      Fails closed when the seller is v3 but does not declare the field: the spec makes the declaration REQUIRED, and silently defaulting to 24h would mislead buyers about retry safety. Callers on v2 servers get undefined instead of a throw — v2 pre-dates the idempotency envelope.

      Returns Promise<number | undefined>

    • Check if the seller supports a feature.

      Feature names resolve as follows:

      • Protocol names ('media_buy', 'signals', etc.) check supported_protocols
      • 'ext:' checks extensions_supported
      • 'targeting.' checks media_buy.execution.targeting
      • Other names check media_buy.features (e.g., 'audience_targeting', 'conversion_tracking')

      Absent features return false.

      Parameters

      • feature: string

      Returns Promise<boolean>

    • Require that the seller supports all listed features. Throws FeatureUnsupportedError if any are missing.

      Call this before making feature-dependent task calls to fail fast with an actionable error message.

      Parameters

      • ...features: string[]

      Returns Promise<void>

    • Assert that the seller's capabilities corroborate the major this client is pinned to (per getAdcpVersion()).

      A self-reported version: 'v3' is not enough — a hostile or misconfigured seller can just string-claim the version. For sellers that return an authoritative get_adcp_capabilities response, the guard requires:

      1. capabilities.majorVersions.includes(<this client's major>)
      2. capabilities.idempotency.replayTtlSeconds present (spec-required for real major-3+ sellers)

      Sellers whose capabilities are synthesized from tools/list (no authoritative get_adcp_capabilities response) are treated as v2: a compliant v3 seller would declare itself, so absence of a declaration is taken as evidence of v2. The dispatcher routes the request through the v2 wire-shape adapter. A one-time warning surfaces the routing decision so adopters can audit it; retry-safety (idempotency TTL) is unknown for these sellers and BYOK callers should treat them as such.

      Per-client allowV2: true or, when that's undefined, ADCP_ALLOW_V2=1 in the environment bypasses the guard entirely.

      Throws VersionUnsupportedError with the specific reason on failure.

      Parameters

      • taskType: string = 'request'
      • Optionaloptions: ReadRequestOptions

      Returns Promise<void>

    • Deprecated alias for requireSupportedMajor. Original name from the AdCP v2/v3 split; the function generalized in Stage 3 to check the client's per-instance major instead of hardcoded 3, and requireV3 stopped reflecting what the function actually does.

      Parameters

      • taskType: string = 'request'

      Returns Promise<void>

      Use requireSupportedMajor() instead.

    • Query a legacy creative-agent named-format catalog.

      Canonical applications discover seller-supported declarations through AgentClient.getProducts() and consume format_options[] instead.

      Parameters

      Returns Promise<LegacyFormat[]>

      Promise resolving to the list of available formats

      Migration-only helper for the legacy named-format protocol.