@adcp/client API Reference - v4.19.0
    Preparing search index...

    Interface SyncPlansRequest

    Push campaign plans to the governance agent. A plan defines the authorized parameters for a campaign -- budget limits, channels, flight dates, and authorized markets.

    interface SyncPlansRequest {
        plans: {
            plan_id: string;
            brand: BrandReference;
            objectives: string;
            budget: {
                total: number;
                currency: string;
                authority_level: BudgetAuthorityLevel;
                per_seller_max_pct?: number;
                reallocation_threshold?: number;
            };
            channels?: {
                required?: MediaChannel[];
                allowed?: MediaChannel[];
                mix_targets?: {
                    [k: string]: { min_pct?: number; max_pct?: number }
                    | undefined;
                };
            };
            flight: { start: string; end: string };
            countries?: string[];
            regions?: string[];
            policy_ids?: string[];
            policy_categories?: string[];
            audience?: AudienceConstraints;
            restricted_attributes?: RestrictedAttribute[];
            restricted_attributes_custom?: string[];
            min_audience_size?: number;
            custom_policies?: string[];
            approved_sellers?: string[] | null;
            delegations?: {
                agent_url: string;
                authority: DelegationAuthority;
                budget_limit?: { amount: number; currency: string };
                markets?: string[];
                expires_at?: string;
            }[];
            portfolio?: {
                member_plan_ids: string[];
                total_budget_cap?: { amount: number; currency: string };
                shared_policy_ids?: string[];
                shared_exclusions?: string[];
            };
            ext?: ExtensionObject;
        }[];
    }
    Index

    Properties

    Properties

    plans: {
        plan_id: string;
        brand: BrandReference;
        objectives: string;
        budget: {
            total: number;
            currency: string;
            authority_level: BudgetAuthorityLevel;
            per_seller_max_pct?: number;
            reallocation_threshold?: number;
        };
        channels?: {
            required?: MediaChannel[];
            allowed?: MediaChannel[];
            mix_targets?: {
                [k: string]: { min_pct?: number; max_pct?: number }
                | undefined;
            };
        };
        flight: { start: string; end: string };
        countries?: string[];
        regions?: string[];
        policy_ids?: string[];
        policy_categories?: string[];
        audience?: AudienceConstraints;
        restricted_attributes?: RestrictedAttribute[];
        restricted_attributes_custom?: string[];
        min_audience_size?: number;
        custom_policies?: string[];
        approved_sellers?: string[] | null;
        delegations?: {
            agent_url: string;
            authority: DelegationAuthority;
            budget_limit?: { amount: number; currency: string };
            markets?: string[];
            expires_at?: string;
        }[];
        portfolio?: {
            member_plan_ids: string[];
            total_budget_cap?: { amount: number; currency: string };
            shared_policy_ids?: string[];
            shared_exclusions?: string[];
        };
        ext?: ExtensionObject;
    }[]

    One or more campaign plans to sync.

    Type Declaration

    • plan_id: string

      Unique identifier for this plan.

    • brand: BrandReference
    • objectives: string

      Natural language campaign objectives. Used for strategic alignment validation.

    • budget: {
          total: number;
          currency: string;
          authority_level: BudgetAuthorityLevel;
          per_seller_max_pct?: number;
          reallocation_threshold?: number;
      }

      Budget authorization parameters.

      • total: number

        Total authorized budget.

      • currency: string

        ISO 4217 currency code.

      • authority_level: BudgetAuthorityLevel
      • Optionalper_seller_max_pct?: number

        Maximum percentage of budget that can go to a single seller.

      • Optionalreallocation_threshold?: number

        Amount above which reallocations require escalation (for agent_limited).

    • Optionalchannels?: {
          required?: MediaChannel[];
          allowed?: MediaChannel[];
          mix_targets?: {
              [k: string]: { min_pct?: number; max_pct?: number } | undefined;
          };
      }

      Channel constraints. If omitted, all channels are allowed.

      • Optionalrequired?: MediaChannel[]

        Channels that must be included in the media mix.

      • Optionalallowed?: MediaChannel[]

        Channels the orchestrator may use.

      • Optionalmix_targets?: { [k: string]: { min_pct?: number; max_pct?: number } | undefined }

        Target allocation ranges per channel, keyed by channel ID.

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

      Authorized flight dates. Media buys with dates outside this window are rejected.

      • start: string

        Flight start (ISO 8601).

      • end: string

        Flight end (ISO 8601).

    • Optionalcountries?: string[]

      ISO 3166-1 alpha-2 country codes for authorized markets (e.g., ['US', 'GB']). The governance agent rejects media buys targeting outside these countries and resolves applicable policies by matching against policy jurisdictions.

    • Optionalregions?: string[]

      ISO 3166-2 subdivision codes for authorized sub-national markets (e.g., ['US-MA', 'US-CA']). When present, the governance agent restricts buys to these specific regions rather than the full country. Use for campaigns limited to specific states or provinces (e.g., cannabis in legal states). Policy resolution matches against both the subdivision and its parent country.

    • Optionalpolicy_ids?: string[]

      Registry policy IDs to enforce for this plan. The governance agent resolves full policy definitions from the registry and evaluates actions against them. Intersected with the plan's countries/regions to activate only geographically relevant policies.

    • Optionalpolicy_categories?: string[]

      Regulatory categories that apply to this campaign. Determines which policy regimes the governance agent enforces (e.g., 'children_directed' activates COPPA/AADC, 'political_advertising' activates disclosure requirements). The governance agent resolves categories to specific policies based on the plan's jurisdictions. When omitted, governance agents MAY infer categories from the brand's industries and the plan's objectives. Values are registry-defined category IDs (intentionally freeform strings, not an enum — new categories are added as regulations evolve).

    • Optionalaudience?: AudienceConstraints
    • Optionalrestricted_attributes?: RestrictedAttribute[]

      Personal data categories that must not be used for targeting in this campaign. Applies horizontally across all audience criteria. Used for EU DSA Article 26 compliance (prohibits targeting on GDPR Article 9 special categories) and similar regulations. The governance agent flags any audience targeting that references these attributes.

    • Optionalrestricted_attributes_custom?: string[]

      Additional restricted attributes not covered by the restricted-attribute enum. Freeform strings for jurisdiction-specific or brand-specific restrictions beyond GDPR Article 9 categories (e.g., 'financial_status', 'immigration_status'). Governance agents use semantic matching for these.

    • Optionalmin_audience_size?: number

      Minimum audience segment size. Prevents micro-targeting by ensuring segments meet a k-anonymity threshold. Applies to the estimated combined (intersection) audience when multiple criteria are used, not just individual criterion sizes. The governance agent validates this by querying signal catalog metadata or seller-reported segment sizes. When segment size data is unavailable, the governance agent SHOULD produce a finding with reduced confidence rather than silently passing.

    • Optionalcustom_policies?: string[]

      Natural language policy statements specific to this campaign (e.g., 'No advertising adjacent to competitor content'). Applied regardless of geography.

    • Optionalapproved_sellers?: string[] | null

      List of approved seller agent URLs. null means any seller.

    • Optionaldelegations?: {
          agent_url: string;
          authority: DelegationAuthority;
          budget_limit?: { amount: number; currency: string };
          markets?: string[];
          expires_at?: string;
      }[]

      Agents authorized to execute against this plan. Each delegation scopes an agent's authority by budget, markets, and expiration. The governance agent validates that the requesting agent matches a delegation before approving actions.

    • Optionalportfolio?: {
          member_plan_ids: string[];
          total_budget_cap?: { amount: number; currency: string };
          shared_policy_ids?: string[];
          shared_exclusions?: string[];
      }

      Portfolio-level governance constraints. When present, this plan acts as a portfolio plan that governs member plans. Portfolio plans define cross-brand constraints that no individual brand plan can override.

      • member_plan_ids: string[]

        Plan IDs governed by this portfolio plan. The governance agent validates member plan actions against portfolio constraints.

      • Optionaltotal_budget_cap?: { amount: number; currency: string }

        Maximum aggregate budget across all member plans.

      • Optionalshared_policy_ids?: string[]

        Registry policy IDs enforced across all member plans, regardless of individual brand configuration.

      • Optionalshared_exclusions?: string[]

        Natural language exclusion rules applied across all member plans (e.g., 'No advertising on properties owned by competitor holding companies').

    • Optionalext?: ExtensionObject