Skip to main content

Context Request Schema

Overview

Normalized request that an Operator sends to subscribed Brand Agents when opening an auction. Uses UCP-like format with enriched context, intent classification, and operator-generated metadata. It includes the enriched intent, allowed creative formats, and timing information.

UCP-like Structure

The ContextRequest follows a UCP-like structure with the following top-level fields:
FieldTypeDescription
spec_versionstringAIP specification version (default: “aip/1.0”)
message_idstringUnique identifier for this context request (maps to PlatformRequest message_id)
timestampstringISO 8601 timestamp of the event
producerobjectProducer information (from PlatformRequest)
session_idstringConversation or interaction session ID
turn_indexintegerTurn index in the conversation
latency_budget_msintegerEnd-to-end latency budget in milliseconds (optional)
allowed_formatsarrayCreative formats allowed by the operator
context_idstringUnique identifier generated after transforming to ContextRequest
languagestringUser locale in BCP 47 format
publisherstringPublisher identifier (same as producer.agent_id)
placementobjectPlacement information
deviceobjectDevice information
geographyobjectGeographic information
intentobjectOperator-generated semantic understanding
verticalsarrayNormalized topical verticals
embeddingsarrayOptional embedding information (optional)
consentobjectOptional consent information (optional)
usage_constraintsobjectOptional usage constraints (optional)
platform_typestringPlatform type for format determination (optional)
extensionsobjectAdditional extension metadata (optional)

Producer Object

FieldTypeDescription
agent_idstringIdentifier of the AI platform
agent_rolestringRole of the agent, typically “publisher”
softwarestringSoftware name
software_versionstringSoftware version or model identifier

Placement Object

FieldTypeDescription
ad_unitstringPlatform surface type: “conversation”, “chat”, “voice”, etc.

Device Object

FieldTypeDescription
platformstringDevice platform: “web”, “mobile”, etc.
form_factorstringDevice form factor: “mobile”, “desktop”, “tablet”

Geography Object

FieldTypeDescription
countrystringUser country code (ISO 3166-1 alpha-2)

Intent Object

FieldTypeDescription
typestringHigh-level intent classification
decision_phasestringCommercial funnel decision phase
confidencenumberConfidence score for intent classification (0.0-1.0)
summarystringShort operator-generated summary of the relevant conversation context
operator_relevance_scorenumberOperator’s relevance score for the query (0.0-1.0, optional)
classification_reasoningstringLLM reasoning for intent classification (optional)
intent_confidencenumberConfidence score for intent classification (0.0-1.0, optional)

Required Fields

FieldTypeDescription
spec_versionstringAIP specification version
message_idstringUnique identifier for this context request
timestampstringISO 8601 timestamp
producerobjectProducer information
session_idstringConversation/session identifier
turn_indexintegerTurn index in the conversation
context_idstringUnique ID for this auction request
languagestringUser locale in BCP 47 format
publisherstringPublisher identifier
placementobjectPlacement information
deviceobjectDevice information
geographyobjectGeographic information
intentobjectOperator-generated semantic understanding
verticalsarrayNormalized topical verticals

Optional Fields

FieldTypeDescription
latency_budget_msintegerPlatform latency budget in milliseconds
allowed_formatsarrayCreative formats allowed: weave, tail, product_card, bridge
embeddingsarrayOptional embedding information for semantic search
consentobjectOptional consent information
usage_constraintsobjectOptional usage constraints
platform_typestringPlatform type (e.g., ‘chat’, ‘search’, ‘assistant’, ‘vibe_coding_platform’)
extensionsobjectAdditional extension metadata from PlatformRequest (non-AIP)

Example

{
  "spec_version": "aip/1.0",
  "message_id": "req_92fA1",
  "timestamp": "2025-11-14T18:22:00Z",
  "producer": {
    "agent_id": "openai_chat",
    "agent_role": "publisher",
    "software": "chatgpt",
    "software_version": "4.3-mini"
  },
  "session_id": "sess_001",
  "turn_index": 3,
  "latency_budget_ms": 500,
  "allowed_formats": ["weave", "tail", "product_card"],
  "context_id": "ctx_92fA1",
  "language": "en-US",
  "publisher": "openai_chat",
  "placement": {
    "ad_unit": "conversation"
  },
  "device": {
    "platform": "web",
    "form_factor": "desktop"
  },
  "geography": {
    "country": "US"
  },
  "intent": {
    "type": "commercial",
    "decision_phase": "compare",
    "confidence": 0.87,
    "summary": "User is evaluating CRM tools and narrowing down options.",
    "operator_relevance_score": 0.87,
    "classification_reasoning": "User query indicates commercial intent with comparison phase based on keywords and context.",
    "intent_confidence": 0.92
  },
  "verticals": ["crm", "smb_software"],
  "platform_type": "chat"
}

Notes

  • allowed_formats lets operators constrain how creatives render for the requesting platform surface.
  • platform_type is used by brand agents to determine preferred format (e.g., bridge format for vibe_coding_platform).
  • intent.operator_relevance_score and intent.classification_reasoning provide additional context for brand agent decision-making.
  • extensions may contain vendor-namespaced metadata from the original PlatformRequest.