{"page":"/blog/rtb-bidder-architecture","modified":"2026-11-10","license":"https://creativecommons.org/licenses/by/4.0/","columns":["Line","What it does","Why"],"rows":[["tmax_ms","The exchange's deadline, read from each request","The spec says it \"supersedes any a priori guidance from the exchange\""],["network_round_trip_budget_ms","Time reserved for the request and response on the wire","Assumption; measure it per exchange and region"],["safety_margin_ms","Slack for garbage collection pauses and queueing","Google advises \"targeting a total time well below the deadline\""],["internal_deadline_ms","120 minus 30 minus 15","The bidder stops work at this point"],["stages","Per-stage budgets that sum to 31 ms","The remaining 44 ms absorbs queueing under load"],["on_timeout","What each stage does when it runs out of time","A late bid earns nothing, so degrade rather than wait"],["on_internal_deadline","Return HTTP 204, the cheapest no-bid","OpenRTB recommends 204 for \"no content\" responses"]],"sourceUrls":[[],[],[],[],[],[],[]]}