The embodiments described below relate generally to systems and devices for controlling online advertising campaigns, and more specifically, to systems and devices for initialization of online advertising campaigns.
Since the early 1990's, the number of people using the World Wide Web has grown at a substantial rate. As more users take advantage of the World Wide Web, they generate higher and higher volumes of traffic over the Internet. As the benefits of commercializing the Internet can be tremendous, businesses increasingly take advantage of this traffic by advertising their products or services on-line. These advertisements may appear in the form of leased advertising space (e.g., “banners”) on websites, which are comparable to rented billboard space in highways and cities, or commercials broadcasted during television or radio programs.
Advertisers may create online advertising campaigns that include many advertisements to be placed on websites during a specified period of time. For example, an automobile company may design several advertisements for a new model and may wish to have the advertisements placed during a three-week period around the launch of the new model. Each time one of the advertisements is shown to a user is known as an “impression.” When shown the advertisement, the user may select, or “click,” on the advertisement or may take another “action” such as completing an online form to request more information. If the user later purchases the new model automobile, the purchase is referred to as a “conversion” of the impression.
Advertisers may be interested in impressions (e.g., if they are trying to increase awareness of a brand), clicks (e.g., if they are trying to provide more information about a product), or conversions (e.g., if they are trying to make sales or get new users to sign up for services). Advertisers may pay based on, for example, impressions, clicks, or conversions over the course of an advertising campaign. An advertiser may have a spending plan that specifies how the advertiser wishes to spend its budget during a campaign. For example, the advertiser may wish to spend money only on certain days during the campaign, or may wish to spend evenly over every day of the campaign.
As a result, various techniques are used to control online ad delivery within and among advertising campaigns. In certain advertising networks, ad servers receive impression requests from publishers. The ad servers then group ad requests from various campaigns according to the impressions that they “target” based on a specific combination of attributes defined by the ad request. In addition to targeting requirements, each ad request includes a “bid price” and a “bid allocation”. The bid price is the amount of money offered by the ad request for the targeted impression. The bid allocation is the ratio (e.g., value from 0 to 1) of targeted inventory the ad campaign is willing to purchase at the bid price. The list of ads that target a certain impression request are sorted in descending order according to their bid price, and then placed in groups such that the sum of their bid allocations equals 1. If the ad request with the highest bid price has a bid allocation of 1, it will always win the impression. Such ad delivery methods ensure that the ad with the greatest expected value is able to purchase as much inventory as desired. These methods also reveal both the marginal value of the impression inventory, and the amount of volume purchased at each price. Under stable campaign operating conditions, the information can be used to build a curve that describes the relationship between price and volume, which may reveal the bid price an advertiser must submit to purchase a desired volume of ad inventory.
When a new online advertising campaign is launched, there is a risk of “over-delivery” of the online advertisements if either of the “bid price” or the “bid allocation” is too high for the prevailing supply and demand curve for the particular online ad or content web site. For example, if the bid price is too high, the bid may fall relatively high in a bid table, and may “out bid” lower priced bids. If the bid allocation is too high, the bid may win too high of a proportion of similarly priced bids. Thus, if either of the bid price or bid allocation is too high at the beginning of a campaign, numerous ads will be delivered (i.e., “over-delivery”), and the budget for a campaign (e.g., $10,000 per month) might be spent within the first 24 hours of the campaign. On the other hand, severe “under-delivery” may occur if either of the “bid price” or the “bid allocation” is too low in the beginning of the campaign “flight.” Specifically, if either of the bid price or bid allocation is too low, there may be “dark days” (i.e., no ad volume is awarded in the day), and it may take several days for a campaign to catch up to desired delivery pacing. These situations may be undesirable to advertising customers that desire for their ads to be delivered smoothly over the course of the ad campaign. Moreover, because of delays inherent in conventional ad delivery systems, it is often difficult to instantaneously start and stop ad campaigns based on real-time metrics of ad delivery. Therefore, there is a need for conducting fast and predictable campaign initialization that achieves smooth delivery from the beginning of the campaign flight, based on estimates of advertising network volume.
The present disclosure is directed to improving the control of advertising on web sites by solving one or more of the above-mentioned challenges.
In accordance with one disclosed exemplary embodiment, a system is provided for controlling initialization of an online advertising campaign. The system includes a sensor configured to determine a current condition of the online advertising campaign and a memory for storing the condition obtained by the sensor, a set of campaign initialization controller instructions, a campaign volume model, and a network average time-of-day pattern. The system also includes an estimator configured to predict future campaign performance based on the performance information obtained by the sensor, the campaign volume model, and the network average time-of-day pattern. The system also includes an initialization controller configured to generate a bid allocation control signal and generate a bid price control signal based on the future campaign performance predicted by the estimator, according to the instructions stored in the memory, wherein the bid allocation control signal and bid price control signal are used to adjust future performance of the online advertising campaign.
In accordance with another exemplary embodiment, a computer-implemented method is provided for controlling initialization of an online advertising campaign. The method includes the steps of using a sensor to determine a current condition of the online advertising campaign and storing in a memory, the condition obtained by the sensor, a set of campaign initialization controller instructions, a campaign volume model, and a network average time-of-day pattern. The method also includes predicting future campaign performance based on the condition obtained by the sensor, the campaign volume model, and the network average time-of-day pattern. The method also includes generating a bid allocation control signal; and generating a bid price control signal based on the future campaign performance predicted by the estimator, according to the instructions stored in the memory; wherein the bid allocation control signal and bid price control signal are used to adjust future performance of the online advertising campaign.
Reference will now be made in detail to exemplary embodiments of the disclosure, examples of which are illustrated in the accompanying drawings. Wherever possible, the same reference numbers will be used throughout the drawings to refer to the same or like parts.
Publishers 104 may include any entities having inventories of available online advertising space. For example, publishers 104 may include online content providers, search engines, e-mail programs, or any other online site or program having online user traffic. Publishers 104 may interact with advertisers 102, ad servers 106, and/or controllers 108 via computers connected to the Internet 110. Thus, publishers 104 may be able to communicate inventory information, such as site information, demographic information, cost information, etc., to other entities in system 100.
Ad servers 106 may include any type of servers configured to process advertising information from advertisers 102 and/or site information from publishers 104, either directly or indirectly. In certain embodiments, ad servers 106 may be remote web servers that receive advertising information from advertisers 102 and serve ads to be placed by publishers 104. Ad servers 106 may be configured to serve ads across various domains of publishers 104, for example, based on advertising information provided by advertisers 102. Ad servers 106 may also be configured to serve ads based on contextual targeting of web sites, search results, and/or user profile information. In some embodiments, ad servers 106 may be configured to serve ads based on control signals generated by controllers 108.
Controllers 108 may include one or more computing systems configured to receive information from entities in system 100, process the information, and generate control signals to be sent to entities in system 100, according to methods described herein. Controllers 108 may include any type or combination of computing systems, such as clustered computing machines and/or servers. In one embodiment, each controller 108 may be an assembly of hardware, including a memory 112, a central processing unit (“CPU”) 114, and/or a user interface 116. Memory 112 may include any type of RAM or ROM embodied in a physical storage medium, such as magnetic storage including floppy disk, hard disk, or magnetic tape; semiconductor storage such as solid state disk (SSD) or flash memory; optical disc storage; or magneto-optical disc storage. CPU 114 may include one or more processors for processing data according to instructions stored in the memory. The functions of the processor may be provided by a single dedicated processor or by a plurality of processors. Moreover, the processor may include, without limitation, digital signal processor (DSP) hardware, or any other hardware capable of executing software. User interface 116 may include any type or combination of input/output devices, such as a display monitor, keyboard, and/or mouse.
Thus, in general, the method for controlling initialization of an advertising campaign may include estimating advertising campaign performance based on volume models (step 120). The volume models may estimate one or more of ad impression volume, click volume, conversion volume, action volume, or any other volume of advertising events. As will be described in more detail below, the volume models may include allocation-based volume estimates and network average time-of-day patterns. The method may also involve defining a bid allocation ramp-up scheme. The ramp-up scheme may linearly or non-linearly increase the bid allocation from a low initial value to a pre-defined maximum bid allocation value. The method may generate initial bid allocation settings based on the ramp-up scheme, and initial bid price settings based on the volume models (step 130). The initial bid allocation settings may define an initial bid allocation value for the campaign, while the initial bid price settings may define an initial bid price value for the campaign. The method may then launch a new advertising campaign using the initial bid price value and bid allocation value (step 140). As soon as the advertising campaign has been launched, the method may detect the performance of the advertising campaign (step 150). For instance, the campaign performance may include measurements of the marginal volume, marginal cost, delivery rate, etc., of the impressions, clicks, conversions, etc., awarded by the ad servers. The method may also consider changes to desired values for the campaign performance (i.e., “reference values”). The method may then predict future campaign performance based on the detected performance of the advertising campaign (step 160). Future campaign performance may be predicted based on the allocation-based volume estimates and time-of-day patterns used to generate the initial settings. The method may then generate adjusted bid price and bid allocation settings based on the predicted future campaign performance (step 170). The method may continue to perform the loop of detecting campaign performance (step 150), predicting future campaign performance (step 160), and generating adjusted bid price and bid allocation settings (step 170), for a predetermined period of time, or until certain conditions are met, as will be described below.
In one embodiment, initialization controller 202 may predict how an advertising campaign will perform when it is introduced into a network. For example, initialization controller 202 may predict a campaign's initial performance based on time-of-day patterns of the network where the campaign will be placed (i.e., a “network time-of-day model”). Initialization controller 202 may also predict a campaign's initial performance based on approximate volume as a function of bid allocation (i.e., an “allocation-based plant volume model”). In certain embodiments, initialization controller 202 may utilize the network's time-of-day pattern and allocation-based plant volume model, as determined by plant estimator 208, to predict the delivery when a new campaign is added to the network or an existing campaign is re-initialized. Initialization controller 202 may also incorporate a bid allocation control ramp-up scheme, as described above, to reduce the over-delivery risk associated with initializing ad campaigns. The initialization controller 202 may be used both in the beginning of a campaign for a fast and safe campaign initialization, and also in the middle of a campaign when there is a system change (such as a reference volume change, campaign entry/withdrawal, etc.) for fast response and good tracking performance. Thus, in certain embodiments, the initialization controller 202 may be configured to adjust bid price and bid allocation simultaneously, based on the outputs of a plurality of modules, as will be described below. The adjusted bid price and/or bid allocation would then be applied to the advertising campaign in plant 204.
In one embodiment, initialization controller 202 may include a mid-flight re-initialization module 210, an allocation auto-relaxation module 212, a bid allocation adjustment module 214, and a bid price adjustment module 216. In general, mid-flight re-initialization module 210 may be configured to activate an initialization sequence during any moment of an advertising campaign, such as during a significant change in reference values, campaign entry/withdrawal, etc. Allocation auto-relaxation module 212 may be configured to avoid under-delivery in an advertising campaign by increasing the maximum bid allocation control signal.
Bid allocation adjustment module 214 may be configured to gradually change a bid allocation of a campaign based on a ramp-up scheme. Bid allocation adjustment module 214 may ramp-up the bid allocation of an advertising campaign from a small initial value, e.g., to minimize risk of over-delivery. For example, bid allocation adjustment module 214 may generate a bid allocation control signal ua(k) for each time “k” in the campaign, based on a pre-determined ramp-up function. In particular, bid allocation adjustment module 214 may ramp up bid allocation control signal ua(k) from a small value to any specified maximum allocation control signal value to minimize the risk of over-delivery at the beginning of a campaign. Over-delivery occurs, for example, when too many advertisements are placed, making it harder to satisfy an advertiser's campaign goals of even ad placement throughout a campaign.
Bid price adjustment module 216 may be configured to control the bid price in an advertising campaign, e.g., to ensure a delivery goal is met. Bid price adjustment module 216 may generate a bid price control signal u(k) for each time “k” in the campaign, based on the allocation-based plant volume model and network time-of-day models implemented by plant estimator 208, e.g., to meet delivery and revenue goals.
Plant Estimation
Reference will now be made in particular to the operation of plant estimator 208. Plant estimator 208 may incorporate an allocation-based plant volume model and network time-of-day model to generate volume estimates of an ad campaign running in plant 204. Thus, plant estimator 208 may generate future estimates of the volume of ad impressions, clicks, or conversions awarded to a campaign based on knowledge about the network and knowledge about the performance of the campaign. In one embodiment, an allocation-based plant volume model may be based on an assumption that the volume and the bid allocation have a relation defined by the equation, Volume=(BidAllocation)γa*(VolumeMax), where γa is a constant or slowly varying user-defined parameter.
In one embodiment, the marginal volume of plant 204 may be modeled as a function of an effective allocation control signal and an effective price control signal. In other words, the marginal volume of awarded impressions may be reasonably estimated as a function of the bid prices and the bid allocations of the ad requests generated by the campaign. For example, the relationship between the effective allocation control signal u′a(k), the effective price control signal u′(k), and the marginal volume n(k) can be described by the following equation.
n(k)=(u′a(k))γa(u′(k))γeβ
where k denotes the sampling time of the campaign, given a 1-hour sampling period. In one embodiment, the sampling period may be defined as 15 minutes, or any other suitable sampling period, as desired by a user. The variables u′(k) and u′a(k) may be used to denote the inputs to plant 204 at time k, where, generally, 0≦u′(k)≦1 and 0≦u′a(k)≦1 (although, in some cases u′(k) may be greater than 1 if necessary to achieve desired delivery. In general, u′(k)=u(k−1) and u′a(k)=ua(k−1), where u(k−1) and ua(k−1) represent the control signals calculated at time k−1. In other words, initialization controller 202 may generate control signals at time k−1, and these signals may be used to determine the campaign's schedule during the hour period k due to any actuation delay in the system. In one embodiment, ε(k) may be a stationary, stable, and mean zero stochastic process, and γa, γ, β0, β1, and φ1 may be constant or slowly varying parameters. β1 and φ1 may define the magnitude and phase of the time-of-day pattern, respectively. The time-of-day pattern may be defined as a consistent, additive, periodic function extending over a 24 hour period, and reflecting time-variable patterns of user behavior. For example, a time-of-day pattern may be used to represent the number of users who view a webpage over the course of a day, how long users stay on the webpage, times of day with high numbers of users, etc. The time-of-day pattern may reflect the characteristics of an entire advertising network, spanning any number of publisher domains and ad servers.
Bid Price Adjustment
The bid price adjustment module 216 may be configured to generate the bid price control signal u(k) for the campaign during the initialization phase. The bid price control signal may adjust the bid price for ad placements during a campaign. In one embodiment, bid price adjustment module 216 may adjust the bid price control signal u(k) in real time, e.g., to achieve the campaign daily delivery goal, by making use of the campaign's allocation-based plant volume model and the network's time-of-day pattern. Bid price adjustment module 216 may incorporate both a parameter estimation and certain aspects of control theory, as described above with respect to the plant volume model used by plant estimator 208.
In one embodiment, parameter estimation may be performed based on plant model (1), as follows:
The plant model (2) may incorporate estimated network time-of-day patterns, where g(k)=β1 sin(2π k/24+φ1) describes the time-of-day pattern, which is set to the network average time-of-day, with:
β1=
where
The plant model (2) may also incorporate an allocation-volume gain γa, which may be set to:
γa=
where
The plant model (2) may also incorporate a price-volume gain γ, which may be set to:
γ=1 (5)
although price-volume gain γ may be set to any other desired value other than 1.
In one exemplary embodiment, initial values may be set for the parameters as follows:
Substituting (3), (4), and (5) into (2), and denoting:
may provide the following equation:
y(k)−log(u′(k))=β0+ε(k) (6)
In the above equation, y(k) and u′(k) may be known at each time k, β0 may be an unknown parameter to be estimated, and ε(k) may be a stationary, stable, and mean zero stochastic process. Least-square estimation (LSE) of equation (6) may then be used in order to obtain an estimate of β0 at time k, {circumflex over (β)}0(k), which can be used by initialization controller 202. In order to perform the least-square estimation of β0, equation (6) may be rewritten as follows:
such that {circumflex over (β)}0(k) may be described in terms of X(k) and Y(k) as follows:
One of ordinary skill in the art will appreciate that β0 may also be estimated by using a Kalman filter, or any other suitable recursive or non-recursive estimation methods.
In one embodiment, a control theory for defining the bid price control signal u(k) may be obtained using {circumflex over (β)}0, as estimated above, and the plant model, as follows:
u(k)=λu(k−m)+(1−λ)yref(k)e−{circumflex over (β)}
u(k)=u(k−1) if mod(k, m)≠0
where 0≦λ<1 is a design parameter, and yref(k) is the marginal reference volume.
The control theory for defining the bid price control signal may therefore update the bid price based on the allocation-based plant volume model and the network time-of-day model. In one embodiment, the control signal u(k) may be updated every m hours and may be maintained constant during the m hours. Exemplary values of λ and m may include λ=0 and m=4.
As will be described in more detail below, the above-defined control process may be started by initializing u(0), which can be specified by the operator, or calculated as:
u(0)=min(umax 0, yref(0)e−
where umax 0 is the upper bound specified for u(0), and
Bid Allocation Adjustment
Referring now in particular to the operation of bid allocation adjustment module 214, bid allocation adjustment module 214 may generate the bid allocation control signal ua(k) for the campaign in the initialization phase at each time k. The bid allocation control signal may adjust the bid allocation and, therefore, the percentage of impressions awarded during a campaign. In one embodiment, an objective may be to ramp up the bid allocation control signal ua(k) to minimize the risk of over-delivery when a campaign is initialized. The bid allocation control signal ramp-up scheme may be implemented such that ua(k) increases linearly or non-linearly from a fairly small value ua(k0) to any specified value ua,max(k0)(ua(k0)<ua,max(k0)) in the ramp-up window.
Bid allocation adjustment module 214 may be initialized with the following values for k0, ua,max(0) and ua(0):
In addition, the following parameters may be design parameters specified by the user, including, ua,max 0, which defines the maximum allocation control signal for ramp-up, Tramp-up, which defines the ramp-up window (e.g. in hours), and Df>1. The ramp-up window may specify the time during which allocation is gradually adjusted. In one embodiment, the following exemplary values may be used for the design parameters:
Tramp-up=12
Df=200
Mid-Flight Re-Initialization
Referring now to the mid-flight re-initialization module 210 of
Thus, the mid-flight re-initialization module 210 may automatically activate the initialization control scheme whenever there is a significant change in the system. The initialization control scheme may provide mid-campaign adjustments to a bid price and/or bid allocations. For example, when a reference signal is changed by more than certain amount, such as increased by more than 100% or decreased by more than 50%, mid-flight re-initialization module 210 may automatically detect the reference change at time km, and re-initialize the bid allocation adjustment module 214 with the following initialization values:
Mid-flight re-initialization module 210 may also re-initialize bid price adjustment module 216 with the following initialization value:
u(km)=min(umax0, yref(km)e−
Allocation Auto-Relaxation
Referring now to allocation auto-relaxation module 212, the allocation auto-relaxation module 212 may be configured to increase the max allocation control signal value, ua,max, whenever the initial specified value is so small that the control signal is saturated even while the campaign attempts to deliver to avoid saturation of price and/or allocation control signals (i.e., under-delivery). Saturation may occur, for example, when a significant number of similarly-priced competing bids necessitate an increase in bid allocation to obtain delivery. For example, in one embodiment, allocation auto-relaxation module 212 may detect when saturation occurs at a time ks, generate a new max allocation control signal value αua(ks), where α is a multiplicative factor, α>1, and re-initialize bid allocation adjustment module 214 with the following values:
k0=ks
u
a,max(k0)=min(αua(ks),1)
u
a(k0)=ua(ks)
As a result of allocation auto-relaxation module 212, the allocation control signal may be ramped-up to a larger new value, whenever necessary to avoid under-delivery. By increasing the maximum bid allocation value, allocation auto-relaxation module 212 may prevent the ramp-up scheme from causing under-delivery due to low bid allocations.
Each module in the initialization controller 202 may be initialized in the beginning, and under some conditions defined by plant estimator 208. Allocation auto-relaxation module 212 and mid-flight re-initialization module 210 may be configured to trigger the re-initialization of one or more modules, as described above. Initialization controller 202 may have a set of pre-defined parameters including design parameters and user-specified parameters. In one embodiment, the control process may be started by initializing u(0), which can be specified by the operator, or calculated as:
u(0)=min(umax 0, yref(0)e−
where umax 0 is the upper bound specified for u(0), and
Referring to
Initialization controller 202 may then determine whether the initial specified max allocation control signal ua,max, is so small that the campaign under-delivers even when the bid price control signal is relatively high (i.e., saturation occurs and the max allocation control signal needs to be increased). If the max allocation control signal is too small (step 314, YES), initialization controller 202 may initiate parameter initialization (step 306), so that updated parameters may then be provided to allocation auto-relaxation module 212 (step 312) for processing according to the methods described above. For instance, allocation auto-relaxation module 212 may generate a new max allocation control signal value αua(ks) (step 312).
Finally, initialization controller 202 may process bid allocation adjustment module 214 (step 316) and/or bid price adjustment module 216 (step 318), perhaps in sequence, based on any updated parameters generated by mid-flight re-initialization module 210 and/or allocation auto-relaxation module 212 to generate a bid allocation control signal ua(k) and bid price control signal u(k) for each time k of the campaign.
The present method may advantageously leverage the inherent differences between characteristics of the bid price and characteristics of the bid allocation. Specifically, while adjusting bid price may control how high in a bid table the particular bid will fall, adjusting bid allocation may control the likelihood that the given bid will win each impression. By ramping up a campaign's bid allocation from a small value, it may be possible to approximately forecast the increase in delivery, and determine the supply and demand curve for the particular ad market. By estimating delivery based on the network's time-of-day model and allocation based plant volume model, it may be possible to better generate initial bid price control signals based on known characteristics of the ad network and campaign, rather than randomly guessing a starting bid price. Moreover, because initialization controller 202 may be operated at the campaign level, it may be possible to simultaneously adjust the bid allocation and bid price control signals of a single campaign relative to other campaigns. The control of each campaign may occur independent from volumes and bid prices of other campaigns in the network, and therefore, without the need for a centralized controller coordinating bid prices for numerous ad campaigns. Because the campaign level control is decentralized, these methods do not involve the computational or scalability issues associated with traditional central control or constrained optimization methods.
While embodiments of these systems and methods have been described with respect to online advertising, the presently disclosed initialization systems and methods may be as applicable to competitive bidding on any other goods and services. For example, these systems and methods may be applicable to various competitive bidding systems, online auction systems, or any system involving a bid and/or an allocation, such as the online auctioning of products or services, online keyword auctions, etc., or any other control problems for online and offline advertising. In certain embodiments, the initialization embodiments may be applicable to bidding on advertising off-line, for example, in relation to billboards, bulletin boards, direct mail or physical advertising campaigns, television/radio advertising, e-mail advertising, and/or magazine sales. In addition, the presently disclosed systems and methods may be applicable to the auctioning of bandwidth in wired or wireless telecommunications networks, the sale of data storage, the sale of securities, and the sale of travel, shipping, and housing reservations. In certain embodiments, these systems and methods may be used for “beginning to end” control for smooth delivery of advertising campaigns (i.e., not exclusively for initialization). These embodiments may also be applicable to other control systems involving time-of-day patterns or other repeatable patterns, such as servo control systems of hard disk drives.
The many features and advantages of the disclosure are apparent from the detailed specification, and thus, it is intended by the appended claims to cover all such features and advantages of the disclosure which fall within the true spirit and scope of the disclosure. Further, since numerous modifications and variations will readily occur to those skilled in the art, it is not desired to limit the disclosure to the exact construction and operation illustrated and described, and accordingly, all suitable modifications and equivalents may be resorted to, falling within the scope of the disclosure.