The process of purchasing and placing advertisements online (e.g. at the World Wide Web and other Internet-based media) generally mirrors the process used for placing advertisements with conventional television, radio, and print media. The conventional media placement flow begins with advertisers, who buy placement opportunities directly with publishers or indirectly through advertising networks representing groups of publishers. The advertisers may purchase the placement opportunities themselves or may work through advertising agencies. This simple flow has worked well for placing advertisements with television, radio, and print media, but it fails to use the bi-directional nature of the Internet and the real-time automation available via the computers attached to the Internet.
For example, with most Web site advertising, advertisements are provided by an advertising placement company into ad slots specified by the Web site owner. The Web site owner may require that no ads be provided for a business that competes with the Web site owner, but there is little other guidance for the ads that are placed. The advertising placement company can read each page on a site and try to select ads to appear with that page that are related to the subject matter of the page, but this is usually considered too labor intensive.
Placement of advertising and selection of competing advertisers for placement of advertising content could be made more efficient and achieve better results if the interactive, real-time nature of Internet communications could be exploited. Thus, there is a need for a mechanism that supports placement of advertising in real time using Internet communications. The present invention satisfies this need.
In accordance with the invention, content is selected for display at a user client device communicating over a network. The selection of content involves a document at a server computer that is requested by a client device, wherein at least one valuation is determined for supplemental content that will be supplied along with the requested document, such that the supplemental content is supplied from each of two or more supplemental content sources. A productivity score is generated for each of the supplemental content sources in accordance with the corresponding content valuation for the supplemental content source, the supplemental content source having the greatest productivity score is selected, and the document and supplemental content from the selected supplemental content source are provided for delivery to the requesting client device. The network over which communications between the server and client devices occurs can comprise an extended network, such as the Internet. The supplemental content can comprise material such as advertising or related information likely to be of interest to the user at the requesting client device. The supplemental content sources can comprise advertisers or brokers or the like. In this way, placement of supplemental content such as advertising, and selection of competing advertisers for placement of such supplemental content along with requested content, can be more efficiently performed and better results can be obtained by exploiting the interactive, real-time nature of Internet communications.
In one embodiment, the document requested by a client device comprises a Web page that is obtained from a network server device. In another aspect, the document content comprises keywords of the Web page, and the valuation comprises keyword bid values from the supplemental content sources. The supplemental content sources can be advertisers who wish to place ads (the supplemental content) for delivery with a Web page. The bid values can be received from the supplemental content sources in response to a request for bids issued after a request for the Web page is received from the requesting client device.
Other features and advantages of the present invention should be apparent from the following description of the preferred embodiments, which illustrate, by way of example, the principles of the invention.
The following detailed description and the figures illustrate specific exemplary embodiments by which the invention may be practiced. Other embodiments may be utilized and other changes may be made without departing from the spirit or scope of the present invention. The following detailed description is therefore not to be taken in a limiting sense, and the scope of the present invention is defined by the stated claims.
Implementations of the invention support selection of supplemental content for display at a client device communicating over a computer network. The selection of supplemental content is achieved by determining a relevance score for content of a document at a server computer for delivery to a requesting client device, determining at least one valuation for the content from each of two or more supplemental content sources, generating a productivity score for each of the supplemental content sources in accordance with the corresponding content valuation for the supplemental content source, selecting the supplemental content source having the greatest productivity score, and serving the document and supplemental content from the selected supplemental content source for delivery to the requesting client device. In one embodiment, the document requested by the client device comprises a Web page. In another aspect, the document content comprises keywords of the Web page, and the valuation comprises keyword bid values from the supplemental content sources. The supplemental content sources can be advertisers who wish to place ads (the supplemental content) for delivery with a Web page. The supplemental content to be delivered along with the requested document can comprise material such as product recommendations, or news stories, links to related stories and related products, related news stories, or other relevant information. In this way, the supplemental content acts as a “garnish” to the requested document. The bid values can be received from the supplemental content sources in response to a request for bids issued after a request for the Web page from the requesting client device. Thus, supplemental content such as advertising can be placed, and competing advertisers or other sources of material for placement of such supplemental content can be selected, by exploiting the interactive, real-time nature of Internet communications.
In one embodiment, an automated computer system evaluates the content on a Web page and then delivers, for display with the page, targeted ads that relate to content on the Web page. The content is evaluated by identifying keywords used on the page, as specified in the content (source) code typically specified in html. Evaluation of the content gives each keyword a weight, and uses the weighted keywords as an indicator of content for selection of targeted ads to be shown with the page.
In a second, related aspect, keywords that were entered by a user into a search engine to find the page (the requested content) are tracked and then still more targeted ads for that particular user are delivered, based on the keywords entered by the user to find the page.
Another embodiment of the system applies both a relevance algorithm and a revenue algorithm to the content on a Web page and then delivers the most productive advertisements from a single source or a variety of advertising sources. By evaluating the content on a Web page and selecting the most productive advertisements (relative to that content) to deliver to the end user, media companies can generate increased revenue and merchants can more easily find customers.
One embodiment of the invention implements the following steps:
1. First, a Web page is evaluated to understand its context. The phrases that are identified in the evaluation are considered to be keywords. For example, an article about the Seattle Seahawks might be evaluated to find “Seattle Seahawks” to be the most relevant keyword and “football” to be second most relevant.
2. If more than one keyword is found to be relevant, or more than one advertisement is selected by a keyword, the keywords and advertisements are ranked based on which advertisements are going to generate the most revenue. Factors that influence this are its overall relevance (relevance score) to the page, revenue per impression, revenue per click and actual or expected click rates. The most valuable ad can be selected from among multiple ad partners with ads. So for example, if Google is willing to pay $0.40 per click for ads associated with “Palm Pilot”, and if Overture is willing to pay $0.60 per click for ads associated with “Palm Pilot”, then the Overture ads might be selected, because they are willing to pay more per click. On the other hand, the lower pay-per-click ad (in this example, the Google ad) might be selected if other factors are present, such as a greater click-through rate or a greater available ad network or the like that can indicate a greater ad value.
3. Then the ad is served.
In one aspect of the invention, a programming module referred to as an advertising marketplace optimizer (also referred to as an “ad optimizer”) manages communications between sources of supplemental content (such as advertisers) and publishers who make available the requested documents that are delivered along with the supplemental content.
In accordance with another aspect of the invention, the ad optimizer comprises programming modules referred to as “Optimizer” and “Adlet” that carry out processing by managing communications among the various entities over the Internet (by the Optimizer) and by selecting the best bid for supplemental content, such as advertising, from among competing sources of the supplemental content (by the Adlet). These programming modules are described in greater detail below.
The client devices can comprise a variety of processing devices that can communicate with computer networks. These devices can include, for example, laptop computers, desktop computers, smart phones, PDAs, and the like. The network communications can take place over a wireless connection or over fixed connections.
The invention encompasses computer methods, computer programs on program carriers (such as disks or signals on computer networks) that, when run on a computer, implement the method, and computer systems with such programs installed for implementing the method. The various embodiments of the invention may be implemented as a sequence of computer implemented steps or program modules organized in any of many possible configurations. The implementation is a matter of choice dependent on the performance requirements of the computing system implementing the invention.
For explanation, an embodiment of the invented method may be divided into three steps with an optional fourth step. The practical application of these steps can be seamlessly integrated or separated into independent components.
Step 1. Evaluate the content on a page for keyword relevance. (Keyword lists may be generated internally and/or provided by advertisers and/or advertising partners.) This evaluation applies an algorithm that considers both the number of occurrences and the location of the occurrences of any given keyword (or words or phrases associated with a given keyword) and, using this information, gives each keyword on the page a “Relevance Score.” This algorithm is explained in detail below. From this analysis, a media company could choose to show a list of relevant keywords as “related searches” that will link to search results. Alternatively, the information could be used to pull advertisements as detailed below.
Step 2. Query a group of advertising partners (or a single advertising source) to learn the revenue generation potential of each keyword (“Cost Per Click” or “Cost Per Impression”) from each partner. Apply this data to the Relevance Score to determine a “Productivity Score”. Overtime, click-thru rates of certain advertisements and keywords may influence the potential revenue production of keywords which, in turn, may influence the Productivity Scores.
Some of the “advertising sources” may be developed by enabling media sites with ability to allow their own advertisers/viewers to bid for ad placement using ad bidding technology. Advertisers and/or media partners will determine if ads loaded thru this system will be limited to the media site where the ad was originated or distributed across the entire Company network.
Step 3. Productivity Score (and Relevance Score and Cost Per Click or Cost Per Impression) will be used to determine the advertiser and the type of advertisement to display (banner, button, pop-up, etc.) with the page.
For example, consider a Web site run by a news organization such as the Seattle Times. They run an article about The Seahawks and, if they have advertising on the Web page, it is non-targeted. The invented system would place ads for Seahawk Tickets, Seahawk Memorabilia and Football related merchandise. The system does this by reading the content on a page and comparing that content to a long list of keywords. The system applies an algorithm that considers the number of occurrences and location of the different keywords on the page. The system also can consider the number of words in a keyword (keyword phrase), and the potential value derived from showing ads related to a particular keyword. In this way, the system can serve advertisements that are much more likely to be of interest to the reader of the page—therefore delivering superior value to the advertiser and the media sites.
Step 4. As an optional fourth step, the system can be designed to also consider the apparent interests of a particular user if the user came to the page from a search based on search words entered by the user. For example, the Seattle Times Web site includes a search feature. Each article can be found as a result of many different searches with different words, all of which will lead to the same article. However, a user that comes to a particular article from a search for “sports events in Seattle” might be shown different ads based on the words used in that search phrase than a user that comes to the article from a search on “NFL”. The words used by the user in the search are used to further adjust the selection of ads to show to that user by consulting the same long keyword list.
Where the search engine is a part of the same site as the Web pages that are found from the search, implementation of this fourth step is straight forward. To implement this fourth step with search engines that are not part of the site, a parameter consisting of the search words entered by the user to find the hyperlink must be passed from the search engine site to the page that is specified by the hyperlink. This is preferably done by the search engine site adding the search words as a parameter at the end of the hyperlink. Software on the host computer for each Web page is modified to interpret this parameter. Alternatively, the parameter may be passed via a cookie placed on the user's computer. By using cookies, words used in prior searches that led to the same page can also be passed as additional parameters. Additionally, words used in prior searches can influence the advertisement selection of future pages regardless of the content on the page. So a user who searches for “cell phones” could be determined to be interested in cell phones and shown ads related to cell phones even when they are reading a page related to President Bush.
Determining Relevance Score for each Phrase on a Page of a Web Site
The system receives as input all the words of a Web site page and organizes them into phrases as is well known in search technology. Documents are composed of, or normalized into, text fetched using a network or other means and parsed into a stream of words. Then, given this set of phrases from a source document (Web page), the system quickly returns a list of phrases that appear in the document, ordered descending by a measure of relevance. For example, a measure of relevance for each word might be based on location in the page according to the following ruleset as illustrated by Table 1:
Phrases consist of one or more keywords. Using the weights stated above, the system computes a maximum bid (“overall relevance value”) for each phrase. The phrases of the page are arranged on system startup into a tree structure designed for efficient searches.
Data Structures for Determining Relevance of Phrases
Three data structures are illustrated in the tables below for determining relevance of phrases in the content. The data structures are identified below in Table 2 as Phrase, PhraseMatchNode, and KeyTreeNode.
Dictionary Tree
During startup, each phrase is broken down into its component keywords. Regardless of how many times keywords are represented in phrases, each is represented only once in the system by a unique KeyTreeNode (“KTN”). The keyword that a KTN represents is not stored in the KTN itself; it is implied by the location of the KTN in the dictionary tree.
KTNs are loaded into a dictionary tree in which each node represents a letter in a particular ordinal position in the keyword. Also associated with the KTN is an array of Phrases that contain the implied keyword. It is easiest to make sense of this using a diagram as shown in
Phrase ID 1: FAR
Phrase ID 2: FARM PIG
Phrase ID 3: PIG
Phrase ID 4: PIN
Note that all words are normalized for punctuation and converted to lower-case. The dictionary tree for this setup will have the structure shown in
Note that for each phrase/keyword pair (the Phrase Match Node array, “PMN”) position information is stored as a bitmask: position 1=0x00000001, position 3=0x00000004, and so on. If a keyword appears in more than one position in a phrase, multiple bits will be set. For example, if a phrase is “big big fish”, in the PMN for “big” the bitmask will be 0x00000003 (first and second bits set).
Live editing of the tree is supported. A combination of CPhrase refcounts and KTN-level locking allows for a thread-safe interface to the tree.
Matching Process
Two interim collections of PhraseMatchNodes (“PMNs”) facilitate the matching process. The “hit array” contains phrases that have matched the document. A phrase will only be represented in the hit array once, but relevance from multiple matches will accumulate in that PMN. The hit array is sorted by phrase id for easy lookup.
The “candidate list” contains phrases that match “so far”. That is, some subset of their keywords have matched but not all. As each word from the document is examined, PMNs are added to or removed from the candidate list as appropriate.
The following pseudocode in Table 3 describes the matching process:
Expanding the Model for AND and OR Matching
The above described bitmask-matching model also lends itself well to AND and OR keyword matches. In both cases, a “target” bitmask is maintained with the phrase, in which the rightmost KeywordCount bits are set. For AND matches, each position PMN match info is logically ORed with found positions; when the PMN match info is equal to the target bitmask all terms have matched. Note that in this case candidates remain in the candidate list even when subsequent keywords did not match, unlike exact matching. OR matches are even simpler in that every phrase that matches a keyword is automatically added to the hit array.
Base Keyword Relevance
As each keyword is parsed out of the document, it is assigned a base “relevance” score. This score is derived from a named ruleset, of which there is always at least one in a running instance of the system. Rulesets can be added or removed from the system during runtime using a Web services interface.
By default, the default ruleset named auto is used to generate relevance scores. If there is a tail-match between any ruleset name and the host portion of the document URL, that is used instead. For example, if a document is fetched from host “www.foo.com” and a ruleset named “foo.com” exists, it will be used. Finally, if the engine encounters a tag of the format <tstags-NAME>, the system will search for a ruleset named NAME and use it if found. This manual directive will override any prior ruleset selection. Rulesets may also be customized based on the host name of the system publishing the content, providing the best interpretation of each unique document format.
Rulesets are specified as XML fragments such as the XML fragment illustrated in Table 4 below.
By default, the system will examine as keywords only words that appear in the logical body of the document. What constitutes the logical body is defined by the body section of the ruleset. The tag attribute on the body tag indicates the tag that surrounds body content. Normally this is the standard HTML “body” tag. However, this is an imperfect model because the “body” of an HTML document contains navigation and other interface components, menu text, stock headers and footers, and so on that should not be considered as part of the unique content of the document. The system overcomes this by allowing the content publisher to specify what tag surrounds the logical body. This can be a new tag such as <ts-body> created specifically for the system, or it may be another tag already in place.
Keywords within the logical body are broken down by the system into ranges based on ordinal position. The range tags specify what relevance (i.e., weight) should be given to keywords within each range. Generally, words closer to the beginning of the document are given more weight as they are typically the topic sentence and paragraph of an article. After the largest range has been processed (1500 words in the sample ruleset above), parsing is terminated.
Overrides make up the remainder of a ruleset. Each override specifies a tag within which keywords are given an absolute weight, regardless of their position in the document. In the sample ruleset, for example, anywhere in the document that a “title” tag is found, the words within it will be given a weight of 10.
It should be noted that the system also allows the specification of attribute name/value pairs in ruleset definitions. This is necessary to do a good job of ruleset definition for many existing sites.
Aggregated Relevance
The relevance scores for each keyword are summed during the lifetime of the match process and eventually collected in the match node for each hit. So, assuming (1) we are using the sample ruleset above, (2) there is a query for “big dog” in the system, and (3) that phrase appears twice in the document body, once in the title and once between the 110th and 1,000th words in the body, relevance would be computed as listed in Table 5 below:
This algorithm selects for phrase length, frequency in the document, and positions in the document. After performing a descending sort by aggregated relevance, we have identified the “best” phrase matches for the document.
At this point financial and productivity rules can be applied to select the best advertisements based on the phrase matches.
Determining Productivity Score for Each Phrase on a Page of a Web Site
With respect to
The issue gets more complicated when considering multiple keyword matches for a specific content page. Under such a scenario, the Relevance Score for each keyword and the CPC or CPM of each keyword are considered. The algorithm is adjusted over time and may vary from one distribution partner to another dependent on user behavior and partner desires. The example in
After selecting the most productive advertisements to deliver, the system determines, based on rules set by the distribution partners, the ad type to serve. These ad types vary based on partner requirements, keyword relevance and keyword value.
Using Categories
In addition to identifying the most relevant keyword(s) on a Web page, the system can be configured to identify a relevant category of the Web page and can make advertising decisions based on that category. For example, in addition to identifying a page as being about “wireless phones”, we also identify it as being about “electronics.” In this way, an “electronics” retailer can choose to have their ads only served on pages about “electronics” and a “sports” retailer could limit the display of their ads to pages about “sports”. Category relationships are assembled in a table by starting with a list of categories such as used in telephone directory yellow pages, and then listing for each category the common words or phrases that belong in that category. Then, if the user has entered the word or phrase, the associated category will be invoked. Alternatively, if a word or phrase that appears in a highly relevant location in a document being served is listed in the table, the associated concept can be used to select ads to be placed.
Optimization of the Advertising Marketplace
The invention can be used to provide a real-time marketplace for improving the relevance of advertisements and optimizing the revenue of those advertisements to a publisher. The placement of advertising in various forms of media (television, radio, and print in addition to Web placement) can be improved through the use of the techniques described herein. Those skilled in the art will be able to apply the techniques to various media in view of the description provided herein.
The existing conventional advertising placement process is depicted in
The operations to place an advertisement or other supplemental content in accordance with the invention are illustrated in
The information concerning the placement context is received by the ad optimizer 200. In the processing of box 330, the customer profile for which the advertisement will be shown is determined. The customer profile is useful for behavioral targeting of individuals or groups of individuals, for personalization. The customer profile might provide customer segmentation to assist in such personalization. Such individual or group-focused granularity is readily possible in the online environment, but is not typically possible for media such as television, radio, and print. In such media, the customer profile is essentially replaced with information relating to target demographics and the like at the larger group level. Thus, the customer profile is useful for behavioral targeting or more simply for frequency capping (i.e. showing a specific ad to a customer no more than a specific number of times in a specific period of time). The operations of box 320 and 330 can occur in either order or simultaneously.
In box 340, a list of bidders is constructed by the ad optimizer 200. If the collection of potential bidders from
The bids are received and collected by the ad optimizer 200 in box 370. If a bidder does not respond to a request, or responds beyond a specified timeframe or deadline, the ad optimizer ignores the bid from that bidder for this placement opportunity. The ad optimizer can make a note of this transgression (not shown in the diagram) and can use this information in future opportunities during the processing of box 340. In particular, a habitually frequent offender may be deleted from the collection of potential bidders, or other appropriate action may be taken. After the received bids are processed at box 370, the “best” bid is determined in accordance with a productivity score at box 380, as described above. More particularly, the determination of the best bid at box 380 of
The processing of box 350 and box 360, to send bid requests and receive responses to bid requests, can be performed by the ad optimizer without directly contacting the supplemental content sources. That is, the ad optimizer 200 need not contact the supplemental contact sources to process a placement opportunity. Such operation is represented in
It is possible that an advertising bidder has pre-negotiated a business arrangement with the publisher. The details of such arrangements can be encoded in the form of “business rules” that are processed in connection with box 340 and/or box 370 of
In an ad optimizer 200 configured for the online advertising environment, the process illustrated in
The next field is a customer ID field 430 that contains the customer identifier (customer ID). To protect the privacy of customers, the best-practices call for this to be an obfuscated identifier, that is, not a phone number, government identification number, or other personal identifier. Ideally, the value used for the customer identifier is encoded to be different for each bidder, further obfuscating customer identities.
The fourth field is the placement context field 440 that contains the context of the placement opportunity. The placement context can be as simple as an encoding for categorization, e.g. news, sports, entertainment, or weather. Alternatively, context can be far more detailed, with a list or hierarchy of terms, e.g. sports/golf/Tiger Woods/putting/eagle. The next field 450 contains the demographic information of the customer. This information includes such data as age, gender, home city. The next field 460 of the request contains identifiers of behavioral traits of the customer. Such traits can include broad behaviors, e.g. “reads news”, or can comprise detailed information, e.g. “subscribes to The Wall Street Journal”. The next field 470 is the customer's current location and/or home location. This field can be coarse data, e.g. “United States”, or can refer to more granular data, e.g. geographic latitude/longitude, or something in between in terms of specificity, e.g. “Seattle, Wash.”. If desired, other information can be provided in other fields 480 of the bid request, such as previously accepted bid values from the bidder or the expected winning bid value.
A bid response is illustrated in
In order to scale to large numbers of advertisers/networks and placement opportunities, the system minimizes the overhead required to request the bids and process the responses. The distributed configuration for the ad optimizer, comprising an “Optimizer” module and an “Adlet” module, provides a system architecture to optimize this processing. As illustrated in
Thus, the Adlet 600 generates the bid responses, while the Optimizer 602 picks from among the bid responses. In this way, the Adlet comprises a programming module or programmatic agent that represents an ad network or an advertiser. The best bid is not necessarily the highest bid, but determining the best bid may take into account the customer profile, the bidder profile, business rules, or other factors that can influence the productivity of an ad placement. For example, an ad that generates $0.20 per click that has a 4.0% click rate will likely be selected over an ad that generates $0.50 per click that has a 0.5% click rate.
In the
The connecting arrows between the Adlets 600 and Optimizer 602 illustrated in
Three forms of Adlets are illustrated in
The Adlet 710 as illustrated in
Advertisers 1202, such as advertisers who want to place advertising in media, work with publishers 1204 who are responsible for providing content to the public. The publishers 1204 can comprise, for example, print, broadcast, radio, and Internet media. The publishers, in turn, communicate with the computer system 1200 to receive requests for advertising bids and to respond with bids for keywords, advertising placement, and the like, as described previously. The system communicates with advertising networks 1206 to retrieve selected ads for inclusion with requested content. The system 1200 will typically request the advertising content from the advertising networks 1206 and will provide the selected content to Web servers. The Web servers will then serve the requested Web pages (document content) and will also serve the selected advertising. Alternatively, the system 1200 can instruct the advertising networks 1206 to provide the selected advertising content directly to the Web servers. If desired, the system 1200 can operate as an advertising server. That is, not only can the system determine which ads should be placed with requested documents, the system can also serve the requested ads via its network communications interface. In that configuration, the system will typically include sufficient data storage to contain a suitable amount of advertising content for placement with requested documents. If desired, the system can also operate as a Web server, providing the requested documents as well as the selected advertising content.
The system 1200 includes the Optimizer 1210 and Adlets 1212 described previously. The Optimizer is responsible for communications with the publishers, ad networks, and others who use the services of the system, and for generating requests for bids. The Adlets are responsible for providing bids and for selecting advertising content, or other supplemental content, for inclusion with requested documents such as Web pages. The Adlets may comprise programmatic agents such as program modules that are compiled and then are executed (called) by the Optimizer, or the Adlets may comprise programming scripts or interpreted applets. Adlet programs may be written in a programming language, for example, such as C, C++, Java, Visual Basic or other suitable programming language. Adlet scripts may be written in Javascript, VBScript, html script, or other suitable scripting languages or applets.
Although the documents have been described in terms of requested Web pages and the supplemental content has been described in terms of advertising, it should be understood that the requested documents can comprise a wide range of documents requested by computer network communications, such as multimedia content, stored document data files, and the like. Similarly, the supplemental content can comprise a wide variety of material to be published or viewed or rendered along with the requested document, such as auxiliary materials, complementary materials of a different medium, video, sound, or other media.
The operations described above can be performed on a wide variety of computer devices having programmable processors. The processing described herein can be implemented at such computer devices through a computer program product comprising a machine readable storage device containing programming instructions for execution by a programmable processor to perform a method of selecting content for display at a client computer communicating over a computer network, wherein the programming instructions comprise instructions to perform the described operations.
Thus, described herein are techniques for optimizing and evaluating a collection of supplemental content to determine the best content to choose, such as choosing from among different advertisements, based on a productivity score of the advertisement. Determining the “best” ad to be placed (and determining which source should receive a request for bid) is performed by considering the context of the ad placement opportunity and by performing such decision making with an ad optimizer that may include a distributed configuration have an Adlet. The Adlet receives information about an advertising placement opportunity, such as in the form of a booking request or a database check that reveals unbooked time, so that the Adlet identifies a spot or location that is available for ad placement. The Adlet responds to this opportunity by generating requests for ad bids. The responses are evaluated and the supplemental content (advertising) to be delivered with the requested content is selected.
Having fully described several embodiments of the present invention, other equivalent or alternative methods of practicing the present invention will be apparent to those skilled in the art. These and other embodiments as well as alternatives and equivalents to the described system will be recognizable to those of skill in the art after reading the description herein. The scope of the invention should not, therefore, be determined solely by reference to the above description, but instead should be determined with reference to the appended claims along with their full scope of equivalents and alternatives.
This application is a continuation-in-part application and claims priority to U.S. patent application Ser. No. 10/694,643 filed Oct. 27, 2003 entitled Selecting Ads for a Web Page Based on Keywords Located on the Web Page, which claims priority from U.S. Provisional Application No. 60/421,507 filed Oct. 25, 2002 entitled Selecting Ads for a Web Page Based on Keywords Located on the Web Page. The disclosures of both these applications is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
60421507 | Oct 2002 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 10694643 | Oct 2003 | US |
Child | 11561832 | Nov 2006 | US |