Prebid hands the ad server a price as a key-value. But GAM does not know that key means money until you build line items, one per price bucket, that say "if hb_pb = 2.40, this is a $2.40 bid." This is the AdOps half of header bidding, and where setups silently break.
The GAM scaffold
- Register the key-values (
hb_pb,hb_adid, ...) in GAM so line items can target them. - Price Priority line items (type 12), one per price bucket, each targeting its
hb_pbvalue and priced to match it. - A single universal creative that renders whichever bid won, by reading
hb_adidand pulling the cached creative.
| Trafficking | Meaning |
|---|---|
| Top-price | Only the winning bid’s keys are sent. Fewer line items, no per-bidder reporting. |
| Send-all-bids | Every bidder’s keys are sent. More line items, but you can report and target per bidder. |
Watch out
Unified Pricing Rules (UPR) can override floors and interact with these line items. A UPR set above your header demand can quietly block it, a classic "why is my partner not winning" cause.
Quick check
You use $0.10 buckets from $0 to $20. Roughly how many Price Priority line items do you need?
Note
If hb_adid never reaches GAM, the universal creative has nothing to render and the slot goes blank, a textbook header-bidding failure.