The whole point of Prebid was to put ad exchanges/SSPs not owned by Google on an even keel with DoubleClick AdX. It had been overstepping its position in ad stack via dynamic allocation.
Here’s how the whole thing played out, from the beginning.
DFP Before Dynamic Allocation
DFP delivered line items based on priority.*
- Sponsorship (priority 4): Directly sold, percentage goal
- Standard (priority 6, 8, and 10): Directly sold, impression goal, start/end dates
- Network (priority 12): Specified percentage of traffic
- Bulk (priority 12): Specified number of impressions or clicks
- Price Priority (PP) (priority 12): No goals, daily/lifetime impression or click caps
- AdSense / AdX (priority 12)
*Default numerical priorities: You can’t change these unless your DFP account is eligible for ‘configurable priority’. This feature allows AdX and/or PP line items to be set to any numerical priority value.
This is what happens when DFP receives an ad request (without dynamic allocation):
- DFP runs through each priority level, from 1 (highest) to 16 (lowest), looking for eligible line items for this impression.
- DFP finds the “best” line item by eliminating other eligible line items based on:
- Frequency capping
- Exclusions (competitive separation and similar restrictions)
- It picks the highest priority line item that passes all criteria in Step 2. and serves the ad. If multiple line items qualify, the one with the highest CPM wins and serves the ad.
Dynamic allocation created an environment that allowed AdX to waltz in and win any impression—priorities and goals be damned—so long as it could beat everyone else’s price, which it often managed to do.
DFP Dynamic Allocation: The Intricate Machinations
If AdX line items are eligible for an impression (and dynamic allocation is enabled):
1. DFP finds all other eligible line items.
2. DFP calculates the following:
- The “Temporary CPM” of the best Standard line item: If a Standard line item is eligible, DFP issues it a “temporary CPM”. This price depends on its pace.
If the line item is struggling to meet its delivery goal, DFP issues a higher temporary CPM (making it more likely to win). If it’s nearing delivery goal, DFP will give it a lower temporary CPM.
This “temporary CPM” (let’s call it ‘A’) goes to compete against…
- The average CPM of the best Remnant line item: If network, bulk, and/or price priority line items are eligible, DFP compares average CPMs. The line item with the highest average CPM is chosen to compete. Let’s call it ‘B’.
[Note that if you enter it, a “value CPM” will be used to compete instead.]
3. The higher (CPM) of A and B is sent to AdX, where it acts as the price floor for a real-time auction. If you have AdX price rules, they will apply.
4. If AdX provides a net CPM bid higher than the floor (Step 3.), impression goes to AdX. If not, whichever is higher of A and B wins.
Why The Industry Cried Foul at Dynamic Allocation
Because this system didn’t necessarily reflect publishers’ best interests at all times.
For starters, dynamic allocation doesn’t take real-time demand into account – except on Google’s own Ad Exchange. Imagine AdX at the top of every waterfall setup within DFP, but with the ability to purchase direct-sold inventory as well.
Publishers who were hoping to directly sell niche inventory for a potentially higher price to handpicked, differentiated demand sources were left hanging too: AdX wasn’t nearly as conservative about purchasing inventory as it is now.
That’s not all. Google relied on the informational advantage (DFP + AdX integration) to “cherry-pick” inventory in mysterious, but decidedly underhanded ways.
According to an ad tech executive who wished to remain anonymous, “AdX always won the impression if the user happened to be at the end-of-funnel stage in a purchase journey, essentially stealing attributions from other exchanges. On paper, it went on to show advertisers that DBM (DoubleClick Bid Manager) with AdX inventory gave them better results than any other platforms.”
Thankfully, header bidding changed all that.
Today’s Stacks: AdX in Dynamic Allocation vs Header Bidding
Since AdX has the advantage of having the largest pool of buyers out there (DBM demand), it can legitimately win more impressions than header bidding demand partners. However, the real-time bids (from HB wrapper) definitely put extra pressure on AdX for each impression, which is rather the point.
The simplest ad stack within DFP lets HB demand partners compete on all inventory against AdX (in dynamic allocation), somewhat like this: Header Bidding (PP line items at desired price granularity) winning bid against AdX (dynamic allocation).
It’s not pretty and the line item setup can take a while – but it makes sure you get the best yield possible for each impression.
Google’s Countermeasures: DFP First Look, Exchange Bidding
Google debuted First Look, to a lukewarm reception, two years ago.
Publishers specify different Pricing Rules in AdX for First Look – inventory to include and exclude, whitelisted buyers, minimum CPMs, the whole shebang. Once DFP receives ad request, AdX gets “first right of refusal” – it conducts a real-time auction and wins impression – reservation line items and competing bids from header bidding demand partners be damned – and serves the ad.
From ad ops perspective, the premise is to sell fewer (2-3%) impressions at very high CPMs to AdX – by letting it take a look at more than 90% of your inventory. With First Look, AdX gets to “cherry-pick” impressions at exorbitant CPMs, but on the condition that you forego the unified auction if AdX calls dibs on it.
At first glance, First Look seems a lot like header bidding. Except it’s not. First Look establishes a preferred auction with a price floor.
— Pat McCarthy, SVP Marketing, AppNexus
If First Look doesn’t win the impression, the unified auction (Header Bidding vs AdX in Dynamic Allocation) takes place. Publishers cannot add their own demand partners for First Look access – the only known, external demand partner currently participating in DFP First Look is Criteo.
There is very little clarity on how much Google charges external demand partners (or the publishers) for impressions won through First Look. It’s also uncertain whether AdX gets to use the DFP First Look data for other auctions.
More recently, Google launched an open-beta of exchange bidding in dynamic allocation for select DFP Premium publishers. This works much like a server-to-server header bidding implementation, but only for exchanges who are willing to hop onboard with Google. Whether competing exchanges have to pay a tax to Google in order to participate is yet unknown.