Unique identifier for this proposal. Used to finalize a draft proposal and to execute a committed proposal via create_media_buy.
Human-readable name for this media plan proposal
Optionaldescription?: stringExplanation of the proposal strategy and what it achieves
Products and budget constraints in this plan. Fixed proposals require allocation_percentage on every entry and percentages MUST sum to 100. Seller-optimized proposals forbid exact allocation_percentage and may instead supply min_spend_target_percentage and max_spend_percentage. Publishers are responsible for validating cross-entry sums; buyers SHOULD validate them before execution.
Optionalbudget_allocation?: BudgetAllocationHow the executed total budget is allocated across proposal products. Omit for legacy fixed proposals.
Optionalpacing?: PacingOptionalproposal_status?: ProposalStatusOptionalexpires_at?: stringWhen this proposal expires and can no longer be executed. For draft proposals, indicates when indicative pricing becomes stale. For committed proposals, indicates when the inventory hold lapses — the buyer must call create_media_buy before this time.
Optionalinsertion_order?: InsertionOrderOptionaltotal_budget_guidance?: { min?: number; recommended?: number; max?: number; currency?: string }Optional budget guidance for this proposal
Optionalmin?: numberMinimum recommended budget
Optionalrecommended?: numberRecommended budget for optimal performance
Optionalmax?: numberMaximum budget before diminishing returns
Optionalcurrency?: stringISO 4217 currency code
Optionalbrief_alignment?: stringExplanation of how this proposal aligns with the campaign brief
Optionalforecast?: DeliveryForecastOptionalext?: ExtensionObject
A proposed media plan with fixed or seller-optimized budget allocation across products. Represents the publisher's strategic recommendation for how to structure a campaign based on the brief. Proposals are actionable: committed proposals can be executed directly via create_media_buy by providing the proposal_id; draft proposals must first be finalized via get_products refine action 'finalize'.