The present invention is directed towards internet search advertising, and more particularly to techniques for optimizing bidding for internet search advertising agencies.
Search engines continue to serve as the preferred tool for finding local business information on the internet. For example, an internet search for a “shoe store in Memphis” is likely to yield dozens of shoe stores in Memphis, Tenn., and the search results page is likely to include maps and telephone numbers. Such localized internet searches for local business information is expected to play an even greater role as time progresses. With the explosion of the deployment of highly-capable mobile terminals (e.g. smart phones, phones with large screens, touch screens, etc), the contribution of searches for local business information now accounts for 35% of all mobile searches. The current generation of mobile terminals exhibits sufficient computing and display resources to make those mobile terminals good platforms for advertisements to be displayed on the mobile terminal screen (e.g. the screen of the smart phone). Local advertisements play an important role in “Research Online, Buy Offline” (ROBO) behavior. Yet, despite all these favorable factors, local businesses continue to spend a disproportionate amount of advertising dollars on mediums other than display advertising.
Studies suggest that small, local businesses are often owned and managed by a sole proprietor or are family businesses, and accordingly such local businesses do not employ staff with sufficient skills to deal with the nature and complexities of internet search advertising. Moreover, even in the case that a small business would seek to engage an advertising agency, the agency might not find that the sector of such small, local businesses would be a profitable sector. That is, the cost of set-up of a client account, the cost of engaging small business personnel to determine differentiating factors, the cost of engaging small business personnel to determine appropriate keywords and bid amount, etc, might present more costs per account than can be expected to be recouped, and also increases the timeframe for the account to reach profitability. Earlier techniques that merely provide un-optimized “one size fits all” solutions have proven to be inadequate for the needs of local businesses, and also have proven inadequate for the needs of advertising agencies that seek to serve local businesses.
Thus, for this and other reasons, techniques for internet search advertising campaign variable optimization for aiding advertising agency efficiencies are needed. Key reasons are:
If the reseller can be helped with the management overhead issues involved with handling numerous clients, then the local search ad market can be stimulated to realize its full potential. Techniques described herein address keyword management, especially around managing keyword templates or lists and especially around techniques for bidding on behalf of a very large number of clients (i.e. on the order of hundreds of thousands of clients). Thus, for these and other reasons, techniques for automatic internet search advertising campaign variable optimization for aiding advertising agency efficiencies are needed.
A method, computer readable medium, and advertising server network for automatic internet search advertising campaign variable optimization (which advertising campaign variables may be generated using templates or other automation techniques). The advertising server network comprises a module for receiving an advertising campaign specification containing a keyword template. The keyword template contains a plurality of keywords or bid phrases (which are selected to correspond to a particular business type). Then, based on one or more selected keywords, a module serves for collecting historical and/or forecasted keyword click data using a historical dataset. The keywords and click data are used as inputs into a linear programming optimization problem, in which linear programming optimization technique is employed for calculating a bid amounts for bidding on one or more display positions. The bid amounts are optimized based an objective function subject to policy constraints. Given an optimized bid, a module places the bid using an auction server. A winning bid then secures a particular position on the internet search advertising impression.
The novel features of the invention are set forth in the appended claims. However, for purpose of explanation, several embodiments of the invention are set forth in the following figures.
In the following description, numerous details are set forth for purpose of explanation. However, one of ordinary skill in the art will realize that the invention may be practiced without the use of these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to not obscure the description of the invention with unnecessary detail.
Some of the terms used herein are presented below. These terms are not rigidly restricted to these definitions. A term may be further defined by the term's use in other sections of this description.
“Advertisement” (e.g., ad, item and/or message) means a paid announcement, as of goods or services for sale, preferably on a network, such as the Internet. An ad may also be referred to as an ad, an item and/or a message.
“Advertiser” (e.g., messenger and/or messaging customer, etc.) means an entity that is in the business of marketing a product and/or a service to users. An advertiser may include without limitation a seller and/or a third-party agent for the seller. An advertiser may also be referred to as a messenger and/or a messaging customer. Advertising may also be referred to as messaging.
“Advertising” means marketing a product and/or service to one or more potential consumers by using an ad. One example of advertising is publishing a sponsored search ad on a Web site.
“Internet Advertising” means marketing a product and/or service to one or more potential consumers by using an ad delivered over the internet or other network. One example of internet advertising is internet search advertising including publishing a sponsored search ad on a Web site. Another example of internet advertising is internet display advertising including publishing a display ad or message on a Web site. Techniques disclosed herein may be applied to internet advertising in the form of internet search advertising and/or internet advertising in the form of internet display advertising.
Search engines continue to serve as the preferred tool for finding local business information on the internet. Such localized internet search for local business information is expected to play an even greater role as time progresses. Yet, studies suggest that small, local businesses are often owned and managed by a sole proprietor or are family businesses, and accordingly such local businesses do not employ the staff with sufficient skills to deal with the nature and complexities of internet advertising. Moreover even in the case that a small business would seek to engage an advertising agency, the agency might not find that the sector of such small, local businesses would be a profitable sector. That is, the cost of set-up of a client account, the cost of engaging small business personnel to determine differentiating factors, the cost of engaging the small business personnel to determine appropriate keywords and bid amount, and the overall cost of developing an optimized advertising campaign, might present more costs per account than can be expected to be recouped, and also might reduce the probability that the engagement would generate a profit in a reasonable timeframe.
Often, and especially for small businesses, online advertising and marketing campaigns rely at least partially on an auction process where any number of advertisers or their agents submit and authorize highest bids corresponding to keywords or bid phrases, where the bid corresponds to a particular position of the internet search advertisement (e.g. first most prominent position, second most prominent position, etc). Especially in situations where there is limited advertising space available, an auction for a particular bid phrase is held to identify the winning bidder or bidders. The advertisement belonging to the winning bidder (or possibly an ordered list of winning bidders) is used for presenting an impression (e.g. a display of an advertisement or message) within the advertising space. In order to create and optimize an advertising campaign, it is often the case that, in addition to identifying keywords or bid phrases, the advertiser must also create and specify the advertisement to be placed, specify details regarding geographic targeting, specify details regarding time-based targeting, specify details regarding budget, and sometimes must specify many other variables used in the execution of an advertising campaign.
Understanding the meaning and effect of these campaign variables (e.g. keywords, bid phrases, bids, cost-per-click (CPC), conversion rate, keyword bidding methods, ROI, etc) presents entry barriers (at the least, a skill-level barrier) to small advertisers, and presents a business barrier (at the least, a profitability barrier) to advertising agencies.
Worse, a poorly defined or un-optimized campaign might run for some initial period, might result in a poor return on investment to the advertiser, and might risk the result that the advertiser forms a negative opinion about the advertising service provider and/or the advertising agency.
For proving solutions to overcome the aforementioned barriers, it is instructive to further examine aspects underlying the barriers. For example:
Some work has been done as regards automation of various aspects of campaign generation (e.g. automatic generation of creatives) and campaign variables optimization (e.g. keyword generation and bidding techniques). The disclosure herein focuses on keyword management aspects, and especially addresses techniques for managing keyword lists and managing bidding for a very large number of clients (e.g. on the order of hundreds of thousands of small clients) spread across the globe. Further, effective application of the techniques described herein can result in:
Local businesses are generally price sensitive and expect to see measurable returns on their investments (ROI). On the other hand, tracking leads and conversions in the small business and local business context is challenging to measure because many of the businesses do not provide for online delivery of their products and services. Further the “Research Online, Buy Offline” (ROBO) behavior continues to be prevalent with respect to small businesses and local businesses. Thus, campaign results based on clicks would be a reasonable opening option. It should be noted that the techniques disclosed herein can be applied to other models such as cost-per-lead (CPL) or cost-per-acquisition (CPA) pricing.
In exemplary embodiments, a internet search advertiser and/or agency provides forecasting graphs such as of the form of bid vs. clicks, bid vs. cost-per-click, clicks vs. cost-per-click, etc. Such forecasting graphs can be provided as it pertains to each and every keyword or bid phrase for which such data has been captured (historically) to the extent a forecast can be provided. These graphs are typically aggregated at daily/weekly/monthly levels. From these graphs and others like them, one can ascertain the number of clicks one can expect to realize for a particular bid value over the defined period.
As an example of the level of sophistication required for proposing and optimizing campaign variables, consider that, given a particular budget (e.g. daily, weekly, monthly budget), the campaign manager, using forecasting graphs (such as is shown in
In some embodiments, various screen devices are provided for an advertiser (or agent) to capture elements of such an advertising campaign.
As shown, a screen device 1E00 might provide tips, hints, page help, and/or other resources to aid the user in completing (e.g. in cases of manually entered information) or in accepting (e.g. in cases of computer-aided information population) any entered information. Further, some embodiments might provide one or more screen devices to aid an advertiser. As shown, the button “Find keywords related to your site” 1E20 might be presented to an advertiser, and clicking the button might invoke one or more operations within a campaign generation module 219, for example, the button “Find keywords related to your site” might be used for operations to select a keyword template.
As can be understood from the foregoing descriptions of campaign screen devices, and the consideration of the values captured by those screen devices, advertising agencies are motivated to automate and/or simplify the process. One such simplification involves a change to the business model, namely, a business model such that resellers may make offers of clicks per month at a certain price, such as “500 clicks per month for $800”. Typically “branding” (e.g. delivering as many display advertising impressions as possible) is not a goal for local businesses, therefore such click-based pricing serves small and local business needs. It is also simple and easily understood by even an unsophisticated campaign manager (e.g. a small business sole proprietor). As a further example, consider the scenario of dentists (i.e. a local business) being offered an advertising campaign with “template proposals” containing click offers such as, “800 clicks at $1000”, “500 clicks at $800” and “300 clicks at $500”. Mechanisms for defining such template proposals is discussed infra
A template-based campaign proposal further suggests that resellers use a single template to manage keywords for all local businesses of a certain advertiser business type 1H30 across all locations within a particular geography, for example “business type” can be dentists, florists, etc). Thus, the management expense (investment) of defining the keyword list template is amortized across all local businesses of a certain advertiser business type 1H30, and across all locations being served by the reseller. The intuitive sense of this is as follows: Consider the example of dentists. How different are the dentists that are located in San Jose from each other? Or, for that matter, how different are dentists located in San Jose from dentists located in San Francisco? Thus, using the same keyword or bid phrase list (e.g. “tooth extraction”, “root canal”, “teeth whitening”, etc) would allow a reseller to scale across all dentists within a particular geography. Further, the techniques disclosed herein facilitate handling a group of clients of a certain business type together during bid optimization.
Given that supply (e.g. availability of impressions) and demand (e.g. a bid for an ad placement into that impression) are different in different locations, the techniques for automatic internet advertising campaign variable optimization may compute keyword bids for each location separately. In one embodiment, the bid computing algorithm makes use of various policies when calculating the optimal result. For example:
The above policies would tend to increase the overall demand that a reseller can place against available supply in that more click demand can be satisfied against the existing supply, thus increasing reseller revenue. Further, the above policies tend to increase the profit margin for the reseller, given the increased efficiency of placing multiple ads on the same internet advertising impression.
In the context of internet advertising, placement of advertisements within an internet environment (e.g. online advertising system 200 of
Again referring to
In some embodiments, the online advertising system 200 might host a variety of modules to serve management and control operations (e.g. an objective optimization module 210, a forecasting module 211, a data gathering and statistics module 212, an advertisement serving module 213, an automated bidding management module 214, an admission control and pricing module 215, etc) pertinent to serving advertisements to users. In particular, the modules, network links, algorithms, assignment techniques, serving policies, and data structures embodied within the online advertising system 200 might be specialized so as to perform a particular function or group of functions reliably while observing capacity and performance requirements. For example, a campaign generation module 219, a bid optimizer input management module 216 and/or a bid optimizer estimator module 217 can operate partly in an offline (or batch) mode, and partly in an online (or interactive) mode. Further, a database for storing the historical dataset 120 (which can also store historical keyword click data and/or forecasted keyword click data) can operate in an online mode or in an offline mode, or both. As shown, and without regard to allocation of any particular operation to any particular mode, a bid optimizer input management module 216, and a bid optimizer estimator module 217, possibly using a linear program solver 240, can operate cooperatively to implement a system for advertising campaign variable optimization for aiding advertising agency efficiencies.
Some embodiments herein disclosed provide a linear programming (LP) formulation of the problem, which formulation is for use by a linear program solver 240. As introduced in
Within online advertising system 200, a bid optimizer estimator module 217 may operate for implementing advertising campaign variable optimization. In particular, a bid optimizer estimator module 217 may accept inputs from a bid optimizer input management module 216 for performing calculations, including the calculations as are disclosed just below. As foreshadowed above, some embodiments of the bid optimizer estimator module may employ techniques based on linear programming. Linear programming is a mathematical method for determining a way to achieve an optimal outcome (such as maximum profit or lowest cost) given a mathematical model based on linear equations. More formally, formulating a linear programming optimization problem is a technique whereby the optimization of a linear objective function, subject to linear equality and/or linear inequality constraints is solved using a system of simultaneous linear equations.
Linear programs are problems that can be expressed in canonical form:
Intuitively, given a polytope and a real-valued affine function defined on this polytope, a linear programming method will find a point on the polytope where this function has the smallest (or largest) value (if such a point exists), by searching through the polytope vertices.
Geometrically, the linear constraints define a convex polytope, which is called the feasible region. A linear function is a convex function, which implies that every local minimum is a global minimum; similarly, a linear function is a concave function, which implies that every local maximum is a global maximum.
Optimal solutions need not necessarily exist for two reasons. First, if two constraints are inconsistent, then no feasible solution exists. For instance, the constraints x≧2 and x≦1 cannot be satisfied jointly; in this case, it is said that the LP problem is infeasible (at least so long as the problem includes inconsistent constraints). Second, when the polytope is unbounded in the direction of the gradient of the objective function (where the gradient of the objective function is the vector of the coefficients of the objective function), then no optimal value is defined (although the system may possess many feasible solutions).
If a feasible solution exists and if the (linear) objective function is bounded, then the optimum value is always attained, on the boundary of optimal level-set, by the maximum principle for convex functions (alternatively, by the minimum principle for concave functions). Some problems have multiple distinct optimal solutions: For example, the problem of finding a feasible solution to a system of linear inequalities is a linear programming problem in which the objective function is the zero function (that is, the constant function taking the value zero everywhere). For this feasibility problem with the zero-function for its objective function, if there are two distinct solutions, then every convex combination of the solutions is a solution.
Now, with an understanding of the characteristics and mathematical notation of an LP problem, and further that the objective of the reseller is to minimize the total cost of procurement of all the required clicks of all the advertisers, then the problem of internet advertising campaign variable optimization for aiding advertising agency efficiencies can be described with the notation and meaning as follows:
Those skilled in the art will recognize the following:
Thus, xijk
The objective of the reseller, as stated earlier, is to minimize the total cost of procurement of all the required clicks of all the advertisers. This translates into an objective function of the form:
min ΣΣΣxijk
That is, minimize the sum of all individual costs of advertisers who have to pay xijk
Of course feasible solutions are subject to constraints. The first constraint derives from a contract between a particular advertiser and the agent or reseller, the contract specifying a minimum placement policy. That is, the reseller agrees to deliver at least the target number of clicks as required by the advertiser within some specified timeframe (e.g. the time period of the campaign). This constraint is captured by the formula:
∀i, ΣΣxijk
The next constraint comes from the Position Policy. That is, that the reseller cannot bid the same advertiser for two positions of the same keyword for a given advertising impression. This constraint is captured by the formula:
∀i,j Σxijk
Also, the reseller needs to ensure that the total number of clicks that the set of advertisers derive from each position of each keyword is less than or equal to the total availability at that position. This gives rise to the constraint captured by the equation:
∀j,kjΣxijk
Also are constraints which state that each of these quantities xijk
∀i,j,kjxijk
Given this linear programming formulation, various embodiments of a bid optimizer estimator module 217 can use one or more instances of a linear program solver 240 to obtain the optimal values for xijk
In the embodiment shown, a bid optimizer input management module 216 takes data from the aforementioned plurality of sources and filters and/or reforms the data for processing by a second computation server 4052, or more particularly by a bid optimizer estimator module 217. As an example of filtering, a bid optimizer input management module 216 can accept a dataset of local advertisers 4120 and filter those advertisers to retrieve only advertisers of interest. For example, a bid optimizer input management module 216 might filter to produce a dataset containing only dentists within a particular proximity to a city center. Such filtered data can be stored in a dataset accessible to both the first computation server 4051 and the second computation server 4052, (for example, in a filtered dataset of local advertisers 4121). In similar fashion, the bid optimizer input management module 216 might filter and store other data from the datasets.
In an exemplary embodiment, the first computation server 4051 includes a click-cost estimator module 410. Such a module is designed to help the reseller estimate the market potential in a given location (e.g. in terms of clicks and cost). A reseller might use the outputs of such a module to aid in determining what characteristic should be included in an offer to an advertiser. For example, the reseller might suggest to dentists in San Jose a trial campaign comprising 1000 clicks in the month of June for $1000. Such a click-cost estimator module 410 might be partitioned into two or more components, for example a first click-cost estimator module 4101 might be implemented within a first computation server 4051 and a second click-cost estimator module 4102 might be implemented within a second computation server 4052. As shown, the second click-cost estimator module 4102 uses the bid computing algorithm to estimate the cost of meeting certain demand. Given such an estimate, the reseller can create demand profiles and attach the demand profiles to specific locations. Moreover, based on estimates within the demand profile, a reseller or advertiser can deduce various click-cost curves. Furthermore, it is reasonable and conceived to automate this activity such that as soon as a new small business type emerges, a suitable demand profile can be attached to it, the click-cost deduced from historical dataset, and potential offers computed; for example, based on profit margin requirements.
The bid computing algorithm does not necessarily ensure that the client paying the highest pay-per-click to a reseller gets placed higher on the impression over those paying lower amounts to the same reseller. Accordingly, a system 400 for automatic advertising campaign variable optimization can employ a heuristic optimizer module 440 designed to apply heuristics to the results of the bid optimizer estimator module 217. Specifically, by modifying the allocations after the optimized solution is obtained from the bid optimizer estimator module.
Now, combining aspects of the above disclosed techniques, an exemplary system can be constructed for automatic advertising campaign bid optimization for achieving a maximum (or minimum) campaign bidding objective. Operations include receiving an advertising campaign specification (e.g. a data structure containing an advertising campaign specification), the advertising campaign specification specifying or containing a keyword template (e.g. a dataset of keyword templates 4130) and collecting various historical keyword click data from a historical dataset (e.g. where the historical keyword click data is extracted corresponding to at least one keyword found in the keyword template). Once sufficient inputs have been assembled, then the system operates to formulate a linear programming optimization problem for calculating a bid amount for a particular display position. The linear programming optimization problem uses several inputs: (1) a historical cost of a click for a keyword, (2) a forecast of clicks for the keyword, (3) one or more constraints or policies, and (4) an objective function.
When an optimized bid has been calculated (e.g. by solving the linear programming optimization problem), an automated system may commence bidding for an internet search advertising impression position, possibly using an auction server.
In some cases, the advertising campaign specification comprises an advertiser business type. Similarly, in some cases, the keyword template comprises keywords selected by an advertising agency. Also, in some cases, likelihood of overbidding is mitigated by using historical keyword click data retrieved from a dataset of forecasted supply, and the forecasted supply formulated in a linear programming model constraint. Indeed, various policies may be included in the linear programming optimization problem by formulating a policy into the mathematical form of a linear inequality.
Any node of the network 600 may comprise a general-purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, a discrete gate or transistor logic, discrete hardware components, or any combination thereof capable to perform the functions described herein. A general-purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices (e.g. a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration, etc).
In alternative embodiments, a node may comprise a machine in the form of a virtual machine (VM), a virtual server, a virtual client, a virtual desktop, a virtual volume, a network router, a network switch, a network bridge, a personal digital assistant (PDA), a cellular telephone, a web appliance, or any machine capable of executing a sequence of instructions that specify actions to be taken by that machine. Any node of the network may communicate cooperatively with another node on the network. In some embodiments, any node of the network may communicate cooperatively with every other node of the network. Further, any node or group of nodes on the network may comprise one or more computer systems (e.g. a client computer system, a server computer system) and/or may comprise one or more embedded computer systems, a massively parallel computer system, and/or a cloud computer system.
The computer system (e.g. computer 650) includes a processor 608 (e.g. a processor core, a microprocessor, a computing device, etc), a main memory (e.g. computer memory 610), and a static memory 612, which communicate with each other via a bus 614. The computer 650 may further include a display unit (e.g. computer display 616) that may comprise a touch-screen, or a liquid crystal display (LCD), or a light emitting diode (LED) display, or a cathode ray tube (CRT). As shown, the computer system also includes a human input/output (I/O) device 618 (e.g. a keyboard, an alphanumeric keypad, etc), a pointing device 620 (e.g. a mouse, a touch screen, etc), a drive unit 622 (e.g. a disk drive unit, a CD/DVD drive, a tangible computer readable removable media drive, an SSD storage device, etc), a signal generation device 628 (e.g. a speaker, an audio output, etc), and a network interface device 630 (e.g. an Ethernet interface, a wired network interface, a wireless network interface, a propagated signal interface, etc).The drive unit 622 includes a machine-readable medium 624 on which is stored a set of instructions (i.e. software, firmware, middleware, etc) 626 embodying any one, or all, of the methodologies described above. The set of instructions 626 is also shown to reside, completely or at least partially, within the main memory and/or within the processor 608. The set of instructions 626 may further be transmitted or received via the network interface device 630 over the network bus 614.
It is to be understood that embodiments of this invention may be used as, or to support, a set of instructions 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; and electrical, optical or acoustical or any other type of media suitable for storing information.
While the invention has been described with reference to numerous specific details, one of ordinary skill in the art will recognize that the invention can be embodied in other specific forms without departing from the spirit of the invention. Thus, one of ordinary skill in the art would understand that the invention is not to be limited by the foregoing illustrative details, but rather is to be defined by the appended claims.