CPX Exposure Event Schema
Overview
Event fired when the ad is actually exposed to the user.Required Fields
| Field | Type | Description |
|---|---|---|
event_type | string | Exposure event type (always cpx_exposure) |
serve_token | string | Serve token provided in auction-result. Used to link exposure → click → conversion |
session_id | string | Session identifier passed from platform_request |
platform_id | string | ID of the platform generating the event |
brand_agent_id | string | Winning brand agent from the auction-result |
wallet_id | string | Wallet that will be charged for this exposure |
pricing | object | Pricing information for this exposure |
timestamp | string | Timestamp when the exposure was detected (ISO 8601 format) |
Pricing Object
| Field | Type | Description |
|---|---|---|
unit | string | Billing unit for this event (always CPX) |
amount_cents | integer | Charge amount in CENTS. (bid = pay). Minimum: 0 |
Optional Fields
| Field | Type | Description |
|---|---|---|
exposure_metadata | object | Optional additional rendering context |
ext | object | Extension namespace for vendor-specific fields |
Exposure Metadata Object
| Field | Type | Description |
|---|---|---|
context_channel | string | Where the ad was displayed. Enum: ai_chat, voice_assistant, agentic |
position | integer | Position in the LLM or assistant output (if relevant). Minimum: 1 |
visibility_ms | integer | How long the ad was visible (if measurable). Minimum: 0 |
Example
Validation Rules
event_typemust be exactlycpx_exposurepricing.unitmust be exactlyCPXpricing.amount_centsmust be an integer with minimum value of 0timestampmust be in ISO 8601 date-time formatexposure_metadata.context_channelmust be one of:ai_chat,voice_assistant,agenticexposure_metadata.positionmust be at least 1exposure_metadata.visibility_msmust be at least 0