Platform Request Schema
Overview
AI platform request sent to an AIP operator to initiate an ad auction. This payload uses the UCP (User Context Protocol) structure with nested objects for producer, context, identity, and extensions. Operators transform it into acontext_request before distributing to brand agents.
UCP Structure
The PlatformRequest follows the UCP specification with the following top-level structure:| Field | Type | Description |
|---|---|---|
spec_version | string | UCP specification version (e.g., “1.0.0”) |
message_id | string | Unique identifier for this auction request |
timestamp | string | ISO 8601 timestamp when the platform generated the request |
producer | object | Producer information (platform/agent that created the request) |
context | object | Context information (language, publisher, placement, device, geography) |
identity | object | Identity information (namespace, value_hash, confidence) |
extensions | object | Extensions containing AIP-specific and other vendor data |
Producer Object
| Field | Type | Description |
|---|---|---|
agent_id | string | Identifier of the AI platform sending this request |
agent_role | string | Role of the agent, typically “publisher” |
software | string | Software name (e.g., “chatgpt”) |
software_version | string | Software version or model identifier (e.g., “4.3-mini”) |
Context Object
| Field | Type | Description |
|---|---|---|
language | string | User locale in BCP 47 format (e.g., “en-US”) |
publisher | string | Publisher identifier (same as producer.agent_id) |
placement | object | Placement information |
placement.ad_unit | string | Platform surface type: “conversation”, “chat”, “voice”, etc. |
device | object | Device information |
device.platform | string | Device platform: “web”, “mobile”, etc. |
device.form_factor | string | Device form factor: “mobile”, “desktop”, “tablet” |
device.ua_hash | string | Optional user agent hash |
geography | object | Geographic information |
geography.country | string | User country code (ISO 3166-1 alpha-2, e.g., “US”) |
Identity Object
| Field | Type | Description |
|---|---|---|
namespace | string | Identity namespace (e.g., “platform_user”) |
value_hash | string | Anonymous hashed user ID |
confidence | number | Confidence level for identity (0.0 to 1.0) |
Extensions Object
Theextensions object contains vendor-namespaced data. The aip namespace contains AIP-specific fields:
AIP Extensions (extensions.aip)
| Field | Type | Description |
|---|---|---|
session_id | string | Conversation or interaction session ID |
turn_index | integer | Turn index in the conversation |
query_text | string | User’s raw query text |
messages | array | Optional short conversation history (last N turns) |
latency_budget_ms | integer | Optional latency budget from platform (milliseconds) |
cpx_floor | number | Minimum CPX (USD) required by the platform |
Example
Validation Rules
spec_versionmust be “1.0.0” for UCP v1.0message_idmust be a unique string identifiercontext.languagemust match pattern^[a-z]{2}-[A-Z]{2}$(BCP 47)context.geography.countrymust match pattern^[A-Z]{2}$(ISO 3166-1 alpha-2)timestampmust be RFC 3339 / ISO 8601 compliantextensionskeys must be vendor namespaces (e.g.,aip,openai,vectorgrid)identity.confidencemust be between 0.0 and 1.0