#relationships·Jul 17, 2026·6 min read
Bid Request vs Bid Response: Key Differences in Programmatic Advertising
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.”
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
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.
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
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).
When you are a buyer optimizing bid price or creative — analyze Bid Response data to see which creatives win and at what CPM.
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
| Lens | Bid Request | Bid Response |
|---|---|---|
| Direction | Publisher → Buyer | Buyer → Publisher |
| Primary content | Impression context (URL, sizes, user) | Bid price, creative, win URL |
| Timeout relevance | No timeout (server waits) | Must arrive before timeout (e.g., 100ms) |
| Typical use case | Supply analysis, data leakage audit | Demand 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 > 0when calculating fill rate.
- What to do instead: Filter responses to only those with
Quick check
Test whether you can tell these metrics apart.
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
Metrics
Bid Request (OpenRTB)
A Bid Request is the message an ad exchange sends to bidders (DSPs) to describe available inven…
AuctionMetrics
Bid Response (Bid Resp)
Bid Response is the message a bidder sends back to an exchange after receiving a Bid Request.
AuctionRelationships
CTR vs Engagement Rate
RelationshipsRelationships
First-Price Auction vs Second-Price Auction
Relationships