v2.6 — Current

OpenRTB 2.6 for AI

PromptBid extends the IAB OpenRTB 2.6 protocol with fields for conversational context, intent classification, and AI-native ad formats. If your systems already speak OpenRTB, integration is minimal.

Overview

OpenRTB (Real-Time Bidding) is the industry standard protocol for programmatic advertising auctions. PromptBid implements OpenRTB 2.6 with additive extensions — standard fields work as expected, and our ext.promptbid namespace carries AI-specific signals.

Sub-100ms Auctions

Full auction cycle — bid request, DSP evaluation, winner selection, creative return — completes in under 100 milliseconds p99.

Privacy by Design

No user IDs, no cookies, no device fingerprints. Targeting is based on conversation context, not user profiles. Differential privacy applied to all signals.

Standard Protocol

Fully compliant with IAB OpenRTB 2.6. Any DSP or bidder that speaks OpenRTB can participate with zero custom integration work.

Second-Price Auction

Winner pays $0.01 above the second-highest bid. Floor prices supported per-impression. Transparent auction mechanics with full bid landscape reporting.

Bid Request Object

The bid request follows the standard OpenRTB 2.6 BidRequest schema. Required fields are the request ID, at least one impression object, and the app object identifying the builder's application.

FieldTypeRequiredDescription
idstringYesUnique request ID generated by the builder's application
imparrayYesArray of impression objects (ad placement opportunities)
appobjectYesApplication object — bundle ID, name, category (IAB taxonomy)
deviceobjectNoDevice info — user agent, language, connection type. No PII.
userobjectNoAnonymized user segment (no IDs). Optional consent signals.
ext.promptbidobjectNoAI-specific extensions — context, intent, format preferences
tmaxintegerNoMax auction time in ms. Default: 100. Range: 50–500.
curarrayNoAllowed currencies. Default: ["USD"]

Impression Object

Each impression represents a single ad placement opportunity within a conversation turn.

FieldTypeRequiredDescription
idstringYesUnique impression ID within this request
bidfloorfloatNoMinimum CPM bid. Default: 10.0 (platform floor is $10)
bidfloorcurstringNoFloor currency. Default: "USD"
ext.promptbid.formatstringNoPreferred ad format: "sponsored-reply", "context-card", "action-prompt"
ext.promptbid.placementstringNoWhere in conversation: "after-response", "sidebar", "inline"

AI Extensions — ext.promptbid

These fields live in the ext.promptbid namespace on the bid request and carry the signals that make PromptBid auctions context-aware. All fields are optional — the more context you provide, the better the ad relevance and CPM.

FieldTypeDescription
contextstringSummary of the current conversation topic. Used for contextual targeting. Max 500 chars. Differential privacy applied server-side.
intentstringClassified user intent: "research", "comparison", "purchase", "support", "creative", "learning"
turn_countintegerNumber of conversation turns so far. Higher counts indicate deeper engagement.
keywordsarrayExtracted topic keywords for targeting. Max 10 keywords.
categorystringIAB content category of the conversation (e.g., "IAB19-6" for AI/ML)
sentimentstringConversation sentiment: "positive", "neutral", "negative". Ads are suppressed in negative sentiment by default.
formatstringPreferred ad format: "sponsored-reply", "context-card", "action-prompt"
blocked_catsarrayIAB categories to block from this impression (builder-level ad quality controls)

Context privacy

The context field is processed through differential privacy before being shared with demand partners. Raw conversation text is never exposed to advertisers. Builders can set a privacy level (low/medium/high) at the app level.

Bid Response Object

Winning bids are returned in a standard OpenRTB 2.6 BidResponse. The creative payload is included inline in the adm field — no additional creative fetch is needed.

FieldTypeDescription
idstringMatches the bid request ID
seatbid[].bid[].idstringUnique bid ID for tracking and reporting
seatbid[].bid[].impidstringMatches the impression ID from the request
seatbid[].bid[].pricefloatWinning CPM price (second-price auction)
seatbid[].bid[].admstringCreative markup — JSON payload with ad content, CTA, and tracking URLs
seatbid[].bid[].adomainarrayAdvertiser domains for brand safety filtering
seatbid[].bid[].catarrayIAB content categories of the creative
seatbid[].bid[].ext.promptbid.formatstringActual ad format of the winning creative
seatbid[].bid[].ext.promptbid.ttlintegerCreative TTL in seconds. Render within this window or discard.

No-bid responses

If no bidder meets the floor price or passes brand safety checks, PromptBid returns HTTP 204 (no content). Your application should handle this gracefully — simply skip the ad placement for that turn.

Ad Formats

PromptBid supports two ad formats designed for conversational AI interfaces. Specify your preferred format in imp.ext.promptbid.format or omit it to let the exchange choose based on the winning bid.

Native

Natural-language ad inserted after the AI response. Highest engagement — users interact with it like a message. Avg CPM: $15–$45.

Sponsored

Compact card alongside the conversation — product recs, links, or promos. Sidebar or inline placement. Avg CPM: $18–$35.

Code Examples

Full bid request and response cycle in JavaScript and cURL.

Bid Request

POST /api/v1/bid/openrtb
const response = await fetch(
  "https://api.promptbid.ai/api/v1/bid/openrtb",
  {
    method: "POST",
    headers: {
      "Authorization": "Bearer pk_live_...",
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      id: "req-abc123",
      imp: [{
        id: "imp-1",
        bidfloor: 10.0,
        ext: {
          promptbid: {
            format: "sponsored-reply",
            placement: "after-response"
          }
        }
      }],
      app: {
        bundle: "com.example.assistant",
        name: "TravelBot",
        cat: ["IAB20"]
      },
      ext: {
        promptbid: {
          context: "user planning a week-long trip to Tokyo",
          intent: "purchase",
          keywords: ["travel", "tokyo", "hotels"],
          turn_count: 4,
          sentiment: "positive"
        }
      }
    })
  }
);

const bid = await response.json();
// bid.seatbid[0].bid[0].adm contains the creative
POST /api/v1/bid/openrtb
curl -X POST https://api.promptbid.ai/api/v1/bid/openrtb \
  -H "Authorization: Bearer pk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "id": "req-abc123",
    "imp": [{
      "id": "imp-1",
      "bidfloor": 10.0,
      "ext": {
        "promptbid": {
          "format": "sponsored-reply",
          "placement": "after-response"
        }
      }
    }],
    "app": {
      "bundle": "com.example.assistant",
      "name": "TravelBot",
      "cat": ["IAB20"]
    },
    "ext": {
      "promptbid": {
        "context": "user planning a week-long trip to Tokyo",
        "intent": "purchase",
        "keywords": ["travel", "tokyo", "hotels"],
        "turn_count": 4,
        "sentiment": "positive"
      }
    }
  }'

Example Response

200 OK — Winning bid
{
  "id": "req-abc123",
  "seatbid": [{
    "bid": [{
      "id": "bid-xyz789",
      "impid": "imp-1",
      "price": 18.50,
      "adomain": ["booking.com"],
      "cat": ["IAB20-3"],
      "adm": "{\"headline\":\"Park Hyatt Tokyo — 20% off this week\",\"body\":\"Shinjuku location, Michelin dining, panoramic city views.\",\"cta\":\"View Rates\",\"url\":\"https://...\",\"tracking\":{\"imp\":\"https://t.promptbid.ai/...\",\"click\":\"https://t.promptbid.ai/...\"}}",
      "ext": {
        "promptbid": {
          "format": "sponsored-reply",
          "ttl": 300
        }
      }
    }]
  }],
  "cur": "USD"
}

Privacy Model

PromptBid's auction model is built on contextual targeting — no user profiles, no cross-app tracking, no PII in bid streams.

  • No user IDs, device IDs, or IP addresses in bid requests
  • Conversation context is processed through differential privacy before reaching demand partners
  • Builders control context granularity: high (topic-level only), medium (topic + keywords), low (topic + keywords + intent)
  • Advertisers target by context category and intent — never by user identity
  • All tracking is first-party and aggregate — impression and click counts, no individual-level data
  • GDPR, CCPA, and SOC 2 Type II compliant

Compliance & Versioning

PromptBid maintains strict compatibility with the OpenRTB 2.6 specification published by the IAB Tech Lab. All AI-specific extensions are additive and never break standard implementations.

Version support

OpenRTB 2.6 (current) and 2.5 (backward compatible) are fully supported. OpenRTB 3.0 support is planned for Q3 2026.

Prefer a simpler API?

PromptBid also offers a simplified HTTP endpoint that abstracts away OpenRTB complexity while maintaining full feature parity.

View Simple Bid API