Bid Stack 101
26 subscribers
15 photos
3 links
Header bidding explained without the AdTech jargon: what Prebid, wrappers, timeouts and floors actually do, one bite-sized lesson at a time, so non-ad-ops site owners can finally get it.
Download Telegram
Myth: copy a successful site's config and you'll earn like them

The shortcut: find a big publisher's setup, copy their partners and timeout, done.

Why it fails: their numbers fit their audience. A site with mostly US desktop visitors can run a short timeout and premium partners. If your visitors are mobile and global, those same settings might starve your auction of bids.

Tiny example: their 1200ms timeout works on fast US connections but cuts off bids from your slower mobile readers in other regions.

One thing to try: copy their structure (how things are organized) as a starting point, then test every number against your own traffic.

In plain English: borrow the skeleton, never the exact numbers.


Хочешь больше cmo appointments? @cmo_week_aff
The old way (waterfall) quietly underpaid you

Before header bidding, sites used a "waterfall" — ad partners were asked to buy your ad space one at a time, in a fixed line.

Why that hurts:
— The first partner in line got first dibs, even if a partner further down would have paid more.
— Partners were ranked by their average past price, not what they'd actually pay right now.

Tiny example: Partner A usually pays $2, so they go first. But today Partner C would have paid $5 — they never got asked.

One thing to try: ask your ad setup whether you're still on a waterfall. If yes, that's the upgrade conversation to have.

In plain English: a waterfall asks buyers in order; header bidding asks them all at once, so the real top bidder wins.
What header bidding actually is

Header bidding is an auction for your ad space that happens the instant your page starts loading — usually finished in under 300 milliseconds (less than half a second).

Why it matters: instead of one ad buyer getting first pick, many buyers bid at the same time. More bidders competing means a higher winning price for you.

Tiny example: five ad partners each say what they'll pay — $1.40, $2.10, $0.90, $3.05, $1.80. The $3.05 bid wins and that ad shows. You earned $3.05 instead of whoever happened to be "first in line."

One thing to try: open any big news site, watch an ad load, and picture that silent auction firing.

In plain English: it's a 200-millisecond auction held the moment your page loads.
Prebid: the free toolkit everyone starts with

Prebid is a free, open-source wrapper — the most common one independent sites use to run header bidding.

Why it matters: it's not owned by one ad company, so it doesn't quietly favor any single buyer. That neutrality is the whole point.

The three pieces you'll hear about:
— Prebid.js — the code on your page that runs the auction.
— Adapters — small plug-ins, one per ad partner, so each can bid.
— Prebid Server — an optional version that runs the auction on a computer instead of in the browser (more on that another day).

One thing to try: visit prebid.org and skim the "What is Prebid" page. Just get familiar.

In plain English: Prebid is the free, neutral referee most sites build on.
From the network

Want more on ad ops? @AdOpsWire covers it daily and goes deeper than most. Solid follow.
Floor price: your polite "no thanks" line

A floor price is the lowest amount you'll accept for an ad. Bids below it are ignored.

Why it matters: it stops you selling premium space for pennies, and it can actually push bidders to offer more. But set it too high and your space goes empty — and an empty slot earns zero.

Tiny example: floor at $0.50. A $0.30 bid is refused; a $0.70 bid wins. But if you floor at $5 and the best bid is $2, nothing shows and you earn nothing.

One thing to try: find your current floor. Test raising it 10 cents on one ad slot and watch revenue for a week.

In plain English: the floor is the smallest price you're willing to say yes to.
Client-side vs server-side, gently

These describe where your auction runs.

— Client-side: the auction happens in the visitor's browser. Easy to set up, but each bidder adds a little page weight.
— Server-side: the auction happens on a separate computer (a server) that your page asks once. Lighter on the browser, but you trust that server to be fair.

Why it matters: browsers can only handle so many bidders before slowing down. Servers can hold far more.

Tiny example: 5 bidders? Client-side is fine. Want 25 bidders? A server handles that crowd without choking the page.

One thing to try: count how many bidders you run. Under ~7, client-side is usually plenty.

In plain English: client-side runs the auction in the browser; server-side runs it on a computer elsewhere.
What a "demand partner" really is

A demand partner is simply a company that brings buyers (advertisers) to bid on your ad space. "Demand" means "people who want to buy."

Why it matters: each partner you add is another bidder in the auction. More serious bidders usually means higher prices — up to a point.

Tiny example: you add three demand partners. Now instead of two bids per auction you get five, and the winning price ticks up because there's more competition.

One thing to try: list your current demand partners by name. If you can't name them, that's the first thing to ask whoever manages your ads.

In plain English: a demand partner is a company that brings advertisers to bid in your auction.
Why adding 20 partners can earn you less

It feels obvious: more bidders, more money. But past a certain point, extra demand partners actually cost you.

Why it matters: each partner adds a little page-load weight and a little auction delay. Slow pages lose visitors, and tired bidders time out. You also pay some partners a cut.

Tiny example: bidders 1–6 each add real competition. Bidders 15–20 rarely win, but they still slow your auction by 200ms — enough to make a fast $3 bidder time out.

One thing to try: ask for a "win rate" report. Any partner that wins almost nothing is a candidate to drop.

In plain English: bidders who never win still slow you down — quality beats quantity.
CPM: the price tag on every bid

When a bidder says "$2.50," they mean $2.50 CPM — the price for showing the ad 1,000 times. CPM stands for "cost per mille," and mille is Latin for thousand.

Why it matters: every bid you'll ever see is a CPM. Reading them right keeps you from panicking that "$2.50" sounds tiny — it's per thousand views, not per view.

Tiny example: a $2.50 CPM on 40,000 daily ad views = $100 a day from that slot, if it wins every time.

One thing to try: take your best CPM, multiply by your daily ad views, divide by 1,000. That's your rough ceiling.

In plain English: CPM is the price for 1,000 ad views, and every bid is quoted that way.
Lazy loading: don't auction what nobody sees

Lazy loading means an ad's auction only fires when the visitor scrolls near that slot — not all at once when the page opens.

Why it matters: ads far down the page often never get seen. Auctioning them on load wastes bids and slows the top of your page. Buyers also pay more for ads that are actually viewed.

Tiny example: an ad in your footer. Without lazy loading, it auctions instantly and usually goes unseen. With it, the auction waits until the reader scrolls down — and only then.

One thing to try: ask if lazy loading is on for your below-the-fold slots, and what scroll distance triggers it.

In plain English: lazy loading delays an ad's auction until the visitor is about to see it.
Why "viewability" quietly sets your price

Viewability is the share of your ads that are actually seen — at least half the ad on screen for one second counts as "viewed."

Why it matters: buyers pay more for slots that get seen. A slot with 70% viewability commands higher bids than one at 30%, even on the same site.

Tiny example: two identical ad boxes. The one near your headline is seen 8 times in 10; the one buried mid-article is seen 3 times in 10. Bidders quietly pay more for the first.

One thing to try: find your viewability per slot. Anything under ~50% is a slot to move higher or lazy-load.

In plain English: ads that get seen earn more, so placement is part of your price.
ads.txt: the bouncer's guest list

ads.txt is a plain text file at yoursite.com/ads.txt that lists which ad partners are allowed to sell your space. Buyers check it before bidding.

Why it matters: it stops scammers from pretending to sell your inventory. If a real partner isn't listed, careful buyers won't bid through them — you lose money silently.

Tiny example: you add a new demand partner but forget their line in ads.txt. Their bids quietly get rejected, and you never see the warning.

One thing to try: open yoursite.com/ads.txt. Every demand partner you use should have a line. Missing one? That's a fix.

In plain English: ads.txt is the public guest list of who's allowed to sell your ads.