Use of business heuristics and data to optimize online advertisement and marketing

Information

  • Patent Application
  • 20080004955
  • Publication Number
    20080004955
  • Date Filed
    June 28, 2006
    18 years ago
  • Date Published
    January 03, 2008
    16 years ago
Abstract
A computer-implemented method of conducting an online advertising and marketing campaign includes the step of selecting one of a plurality of business rules to use in targeting product or service offerings in the online advertising and marketing campaign. The selected business rule is then run against a business database to identify at least one target offering candidate. The at least one identified target offering candidate is then recommended to a user (e.g., by specifying the target offering, by recommending keywords for the target offering, etc.).
Description

BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 is a block diagram illustrating a system embodiment.



FIG. 2 is a block diagram illustrating a more particular system embodiment.



FIG. 3-1 is an example chart illustrating a search tail.



FIG. 3-2 is a representation of a graphical user interface of ranked links.



FIGS. 4-1 through 4-5 are flow diagrams illustrating method embodiments.



FIG. 4-6 is an illustration of a menu of business rules in accordance with some embodiments.



FIGS. 4-7 and 4-8 are flow diagrams illustrating method embodiments.



FIGS. 5-1 through 5-9 illustrate graphical user interfaces which can be generated to aid in ad campaign development in accordance with some embodiments.



FIG. 6 is a block diagram illustrating a general computing environment configured to implement disclosed embodiments.





DETAILED DESCRIPTION


FIG. 1 is a block diagram illustrating an online advertising or marketing campaign system 10 in accordance with some example embodiments. System 10 can be a business accounting application or application suite, for example, or other types of systems. System 10 can also be a business system such as an enterprise resource planning (ERP) system. As illustrated in FIG. 1, system 10 includes one or more business databases 105. The one ore more business databases include business accounting information indicative of sales, costs, profit margins, return on investment (ROI), inventory levels, inventory details, etc. Examples of other types of data that can be included in database 105 include product or services descriptive information such as Titles, Descriptions, UPCs, Brands, Manufacturer name, stock keeping unit (SKU), etc. It must be understood that different databases may store different types of business information, but that these databases can be collectively referred to here as business database 105. This does not mean, however, that every action on a business database described below occurs against all of these business databases.


System 10 also includes a business rules engine 20 which is configured to run a selected business rule against at least portions of the business data in database(s) 105 to identify one or more target offerings 22 of products or services. The business rule can be selected by a user from a set of business rules 21. An offering is defined as any item or service that is offered by the business. After running the selected business rule(s) against the business data, business rules engine 20 then provides information related to the identified target offering candidates at its output. This information can be provided (e.g., via a display device) directly to a user in some embodiments. However, in other embodiments such as the one described below with reference to FIG. 2, this information on identified target offering recommendations is also, or instead, provided to other components of the system for further processing.


In operation, business rules engine 20 mines data from the one or more databases 105 for information which is useful in identifying products or services that should be targeted as offerings in the online advertising campaign. Useful data in this regard can be, for example, based on past sales and other data like Standard Industrial Classification (SIC) codes to determine the right broad parameters to use while targeting various online advertising (search) engines. Past data can be actual sales data or ROI data from past advertising campaigns. The heuristics implemented by business rules engine 20 can also propose new campaigns based on declining effectiveness of past campaigns (like suggesting that local advertising be used if sales across channels is largely local). As will be described below in greater detail with reference to FIG. 2, business rules engine 20 or other components of a disclosed system embodiment can also be configured to, based on the actual ROI of past campaigns using various advertising or search engines, select or omit particular advertising or search engines. The business heuristics used by business rules engine 20 can also include much aggregate data collected by trends for businesses in similar locales or SIC codes. These pre-selections can be presented to the business owner/user for confirmation in a graphical user interface (GUI) screen or series of screens, for example such as those illustrated in FIGS. 5-1 through 5-9, which are described below.


In various embodiments, business rules engine 20 is configured to run any of a number of various business rules and heuristics (collectively referred to as business rules 21) against data contained in the business database 105 (e.g., data from a business application) to determine the right targets for online advertising. Some examples of these rules include: profit margin maximization rules; inventory management rules such as inventory level minimization rules, excessive inventory reduction rules, or inventory seasonality/perishability rules; sales trend analyzing rules; and past online advertising and marketing campaign analysis rules such as rules which analyze past ROIs of previous campaigns.


For example, the profit margin maximizing rule can determine the offerings that generate the maximum profit for the business. Then, based or target thresholds which can be set by the user or which can be preset into the system, these rules determine all of the offerings that could be targets for online advertising and marketing. The profit margin thresholds can be specified on an absolute or percentage basis.


Also for example, the inventory level minimizing rules or excess inventory reduction rules can be used to determine offerings that have higher than desired inventory. The online marketing campaign can then be designed to reduce excessive inventory. Sales trend analysis rules can be used to identify decreasing sales trends, and then the campaign can be designed to increase sales to change the direction of the trend. Sales trend analysis rules can also be used to identify increasing sales trends if desired.


As a further example, the business rules which analyze ROI of past campaigns can be used to identify campaigns that are effective, and to optimize the current ad campaign around these prior campaigns. This allows businesses to reduce investments in campaigns that are not working and to re-target these to new campaigns.


In yet another example, the business rules which manage inventory seasonality/perishability can be used to determine targets based on the seasonality (e.g., summer garments at the end of summer which should be sold by the end of the season before demand stops or drops off sharply) or perishability (e.g., products with high rates of price decay) of inventory. In other words, these business rules can be used to identify the seasonal or perishable product offerings, and to focus the advertising campaign on these offerings. Also, target offerings can be determined based on pricing strength or weakness.


The use of these business rules and heuristics to determine the offerings 22 that are targeted for online advertising or marketing reduces the guesswork which is often used in making such business decisions. Once one or more of these rules have been run on the inventory offerings, the list of target offering candidates form a result set that can then be run through statistical, linguistic and other analysis to come up with keywords and keyword phrases as described further with reference to FIG. 2. In addition to automatically creating the keywords or keyword phrases, each of these keywords or keyword phrases has a set of offerings that they target. For example, the keyword “bike” would target almost all the offerings of a bike store, but a “mountain bike” would just target the mountain bikes. Based on the breadth of targeting, profitability of the offerings targeted, ROI based on anticipated bid price and other business metrics, the optimal bid prices for the specific business can be determined. Also, keywords or keyword phrases that may be either too expensive or that target a limited subset of offerings can be eliminated. The keywords or keyword phrases which the system recommends in some embodiments can then be bid or purchased on the online adverting and marketing engines. A discussion of these further features of some embodiments is provided with reference to an alternate or more particular embodiment of system 10, which is represented in FIG. 2 as system 100.



FIG. 2 is a block diagram illustrating an online advertising campaign system 100 in accordance with example embodiments. System 100 is a more particular embodiment of system 10, including components of system 10 plus additional components for keyword generation and for other analysis. As such, in addition to aiding users or businesses in identifying target offerings, system 100 also assists in determining which keywords to purchase for their online marketing or advertising campaigns. System 100 and the disclosed methods which can be implemented with such a system utilize statistical, linguistic and other analysis to propose possible keywords and keyword phrases. Disclosed embodiments are explained at times in the context of an accounting application, for example like Microsoft® Small Business Accounting. The disclosed embodiments are not limited to either this specific accounting application, or to accounting applications in general. Instead, disclosed embodiments can be used in conjunction with various business applications, for example such as ERP systems, which have business data relating to product or service offerings of a business. The disclosed embodiments can also be used separately from any business application, relying only on access to business data.


In system 100, business rules engine 20 functions as described with reference to FIG. 1, using business rules 21 to identify target offerings 22. As shown, business rules engine 20 can interact with graphical user interface (GUI) component 115 to allow a user to report target offerings or other information to the user, or to otherwise configure system 100 or control the process. As shown in FIG. 2, like system 10, system 100 includes one or more business databases 105 (collectively referred to as a business database) containing business data relating or corresponding to product or service offerings of the business. Once the target offerings 22 have been determined by business rules engine 20, these target offering 22 are then analyzed by system 100 to determine the keywords to be used. In business applications, there is considerable data available on offerings. As mentioned, examples of the types of data that can be included in database 105 include Titles, Descriptions, UPCs, Brands, Manufacturor name, stock keeping unit (SKU), etc. These or other data types can be used to determine effective keywords. This data on the various offerings contained in the business application can be mined by statistical analysis to determine frequency of words.


System 100 includes a statistical analysis engine 110 which is configured or programmed to perform the statistical analysis on the business data to determine keywords 111. For example, the statistical analysis engine 110 can be configured to determine keywords 111 by identifying words in database(s) 105 having highest occurrence frequencies in the business data. In some embodiments, the keywords 111 identified by engine 110 can be provided to a GUI component 115 for displaying to a user as keyword suggestions. The user can then approve, modify or reject the keyword suggestions.


In exemplary embodiments, while the keyword suggestions are based upon the keywords identified by the statistical analysis engine, the actual keyword suggestions are generated in the form of keywords or keyword phrases by a linguistic analysis engine 120. A keyword phrase is defined here as a combination of at least two keywords. Linguistic analysis engine is configured or programmed to perform linguistic analysis on the keywords 111 determined by the statistical analysis engine 110 in order to identify one or more keywords or keyword phrases 121. The linguistic analysis engine utilizes past searching behavior, e.g., in the form of prior search data 122 (e.g., prior search logs) from search engines, in the process of identifying the alternate keywords or keyword phrases. The GUI component 115 can then display the keyword phrases as the keyword suggestions.


In various embodiments, linguistic analysis engine 120 uses various types of linguistic analysis in the identification of keyword phrases 121. For example, in some embodiments, engine 120 eliminates keywords 111 which are determined to have a low likelihood of being relevant to offerings to be targeted. The relevance can be determined using conventional linguistic techniques and prior search data 122 indicative of previous search behavior.


Also, in some embodiments, system 100 includes a thesaurus or synonym database 125 and/or a dictionary database 130 which are used by the linguistic analysis engine 120. In these embodiments, the linguistics engine 120 can be configured to use one or both of the databases 125 and 130 to identify other words which are similar to the keywords determined by the statistical analysis, but more commonly used by consumers. For example, for the keyword 111 of “shoes”, using database 125 and/or database 130, linguistic analysis engine 120 might offer keywords or keyword phrases 121 such as “slippers”, “boots”, “hiking boots”, “running shoes”, etc. Determination of how likely these similar keywords or keyword phrases are used by consumers can be determined using prior search data 122. These other words can then be provided in keyword phrases 121. As a more specific example, if the original keyword 111 was “shoes”, and linguistic analysis engine identifies “boots” and “sandals” as alternative keywords, an analysis of consumer use of these terms is conducted. If, based on prior search data 122 or on other criteria, linguistic analysis engine 120 determines that consumers are searching on “boots” more often than on “sandals”, the keyword “boots” will be pushed up in the rankings of recommended keywords relative to the keyword “sandals”.


Linguistic analysis engine 120 is also configured, in some embodiments, to apply a variety of linguistic rules in determining keywords or keyword phrases 121. For example, engine 120 can apply rules based on parts of speech of keywords or keyword phrases, collocation rules for multiple words of a keyword phrase, occurrence frequency statistics for keywords or keyword phrases, etc.


In some embodiments, system 100 includes a basket analysis component 113 (e.g., a module or engine). Basket analysis component 113 performs an analysis on the business data in database(s) 105 and/or on the prior search data 122, based on the keywords or keyword phrases (e.g., 111/121), to recommend other keywords or keyword phrases. The basket analysis can identify other product offerings which online shoppers purchased when clicking on the business' link following a search using the keywords or keyword phrases. For example, if the keyword “bicycle” is being recommended by system 100, basket analysis component 113 can identify, from past search data and/or from business data, that previously people who clicked on the business' link using that keyword in their search actually purchased bicycle jerseys, bicycle helmets, etc. After such a basket analysis, component 113 suggests other keywords or keyword phrases to target these other purchased offerings.


In some embodiments, system 100 includes an advertising portal communication component 140 which is used to communicate with advertising portals 185 of online advertising systems 180. These online advertising systems offer the search engines which consumers use to conduct online searches. In FIG. 2, N different advertising system (180-1 through 180-N) are represented. The communication component 140 sends, in some embodiments, the keyword phrases 121 (or alternately the keywords 111 in some embodiments) to at least one advertising portal 185 to initiate a process of purchasing the keyword phrase from the corresponding online advertising system 180.


In some embodiments, system 100 includes a cost analysis engine 160 which uses communication component 140 to communicate with multiple online advertising systems 180 in order to determine costs keyword phrases at each system. Cost analysis engine 160 can then use market share/search share metrics 161 to identify one or more of the most effective online marketing engines (online advertisement systems 180) for the keyword phrase. The advertising campaign can then target the identified marketing engines which are most effective. The targeted marketing engine suggestions, as well as keyword phrase suggestions, are then provided to a user via GUI component 115, and/or sent to the relevant online systems 180 to initiate purchase of keyword phrases.


In some embodiments, system 100 includes a evaluation engine 150 which uses communication component 140 to query bid costs from one or more online advertisement systems 180. Engine 150 then analyzes bid cost and position within listing or rank for each of multiple candidate keyword phrases to determine optimal bid-to-position tradeoffs. The optimal bid-to-position tradeoffs are then compared for each candidate keyword phrase to identify least expensive keywords for a particular position within listing or rank. These aspects of evaluation engine 150 are described further below in accordance with example embodiments.


As noted above, system 100 can also make keyword phrase suggestions based on previous search data, advertising engine data, and/or other aggregate data 132. This data can be used to expand the range of keywords. Examples of other such aggregate data include data indicative of: (1) people who searched for X (product or service) also searched for Y (e.g., a form of basket analysis); (2) the number of searches performed for given keywords or keyword phrases; (3) the number of listings for a given keyword or keyword phrase. Other search data can be used as well by linguistic analysis engine 120 or by other components of system 100 to both expand the keywords and to determine the most effective keywords.


In some embodiments, system 100 is configured to utilize the concept of a search tail to identify keyword phrases that might be cheaper than broader terms, yet just as likely to be searched on. For example, evaluation engine 150 and/or cost analysis engine 160 can be configured to provide such functionality. Generally, broad keywords such as “lawyer” or “bicycle” tend to cost more than narrower keyword phrases. Yet, consumers searching for a specific item to buy tend to use more specific keyword combinations or phrases. For example, someone involved in an automobile accident may be more likely to search using the keyword phrase “auto accident lawyer” than they are to search using the broader keyword “lawyer”. Since the narrower keyword phrase is also frequently less expensive, system 100 capitalizes on this fact and targets the search tail of a search power curve.


Referring to FIG. 3-1, shown is an example of a chart which illustrates on one axis the clicks or the click through rates (CTRs) for a number of keywords or keyword phrases for one example search engine provider. On the second axis, the chart illustrates an example of the cost for the same keywords or keyword phrases as charged by the example search engine provider. As can be seen, a keyword represented at 187 has the highest number of clicks or CTR, but also costs significantly more than other keywords or keyword phrases. In contrast, another keyword or keyword phrase represented at 188 has a lower number of clicks or CTR, but also has a significantly lower cost. Keywords or keyword phrases such as shown at 188 are generally know as being part of the search tail 189.


In some disclosed embodiments, system 100 in configured, for example via configuration of either of engines 150 and 160, to analyze the search tail 189 for words related to an identified target offering. The words can be synonyms related to the target offering, multiple word phrases related to the target offering, etc. System 100 identifies keywords or keyword phrases which have a reduction in cost relative to most expensive keywords (e.g., keyword corresponding to 187) which outpaces the reduction in clicks or CTR relative to the most expensive keywords. For example, consider the case where a target offering is a type of shoes. Using a power curve or chart 186, or a function describing the power curve or chart, system 100 might identify that keyword “shoes” receives twice as many clicks in response to search engine queries as the keyword “boots”, but that the cost of purchasing the keyword “shoes” is four times higher than the cost of purchasing the keyword “boots”. In another example, the cost of purchasing the keyword “shoes” might be eight times higher than the cost of purchasing keyword phrases such as “running shoes” or “hiking boots”, with these phrases or keywords having been identified or generated by linguistic analysis engine 120 in response to the keywords generated by statistical analysis engine 110.


System 100 analyzes the power curve 186, and particularly the search tail 189, to identify these more cost effective words or phrases, and recommends them to the user. With the reduction in cost of purchasing some keywords or keyword phrases, additional keywords or keyword phrases can be purchased for the same advertising budget as would have been required to purchase the more expensive keywords 111. In addition to reducing the cost of purchasing keywords, as has been noted the use of the less expensive keyword phrases is often in accordance with users actual search habits—e.g., searching using phrases instead of individual keywords. This can in turn result in a more effective search, for much less cost. Further, in some instances, users searching under more specific keyword phrases (e.g., “Trek mountain bikes”) are more likely to ultimately purchase items than are those who conduct more general searches (e.g., “bicycle”). This further aids in the marketing optimization process.


As a more particular example of one embodiment of the process of identifying keywords, consider that for a targeted offering such as bicycles, the corpus of business data 105 is used to identify keywords via a statistical analysis. For sake of illustration, assume that the targeted offering was based on the largest numbers of inventory items, for example 100 bicycles, and “trail bikes” and “mountain bikes” were the most common classifying words used to describe this portion of the inventory. The statistical analysis might find that the terms “bicycle”, “mountain” and “trail” would be the most common (in terms of frequency) terms.


Using these keyword candidates 111 based on frequency in the corpus, the linguistic analysis on those terms is used to identify terms that better describe the inventory. This linguistic analysis can be conducted using database 125 and/or database 130, as well as prior search data 122 indicative of consumer search behavior. For this example, where the statistical analysis might have ended up with the terms “bicycle”, “mountain” and “trail”, the logical combinations based on linguistic analysis might be “trail bicycles” and “mountain bicycles”, as they better describe the bicycle. As can be determined using the above described techniques, engines such as cost analysis engine 160 can identify (for example using the search keyword power curve or chart 186 to target tail 189) whether these keyword phrases are less expensive than the broader, but sometimes less (or no more) effective keywords such as “bicycle”. Some disclosed embodiments take advantage of this inversion between the most expensive words, and the actual search phrases used by searchers. Even in the broader keywords are more effective, system 100 takes advantage of the fact that the pricing for the broadest keywords is often disproportionately higher than the pricing of keywords or keyword phrases in the search tail, relative to the proportional effectiveness of the keywords.


Referring now to FIG. 3-2, shown is a representation of a GUI 190 of a search engine. As shown in FIG. 3-2, a keyword or keyword phrase 191 is input by a user into a text input box 192. After search button 193 is selected or clicked on, a ranked list 194 of search results are returned in a search pane. Also returned is a ranked list 195 of sponsored links in another search pane. The sponsored links correspond to websites of sellers who have purchased keywords for marketing their offerings. Other sponsored links areas can also be included on the GUI 190, for example, above ranked list 194 of search results.


Generally speaking, the more an online merchant pays for particular keywords or keyword phrases, the higher the merchants link will appear in the ranked list of sponsored links. However, it has been found that users of search engines often don't click on the links at the top of the list, but rather they frequently click on links more toward the center of the list 195. Therefore, in many instances, the premium keyword prices paid in order to be at the top of the ranked list 195 are not justified.


As discussed above, evaluation engine 150 queries bid costs from one or more online advertisement systems 180. Engine 150 then analyzes bid cost and position within listing or rank for each of multiple candidate keyword phrases to determine optimal bid-to-position tradeoffs. The optimal bid-to-position tradeoffs are then compared for each candidate keyword phrase to identify least expensive keywords for a particular position within listing or rank. In identifying or determining bid optimization, the merchant's historical online marketing or sales data 151 is used to determine if there has been, for this particular user, a proportional increase in clicks or CTR for increases in bids (placing the merchant's sponsored link higher in list 195). For example, the past marketing data, which can be obtained from business accounting systems or other business applications or systems 152, can identify whether the twenty-five percent increase in keyword costs purchased in a past month resulted in a proportionately increased number of clicks or CTR. Engine 150 can then optimize the keyword bid process. If proportionally higher CTRs or higher numbers of clicks are achieved through a higher bid (cost) for keywords or keyword phrases, then engine 150 can recommend such higher bids as recommended course of action. If not, then engine 150 recommends, in some embodiments, lower bids which would secure placement of the merchant's link in list 195, but not at the top of the list. For example, if engine 150 determines that the difference in costs (costs provided by online ad systems 180) between the first bid for the keyword or keyword phrase and the fifth bid for the same keyword or keyword phrase is sixty percent lower, but the click through between the two positions is less than sixty percent, engine 150 can select the fifth bid position of sponsored links to recommend to the merchant.


Referring now to FIG. 4-1, shown is a flow diagram 200 illustrating an embodiment of a method 200 of conducting an online advertising and marketing campaign. The method includes a step 202 of selecting one of a plurality of business rules to use in targeting product or service offerings in the campaign. Then, at step 204, the method includes running the selected business rule against the business database (e.g., database 105) to identify at least one target offering candidate. The database can be, for example, an accounting application database. The at least one target offering candidate can then be recommended to a user, as shown at step 206.


Referring now to FIG. 4-2, shown is a flow diagram illustrating a more particular method embodiment 210 including steps 206 from method 200 shown in FIG. 4-1. In method 210, after step 204 described above, at step 220, the method includes obtaining business data corresponding to the identified offerings. Examples of business data were discussed above, but disclosed embodiments are not limited to any particular type of business data. After obtaining the business data, the method includes step 230 of performing a statistical analysis on the business data to determine keywords. As noted above, one example type of statistical analysis identifies keyword candidate terms as a function of occurrence frequencies of the terms in the business data. Then, at step 240, the method includes providing keyword suggestions based upon the keywords determined from the statistical analysis. Providing the keyword suggestions includes, in some embodiments, displaying the keyword suggestions to a user for acceptance, modification or rejection. Steps 220, 230 and 240 together form one more particular embodiment of previously described step 206. The method can then optionally include step 250 of sending the keywords to an advertising system to initiate purchase of the keywords.


Referring to FIG. 4-3, shown is a flow diagram illustrating an embodiment of a method 300 which is similar to method 210, but which includes an additional step 310 before providing the keyword suggestions. In method 300, after the step 230 of performing the statistical analysis to determine keywords from the business data, a linguistic analysis is performed on the keywords determined from the statistical analysis in order to identify one or more keyword phrases as described above. Then, step 240 of providing the keyword suggestions based upon the keywords determined from the statistical analysis includes providing one or more identified keyword phrases.


Referring next to FIG. 4-4, shown is a further step to method embodiment 300. As illustrated, step 320 includes performing a basket analysis on the business data as a function of the keyword(s) or keyword phrase(s), to identify further keywords or keyword phrases. The basket analysis step was described in greater detail previously.


Referring next to FIG. 4-5, shown is an embodiment of selecting step 202, shown in previous flow diagrams, in which the business rules are selected from a menu 335 (represented in FIG. 4-6) which displays the plurality of business rules.


Referring now to FIG. 4-7, shown are additional steps to those shown in method 300 (FIG. 3) which can be included in some embodiments. In these embodiments, the step 240 includes providing a plurality of keyword phrases. The method shown in FIG. 4-7 then includes the step 405 of analyzing bid cost and position within listing or rank for each of the plurality of keyword phrases to determine optimal bid-to-position tradeoffs for each. Then, at step 410, the method includes comparing optimal bid-to-position tradeoffs for each of the plurality of keyword phrases to identify least expensive keywords for a particular position within listing or rank.


Referring next to FIG. 4-8, shown are additional steps to those shown in either of methods 210 or 300 which can be included in some embodiments. At step 420, the method is shown to include determining costs of same or similar keywords among different online marketing engines. Then, at step 425, these method embodiments include using market share/search share metrics to identify at least one most effective online marketing engine for the same or similar keywords.


Referring now to FIGS. 5-1 through 5-9, shown are screens of a GUI 500 which can be generated by GUI component 115 for display on a display device to initiate and guide the above-described processes and functions. The particular GUI 500 shown in FIGS. 5-1 through 5-7 is provided for example purposes only, and does not limit the disclosed embodiments to use with any particular GUI, as any of a large number of GUI designs could be used with the disclosed concepts. As shown in FIG. 5-1, the GUI 500 includes a first screen 501 which presents an “Online Sales” button 502. When selected by a user, the button 502 results in the generation of buttons corresponding to different advertising functions. In one example embodiment, these buttons include a “Create Ad Campaign” button 504. Selection of button 504 results in the display of the screen of GUI 500 shown in FIG. 5-2.



FIG. 5-2 illustrates screen 510 of GUI 500 which results from the selection of button 504 on screen 501. Shown on screen 510 are a number of user selectable areas or buttons for controlling different aspects of a process of creating a new advertising campaign. For example, button 511 allows the user to select the language and region to market. Button 512 begins the particular processes of generating and selecting keywords and setting a campaign budget. Button 513 allows the user to preview the campaign and submit the keywords to the search engines (i.e., online ad systems 180) for bid or purchase. Selecting button 512 results in screen 520 shown in FIG. 5-3 being displayed.


Referring now to FIG. 5-3, shown is screen 520 of GUI 500. Screen 520 includes user inputs 521 for defining the target website address, for naming the ad or link, and for defining the text to be displayed in the ad in conjunction with the link. Using these inputs, a user creating an ad campaign can quickly set up the information for their advertisement. A preview of the ad is displayed in preview pane 522. Screen 520 also includes inputs 523 for specifying the location of customers to be targeted.


Referring now to FIG. 5-4, shown is screen 530 of GUI 500. Screen 530 is used to receive input criteria from the user for use in generating keywords, for inputting keywords directly from the user, for displaying generated keywords in conjunction with cost and click data for the keywords at several different search engines, and for selecting keywords. Shown at 531 is an input control where the user can select what source(s) of information the keywords will be based on. In the illustrated example, the keywords are to be based on an existing product database (e.g., database(s) 105). Input control 532 allows the user to select a criteria to use in generating the keyword suggestions. In the illustrated example, the criteria is to maximize profit margin (select most profitable items as basis of the ad campaign). Other example criteria which could be selected at input control 532 include reduction of highest inventory items, reduction of items which are perishable, seasonal or which have fast rates of price decay, maximization on return on investment (ROI), etc. Once these criteria are selected, button 533 can be used to generate keyword suggestions, which are illustrated in display pane 535. Other user specified keywords can also be added to the keyword list in pane 535 using input text box 534. Within display pane 535, each keyword or keyword phrase generated using the statistical analysis and linguistic analysis, as well as any user specified keywords or keyword phrases, are displayed with selected information. In this example, the selected information includes cost or price information (e.g., cost per click), with click information (e.g., total number of clicks in a given period of time or CTR based on historical search engine data), and with any other desired data such as the conversion rate. In this example, the data is displayed for each keyword or keyword phrase at each of multiple different search engines. Using input controls 537, the user can select keywords or keyword phrases from pane 535 to be added to a selected keywords list 536. The user can also remove keywords from list 536 using input controls 537.


An advanced options input button 538 is also provided on screen 530. Selection of advance options input button 538 results in an advanced options dialog box 540 being displayed as shown in FIG. 5-5. Dialog box 540 includes controls for specifying certain selectable information. For example, input 542 allows the user to select the maximum number of keywords or keyword phrases to generate. Inputs 544 are used to change the data displayed in pane 535 in conjunction with the generated keywords and keyword phrases. Inputs 546 allow the user to specify which search engines to use in generating the data to be displayed in pane 535.


Referring now to FIG. 5-6, shown is a screen 550 of GUI 500 which allows the user to define budget parameters. For example, for selected keywords or keyword phrases, using inputs 552 and 553, the user can select a maximum budget amount for a set period of time. For instance, input 552 indicates that the budget amount of $30.00 indicated at input 553 is a daily maximum which should not be exceeded. Other time periods such as weekly maximums, monthly maximums, etc could alternatively be specified. Inputs 554 and 555 are used to select campaign begin and end dates, respectively. Finally, using inputs 556, the budget can be apportioned by percentage to multiple different search engines. Screen 560 of GUI 500, which is shown in FIG. 5-7, can then be displayed to the user to provide a summary of the campaign which has been developed. In this example, screen 560 illustrates a projected monthly click rate and a project conversion rate. Other campaign details could also, or alternatively, be displayed for summarizing.



FIGS. 5-8 and 5-9 illustrate screens 570 and 580 of GUI 500. Using screen 570, a user can track or manage existing campaigns, for example such as the ones created as described above. Screen 580 then illustrates campaign performance data to aid in the tracking.



FIG. 6 illustrates an example of a suitable computing system environment 600 on which the concepts herein described may be implemented. The computing system environment 600 is again only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality of the description below. Neither should the computing environment 600 be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary operating environment 600.


In addition to the examples herein provided, other well known computing systems, environments, and/or configurations may be suitable for use with concepts herein described. Such systems include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.


The concepts herein described may be embodied in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Those skilled in the art can implement the description and/or figures herein as computer-executable instructions, which can be embodied on any form of computer readable media discussed below.


The concepts herein described may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both locale and remote computer storage media including memory storage devices.


With reference to FIG. 6, an exemplary system includes a general purpose computing device in the form of a computer 610. Components of computer 610 may include, but are not limited to, a processing unit 620, a system memory 630, and a system bus 621 that couples various system components including the system memory to the processing unit 620. The system bus 621 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a locale bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) locale bus, and Peripheral Component Interconnect (PCI) bus also known as Mezzanine bus.


Computer 610 typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed by computer 610 and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer readable media may comprise computer storage 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 computer 600.


The system memory 630 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 631 and random access memory (RAM) 632. A basic input/output system 633 (BIOS), containing the basic routines that help to transfer information between elements within computer 610, such as during start-up, is typically stored in ROM 631. RAM 632 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 620. By way o example, and not limitation, FIG. 6 illustrates operating system 634, application programs 635 (for example email and other client programs and email server software), other program modules 636, and program data 637.


The computer 610 may also include other removable/non-removable volatile/nonvolatile computer storage media. By way of example only, FIG. 6 illustrates a hard disk drive 641 that reads from or writes to non-removable, nonvolatile magnetic media, a magnetic disk drive 651 that reads from or writes to a removable, nonvolatile magnetic disk 652, and an optical disk drive 655 that reads from or writes to a removable, nonvolatile optical disk 656 such as a CD ROM or other optical media. Other removable/non-removable, volatile/nonvolatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like. The hard disk drive 641 is typically connected to the system bus 621 through a non-removable memory interface such as interface 640, and magnetic disk drive 651 and optical disk drive 655 are typically connected to the system bus 621 by a removable memory interface, such as interface 650.


The drives and their associated computer storage media discussed above and illustrated in FIG. 6, provide storage of computer readable instructions, data structures, program modules and other data for the computer 610. In FIG. 6, for example, hard disk drive 641 is illustrated as storing operating system 644, application programs 645, other program modules 646, and program data 647. Note that these components can either be the same as or different from operating system 634, application programs 635, other program modules 636, and program data 637. Operating system 644, application programs 645, other program modules 646, and program data 647 are given different numbers here to illustrate that, at a minimum, they are different copies.


A user may enter commands and information into the computer 610 through input devices such as a keyboard 662, a microphone 663, and a pointing device 661, such as a mouse, trackball or touch pad. Other input devices (not shown) may include a scanner or the like. These and other input devices are often connected to the processing unit 620 through a user input interface 660 that is coupled to the system bus, but may be connected by other interface and bus structures, such as a parallel port or a universal serial bus (USB). A monitor 691 or other type of display device is also connected to the system bus 621 via an interface, such as a video interface 690.


The computer 610 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 680. The remote computer 680 may be a personal computer, a hand-held device, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 610. The logical connections depicted in FIG. 6 include a locale area network (LAN) 671 and a wide area network (WAN) 673, but may also include other networks. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets and the Internet.


When used in a LAN networking environment, the computer 610 is connected to the LAN 671 through a network interface or adapter 670. When used in a WAN networking environment, the computer 610 typically includes a modem 672 or other means for establishing communications over the WAN 673, such as the Internet. The modem 672, which may be internal or external, may be connected to the system bus 621 via the user-input interface 660, or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer 610, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation, FIG. 6 illustrates remote application programs 685 as residing on remote computer 680. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.


It should be noted that the concepts herein described can be carried out on a computer system such as that described with respect to FIG. 6, and FIG. 6 should be interpreted as being configured to carry out one or more of these various concepts. However, other suitable systems include a server, a computer devoted to message handling, or a distributed system in which different portions of the concepts are carried out on different parts of the distributed computing system.


Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.

Claims
  • 1. A computer-implemented method of conducting an online advertising and marketing campaign, the method comprising: selecting one of a plurality of business rules to use in targeting product or service offerings in the online advertising and marketing campaign;running the selected business rule against a business database to identify at least one target offering candidate; andrecommending the at least one identified target offering candidate to a user.
  • 2. The computer-implemented method of claim 1, wherein running the selected business rule against the business database to identify the at least one target offering candidate further comprises running the selected business rule on data of an accounting application to identify the at least one target offering candidate.
  • 3. The computer-implemented method of claim 1, wherein recommending the at least one identified target offering candidate to the user further comprises: obtaining business data corresponding to the at least one identified target offering;performing a statistical analysis on the business data to determine keywords from the business data; andproviding keyword suggestions based upon the keywords determined from the statistical analysis.
  • 4. The computer-implemented method of claim 3, and after the step of performing the statistical analysis to determine keywords from the business data, further comprising: performing a linguistic analysis on the keywords determined from the statistical analysis to identify at least one keyword or keyword phrase;wherein the step of providing the keyword suggestions based upon the keywords determined from the statistical analysis comprises providing the at least one identified keyword or keyword phrase.
  • 5. The computer-implemented method of claim 4, and further comprising performing a basket analysis on the business data, as a function of the at least one keyword or keyword phrase, to identify further keywords or keyword phrases.
  • 6. The computer-implemented method of claim 1, wherein selecting the one of the plurality of business rules to use in targeting offerings in the online advertising and marketing campaign further comprises selecting the one of the plurality of business rules from a menu displaying the plurality of business rules.
  • 7. The computer-implemented method of claim 6, wherein selecting the one of the plurality of business rules to use in targeting offerings in the online advertising and marketing campaign further comprises selecting a profit margin maximization rule.
  • 8. The computer-implemented method of claim 7, wherein selecting the one of the plurality of business rules to use in targeting offerings in the online advertising and marketing campaign further comprises selecting an inventory management rule.
  • 9. The computer-implemented method of claim 8, wherein selecting the inventory management rule further comprises selecting an inventory minimization rule.
  • 10. The computer-implemented method of claim 8, wherein selecting the inventory management rule further comprises selecting an excessive inventory reduction rule.
  • 11. The computer-implemented method of claim 8, wherein selecting the inventory management rule further comprises selecting an inventory seasonality/perishability rule.
  • 12. The computer-implemented method of claim 7, wherein selecting the one of the plurality of business rules to use in targeting offerings in the online advertising and marketing campaign further comprises selecting a sales trend analyzing rule.
  • 13. The computer-implemented method of claim 7, wherein selecting the one of the plurality of business rules to use in targeting offerings in the online advertising and marketing campaign further comprises selecting a past online advertising and marketing campaign analysis rule.
  • 14. The computer-implemented method of claim 13, wherein selecting the past campaign analysis rule further comprises selecting a return-on-investment (ROI) analyzing rule which analyzes past advertising and marketing campaigns.
  • 15. An online advertising or marketing campaign system for assisting a business in developing or managing online campaigns, the system comprising: a business database containing business data corresponding to a plurality of products or services; anda business rules engine configured to run a selected business rule against the business data to identify at least one target offering candidate and to provide information related to the at least one identified target offering candidate as an output.
  • 16. The online advertising or marketing campaign system of claim 15, and further comprising: a statistical analysis engine configured to perform statistical analysis on the business data to determine keywords for the at least one identified target offering candidate; anda graphical user interface component which is configured to display keyword suggestions on a display device to a user based upon the keywords determined from the statistical analysis.
  • 17. The online advertising or marketing campaign system of claim 16, and further comprising a linguistic analysis engine configured to perform linguistic analysis on the keywords determined by the statistical analysis engine to identify at least one keyword phrase, the graphical user interface component displaying the at least one keyword phrase as the keyword suggestions.
  • 18. The online advertising or marketing campaign system of claim 17, and further comprising an advertising portal communication component configured to communicate with advertising portals of online advertising systems, the communication component configured to send the at least one identified keyword phrase to at least one advertising portal to purchase the at least one keyword phrase from corresponding online advertising systems.
  • 19. A business accounting system with online advertising and marketing campaign management capabilities, the business accounting system comprising: a business accounting database containing business data corresponding to a plurality of products or services; anda business rules engine configured to run a selected business rule against the business data to identify at least one target offering candidate and to provide information related to the at least one identified target offering candidate as an output to a user.
  • 20. The business accounting system of claim 19, and further comprising: a statistical analysis engine configured to perform statistical analysis on the business data to determine keywords for the at least one identified target offering candidate; anda graphical user interface component which is configured to display keyword suggestions on a display device to the user based upon the keywords determined from the statistical analysis.