28
Google’s Auction for TV ads Noam Nisan Tel-Aviv and Hebrew University Joint work with: Jason Bayer, Deepak Chandra, Tal Franji, Robert Gardner, Yossi Matias, Neil Rhodes, Misha Seltzer, Danny Tom, Hal Varian, Dan Zigmond

Google’s Auction for TV ads

Embed Size (px)

DESCRIPTION

Google’s Auction for TV ads. Noam Nisan Tel-Aviv and Hebrew University Joint work with: Jason Bayer, Deepak Chandra, Tal Franji, Robert Gardner, Yossi Matias, Neil Rhodes, Misha Seltzer, Danny Tom, Hal Varian, Dan Zigmond. sells TV ads. - PowerPoint PPT Presentation

Citation preview

Page 1: Google’s Auction for TV ads

Google’s Auction for TV ads

Noam Nisan

Tel-Aviv and Hebrew University

Joint work with: Jason Bayer, Deepak Chandra, Tal Franji, Robert Gardner, Yossi Matias, Neil Rhodes, Misha Seltzer, Danny Tom, Hal

Varian, Dan Zigmond

Page 2: Google’s Auction for TV ads

sells TV ads

• Google has deals with TV “publishers” (networks, cable companies) that let it sell some of their “ad-spot” inventory.– Over 100 channels, some local, some national

• Google auctions this inventory among interested advertisers on a daily basis.

• Buying TV spots this way is web-based.

Page 3: Google’s Auction for TV ads

Outside the scope of this talk

• Why is Google doing this?

• What are its future plans?

• What is its competitive advantage?

• What kinds of deals does Google have?

• How much money is Google making?

Page 4: Google’s Auction for TV ads

Scope of this talk

• The auction mechanism– In operation since Sept 2008

• What we did & theoretical perspective– The good, the bad, and the ugly

• No numbers– Some I don’t know, some I can’t tell….

• Only passing mention of the whole system– Whole system in operation about 2 years

Page 5: Google’s Auction for TV ads

Buying TV ads from Google

Why buy from Google?– Web-based: easy, fast, flexible, day-to-day– Aggregation with precise targeting– Excellent feedback / reporting allows optimization

• Actual number of viewers, tune-out info, …

Workflow for advertisers:1. Upload ad video2. Enter desired targets and your bid3. Everyday:

The auction runs, your ad is scheduled and aired, you get a detailed report, and you pay Google (and then Google pays publishers.)

Page 6: Google’s Auction for TV ads

Choose Target

Page 7: Google’s Auction for TV ads

Specify Bid

Page 8: Google’s Auction for TV ads

Daily Auction Process

Publishers Daily Inventory

Advertisers Bid DB

Auction runs daily

Schedule

Pricing

Google bills advertisers

Publishers receive & air ad schedule

Cpm price

#viewers

Page 9: Google’s Auction for TV ads

Rest of Talk

• Basic theoretical model

• Auction goals

• The ascending auction – Good and bad

• The ugly

Page 10: Google’s Auction for TV ads

Basic Model

Input• m slots for sale; slot j has

reserve price rj ≥ 0

• n bidders. Bidder i has:– Budget limit bi

– Value vij for each slot j

Output• Set of slots Si won by

each bidder i.

• Price pj for each slot j

Obvious Constraints • Si disjoint

• rj ≤ pj ≤ vij (for j in Si)

• ∑ j in Si pj ≤ bi

Optimization Goals• Revenue

• Efficiency (total value)

• Fairness (?)

• Incentive Compatibility

Page 11: Google’s Auction for TV ads

Incentive Compatibility

• Bidders are strategic– They will mis-report their value or budget if

that helps them

• Our Auction should produce the desired results even when bidders act strategically

• Best if Auction rules themselves discourage any strategic behavior– I.C. = truthful = strategy-proof

• Revelation Principle: this is wlog

Page 12: Google’s Auction for TV ads

Optimize?Difficult example:

– 100 slots– Alice: bid value=$25, budget=$50– Bob: bid value = $5, budget=$150

Optimize Revenue: Maximize ∑j pj ? – Alice: 2 slots * $25– Bob: 30 slots * $5– Other 68 slots can go anywhere

Optimize Social Welfare: Maximize ∑ j in Si vij ?

– Alice: 100 slots, at whatever cost ≤ $50– Budgets ignored in allocation

Page 13: Google’s Auction for TV ads

Econ 101Example:

– 100 slots– Alice: bid value=$25, budget=$50– Bob: bid value = $5, budget=$150

Solve: demand=supply:– D(p) = 200/p for p ≤$5– D(p) = 50/p for $5 < p ≤$25– D(p) = 0 for $25 < p

Solution: D(p)=100 when p=$2– Alice: 25 slots * $2– Bob: 75 slots * $2

Page 14: Google’s Auction for TV ads

Walrasian Equilibrium

Definition: S is the demand of i at prices p1…pm if it is within budget (∑ j in S pj ≤ bi) and it maximizes utility. I.e. for every T within budget we have that ∑ j in T (vij-pj)≤ ∑ j in S (vij-pj).

Definition: S1…Sn and p1…pm are at an equilibrium if:

• For every i, Si is the demand of i• All items j are allocated, except perhaps those

with rj = pj

Page 15: Google’s Auction for TV ads

The continuous case

If slots were infinitely divisible then:

• A Walrasian Equilibrium always exists

• It is Pareto Efficient (first welfare theorem)

• It exhausts the budgets of all bidders that bid > market price on at least some slot

• When bidders are small (“price takers”) there is no incentive for under-bidding.

Page 16: Google’s Auction for TV ads

Our case

• Sometimes a Walrasian equilibrium doesn’t exist at all.– Sometimes it does

• If it exists, then it is Pareto efficient and exhausts the budget of each bidder up to the price of the cheapest slot for which it bid at least market.

• “Sometimes” it is incentive compatible.

Page 17: Google’s Auction for TV ads

Computing the Demand of i

Input: p1…pm ; vi1…vim ; bOutput: S within budget (∑ j in S pj ≤ bi) that

maximizes ∑ j in S (vij-pj)

Complexity: Knapsack NP-hardOptimal Fractional solution:

– Greedily in order of decreasing vij/pj

Why not FPTAS?– Speed, Simplicity, and Extendibility– Stability over multiple calls – Budget limit not really sharp

Page 18: Google’s Auction for TV ads

Simultaneous Ascending AuctionDemange-Gale-Sotomayer, Kelso-Crawford, …

• Initialize: pj = rj ; Si = Ø ; Q all bidders

• While Q not empty– i Q.deque()

– Si demand(i)– At current prices; but +δ for j not in Si

– For all slots j taken from others do pj pj +δ

– For all k that had slots taken do Q.enque(k)

Page 19: Google’s Auction for TV ads

Analysis

• Prices only increase at most mvmax/δ rounds

• After round with i dequed, Si = demand(i)

• Remains true, when prices of un-owned slots increase– Invariant: for i not in Q: Si = demand(i)

• When algorithm terminates we have a (δ-) Walrasian equilibrium

Page 20: Google’s Auction for TV ads

Ignoring the bug

BUG: slots may be left un-allocated….

Definition: “Gross Substitutes” = it doesn’t happenTheorem: If “Gross Substitutes” then (δ-) Walrasian

equilibrium [Kelso and Crawford]

Example: Homogenous slots• Also Incentive compatible if values<<budgets or budgets<<values

Example: “Unit demand” – demand is never more than a single unit [Demange, Gale, and Sotomayer]

An algorithm for maximum-weight bipartite matching• Also final prices are VCG and thus incentive compatible

Page 21: Google’s Auction for TV ads

Remnant round

Reality is not “Gross substitutes” Some slots remain un-allocated at the end

What to do with these?• Ignore and leave un-allocated?

Our Solution: remnant-sale round• Fix what was already sold• Repeat:

• Reduce prices of unsold slots a bit• Rerun simultaneous ascending auction

• Until all unsold slots are at reserve price

Page 22: Google’s Auction for TV ads

Software Engineering

• “Bidder” is a central internal interface– Responsible only for the desires of a single

advertiser– Can answer “demand” queries

• Arbitration between the different bidders is the responsibility of the main algorithm and is price-based.

Page 23: Google’s Auction for TV ads

Multiple ad lengths

• Standard Ad lengths may be 15sec, 30sec, 60sec, 90sec,120sec

• We use15sec slots• Pricing difficulty:

– $10 for 30sec vs. $7 for 15sec + $2 for 15sec– $10 for 30sec vs. $9 for 15sec + $9 for 15sec

• Our solution:– In main ascending auction, pay taken slot prices– In remnant round, pay for all slots of displaced ad

Page 24: Google’s Auction for TV ads

Crowding

• TV stations and advertisers often require some minimum gap between similar ads– By time or by commercial break– Per-creative, per advertiser, sometimes even

per-industry

• Internal to demand logic• Can be solved exactly using dynamic

programming• We just add condition in greedy algorithm

Page 25: Google’s Auction for TV ads

Noisy Budgets

• Daily budgets are only approximate:– Google allows up to 20% daily deviation – Actual costs depend on actual numbers of

viewers and are only estimated

• Leaves room for policy decisions

• Leaves room for optimizations– Allow taking “last spot” if it is just a bit above

• Re-justifies the greedy demand logic

Page 26: Google’s Auction for TV ads

Unscheduled slots

• We do not really have free disposal: “half filling” a commercial break is not allowed.– Various rules

• Try to schedule “public service announcements” to fill commercial breaks.

• Release non-full breaks (and try re-scheduling)

Page 27: Google’s Auction for TV ads

Overlapping Auctions

• Sometimes we need to run an auction for some parts of the slot-inventory before the rest of the inventory is finalized.

• Problem: budget shared between the auctions.

• Solution: Use best estimate/prediction on non-finalized inventory; commit only to inventory you need to commit to.

Page 28: Google’s Auction for TV ads

Thank You!