@adcp/sdk API Reference - v7.9.0
    Preparing search index...

    Interface CheckGovernanceRequest

    Universal governance check for campaign actions. The governance agent infers the check type from the fields present: tool+payload = intent check (proposed, orchestrator-side). planned_delivery = execution check (committed, seller-side). governance_context maintains lifecycle continuity across either check type — its presence alone does not determine binding. To check budget availability without a specific action, omit tool and payload.

    interface CheckGovernanceRequest {
        adcp_major_version?: number;
        plan_id: string;
        caller: string;
        purchase_type?: PurchaseType;
        tool?: string;
        payload?: {};
        governance_context?: string;
        phase?: GovernancePhase;
        planned_delivery?: PlannedDelivery;
        delivery_metrics?: {
            reporting_period: { start: string; end: string };
            spend?: number;
            cumulative_spend?: number;
            impressions?: number;
            cumulative_impressions?: number;
            geo_distribution?: { [k: string]: number | undefined };
            channel_distribution?: { [k: string]: number | undefined };
            pacing?: "ahead" | "on_track" | "behind";
            audience_distribution?: {
                baseline: "custom" | "platform" | "census";
                baseline_description?: string;
                indices: { [k: string]: number | undefined };
                cumulative_indices?: { [k: string]: number | undefined };
            };
        };
        modification_summary?: string;
        invoice_recipient?: BusinessEntity;
        context?: ContextObject;
        ext?: ExtensionObject;
    }
    Index

    Properties

    adcp_major_version?: number

    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.

    1

    99

    plan_id: string

    Campaign governance plan identifier. The plan uniquely scopes the account and operator; do not include a separate account field — the governance agent resolves account from the plan. Including account is rejected by additionalProperties: false.

    caller: string

    URL of the agent making the request.

    purchase_type?: PurchaseType
    tool?: string

    The AdCP tool being checked (e.g., 'create_media_buy', 'acquire_rights', 'activate_signal'). Present on intent checks (orchestrator). The governance agent uses the presence of tool+payload to identify an intent check.

    payload?: {}

    The full tool arguments as they would be sent to the seller. Present on intent checks. The governance agent can inspect any field to validate against the plan.

    governance_context?: string

    Governance context token from a prior check_governance response. Pass this on subsequent checks for the same governed action so the governance agent can maintain continuity across the lifecycle. In 3.0 governance agents MUST emit a compact JWS per the AdCP JWS profile (see Security — Signed Governance Context); callers persist and forward the value verbatim.

    1

    4096

    ^[\x20-\x7E]+$

    planned_delivery?: PlannedDelivery
    delivery_metrics?: {
        reporting_period: { start: string; end: string };
        spend?: number;
        cumulative_spend?: number;
        impressions?: number;
        cumulative_impressions?: number;
        geo_distribution?: { [k: string]: number | undefined };
        channel_distribution?: { [k: string]: number | undefined };
        pacing?: "ahead" | "on_track" | "behind";
        audience_distribution?: {
            baseline: "custom" | "platform" | "census";
            baseline_description?: string;
            indices: { [k: string]: number | undefined };
            cumulative_indices?: { [k: string]: number | undefined };
        };
    }

    Actual delivery performance data. MUST be present for 'delivery' phase. The governance agent compares these metrics against the planned delivery to detect drift.

    Type Declaration

    • reporting_period: { start: string; end: string }

      Start and end timestamps for the reporting window.

      • start: string

        date-time

      • end: string

        date-time

    • Optionalspend?: number

      Total spend during the reporting period.

      0

    • Optionalcumulative_spend?: number

      Total spend since the governed action started.

      0

    • Optionalimpressions?: number

      Impressions delivered during the reporting period.

      0

    • Optionalcumulative_impressions?: number

      Total impressions since the governed action started.

      0

    • Optionalgeo_distribution?: { [k: string]: number | undefined }

      Actual geographic distribution. Keys are ISO 3166-1 alpha-2 codes, values are percentages.

    • Optionalchannel_distribution?: { [k: string]: number | undefined }

      Actual channel distribution. Keys are channel enum values, values are percentages.

    • Optionalpacing?: "ahead" | "on_track" | "behind"

      Whether delivery is ahead of, on track with, or behind the planned pace.

    • Optionalaudience_distribution?: {
          baseline: "custom" | "platform" | "census";
          baseline_description?: string;
          indices: { [k: string]: number | undefined };
          cumulative_indices?: { [k: string]: number | undefined };
      }

      Actual audience composition during the reporting period. Enables mid-flight drift detection when actual delivery skews from planned audience targeting.

      • baseline: "custom" | "platform" | "census"

        Population baseline used for index calculation. 'census': national census or equivalent population data. 'platform': the seller's active user base. 'custom': a custom baseline defined by the seller (describe in baseline_description).

      • Optionalbaseline_description?: string

        Description of the baseline when baseline is 'custom' (e.g., 'US adults 18+ with broadband access').

      • indices: { [k: string]: number | undefined }

        Audience index values for the current reporting period. Keys are seller-defined dimension:value strings (e.g., 'age:25-34', 'gender:female', 'income:high'). The protocol does not mandate a taxonomy — dimensions and value labels vary by seller. Values are index relative to the declared baseline (1.0 = at parity, >1.0 = over-indexed, <1.0 = under-indexed).

      • Optionalcumulative_indices?: { [k: string]: number | undefined }

        Cumulative audience index values since the governed action started. Same key format as indices (dimension:value). Use for detecting sustained bias drift that may not appear in a single reporting period.

    modification_summary?: string

    Human-readable summary of what changed. SHOULD be present for 'modification' phase.

    1000

    invoice_recipient?: BusinessEntity
    context?: ContextObject
    ext?: ExtensionObject