The invention relates to display advertising. More particularly, the invention relates to optimizing the delivery of display advertising impressions.
Display advertising appears on the Internet as a form of online advertising and appears on Web pages in many forms, including Web banners. The placing of display advertising is often a function of a fixed budget campaign, where the budget is comprised of all the funds paid for a number of impressions that are to be delivered. Impressions are delivered in ad slots and not all ad slots are created equal. Some ad slots have a higher probability of generating a click than others, that is they have a higher impression value. In some cases, certain advertisers may want an advertising campaign that is not necessarily optimized for impression value, e.g. they pay price for each ad impression regardless of its value. At the same time, the advertisers also want more clicks. Thus, they may want to have a fixed budget to be delivered as a priority, but they may also want to maximize the click rate. In such case, there are two competing goals, i.e. delivering the budget is the primary goal, but maximizing the number of clicks for the budget is also key. Unfortunately, accomplishing this is not simple.
The problem can also be extended to any kind of predictable event, such as a user clicking an ad, completing a checkout process, requesting a quote, signing up for form, etc.
One approach to addressing this problem is to look at possible optimization techniques. Here, an analogy is helpful. Consider mushroom hunting with a backpack. Each time a mushroom is found a decision is made whether or not to pick it up. This is a quick mental decision based on whether enough mushrooms have already been collected given the amount of time available to collect mushrooms. This is another way of stating the classic knapsack problem.
The knapsack problem or rucksack problem is a problem in combinatorial optimization: Given a set of items, each with a weight and a value, determine the number of each item to include in a collection so that the total weight is less than or equal to a given limit and the total value is as large as possible. It derives its name from the problem faced by someone who is constrained by a fixed-size knapsack and must fill it with the most valuable items. The problem often arises in resource allocation where there are financial constraints and is studied in fields such as combinatorics, computer science, complexity theory, cryptography, and applied mathematics.
The mushroom hunting analogy is apposite. There is only limited time for going through the forest trying to fill a knapsack with mushrooms, e.g. two hours. You start by picking up pretty much any mushroom that comes your way. But once half of the knapsack is already filled with mushrooms, then the threshold with regard to how good a mushroom has to be to pick it up is high because there is no doubt about being able to fill the knapsack in the portion of the time budget that remains. Thus, as the knapsack is filled, the process of picking mushrooms becomes more and more selective.
The inventors have recognized that it is possible to frame the problem of staying within an advertising budget while maximizing clicks as that of filling an online knapsack. There is a fixed volume, i.e. an advertising budget to spend on impressions, but each individual click has its own value. That is, some impressions are more valuable than others. To solve this problem, it is necessary to pick only items (impressions) with the highest value possible (highest likelihood of a click), but it is not known in advance how these impressions are distributed. At first, then, all impressions may be purchased, but eventually as the budget is expended the selection process becomes more selective, so that only the most valuable impressions, i.e. those more likely to result in a click, are chosen.
Embodiments of the invention address the problem of providing a fixed advertising budget that includes delivery of a number of impressions as a priority, while also maximizing advertiser performance, e.g. measured as clicks per impressions rate (CTR) or actions per impression rate (AR), depending on campaign configuration. For purposes of the discussion herein an action is any kind recordable event that user performs after being exposed to an ad, for example completing a purchase in an online store, signing up for an event, etc. Embodiments of the invention provide a mechanism for optimizing delivery of impressions for a fixed advertising budget, typically as a primary goal, while also maximizing the number of clicks/actions for the budget. In such case, even though the delivery of a certain number of impressions is guaranteed, there is no way to know for certain in advance how this delivery can occur because of the volatile nature of the on-line advertising market. Depending on such factors on the target competitive environment, availability of publishers, and the like, it is not certain whether there can be delivery of enough impressions that an advertiser has required an agency to deliver. In such case, delivery of the required number of impressions is the number one priority, i.e. it is absolutely necessary to deliver each and every impression.
For each ad impression, the probability of a click or action is estimated separately. Thus, for each impression there is an estimate of how likely an ad impression is to result in a click or action. In an embodiment, threshold filters are set up for every ad to decide whether to accept the impression or not based upon the predicted click-through rate (CTR) or action rate (AR) for the impression. For example, some small budget advertiser may have $100 per day to spend and wants 100,000 impressions. In the real world, an agency might have 1,000,000 daily impressions available that match the advertiser bid and targeting. The advertiser may be qualified for any 100,000 of 1,000,000 impressions. Accordingly, the advertiser may have the luxury of cherry-picking, i.e. only accepting those impressions where the predicted click rate is higher. One aspect of the invention provides a controlled feedback mechanism that re-estimates the budgeted number of impressions over fixed time periods to determine if the rate of impressions is on target, if the budget is going to be filled, if there are too many impressions, and the like. If there are too many impressions, the filter threshold is raised. If only a very few impressions are placed, the filter threshold is lowered.
There is a ratio between impressions and clicks. Clicks are desirable results of an impression. As discussed above, the first goal for purposes of the invention is to deliver impressions, and the second goal is to maximize the number of clicks. The filtering and threshold adjustments effect a form of a throttling based upon sampling. Sampling allows an advertiser to spread their budget. If there are a certain number of impressions available, but it is only necessary to deliver a portion of those that are available, then only some of the impressions are delivered. The sampling ratio and the throttling that is based on a prediction are closely related. Thus, random sampling is used to make sure that the budget is spread throughout an advertising cycle, while filtering operates in addition to sampling, and is based on an estimate or click-through rate for each impression.
For the incoming request, system iterates through all qualifying ads in an ad database 10 to find the best ad. During each iteration, an ad is first checked against a pacing filter 12 which blocks ads that spend the ad budget too fast. Next, a CTR/AR prediction model 13 assigns a probability of click or action to the ad given an incoming request. This prediction is then passed to a CTR/AR filter 14 which checks it against an ad-specific threshold. If predicted value is high enough, the ad is placed (115) into an intermediate collector 15, and system proceeds to the next ad (110).
Once all of the ads have been evaluated (140), the system picks (120) the best single ad from the collector to sends it back to the Web page (125). The logic of picking the best ad depends on the pricing model. In the simplest scenario, the best ad could be the ad with the highest price advertiser agreed to pay per impression.
The ad sent back to the request originator becomes an ad impression which is recorded (145) into the performance database 16. Data in the performance database is used to calibrate the pacing and CTR/AR filters (130). If user happens to click on the ad or performs a desired action, this is also be recorded (135) into the performance database, and calibrates CTR/AR prediction model.
In some embodiments, the pacing filter and CTR/AR filter can be used independently of each other, although in the presently preferred embodiment they are interdependent. The CTR/AR filter operates on the value of the pacing filter as a driving factor. Depending on the pacing filter value, the CTR/AR filter adjusts the slot fulfillment rate up or down. That is, in an embodiment the CTR/AR filter value depends on the output of the pacing filter.
The manner in which the invention selects slots into which impressions are to be placed is best understood with reference to
In operation, one step looks at available slots for placing impressions and, based on the budget of impressions in the available slots, performs a random sampling to determine how to spread those impressions into the available slots. For example, if there are 1,000,000 openings for impressions and the impression budget 100,000, then the advertiser does not want to accept the first 100,000 impressions and then leave the 900,000 impressions that are to occur later in the advertising cycle, but rather wants to spread the impressions throughout the advertising budgeted period of time, e.g. 24 hours.
In the example of
There is a time component to this determination. If there are 1,000,000 slots in a day, but the advertiser only has 100,000 impressions, the advertiser may spread the impressions out so that every tenth slot is fulfilled. However, between those ten slots from which an advertiser selects, it is also possible to determine which slot is highest value slot, i.e. the slot having the highest probability of resulting in a click.
A second step considers, once it is known how to spread out the delivery of impressions, how filtering is to be performed based on an estimate of the click-rate per impression for each of the impressions, which is estimated by the CTR prediction model. In
Because only one impression is presented at a time, embodiments look at the last period of time and estimate the rate of impressions in common versus a target number of impressions that are needed. This aspect of the invention includes a feedback loop to adjust the rate of impressions on a fixed interval in fixed steps which comprise, for example, linear increments, exponential increments, etc.
As discussed above, embodiments can cherry-pick impression bids having a highest CTR. For some bids, it is possible to predict a click-through rate using a dynamic filter (pacing filter) that is calibrated, for example, every 15 minutes. This serves to increase or decrease the budget spend to meet the goal of budget fulfillment, or keep the budget spend the same if spend rate is about right. If the budget is large and it may not possible to fulfill it, then there is not any cherry-picking. That is, the filter is automatically turned off so it has no negative side effect, i.e. to keep it from damping the slot selection process.
The filter comprises an algorithm that is implemented over a series of iterations. For example,
The click-through rate filter is initialized with a seed value, which can be any desired non-zero constant. Picking too high value might hurt delivery in the first few iterations because predicted CTR is lower than seed threshold. Picking too small value prolongs searching for ideal threshold, and allows too many impressions with poor CTR. One way to pick seed value is take average expected CTR and divide it by 10.
On the second iteration 22 shown in
Thus, during the third iteration 24, the sampling is 50 percent and the CTR filter is 0.02. The sampling (pacing filter) and CTR filtering steps are both implemented. In this example, one of the slots that passes the sampling has a click probability of 0.02, which is too low for the CTR filter, and this slot is thus skipped. As a result, the only slots that are left are those with a relatively high click-through rate. e.g. 0.04, 0.03, 0.03. Less impressions are served than are in the target, i.e. three impression vs. a target of four, but those slots that are selected are the highest value slots.
For the fourth iteration 26, the sampling is modified accordingly from 50 percent, to a ratio of 2/3, i.e. about 66 percent. This allows more slots, but the value of the CTR filter is also increased to 0.04. As a result, a balance is achieved where more slots are passed to the CTR filter by the pacing and fewer, but higher value, slots are passed through by the CTR filter. At the end of the fourth iteration, the impression vs. target are again considered and the sample ratio and CTR filter are adjusted appropriately. This process repeats for each interval until the impression budget is exhausted. If the budget is expended at a less than desired rate, the CTR filter may be decreased to allow the budget spend to increase and/or the pacing filter may be increased; likewise, if the budget is being expended too quickly, the CTR filter may be increased and the pacing filter may be decreased. Where the budget is spent too quickly, it may be desirable to increase the CTR filter threshold first and thereby select higher value impressions and, if this is not sufficient, the pacing filter can be slowed; likewise, where the budget is being spent too slowly, the pacing filter may first be increased so that the highest value impressions are still being selected and, if this is insufficient, then the CTR filter threshold may be lowered.
An example of a pacing filter is as follows:
An example of a CTR filter is as follows:
Example CTR filter parameters are as follows:
An example of a CTR model is as follows:
Ad CTR/AR=F(ad features, user features, context features),
Presently preferred embodiments typically use a combination of these two methodologies:
The computer system 1600 includes a processor 1602, a main memory 1604 and a static memory 1606, which communicate with each other via a bus 1608. The computer system 1600 may further include a display unit 1610, for example, a liquid crystal display (LCD) or a cathode ray tube (CRT). The computer system 1600 also includes an alphanumeric input device 1612, for example, a keyboard; a cursor control device 1614, for example, a mouse; a disk drive unit 1616, a signal generation device 1618, for example, a speaker, and a network interface device 1628.
The disk drive unit 1616 includes a machine-readable medium 1624 on which is stored a set of executable instructions, i.e., software, 1626 embodying any one, or all, of the methodologies described herein below. The software 1626 is also shown to reside, completely or at least partially, within the main memory 1604 and/or within the processor 1602. The software 1626 may further be transmitted or received over a network 1630 by means of a network interface device 1628.
In contrast to the system 1600 discussed above, a different embodiment uses logic circuitry instead of computer-executed instructions to implement processing entities. Depending upon the particular requirements of the application in the areas of speed, expense, tooling costs, and the like, this logic may be implemented by constructing an application-specific integrated circuit (ASIC) having thousands of tiny integrated transistors. Such an ASIC may be implemented with CMOS (complementary metal oxide semiconductor), TTL (transistor-transistor logic), VLSI (very large systems integration), or another suitable construction. Other alternatives include a digital signal processing chip (DSP), discrete circuitry (such as resistors, capacitors, diodes, inductors, and transistors), field programmable gate array (FPGA), programmable logic array (PLA), programmable logic device (PLD), and the like.
It is to be understood that embodiments may be used as or to support software programs or software modules executed upon some form of processing core (such as the CPU of a computer) or otherwise implemented or realized upon or within a machine or computer readable medium. A machine-readable medium includes any mechanism for storing or transmitting information in a form readable by a machine, e.g., a computer. For example, a machine readable medium includes read-only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; electrical, optical, acoustical or other form of propagated signals, for example, carrier waves, infrared signals, digital signals, etc.; or any other type of media suitable for storing or transmitting information.
Although the invention is described herein with reference to the preferred embodiment, one skilled in the art will readily appreciate that other applications may be substituted for those set forth herein without departing from the spirit and scope of the present invention. Accordingly, the invention should only be limited by the Claims included below.
This application is a continuation of and claims priority under 35 U.S.C. §120 to U.S. application Ser. No. 13/595,818, filed on Aug. 27, 2012 by Andrey Svirsky and Goutham Kurra, which is expressly incorporated herein in its entirety for all purposes.
Number | Date | Country | |
---|---|---|---|
Parent | 13595818 | Aug 2012 | US |
Child | 14951537 | US |