The system and method of the present embodiment relate generally to expressive bidding for advertising slot auction bidding, thus allowing advertisers to achieve advertising goals, while still providing fast and scalable techniques for winner determination, i.e. determining, for each auction slot available, the bidder to which the auction slot should be assigned.
With the vibrant activity of the Internet, Internet pages have become a thriving advertising platform. The results of, for example, a search query are presented to the user as a web page that contains a limited number of slots for advertisements (typically between four and twenty). These slots are sold to advertisers via an auction mechanism that charges an advertiser only if a user clicks on the advertiser's ad. This auction mechanism is referred to as a sponsored auction or advertising auction, and, in particular, a sponsored search auction, when a search provider such as GOOGLE® provides the auction. Sponsored search auctions proceed according to the following steps: (1) advertisers submit bids on user clicks for certain keywords offline, (2) a user submits a search query, (3) slots are assigned to advertisers by the search provider based on the advertisers' bids, (4) the search result page is returned to the user who may now click on one or more of the sponsored links, and (5) the search provider charges an advertiser according to some pricing rule if the user clicks on the advertiser's sponsored link. In the above process, advertisers are limited to submitting a single bid on whether or not the user clicks on the advertiser's ad. Further, although advertisers making use of the above process can specify a limited number of parameters to constrain their bids (such as a daily budget, and geographic targets), they cannot express the majority of their preferences and how they change over time because of limitations in the bidding language and response time constraints. For example, advertisers could be interested in maintaining a specified slot position during certain hours of the day, and/or maintaining a slot position above a specified competitor, and/or equalizing the return on investment (ROI) across multiple keywords.
What is needed are a system and method that allow an advertiser to bid on multiple features, for example, whether the user who submitted the query not only clicks on the advertiser's ad but also makes a purchase based on the advertiser's ad, or, for example, whether the advertiser's ad is displayed, and where on the Internet page the ad is displayed. Further, what is needed are a system and method in which the auction winners in a multi-feature auction are determined quickly enough so as not to impact response time and the user's experience with the Internet page that includes the ads. Still further, what is needed is a more expressive language that allows advertisers to express bidding preferences. Even still further, what is needed is a method to update the preferences of advertisers taking into account the bidding performance of the advertisers.
The needs set forth above as well as further and other needs and advantages are addressed by the embodiments set forth below.
The present embodiment can allow advertisers to express bids as bidding programs that take as input, for example, a search query and various statistics about auction history and performance. The present embodiment can further output bids on output characteristics such as, for example, clicks, purchases, and slot positions. Also, the present embodiment can provide an efficient, scalable, and parallelizable algorithm to solve winner determination given the bids output by the bidding programs, and can reduce the amount of work necessary for evaluating the bidding programs of multiple advertisers. The method of the present embodiment for providing an auction for advertising slots can include, but is not limited to including, the step of providing a computer-readable auction program template to a bidder, where the computer-readable auction program template can include output characteristics 47 with conditions. The method can also include the steps of receiving an instantiated computer-readable auction program template including bids for the output characteristics, and forming a computer-readable auction program from the instantiated computer-readable auction program template, where the computer-readable auction program can include an advertising slot bid for the advertising slot, where the advertising slot bid is computed from the bids for at least one of the output characteristics for the advertising slot associated with when the conditions hold. The method can further include the steps of receiving computer-readable user input, determining, from the computer-readable auction programs and the computer-readable user input a winner of the auction for each of the advertising slots. The step of determining a winner can include, but is not limited to including, the steps of choosing a subset of up to k2 bidders, k bidders for each of the k advertising slots, from the bidders, where k is the number of the advertising slots, and choosing, from the subset, a winner for each of the k advertising slots based on the advertising slot bid and based on the computer-readable user input. The method for providing an auction for advertising slots can still further include the step of displaying an advertisement in each of the advertising slots, the advertisement being associated with the winner of the advertising slot. The computer-readable auction program template 41 can include, but is not limited to including, an accommodation such that each of the at least one bidders can bid on a plurality of the outcome characteristics simultaneously. The function to compute the advertising slot bid is the sum of the bids, if any, associated with the plurality outcome characteristics 47 for which the conditions hold.
The system of the present embodiment for providing an auction for advertising slots can include, but is not limited to including, a program creator/updater for receiving from each bidder, computer-readable instantiations of the computer-readable auction program template and producing from the computer-readable instantiations least one computer-readable auction programs associated with each bidder. The computer-readable auction program can maintain an internal state and can include bids on output characteristics with conditions. Program creator/updater 23 can interpret the bids for the output characteristics such that if more than one of the conditions holds, an advertising slot bid is computed as a function of the values of the output characteristics for the conditions that hold. The system can also include a user interface for receiving computer-readable user input, and a winner determination processor for determining, from the bidders and for each of the advertising slots, a winner of the auction by. The winner determination processor can determine a winner by receiving the computer-readable auction programs from the bidders through the program creator/updater, receiving computer-readable user input from the user through the user interface, choosing a subset of up to k2 bidders, k bidders for each of the k advertising slots, from the pool of bidders, where k is the number of the advertising slots 51, and choosing, from the subset, a winner for each of the advertising slots based on the advertising slot bids in the computer-readable auction programs for each bidder of the subset and based on said computer-readable user input. The user interface displays an advertisement in each of the advertising slots. The advertisement is associated with the winner of the advertising slot.
For a better understanding of the present embodiments, together with other and further objects thereof, reference is made to the accompanying drawings and detailed description.
DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING
The present embodiments are now described more fully hereinafter with reference to the accompanying drawings. The following configuration description is presented for illustrative purposes only. Any computer configuration and architecture satisfying the speed and interface requirements herein described may be suitable for implementing the system and method of the present embodiments.
The system and method of the present embodiment include a programming language that allows advertisers to express complex preferences that may change over time. Advertisers can submit their bidding strategies as computer-readable auction programs for an Internet application, such as, for example, a search provider, a mapping system, or a multi-player game, to run. Conceptually, each time a user submits, for example, a search query to the search provider, these computer-readable auction programs are triggered. The main purpose of these computer-readable auction programs is to output bids on outcome characteristics, for example, clicks, purchases, and slot positions that may result from displaying the advertiser's ad on the result page. The programs can begin as templates that can allow bidders to submit dynamic bidding programs as instantiations of the templates. Bidders can bid on multiple features of auction outcomes, such as (but not restricted to) clicks, purchases, and slot positions. Users can fill in the bids tables, where each row can describe what the user is willing to bid for certain conditions. If multiple conditions hold, then the bidder is assumed to be willing to pay for all of them. For example, if the bidder bids $2 for being in either advertising slot 2 or 3, and $5 for a click, and then if the bidder is placed in position 3 and gets a click, the final bid is $7. Those skilled in the art will appreciate that such a language can allow bidders to express a wide range of preferences succinctly.
Each computer-readable auction program can be used to create a bids table each time there is an advertising auction. The computer-readable auction programs can access variables that are pertinent to the auction and to the advertiser, such as the keywords in a search query, time of day, the advertiser's remaining budget, the current return on investment for the keywords that the advertiser is interested in, the bidder's auction history, and so on. These variables can be stored in tables, some of which can be read-only shared between all advertisers (such as the time and location of the search) and some of which can be private to each advertiser (such as information about the keywords in which the advertiser is interested). The computer-readable auction programs can then be written in, for example, SQL. SQL triggers can be used to activate the computer-readable auction programs when an auction begins and to notify the computer-readable auction programs if they received a slot, click, or purchase. The computer-readable auction programs can modify tables that are private to the advertiser, and variables that are common to all computer-readable auction programs, such as amount spent, budget remaining, return on investment for various keywords, etc. can be automatically maintained for each computer-readable auction program by the Internet application.
Referring now primarily to
Continuing to refer to
Referring now to
Referring again to
Referring now to
The step of choosing winner 53 can include, but is not limited to including, the step of determining from subset 55, a bipartite graph. The nodes of the bipartite graph include bidders 19 in subset 55 and k advertising slots 51. Each edge of the bipartite graph connects one bidder i of the subset 55 to one slot j of advertising slots 51. Each of the edges is labeled by the expected value of bid 45 of the bidder i, if the bidder i were placed in the slot j. The step of choosing winner 53 can further include the step of applying a maximum weighted matching algorithm to the bipartite graph to determine winner 53 of the auction for each of advertising slots 51. The step of receiving computer-readable user input 49 can include, but is not limited to including the step of receiving computer-readable user input 49 from a user of service 67 provided through Internet 65, where service 67 can be, for example, but not limited to, an Internet search, an Internet game, or a direction providing application.
Method 150 can further include the step of, for each advertising slots 51, partitioning bidders 19 from subset 55 into subset groups as subset group bidders according to an amount by which computer-readable auction programs 43 associated with each of the subset groups change bid 45 for advertising slot 51. Method 150 can also include the step of, for each advertising slot 51 and each subset group, updating bid 45 made by the subset group bidders by changing, by a pre-selected amount, a shared base value that is added to bid 45 of each of the subset group bidders. Method 150 can still further include the step of maintaining the subset groups over time by moving at least one of the subset group bidders from at least one of the subset groups to at least one other of the subset groups when a monotonic input variable is greater than the value of output characteristic 47 of computer-readable auction program 43 associated with the subset group bidder that changes when the subset group bidder is winner 53 of advertising slot 51 in the auction.
Referring now to
In the following discussion, theoretical background and examples of the usage of system 100 are provided. Herein, predicates can be used by the bidders, also referred to herein as advertisers, that indicate whether or not the outcome has one of these desired properties:
Slotj, indicating that the advertiser gets slot j, for j in {1, . . . , k}, with k being the number of advertising slots.
Click, indicating that the user clicked on the advertiser's ad.
Purchase, indicating that the user made a purchase via a link from the advertiser's ad.
Referring now to
Referring now to
Continuing to refer to
Following is a program that illustrates the ROI equalizing heuristic. Line 1 creates a trigger that waits for a new query to be inserted into the query table, indicating that a new auction is taking place. If there has been underspending (line 3), the advertiser increases his tentative bids for all relevant keywords that have provided the highest ROI, taking care not to increase the bid past its maximum value (lines 4-10). Similarly, lines 13-19 decrease the advertiser's bids for relevant keywords with the lowest ROI if there has been overspending (line 11), taking care not to decrease the bid below zero. Next, the advertiser updates the values in the bids table with the sum of tentative bids for the corresponding formulas for all sufficiently relevant keywords, namely, those with a relevance score higher than 0.7 in the user-submitted search query (lines 22-27). For example, if a keywords table is as depicted in
The present embodiment optimizes the winner-determination computation. In general, the winner-determination problem is to compute the allocation of slots to advertisers that results in the highest expected revenue for the Internet application, under the assumption that advertisers actually pay what they bid. Given the advertisers' bids on, for example, clicks, purchases, and slot positions as specified in advertiser bids tables, and the probabilities that the formulas in the bids tables are true in the final outcome, the set of all possible outcomes that describe which slot was allocated to which advertiser together with which advertisers received clicks and purchases can be determined. The probabilities of clicks and purchases can depend on the allocation of slots to advertisers. For example, ads placed at the top can be considered more likely to be noticed and clicked on than those placed in the middle of the page. For the purposes of this analysis, it is assumed that the probability that a user clicks on the slot allocated to a given advertiser depends only on the slot position, and that the probability that a purchase of the advertiser's goods/services is made depends only on whether the user clicks on the advertiser's slot. Further, for the purposes of this analysis, it is assumed that these probabilities can be computed or estimated for each advertiser and each slot allocated to that advertiser. Because a complete set of the probabilities of all possible formulas for each advertiser is exponential in the number of features, the set of probabilities could be stored in a database separate from the run-time system. Further, the database could store the probabilities for the formulas in the bidding programs and keyword tables, since these are the only probabilities that are used. Still further, the probabilities can be partitioned by advertiser and could be stored with the advertiser's bidding program and private tables to improve locality.
A computer-readable auction program's output is an OR-bid represented by a bids table whose rows contain bids of the form “Pay $d1 for E1”, . . . , “Pay $dm for Em”, where E1, . . . , Em are Boolean combinations of the Slotj, Click, and Purchase predicates described herein. For any slot allocation, there can be a distribution on outcomes, conditional on that slot allocation. Each formula Ei can be identified with an event on the set of possible outcomes, namely, the set of outcomes in which Ei is true. An event as defined herein is m-dependent if there are at most m advertisers such that probability of the event given any allocation depends only on the placement of those m advertisers. That is, an event is m-dependent if it is independent of the advertising slots assigned to all but m advertisers. For example, the event that a given advertiser gets a click is 1-dependent, since it has herein been assumed that the probability of an advertiser getting a click depends only on the advertising slot position of that advertiser. Similarly, the event that a given advertiser is in a particular slot position is 1-dependent, since it depends only on the slot assigned to that advertiser. However, given two advertisers, the event that one gets a particular position, for example, the first position in a list, and the second gets, for example, the last position in the list, is 2-dependent, since the event depends on the advertising slots assigned to both advertisers.
It is assumed that the representation of each m-dependent event includes the labels of the m advertisers on whose slot assignment the event depends. The following theorem says that winner determination is tractable for 1-dependent events. For OR-bids that contain formulas corresponding to 1-dependent events, the winner-determination problem is in polynomial time. The proof of this theorem follows. With respect to a bid of $d on E, where E is a formula corresponding to a 1-dependent event that depends on the slot assigned to only one advertiser, for example, i, if advertisers pay what they bid, then, in all outcomes, this bid contributes exactly the same amount to the revenue as the OR-bid of $d on E Λ Slot1i, $d on E Λ Slot2i, $d on E Λ Slotki, and $d on E Λ (Λj-Slotji), where Slotji is a propositional variable that is true if and only if advertiser i gets slot j. This is because Slot1i, . . . ,Slotki correspond to mutually exclusive events, given that the allocations are restricted to at most one slot per advertiser. Therefore, a table of advertisers versus slots can be filled out where the entry for the ith advertiser and the jth slot is the sum of the total expected revenue from bids on formulas of form E Λ Slotji, assuming that advertisers pay what they bid. If this table is interpreted as the edge-weight matrix of a bipartite graph between advertisers and slots, then the winner-determination problem is the problem of finding a maximum-weight bipartite matching for this graph, which can be done in polynomial time, and thus winner determination for bids represented by a bids table can be solved in polynomial time, since the assumptions specified herein guarantee that any Boolean combination of predicates in the set {Click, Purchase, Slot1, . . . ,Slotk} corresponds to a 1-dependent event.
Further, the following theorem states that winner determination is APX-hard if bids are placed on formulas corresponding to 2-dependent events, such as the event that one advertiser is displayed above another. (APX is the class of NP optimization problems that have polynomial-time constant-factor approximation algorithms.) For OR-bids that contain formulas corresponding to 2-dependent events, the winner-determination problem is APX-hard. The winner-determination problem can be reduced to the maximum-weight feedback arc set problem by using bids on formulas corresponding to 2-dependent events to encode the edges in a given weighted directed graphs on advertisers. For any weighted directed graph on n advertisers, if wi,i′ is the weight of the edge from advertiser i to advertiser i′, and Slotji is the propositional variable that is true if and only if advertiser i gets assigned slot j, and for two advertisers i and i′, Ei>i′ is shorthand for Λj(Slotji Λ ((Λj′>jSlotj′i′) Λ (Λj′-Slotj′i′)), which corresponds to the event that advertiser i gets a slot and is placed above advertiser i′ who may or may not get a slot, then Ei>i′ corresponds to a 2-dependent event, since it depends on the slots assigned to advertisers i and i′. If each advertiser i places the following bids: for each i′≠i, bid wi,i′ on Ei>i′, then, assuming advertisers pay what they bid, revenue of wi,i′ will be generated if and only if advertiser i is placed above advertiser i′. Thus, winner determination is equivalent to the problem of finding the maximum-weight feedback arc set over all size-k subgraphs, which is APX-hard in n and k. In this analysis, each formula in an advertiser's OR-bid corresponds to a 2-dependent event. This does not preclude the set of all advertisers that these events depend on from being large (e.g., an advertiser's OR-bid could contain n−1 formulas of the form Ei>i′ for each i′≠i). However, the analysis described herein provides an NP-hardness result even if the OR-bids are restricted so that all the events corresponding to formulas depend on at most two other advertisers in total (e.g., if each advertiser's OR-bid contains at most two formulas of the form Ei>i′ with i′≠i). This is because the maximum-weight feedback arc set problem is NP-hard even if the input graphs have degree three.
Referring now to
Finding the relevant advertisers takes time O(nk log k) because, for each slot, the top k2 bidders can be found for that slot in time O(k+n log k) by maintaining a priority heap of size at most k. There are at most k2 such advertisers, since in the worst case we will have a distinct set of k advertisers for each of the k slots. Hence, running the Hungarian algorithm on the reduced graph takes time O(k5) for a total running time of O(nk log k+k5). To achieve parallelism, beyond the inherent parallelism in the system, since the bids are collected from advertisers in a distributed way, k networks of computers each in the form of a binary tree of height O(log n) with n leaves are constructed. The maximum matching in time O(k log n+k5) as follows can be computed as follows. For each slot j, consider the jth binary tree network, which will ultimately compute the top k2 bidders for that slot at the root:
1. The ith leaf node in the jth network starts out with the expected revenue from assigning slot j to advertiser i.
2. Each internal node gathers the top k2 bidders (along with their corresponding bids) from its two children, and combines them into a single list of top k2 bidders. This takes time O(k) for each of the O(log n) levels of the tree, since each level of the tree works in parallel.
3. The root nodes in each of the j-networks take the union of their lists of bidders and compute the maximum-weight matching of these bidders with the k slots using the Hungarian algorithm. This takes time O(k5), since there are k slots and at most k2 bidders considered.
Sequential processing can be mixed with parallel processing by running more than one program sequentially on each machine, computing the top k bids, and then aggregating using a tree network as described herein. For example, for a binary tree network with p nodes, then the total running time becomes O((n/p)k log k+k log p+k5).
Finally the O(k5) part of the algorithm (i.e., the part resulting from running the Hungarian algorithm on the reduced bipartite graph) can be reduced to O(k2) using a parallel algorithm. The number of parallel processing units required is O(k5), which is independent of n.
To reduce processing time further, the assume that advertisers' computer-readable auction programs output bids on only Click Λ Slot1, . . . , Click Λ Slotk. Bids on other formulas can be incorporated, since both Click and Purchase are assumed to be 1-dependent events. It is assumed that the only difference between the programs used by different advertisers is in the values of certain advertiser-specific parameters. More precisely, for each slot j in [k], if each advertiser's bids depends on a set of (numeric) parameters Xj in a monotonic way, that is, if there is a monotonic function ƒj:Xj→R+ that takes as input a value for each parameter in Xj and outputs a bid for a click in slot j, some subset of the parameters Yj can be advertiser-specific, and these can vary from advertiser to advertiser (e.g., the amount that they value a particular keyword, the amount of budget remaining, etc.). These parameters Yj can be updated by computer-readable auction programs that win the auction, and computer-readable auction programs can update their state. The rest of the parameters Zj=Xj\Yj can be thought of as public global parameters, and are the same for all advertisers (e.g., the keyword scores associated with the user's search query, the time and date, the number of times the keywords in search query have appeared today). As an example, if advertisers all use the same general strategy of starting each day by bidding low and then gradually increasing their bids as the end of the day approaches, and they each start with a different amount and might increase their bids at different rates, the starting amounts and the rate of increase would be advertiser-specific parameters in Yj, and the time of day would be a global parameter in Zj. For each advertiser i and each slot j, the edge weight between advertiser i and slot j can be wi,j׃j(yi,j,zj), where wi,j is the probability of advertiser i getting a click in slot j, yi,j in Yj are the values of the advertiser-specific parameters, and zj in Zj are the values of the global parameters. If the maximum-weight matching can be solved in time O(nk log k+k5), under the assumptions above, the O(nk log k) portion that finds the top k2 bidders for each slot can be further reduced as follows. For a given slot j, a list of bidders sorted by wi,j can be stored and |Yj| lists of bidders can be incrementally maintained, each sorted by one of the parameters in Yj. A threshold algorithm, one that terminates when a certain threshold is achieved, with these lists can be run as input to find the top k advertisers with the highest values of wi,j׃j(yi,j,zj). It is not necessary to maintain lists for the parameters in Zj since all advertisers have the same value for these parameters. Since ƒj is monotonic, the threshold algorithm is instance optimal for the class of algorithms that find the advertisers with the top k values of ƒj(xi,j) without making “wild guesses” (i.e., the algorithms must not access an advertiser until that advertiser is encountered via a sequential scan of one of the lists). Instance optimality means that, for any input, the threshold algorithm finds the top k values within a constant factor of the time it takes the fastest algorithm that avoids wild guess on that input. Given these top k advertisers for each slot, we take O(k5) further time to compute the winners as described herein. To maintain the sorted lists, once the k winners have been computed, their Yj parameters are updated and accordingly their positions are updated in the sorted lists, which takes O(|Yj|k log n) time.
If only programs that win the auction update their private state, processing time can be further reduced by restricting the set of advertisers and periodically evaluating the computer-readable auction programs of all the advertisers. If Ui,j and Li,j be upper and lower bounds on the output bid of advertiser i's program for slot j, only those computer-readable auction programs i for which Ui,j is at least as high as the kth highest Li,j value are considered. The system can maintain a partition the advertisers' programs into DefiniteLosers and PossibleWinners, keeping track of upper bounds on the expected revenues for all advertisers and of lower bounds on the expected revenue for just those advertisers in PossibleWinners. At every step, the partition is updated by running the following procedure:
1. Compute the expected revenue only for programs in PossibleWinners.
2. Compute the top k expected revenue amongst the exact bids from programs in PossibleWinners.
3. Update the upper and lower bounds for the expected revenue for the programs in PossibleWinners.
4. Update the upper bounds for advertisers in DefiniteLosers.
5. Move an advertiser from DefiniteLosers to PossibleWinners if her upper bound is at least as high as the kth-highest lower bound from PossibleWinners.
6. Move an advertiser from PossibleWinners to DefiniteLosers if her upper bound is less than the kth-highest lower bound from Possible Winners.
The programs in DefiniteLosers can be stored in a max-heap, prioritized by the upper bound for the expected revenue from that program, in order to perform steps 5 and 6 efficiently. If PossibleWinners is much smaller than DefiniteLosers, the major savings come from finding an upper bound that does not change if an advertiser loses the auction. This eliminates the need to perform step 4. As an example, if the inputs to the program are geographic relevance, temporal relevance, user profile relevance, keyword relevance, number of clicks received so far today, amount paid for clicks so far today, and daily budget remaining, and it is assumed that the output bid is increasing with respect to the first four parameters, the last three parameters do not change for losing bidders. Thus, as an upper bound, the value of the bidding function supplied with the maximum possible values for the relevance parameters and current values for the last three parameters can be used. For a lower bound, the minimum values for the relevance parameters that result in a non-zero bid can be supplied.
When all programs update state, not just the winners, in certain situations, it is possible to reduce the processing time. If many programs update state using an operation that maintains relative bid ordering, as long as certain conditions hold (namely, the bid is above zero and the spending rate is above the target spending rate), the heuristic will decrement its bid for a given keyword. Thus, if a decrement list can be maintained—that is, a list of computer-readable auction programs, sorted by their bids, that are currently decrementing their bids for a given keyword—explicitly decrementing each program's bid can be avoided by instead performing a single logical decrement in constant time. That is, the decrement list is associated with a single adjustment variable, initially zero. A computer-readable auction program's bid can then be the sum of the adjustment variable and the computer-readable auction program's stored bid. So, in order to decrement the bids of all programs in the list, the adjustment variable is decremented. The sorted order is maintained because all computer-readable auction programs in the list adjust their bids by the same amount. For example, suppose that many bidders are using the ROT heuristic described herein, each with possibly different target spending rates and maximum bids. The ROI heuristic eventually stops decrementing the bid and starts to increment it (if the spending rate drops below the target) or keep it constant (if the bid is zero) instead. At this point the program can be moved to an increment list or a constant list as appropriate (similar to a decrement list, except that the adjustment variable respectively increments or remains constant). To reduce the amount of checking the conditions for each program at every auction, such conditions can often be reduced to waiting for a shared monotonic variable (such as time, or the number of times a given keyword has occurred) to reach a critical value. For example, in the ROI heuristic, the spending rates of losing programs decreases with time, since their amount spent remains constant. The next “critical” time that a program would have to stop decrementing and start incrementing can be computed, assuming that the program continued to lose. Similarly, the number of auctions for given keyword necessary before its bid would be decremented to zero and it would have to remain constant at zero can be computed. A list of triggers for the relevant shared monotonic variables, sorted by critical value, can be maintained, that when activated move a bidding program to the appropriate increment, decrement, or constant list, and the appropriate new triggers can be inserted.
If the slot assigned to an advertiser for a small company is just below a very large and popular competitor, then it is likely that the competitor will receive a substantial portion of user clicks that might otherwise have gone to the smaller advertiser had the competitor not been present. Thus, the probability of receiving a click (or a purchase) could depend on which other advertisers display ads and in what advertising slot positions. To accommodate this possibility, the advertisers could be classified as either heavyweights (famous advertisers) or lightweights (relatively unknown advertisers). The probability that a given advertiser gets a click (or a purchase) can depend not only on the advertiser's slot position, but also on which slots have heavyweight advertisers and which slots have lightweight advertisers. Advertisers can place bids that depend on which slots get heavyweights and which slots get lightweights, in addition to placing bids on, for example, click, purchases, and slot positions as before. Thus, an advertiser might bid 0.03 cents if for slot two if there is a lightweight advertiser in slot one. Advertisers could place more complex bids, such as bidding on having no heavyweights within three slot positions above or below the advertiser's slot in addition to having no more than two heavyweights appear anywhere else. The representation of the probability distributions and valuations now become O(k2k-1), and does not depend on n. For this situation, to solve the winner-determination problem, an assignment of slots to advertisers to maximize expected revenue (assuming advertisers pay what they bid) given these new valuations and distributions can be determined. For example the slots that get heavyweight advertisers in such a revenue maximizing assignment are can be termed heavyweight slots, and the remaining slots can be termed lightweight slots. The winner-determination problem can be solved by solving two disjoint maximum-weight bipartite matching problems: one matching the heavyweight advertisers to the heavyweight slots, and the other matching the lightweight advertisers to lightweight slots. If these solutions are determined for each possible way to choose heavyweight slots, the assignment that maximizes expected revenue over all possible assignments can be found. Moreover, the maximum-weight bipartite matching problems for different choices of heavyweight slots can be solved independently and in parallel. Therefore, since there are 2k ways to choose heavyweight slots, winner determination can be made in time O(2k(n log k+k5)) in series, or in time O(n log k+k5) in parallel using 2k processing units. Note that the number of parallel processing units is independent of the number of advertisers n.
If, during a search-related auction, the search keyword interests advertisers who are not competing with each other for sales, for example, a keyword like “games” might interest both sports stores and a video game stores, a video game advertisement would probably not drain clicks away from a sports store advertisement placed just below it as much as it would drain clicks from another video game advertiser. Thus, if the advertiser are typed (e.g., ‘video game store’, ‘sports store’, etc.), and if advertisers of the same type are displayed, they could affect each other's click-through and purchase rates, whereas advertisers of different types may not affect each others click-through and purchase rates. The probability that a given advertiser gets a click (or a purchase) can depend on the advertiser's slot position as well as on the set of slots that have advertisers who are of the same type. Advertisers can place bids on the set of slots that are assigned to advertisers of their own type, in addition to placing bids on, for example, click, purchases, and slot positions. Thus, an advertiser might bid 0.03 cents for slot two and if there is a competitor in slots one or three. Typically, an advertiser would bid less for a slot assignment if there were other advertisers of the same type, since these are the advertisers that represent the most competition. In general, the storage requirement for each advertiser's valuations and click and purchase probability distributions is O(k2k-1), similar to the heavyweight-lightweight model. For winner determination, the technique employed in computing winners for the heavyweight-lightweight model can be generalized. That is, for each possible way to assign types to slots, a separate winner-determination computation can be run, having a running time of O(gk(n log k+k5)) in series, or in time O(n log k+k5) in parallel using gk processing units, where g is the number of types of advertisers bidding in the auction.
Referring now to
Referring now to
Continuing to refer to
With respect to in-game advertising in Internet games, the billboard ads shown to a player do not have to be generated statically. The game can select which ad to display dynamically (via an auction) as long as it does so before the billboard is rendered on the player's screen. In-game advertising considerations include the acceptability of two players looking at the same virtual billboard simultaneously and seeing different ads. Thus, the game could display different ads for different players even in a shared environment, making in-game advertising amenable to targeted advertising. Advertisers can bid differently for different player profiles. Accurate statistics about players' in-game activities can be maintained by game servers in order to track players' progress. These statistics can be used to get a picture of the type of player. Also, certain types of internet games can contain social networks such as guilds (large groups of players who share similar goals or virtual professions), parties (smaller groups of players who go on quests together), and personal contact lists (other players who are friends of a player and who often socialize with the player in the game). These social networks can be mined to predict whether or not a new player falls into a certain market segment based on whether or not his friends and fellow guild-members do. Furthermore, in-game chat can be logged and mined for keywords that indicate potential interest in the products that the advertisers sell. In-game advertising considerations can further include virtual billboard impressions. The location of the billboard within the virtual world can affect the amount of impact its ads can have. Billboards placed at eye-level within the gameworld can have greater impact. Too many billboards cluttered together can reduce the amount of impression that an ad makes. Beyond spatial positioning of the billboard, gameplay-related distractions present at the location can also affect impressions. For example, if a billboard is placed in an area where there is a lot of intense and immersive gameplay (such as combat with a monster), then the player is not likely to pay much attention to the ad displayed on that billboard. Each billboard can be assigned a prominence score, based on the visibility of its spatial location and on the amount of distractions present at the location (e.g., other billboards, enemies, etc.). The prominence score can be calculated just before the auction for a billboard (or set of billboards) begins based on the number of enemies near the billboard at the time the player enters a trigger area, and based on the visibility the billboard would have for a player approaching from the trigger area. In-game advertising considerations can still further include ad exposure. Even if an ad is placed on a prominent billboard with few distractions around it, the player may still not see the ad because the player may be facing away from the ad. However, how long the ad is in the player's field of vision, whether or not the player's view of the ad was obstructed by another object, what angle the ad was viewed from, whether the player was engaged in some other activity (e.g., cycling through his inventory) while the ad was in view, etc., can be measured. These measurements can be combined into a single exposure score that is accumulated over the course of the game. Note that the exposure score is known only after the player has quit the game and is therefore uncertain at the time of the ad auction. In-game advertising considerations can also include player engagement. Aiming/targeting systems that can be built into Internet games can be used to determine player engagement. Players can, for example, bookmark ads by “shooting” at them. The number of shots fired can indicate how much the ad interests the player. Upon quitting the game, the player can then be presented with a splash screen containing the list of all the bookmarked ads, sorted by the extent of the player's interest.
In the setting of advertising on in-game billboards, the billboards are analogous to slots. The exposure and engagement scores are similar to clicks and purchases in that they are unknown at auction time, and therefore the game must maintain distributions of exposure and engagement scores for each billboard. These distributions can be based on historical data. An auction for a set of billboards is run when a player enters their trigger area. Advertisers can submit programs to bid for billboards, and these programs can be given access to variables relevant to the player's profile and to the current prominence scores for the set of billboards. Thus, instead of bidding on, for example, slots, clicks, and purchases, the in-game computer-readable auction programs can output bids on billboards as well as on intervals of exposure and engagement scores. For examples, an advertiser can bid 0.03 cents for the second-most prominent billboard if exposure ends up being greater than 0.8 and engagement ends up being greater than 0.6. This would be represented by a bids table as shown in
Another possible venue for Internet advertising is an Internet mapping system such as MAPQUEST®. In a map-route search, users submit a start address and a destination address; then the search provider returns a page displaying driving directions from the start to the destination, along with a map displaying this route. Ads on map-route search result pages can be displayed by highlighting segments along the route such that when the user clicks on or hovers over a highlighted segment, an advertiser's ad can be displayed in a balloon. Highlighted segments that are adjoining each other can be distinguished by the use of different colors. Moreover, the advertisers' ads can also be displayed alongside the appropriate set of steps in the driving directions. In the system of the present embodiment, advertisers can specify complex conditions, such as, for example, being a certain number of miles away from the start or destination address. For example, a gas station could choose to advertise only on map routes that start about three hundred miles away and pass by the gas station. In addition to specifying addresses, advertisers could also specify search phrases, such as “beach” or “museum”, which could then be matched to addresses. In this way, a swimwear store in an inland town could advertise on map searches from that town to any location near a beach. To apply the present embodiment to a map route, the route can be partitioned into a sequence of unit segments. These unit segments are analogous to slots in a list layout. Advertisers can then bid on blocks (i.e., intervals) of unit segments. In addition to allowing advertisers to bid on segments, advertisers can set different bids based on the number of competing advertisers of the same type displayed on the map. For example, a swimwear store might bid much higher if it is the only swimwear store displayed on the route, since one swimsuit is usually enough for most people.
Although the teachings have been described with respect to various embodiments, it should be realized these teachings are also capable of a wide variety of further and other embodiments.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US2008/074475 | 8/27/2008 | WO | 00 | 4/26/2010 |
Number | Date | Country | |
---|---|---|---|
60968156 | Aug 2007 | US |