PlatformResponse Schema
Overview
PlatformResponse is the operator-generated response returned to the AI platform after auction evaluation. It communicates:- the outcome status of the auction
- the winning bid and reserved billing state, if any
- the render payload for platform presentation
- optional delegation availability for the winning bid
- optional tracking hooks for downstream events
PlatformResponse MUST use micros as the only canonical unit.
If status is "generated", recommendation MUST be present.
If status is "no_match", recommendation MUST be omitted.
If status is "error", an error object MUST be present.
Creative payloads MUST separate:
- advertiser identity
- ad assets
- advertiser destination URL
Top-Level Fields
| Field | Type | Required | Description |
|---|---|---|---|
spec_version | string | Yes | Spec version. MUST be "1.0" |
recommendation_id | string | Yes | Unique identifier for this recommendation |
timestamp | string | Yes | RFC 3339 timestamp when the response was produced |
status | string | Yes | Recommendation generation status: generated, no_match, or error |
ttl_ms | integer | Yes | Response time-to-live in milliseconds |
recommendation | object | Conditionally | Recommendation payload. Required when status="generated" |
delegation | object | No | Delegation availability surfaced to the platform |
tracking | object | No | Downstream event tracking hooks |
error | object | Conditionally | Error payload. Required when status="error" |
ext | object | No | Vendor extensions |
recommendation
Platform recommendation payload containing format, disclosure, and creative content.
| Field | Type | Required | Description |
|---|---|---|---|
format | string | Yes | Render format: weave, tail, product_card, or bridge |
disclosure | string | Yes | Disclosure label such as [Ad] or Sponsored |
creative | object | Yes | Structured creative payload |
offerId | string | No | Unique identifier for the offer being presented |
creative
Combined creative object containing brand information, ad assets, destination, and click tracking.
| Field | Type | Required | Description |
|---|---|---|---|
brand_name | string | Yes | Advertiser or brand name |
domain | string | No | Optional advertiser domain |
headline | string | Yes | Primary ad headline |
description | string | Yes | Ad description text |
cta_text | string | Yes | Call-to-action text |
follow_up_suggestion | string | No | Optional follow-up suggestion the platform can surface after the initial recommendation |
logo_url | string | No | Optional logo asset |
image_urls | array | No | Optional creative image assets |
landing_page_url | string | Yes | Advertiser-controlled destination URL |
delegation
Optional delegation availability surfaced to the platform for the winning bid.
| Field | Type | Required | Description |
|---|---|---|---|
available | boolean | No | Whether delegated execution is available |
mode | string | No | Delegation behavior: optional, recommended, or required |
trigger | string | No | Activation mode: user_action, explicit_consent, or operator_initiated |
cta_text | string | No | Delegation-specific CTA text |
tracking
Optional downstream tracking hooks.
| Field | Type | Required | Description |
|---|---|---|---|
exposure_url | string | No | Impression tracking endpoint |
followup_exposure_url | string | No | Follow-up impression tracking endpoint |
click_url | string | No | Click tracking endpoint |
conversion_url | string | No | Conversion tracking endpoint |
followup_engagement_url | string | No | Follow-up engagement tracking endpoint |
error
Present when status = "error".
| Field | Type | Required | Description |
|---|---|---|---|
code | string | Yes | Operator-defined error code |
message | string | Yes | Human-readable error message |
Example
Validation Rules
- All monetary values MUST use micros
ttl_msMUST be between1000and300000- If
status = "generated",recommendationMUST be present - If
status = "no_match",recommendationMUST be omitted - If
status = "error",errorMUST be present recommendation.creativeMUST separate advertiser identity, ad assets, and destination URL