Raw schema
{
"type": "object",
"properties": {
"inventory_id": {
"type": "string",
"format": "uuid",
"description": "Target inventory slot UUID"
},
"advertiser_id": {
"type": "string",
"format": "uuid",
"description": "Advertiser account UUID"
},
"bid_cents": {
"type": "integer",
"minimum": 1,
"description": "Bid amount in cents"
},
"pricing_model": {
"type": "string",
"enum": [
"cpm",
"cpc",
"cpa",
"enriched_snippet",
"revenue_share",
"flat_fee"
],
"description": "Pricing model for the buy"
},
"creative_ref": {
"type": "string",
"maxLength": 2048,
"description": "Creative asset URL or reference"
},
"creative_data": {
"type": "object",
"additionalProperties": {},
"description": "Creative metadata (JSON)"
},
"budget_cents": {
"type": "integer",
"minimum": 1,
"description": "Total budget in cents"
},
"start_date": {
"type": "string",
"description": "Campaign start date (ISO 8601)"
},
"end_date": {
"type": "string",
"description": "Campaign end date (ISO 8601)"
},
"brand": {
"type": "string",
"description": "Advertiser brand name (for rules check)"
},
"category": {
"type": "string",
"description": "Product category (for rules check)"
},
"quality_score": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Quality score 0-1 (default: 0.5)"
},
"context_relevance": {
"type": "number",
"minimum": 0,
"maximum": 1,
"description": "Context relevance 0-1 (default: 0)"
},
"campaign_id": {
"type": "string",
"format": "uuid",
"description": "Parent campaign UUID. When set, the campaign's default pacing + frequency cap cascade into this buy unless explicitly overridden."
},
"pacing_strategy": {
"type": "string",
"enum": [
"even",
"asap",
"front_loaded",
"back_loaded"
],
"description": "Override pacing strategy. Falls back to campaign default, then \"even\"."
},
"frequency_cap_session": {
"anyOf": [
{
"type": "integer",
"minimum": 1,
"maximum": 20
},
{
"type": "null"
}
],
"description": "Per-session impression cap for this buy. NULL means defer to inventory cap. Falls back to campaign default, then 3."
},
"agent_mandate": {
"description": "Optional signed agent mandate (ADR-066). Verified by the auction-entry gate."
},
"agent_id": {
"type": "string",
"maxLength": 64,
"description": "Optional agent identifier (telemetry; feeds ADR-066 behavioral-risk shadow logging)."
}
},
"required": [
"inventory_id",
"advertiser_id",
"bid_cents",
"pricing_model",
"budget_cents"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}