The present disclosure relates generally to computing. More specifically, and without limitation, the present disclosure relates to systems and methods for controlling a marketing campaign based on multiple objectives.
Online marketers are interested in placing marketing messages on websites to promote their products or services (also known as “impressions”). Influenced by a marketing message, a user may perform a “click” based on a marketing message or take another “action” such as completing an online form to request additional information with regard to the associated product or service. If the user later purchases the product or service, the purchase is referred to as a “conversion” of the impression. In general, online marketers pay based on, for example, impressions, clicks, views, or conversions over the course of a marketing campaign, hereinafter merely referred to as a “campaign,” in an effort to achieve a desired revenue for the campaign. In a campaign, revenue generally refers to the amount of money actually spent or the number of events delivered.
The background description provided herein is for the purpose of generally presenting the context of the disclosure. Unless otherwise indicated herein, the materials described in this section are not prior art to the claims in this application and are not admitted to be prior art, or suggestions of the prior art, by inclusion in this section.
As discussed in greater detail below, in various embodiments, a campaign control system can be configured to attempt to increase, or maximize, total value of a marketing campaign to which the campaign control system is assigned. To accomplish this, the campaign control system can be configured to achieve a desired pacing, or budget, within the constraints of a minimum desired return on investment (ROI) for the campaign. The ROI of a campaign can be represented as the ratio of the total value delivered by the campaign divided to the total cost of impressions for the campaign (i.e., total value/total cost). The total value of a campaign refers to the cumulative impression value of all awarded impressions. Impression value refers to the likelihood-adjusted aggregate dollar value of all relevant branding and performance events that could potentially result from each awarded impression. Relevant branding and performance events are referred to herein collectively as events and are discussed in greater detail below. The total cost of impressions for the campaign refers to the cumulative cost over all impressions awarded to the campaign. The cost of an impression refers to the actual cost of the impression in an associated market (e.g., clearing price in a second price cost model).
Reference will now be made in detail to illustrative embodiments of the invention, 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.
Marketer 102 represent computing components associated with entities having online marketing content (e.g., banner ads, pop-ups, etc.) that the entities desire to deliver to online consumers. Marketer 102 may interact with publishers 104, marketing servers 106, and/or campaign control systems 108 through the Internet 110. Thus, marketer 102 may be able to communicate marketing information, such as ad information, targeting information, consumer information, budget information, bidding information, etc., to other entities in marketing system 100.
Publishers 104 represent computing components associated with entities having inventories of available online marketing space. For example, publishers 104 may include computing components associated with online content providers, search engines, e-mail programs, web-based applications, or any computing component or program having online user traffic. Publishers 104 may interact with marketers 102, marketing servers 106, and/or controllers 108 via the Internet 110. Thus, publishers 104 may be able to communicate inventory information, such as site information, demographic information, cost information, etc., to other computing components in system 100.
Marketing servers 106 may include servers or clusters of servers configured to process marketing information from marketer 102 and/or inventory information from publishers 104, either directly or indirectly. In certain embodiments, marketing servers 106 may be remote web servers that receive marketing information from marketer 102 and serve ads to be placed by publishers 104. Marketing servers 106 may be configured to serve ads across various domains of publishers 104, for example, based on marketing information provided by marketers 102. Marketing servers 106 may also be configured to serve ads based on contextual targeting of web sites, search results, and/or user profile information, all of which can be utilized in determining a target audience. In some embodiments, marketing servers 106 may be configured to serve ads based on control signals generated by campaign control systems 108.
Campaign control system 108 may include computing systems configured to receive information from computing components in system 100, process the information, and generate marketing control signals to be sent to other computing components in system 100, according to the illustrative methods described herein. As discussed in greater detail below, campaign control system 108 can be configured to attempt to increase, or maximize, total value of the campaign to which the campaign control system 300 is assigned. Campaign control systems 108 may include any type or combination of computing systems, such as clustered computing machines and/or servers, including virtual computing machines and/or virtual servers. Campaign control systems 108 may include, for example, implementations of Adlearn Open Platforms (AOP) control systems offered by America Online (AOL) of New York, N.Y. In some embodiments, campaign control systems 108 may include 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, computer-readable 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, for example to perform the methods and processes discussed in detail herein. 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, graphical user interface, touch-screen or pad, keyboard, and/or mouse. In other embodiments, campaign control systems 108 may include virtual representations of hardware operating, for example, on a virtualization server.
Any number or type of marketing campaigns 202 may be operated within marketing network 204, across various marketing servers and domains associated with the Internet. Online marketing environment 200 may be implemented by one or more of the marketers 102, publishers 104, marketing servers 106, and/or campaign control systems 108 described in
In one embodiment, online marketing environment 200 may include one or more instances of campaign control system 108. Campaign control system 108 may comprise computers or servers connected to the Internet. Such computers or servers may be configured as described with respect to campaign control system 108, as depicted by
Campaign control system 108 may be provided with a set of delivery requirements 210, which may be adjustable design parameters set by a user. For instance, the set of delivery requirements may include, a desired pacing 212, Brev (e.g., daily budget goals, daily impression delivery goals), a desired minimum return on investment 214, ROImin, event values 216 associated with event objectives within the campaign, targeting requirements (e.g., based on a demographic analysis) for a target audience, and/or spread requirements (e.g. to control marketing across inventory units/cells/segments, and/or user targets, etc.). The set of delivery requirements 210 may be implemented by campaign control system 108 as discussed in greater detail below.
In embodiments, campaign control system 300 can be configured to attempt to increase, or maximize, total value of the campaign to which the campaign control system 300 is assigned. To accomplish this, campaign control system 300 can be configured, as discussed in greater detail below, to achieve a desired pacing, or budget, within the constraints of a minimum desired return on investment (ROI) for the campaign. The ROI of a campaign can be represented as the quotient of the total value delivered by the campaign divided by the total cost of impressions for the campaign (i.e., total value/total cost). The total value of a campaign refers to the cumulative value of all relevant branding and performance events that result from the awarded impressions. Relevant branding and performance events are referred to herein collectively as events and are discussed in greater detail below. The total cost of impressions for the campaign refers to the cumulative cost over all impressions awarded to the campaign. The cost of an impression refers to the actual cost of the impression in an associated market (e.g., clearing price in a second price cost model).
As depicted, campaign control system 300 includes a controller 310 (e.g., campaign control system 108 of
Campaign controller 310 is configured to take as input a desired pacing reference signal 212, Brev. Desired pacing 212 may be user defined and may also be referred to as desired revenue for a defined period of time within the marketing campaign. As used herein, revenue in this context refers to actual dollars spent or actual events delivered. As such, desired pacing may be expressed as monetary units (e.g., dollars) or as a number of events. For example, if a marketing campaign has a daily budget of $900 and has spent $800 in a given day, observed pacing for the campaign on that given day is $800.
Campaign controller 310 is also configured to take as input a desired minimum ROI 214, ROImin. The desired minimum ROI 214 may be user defined and can be represented as a number that depicts, for example, the minimum desired value that the user would like to achieve for an expended cost for the marketing campaign. As such, desired ROI 214 may be expressed, for example, as a percentage, ratio, decimal number, etc. For example, values below 1 could indicate the user is anticipating expending more cost than the value imparted by the delivered impression; values above 1 could indicate the user is anticipating that the value imparted by the delivered impressions exceeds the cost expended, and a value of 1 could indicate the user is anticipating that the value imparted by the delivered impressions is equal to the cost expended during the campaign. It will be appreciated that the value imparted to the user is subjective in nature and that different users may be looking to achieve different objectives, and, as such, may assign different values to different events.
Campaign controller 310 is also configured to take as input an observed cost, c, observed pacing, r, and an observed value, v, from a previous logical interval. These observed variables can be transmitted to controller 310 from market 330 via the depicted control feedback loop. Observed cost, c, can be determined from actual cost data for transactions that are observed in market 330. The observed cost may be, for example, a moving average calculated over a period of time. This period of time can be any duration of time that may be based upon certain campaign characteristics. For example, a shorter period of time can enable quicker reflection of changes in market 330; however the results could be noisier than those of a moving average calculated over a longer period of time. A moving average calculated over a longer period of time, on the other hand, can be less noisy than a moving average calculated over a shorter period of time, but is slow to react to market changes. As a result, the time period for such a moving average may be dependent on the campaign and/or volatility of market 330. A moving average may be calculated by a moving average filter (not depicted). In some embodiments, such a moving average filter may be in-line between market 330 and controller 310. Discrete observed costs in market 330 may be monitored, for example, via a cost sensor configured to obtain real-time data from marketplace 310. In embodiments, this real time data may be specific to the campaign to which campaign control system 300 is assigned.
Observed pacing, r, can be determined from actual pacing observed in market 330. As with observed cost, observed pacing may be a moving average calculated over a period of time. This period of time can be any duration of time that may be selected based upon certain campaign characteristics, such as those discussed above in reference to observed cost (e.g., speed of reflecting changes vs noise). Discrete observed pacing in market 330 may be monitored, for example, via a pacing sensor configured to obtain real-time data about the campaign to which campaign control system 300 is assigned.
Observed value, ν, can be determined from value observed for transactions that occurred in market 330. Such observed value can be based on the event values assigned to the campaign (e.g., event values 216). As with observed cost and observed pacing, observed value may be a moving average calculated over a period of time. This period of time can be any duration of time that may be selected based upon certain campaign characteristics, such as those discussed above in reference to observed cost (e.g., speed of reflecting changes vs noise). Discrete observed values in market 330 may be monitored, for example, via a value sensor configured to obtain real-time data about the campaign to which campaign control system 300 is assigned.
Controller 310 may be configured to determine an ROI error, eROI, and a pacing error, ep, based on the above discussed inputs to controller 310. From these errors, campaign controller 310 can automatically determine a price control signal, u. As used herein, automatic refers to the performance of an action without user input. In embodiments, the price control signal, u, is a result of a function of the ROI error and the pacing error, ƒ(eROI, ep). This function may be configured to attempt to facilitate obtaining the desired pacing within the limits of the minimum ROI and/or inventory available in market 330. As such, u, can be updated in such a way that (1) observed pacing approximately converges to desired pacing 212 while observed ROI remains at or above minimum ROI 214, (2) observed ROI approximately converges to minimum ROI 214 while observed pacing remains at or below desired pacing 212, or (3) observed pacing approximately converges to maximum possible delivery (the inventory for market 330 is exhausted) while the observed ROI remains at or above minimum ROI 214. In some embodiments, controller 310 can also be configured to generate an allocation control signal. Such an allocation control signal represents the percentage or ratio (e.g., point value from 0 to 1) of inventory the ad campaign is willing to purchase at the bid price discussed below.
In various embodiments, controller 310 may be configured to periodically update the price control signal, u, as well as an allocation control signal, if utilized. These periodic updates may take place at predefined time intervals (e.g., every 15 minutes), based on a specific occurrence (e.g., based on a magnitude of change to an error signal), or any other suitable period, or logical interval. In other embodiments, controller 310 may update the price control signal, u, in real time as the above discussed error signals, or reference signals, change. For example, it will be appreciated that the desired minimum ROI may change during the campaign based on any number of factors (e.g., if a desired minimum ROI cannot be achieved by the campaign while delivering the budget in full the desired minimum ROI may be decreased). In response to such a change, the controller 310 may automatically update the price control signal, u, in accordance with the updated ROImin.
To facilitate obtaining the desired pacing 212 within the constraints of desired minimum ROI 214 to the marketer, the above described function, ƒ(eROI, ep), may utilize an adaptive control scheme in calculating the price control signal, u. Such an adaptive control scheme could calculate the u, and an optional allocation signal, based on a most recent value of the ROI error, a most recent value of the pacing error, and a stored controller state variable, which includes information about past control performance. Such an adaptive control scheme is known in the art and a person of ordinary skill in the art would be able to implement such a control scheme. In other embodiments, alternative control schemes may be utilized in place of the adaptive control scheme. Such control schemes are known in the art and would include an optimal control scheme, a model predictive control scheme, a proportional-integral-derivative (PID) control scheme, a robust control scheme, a stochastic control scheme, or any other suitable control scheme.
Event rate estimator 360 is configured to take as input an observed impression volume, nI, and observed volumes for events, nE. The volumes for events can include, but are not limited to, the number of impressions delivered that were in-view (e.g., within a displayed portion of a website); number impressions that resulted in a click; number of impressions that resulted in a conversion; number of video impressions that resulted in completion of an associated video ad; the number of impressions that were delivered within a target demographic; any other event, or any combination thereof. Each of these events can be considered an objective to a user (e.g., marketer) for which the user can assign a subjective dollar value, or weight. It will be appreciated that this list of events is not exhaustive and is merely meant to illustrate possible events for which volumes may be monitored within market 330. These volumes for events are collectively depicted as observed event volumes, nE.
It will be appreciated that, in some embodiments, there can be a plurality of event rate estimators in campaign control system 300. In such embodiments each event rate estimator can be assigned to a specific segment within the campaign. As used herein a segment refers to a defined portion of market 330. Such a segment may be, for example, a website, a group of individuals identified by demographic analysis (e.g., males between the age of 25 and 35 in California), a distinct individual, etc. A segment may also be referred to in the art, and herein, as a cell or unit.
The observed impression volume, nI, and the observed event volumes, nE can be determined from actual observations in market 330. Discrete observed impression volumes for any discrete observed event volumes may be monitored in market 330, for example, via segment impression sensors (not depicted) and segment event sensors (not depicted), respectively. Such sensors can be configured to obtain real-time data about the segment to which these sensors are assigned.
Event rate estimator 360 can be configured to utilize the observed impression volume and the observed volumes for events to determine an estimated probability of the occurrence of each of the events for impression ‘i.’ As depicted, these estimated event probabilities include the estimated probability of an awarded impression being an in-view impression, {circumflex over (p)}V,i; the estimated probability of an awarded impression resulting in a click, {circumflex over (p)}C,i; the estimated probability of an awarded impression resulting in a conversion, {circumflex over (p)}A,i; the estimated probability of an awarded impression resulting in fulfillment of a video ad (e.g., the video is completed or a certain percentage of the video ad is viewed), {circumflex over (p)}F,i; and the estimated probability of an awarded impression being delivered to a target audience (e.g., demographic), {circumflex over (p)}T,i. It will be appreciated that the depicted estimated event probabilities are merely meant to be illustrative of possible events and that more or fewer events could be included within these estimated probabilities without departing from the scope of this disclosure. It will also be appreciated that combinations of events could also be reflected within these event probabilities. For example, event rate estimator 360 could be configured to determine an estimated probability of an awarded impression being delivered to a target audience and resulting in a click. These estimated probabilities produced by event rate estimator 360 can then be output to impression value estimator 370.
Impression value estimator 370 is configured to take as input the estimated event probabilities output by event rate estimator 360 and corresponding event values 216. The depicted corresponding event values include values that have been associated with each of the events for which a probability has been produced. As such, the event values 216 include a value associated with an in-view impression, νV,i; a value associated with a click, νC,i; a value associated with a conversion, νA,i; a value associated with fulfillment of a video ad (e.g., the video is completed or a certain percentage of the video ad is viewed), νF,i; a value associated with an impression delivered to a target audience (e.g., demographic), νT,i. In addition, the depicted event values 216 include a value associated with each awarded impression, νI,i. Because it can be assumed that the probability of an awarded impression resulting in an awarded impression is 100%, or 1, then the event rate estimator 360 need not be configured to produce an estimated probability for an awarded impression. These event values could be input to campaign control system 300 by a user (e.g., marketer) and could be subjectively determined (e.g., determined by business objectives of the marketer with respect to the campaign). It will be appreciated that the depicted event values are merely meant to be illustrative of possible events and that more or fewer events could be included within these event values without departing from the scope of this disclosure. It will also be appreciated that, as with the above discussed estimated probabilities, combinations of events could also be reflected within these event values. For example, a value could be associated with an awarded impression being delivered to a target audience and resulting in a click.
From the estimated probabilities received from event rate estimator 360 and the event values defined within event values 216, the impression value estimator 370 can calculate a likelihood-adjusted value for each awarded impression. To accomplish this, impression value estimator 370 can be configured to determine the product of each event probability and the corresponding event value and to sum these values together to determine an estimated impression value, {circumflex over (v)}i. As such, in the depicted embodiment, impression value estimator 370 can be configured to determine the estimated impression value in accordance with the following equation:
{circumflex over (ν)}i=νI,i+{circumflex over (p)}V,iνV,i+{circumflex over (p)}C,iνC,i+{circumflex over (p)}A,iνA,i+{circumflex over (p)}F,iνF,i+{circumflex over (p)}T,iνT,i Equation 1
From equation 1, it will be appreciated that by assigning a value of zero to any event value effectively removes this value from the calculation of the estimated impression value without impacting the rest of equation 1. It will be appreciated that Equation 1 is merely meant to be illustrative in nature, and that additional, or fewer, event values can be included without departing from the scope of this disclosure.
It will also be appreciated that the estimated impression value calculation depicted by equation 1 supports impression dependent event values, where ‘i’ represents the index of different groups of impressions. This enables distinguishing between groups of impression inventory such as, for example, distinguishing between premium and non-premium inventory. As used in this context, premium inventory may refer to impression inventory within the market that is considered to be of higher quality, or value, than non-premium inventory that is considered to be of lesser quality. This premium versus non-premium designation could be based on any applicable factor, such as, for example, specific websites (e.g., websites containing content associated with the product or service being marketed could be considered premium over generic websites), demographics associated with the inventory, etc. As a more specific example, the branding value of an impression may differ in that vI,i is set to a larger value if i corresponds to a teenage user, and vI,i is set to a lower value otherwise.
Actuator 320 takes the price control signal, u; the estimated impression value, {circumflex over (ν)}i; and an allocation control signal, if used, as input. Actuator 320 may utilize the combination of these inputs to calculate a bid price, bi, for the respective segment. In some embodiments, the bid price, bi, is calculated by taking the product of u and {circumflex over (ν)}i. In other embodiments, the bid price may be a capped segment bid price calculated, for example, using the equation bi=min(maxCPI, up{circumflex over (ν)}i), where maxCPI is max cost per impression, or, as another example, equation bi=min(maxCPIi, up{circumflex over (ν)}i), where maxCPIi is max cost per impression for segment i. It will be appreciated by someone of ordinary skill in the art that these examples are merely meant to illustrative and are not intended to limit the scope of this disclosure. For example, min can be replaced by max and/or the min (max) operation may be conditional based on user, ad, or impression specific information. In addition, the capping may apply only for a certain type of user, a certain time of the day, in a certain geographic region, etc.
Because the bid price, bi, is calculated based on the estimated impression value, {circumflex over (ν)}i, produced by impression value estimator 370, the bid price can be depicted based on the estimated impression value. As such, utilizing the event values to target different events can be represented in terms of how these event values impact the estimated impression value and therefore impact the bid price. Examples of this are discussed below.
As a first example, if the campaign merely wants to concentrate on impressions delivered, then the following values can be set to zero, {circumflex over (ν)}V,i=νC,i=νA,i=νF,i=νT,i=0. In such an example, where all impressions are valued equally, νI,i is not impression dependent (i.e., is impression independent) and is therefore the same for all impressions and can be expressed as νI. As such, the bid, bi, could be represented by the following equation: bi=uνI.
In another example, if the campaign merely wants to concentrate on clicks delivered, then the following values can be set to zero, νI,i=νV,i=νA,i=νF,i=νT,i=0. In such an example, where all clicks are valued equally, νC,i is not impression dependent and is therefore the same for all impressions and can be expressed as νc. As such, the bid, bi, could be represented by the following equation: bi=u{circumflex over (p)}C,iνC.
In yet another example, if the campaign merely wants to concentrate on in-view impression (i.e., impressions that are displayed on screen), then the following values can be set to zero, νI,i=νC,i=νA,i=νF,i=νT,i=0. In such an example, where all in-view impressions are valued equally, νV,i is not impression dependent and is therefore the same for all impressions and can be expressed as νV. As such, the bid, bi, could be represented by the following equation: bi=u{circumflex over (p)}V,iνV.
In yet another example, if the campaign wants to concentrate on number of impressions and conversion performance, then the following values can be set to zero, νV,i=νC,i=νF,i=νT,i=0. In such an example, where all impressions are valued equally and all conversions are valued equally. That is, νI,i and νA,i are not impression dependent and are therefore the same for all impressions and can be expressed as νI and νA, respectively. As such, the bid, bi, could be represented by the following equation: bi=u(νI+{circumflex over (p)}A,iνA).
In a final example, if the campaign wants to concentrate on premium in-view impressions and in-target impressions, then the following values can be set to zero, νI,i=νC,i=νA,i=νF,i=0. Because the campaign is concentrating on premium in-view impression, all impressions are not equal with respect to the in-view value and therefore νV,i is impression dependent, where ‘i’ indicates an index distinguishing between premium and non-premium impressions. With respect to in-target impressions however, all in-target impressions are valued equally and therefore, νT,i is not impression dependent and is therefore the same for all impressions and can be expressed as νT. As such, the bid, bi, could be represented by the following equation: bi=u({circumflex over (p)}V,iνV,i+{circumflex over (p)}T,iνT). It will be appreciated that the above discussed examples are merely meant to be illustrative and that any number of additional configurations can be adapted from the above described embodiments.
Market 330 represents a bidding environment in which marketers place ad requests for marketing space that is offered by publishers. The above discussed components facilitate a marketer in obtaining the desired pacing, Brev, within the limits of desired ROI, ROImin, and/or inventory available in marketing market 330.
As depicted, additional control systems (e.g., control systems 2 through control system x) can also be communicating with market 330. Each of these control systems can be configured in a similar manner to control system 300; however, it will be appreciated that the event values, desired minimum ROI, and the desired pacing may vary between each of these addition control systems.
The corresponding plurality of event values can include values associated with each event that a campaign control system is configured to monitor for within a market associated with the campaign control system. As such, the event values can include a value associated with an in-view impression, νV,i; a value associated with a click, νC,i; a value associated with a conversion, νA,i; a value associated with fulfillment of a video ad (e.g., the video is completed or a certain percentage of the video ad is viewed), νF,i; a value associated with an impression delivered to a target audience (e.g., demographic), νT,i. In addition, such event values can also include a value associated with each awarded impression, νI,i. These event values could be input to the campaign control system by a user (e.g., marketer) and could be subjectively determined (e.g., determined by business objectives of the marketer with respect to the campaign). It will be appreciated that the above discussed event values are merely meant to be illustrative of possible events and that more or fewer events could be included within these event values without departing from the scope of this disclosure. It will also be appreciated that combinations of events could also be reflected within these event values. For example, a value could be associated with an awarded impression being delivered to a target audience and resulting in a click. Any event or combination of events capable of being monitored within a market associated with a campaign control system can be considered an objective and is contemplated as being within the scope of this disclosure.
At block 404 an estimated impression value for a present logical interval of the campaign is calculated based, at least in part, on the plurality of event values received at block 402. In various embodiments, this estimated impression value may be further based on probabilities of the occurrence of each event for which an event value has been defined. The calculation of such an estimated impression value can be accomplished in a same or similar manner to that described in reference to
At block 406, a price control signal is generated by the campaign control system based, at least in part, on a desired ROI associated with the campaign and an actual ROI observed in a previous logical interval of the campaign. The desired ROI may be defined by a user and may be received as input to the campaign control system. In some embodiments, the desired ROI can represent a minimum desired ROI (e.g., ROI., 214) which a user (e.g., marketer) would like to achieve. The actual ROI observed in the previous logical interval can be based on a ratio of observed value of impressions delivered within the market during the previous logical interval to an observed cost of those impressions. It will be appreciated that observed value of the impressions would be calculated in accordance with the events delivered by those impressions in conjunction with the plurality of event values received at block 402. Observed value and observed cost can be generated in a same or similar manner to that discussed above in reference to
In some embodiments, the price control signal determined at block 406 is also based on a desired pacing (e.g., Brev 214 of
As discussed in reference to
In some embodiments, the price control is determined utilizing an adaptive control scheme to calculate the price control. Such an adaptive control scheme could calculate the control signal, and an optional allocation signal, based on a most recent value of the ROI error, a most recent value of the pacing error, and a stored controller state variable, which includes information about the past control performance. The adaptive control scheme is known in the art and a person of ordinary skill in the art would be able to implement such a control scheme. In other embodiments, alternative control schemes, may be utilized in place of the above discussed adaptive control scheme. Such control schemes are known in the art and would include an optimal control scheme, a model predictive control scheme, a proportional-integral-derivative (PID) control scheme, a robust control scheme, a stochastic control scheme, or any other suitable control scheme.
At block 408 a bid is calculated based on the price control signal determined at block 406 and the estimated impression value calculated at block 404. In some embodiments, the bid price is calculated by taking the product of the price control signal and the estimated impression value. In other embodiments, the bid price may be a capped bid price calculated, for example, using the equation bi=min(maxCPI, up{circumflex over (ν)}i), where maxCPI is max cost per impression. It will be appreciated by someone of ordinary skill in the art that this example is merely meant to be illustrative and is not intended to limit the scope of this disclosure. For example, min can be replaced by max and/or the min (max) operation may be conditional based on user, ad, or impression specific information. In addition, the capping may apply only for a certain type of user, a certain time of the day, in a certain geographic region, etc. Finally at block 410, the bid is transmitted to the market associated with the campaign.
Having described embodiments of the present invention, an example operating environment in which embodiments of the present invention may be implemented is described below in order to provide a general context for various aspects of the present invention. Referring to
The invention may be described in the general context of computer code or machine-useable instructions, including computer-executable instructions such as program modules, being executed by a computer or other machine, such as a personal data assistant or other handheld device. Generally, program modules including routines, programs, objects, components, data structures, etc., refer to code that perform particular tasks or implement particular abstract data types. The invention may be practiced in a variety of system configurations, including hand-held devices, consumer electronics, general-purpose computers, more specialized computing devices, etc. The invention may also be practiced in distributed computing environments where tasks are performed by remote-processing devices that are linked through a communications network.
With reference to
Computing device 500 typically includes a variety of computer-readable media. Computer-readable media can be any available media that can be accessed by computing device 500 and includes both volatile and nonvolatile media, and removable and non-removable media. By way of example, and not limitation, computer-readable media may comprise computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computing device 500. Computer storage media does not comprise signals per se. Communication media typically embodies computer-readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer-readable media.
Memory 520 includes computer-storage media in the form of volatile and/or nonvolatile memory. The memory may be removable, non-removable, or a combination thereof. Typical hardware devices may include, for example, solid-state memory, hard drives, optical-disc drives, etc. Computing device 500 includes one or more processors 530 that read data from various entities such as memory 520 or I/O components 560. Presentation component(s) 540 present data indications to a user or other device. Illustrative presentation components include a display device, speaker, printing component, vibrating component, etc.
In various embodiments, memory 520 includes, in particular, temporal and persistent copies of multiple objective control logic 522. Multiple objective control logic 522 includes instructions that, when executed by one or more processors 530, result in computing device 500 performing the procedures of process 400, or any subset thereof. In various embodiments, multiple objective control logic 522 includes instructions that, when executed by processor 530, result in computing device 500 performing various functions associated with, but not limited to, campaign control system 300, or any components thereof.
In some embodiments, one or more processors 530 may be packaged together with multiple objective control logic 522. In some embodiments, one or more processors 530 may be packaged together with multiple objective control logic 522 to form a System in Package (SiP). In some embodiments, one or more processors 530 can be integrated on the same die with multiple objective control logic 522. In some embodiments, processor 530 can be integrated on the same die with multiple objective control logic 522 to form a System on Chip (SoC).
In the preceding detailed description, reference is made to the accompanying drawings which form a part hereof wherein like numerals designate like parts throughout, and in which is shown, by way of illustration, embodiments that may be practiced. It is to be understood that other embodiments may be utilized and structural or logical changes may be made without departing from the scope of the present disclosure. Therefore, the preceding detailed description is not to be taken in a limiting sense, and the scope of embodiments is defined by the appended claims and their equivalents.
Various aspects of the illustrative embodiments have been described using terms commonly employed by those skilled in the art to convey the substance of their work to others skilled in the art. However, it will be apparent to those skilled in the art that alternate embodiments may be practiced with only some of the described aspects. For purposes of explanation, specific numbers, materials, and configurations are set forth in order to provide a thorough understanding of the illustrative embodiments. However, it will be apparent to one skilled in the art that alternate embodiments may be practiced without the specific details. In other instances, well-known features have been omitted or simplified in order not to obscure the illustrative embodiments.
Various operations have been described as multiple discrete operations, in turn, in a manner that is most helpful in understanding the illustrative embodiments; however, the order of description should not be construed as to imply that these operations are necessarily order dependent. In particular, these operations need not be performed in the order of presentation. Further, descriptions of operations as separate operations should not be construed as requiring that the operations be necessarily performed independently and/or by separate entities. Descriptions of entities and/or modules as separate modules should likewise not be construed as requiring that the modules be separate and/or perform separate operations. In various embodiments, illustrated and/or described operations, entities, data, and/or modules may be merged, broken into further sub-parts, and/or omitted.
The phrase “in one embodiment” or “in an embodiment” is used repeatedly. The phrase generally does not refer to the same embodiment; however, it may. The terms “comprising,” “having,” and “including” are synonymous, unless the context dictates otherwise. The phrase “A/B” means “A or B.” The phrase “A and/or B” means “(A), (B), or (A and B).”The phrase “at least one of A, B and C” means “(A), (B), (C), (A and B), (A and C), (B and C) or (A, B and C).”