Short answer: Usually because bids arrive too late, floors are too high, consent is missing, or bidders are set up for the wrong sizes. Check those four things first.
Common causes
Contents
hide
| Cause | How to check | Fix |
|---|---|---|
| Timeouts | Many bids arrive after the auction ends | Adjust the timeout or move slow bidders server-side |
| Floors too high | Fill dropped after a floor change | Lower floors per ad unit and test |
| Missing consent | Low fill mainly in Europe | Check your CMP and TCF settings |
| Wrong sizes or formats | A bidder never bids on some units | Match sizes in the bidder config |
| Low-quality or bot traffic | Fill low from some countries or sources | Block bots and review traffic sources |
Tools that help
- Header bidding timeout calculator
- Price granularity calculator
- ads.txt checker: missing ads.txt lines can stop bids entirely
- Consent requirements
Have an ad ops question?
Ask it anonymously. Selected questions get a full answer on bannerTag.
Ask AdOps →
