DELIVERY OF INTERNET ADS

A system for delivering advertisements via the internet may include an index file having entries related to advertisements for delivery via the internet, an extraction engine for updating the index file entries in accordance with changes in a database of said advertisements, a matching engine for matching a keyword in a query string to a plurality of the index file entries, a ranking engine for selecting an advertisement, for inclusion in a search result set responsive to the query sting, in accordance with an estimated monetary yield related to one of the plurality of index file entries matching a keyword in the query string and a pricing engine for discounting a charge for that inclusion in accordance with an estimated monetary yield for another one of the plurality of index file entries.

Skip to: Description  ·  Claims  · Patent History  ·  Patent History
Description
CROSS REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. provisional application Ser. No. 60/721,311 filed Sep. 27, 2005 and Ser. No. 60/723,812 filed Oct. 5, 2005.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention is related to ad delivery systems for placing Internet advertising in response to queries from search engine sites.

2. Description of the Prior Art

Conventional ad delivery systems have had problems, for example, with slow response, pricing which discouraged higher bids and limited matching. What is needed is an improved ad delivery system which avoids or reduces the problems inherent in known systems.

SUMMARY OF THE INVENTION

In a first aspect, a method for delivering advertisements via the Internet may include extracting, from a database of advertisements, an index file alphabetized by keyword, each entry in the index file including a bid price for placement of the related advertisement, extracting a table of contents of the index file, each entry in the table of contents for a keyword pointing to a start location of a first entry related to that keyword in the index file, matching a keyword in a query string to advertisements in the database by searching the table of contents to locate the start location of that keyword in the index and matching that keyword to index file entries until a next indexed keyword is encountered, ranking advertisements matching the keyword at least in part on an estimated yield for each such advertisement, pricing the highest ranked advertisement at a price lower than the bid price for that advertisement that retains the ranking for that advertisement for that keyword and responding to the query string with a search result set including a link to the highest ranked advertisement for the keyword.

Each entry in the index file may include a set of preselected keywords associated with the advertisement and the keyword in the query string may be matched with one of keywords in the set of preselected keywords in each entry in the index from the start location to the next indexed keyword. Each entry in the index file may include a text copy of the advertisement and the keyword may be matched with the text copy in each entry in the index from the start location to the next indexed keyword. Each entry in the index file may include a set of preselected keywords associated with the advertisement, a text copy of the advertisement and a selected type of matching algorithm and the keyword in the query string may be matched with one of keywords in the set of preselected keywords in each entry in the index from the start location to the next indexed keyword if a second, broader type of matching algorithm is selected. Each entry in the index file may include a negative keyword and the negative keyword in the index file entry may be matched with another keyword in the query string to prevent a match of the keyword in that query string with that index file entry. Each entry in the index file may include click through rate data for each advertisement and the estimated yield may be determined as a product of the bid price and the click through rate data for each such matching entry.

Further, the search result set may include links to a plurality of other ranked advertisements for the keyword. Each entry in the index file may include a URL linking to the advertisement used a link in the result set to that advertisement. The search result set may be filtered to remove links to entries, based on the URL and/or based on a domain associated with the query string and/or to links to entries having bid prices and/or click through rates below predetermined minimums, before responding.

Further, the index and table of content files may be rebuilt on a daily basis during time periods of relatively low usage and/or may be updated more frequently than the index and table of content files are rebuilt. The index and table of content files may be incrementally updated by adding data to the index and table of contents and marking entries in the TOC for deletion. The table of contents may be stored in RAM. A database of advertisements and click through rates, for each advertisement in the database, may be maintained from which the index file and table of contents may be extracted.

In another aspect, a system for delivering advertisements via the internet may include an index file having entries related to advertisements for delivery via the internet, an extraction engine for updating the index file entries in accordance with changes in a database of said advertisements, a matching engine for matching a keyword in a query string to a plurality of the index file entries, a ranking engine for selecting an advertisement, for inclusion in a search result set responsive to the query string, in accordance with an estimated monetary yield related to one of the plurality of index file entries matching a keyword in the query string and a pricing engine for discounting a charge for that inclusion in accordance with an estimated monetary yield for another one of the plurality of index file entries.

The index file may include an estimated monetary yield for inclusion of the advertisement associated with each index file entry in a search result set. The estimated monetary yield in each index file entry is based in part on an agreed maximum charge for each selection of the related advertisement from a search result set and/or a rate at which the related advertisement has been selected when included in search result sets. The estimated monetary yield may be based on the product of the agreed maximum charge and the click through rate.

The extraction engine may update each index file entry in accordance with data related to selection of the related advertisement when included in search result sets. A reporting system may be included for monitoring a rate at which each advertisement has been selected when included in search result sets and the extraction engine may responsive to the reporting system for updating the index file. The ranking engine may selects the advertisement in accordance with the index file entry having the highest estimated monetary yield and the pricing engine may discount the charge for inclusion in accordance with the entry having the next highest estimated monetary yield.

A table of contents file having TOC entries related to entries in the index file may be included. A first memory for storing the index file and a second memory, having a faster time to retrieve data than the first memory, may be included for storing the table of contents file. The extraction engine may periodically rebuild the index and table of content files and may update the index and table of content files more frequently than they are rebuilt. A first selectable matching algorithm for matching keywords in the query string to keywords stored in each of the index file entries, and a second selectable matching algorithm for matching keywords in the query string to words in each related advertisement, may be provided. The index file entries may include a selection between the first and second matching algorithms. The matching engine may not match a keyword in the query string with an otherwise matching one of the index file entries when the matching file does match a specified negative keyword in that one of the index file entries with a keyword in the query string.

A database of advertisements and click through rates for each advertisement in the database may be included wherein the extraction engine updates the index file in accordance with changes in the database.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram overview of an advertisement delivery system.

FIG. 2 is a block diagram of an alternate, more detailed embodiment of an ad delivery system.

FIG. 3 is a flow chart of a normalizing engine.

DETAILED DISCLOSURE OF THE PREFERRED EMBODIMENT(S)

An ad delivery system may include a database of ads and an ad delivery engine which may include an extraction engine to extract the ads into an index data file, and a table of contents or TOC, may match the ads to a query string from a search engine site using different matching criteria while excluding some otherwise matching ads, may rank the matched ads based on a potential yield such as maximum bid or cost per click, adjusted for example by an actual or observed click-thru rate, may price the ads on a different basis than ranking, for example, by discounting the ranking basis to the minimum which preserves the ranking, and/or may filter the ads based on predetermined criteria.

The extraction engine may provide a full rebuild of the index, and TOC, on a periodic basis such as once per day, while providing an update, by indexing only data new since the last full rebuild, on a more frequent basis. The TOC may be saved in a relatively fast memory, such as RAM memory, while the index because of its size may be saved in a relatively slower memory such as on disk. The TOC, which is alphabetized in accordance with keywords, may contain a pointer to the location of the first byte related to each set of alphabetized keywords, to reduce the time required to search through the entries in the index for each group of keyword entries. The terms “keyword” or “keywords” are used herein to denote both one or more individual keywords, one or more key phrases, or groups of words, and combinations of one or more keywords with one or more key phrases

Referring now to FIG. 1, system 10 for high-performance delivery of Internet advertisements is disclosed which may include an incrementally updated engine 12 for extracting, indexing, matching, ranking, pricing, and filtering advertisements. Engine 12 may operate by extracting advertisements from ad database 14 and building an index and/or a table of contents (or TOC) for the index. This index can be periodically rebuilt, and may also be incrementally updated between rebuilds. A TOC for the index may also be rebuilt each time and includes a pointer to the location in the index. The index is preferably alphabetized based on keywords so that all ads related to a specific keyword may be found beginning at a particular start location in the index. The TOC, if built, would then also be alphabetized by keyword and provide the start location in the index for all entries associated with a particular keyword or key phrase.

While in operation, query handler 16 receives a query from an Internet website such as Partner Site 16 and returns a list of advertisements. The query is keyword matched to advertisements by one of multiple selected matching algorithms. Matching advertisements may then be rank ordered by yield, e.g. financial yield. Prices may then be set for placement of each matching advertisement. Some advertisements may be filtered out of the result set. Ultimately, Delivery engine 12 returns a result set or list for the query, each entry of which may include a) creative material such as the content of the ad, b) price information, and c) one or more URL (or uniform resource locators) for each advertisement.

The operation of delivery engine 12 can be subdivided into five elements: (1) indexing, (2) matching, (3) ranking, (4) pricing, and (5) filtering.

Delivery engine 12 makes use of a technique called normalization. A text sample has been normalized if it has been stemmed, stopped, and sorted. Stemming refers to reducing the word or phrase to its stem (thus plurals become singular, for example). “Stop” words (i.e., words that have been identified to be detrimental to relevance because they are grammatical indicators or otherwise excessively common or inappropriate) are then removed. Finally, multiple word and phrase elements are sorted alphabetically.

    • (1) Indexing. In order to build its index, delivery engine 12 may take a complete extract of advertisements from advertisement database 14, which preferably may be a relational database. The extract preferably includes entries for ads in the form of creative material, advertiser web site URL, one or more keywords, MaxCPC, observed click-through rate, choice of matching algorithm, and one or more of various advertisement options. MaxCPC may be the maximum cost-per-click price that the advertiser is willing to pay for each placement of the ad. Advertisement database 14 may have been populated through some source of advertisements, such as ad purchasing system 20, in which potential advertisers may purchase advertisements, that is, purchase placement of their advertisements.
      • Delivery engine 12 reads advertisement data extracted from database 14 and saves it in an ad data file or index. It may also save several fields of each record in the extract to a TOC (table of contents) file. These fields may include each keyword, the byte location of the start of its record in the ad data or index file, pricing fields, and filtering fields. Incremental updates may occur on a periodic batch basis; inserts, updates and deletes may be processed by adding new data to the ad data file (e.g. inserts and updates) and by marking items in the TOC File (e.g. deletes).
    • (2) Matching. Delivery engine 12 can match queries from query handler 16 to advertisements using one or more matching algorithms such as the SmartMatch or BroadMatch algorithm described below. A query consists of a query string of one or more words, as well as flags indicating the source of the query, such as partner site 18. Partner site 18 may have a distribution arrangement with the proprietor of delivery engine 12 and may receive search requests from its clients which it forwards to sources of search results such as delivery engine 12. The query string may also include other details of the original request made to partner site 18. Delivery engine 12 constructs a result set of matching advertisements, and or other query results which are then provided to Query Handler 16 for use by partner site 18 in responding to search requests made to site 18 by its clients.
      • a. A so-called SmartMatch algorithm may be applied to keywords that have been normalized at purchase time, that is, when the advertising placement was purchased through ad purchasing system 20. At query time, that is when a query is processed by query handler 16, the query may be normalized using identical rules to the rules used at purchase time. Exact matches between query and keywords are considered positive matches by the SmartMatch algorithm. In other words, an ad purchaser may be able to select the words in a query which cause the ad to be selected or matched.
      • b. A so-called BroadMatch algorithm matches for all keywords associated with the ad that are contained within the query. Thus, an advertisement associated with keyword “red bull” would be a positive match using the BroadMatch algorithm with a query of “red bull drink”. Advertisers may also specify negative keywords when using the BroadMatch option. “Negative keywords” are text strings which cause the match to fail when they are found in the query string, even if there is otherwise a match. Thus, an advertisement associated with keyword “red bull” could specify “soda” as a negative keyword so that the BroadMatch algorithm would not indicate a match with a query which included the phrase “red bull soda”. Matches are found by extracting known phrases from the normalized query. Each known phrase may be associated with one or more advertisements in the TOC File. All associated advertisements may be combined into one result set. Only the longest phrases may be considered because advertisements associated with sub phrases may already be combined into the longest phrases in the TOC File.
    • (3) Rank ordering. Delivery engine 12 may rank advertisements associated with keywords which have been matched to the incoming query from query handler 16. The rank ordering in the result set may be determined by the actual or projected yield to the proprietor of delivery engine 12. “Yield” in the system 10 may be defined as the product of the click-through rate with MaxCPC, that is, yield may be based on the amount of money to be paid by the advertiser for placement of an ad. The MaxCPC may be set by the advertiser at purchase time, e.g. in whatever ad purchasing system 20 which populates the advertisement database 14. The click-through rate may be determined by click tracking system 13, which may also perform web advertisement click-through and redirect operations, and which may update advertisement database 14 with such information for each advertisement.
    • (4) Pricing. Delivery engine 12 may set the price paid by each purchaser of ad space for space allotted to each advertisement in the result set. Prices may be limited to not exceed the MaxCPC. Prices may be discounted to the lowest price necessary to provide the optimal placement of the advertisement, e.g. the lowest price at which an ad may be placed without changing its ranking relative to other ads matching the same keywords. Ad placement may be subject to reserve prices (minimum or maximum price for certain keywords and/or distribution partners, such as partner site 16) and may then be eliminated from the result set if they do not meet the reserve. Under some circumstances, there may be additional discounts which are applied to prices before the result set is returned.
    • (5) Filtering. Advertisements in the result set may be filtered out, or otherwise treated specially, on the basis of a number of criteria, including minimum click-through rate, minimum price, advertiser's domain, or domain of the referring site.

Referring now to FIG. 2, in a preferred embodiment, a potential ad purchaser such as advertiser 24, may purchase placements for its advertisements for products or services from ad purchasing system 26. The advertisements may be retrievable from a specific URL, such as advertiser's web site 25. Ad purchasing system 26, and/or reporting system 28, stores data or causes data to be stored related to the advertisement purchase and estimated or actual click-through rates determined thereafter, in one or more related databases such as database of ads and click thru rates 30. Database 30 is typically a relational database of advertisements with fields for data in the form of creative material, such as the advertisement content at a specific URL, a reference to a related URL e.g. for advertiser's web site 25, one or more keywords or key phrases (hereinafter “keywords”) related to the content of the ad, the purchaser's bid such as the maximum cost per click (MaxCPC) that ad purchaser is willing to pay for placement of the associated advertisement, an estimated or other click-through rate (preferably an observed click-thru rate after the advertisement has been purchased and distributed), the purchaser's choice of matching algorithm, and one or more various other advertisement options.

In operation, search engine user 32 may be connected to search engine site 34 (e.g. partner site 18 shown in FIG. 1) requesting a search, such as a search for “car washes”. Search engine site 34 may contact query handler 36 (as well as other ad delivery system query inputs) to determine if search results can be provided. In response, query handler 36 provides a query string to ad delivery engine 38 which obtains a filtered and ranked list of matching advertisements based on data in database 30 and returns that list to search engine site 34. Search engine site 34 may combine the returned list with other lists of search results and deliver the combined list as search results to search engine user 32.

User 32 may select, or click on, one of the entries in the list provided in response to the search user's search request and be transparently redirected to another site, such as redirect site 37, which directs user 32 to advertiser's web site 25.

Reporting system 28, or a similar mechanism for example associated with redirect site 37, may then detect the selection made by user 32 when user 32 clicks on the particular advertisement on the list of search results provided to user 32, or at least on the portion of that list provided via ad delivery engine 38, and records that action, e.g. for example as a click for which advertiser 24 will be charged and/or to determine a click through rate e.g. the percentage of the time that the specific URL is selected by a user when listed in the search results. Reporting system 28, or a similar mechanism, may then causes the click through rate to be stored in database 30 and associated therein with the advertisement to which it is related.

In operation, extraction engine 39 in ad delivery engine 38 may extract information from database 30 to fully and/or incrementally rebuild index 40 and TOC 42.

Preferably, extraction engine 39 performs full rebuilds of index 40 and/or TOC 42 on a regular basis, such as once per day. A full rebuild of index 40 may require a substantial amount of time to extract the data related to each advertisement in database 30 and therefore such rebuilds are typically done during time periods of relatively low usage, for example at midnight each day. Index 40 may be a simple, but potentially large data file but is, of course, much smaller than ad database 30. Index file 40 may be stored on disk, or other relatively slow memory compared to memory on which TOC 42 may be stored, because of its size.

Index 40 is preferably alphabetized in accordance with its keywords. For example, if one of the keywords for advertiser 24 is “car wash”, data related to the ad for advertiser 24 would be stored alphabetically in index 40 based on the keyword phrase “car wash”. If “car wash” is also a keyword phrase for another advertiser, the data for that other advertiser would preferably be stored in index 40 adjacent to the data for all other ads having the same keyword, such as the ad for advertiser 24. The benefit of this simple, alphabetized storage approach will be more apparent from the description below of index 40 and/or TOC 42.

A subset of the data stored in index 40 may also be stored in TOC 42, preferably including data related to the keywords, pricing, filtering fields (described below in greater detail) and observed click-through rates for each advertisement as well as a pointer to the location of that data in index 40. The pointer is preferably related to the location of first byte (or start byte) of data for the first stored advertisement data for the associated keyword or phrase stored in index 40. That is, the pointer in TOC 42, for the data related to all advertisements for which “car wash” is a keyword, would point to the start byte location in index 40 for the first listed advertisement for which “car wash” is a keyword. Thus, some data for all advertisements for which “car wash” is a keyword in index 40 can easily, and quickly, be found by TOC 42 by starting at the start byte location for the first listed advertisement for that keyword in index 40 and processing the data found thereafter until a new keyword is found. Thus, the ranking of all ads related to each particular keyword may easily be accomplished at one time because all such ads are listed together in index 40 which includes the location of each such ad in full ad database 30.

In addition, incremental updates may also be performed on a periodic basis more often than the full rebuilds of index 40. For example, if the full rebuilds of index 40 and/or TOC 42 are performed daily at midnight, incremental rebuilds may be done on an hourly basis during the day. As a result of an incremental update, inserts, updates and deletes may be processed by adding new data to index 40 and TOC 42 for inserts and updates and by marking items in the TOC File for deletions.

One of the reasons for combining both full and incremental rebuilds and updates is that reliance on full rebuilds would limit the accuracy of index 40 and TOC 42 with regard to the then current state of database 30 and/or require more time for response to a query.

Reliance on a repetitively updated, but not often rebuilt, index 40 and TOC 42 may also limit the accuracy of index 40 and TOC 42 because an error, once it occurs, would be difficult or impossible to correct.

Preferably, TOC 42 may be used to provide faster access to index 40 and would therefore typically be stored in a faster memory, such as RAM, to speed up the processing by ad delivery system 38. In particular, locating the address of the first or start byte in index 40 for all entries for a particular keyword or phrase by searching in TOC 42 in RAM may be a very quick and time efficient process. By also storing some additional specific data in RAM TOC 42 for each advertisement, such as pricing or filtering data, the processing time requirements of other aspects of ad delivery engine 38 including ranking engine 54, pricing engine 56 and filter 58, may also be optimized. The processing time for matching engine 52, in addition to the preferably optimized time for locating the starting byte in index 40 for all entries for a particular keyword or phrase which are stored adjacent to each other, remains dependent on the speed of the memory in which index 40 is stored, for example, on a hard disk or other memory typically relatively slower than RAM.

Referring now also to FIG. 3, in normalizing engine 44, stem processor 46 reduces each word or phrase to its stem e.g. “car washes” becomes “car wash”. Thereafter, stop processor 48 removes words that have previously been identified to be detrimental to relevance such as excessively common words including “the”, “an” etc. as well as inappropriate words and/or grammatical indicators. Thereafter, multiple word and phrase elements are sorted alphabetically in sorter 50. The text input to normalizing engine 44 may be advertising content, and/or separately identified keywords and phrases, in database 30 and the normalized text may be applied to index 40 and/or TOC 42.

Similarly, the text applied to normalizing engine 44 may be a query string from query handler 36 and the normalized text may be applied to matching processor 52. A query consists of a query string of one or more words, as well as flags preferably indicating the distribution partner and other details of the original request.

Referring now again to FIG. 2, matching engine 52 may be used to construct a set of matching advertisements in database 30 in response to a query from query handler 36 in more than one way. In one embodiment, keywords normalized at the time of purchase by advertiser 24 may be matched to determine exact matches with normalized text from the query processed by query handler 36. In a preferred embodiment, both the advertisement keywords and the query string are normalized using the identical words to produce positive matches in processor.

Alternately, all keywords in the advertisement which are fully contained within the query may produce positive matches in matching engine 52 in order to produce a larger set of matching advertisements. Thus, using the broader matching approach, an advertisement associated with keyword “red bull” would be a positive match with a query for “red bull drink”. Advertiser 24 may indicate at the time of purchase which matching engine approach is to be used and that selection may be stored in database 30 and/or in index 40 or TOC 42.

Advertiser 24 may also specify negative keywords for use when using this broader approach in matching engine 52 in order to cause matches to fail. Negative keywords may be text strings, for example, which cause a match to fail when they are found in the query string, even if there would otherwise a match. For example, an advertiser using “Red Bull” as a keyword for drink product may specify a negative keyword of “dart boards” if “Red Bull” happens to also be a brand of dart boards and the advertiser does not want his advertisements to be delivered with search results for searches for “Red Bull Dart Boards”.

Each known phrase may be associated with one or more advertisements in the TOC File. All associated advertisements may be combined into one result set. Only the longest phrases may be considered because advertisements associated with sub phrases may already be combined into the longest phrases in the TOC File. The output of matching engine 52 may be considered a result set of matching advertisements.

Ranking engine 54 ranks the advertisements in the result set from matching engine 52 in an order related to the potential monetary yield to the service from whom the advertisement was purchased, typically the operator of ad purchasing system 26. The potential yield may be calculated as a function of the bid by advertiser 24 and the actual or estimated success of the advertisement in attracting users, such as user 32, when listed in the results provided by search engine site 34.

For the purposes of calculating the potential yield, the bid may preferably be in the form of the maximum cost per click (MaxCPC). MaxCPC may be considered to be a bid from advertiser 24 for the highest cost per click advertiser 24 has agreed to pay for placement of the advertisement for advertiser's web site 25. The advertisement's success in achieving placement for its adds may preferably be monitored in the form of an observed (or estimated or otherwise calculated) click-through rate which may be provided by reporting system 28 as determined for example from redirect site 37, as described in more detail below, or other systems performing related functions. Data related to the bid, or MaxCPC, and success, or click-through rate may conveniently be stored in database 30. The output of ranking engine 54 may be considered to be a result set of ranked, matching advertisements.

Pricing engine 56 operates on this result set to determine a price, that is, a price to be paid by a purchaser, such as advertiser 24, of each of the ranked and matched advertisements (such as the advertisement for advertiser's web site 25) in the result set from ranking engine 54 when that advertisement is selected for viewing by user 32. It is important to note that the price charged for placement of each advertisement may be below or up to the bid or MaxCPC set by advertiser 24 when the bid was placed or when later updated.

Advertisements may also be subject to reserve prices (minimum or maximum prices for certain keywords and/or for distribution partners) and may be eliminated from the result set if they do not meet such reserve prices. Under some circumstances there may be additional discounts which are applied to prices before the result set is returned.

Filter 58 may operate on the result set from pricing engine 56 to filter out advertisements on the basis of a number of criteria, such as a minimum click-through rate which may be set by ad purchasing system 26 or by search engine site 34, a minimum price, the internet domain of advertiser 24, or the domain of a referring site which may have referred advertiser 24 to ad purchasing system 26.

As an example of the operation of system 10, ad purchaser or advertiser 24 may be a business, such as Pete's Car Wash, which has created a web site 25 on which an advertisement for its car wash business is located. In order to promote its business, Pete's Car Wash contracts with ad purchasing system 26 to have web site 25 included in result sets provided to search engine users, such as user 32, from a search engine site such as site 34, when the words “car wash” are included in the search request e.g. the query string.

Search engine sites are web sites presenting one or more search features to their users. One of the ways these sites generate revenue is by displaying advertising as part of search results. Search engine sites, such as site 34, may have a relationship with one or more partner sites having ad delivery engines, such as ad delivery engine 38, via query handlers such as handler 36, to provide a ranked set of matching advertisements in response to a search engine user's search request forwarded by site 34. In this example, in response to a request from search engine site 34 for search results related to the keywords “car wash”, query handler 36 may provide a ranked set of advertisements related to car wash to search engine site 34 in the form of a set of redirection operations, for example to redirect site 37.

Each entry in this ranked set of matching advertisements may be selected by user 32 by clicking on that entry which may cause user 32 to be transparently sent to redirect site 37 which again redirects user 32, for example, to advertiser's web site 25. Redirect site 37 may also send data to reporting system 28, which may be part of redirect site 37, ad purchasing system 26 or otherwise be related to them, indicating which advertisements in data base 30 are displayed to user 32 and which, such as advertiser's web site 25, were selected by user 32 clicking so that an observed click-thru rate may be determined and entered into database 30 and/or advertiser 24 may be billed for the actual click through to his site.

After operation of matching engine 52, ranking engine 54 serves to rank or order the matching advertisements in accordance with the bid or MaxCPC arrangement between Pete's Car Wash and ad purchasing system 26. Advertiser 24 is not necessarily, however, required to pay the maximum cost per click rate originally bid.

In a preferred embodiment, Pete's Car Wash is ranked in accordance with the bid MaxCPC (adjusted for the observed click-through rate) but only required to pay just enough to get ranked above the nearest competitor's bid. This approach motivates advertisers, such as Pete's Car Wash, to bid a higher MaxCPC because that highest rate will only be charged if necessary to achieve a higher rank or order in the search results presented to user 32.

In pricing engine 56, pricing may be based on a discounted yield rank. Rank, as noted above, is based on potential financial yield to the operator of ad purchasing system 26. Pricing engine 56, however, may set actual pricing so that advertiser 24 is only required to pay the cost per click rate necessary to maintain the ranking of its ad determined by ranking engine 54.

In one example, Pete's maximum bid or MaxCPC may be $0.40 per click while his estimated or observed click-through rate may be 2%. Similarly, one of Pete's competitors for ranking, George, may have a maximum bid or MaxCPC of $0.50 per click but a click-through rate of only 1%. In conventional ad delivery systems, George may have been ranked higher in order over Pete because George's maximum bid is greater than Pete's. In a preferred embodiment as described above, ranking engine 54 may rank Pete's higher than George in the results list because Pete's potential yield is 0.40*0.02=0.08 while George's potential yield is only 0.50*0.01=0.05.

However, pricing engine 56 may operate to discount Pete's potential yield, even though the potential yield was used in determining Pete's rank, to determine the price that Pete's is required to pay for actual click-through selections by users. In the above example, the potential yield may be discounted to be just above the potential yield of Pete's competitor for ranking. Pete's may only be charged, for example by reporting system 28 or some other convenient system, $0.051 per click, that is, just enough to get ranked above the first lower ranked competitor, George, whose potential yield was $0.05 per click.

Claims

1. A system for delivering advertisements via the internet, comprising:

an index file having entries related to advertisements for delivery via the internet;
an extraction engine for updating the index file entries in accordance with changes in a database of said advertisements;
a matching engine for matching a keyword in a query string to a plurality of the index file entries;
a ranking engine for selecting an advertisement, for inclusion in a search result set responsive to the query string, in accordance with an estimated monetary yield related to one of the plurality of index file entries matching a keyword in the query string; and
a pricing engine for discounting a charge for that inclusion in accordance with an estimated monetary yield for another one of the plurality of index file entries.

2. The invention of claim 1 wherein the index file further comprises:

an estimated monetary yield for inclusion of the advertisement associated with each index file entry in a search result set.

3. The invention of claim 2 wherein the estimated monetary yield in each index file entry is based in part on an agreed maximum charge for each selection of the related advertisement from a search result set.

4. The invention of clam 2 wherein the estimated monetary yield in each index file entry is based in part on a rate at which the related advertisement has been selected when included in search result sets.

5. The invention of claim 2 wherein the estimated monetary yield in each index file entry is based on the product of an agreed maximum charge for each selection of the related advertisement and a rate at which the related advertisement has been selected when included in a search result set.

6. The invention of claim 2 wherein the extraction engine updates each index file entry in accordance with data related to selection of the related advertisement when included in search result sets.

7. The invention of claim 1 further comprising:

a reporting system for monitoring a rate at which each advertisement has been selected when included in search result sets,
wherein the extraction engine is responsive to the reporting system for updating the index file.

8. The invention of claim 1 wherein the ranking engine selects the advertisement in accordance with the index file entry having the highest estimated monetary yield.

9. The invention of claim 8 wherein the pricing engine discounts the charge for inclusion in accordance with the entry having the next highest estimated monetary yield.

10. The invention of claim 1 further comprising:

a table of contents file having TOC entries related to entries in the index file.

11. The invention of claim 10 further comprising:

a first memory for storing the index file; and
a second memory, having a faster time to retrieve data than the first memory, for storing the table of contents file.

12. The invention of claim 11 wherein the extraction engine periodically rebuilds the index and table of content files.

13. The invention of 12 wherein the extraction engine updates the index and table of content files more frequently than they are rebuilt.

14. The invention of claim 1 wherein the matching engine further comprises:

a first selectable matching algorithm for matching keywords in the query string to keywords stored in each of the index file entries.

15. The invention of claim 14 wherein the matching engine further comprises:

a second selectable matching algorithm for matching keywords in the query string to words in each related advertisement.

16. The invention of claim 15 wherein each of the index file entries includes a selection between the first and second matching algorithms.

17. The invention of claim 1 wherein the matching engine does not match a keyword in the query string with an otherwise matching one of the index file entries when the matching file does match a specified negative keyword in that one of the index file entries with a keyword in the query string.

18. The invention of claim 1 further comprising:

a database of advertisements and click through rates for each advertisement in the database, wherein the extraction engine updates the index file in accordance with changes in the database.
Patent History
Publication number: 20070214118
Type: Application
Filed: Sep 27, 2006
Publication Date: Sep 13, 2007
Inventors: Michael Schoen (Tiburon, CA), Bruce Martin (San Mateo, CA)
Application Number: 11/535,914
Classifications
Current U.S. Class: 707/3.000
International Classification: G06F 17/30 (20060101);