In first-price, bidding your true value means overpaying: you win at $4.00 when $3.21 would have won too. So buyers quietly bid less than they are willing to pay. That is bid shading, and it set off an arms race with sellers.
Bid shading is a DSP algorithmically bidding below its true value, aiming for the lowest price that still wins. It handed buyers back the savings first-price took away, so for publishers, first-price CPMs fell.
How sellers fight back
Sellers answer with dynamic floors: raising the minimum price in real time based on the demand they observe, clawing back some of what shading removed. Shade harder and floors rise; floors rise and shading has less room. An arms race.
Key idea
The equilibrium lands roughly where second-price would have, but now both sides run algorithms to get there: the buyer shades down, the seller floors up.
Quick check
A publisher complains first-price CPMs dropped after the switch. Name one lever to recover some.