~/toolhouse
2026.04.21·2 min read·adtech · performance

Prebid timeouts are lying to you

Why the timeout knob in your Prebid config doesn't mean what the docs say, and how to actually measure where your latency is going.

Every team I've worked with eventually files the same ticket: "auction timeout is set to 1500 ms but bidders are still timing out." The fix they reach for is to bump the timeout, the auction gets slower, RPM drops, and someone files a follow-up ticket that says the opposite.

The trap is that bidderTimeout is not the budget you think it is. Prebid measures it from the moment requestBids() fires, but most slow-page issues happen before that — in the script load, in the consent gate, in the first paint blocking the main thread. By the time the auction starts, the budget you set has already been spent on something else.

Here's what I do instead. Open pbjs.getEvents() and dump it through the inspector:

The events you actually want are auctionInit, bidRequested, bidResponse, and bidTimeout — and the deltas between them, not just the timestamps. A bidder that "times out" at 1500 ms is often one whose bidRequested fired 800 ms after auctionInit because the page was busy doing something else.

const events = pbjs.getEvents();
const init = events.find(e => e.eventType === "auctionInit").args.timestamp;
const responses = events
  .filter(e => e.eventType === "bidResponse")
  .map(e => ({ bidder: e.args.bidderCode, delta: e.args.responseTimestamp - init }));
console.table(responses);

Run that on a live page and you'll usually find one or two bidders eating the entire budget while the rest finish in 200 ms. That's where the optimization lives — not in the timeout value, in the bidders themselves.

The headline metric is auction time. The metric that moves the needle is time-to-first-bid-request per bidder.

Once you have the deltas, the playbook is boring: lazy-load anything you can defer, move consent resolution off the critical path, and prune any bidder whose p50 first-bid-request delta is over 400 ms. Read the official Prebid timing docs for the canonical definitions, but trust the timeline more than the docs — they were written for an idealized auction that doesn't share a thread with the rest of your page.