In search advertising, advertisers commonly set respective budgets to be spent in auctions during a period of time (e.g., $X for a day, week, month, year, or substantially any other period of time). However, the budgets of advertisers oftentimes run out before the time period ends. Accordingly, it is desirable to smooth out the budgets of the advertisers over the time period. Such smoothing can be achieved, for instance, by restricting participation (e.g., throttling) of such advertisers from a subset of auctions.
Various conventional approaches have attempted to select auctions out of which to throttle advertisers. One such conventional approach is random throttling. With random throttling, a probability parameter pi is evaluated for each advertiser i, and such advertiser is throttled out of each auction independently with probability pi. Such probability pi can relate to a rate at which the advertiser i is overspending. For instance, if in the previous week (considering budgets for a time period having a duration of a week) a budget of the advertiser i is exhausted by mid-week, then the probability can be set to pi=1/2 for the current week.
According to an example where random throttling is employed, consider a scenario where one advertiser has a budget of $100 and participates in two auctions (e.g., two generalized second-price auctions (GSPs)), each having a reserve price of $1. Following this example, the advertiser bids $1 in the first auction and bids $100 in the second auction. Suppose there are 100 instances of each auction during a time period. Further, assume that other advertisers are not participating in the two auctions. Pursuant to this example, the budget of the advertiser can be exhausted halfway through the time period that covers the 100 instances of each auction; accordingly, the probability can be set to pi=1/2. Thus, the advertiser can be throttled out of each of the two auctions independently with probability pi=1/2. In accordance with this example, random throttling can cause the advertiser to participate in 50 of the 100 instances of each of the two auctions. Yet, based on the bids of the advertiser, it may be desirable to cause the advertiser to participate in none of the instances of the first auction and 100 instances of the second auction. However, with random throttling, bids of advertisers are not considered when distinguishing between auctions from which to throttle advertisers. Thus, random throttling can incentivize an advertiser to discontinue bidding on lower value auctions (e.g., in the foregoing example the advertiser has an incentive to discontinue bidding on the first auction since the advertiser places a higher value on the second auction as evinced by the higher bid in the second auction).
Other approaches can perform throttling decisions that attempt to optimize factors such as social welfare or revenue. According to an example where a social welfare maximization approach is utilized, consider a scenario where two advertisers (advertiser A1 and advertiser A2) participate in an auction (e.g., GSP) with budgets $5 and $100, respectively. Following this example, suppose the reserve price for the auction is 5 cents, and there are 100 instances of the auction during a time period. Advertiser A1 bids $5 and advertiser A2 bids $4. In the social welfare maximization approach, advertiser A2 is throttled from participating in the auction, thereby allowing advertiser A1 to win the 100 instances of the auction at the reserve price of 5 cents per instance. Accordingly, prices are kept artificially low to maximize welfare in such approach. However, revenues of the auctioneer may be impacted by this approach.
By way of another example where a revenue maximization technique is employed, consider a scenario with three advertisers: advertiser A1, advertiser A2, and advertiser A3. Advertiser A1 has an unlimited budget (budget of ∞), advertiser A2 has a budget of $100, and advertiser A3 has an unlimited budget (budget of ∞). Moreover, pursuant to this example, suppose there are two auctions: auction I1 and auction I2. Each of the auctions has two slots. Auction I1 has a reserve price of $2 and auction I2 has a reserve price of $1, and there are 100 instances of each of the auctions during a time period. Following this example, advertiser A 1 bids $4 on auction I/1 and nothing on auction I2. Moreover, advertiser A2 bids $3 on auction I/1 and $100 on auction I2, that is advertiser A2 prefers auction I2 to auction I/1. Further, advertiser A3 bids $2 on auction I2 and nothing on auction I/1. In the revenue maximization approach, advertiser A2 participates in auction I/1 to maximize an amount of revenue received by the auctioneer from advertiser A1, where advertiser A1 has an unlimited budget. To provide that advertiser A2 continues to participate in auction I/1 (e.g., for the 100 instances of auction I/1), advertiser A2 can be throttled out of auction I2. Moreover, the amount of revenue received from advertiser A3 for the 100 instances of auction I2 is not affected by whether advertiser A2 participates in auction I2. Accordingly, with advertiser A2 throttled out of auction I2, revenue received by the auctioneer can be maximized (e.g., $300 can be received from advertiser A1 based on the $3 bid by advertiser A2, $200 can be received from advertiser A2 based on the $2 reserve price for auction I/1, and $100 can be received from advertiser A3 based on the $1 reserve price for auction I2). However, such approach can be unfair to advertiser A2 (e.g., since advertiser A2 expressed a preference for auction I2 based on the $100 bid), and thus, advertiser A2 is likely to leave the system if throttled out of auction I2 as set forth above.
Described herein are various technologies that pertain to smoothing budgets of advertisers in online advertising. Information that indicates respective budgets of advertisers for online advertising during a time period and bids for auctions during the time period from the advertisers can be received. Moreover, a determination concerning whether to either throttle an advertiser from an auction or permit the advertiser to participate in the auction can be effectuated for each of the auctions during the time period and for each of the advertisers. The determination satisfies equilibrium conditions between the advertisers based on the respective budgets of the advertisers and the bids of the auctions. Moreover, winning bids for the auctions during the time period are determined. The winning bids can be determined from the bids of the advertisers respectively permitted to participate in each of the auctions.
In various embodiments, the throttling/participation decision can be made based on respective threshold minimum return on investment values for the advertisers. The respective threshold minimum return on investment values can be received (e.g., retrieved from a data repository, etc.), computed, adjusted (e.g., periodically, continuously), and so forth. Moreover, participation profiles for each of the auctions can be determined based at least in part on the respective threshold minimum return on investment values for the advertisers and the bids for the auctions from the advertisers. For instance, a participation profile for a particular auction includes a first subset of the advertisers that participate in the particular auction and excludes a second subset of the advertisers throttled from the particular auctions.
The above summary presents a simplified summary in order to provide a basic understanding of some aspects of the systems and/or methods discussed herein. This summary is not an extensive overview of the systems and/or methods discussed herein. It is not intended to identify key/critical elements or to delineate the scope of such systems and/or methods. Its sole purpose is to present some concepts in a simplified form as a prelude to the more detailed description that is presented later.
Various technologies pertaining to smoothing budgets of advertisers during a time interval based on an equilibrium allocation between advertisers are now described with reference to the drawings, wherein like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of one or more aspects. It may be evident, however, that such aspect(s) may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to facilitate describing one or more aspects. Further, it is to be understood that functionality that is described as being carried out by certain system components may be performed by multiple components. Similarly, for instance, a component may be configured to perform functionality that is described as being carried out by multiple components.
Moreover, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or.” That is, unless specified otherwise, or clear from the context, the phrase “X employs A or B” is intended to mean any of the natural inclusive permutations. That is, the phrase “X employs A or B” is satisfied by any of the following instances: X employs A; X employs B; or X employs both A and B. In addition, the articles “a” and “an” as used in this application and the appended claims should generally be construed to mean “one or more” unless specified otherwise or clear from the context to be directed to a singular form.
Referring now to the drawings,
As used herein, the term “throttle” is intended to mean “restrict from participating.” Moreover, as used herein, the term “auctioneer” is intended to encompass an owner of an item that is available by way of auction. For example, a search engine may comprise the system 100, and the search engine may be the auctioneer for the auctions. According to another example, an exchange for display advertising may be the auctioneer for the auctions. Further, various types of online advertising are intended to fall within the scope of the hereto appended claims; examples of online advertising types include, but are not limited to, search-based keyword advertising, banner advertising, social network advertising, interstitial advertising, and the like.
The system 100 includes N advertisers, namely, advertiser 1 106, . . . , and advertiser N 108, where N can be substantially any integer greater than 1 (collectively referred to herein as advertisers 106-108). Moreover, the system 100 includes M auctions, namely, auction 1 110, . . . , and auction M 112, where M can be substantially any integer greater than 1 (collectively referred to herein as auctions 110-112). The auctions 110-112, for example, can be generalized second-price auctions, Vickrey-Clarke-Groves auctions, or the like.
The selective participation component 102 can receive information that indicates respective budgets of the advertisers 106-108 for online advertising during a time period. It is contemplated that the budgets can be for a time period having substantially any duration (e.g., day, week, month, year, etc.). Moreover, the selective participation component 102 can receive bids for the auctions 110-112 during the time period from the advertisers 106-108. According to various examples, the selective participation component 102 can receive the information that indicates the respective budgets and/or the bids from the advertisers 106-108 (e.g., via any type of user interface), from a data repository (not shown) that retains the budget information and/or bids, a combination thereof, and so forth.
The selective participation component 102 can determine whether to throttle an advertiser from an auction or permit the advertiser to participate in the auction. Such determination can be made by the selective participation component 102 for each of the auctions 110-112 during the time period and for each of the advertisers 106-108. By way of example, for a given auction j (e.g., where auction j is in the set of auctions 110-112), the selective participation component 102 can permit a first subset of the advertisers 106-108 to participate in such auction j. Following the foregoing example, the selective participation component 102 can throttle a second subset of the advertisers 106-108 from the auction j. The determination effectuated by the selective participation component 102 satisfies the equilibrium conditions 104 between the advertisers 106-108 based on respective budgets of the advertisers 106-108 and the bids for the auctions 110-112; thus, the determination provides an equilibrium allocation of advertisers permitted to participate in each of the auctions 110-112.
The equilibrium conditions 104 between the advertisers 106-108 can be based on the notion of the Nash equilibrium from game theory. The equilibrium conditions 104 support various properties that provide stability within the system 100 (e.g., the properties support long term participation of the advertisers 106-108). More particularly, the equilibrium conditions 104 provide for not throttling an advertiser out of an auction during a time period if a budget of the advertiser during that time period is not expected to be exhausted. Further, for a budget constrained advertiser (e.g., an advertiser expected to exhaust a corresponding budget during the time period), the equilibrium conditions 104 can provide for throttling the advertiser from auction(s) that give lower returns on investment as compared to auction(s) in which budget is spent (e.g., thereby mitigating the advertiser from feeling unfairly throttled and/or having an incentive to alter the throttle/participate decision made by the selective participation component 102). Thus, given the equilibrium conditions 104, the selective participation component 102 does not throttle an advertiser with remaining budget to spend, and throttling decisions for budget constrained advertisers made by the selective participation component 102 can maximize returns on investment given actions of other advertisers.
The system 100 further includes an auction component 114 that determines winning bids for the auctions 110-112 during the time period. The winning bids can be determined by the auction component 114 from the bids of the advertisers 106-108 respectively permitted to participate in each of the auctions 110-112. For instance, each of the auctions 110-112 can have K slots (e.g., slot 1, . . . , slot K for auction 1 110, etc.), where K can be substantially any integer equal to or greater than 1. Accordingly, the number of winning bids identified by the auction component 114 for each of the auctions 110-112 can be less than or equal to K (e.g., depending upon a respective number of bids from advertisers 106-108 permitted to participate and a respective reserve price for each of the auctions 110-112). Although many of the examples set forth herein describe each of the auctions 110-112 having a common number of slots (e.g., K slots), it is contemplated that different auctions can have differing numbers of slots (e.g., auction 1 110 can have five slots and auction M 112 can have ten slots, etc.).
As noted above, the determination whether to throttle an advertiser from an auction or permit the advertiser to participate in the auction made by the selective participation component 102 satisfies the equilibrium conditions 104 between the advertisers 106-108 based on the respective budgets of the advertisers 106-108 and the bids for the auctions 110-112. For example, the equilibrium conditions 104 can include that the advertiser is expected to spend less than or equal to a respective budget during the time period on a subset of the auctions in which the advertiser is permitted to participate and has a winning bid; accordingly, such condition can maintain feasibility. The equilibrium conditions 104 can also include that the advertiser is permitted to participate in the auction when the advertiser is expected to spend less than the respective budget during the time period; thus, such condition can provide for maximal participation of the advertiser. Moreover, the equilibrium conditions 104 can include that the advertiser is permitted to participate in the auction when the advertiser is expected to exhaust the respective budget and disparate auctions from which the advertiser is throttled provide lower returns on investment for the advertiser. Further, the equilibrium conditions 104 can include that the advertiser is throttled from the auction when the advertiser is expected to exhaust the respective budget during the time period and disparate auctions in which the advertiser is permitted to participate provide higher returns on investment for the advertiser.
The system 100 can further be described as follows. Let N be the number of advertisers 106-108 and M be the number of auctions 110-112. Advertiser is in the set of N advertisers 106-108, thus, advertiser i∈[N]. Further, auction j is in the set of M auctions 110-112, accordingly, auction j∈[M]. Advertiser i has a budget Bi, bid bi(j) and probability of click value (p-click) pi(j) for auction j∈[M]. A score of advertiser i for auction j can be denoted as vi(j)=bi(j)pi(j). Each auction j∈[M] has a reserve price of rj.
As noted above, the selective participation component 102 determines a subset of the advertisers 106-108 that can participate in auction j; such subset of the advertisers 106-108 is represented as Sj, where Sj⊂[N]. Further, a disparate subset of the advertisers 106-108 can be throttled from the auction j by the selective participation component 102; accordingly, if an advertiser i∉Sj, then such advertiser i has been throttled from auction j. The vector {Si: j∈[M]} can be referred to as a participation profile (e.g., participation set).
Each of the auctions 110-112 can have K slots, that is, there can be K winners for each of the auctions 110-112. Let θk be the position factor of slot k. In the jth auction, the auction component 114 executes a generalized second-price auction (GSP) on the set Sj of bidders. More particularly, the auction component 114 sorts the scores vi (j) for i∈Sj; in decreasing order to get {vi
Accordingly, ROI(i, Sj) denotes the ROI of advertiser i from auction j when the participation profile is Sj; ROI(i, Sj) is set to 0 if advertiser i does not win any of the K slots of auction j. Moreover, a minimum return on investment for advertiser i (minROI(i)) is a minimum taken over all auctions where i is a winner. Further, spend(i):=Σj∈[M]s(i,j).
According to an example, a participation profile can satisfy the equilibrium conditions 104 if the following properties hold:
1. Feasibility: spend(i) Bi.
2. Maximal Participation: If spend(i)<Bi, then i∈Sj for all j.
3. Optimal Throttling: If∉Sj, then ROI(i, Sj∪i) is at most minROI(i).
In the foregoing, the first property maintains feasibility. The second property provides that if an advertiser does not exhaust his budget, then that advertiser is not throttled. The third property provides that any auction from which an advertiser has been throttled provides less ROI than the auctions in which that advertiser participates and wins (and therefore spends money). Note that if the optimal throttling property and the maximal participation property are met, then each of the advertisers 106-108 participate in their most profitable auctions given the participations of other advertisers 106-108.
By way of another example, participation profiles can be randomized. Following this example, for each auction j, instead of a single participation profile Sj, there can be a distribution Sj on participation profiles. Accordingly, equilibrium participation can be based on the following properties. Moreover, in the following, for minROI(i), the minimum is taken over all participation profiles S in support of various Sj.
Pursuant to this example, a participation profile (e.g., a fractional participation profile) can satisfy the equilibrium conditions 104 if the following properties hold:
1. Feasibility: Exp[spend(i)]≦Bi for all i.
2. Maximal Participation: If Exp[spend(i)]<Bi, then for all j, for all S in support of Sj, i∈S.
3. Optimal Throttling: If i∉S for some Sin support of Sj for some j, then the ROI obtained by i in S∪i is at most minROI(i).
Now turning to
The system 200 includes the selective participation component 102. The selective participation component 102 can receive bids 204 for the M auctions from the N advertisers (e.g., the advertisers 106-108 of
The selective participation component 102 can include a score computation component 208 and a rank component 210. Based on the bids 204 (and p-click values which can also be received by the selective participation component 102), the score computation component 208 can calculate a score for advertiser i for auction j as vi(j)=bi(j)pi(j). Moreover, the rank component 210 can sort the scores vi(j) in decreasing order for auction j to obtain v1(j)>v2(j)> . . . >vl(j)>rj (referred to herein as a decreasing order of scores), where rj is a reserve price for the auction j. According to another example, it is contemplated that the auction component 114 of
Moreover, the selective participation component 102 can include a return analysis component 212 that calculates returns on investment based on the scores as sorted in decreasing order. Further, the selective participation component 102 can compare the returns on investment computed by the return analysis component 212 to the threshold minimum returns on investment values 206 to determine whether to throttle advertisers from auctions or permit advertisers to participate in auctions.
Thus, the selective participation component 102 can determine whether to throttle an advertiser i or permit the advertiser i to participate in an auction j based on a threshold minimum return on investment value for the advertiser i, which is included in the threshold minimum return on investment values 206. Accordingly, the return analysis component 212 can permit the advertiser i to participate in a first subset of the M auctions, wherein auctions in the first subset that the advertiser i wins each provide the advertiser i with a return on investment as computed by the return analysis component 212 greater than the threshold minimum return on investment value for the advertiser i. Further, the selective participation component 102 can throttle the advertiser i from a second subset of the M auctions, wherein auctions in the second subset from which the advertiser i is throttled each provide the advertiser i with a return on investment computed by the return analysis component 212 lower than or equal to the threshold minimum return on investment value for the advertiser i. Thus, the selective participation component 102 can determine the participation profiles 202 for each of the M auctions based at least in part on the respective threshold minimum return on investment values 206 and the bids 204 for the M auctions from the N advertisers. The participation profiles 202 determined by the selective participation component 102 satisfy the equilibrium conditions between the advertisers.
More particularly, in the system 200, each advertiser i is assigned a parameter αi≧1, which denotes a lower bound on the minROI of this advertiser, also referred to herein as the threshold minimum return on investment value. The selective participation component 102 executes the throttle/participation decisions to provide that auctions that the advertiser i wins have returns on investment computed by the return analysis component 212 of at least αi. Further, the selective participation component 102 executes the throttle/participation decisions to provide that auctions in which the advertiser i does not participate have returns on investment computed by the return analysis component 212 of at most αl assuming that the advertiser instead participated in such auctions.
Accordingly, given α:=(α1, α2, . . . , αn), a participation profile {S1, . . . , SM} respects thresholds a for each advertiser i∈[N] and each auction j∈[M]:
If i∈Sj then ROI(i,Sj)=0 or ROI(i,Sj)>αi; and
If i∉Sj, then ROI(i,Sj∪αi.
Observe that if a participation profile respects thresholds a, for any a, then the optimal throttling condition is satisfied.
Below is exemplary pseudocode for determining a participation profile. The pseudocode can represent a procedure referred to herein as ReturnParticipationSet (j). Such procedure can be executed by the selective participation component 102 (e.g., at least a portion of the procedure can be executed by the return analysis component 212). Inputs include the scores sorted in decreasing order for an auction j (e.g., generated by the score computation component 208 and sorted by the rank component 210) and the threshold minimum return on investment values 206, referred to as α. Moreover, a participation profile that respects α is outputted. It is to be appreciated that such pseudocode is presented for illustration purposes, and the claimed subject matter is not so limited.
The foregoing pseudocode is for a given auction j. The advertisers are renumbered (e.g., by the rank component 210) so that v1 (j)>v2(j)> . . . >vl(j)>rj. Note that for any advertiser i, vi(j)/vi′(j)<vi(j)vi″(j) if vi′(j)>vi″(j). Given α, a mapping σ:[N][N] is defined at line 3 as follows: for all i′<σ(i), vi(j)/vi′(j)≦αi and vi(j)/vσ(i)(j)>αi. If vi(j)/rj<αi, let σ(i)=∞. Note that σ(i)≧(if αi1). In lines 4-10, the mapping generated at line 3 is used to identify a subset of the advertisers to include in a participation profile S. Further, in a participation profile Sj respecting α, if i∈Sj then no advertiser strictly between i and σ(i) can be present in Sj.
The participation profile returned by the aforementioned pseudocode is an α-respecting set. According to an example, when an advertiser i is being considered, current.min points to an advertiser i′ who is present in Sj such that no advertiser strictly between i and i′ is present. Therefore, if the advertiser i were to be included in Sj and advertiser i were to win a slot of the auction j, the ROI for the advertiser i would be vi(j)/vi′(j). If i∉Sj, the σ(i)≧i′ or equivalently the ROI of i in Sj∪i would be ≦αi. If i∈Sj, the ROI of advertiser i is either 0 (e.g., if the advertiser i does not win any slot of the auction j) or >αi since i′>σ(i). In either case, the final Sj is α-respecting.
According to an example, a participation profile for a particular auction j can be determined (e.g., by the selective participation component 102) as follows. The score computation component 208 can calculate scores for each of the advertisers as a function of the bids 204 for the particular auction j from the advertisers. By way of example, the scores calculated by the score computation component 208 can further be a function of probability of click values of the advertisers for the particular auction j. According to another example, it is contemplated that the selective participation component 102 can receive the scores for each of the advertisers (e.g., rather than calculating the scores with the score computation component 208).
Whether computed by the score computation component 208 or received by the selective participation component 102, the rank component 210 can receive the scores for each of the advertisers. Further, the rank component 210 can rank the scores that are greater than a reserve price rj for the particular auction j in a decreasing order of scores. Moreover, the selective participation component 102 can generate a mapping from the decreasing order of scores. Further, the selective participation component 102 can determine a subset of the advertisers that participate in the particular auction j based on the mapping. According to an illustration, for each score in the decreasing order of scores from a lowest score to a highest score, the selective participation component 102 can generate a mapping for an advertiser i corresponding to such score and compare the mapping for the advertiser i to a current minimum value; if the mapping for the advertiser i is less than the current minimum value, the selective participation component 102 can add the advertiser i to the subset of the advertisers that participate in the particular auction j and set the mapping for the advertiser i as the current minimum value.
As provided above, the mapping can be a function of the respective minimum threshold values 206 for the advertisers and returns on investment computed by the return analysis component 212 from scores in the decreasing order. As noted above, the mapping can be generated as part of the foregoing iterative approach for each score in the decreasing order of scores utilizing the following algorithm:
In the foregoing, σ(i) is a mapping for an advertiser i to one of infinity or an advertiser i′. Further, vi (j) is a score for the advertiser i for an auction j and vi′(j) is a score for the advertiser i′ for the auction j, wherein the score for the advertiser i for the auction j is greater than the score for the advertiser i′ for the auction j in the decreasing order of scores. Moreover, αi is a threshold minimum return on investment value for the advertiser i, and the advertiser i′ is associated with a maximum score within the decreasing order of scores that provides a return on investment greater than the threshold minimum return on investment for the advertiser i.
According to an illustration, given a, a participation profile which is α-respecting can be identified, and such participation profile can satisfy the optimal throttling property. Also, note that if αi=1 for an advertiser, then such advertiser can participate in auctions without throttling. However, a resulting profile need not be feasible. Therefore, for example, an equilibrium participation profile can be obtained if αi's can be found such that the resulting participation profile is feasible with αi=1 for advertisers i whose spends are smaller than their budgets.
Turning now to
The system 300 further includes a threshold computation component 306. The threshold computation component 306 can adjust respective threshold minimum return on investment values for the advertisers based on actual spend rates versus ideal spend rates for the advertisers. Moreover, the threshold computation component 306 can set initial respective threshold minimum return on investment values for the advertisers.
Below is exemplary pseudocode for an online budget smoothing heuristic. The following can be executed, for instance, by the system 300. However, it is to be appreciated that such pseudocode is presented for illustration purposes, and the claimed subject matter is not so limited.
In the foregoing pseudocode at line 1, inputs include the scores 304 for the advertisers, the budgets 302 of the advertisers, and the N auctions. As described herein, the budgets 302 can be time interval budgets for the N advertisers, where the time interval can be substantially any duration (e.g., day, week, month, year, etc.). Moreover, the participation profiles 202 are generated as output (line 3). Various parameters can be set at line 4 such as a granularity parameter and a growth parameter. The granularity parameter, for instance, can pertain to a frequency at which the threshold minimum return on investment values are updated.
At line 5, the threshold minimum return on investment values for each of the advertisers and a spend amount for each of the advertisers is initialized. At line 6, possible return on investment values are evaluated (e.g., computed by the return analysis component 212 of
The following presents various features related to equilibrium participation profiles in general. It is to be appreciated, however, that the claimed subject matter is not limited to the following.
Equilibrium participation profiles exist. For instance, ReturnParticipationSet set forth above can be modified to return a distribution Sj on sets. To do so, note that for each advertiser i there are Li≦NM possible ROI's that can be obtained from winning an auction. The possible ROI's are of the form
ranging over all j∈[M] and i′ such that vi(j)>vi′(j). Arrange these Li fractions in increasing order: let these be 1=f0<f1<f2< . . . <fL
and fq+1 with probability (1−p). ReturnParticipationSet can be run with these αi's, and the distribution on sets Sj so obtained can be outputted. Let this randomized algorithm be called ReturnDistParticipation.
It can be observed that although ReturnDistParticipation returns a distribution, the optimal throttling condition is satisfied. This is because each (S1, . . . , SM) respects some (fq(1), . . . , fq(n)—thresholds where fq(i) s the lower bound on αi. Further, if αi is fixed for all advertisers but i, randomization makes Exp[spend(i)] a continuous function of αi (in fact it is a piecewise linear function). Now given certain thresholds a, consider the mapping to get a new set of thresholds:
α′i:Π(αi+η(Exp[spend(i)]−Bi)) (1)
where 0<η<1 is any scalar, Exp[spend(i)] is the expected spend, and Π is the projection operator defined as Π(x)=x if x∈[0,Li], Π(x)=Li if x>Li and Π(x)=0 if x<0.
Putting it all together, a mapping φ from [0, Li]N to [0, Li]N which takes input (α1, . . . , αN) can be obtained. Further, the fractional participation profile as described above can be computed, the expected spends can be computed, (α′1, . . . , α′N)∈[0,Li]N can be returned using Equation (1) above. The domain of φ is closed and compact. φ is continuous because as defined Exp[spend(i)] is continuous function of the αi's and the projection function is continuous. Therefore, by Brouwers fixed point theorem, a fixed point (α*1, . . . , α*N) can result.
Further, the fractional participation profile respecting (α*1, . . . , α*N) is in equilibrium. Moreover, for any bids, budgets, auctions and slots, an equilibrium fractional participation profile exists.
Turning now to
Moreover, the acts described herein may be computer-executable instructions that can be implemented by one or more processors and/or stored on a computer-readable medium or media. The computer-executable instructions can include a routine, a sub-routine, programs, a thread of execution, and/or the like. Still further, results of acts of the methodologies can be stored in a computer-readable medium, displayed on a display device, and/or the like.
Now referring to
Referring now to
The computing device 700 additionally includes a data store 708 that is accessible by the processor 702 by way of the system bus 706. The data store 708 may include executable instructions, budgets, bids, probability of click values, advertisements, threshold minimum return on investment values, mappings, scores, participation profiles, parameters, etc. The computing device 700 also includes an input interface 710 that allows external devices to communicate with the computing device 700. For instance, the input interface 710 may be used to receive instructions from an external computer device, from a user, etc. The computing device 700 also includes an output interface 712 that interfaces the computing device 700 with one or more external devices. For example, the computing device 700 may display text, images, etc. by way of the output interface 712.
It is contemplated that the external devices that communicate with the computing device 700 via the input interface 710 and the output interface 712 can be included in an environment that provides substantially any type of user interface with which a user can interact. Examples of user interface types include graphical user interfaces, natural user interfaces, and so forth. For instance, a graphical user interface may accept input from a user employing input device(s) such as a keyboard, mouse, remote control, or the like and provide output on an output device such as a display. Further, a natural user interface may enable a user to interact with the computing device 700 in a manner free from constraints imposed by input device such as keyboards, mice, remote controls, and the like. Rather, a natural user interface can rely on speech recognition, touch and stylus recognition, gesture recognition both on screen and adjacent to the screen, air gestures, head and eye tracking, voice and speech, vision, touch, gestures, machine intelligence, and so forth.
Additionally, while illustrated as a single system, it is to be understood that the computing device 700 may be a distributed system. Thus, for instance, several devices may be in communication by way of a network connection and may collectively perform tasks described as being performed by the computing device 700.
As used herein, the terms “component” and “system” are intended to encompass computer-readable data storage that is configured with computer-executable instructions that cause certain functionality to be performed when executed by a processor. The computer-executable instructions may include a routine, a function, or the like. It is also to be understood that a component or system may be localized on a single device or distributed across several devices.
Further, as used herein, the term “exemplary” is intended to mean “serving as an illustration or example of something.”
Various functions described herein can be implemented in hardware, software, or any combination thereof. If implemented in software, the functions can be stored on or transmitted over as one or more instructions or code on a computer-readable medium. Computer-readable media includes computer-readable storage media. A computer-readable storage media can be any available storage media that can be accessed by a computer. By way of example, and not limitation, such computer-readable storage media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer. Disk and disc, as used herein, include compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and blu-ray disc (BD), where disks usually reproduce data magnetically and discs usually reproduce data optically with lasers. Further, a propagated signal is not included within the scope of computer-readable storage media. Computer-readable media also includes communication media including any medium that facilitates transfer of a computer program from one place to another. A connection, for instance, can be a communication medium. For example, if the software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio and microwave are included in the definition of communication medium. Combinations of the above should also be included within the scope of computer-readable media.
Alternatively, or in addition, the functionally described herein can be performed, at least in part, by one or more hardware logic components. For example, and without limitation, illustrative types of hardware logic components that can be used include Field-programmable Gate Arrays (FPGAs), Program-specific Integrated Circuits (ASICs), Program-specific Standard Products (ASSPs), System-on-a-chip systems (SOCs), Complex Programmable Logic Devices (CPLDs), etc.
What has been described above includes examples of one or more embodiments. It is, of course, not possible to describe every conceivable modification and alteration of the above devices or methodologies for purposes of describing the aforementioned aspects, but one of ordinary skill in the art can recognize that many further modifications and permutations of various aspects are possible. Accordingly, the described aspects are intended to embrace all such alterations, modifications, and variations that fall within the spirit and scope of the appended claims. Furthermore, to the extent that the term “includes” is used in either the details description or the claims, such term is intended to be inclusive in a manner similar to the term “comprising” as “comprising” is interpreted when employed as a transitional word in a claim.