#relationships·Jul 17, 2026·6 min read

Bid Request vs Bid Response: Key Differences in Programmatic Advertising

Bid Request (OpenRTB) vs Bid Response (Bid Resp) relationship cover

Bid Request and Bid Response are the two core messages exchanged in real-time bidding. A Bid Request is the publisher’s call for bids; a Bid Response is the buyer’s answer. Understanding the gap between them is essential for diagnosing fill rates and latency.

Core Difference

Bid Request is sent by the publisher’s ad server (e.g., Google Ad Manager) to demand sources when an ad slot becomes available. It contains:

  • Page URL, device type, user ID
  • Ad unit sizes, floor price
  • Contextual signals (IAB categories)

Bid Response is the buyer’s reply (e.g., from a DSP). It includes:

  • Bid price (CPM)
  • Creative payload (VAST, image, HTML)
  • Win URL for tracking

The request asks “who wants this impression?” The response says “I’ll pay X for it.”

What they share

  • Both follow the OpenRTB protocol (IAB standard).
  • Both carry an auction ID to match request to response.
  • Both are real-time messages (sub-100ms expected).
  • Both can include user consent signals (TCF, US Privacy).

Which to use when

Choose Bid Request when:

  • You want to measure supply volume (how many opportunities exist).
  • You’re diagnosing timeout rates (requests that never got a response).
  • You’re auditing data leakage (what user data is sent).

Choose Bid Response when:

  • You want to measure demand aggressiveness (bid prices, win rates).
  • You’re optimizing creative delivery (size, format compliance).
  • You’re debugging latency (response time per buyer).

Use both together when:

  • Calculating fill rate = responses / requests.
  • Building a waterfall or header bidding wrapper that logs both.

How they diverge

Direction

Bid Request flows from publisher to buyer. Bid Response flows from buyer back to publisher.

Content focus

Bid Request describes the impression (context, user, slot). Bid Response describes the offer (price, creative, tracking).

Timing pressure

Bid Request has no deadline (server waits). Bid Response must arrive before the timeout (typically 100–200ms) or it’s ignored.

Where they overlap

Protocol

Both are defined in the OpenRTB 2.x specification and use JSON or Protobuf.

Auction ID

Both carry the same bidid or auctionid so the exchange can match them.

Consent signals

Both can include GDPR consent (TCF string) and CCPA opt-out signals.

Real scenarios

  1. Low fill rate on mobile web

    Setup: Publisher sees 50% fill rate on mobile web.

    • What happened: Bid Request volume was high, but many requests had no user ID (no cookie).
    • What they checked: Compared request logs (missing device.ifa) vs response logs (zero bids for those requests).

    Takeaway: Missing user identifiers in the Bid Request caused buyers to skip responding. Fix: enable a privacy-compliant ID solution.

  2. High latency from one DSP

    Setup: Header bidding wrapper shows one DSP always responds after 300ms.

    • What happened: The DSP’s Bid Response arrived after the timeout.
    • What they checked: Timestamp of Bid Request sent vs Bid Response received.

    Takeaway: The DSP needed to optimize its internal auction logic. The publisher set a 200ms timeout and excluded slow bidders.

How they work together

Bid Request

When you are a publisher diagnosing why certain ad slots get no bids — check the Bid Request for missing signals (e.g., no user ID, wrong sizes).

Bid Response

When you are a buyer optimizing bid price or creative — analyze Bid Response data to see which creatives win and at what CPM.

Both

When you are an ad ops team troubleshooting a low fill rate — compare request volume vs response volume to spot timeouts or filtering.

Side-by-side snapshot

LensBid RequestBid Response
DirectionPublisher → BuyerBuyer → Publisher
Primary contentImpression context (URL, sizes, user)Bid price, creative, win URL
Timeout relevanceNo timeout (server waits)Must arrive before timeout (e.g., 100ms)
Typical use caseSupply analysis, data leakage auditDemand analysis, creative optimization

Common pitfalls

  • Confusing request count with opportunity count

    Why the confusion is wrong: A single page load may generate multiple Bid Requests (one per ad slot). Counting requests as “impressions” inflates supply.

    • What to do instead: Use Bid Requests only to measure auction volume, not viewable impressions.
  • Ignoring no-bid responses

    Why the confusion is wrong: A Bid Response can be a “no-bid” (empty price). Some systems count it as a response, skewing fill rate.

    • What to do instead: Filter responses to only those with price > 0 when calculating fill rate.

Quick check

Test whether you can tell these metrics apart.

Progress: 1/5

single

Which message contains the bid price?

Select an answer to continue

For learning only. Not advice on bids or spend.

You may also like