Presentation on theme: "Googles Auction for TV ads Noam Nisan Tel-Aviv and Hebrew University Joint work with: Jason Bayer, Deepak Chandra, Tal Franji, Robert Gardner, Yossi Matias,"— Presentation transcript:
Googles 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 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.
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?
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 dont know, some I cant tell…. Only passing mention of the whole system –Whole system in operation about 2 years
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 video 2.Enter desired targets and your bid 3.Everyday: The auction runs, your ad is scheduled and aired, you get a detailed report, and you pay Google (and then Google pays publishers.)
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
Rest of Talk Basic theoretical model Auction goals The ascending auction –Good and bad The ugly
Basic Model Input m slots for sale; slot j has reserve price r j 0 n bidders. Bidder i has: –Budget limit b i –Value v ij for each slot j Output Set of slots S i won by each bidder i. Price p j for each slot j Obvious Constraints S i disjoint r j p j v ij (for j in S i ) j in S i p j b i Optimization Goals Revenue Efficiency (total value) Fairness (?) 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
Optimize? Difficult example: –100 slots –Alice: bid value=$25, budget=$50 –Bob: bid value = $5, budget=$150 Optimize Revenue: Maximize j p j ? –Alice: 2 slots * $25 –Bob: 30 slots * $5 –Other 68 slots can go anywhere Optimize Social Welfare: Maximize j in S i v ij ? –Alice: 100 slots, at whatever cost $50 –Budgets ignored in allocation
Econ 101 Example: –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
Walrasian Equilibrium Definition: S is the demand of i at prices p 1 …p m if it is within budget ( j in S p j b i ) and it maximizes utility. I.e. for every T within budget we have that j in T (v ij -p j ) j in S (v ij -p j ). Definition: S 1 …S n and p 1 …p m are at an equilibrium if: For every i, S i is the demand of i All items j are allocated, except perhaps those with r j = p j
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.
Our case Sometimes a Walrasian equilibrium doesnt 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.
Computing the Demand of i Input: p 1 …p m ; v i1 …v im ; b Output: S within budget ( j in S p j b i ) that maximizes j in S (v ij -p j ) Complexity: Knapsack NP-hard Optimal Fractional solution: –Greedily in order of decreasing v ij /p j Why not FPTAS? –Speed, Simplicity, and Extendibility –Stability over multiple calls –Budget limit not really sharp
Simultaneous Ascending Auction Demange-Gale-Sotomayer, Kelso-Crawford, … Initialize: p j = r j ; S i = Ø ; Q all bidders While Q not empty –i Q.deque() –S i demand(i) –At current prices; but +δ for j not in S i –For all slots j taken from others do p j p j +δ –For all k that had slots taken do Q.enque(k)
Analysis Prices only increase at most mv max /δ rounds After round with i dequed, S i = demand(i) Remains true, when prices of un-owned slots increase –Invariant: for i not in Q: S i = demand(i) When algorithm terminates we have a (δ-) Walrasian equilibrium
Ignoring the bug BUG: slots may be left un-allocated…. Definition: Gross Substitutes = it doesnt happen Theorem: If Gross Substitutes then (δ-) Walrasian equilibrium [Kelso and Crawford] Example: Homogenous slots Also Incentive compatible if values<
"name": "Ignoring the bug BUG: slots may be left un-allocated….",
"description": "Definition: Gross Substitutes = it doesnt happen Theorem: If Gross Substitutes then (δ-) Walrasian equilibrium [Kelso and Crawford] Example: Homogenous slots Also Incentive compatible if values<
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
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.
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
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
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
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)
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.