The embodiments of a revenue-based advertising auction described below provide techniques for matching advertisements to ad slots and determining a price for each slot such that a community revenue (i.e., the sum of the auctioneer's expected revenue and the advertisers' expected revenue) is maximized. The revenue-based advertising auction may be implemented such that the advertisers are charged a price per impression or such that the advertisers are charged a price each time a user clicks on the ad (a click-through price). When implemented with click-through pricing, each advertiser's expected revenue is calculated as the difference between the revenue the advertiser expects to receive if a user clicks on the ad and the click-through price that the advertiser will pay to the auctioneer. The auctioneer's expected revenue is calculated as the sum of the click-through prices that each of the advertisers will pay if their advertisement is selected by a user. Advertiser and auctioneer revenues can be similarly calculated when the revenue-based advertising auction is implemented with per-impression pricing.
A revenue-based advertising auction as described herein includes strategies for ad slot allocation and strategies for pricing. The ad slot allocation and pricing strategies of a revenue-based advertising auction can be defined in terms of a series of mathematical equations. Given K ad slots and N bidders, each bidder i has a utility function ui, where:
u
i=(ui(1), ui(2), . . . , ui(K)),
where ui(j) is equal to the true value that the bidder i is willing to pay if the advertisement is placed in the jth ad slot. Each bidder submits a bid vector bi where:
b
i=(bi(1), bi(2), . . . , bi(K)),
where bi(j) is the amount that the bidder offers to pay the auctioneer if the advertisement is placed in the jth ad slot. As described herein, the revenue-based advertising auction is considered to be “truthful” if each bidder is motivated to submit a bid vector bi such that bi=ui.
According to the received bid vectors, a mapping σ:[K]→[N] is generated such that the kth ad slot is allocated to the σ(k)th bidder, with no more than one ad slot allocated to any one bidder. If σ(j)=i (i.e., ad slot j is allocated to bidder i), then bidder i will be charged a price pi(j). The revenue ri for the ith bidder is defined as:
r
i
=u
i(j)−pi(j).
Given utility function ui and bid vector bi for i=1, . . . , N, mapping σ is determined such that the community revenue R(u) is maximized. This is represented as:
This equation shows that the community revenue is independent of the pricing strategy, but rather, is a function of the slot allocation, given the utility function. Because the auctioneer is typically unaware of a bidder's utility function, and is only aware of the bidder's bid vector, the slot allocation strategy is modified to find σb such that:
Accordingly, the community revenue is maximized when, for each bidder, b=u. In other words, the community revenue is maximized if the auction is truthful.
Any number of techniques may be used to determine σb, such as, for example, the well-known Hungarian algorithm that finds the maximum matching in a bi-partite graph, where the slots and the bidders are the vertices and the weight on the edge linking a bidder i and a slot j is bi(j).
In an exemplary implementation, advertisers submit advertisements to an ad slot provider (e.g., a web page owner/auctioneer). The advertisements are then maintained by the ad slot provider such that the advertisements may be presented to a user via an ad slot at some future time. In addition to submitting an advertisement, an advertiser also submits a bid value and optionally, a budget value. The bid value indicates the amount that the advertiser offers to pay the auctioneer when an advertisement is placed in an ad slot (per impression or per click-through). The budget value indicates a maximum value that the advertiser is willing to pay for placement of a particular advertisement over a fixed period of time (e.g., one day, one week, or one month). If an advertiser submits a budget value for an advertisement, then the advertisement is only available for placement in an ad slot if the submitted budget value for the advertisement has not yet been reached.
Table 1 summarizes the bid vectors submitted by advertisers 110, 114, and 118, as shown in
Table 2 illustrates each of the possible slot allocations and the respective commnunity revenues.
Based on the data shown in Table 2, in this example, the community revenue is maximized when “Ad A” 110 is assigned to the first ad slot 106 and “Ad B” 114 is assigned to the second ad slot 108 as represented by arrows 122 and 124, respectively.
In addition to the slot allocation strategy described above, the revenue-based advertising auction also includes a pricing strategy that is used to determine the price to be paid by the winning bidders. The pricing strategy of the revenue-based advertising auction is referred to as a revenue difference pricing (RDP) strategy. By definition, for a bidder i, the bidder's expected income is given by the bidder's utility function ui, where ui(j) is equal to the income bidder i expects to receive if the advertisement is placed in the jth ad slot. Assuming the bidder bids truthfully such that ui=bi, then 0≦pσ(i)≦bi(j) for i ∈ σ ([K]). This ensures that the bidding strategy is meaningful because charging a negative price (i.e., pσ(i)<0) is equivalent to the auctioneer paying the winning bidder, and would reduce the revenue of the auctioneer. Similarly, because the bid vector submitted by the bidder indicates the prices the bidder is willing to pay, then by definition of the bid vector, pσ(i)≦bi(j). Accordingly, if ui=bi, then 0≦pσ(i)≦bi(j) for i ∈ σ([K]).
For the bidder i in σ([K]), where i=σ(j), the price to be charged to bidder i is determined according to the RDP strategy by first calculating what the maximum community revenue would be if bidder i was not participating in the auction, represented by OPT(b−i). When bidder i is participating in the auction, the revenue of the others in the community (all except bidder i) is represented as:
The difference between the community revenue when bidder i is a participant and the community revenue when bidder i is not a participant is used to calculate the price bidder i is charged, as follows:
where OPT(b) represents the maximum community revenue when bidder i is a participant in the auction.
Given the example shown in
p
σ(i)=bi(j)−(OPT(b)−OPT(bi))=0.10−(0.172−0.142)=0.10−0.03=0.07.
Accordingly, the bidder associated with “Ad A” 110 will be charged 7¢. Similarly, the price charged to the bidder (i.e., advertiser) associated with “Ad B” 114 is calculated as:
p
σ(i)=bi(OPT(b)−OPT(b−i))=0.072−(0.172−0.15)=0.072−0.022=0.05.
The slot allocation strategy and the RDP strategy described above are based on the assumption that the revenue-based advertising auction is truthful. However, as will be shown, the truthfulness of the revenue-based advertising auction is more than an assumption, in that it can be proved. For bidder i, the bidder's revenue is compared under two bidding strategies, a first bidding strategy in which the bidder bids truthfully with ui and a second bidding strategy in which the bidder bids with an arbitrary bid bi. It is assumed that the bids from the rest of the bidders are unchanged and are denoted by b−i. The bids under the two bidding strategies are represented by (ui, b−i) and (bi, b−i), respectively.
Without loss of generality, it is assumed that bidder i is assigned an ad slot when the bid bi is submitted. Otherwise, the revenue of bidder i would be zero, in which case the revenue for bidder i under the non-truthful strategy would not exceed the revenue for bidder i under the truthful strategy.
For the truthful bidding strategy, according to the above-described RDP strategy, the revenue of bidder i is represented as:
r
i
=OPT(ui,bi)−OPT(bi)
Similarly for the untruthful bidding strategy with arbitrary bid bi, if i=σ(j), where σis the optimal assignment, then the revenue for bidder i is represented as
Because the first part of the calculation for the revenue according to the non-truthful bidding strategy is a feasible solution in the truthful RDP strategy:
Combining the above three equations leads to the conclusion that rt≧rtr, indicating that the revenue of a bidder is maximized when the bidder bids truthfully. Accordingly, the revenue-based advertising auction as described herein that utilizes the RDP strategy is truthful in that it motivates each bidder to bid their utility function.
Furthermore, it can be proven that the RDP strategy is unique to make the revenue-based advertising auction truthful. First it is proven that given that a bidder i bids with bi, and another n-1 bidders bid wit b−i; and that bidder i is assigned ad slot j by σb and the bid bi* satisfies bi*(k)=0,∀k≠j; then, when bi*(j)≧p94
By definition:
When bi is replaced with bi* and bi*(j)≧pσb(i), it follows that:
Accordingly, σb* will assign a slot to bidder i and more specifically, will assign slot j to bidder i because bi*(k)=0,∀k≠j. Because bidder i will be assigned the same slot, the other bidders will also be assigned the same slots. In other words, when bi*(j)≧pσ
When bi is replaced with bi* and bi*(j)<pσ
Now, to complete the proof that the RDP strategy is unique to make the revenue-based advertising auction truthful, it is supposed that there are two pricing strategies that make the revenue-based advertising auction truthful: T, which represents the RDP strategy, and T*, which represents the other truthful pricing strategy. For any bidder i with bid bi and utility function ui, if bidder i is assigned slot j, then p(i) and p*(i) represent the price that bidder i will be charged according to pricing strategies T and T*, respectively.
If p*(i)>p(i), then as shown above, bi can be replaced with bi*=(0, . . . ,0,bi*(j),0, . . . ,0), and bidder i will still be assigned slot j if bi*(j)≧p(i). If bi*(j)=(p*(i)+p(i))/2, it follows that p*(i)>bi*(j), which is in conflict with the basic requirement that the price charged to a bidder is not greater than the bidder's bid. Accordingly, p*(i)≦p(i).
If p*(i)<p(i), then when ui(j) is between p*(i) and p(i), and ui(k)=0,∀k≠j, bidder i may bid with any bid bi* that satisfies bi*(j)≧p(i) and bσ(k)*(k)=0,∀k≠j to be assigned slot j and receive positive revenue according to the truthful pricing strategy T* because ui (j)>pσ*(i). However, if bidder i bids truthfully, bidder i will not be assigned a slot because ui(j)<pσ*(i). Accordingly, bidder i is not motivated to bid truthfully. This is in conflict with the definition of T* as a truthful pricing strategy. It follows that p*(i)=p(i), and T*=T. Therefore the RDP strategy is unique to make the revenue-based advertising auction truthful.
Another characteristic of the revenue-based advertising auction is that when a new bidder joins the revenue-based advertising auction, the auctioneer will have a non-negative change in revenue, and each of the existing bidders will each have a non-positive change in revenue. This is proven as follows.
First, we present a lemma. Let G=(V1 Å V2,E) be a weighted bi-partite graph. For A ⊂ V1, let M(A) denote the value of the maximum weighted matching in the subgraph indicated by the vertices A ⊂ V2. Then: M(A+i)−M(A)≧M(A+i+j)−M(A+j), where A+i=A ∪ {i}.
Given a set of bidders A, any bidder i ∈ A, a new bidder k, the slots set V, and everybody bidding truthfully, we use R(A) to denote the community revenue when the auction takes place among the bidders in A Let ri be the bidder i's revenue from this auction among A, and ri be that from the new auction among A ∪ {k}. It follows that:
r
i
=R(A)−R(A \{i}), and
r
i′(A ∪ {k})−R((A ∪ {k})\{i}).
Based on the slot allocation strategy described above, it is clear that R(A) represents the maximum weighted matching between the bidders A and the slots set V, denoted by M(A). Furthermore, based on the discussion above, it is known that M is a submodular function of A. Accordingly, R(A) is also submodular, and
R(A)−R(A \{i})≧R(A ∪ {k})−R((A ∪ {k}\{i}).
This leads to Δri′=r;≦0, and i is selected from A arbitrarily. As the increased community revenue is taken by the new bidder, the auctioneer accordingly receives the loss of the existing bidders.
Table 4 illustrates each of the possible slot allocations and the respective community revenues.
Based on the data shown in Table 4, in this example, the community revenue is still maximized when “Ad A” 110 is assigned to the first ad slot 106 and “Ad B” 114 is assigned to the second ad slot 108, as represented by arrows 206 and 208, respectively.
According to the RDP strategy described above, the price charged to the bidder (i.e., advertiser) associated with “Ad A” 110 when a fourth bidder is involved is calculated as:
p
σ(i)=bi(j)−(OPT(b)−OPT(b−i)=0.10−(0.172−0.162)=0.10−0.01=0.09.
Accordingly, the bidder associated with “Ad A” 110 is charged 9¢ when four bidders are involved in the auction and only 7¢ when only three bidders are involved in the auction. This shows that the bidder associated with “Ad A” 110 experiences a non-positive change of revenue.
Similarly, the price charged to the bidder (i.e., advertiser) associated with “Ad B” 114 when a fourth bidder is involved is calculated as:
p
σ(i)=bi(j)−(OPT(b)−OPT(b<i))=0.072−(0.172−0.17)=0.072−0.002=0.07.
Accordingly, the bidder associated with “Ad B” 114 will be charged 7¢ when four bidders are involved in the auction and only 5¢ when only three bidders are involved in the auction. This shows that the bidder associated with “Ad B” 114 also experiences a non-positive change of revenue.
Furthermore, the auctioneer's revenue before the addition of the fourth bidder is 12¢, and the auctioneer's revenue after the addition of the fourth bidder is 16¢, illustrating a non-negative change in revenue for the auctioneer.
While features of a revenue-based advertising auction can be implemented in any number of different computing environments, they are described in the context of the following exemplary implementations.
Selected components of web server 302 may include a processor 314, a network interface 316, and memory 318. Network interface 316 enables web server 302 to receive data from advertiser(s) 304, and to communicate with computer system 308 over the Internet 310. One or more applications 320, one or more web pages 322, ad store 324, and ad auction engine 326 are maintained in memory 318 and executed on processor 314.
Web pages 322 each include one or more ad slots via which advertisements received from advertisers 304 may be presented. Ad store 324 maintains data associated with advertisements received from advertisers 304. Data 328 that may be maintained may include, but is not limited to, an advertisement, a bid vector, and a budget value. As described above, the bid vector indicates values known to the auctioneer that the advertiser is offering to pay (e.g., per impression or per click-through) for placement of the ad in each of the available ad slots, and the budget value indicates a maximum value that the advertiser is willing to pay for placement of the ad over a particular period of time. For example, an advertiser may indicate a budget of $50 per day, or $1000 per month.
Ad auction engine 326 includes ad slot allocation module 330 and ad pricing module 332. Ad slot allocation module 330 is configured to determine which ads in ad store 324 are to be presented via a particular web page 322, and which of the identified ads are to be presented in each of the available ad slots. As described above with reference to
Methods for implementing a revenue-based advertising auction may be described in the general context of computer executable instructions. Generally, computer executable instructions include routines, programs, objects, components, data structures, procedures, and the like that perform particular functions or implement particular abstract data types. The methods may also be practiced in a distributed computing environment where functions are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, computer executable instructions may be located in both local and remote computer storage media, including memory storage devices.
At block 402, ads with associated bid vectors are received. Each bid vector indicates, for each of a plurality of available ad slots, a value known to the auctioneer that an advertiser is offering to pay for placement of the ad in each of the respective ad slots. As described above, depending on the implementation, the values represented by the bid vector may represent, for example, the prices offered by the advertiser to be paid per impression or per click-through. For example, web server 302 may receive one or more advertisements and bid vectors from advertiser(s) 304. In an exemplary implementation each bid vector is associated with a particular web site, and in the case of a search engine web site, optionally also a particular keyword. In an exemplary implementation, a budget value may also be received with an advertisement.
At block 404, a request for a particular web page having K ad slots is received. For example, web server 302 receives web page request 306 from computer system 308 via the Internet 310.
At block 406, one or more of the received ads are identified for possible placement in the requested web page. For example, ad auction engine 326 queries ad store 324 to identify the received ads that may be placed in available ad slots on the requested web page. As one example, placement of a particular ad on a particular web page may be based on a keyword that was entered by a user as search criteria.
At block 408, a mapping between the ad slots and a subset of the identified ads is determined such that the determined mapping results in the greatest community revenue compared to other possible mappings between the ad slots and subsets of the identified ads. Any number of techniques may be used to determine the mapping such as, for example, the well-known Hungarian algorithm that finds the maximum matching in a bi-partite graph.
At block 410 a subset of the identified ads are allocated to the available ad slots according to the determined mapping.
At block 412, a price is calculated for each allocated ad. For example, for each ad, the price is calculated as p=bi(j)−(OPT(b)−OPT(b−i)), where bi(j) represents the value indicated by the bid vector associated with the advertisement for the jth ad slot, to which the advertisement has been allocated; OPT(b) represents the maximized community revenue when the current advertisement is participating in the advertising auction; and OPT(b−i) represents the maximum community revenue in a hypothetical scenario in which the current advertisement is removed from participation in the advertising auction.
At block 414, the requested web page is returned. For example, web server 302 transmits the web page with ads 312 to computer system 308 over the Internet 310.
Although embodiments of a revenue-based advertising auction have been described in language specific to structural features and/or methods, it is to be understood that the subject of the appended claims is not necessarily limited to the specific features or methods described. Rather, the specific features and methods are disclosed as exemplary implementations of a revenue-based advertising auction.