US8504437B1 - Dynamically selecting and presenting content relevant to user input - Google Patents
Dynamically selecting and presenting content relevant to user input Download PDFInfo
- Publication number
- US8504437B1 US8504437B1 US12/939,983 US93998310A US8504437B1 US 8504437 B1 US8504437 B1 US 8504437B1 US 93998310 A US93998310 A US 93998310A US 8504437 B1 US8504437 B1 US 8504437B1
- Authority
- US
- United States
- Prior art keywords
- completion
- advertisement
- user
- pair
- determining
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/08—Auctions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
Definitions
- This specification relates to providing information relevant to user requests.
- Internet search engines identify resources, e.g., Web pages, images, text documents, and multimedia content, in response to queries submitted by users and present information about the resources in a manner that is useful to the users.
- resources e.g., Web pages, images, text documents, and multimedia content
- Conventional search services can include an input control that allows the user to provide a textual input in the form of a search query.
- one or more suggestions for completing the textual input may be offered.
- a drop down menu associated with the input control can be displayed that includes one or more popular suggestions to complete the textual input.
- Popularity is one metric that can be used to determine which suggestions to offer.
- a user can select one of the suggestions resulting in the submission of the completed textual input to the search service. In this case, the selection of the suggestion results in the submission of the completed textual input to the search service for processing. Results can then be returned to the user based on the completed textual input.
- This specification describes methods, systems, and apparatus including computer program products for presenting content in response to a user request.
- one aspect of the subject matter described in this specification can be embodied in computer-implemented methods that include the action of receiving a textual input that forms a part of a request by a user.
- the textual input is in the form of a prefix that when complete constitutes the request.
- the methods further include the action of identifying completions based on the prefix.
- the methods further include the action of determining one or more content items associated with each completion.
- the methods further include the action of computing initial scores including a score for each content item-completion pair including determining a likelihood that a given completion represents the request and a quality of the content item as compared to the completion.
- the methods further include the action of computing final scores including scores for each prefix-content item pair using the initial scores.
- the methods further include the action of computing a bid for each content item.
- the methods further include the action of running an auction to select a content item based on the bids and final scores.
- the methods further include the action of identifying display data associated with the
- the method further comprises determining if the prefix is sufficient, and if not, waiting for more textual input prior to identifying display data. Determining if the prefix is sufficient includes determining completions and a likelihood of completion for each completion and determining that the highest likelihood is less than a predetermined threshold.
- another aspect of the subject matter described in this specification can be embodied in computer-implemented methods that include the action of receiving, in a data processing device, a first textual input entered in a search engine query input field by a user.
- the methods further include the action of automatically sending from the device, before the user submits a request for a search, the first textual input to a first search service.
- the methods further include the action of receiving from the first search service a set of first input completions, each first input completion being textually different from the first textual input and selectable as an alternative to the first textual input.
- the methods further include the action of determining a most likely completion from the first set of completions.
- the methods further include the action of determining one or more matching content items based on the most likely completion.
- the methods further include the action of determining a quality of a bid of each matching content item.
- the methods further include the action of determining a winning matching content item based at least upon the bid.
- the methods further include the action of determining if the quality of the winning matching item is above a threshold, and if so, displaying the winning matching content item along with the first input suggestions in a first portion of a user interface.
- Determining one or more content items includes identifying content items stored in a cache associated with each completion.
- Determining final scores includes determining a single content item that maps to more than one completion, and applying a function to the initial scores associated with each single content item to produce the final score for a prefix-single item pair.
- Computing final scores includes filtering scores based on one or more criteria. Filtering scores include reducing scores. Filtering scores result in disabling selection of a content item. Filtering includes promoting scores based one or more criteria.
- the method further comprises determining whether the selected content item satisfies one or more additional selection criteria, and not identifying display data if the selected content item does not satisfy the additional selection criteria.
- the method further comprises determining if prefix completion likelihood is sufficiently high for any completion, and if not, waiting for more textual input.
- the method further comprises determining if the prefix is ambiguous, and if so waiting for more textual input.
- another aspect of the subject matter described in this specification can be embodied in computer-implemented methods that include the action of receiving, in a data processing device, a first textual input entered in a search engine query input field by a user.
- the methods further include the action of identifying a set of first input completions, each first input completion being textually different from the first textual input and selectable as an alternative to the first textual input.
- the methods further include the action of determining one or more matching content items associated with each first input completion.
- the methods further include the action of determining scores for matching content items including applying one or more filtering functions to the scores.
- the methods further include the action of determining a bid for each matching content item.
- the methods further include the action of conducting an auction including determining a winning matching content item based at least upon the bid and the scores.
- the methods further include the action of identifying display data associated with the winning matching content item for presentation along with one or more of the first input completions in a first portion of a user interface.
- another aspect of the subject matter described in this specification can be embodied in computer-implemented methods that include the action of receiving, in a data processing device, a first textual input entered in a search engine query input field by a user.
- the methods further include the action of automatically sending from the device, before the user submits a request for a search, the first textual input to a first search service.
- the methods further include the action of receiving from the first search service a set of first input suggestions, each first input suggestion being textually different from the first textual input and selectable as an alternative to the first textual input.
- the methods further include the action of determining content items associated with the first input suggestions.
- the methods further include the action of ranking and pricing each content item including identifying identical content items associated with more than one of the first input suggestions and ranking and pricing a content item as an aggregate of relevant scores and bids associated with to respective content items and suggestions.
- the methods further include the action of removing one or more content items from a same customer or domain.
- the methods further include the action of selecting a highest ranking content item.
- the methods further include the action of identifying display data associated with the highest ranking content item.
- the method further comprises throttling, including applying a throttling algorithm prior to identifying display data to prevent presentation of a selected content item.
- Ranking includes applying one or more ranking functions.
- Ranking functions include applying a function to each candidate to determine if the candidate is sufficiently relevant to a suggestion by way of comparison to a threshold.
- Ranking functions include applying a function to each candidate to determine if the sum of the probability of all suggestions to which the candidate matches is above a threshold.
- Ranking functions include applying a function to a highest ranking content item to determine if a score associated with the highest ranking content item is a scalar multiple higher than a next highest ranking content item, and if not, disabling identifying display data for the highest ranking content item.
- Ranking functions include determining if a bid associated with a content item is above a threshold.
- Relevant suggestions can be identified before a user completes his or her search query. Additional content can be presented along with the suggestions to the user. The additional content can be selected dynamically coincident with the receipt of user input. The selection of one or more content items presented with the suggestions can result in a redirection to a defined resource and obviate or otherwise avoid completion of the search based on the textual input provided by the user.
- FIG. 1 illustrates a system for determining and providing suggestions including additional content related to the suggestions in response to a user request.
- FIG. 2 illustrates an example system for providing one or more suggestions to a user based on user input.
- FIG. 3 illustrates an example method for obtaining and presenting content to a user based on suggestions derived from user input.
- FIG. 4 illustrates an example architecture for a serving system and a flow for serving suggestions based on user input.
- FIG. 5 illustrates an example answer box presentation system.
- FIG. 6 illustrates an example answer box obtainer.
- FIGS. 7A-7D illustrate example controls presented in response to user input.
- FIG. 8 illustrates an example system for dynamically selecting additional content to be presented along with suggestions to a user.
- FIG. 9 illustrates an example method for dynamically selecting content items in response to user input.
- FIG. 10 illustrates an example hardware configuration
- FIGS. 11 through 13 illustrate example methods for dynamically selecting content items in response to user input.
- FIG. 14 illustrates an example hardware configuration
- FIG. 1 illustrates an example system 100 for determining and providing suggestions and associated content in response to user input.
- the associated content can be of the form of Web content and/or Web-based advertisements (or “ads”) that are associated with the suggestions.
- Non-ad Web content can include links to web sites or other content, news, weather, images, video, auctions, related information, answers to questions, or other information. The identification of the associated content is described in greater detail below.
- System 100 receives user input, typically in a control (e.g., a search query box) that is presented on a user interface associated with the client device 104 .
- the control can be of the form of a textual input box or other input mechanism that is configured to receive user input.
- the user input is of the form of textual characters, tokens or other input that make up a request.
- the user input can include numbers, letters, symbols, or other identifiers.
- the request can be of the form of a search query.
- the user input is evaluated as the input is received, that is, as each textual character or token is provided.
- the client device 104 can provide the user input, by way of the network 106 , to the search service 102 as it is entered.
- the search service can provide suggestions along with other content back to the client device 104 .
- the system shown includes a remote search service that is linked by way of the network, portions of the search service 102 can be included in the client device 104 .
- the system is described with reference to a search service 102 , other forms of user requests and other services can be provided in support of a given user input.
- the system 100 can provide suggestions, for instance, as completions in the form of multi-term phrases or dominant queries that are derived from the received user input.
- the search service 102 can evaluate the user input as received and identify one or more completions based on the user input. Based on the completions, one or more associated content items can be identified. Ones of the completions (e.g., popular ones) can be provided as suggestions to the user. The additional content items can be merged with selected ones of the completions and provided for display to the user.
- the suggestions can be displayed in proximity to or in an augmented form of the control that receives the user input. For example, the suggestions and associated content can be included in an answer box that is displayed in proximity to the control (e.g., a search query box).
- ads, navigational links, static content, video content, or other content can be displayed in an answer box adjacent to (e.g., directly below) an input control (e.g., a search query box) on the user's computer screen.
- the suggestions and additional content items can appear on the user's screen in an answer box or other form of display element after the user has entered just a portion (e.g., a few characters) of the query, such as after the input is sufficient to generate useful suggestions.
- one or more content items are provided along with one or more suggestions for completing the user input.
- the content items can be included along with the suggestions or presented in a separate augmented form of the control (e.g., expanded textual input box or drop down box).
- the system 100 includes a search service 102 that is communicatively coupled to client device 104 via a network 106 .
- the search service 102 can be any content provider or search engine provider that provides content and/or ads in response to user queries, inputs or other selections. Other forms of service are possible.
- the search service 102 can be accessible from applications running on the client device 104 , such as coupled to (or in communication with) the user's Web browser, any search input dialog, and so forth.
- the information returned by the search service 102 can include suggestions, content related to the suggestions, search results (e.g., Web content, etc.) as well as content (e.g., advertisements) that may correspond to the search results.
- the system 100 can be used to provide suggestions based on partial input that the user has provided in applications other than Web browsers, such as input boxes or other controls used in support of other applications (e.g., forms used in online shopping applications).
- the user input received and processed to determine suggestions and related content is referred to herein as a prefix.
- the prefix can constitute one or more textual characters that are entered by/received from the user.
- a completion refers to a particular completed request, and can be based on historical processing of other requests. For example, a completion can be of the form of words or phrases that embody the request the user is providing, as evaluated as a portion of that request is entered.
- the suggestions and/or additional content (e.g., advertisements) returned by the search service 102 can correspond to content exactly matching the prefix entered by the user.
- the system 100 can generate suggestions and locate additional content items related to the subject of bicycles, such as suggestions for ads for local bicycle shops.
- additional content items related to the subject of bicycles such as suggestions for ads for local bicycle shops.
- the information returned by the search service 102 can be based on the user's interests, profile information, geographical location, etc. These additional criteria can be combined for use with the user's input in order to provide targeted content.
- the suggestions can be displayed on the client device 104 , which can be a laptop computer, a desktop computer, a portable computing device, a smartphone, a mobile telephone, a personal digital assistant (PDA), or any other device capable of requesting and/or receiving content.
- client device 104 can be a laptop computer, a desktop computer, a portable computing device, a smartphone, a mobile telephone, a personal digital assistant (PDA), or any other device capable of requesting and/or receiving content.
- Such content can be received on the client device 104 using the network 106 , such as the Internet (e.g., using wireless or wired access), local area network (LAN), wide area network (WAN), a satellite network, or any other network, etc.
- the Internet e.g., using wireless or wired access
- LAN local area network
- WAN wide area network
- satellite network e.g., a satellite network, or any other network, etc.
- a user 108 can enter a partial search string 110 .
- the partial search string 110 can form a part of a longer or complete string.
- the user 108 can be in the initial stages of entering the request “google.”
- the partial search string 110 can be “goog.”
- suggestions 112 returned by the search service 102 can correspond to the partial search string 110 comprising “goog,” and the suggestions 112 can be search words or phrases all starting with or including “goog.”
- the suggestions 112 can include search words or phrases for suggestions that contain, but not necessarily start with, “goog” such as “www.google.com.”
- FIG. 2 illustrates an example system 200 for providing one or more suggestions and additional content in a control 202 to a user based on user input.
- a search string 204 such as “New York” in a browser query field
- one or more suggestions 205 related to New York can be returned.
- one or more additional content items 206 e.g., ads
- the combined suggestions 205 and content items 206 can appear, for example, in an answer box, as suggested by the box (e.g., control 202 ) surrounding the suggestions.
- the suggestions 205 are related to the user's prefix (i.e., partial input) of “New York” are “New York City . . . New York Jets . . . New York Vacations.”
- the additional content items 206 include a single ad, an advertisement for the New York Times, which consists of a display of the news publisher's home page Uniform Resource Locator (URL) www.newyorktimes.com and a newspaper icon 207 .
- URL Uniform Resource Locator
- both terms “New” and “York” have been provided in their entirety by the user.
- suggestions can be generated for partial entries of a word.
- the completions “apple computer” or “applied physics” can be associated with the prefix “appl.”
- portions of the search string 204 can be combined, expanded, or corrected in any way in generating completions.
- completions can be based on any series of input characters that forms the prefix
- the prefix can include a portion of a search term, or the prefix can include a first search term and a portion of a second search term, to name a few examples.
- Suggestions 205 can be provided to a browser 208 executing on a client 209 , such as the user's laptop computer, desktop computer, smart phone, cell phone, PDA, or other electronic device used for accessing the Internet.
- the browser 208 and the client 209 can receive the suggestions 205 and additional content items 206 over the network 106 (e.g., the Internet or other network) from a search application 210 coupled to a search engine 212 .
- the search application 210 can be any search application
- the search engine 212 can be any or all of the multiple search engines used by any search service to process any number (e.g., millions or more) of searches each day.
- cached ad-completion pairs 213 can provide the basis for generating additional content items 206 .
- the system 200 can populate and update the ad-completion pairs 213 by querying ad mixers (not shown) in the background. For example, completions can be determined based on predictions of the most popular requests (e.g., search queries) received.
- One or more content items can be associated with each completion, forming pairs that are stored as ad-completion pairs 213 .
- the actual additional content items or links thereto can be stored, for example, in repository 214 .
- the repository 214 can include, for example, keywords or other information from the ads and associated ad creatives.
- Ad-completion pairs 213 can be indexed by completion, keywords associated with a completion, or other means. Which completions are associated with which ads (and hence mapped in the form of ad-completion pairs) can be based on the frequency of previously performed searches. This provides the advantage of caching matching items that are generally more likely to lead to specific additional content that is useful to the user.
- the cached ad-completion pairs 213 can include all relevant information, including the ad creative for a particular ad, thereby obviating the need for repository 214 . In this way, ads can be served directly from the cache.
- additional content items 206 can include a content item or a link to a content item.
- the content item can be an answer to a question described by the completed search query, such as “where can I buy Macintoshes online?”
- the content item or suggestions returned may not contain any of the terms included in the user input received (e.g., “where can I buy Macintoshes online?”) but may instead “answer the question,” listing suggestions for ads and content related to the answer to the question.
- the cached ad completion pairs 213 can be maintained and updated, for example, by periodically (e.g., every half hour) accessing ad information from ad mixers or other sources of content. Updates to the cached ad completion pairs 213 can occur by expanding prefixes into completions, and fetching or identifying content items for each completion identified by the ad mixers.
- the search engine 212 can access the additional content items stored in or pointed to by the ad-completion pairs 213 (e.g., by accessing individual content items in repository 214 ). Access to the additional content items can be provided by an ad server 216 , capable of retrieving additional content items in various ways, including ads associated with keywords or other criteria. Search engine 212 can also access a web content server 218 that uses an index 220 to locate web content corresponding to an input search query.
- a method 300 is shown for providing content to a user.
- the method 300 can be performed by a system, such as that shown in FIG. 2 .
- textual user input is received.
- a user can enter a search string 204 (e.g., “New York”) in a search control within the application 206 that displays a web page associated with the client 208 (e.g., the user's computer).
- a user can provide a voice command into a microphone that is received and transformed into a request that is provided to the search service.
- a search application 210 can receive the search string 204 for processing.
- tokens e.g., characters
- the search application 210 can invoke the suggest engine 212 to identify completions based upon the user input, such as “New York City . . . New York Jets . . . New York Vacations.”
- the completions identified here can be the same or different than those made after the user has entered fewer characters, such as just “New Y”, “New Yo” or “New Yor”, and not completing the second term “York”.
- a content item associated with one or more completions is identified.
- the suggest engine 212 can provide identified completions to ad server 216 to identify relevant related content to the identified completions.
- Ad server 216 can match the completions to ad-completion pairs 213 to identify particular content items associated with a given completion.
- Display data associated with the content item is identified at stage 308 .
- Particular content items can be retrieved from repository 214 and combined with completions provided by the suggest engine 212 to form the display data.
- the display data can include the suggestion itself, any identified additional content items and any renderable control, including a link, image, etc. that is associated with the suggestion or the additional content item.
- the display data can include the link or URL associated with the NY Times, as well as the newspaper icon representing a newspaper.
- display data is transmitted to the user.
- the search application 210 can transmit the display data to the user via the network 106 .
- the display data can be received on the user's client 209 for display in an application 208 (e.g., a web browser).
- the display that the user sees in his browser for example, can be an answer box directly below the search field, and the answer box can contain the display data, including the suggestions and the additional content items identified by the suggest engine 212 .
- FIG. 4 illustrates an example architecture for a content serving system 400 and attending flow information for serving suggestions and additional content based on user input.
- the user input in the form of a prefix 402 or other portion of a user request, can originate from a front end 403 , such as a front end within the user's web browser running on the user's client.
- the input can be passed from the front end to a complete server 404 and on to a suggest mixer 406 .
- Passing the prefix 402 can be implemented as call from the complete server 404 to a prefix-completion module 408 within the suggest mixer 406 .
- the suggest mixer 406 can auto-expand the prefix 402 into a set of potential completions.
- Expansion can be performed using suggestion-completion tables (e.g., either in memory or accessible via calls) or other data sources.
- the suggest mixer 406 can generate a lookup 410 directed to a set of cache servers 412 for content items (e.g., ads 411 ) related to the completions.
- the cache key can be, for example, “(query x country x language x exact/broad x suggest_experiment_id)” or some other format.
- the suggest mixer 406 can be notified of the miss, and a new key can be registered 414 (e.g., queued for a cache update) to a local cache updater 416 .
- the cache update 416 can be used to populate/update the cache with new updated ad-completion pairs that can be matched against new requests from the user.
- the suggest mixer can return one or more content items (e.g., ads) along with the completions 420 (e.g., as complete tokens) to the complete server 404 .
- the additional content items can be of the form of valid redirect URLs with valid clickstrings (e.g., the displayable label or link that the user sees).
- the cache lookup 410 can be initiated when a request to suggest additional content items is received from the complete server 404 .
- the prefix-completions module 408 can expand the received prefix into all possible completions in-memory.
- the most likely completions can be identified by the prefix completion module 408 and a search of the cache for additional content items associated with the most likely completions can made.
- the cache lookup 410 can access the cache server 412 to determine if any additional content items (e.g., ads) are associated with the one or more most likely completions.
- the cache key used can have the format (query x country x language x exact/broad x suggest_experiment_id).
- any content item returned by the cache server 412 that is older than a predetermined age can be discarded. If a cache key results in a cache miss 413 , or if stale (older than 30 minutes, for example) content items are returned, the suggest mixer 406 can make a call to the cache updater 416 . The call can result in the cache key being added to the in-memory set of keys for the purpose of queued updates to the cache. Content items that are not discarded, for instance, can be served.
- user reaction to the additional content items can be tracked.
- any user click on an ad can trigger click serving and click logging, capturing the information in a collection of historical logs.
- the suggest mixer 406 can also issue a log request to an ad mixer 432 to explicitly log the shown ads as an impression. Click logging and the resulting log can be used, for example, to track the costs charged to advertisers based on the number of times and other factors associated with serving respective ads.
- the cache updater 416 can be a separate application running alongside the ad mixer 432 and the cache servers 412 in each data center, such as if multiple data centers are used to serve the additional content items (e.g., ads) and suggestions.
- Cache updaters 416 in general can be responsible for periodically refreshing the cache by directly querying various ad mixers, such as the ad mixer 432 .
- the cache updater 416 can maintain a list of cache keys and associated stats in-memory.
- the cache key can be, for example, in a form such as “(query x country x language x exact/broad x suggest_experiment_id)”.
- the cache updater 416 can continuously monitor ad requests corresponding to these cache keys, and issue ad request calls 434 against production mixers.
- the returned ads served can also be published 436 to other remote cache updaters in other datacenters, which can cache them in the corresponding cache servers 412 in that datacenter.
- the ad mixer 432 can interact with other components of the system 400 , such as a keyword server that provides access to a repository of all keywords associated with content items in the system, as well as tools for matching content items with keywords.
- a creative server can provide access to the creatives for all of the content items under control of the system 400 .
- a Uniform Resource Locator (URL) server can maintain and provide access to all of the URLs for content items, including ad landing pages, alternate pages, redirects, etc.
- a suggester 446 can generally identify ads matching keywords or other criteria.
- Suggestions and additional content items can be presented in a user interface executing on a client device (e.g., client device 104 ).
- the user interface can include a control, for example a search engine text box that receives the user input.
- suggestions and additional content can be presented in a control (i.e., in the same control, an augmented form of the control, or a separate control).
- control as a user interface element that is used to present suggestions and additional content in response to received user input.
- the control is interactive, in that the control can be configured to receive user input (e.g., mouse selections of one or more items presented in the control) and in response thereto, provide one or more of the following.
- the control can complete the user input and submit the completed user input to the appropriate service (e.g., to the search service).
- the appropriate service e.g., to the search service.
- the control can perform one or more operations including expanding a presentation associated with the additional content item, redirecting the browser to a link associated with the additional content item, navigating to a landing page associated with the additional content item, to name a few examples. Other operations are possible.
- control is a drop down menu box that is presented in proximity to a text box that received the user input.
- Other forms of control are possible.
- One particular form of control is an answer box.
- An answer box is a user interface element that can provide an answer to a question, and assumes the user input is of the form of a question.
- Answer boxes can be formatted to provide answers in the form of suggestions to a user. Answer boxes can as well provide additional content along with the suggestions.
- FIG. 5 illustrates an example answer box presentation system 502 .
- the answer box presentation system 502 is part of a search engine system.
- the search engine system uses the answer box presentation system 502 to obtain an answer box 504 , and then present the answer box 504 to a user 506 .
- the answer box presentation system 502 does all of this while the user 506 enters text input 507 , and before the user 506 submits a search request for the text input 507 .
- the answer box presentation system 502 can select and present the answer box 504 even when the text input 507 does not match a specific, complete phrase associated with the answer box 504 .
- the user 506 interacts with the answer box presentation system 502 , for example, through a search engine user interface presented on a user device.
- the search engine user interface can be a search web page or an application interface.
- Example user devices include computers and mobile devices.
- the search engine user interface includes a query input field where a user enters the text input 507 , and a mechanism that the user can use to submit a search request.
- the query input field can be, for example, a field in a search engine web page, a field in a toolbar running in a web browser of the user, or a field in a search application running on the user device.
- the user 506 can use the mechanism to submit a search request for text input, for example, by pressing a search button in the search engine user interface, pressing the “enter” key in the query input field, or otherwise indicating that the user 506 has finished entering input and the search engine should identify search results responsive to the input in the query input field.
- the search engine user interface can further present information, for example, query suggestions, answer boxes, additional content related to the query suggestions and search results, to the user 506 .
- the answer box presentation system 502 includes an input processor 508 , an answer box obtainer 510 , and a presentation engine 512 . These software components can run on the user device or on one or more servers, for example, search engine servers, connected to the user device through a network.
- the input processor 508 receives text input 507 .
- the text input 507 can be text input entered in a search engine query input field by the user 506 , or the text input 507 can be text generated from voice input received from the user.
- the input processor 508 receives the text input 507 and determines whether the input should be sent to the answer box obtainer 510 .
- the input processor 508 can verify that the user 506 has not submitted a search request, e.g., that a user has not used the mechanism in the search user interface, or any other mechanism, to send input to the search engine indicating that the user has finished entering input and that the search engine should identify search results responsive to the input in the query input field.
- the input processor 508 can also consider other factors, for example, whether the text input has a minimum number of characters, is ambiguous, or whether a predetermined amount of time has passed since the user 506 entered the last character of the text input 507 .
- the input processor 508 verifies that the text input 507 should be sent to the answer box obtainer 510 , the input processor 508 sends the text input 507 to the answer box obtainer 510 .
- the answer box obtainer 510 obtains an answer box 504 for the text input 507 .
- the answer box obtainer 510 is described in more detail below with reference to FIG. 6 .
- the presentation engine 512 receives the answer box 504 from the answer box obtainer 510 and presents it to the user 506 , e.g., by sending data representing the answer box 504 to the user device for presentation in the search engine user interface.
- the presentation engine can send other data in addition to the selected answer box 504 .
- the presentation engine can receive a set of query suggestions, generate output comprising a list of query suggestions, additional content items related to the identified query suggestions and the selected answer box 504 , and send data representing this output to the user device for presentation to the user 506 .
- the presentation engine 512 can receive the query suggestions from a query suggestion engine that generates query suggestions for the text input 507 , for example, using conventional techniques.
- Additional content items can be provided by the systems 200 and 400 , which are described with respect to FIGS. 2 and 4 , respectively.
- the user device can present the suggestions and the answer box 504 , for example, in a drop down menu that appears below the search engine query input field in the search engine user interface.
- the suggestions and the answer box 504 can be presented even if a user has not entered input indicating that the user wants the suggestions or answer box 504 to be presented.
- the user device can alternatively use other configurations for presenting the output to the user 506 . Example presentations are described below, with reference to FIGS. 7A-7D .
- FIG. 6 illustrates an example answer box obtainer 602 .
- the example answer box obtainer 602 is an example of the answer box obtainer 510 described above with reference to FIG. 5 .
- the answer box obtainer 602 includes a suggestion engine 604 and an association engine 606 .
- the answer box obtainer 602 derives a suggestion corresponding to the text input 507 using the suggestion engine 604 , and obtains an answer box 504 associated with the suggestion using the association engine 606 . While the below examples describe deriving a single suggestion, multiple suggestions for the input can be derived, and multiple answer boxes 504 , each associated with one or more of the suggestions 608 , can be obtained.
- the suggestion 608 is a completion to the request that has been entered by the user.
- the suggestion can itself be of the form of a completed query that corresponds to the text input 507 .
- the suggestion 608 can be the text input 507 itself, or can be different from the text input 507 .
- the suggestion 608 can be a completion of the text input 507 . For example, if the text input 507 is “weather San Fr,” the suggestion 608 can be “weather San Francisco.”
- the suggestion 608 can also be a modification of the text input 507 .
- the suggestion 608 can be “weather San Francisco,” thus correcting the misspelling of “weather.”
- the suggestion 608 can also be both a modification and a completion of the text input 507 .
- the suggestion 608 can also be a query that is related to the text input 507 .
- the suggestion 608 can be a suggestion for the text input 507 .
- the suggestion 608 can be the part of the input that matches the keyword or regular expression, plus a completion of the rest of the text input 507 .
- the system can generate the suggestion 608 by combining the keyword “weather” with a completion of the rest of the input “San.” The completion can be generated using the techniques for generating the suggestion that are described below.
- the suggestion engine 604 can derive the suggestion 608 from the text input 507 according to various heuristics.
- the suggestion is selected from a group of completions for the text input 507 .
- the suggestion engine 604 can optionally add the text input 507 to the group of completions.
- the suggestion engine 604 receives the group of suggestions and determines a popularity value for each completion.
- the suggestion engine 604 receives the completions from a suggestion engine that generates query suggestions, for example, using conventional techniques.
- the popularity value for a given completion is derived from the number of times one or more users submit a search for the completion.
- the popularity value can be the number of times one or more users submit a search for the completion divided by the total number of times the one or more users submit queries for each of the completions, e.g.:
- query x is the completion for which the popularity value is being calculated
- each query i is a query in the group of query completions.
- the one or more users can be, for example, just the user who entered the text input 507 , or a larger group of users.
- the suggestion engine 604 can optionally weight the number of times users submit each query by a measure of the quality of each query.
- the measure of quality can be derived, for example, from the number of times users select search results after issuing their queries, how long users view search results responsive to their queries, how often users refine their queries, and whether users interacted with other features of search result pages presented in response to their queries.
- the denominator in the popularity value can be a number of times queries that start with the input are submitted by users.
- the suggestion engine 604 identifies the number of times users submit each query by analyzing user search history data.
- User search history data describes, for each user represented in the data, queries submitted by the user.
- the suggestion engine 604 analyzes the user search history data for the users and identifies the number of times the users submitted a query corresponding to each completion.
- the user search history data can be anonymized for privacy protection.
- the user search history can refer to users by only an Internet protocol (IP) address of a user device or can generate a unique random number that is associated with the IP address of the user device.
- IP Internet protocol
- Other anonymization processes such as hashing, encryption and obfuscation techniques, can also be used to ensure that user privacy is protected.
- the user search history data can also be sanitized to remove suspect traffic. Suspect traffic can be, for example, traffic that has been identified as being generated by bots, traffic that has been identified as being spam, or repeat queries that are submitted by the same user in close succession to each other.
- the suggestion engine 604 selects one or more completions having criteria (e.g., popularity value, etc.) that exceed a threshold as the suggestion.
- criteria e.g., popularity value, etc.
- Example thresholds include 60%, 66%, and 75%.
- the threshold can be determined empirically.
- a threshold determination system (not shown) can determine the appropriate threshold by testing a variety of thresholds and determining whether or not they result in a desired behavior of the system.
- the threshold determination system can determine whether the behavior of the system is the desired behavior, for example, by using human evaluators that explicitly indicate whether they found a presented answer box to be useful, or would have found an answer box to be useful.
- the system can measure the number of times users indirectly indicate that they found a presented answer box to be useful. Users can indirectly indicate that they found a presented answer box to be useful, for example, by selecting an answer box that is presented for the text input 507 , spending a long time viewing an answer box, clicking on a link in an answer box, or not submitting any additional searches after being presented with the answer box.
- a threshold determination system can make various modifications to the above approach. For example, the threshold determination system can determine thresholds for just ambiguous inputs and then apply the thresholds to less ambiguous inputs. Ambiguous inputs are inputs that can trigger several different suggestions, for example, “weather San” which might trigger “weather San Jose,” “weather San Francisco,” “weather Santa Fe,” etc. As another example, the threshold determination system can determine different thresholds for particular categories of answer boxes. The threshold determination system can select decreasingly lenient threshold scores for each category of answer boxes, until an acceptable threshold is found for each category. This allows the threshold determination system to make the thresholds as lenient as possible for each query.
- the thresholds are user-specific. For example, if a user frequently triggers answer boxes of a particular category, or has profile data that indicates the user is interested in answer boxes of the particular category, the threshold can be more lenient for answer boxes of the particular category and the user.
- the thresholds can also be specific to categories of users, for example, users in the same location or users whose search histories indicate that they share search interests. Users' search histories can indicate that the users share search interests, for example, when the search histories have more than a threshold number of queries in common.
- the suggestion 608 is a query that appears the most often among queries issued by the user that begin with text that matches the text input 507 .
- the suggestion engine 604 analyzes user search history data for the user entering the text input 507 to find one or more queries previously submitted by the user that begin with text that matches the text input 507 .
- Text matches the text input 507 if the text is identical to the text input 507 , or differs from the text input 507 in inconsequential ways, e.g., as determined by the search engine system. Text differs from the text input 507 in inconsequential ways, for example, when the text and the text input 507 are identical, except for the use of stop words, spelling, word order, or the substitution of synonyms.
- the document query engine 604 identifies “weather San Francisco,” “weather San Jose,” and “the weather Santa Fe” as the most likely suggestions.
- the suggestion engine 604 ignores “weather Mountain View” as it does not start with input similar to “weather San.”
- the suggestion engine 604 selects the query having a number of appearances that satisfy a threshold.
- the threshold can be a predetermined number of appearances. Alternatively, the threshold can be determined from the total number of times the queries were submitted. For example, the threshold can be fifty-percent of the submitted queries. For example, if the user searched for “weather San Francisco” ten times, “weather San Jose” five times, and “the weather Santa Fe” one time, and the threshold is fifty-percent of the number of times the user searched for the queries, the threshold is eight.
- the suggestion engine 604 selects “weather San Francisco” as the suggestion, because it was submitted ten times, and ten is greater than the threshold of eight.
- the suggestion engine 604 can optionally weight the number of times each query appears by the amount of time since each query was submitted, with a lower weight given to older queries.
- the suggestion 608 is a query that is frequently submitted by the user, regardless of the text input 507 .
- the user can click on the query input field when the query field contains an empty text string as the text input 507 .
- the suggestion engine 604 can then analyze the user search history to identify the queries that the user submits the most frequently, and select one of them as the suggestion.
- the suggestion engine 604 can select a query that appears at least a threshold number of times in the search history. The threshold can be determined empirically.
- the suggestion 608 is the query that will trigger an answer box of a category that is frequently triggered by queries issued by the user.
- the suggestion engine 604 can determine that a given category of answer box is frequently triggered by the user, for example, when the percentage of queries submitted by the user that trigger answer boxes of the given category is larger by a threshold amount from the percentage of queries submitted by a larger group of users that trigger answer boxes of the given category.
- the suggestion engine 604 can look at a smaller group of queries, for example, queries sharing a pattern matched by the input. For example, when the input includes a city name, the suggestion engine 604 can compute the percentage of queries including a city name.
- the suggestion engine 604 analyzes user search history data for the user entering the text input 507 to determine categories of answer boxes that would be triggered by previous queries submitted by the user. For example, if the user frequently searches for “weather” and various city names, the suggestion engine 604 identifies that the user frequently submits search queries that cause weather answer boxes to be presented.
- the query engine 604 can identify the suggestion as “San Jose weather.”
- the suggestion engine 604 can identify the suggestion as “financial information” plus the name of the stock, or some other query that will similarly trigger a financial information answer box.
- the suggestion 608 is the query that best fits with user profile data.
- User profile data can be explicit data entered by a user and can include, for example, a user's location, language, time zone, and preferences. User profile data can also be implicit data that is determined as needed, for example, the location of the user that is determined by applying geo-location to the user's IP address.
- the suggestion engine 604 processes the input to determine whether the input is missing terms or characters that would trigger a particular category of answer box. If the input is missing terms or characters that would trigger a particular category of answer box, the suggestion engine 604 can use the profile data to generate a suggestion that includes the missing terms or characters.
- the suggestion engine 604 can selected the suggestion 608 from an analysis of query suggestions and user search history data for the user entering the text input 507 .
- the suggestion engine 604 can filter out suggestions that do not appear more than a threshold number of times in the user search history data, or can adjust the popularity scores for the query suggestions described above by how frequently the query suggestions appear in the user search history data.
- the association engine 606 receives the suggestion 608 and obtains an answer box associated with the suggestion 608 .
- the association engine 606 can maintain an answer box-triggering phrase database that associates answer boxes with the most common triggering phrases for the answer boxes.
- a triggering phrase for a given answer box is the completion that the answer box is presented in response to.
- the association engine 606 can determine the most common triggering phrases for each answer box, for example, by analyzing historical data describing how often answer boxes are triggered in response to various queries.
- the association engine 606 uses this database to select the answer box 504 by identifying a triggering phrase matching the suggestion 608 in the database, and then selecting the answer box associated with the triggering phrase in the database.
- the database can be updated as new queries trigger the answer boxes, and as new categories of answer boxes are created.
- the association engine 606 can select the answer box 504 that is most frequently associated with the suggestions 608 , or can select an answer box 504 for each suggestion 608 .
- the association engine 606 obtains the answer box 504 . How the association engine 606 obtains the answer box is dependent on whether the answer box is static or dynamic.
- Static answer boxes are answer boxes whose content is predetermined. Static answer boxes are stored, for example, in a data storage storing answer boxes.
- dynamic answer boxes are answer boxes whose content is obtained as needed. Some answer boxes can be static at some points in time and dynamic at other points in time. For example, the content in an answer box can be updated according to a regular schedule. When the content needs to be updated, the answer box is a dynamic answer box. However, once the content is updated, the content is cached and the answer box is a static answer box, until the time for the next update.
- the association engine 606 obtains static answer boxes from the data storage where they are stored. Obtaining an answer box can include identifying content related to or associated with the completion for presentation along with the completion in the answer box. That content can be static, or dynamic.
- the association engine 606 When the association engine 606 is obtaining a dynamic answer box, the association engine 606 obtains content associated with the completion or responsive to the category and the parameter of the answer box, for example, according to rules associated with the category of the answer box 504 .
- the association engine 606 can obtain the content (i.e., additional content) from a backend server that manages data for the category of the answer box 504 .
- the association engine can receive the content from a cache that caches content for recently obtained answer boxes.
- the association engine 606 formats the content according to a template associated with the category of the answer box 504 .
- FIGS. 7A-7D illustrate example controls presented in response to prefixes submitted by a user.
- the example controls can be obtained, for example, using the techniques described above.
- the additional content items presented along with the suggestions are of the form of advertisements.
- FIG. 7A illustrates an example control 702 a with ad information presented vertically, having the URL to the right.
- the control 702 a displays an ad block 704 (e.g., for the official eBay site) with ad links 706 (e.g., “Today's insider deals . . . Gift finder . . . Top ten items”) displayed below a site name 708 (e.g., “eBay®—Official Site”).
- a URL 710 e.g., www.eBay.com/Shop_eBay
- the information in the control 702 a corresponds, for example, to partial text 712 entered in an input box 714 .
- the partial text 712 can be “ebay
- the partial text 712 can appear, for instance, in the input box 714 , such as the search box in the user's browser.
- content suggestions 716 e.g., ebay motors, ebay UK, ebay coupon, etc. are displayed in a block above the ad block 704 .
- suggestions e.g., motors, UK, coupon, etc.
- suggestions can be distinguished from other text (e.g., the partial text “ebay” or the additional content items) using bolding, italics, colored text, highlighting, or in other ways.
- FIG. 7B illustrates an example control 702 b with ad information presented horizontally, having the URL to the right.
- the control 702 b displays ad links 706 “Today's insider deals . . . Gift finder . . . Top ten items” together on the same line, directly below the site name 708 .
- the URL 710 is displayed to the right of the site name 708 , which is identical to the way that it is presented in the control 702 a .
- ad links 706 can wrap to multiple lines if not all ad links 706 can fit on a single line. This may occur more frequently, for example, on user devices having narrow screens, such as cell phones, smart phones, PDAs, etc.
- FIG. 7C illustrates an example control 702 c with ad information presented vertically, having the URL below the site name.
- the control 702 c displays ad links 706 “Today's insider deals . . . Gift finder . . . Top ten items” together on separate lines (as is done in FIG. 7A ), directly below the site name 708 .
- the URL 710 is displayed below the site name 708 , which is different from the way that it is presented in the controls 702 a and 702 b.
- FIG. 7D illustrates an example control 702 d with ad information presented horizontally, having the URL below the site name.
- the control 702 d displays ad links 706 “Today's insider deals . . . Gift finder . . . Top ten items” together on the same line (as is done in FIG. 7B ), directly below the site name 708 .
- the URL 710 is displayed below the site name 708 , which is the same as the way that it is presented in the control 702 c.
- the information in the control can be formatted accordingly.
- the browser can know the type of device (and display specifications) of the user computer on which it is running.
- the vertical format depicted in FIG. 7C may be used.
- other formats not shown in FIGS. 7A-7D can be used.
- scroll bars or other controls may be included in the control, for example, allowing the user to scroll up and down or left and right.
- additional controls can exist, such as minus signs or other controls for hiding information.
- additional content items e.g., ads
- an ad determined to be a “bull's-eye” or extremely good suggestion can appear at the top of the control, especially when there is just one such ad.
- ads considered less of a match (or less of a good suggestion), especially when there are multiple such ads can appear at the bottom of the control. Placement of ads in this way, at the top and/or bottom of the control can provide the advantage of presenting more useful information to the user in the right location (e.g., near the top where it will be noticed). This can also avoid cluttering the top of the control with a relatively large number of (or even a few) lesser-quality ads.
- Placement of ads and other content items in the control can also depend on the type of control or element. For example, ads or links for videos can be presented in a more prominent location in the control, while content considered less interesting to the user can be displayed less prominently.
- content items appearing in the control can be labeled as such (e.g., with an “Advertisement” banner or other indicator).
- Advertisement banner or other indicator.
- the use of such labels can depend in part on how obvious the content item's identity (as an advertisement versus a non-ad) may be expected to be explicitly known to the user.
- a user can select which format to use. For example, users of some home computers may have a preference for a horizontal arrangement of information, while others may favor vertical arrangements. Such preferences can be designated on various options, setup or configuration pages.
- suggestions start with the identified prefix (e.g., as shown in FIGS. 7A-7D , all suggestions start with the prefix “ebay,”).
- suggestions can include the partial term somewhere else in the suggestions.
- the suggestions can include “great ebay deals” or other suggestions with “ebay” embedded, or even at the end of the suggestion (e.g., “finding great deals on ebay”).
- FIGS. 7A-7D are examples of a type of control (and a variety of formats) for presenting suggestion and additional content items to a user in response to a user request. Other forms of controls are possible.
- providing additional content (e.g., ads) corresponding to completions can include a serving system that uses a cache for the additional content.
- a serving system can provide a cache that includes ad-completion pairs (e.g., the ad-completion pairs 213 of FIG. 2 ) that can be used to determine which additional content items are presented in association with a given completion.
- the serving system can include an off-line “cache-updater” process that continuously queries ad mixers (e.g., sources of ads) with a list of popular or designated (e.g., designated due to a cache miss) completions.
- the off-line process can link the returned ads to the respective completions and store the results in the cache.
- a separate online mixer upon receiving a user input (e.g., a prefix), can compute the list of possible completions. Using the list, the online mixer can query the cache and select the list of ads to present to the user.
- This process is static, in that the content that is linked to a particular completion is pre-defined at some time prior to receipt of the user input.
- the process can be performed quasi-dynamically, in that the selection of content items can occur dynamically at one specific point in time, then the results stored and used for a defined period of time (e.g., the time period between dynamic selections).
- the off-line “cache-updater” process can include various considerations.
- the process may return only exact matching additional content (e.g., ads), for example, without any attempt to match content that is a “fairly good” fit to the completion.
- the contents of the cache can be refreshed, for example, at least once every 30 minutes, or as needed to assure that the cache is reasonably up-to-date.
- the time intervals may vary and depend, for example, of the rate of updates (e.g., new ads) in the content providing system or by a content provider.
- creative rotation can be suppressed in accordance with a predefined function.
- the cache-updater process can use budget throttling or other throttling in order to use up budgets that content providers may have.
- a content serving system 800 for dynamically selecting additional content to be presented along with suggestions to a user.
- the partial user input in the form of a prefix 802 or other portion of a user request, can originate from a front end 803 , such as a front end within the user's web browser running on the user's client.
- the input can be passed from the front end to a complete server 804 and on to a suggest mixer 806 .
- Passing the prefix 802 can be implemented as call from the complete server 804 to a prefix-completion module 808 within the suggest mixer 806 .
- the suggest mixer 806 can auto-expand the prefix 802 into a set of potential completions.
- Expansion can be performed using suggestion-completion tables (e.g., either in memory or accessible via calls) or other data sources.
- the suggest mixer 806 can generate a lookup 810 directed to a set of cache servers 812 for content items (e.g., ads 811 ) related to the completions.
- the cache key can be, for example, “(query x country x language x exact/broad x suggest_experiment_id)” or some other format.
- the suggest mixer 806 can be notified of the miss, and a new key can be registered 814 (e.g., queued for a cache update) to a local cache updater 816 .
- the cache update 816 can be used to populate/update the cache with new updated ad-completion pairs that can be matched against new requests from the user.
- the suggest mixer can blend and price 820 the content items and return one or more content items (e.g., ads) along with the completions 820 (e.g., as complete tokens) to the complete server 804 . Blending and pricing is described in greater detail below.
- the additional content items can be of the form of valid redirect URLs with valid clickstrings (e.g., the displayable label or link that the user sees).
- a content item can replace one or more suggestions in the list.
- the content item appears at the top of the list of suggestions, it is referred to as a “top ad” and appears just above the first suggestion.
- the last content item is referred to as a “bottom ad.”
- a request e.g., ad request
- the complete server can identify the number of “top ads” and “bottom ads” required to accompany the list of suggestions.
- the number of top ads can typically be one, and bottom ads zero, one or more.
- Blending and pricing can help determine which content item(s) are to be included with the suggestions provided to the user.
- the number of content items can depend on the number of top and bottom ads needed (e.g., “top_ads_needed” and “‘bottom_ads_needed”) to be displayed among all content items that are identified for all possible completions of a prefix.
- Blending and pricing can also include a determination of what advertisers are to be charged for the ads.
- the process of blending content items can depend on two factors: 1) the relevance of the content item to the completion P(click
- the completion selected can be the completion with the highest value when evaluating the product of effective cost per thousand (ECPM)*P(completion
- content items can be priced differently.
- a search protocol can be run over all the content items corresponding to the completions, ranking and pricing the content items according to ECPM*P(completion
- blending can use promotion and reserve prices for the content items.
- Method 900 can be performed by a content serving system such as content serving system 800 shown in FIG. 8 .
- textual input is received that forms a part of a request by a user.
- the textual input can be in the form of a prefix that when complete constitutes a user request.
- the request can be of the form of a search query, and the prefix can constitute a portion of the query.
- the prefix can be the prefix 802 received from the front end 803 , such as the prefix “goog” that the user has entered into the search field of a browser.
- one or more completions based on the prefix are identified. For example, based on the prefix “goog,” the completion server can expand all possible completions, identifying completions such as “google” and “google earth” to name a few examples. In some implementations, the process of identifying the completions can use the prefix-completion module 808 within the suggest mixer 806 .
- one or more content items associated with each completion are identified.
- the completion server can access the cache server 812 to identify one or more candidate content items that correspond to each of these completions.
- the cache server 812 may contain cached ads related to completions based on the user-entered prefix “goog.”
- initial scores are computed including a score for each content item-completion pair.
- the initial score can include one or more factors including a likelihood that a given completion represents the request and a quality of the content item as compared to the completion (e.g., how good of a match the content item is to the completion).
- a score can represent the likelihood that “google” is a proper or valid completion for the prefix “goog”.
- the score can also represent the quality of the corresponding content item (e.g., www.google.com) corresponding to the completion (e.g., “google” or “google earth”).
- the quality aspect of the score corresponding to a content item can provide a quantitative measure of how useful the content item may be to a user, for example.
- the scores determined in this stage can be initial scores which can be used in subsequent stages.
- final scores can be computed, including scores for each prefix-content item pair using the initial scores.
- computing final scores can take into consideration when multiple completions map to a same content item.
- the relevant score for purposes of whether to present a particular content item can be an aggregate of the scores associated with the all the relevant individual completion-content item pairs. Aggregate scores are discussed in greater detail below.
- the completions “google” and “google earth” may both map to the same content item (e.g., the web site www.google.com).
- the computation of final scores can use the aggregate (e.g., summation of products) of the numerical measures of the likelihood that a given completion represents the request and a quality of the content item as compared to the completion.
- a bid for each content item is determined.
- a bid can represent an amount that a content provider has set as the maximum compensation for presentation of the associated content item.
- a quality of the bid can be determined. Bid quality can be related to predicted effectiveness of the content item. For example, while a bid for a content item may be high, the realization of the pay-out may be low for various reasons. Accordingly, one or more factors including click through rate (CTR) and predicted click through rate (PTCR) can be used to qualify the bid.
- CTR click through rate
- PTCR predicted click through rate
- an auction can be run to select one or more content items based on the bids and initial/final scores. For example, based on the price that content providers have bid to serve their ads, the content item for the New York Times may be selected, using an auction, over that of another ad.
- the auction used can be based in part on budget throttling in order to use up the budgets of content providers who, for example, may be “behind” in spending their advertising budgets.
- scores are used. In some implementations, the scores can be based on the disabling functions described below.
- display data associated with the selected content item(s) can be identified and provided to a user (i.e., along with one or more suggestions).
- the display data can be in the form of the control 202 and can include the suggestions 205 and content item 206 .
- Dynamic content selection within a completion framework can include multiple unique aspects. For example, based on an incompletely-formed query (i.e., prefix), the system can account for the probabilistic likelihood of each of the possible completions. The probabilities can serve as a precision bar that can be critical, for instance, in order to determine a single content item to return for a prefix.
- the dynamic content selection process can include several steps.
- One step includes computing the quality and bid to use for each content item (e.g., based on all likely completions).
- Another step can include running separate slot auctions to decide what content items to show at each available location (e.g., at the top and bottom of a suggestion list).
- the content selection process can be limited to selecting at most one content item to be placed in a top position and at most one content item to be placed at a bottom position.
- a determination can be made to show k content items that, together, are the most likely destinations for the user.
- disabling functions can also be used in order, for example, to improve content selection quality or for setting reserve prices.
- the process for dynamically selecting a content item can include determining final scores associated with a content item.
- the final score can be a composite of a plurality of scores associated with a completion-content item pair.
- FIG. 10 illustrates an example graph 100 that represents multiple paths from a prefix to an content item.
- a prefix 1002 (e.g., “goog”) represents the current state of user input.
- the prefix 1002 can be the string made up of the initial characters that the user has entered as a part of a query in the search box of a web browser running on the user's computer.
- Multiple completions 1004 a and 1004 b (e.g., “google” and “google earth”) are possible based on the prefix “goog”. Both completions 1004 a and 1004 b , as well as others not shown, can lead to the content item 1006 (e.g., www.google.com).
- the arrows 1008 through 1014 represent the completion paths among the nodes of the graph 1000 .
- the c1 arrow 1008 represents the first element in the set ⁇ C_ ⁇ i ⁇ , which is the “set of completions that matched p” where, in this case, p is the prefix 1002 “goog.”
- c1 represents the condition that the completion 1004 a “google” matches the prefix 1002 “goog”.
- c2 as shown by the arrow 1010 , represents the condition that the completion 1004 b (e.g., “google earth”) matches the prefix 1002 .
- Other completions not shown in FIG. 10 can exist.
- the q1 arrow 1012 and the q2 arrow 1014 represent the relevance score for content item candidate A_ ⁇ j ⁇ if the query was C_ ⁇ i ⁇ as described above.
- the products of the terms on the arrows 1008 through 1012 can be used as a sum of products in computing aggregate scores that the system can use to select the content item 1006 over others.
- the sum of the products in general can be: c 1 *q 1 +c 2 *q 2 + . . . +cn*qn
- the relevance score q_ ⁇ ij ⁇ can be a purely qualitative score. Scores that can factor into q_ ⁇ ij ⁇ include: 1) a “Naviness” score that predicts the likelihood of a content item being a navigational bull's-eye; and 2) a suggested ad's pCTR and quality score for (C_ ⁇ i ⁇ , A_ ⁇ j ⁇ ) for the corresponding (country, language, experiment). In some implementations, other scores may be used, such as scores indicating an ad's relevance (e.g., using various click or “clicky” metrics).
- One step in the content selection process can include merging identical creatives, where a creative is the physical “appearance” of an content item, including the content item's display, sound, operation (e.g., user interaction), behavior, etc. Note that the same creative can occur for different completions. Each of the completions could have different pCTRs, quality scores, bids and even different creative text and destination URLs (e.g., via keyword insertion, etc.).
- Merging creatives requires a determination of: a.) “Which creatives are considered identical?” and b.) “What does merging mean in terms of the disparate other metadata associated with each respective creative (e.g., pCTR, bids)
- a process can be invoked at the time for evaluation of the completion-content item pairs.
- a check for an ad group creative ID e.g., “AdGroupCreativeId”
- the visible URL being identical
- a comparison of destination URLs can be made. It is possible that, due to keyword insertion, an advertisement's final landing page can end up being different. For this reason, using the visible URL may be a better proxy for determining the similarity of landing pages.
- the process may not need to be concerned about merging different creatives in the same ad group that may result due to creative rotation.
- an advertisement's serve weight is not a function of the keyword, so the process doesn't have to consider the issue of picking up a different creative for different keywords.
- content providers may specify creatives in the same ad group on a keyword level. The process can be set up so as not to consider these creatives as duplicates since the content provider explicitly chose a different creative for the keyword in question.
- the process can employ a weighted sum of the quality metrics (e.g., pCTR, or other quality score), while choosing a single creative for the purpose of bid, minimum price, and any fields that may affect statistics and reporting.
- a creative will be chosen by selecting the completion with the highest completion probability, and selecting the exact match content item for that completion.
- the visible URL can be used as a proxy for the landing page.
- crawled landing page content can be used offline to determine which destination URLs have identical landing pages.
- models can be learned in order to determine which keywords should be considered identical for the purpose of merging, and in the merging process itself.
- one or more quality disabling functions may be used to ensure that if a content item is selected for presentation along with a given list of suggestions, the quality of that content item is sufficiently high.
- the quality disabling functions act to limit when content items are selected for presentation. Accordingly, in the proposed method shown in FIG. 9 , an additional step may be included that applies one or more disabling functions to the scores associated with a given content item. Resultant scores may then be compared to one or more thresholds. Based on the comparison, a decision may be made as to whether to include a content item with the suggestions provided to the user. Other methods for incorporating the quality disabling functions are possible. Alternatively, one or more quality enabling functions can be applied that act to promote one or more content items over others (e.g., such as based on a weighting of a particular characteristic associated with one or more content item).
- One example disabling function DF1 evaluates the set of completions for which the content item was relevant enough and is described below mathematically as follows:
- T — 0 is a pre-determined threshold.
- a serving process including this disabling function can disable presentation of the content item if: DF 1 — ⁇ j ⁇ T — 1
- T — 1 is a pre-determined threshold
- DF1 can be interpreted as follows: evaluate the set of completions for which the content item was “relevant enough”, and look at the total sum probability of hitting that set of completions from prefix P. This sum probability should be at least as good as T — 1.
- One example disabling function DF2 evaluates the cumulative probability of hitting that candidate content item j from prefix p over all paths and is described below mathematically as follows:
- the content item can be disabled if: DF 2 — ⁇ j ⁇ T — 2
- T — 2 is a pre-determined threshold
- DF2 can be interpreted as follows: show content items only if the cumulative probability of hitting that candidate ad j from prefix p over all paths is at least as good as T — 2.
- One example disabling function DF3 evaluates the relative performance of a content item to other possible content items and is described below mathematically as follows:
- the process can require each selected content item to be T — 3 times better than an un-selected content item.
- T — 3 may depend on m.
- T — 3 can be a convex decreasing function of m.
- One example disabling function DF4 evaluates bids associated with a content item and is described below mathematically as follows:
- the threshold can be: q — i *Bid — i>K′
- This function can be used in setting a reserve price for the content item.
- combinations of the disabling functions can be applied. In some implementations all four disabling functions are applied to ensure that a very high quality content item is selected if any is to be presented. In some implementations, any one, two or three of the disabling functions can be combined to select/de-select a content item for presentation. Other disabling functions are possible.
- the content serving system can select a single content item for presentation along with suggestions to a user in response to a user input.
- further price constraints can be imposed. For example, adjustments can be made to the maximum of the reserve price set when applying disabling function DF4.
- further filtering can be performed. For example, content items with the same visible URLs and a same-customer can be removed.
- more than a single content item can be selected for presentation along with the suggestions in response to user input.
- the selection criteria for additional content items can be the same or different than that imposed on a first item. For example, all four disabling functions can be applied when selecting a first content item for placement at, for example, the top of a suggestion list.
- different criteria can be used. For example, in some implementations up to two additional content items can be selected for presentation along with the suggestions. A first can be presented at a first location, e.g., at the top of the lit of the suggestions. A second can be presented at a different location, e.g., at the bottom of the list of suggestions.
- the selection of the second content item can be made using a different or lesser set of disabling functions than were applied when selecting the first content item. For example, in some implementations, only DF1 and DF2 disabling functions are applied when selecting a second content item for a bottom location in a list of suggestions.
- a method for selection additional content items can include identifying eligible candidates.
- Computing content items that are eligible for the second placement e.g., for the bottom slot
- the method can include quality disabling the eligible candidates for the second content items.
- disabling functions DF1 and DF2 can be applied, but with lower thresholds compared to a first content item selection.
- Ranking and pricing of content items that are eligible can occur as described above.
- a second price auction can be run, taking into account the removal of duplicate customers and visual URLs.
- selected content items are blended with the other results to produce results that are displayed to the user.
- other results may warrant a further filtering or removal of the selected content items. For example, when a time comes for blending a content item with the suggestions and any other results that are pertinent, a determination may be made as to whether the additional content item should be presented. Various considerations may be weighed including evaluating the suggestions as well as other results.
- the other results include navigation results associated with an identification of navigation information that is associated with the user input. In some implementations, if the other results are of a sufficient quality then the additional content item may again be filtered out, and not presented to the user.
- Criteria for filtering the additional content item can be independent of the quality of the content item itself (i.e., based solely on the other results presented or other considerations).
- criteria for filtering the additional content item can be independent of the quality of the content item itself (i.e., based solely on the other results presented or other considerations).
- filtering may include filtering out the additional content item or suggestions or both.
- filtering may include only checking for the prefix as being a negative keyword as specified by a content provider (e.g., advertiser).
- Auction stability can be considered when deciding whether to display additional content items.
- Filtering can include evaluating the prefix and the list of returned completions to determine whether more time should be given to receive more user input before presenting a content item. In some implementations, this problem can be addressed, for example, by delaying the appearance of a content item until suitable disambiguation occurs. Another observation is that sometimes when a user types in an extra character, the differential reduction in ambiguity is very high.
- the prefix “intern” could mean “internship” or “Internet service.” It could be the case that internship and Internet service are very specific, so waiting one character after “intern” can significantly reduce the ambiguity of user's intent. In that case, there can be a lot of value in waiting for the next character, and showing the content item after that.
- an evaluation is made based on the prefix and the completions returned as to whether the prefix is ambiguous. Further, in some implementations, an evaluation of the differential reduction in ambiguity with waiting for more user input is performed. In each of these scenarios, further stability may be able to be achieved with the additional filtering.
- quality scores may exist for a content item, such as pCTR, “clickiness”, LHS in DF1 and DF2, “Naviness” score, etc.
- pCTR Clickiness
- LHS in DF1 and DF2 “Naviness” score
- pCTR Clickiness
- LHS in DF1 and DF2 “Naviness” score
- the serving system can choose the bid of the most likely completion while averaging over the quality score. This may not always be ideal since the other completions may lower or raise the quality score, which may result in a very different reserve price than what the content provider expected.
- Another option is to choose the keywords in ratio of their likelihoods, and to set the reserve price such that, in expectation, the reserve price charged is the threshold price. In some implementations, this can be done as follows.
- r — j ( C ⁇ A *sum — i — ⁇ q — i*c — i ⁇ )* b — j/sum — i — ⁇ b — i*q — i*c — i ⁇
- Method 1100 can be performed by a content serving system such as content serving system 800 shown in FIG. 8 .
- a first textual input is received in a data processing device.
- the first textual input is entered in a search engine query input field by a user.
- the user can enter the search string 204 “New York” in a browser query field of the browser 208 .
- the data processing device that receives the first textual input can be the client 209 upon which the browser 208 is running.
- the first textual input is automatically sent from the device to a first search service before the user submits a request for a search.
- Sending the first textual input can include waiting a predetermined amount of time after receiving each token of the first textual input. For example, while the user is entering the search string 204 “New York,” the system can wait until the user has paused slightly while entering the text.
- the search application 210 can receive the first textual input for processing. Receipt can occur over the network 106 , such as the Internet. In some implementations, the system can wait until it is probable that the user has completed one or more query terms (e.g., whole words, etc.) or has provided enough text input to warrant sending the text input to the first search service.
- query terms e.g., whole words, etc.
- a set of first input completions is received from the first search service.
- Each first input completion is textually different from the first textual input and selectable as an alternative to the first textual input.
- the search application 210 can use the suggest engine 212 to identify completions.
- completions corresponding to the first textual input can be identified. Accordingly, based on the search string 204 “New York,” the system can identify completions such as “New York Times . . . New York City . . . New York Jets . . . New York Vacations.”
- a most likely completion from the first set of completions is determined. For example, using processes and probabilistic scores described above, a most likely completion, such as “New York Times,” can be determined. In some implementations, the determination can be made by the suggest engine 212 .
- one or more matching content items based on the most likely completion are determined.
- the content items may be one or more online ads associated with the New York Times, including an ad that may include the URL www.newyorktimes.com.
- the matching content item returned can be based on an aggregate score based on multiple completions that result in the same content item.
- a quality of a bid of each matching content item is determined.
- the bid can represent an amount that a content provider has set as the maximum compensation for presentation of the associated content item.
- the quality of bid determined in this stage can determine the likelihood that one content provider's item is chosen over one or more other content providers' items.
- other matching content items in addition to an ad for the New York Times may be associated with the completions in the current example.
- the quality of bid can determine which content item may be selected.
- a winning matching content item based at least upon the bid is determined.
- the determination can be made through an auction. For example, based on the price that content providers have bid to serve their ads, the content item for the New York Times may be selected, using an auction, over that of another ad.
- the auction used can be based in part on budget throttling in order to use up the budgets of content providers who, for example, may be behind in spending their advertising budgets.
- pre-determined thresholds such as the threshold T — 0 described above, can be used.
- the winning matching content item is displayed along with the first input suggestions in a first portion of a user interface.
- the winning matching content item e.g., the New York Times ad
- the control 202 can be served with the control 202 that is sent back to the user. Accordingly, the user may see the ad for the New York Times included in the suggestions provided, for example, adjacent to the search box in the user's web browser.
- Method 1200 can be performed by a content serving system such as content serving system 800 shown in FIG. 8 .
- a first textual input is received in a data processing device.
- the first textual input is entered in a search engine query input field by a user.
- the user can enter the search string 204 “New York” in a browser query field of the browser 208 .
- the data processing device that receives the first textual input can be the client 209 upon which the browser 208 is running.
- the first textual input can be automatically sent from the device to a first search service before the user submits a request for a search. Sending the first textual input can include waiting a predetermined amount of time after receiving each token of the first textual input as described above
- a set of first input completions is identified.
- the set of first input completions can be received from a first search service.
- Each first input completion is textually different from the first textual input and selectable as an alternative to the first textual input.
- the search application 210 can use the suggest engine 212 to identify completions.
- one or more matching content items associated with the completions are determined.
- the content items may be one or more online ads associated with the New York Times, including an ad that may include the URL www.newyorktimes.com.
- the matching content item returned can be based on an aggregate score based on multiple completions that result in the same content item.
- scores for matching content items are determined. Determining the scores includes applying one or more filtering functions to the scores, as described above. Scores can be determined, for instance, for each content item-completion pair. In some implementations, a score can include one or more factors including a likelihood that a given completion represents the request and a quality of the content item as compared to the completion (e.g., how good of a match the content item is to the completion). For example, a score can represent the likelihood that “google” is a proper or valid completion for the prefix “goog”.
- the score can also represent the quality of the corresponding content item (e.g., www.google.com) corresponding to the completion (e.g., “google” or “google earth”).
- the quality aspect of the score corresponding to a content item can provide a quantitative measure of how useful the content item may be to a user, for example.
- the scores determined in this stage can be initial scores which can be used in subsequent stages.
- a bid for each matching content item is determined.
- the bid can represent an amount that a content provider has set as the maximum compensation for presentation of the associated content item.
- an auction can be conducted including determining a winning matching content item based at least upon the bid and the scores. For example, based on the price that content providers have bid to serve their ads, the content item for the New York Times may be selected, using an auction, over that of another ad.
- scores are used. In some implementations, the scores can be based on the disabling functions described above.
- display data associated with the winning matching content item is identified so as to facilitate the display of the winning matching content item along with relevant completions in a first portion of a user interface.
- Method 1300 can be performed by a content serving system such as content serving system 800 shown in FIG. 8 .
- a first textual input is received.
- the text input is entered in a search engine query input field by a user.
- the user can enter the search string 204 “New York” in a browser query field of the browser 208 .
- the first textual input is sent to a first search service before the user submits a request for a search.
- each first input suggestion is textually different from the first textual input and selectable as an alternative to the first textual input.
- Ranking and pricing can include identifying identical content items associated with more than one of the first input suggestions and ranking and pricing a content item as an aggregate of relevant scores and bids associated with respective content items and suggestions.
- one or more content items from a same customer or domain are removed from further consideration.
- the redundant content items can be removed from consideration by the system. Referring to FIG. 2 , the search application 210 can determine such redundant content items and remove them from consideration if found.
- a highest ranking content item is selected.
- the content items ranked in this stage are the ones remaining after duplicate content items have been eliminated from consideration
- display data associated with the highest ranking content item is identified.
- FIG. 14 is a block diagram of computing devices 1400 , 1450 that may be used to implement the systems and methods described in this document, as either a client or as a server or plurality of servers.
- Computing device 1400 is intended to represent various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers.
- Computing device 1450 is intended to represent various forms of mobile devices, such as personal digital assistants, cellular telephones, smartphones, and other similar computing devices.
- the components shown here, their connections and relationships, and their functions, are meant to be exemplary only, and are not meant to limit implementations of the inventions described and/or claimed in this document.
- Computing device 1400 includes a processor 1402 , memory 1404 , a storage device 1406 , a high-speed interface 1408 connecting to memory 1404 and high-speed expansion ports 1410 , and a low speed interface 1412 connecting to low speed bus 1414 and storage device 1406 .
- Each of the components 1402 , 1404 , 1406 , 1408 , 1410 , and 1412 are interconnected using various busses, and may be mounted on a common motherboard or in other manners as appropriate.
- the processor 1402 can process instructions for execution within the computing device 1400 , including instructions stored in the memory 1404 or on the storage device 1406 to display graphical information for a GUI on an external input/output device, such as display 1416 coupled to high speed interface 1408 .
- multiple processors and/or multiple buses may be used, as appropriate, along with multiple memories and types of memory.
- multiple computing devices 1400 may be connected, with each device providing portions of the necessary operations (e.g., as a server bank, a group of blade servers, or a multi-processor system).
- the memory 1404 stores information within the computing device 1400 .
- the memory 1404 is a computer-readable medium.
- the memory 1404 is a volatile memory unit or units.
- the memory 1404 is a non-volatile memory unit or units.
- the storage device 1406 is capable of providing mass storage for the computing device 1400 .
- the storage device 1406 is a computer-readable medium.
- the storage device 1406 may be a floppy disk device, a hard disk device, an optical disk device, or a tape device, a flash memory or other similar solid state memory device, or an array of devices, including devices in a storage area network or other configurations.
- a computer program product is tangibly embodied in an information carrier.
- the computer program product contains instructions that, when executed, perform one or more methods, such as those described above.
- the information carrier is a computer- or machine-readable medium, such as the memory 1404 , the storage device 1406 , or a memory on processor 1402 .
- the high speed controller 1408 manages bandwidth-intensive operations for the computing device 1400 , while the low speed controller 1412 manages lower bandwidth-intensive operations. Such allocation of duties is exemplary only.
- the high-speed controller 1408 is coupled to memory 1404 , display 1416 (e.g., through a graphics processor or accelerator), and to high-speed expansion ports 1410 , which may accept various expansion cards (not shown).
- low-speed controller 1412 is coupled to storage device 1406 and low-speed expansion port 1414 .
- the low-speed expansion port which may include various communication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet) may be coupled to one or more input/output devices, such as a keyboard, a pointing device, a scanner, or a networking device such as a switch or router, e.g., through a network adapter.
- input/output devices such as a keyboard, a pointing device, a scanner, or a networking device such as a switch or router, e.g., through a network adapter.
- the computing device 1400 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as a standard server 1420 , or multiple times in a group of such servers. It may also be implemented as part of a rack server system 1424 . In addition, it may be implemented in a personal computer such as a laptop computer 1422 . Alternatively, components from computing device 1400 may be combined with other components in a mobile device (not shown), such as device 1450 . Each of such devices may contain one or more of computing device 1400 , 1450 , and an entire system may be made up of multiple computing devices 1400 , 1450 communicating with each other.
- Computing device 1450 includes a processor 1452 , memory 1464 , an input/output device such as a display 1454 , a communication interface 1466 , and a transceiver 1468 , among other components.
- the device 1450 may also be provided with a storage device, such as a microdrive or other device, to provide additional storage.
- a storage device such as a microdrive or other device, to provide additional storage.
- Each of the components 1450 , 1452 , 1464 , 1454 , 1466 , and 1468 are interconnected using various buses, and several of the components may be mounted on a common motherboard or in other manners as appropriate.
- the processor 1452 can process instructions for execution within the computing device 1450 , including instructions stored in the memory 1464 .
- the processor may also include separate analog and digital processors.
- the processor may provide, for example, for coordination of the other components of the device 1450 , such as control of user interfaces, applications run by device 1450 , and wireless communication by device 1450 .
- Processor 1452 may communicate with a user through control interface 1458 and display interface 1456 coupled to a display 1454 .
- the display 1454 may be, for example, a TFT LCD display or an OLED display, or other appropriate display technology.
- the display interface 1456 may comprise appropriate circuitry for driving the display 1454 to present graphical and other information to a user.
- the control interface 1458 may receive commands from a user and convert them for submission to the processor 1452 .
- an external interface 1462 may be provide in communication with processor 1452 , so as to enable near area communication of device 1450 with other devices. External interface 1462 may provide, for example, for wired communication (e.g., via a docking procedure) or for wireless communication (e.g., via Bluetooth or other such technologies).
- the memory 1464 stores information within the computing device 1450 .
- the memory 1464 is a computer-readable medium.
- the memory 1464 is a volatile memory unit or units.
- the memory 1464 is a non-volatile memory unit or units.
- Expansion memory 1474 may also be provided and connected to device 1450 through expansion interface 1472 , which may include, for example, a SIMM card interface. Such expansion memory 1474 may provide extra storage space for device 1450 , or may also store applications or other information for device 1450 .
- expansion memory 1474 may include instructions to carry out or supplement the processes described above, and may include secure information also.
- expansion memory 1474 may be provide as a security module for device 1450 , and may be programmed with instructions that permit secure use of device 1450 .
- secure applications may be provided via the SIMM cards, along with additional information, such as placing identifying information on the SIMM card in a non-hackable manner.
- the memory may include for example, flash memory and/or MRAM memory, as discussed below.
- a computer program product is tangibly embodied in an information carrier.
- the computer program product contains instructions that, when executed, perform one or more methods, such as those described above.
- the information carrier is a computer- or machine-readable medium, such as the memory 1464 , expansion memory 1474 , or memory on processor 1452 .
- Device 1450 may communicate wirelessly through communication interface 1466 , which may include digital signal processing circuitry where necessary. Communication interface 1466 may provide for communications under various modes or protocols, such as GSM voice calls, SMS, EMS, or MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others. Such communication may occur, for example, through radio-frequency transceiver 1468 . In addition, short-range communication may occur, such as using a Bluetooth, WiFi, or other such transceiver (not shown). In addition, GPS receiver module 1470 may provide additional wireless data to device 1450 , which may be used as appropriate by applications running on device 1450 .
- GPS receiver module 1470 may provide additional wireless data to device 1450 , which may be used as appropriate by applications running on device 1450 .
- Device 1450 may also communication audibly using audio codec 1460 , which may receive spoken information from a user and convert it to usable digital information. Audio codex 1460 may likewise generate audible sound for a user, such as through a speaker, e.g., in a handset of device 1450 . Such sound may include sound from voice telephone calls, may include recorded sound (e.g., voice messages, music files, etc.) and may also include sound generated by applications operating on device 1450 .
- Audio codec 1460 may receive spoken information from a user and convert it to usable digital information. Audio codex 1460 may likewise generate audible sound for a user, such as through a speaker, e.g., in a handset of device 1450 . Such sound may include sound from voice telephone calls, may include recorded sound (e.g., voice messages, music files, etc.) and may also include sound generated by applications operating on device 1450 .
- the computing device 1450 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as a cellular telephone 1480 . It may also be implemented as part of a smartphone 1482 , personal digital assistant, or other similar mobile device.
- implementations of the systems and techniques described here can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof.
- ASICs application specific integrated circuits
- These various implementations can include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.
- a display device e.g., a CRT (cathode ray tube) or
- LCD liquid crystal display
- keyboard and a pointing device e.g., a mouse or a trackball
- Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form, including acoustic, speech, or tactile input.
- the systems and techniques described here can be implemented in a computing system that includes a back end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front end component (e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the systems and techniques described here), or any combination of such back end, middleware, or front end components.
- the components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (“LAN”), a wide area network (“WAN”), and the Internet.
- LAN local area network
- WAN wide area network
- the Internet the global information network
- the computing system can include clients and servers.
- a client and server are generally remote from each other and typically interact through a communication network.
- the relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Development Economics (AREA)
- General Business, Economics & Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
p:=the prefix that the user typed in (1)
{C — {i}}:=the set of completions that matched p (2)
c — {i}:=probability(completion C — {i}|prefix p), for each i (3)
-
- A_{j}:=the set of candidate content items that can be shown for p
- (Note: multiple completions C_{i} to could possibly match a given content item candidate A_{j})
- q_{ij}:=relevance score for content item candidate A_{j} if the query was C_{i}
- CTR:=click-through rate, or an content item's impression rate or measure of clicks per impression
- pCTR:=predicted CTR, or the overall predicted effect of an content item
- A_{j}:=the set of candidate content items that can be shown for p
c1*q1+c2*q2+ . . . +cn*qn
c1*q1+c2*q2
q — jmerged=Sum(q — ij*c — i) (8)
DF1— {j}=sum(c — {i})
over all i where:
q — {ij}>T —0
DF1— {j}<
DF2— {j}=sum(c — {i}*q — {i})
DF2— {j}<
q — i*Bid— i>K′
ecpm+A*pCTR+B*pCTR*quality_score>=C
ecpm+A*pCTR>C
results in:
sum— i — {b — i*q — i*c — i}+A*sum— i — {q — i*c — i}>C
r — j=(C−A*sum— i — {q — i*c — i})*b — j/sum — i — {b — i*q — i*c — i}
sum— j — {c — j*q — j*r — i}=C−A*sum— i — {pi}.
Claims (18)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/939,983 US8504437B1 (en) | 2009-11-04 | 2010-11-04 | Dynamically selecting and presenting content relevant to user input |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US25816009P | 2009-11-04 | 2009-11-04 | |
US12/939,983 US8504437B1 (en) | 2009-11-04 | 2010-11-04 | Dynamically selecting and presenting content relevant to user input |
Publications (1)
Publication Number | Publication Date |
---|---|
US8504437B1 true US8504437B1 (en) | 2013-08-06 |
Family
ID=48876471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/939,983 Active US8504437B1 (en) | 2009-11-04 | 2010-11-04 | Dynamically selecting and presenting content relevant to user input |
Country Status (1)
Country | Link |
---|---|
US (1) | US8504437B1 (en) |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130054667A1 (en) * | 2011-08-26 | 2013-02-28 | Accenture Global Service Limited | Preparing content packages |
US20130110643A1 (en) * | 2011-10-28 | 2013-05-02 | Yahoo! Inc., A Delaware Corporation | Methods and systems for facilitating caching of advertisements |
US20140032314A1 (en) * | 2012-07-30 | 2014-01-30 | Nokia Corporation | Method and apparatus for providing collection-based feature programming |
US20140108939A1 (en) * | 2012-10-15 | 2014-04-17 | Nokia Corporation | Method and apparatus for managing online content collections using a single programming tool |
US20140337131A1 (en) * | 2011-09-23 | 2014-11-13 | Amazon Technologies, Inc. | Keyword determinations from voice data |
US20150012519A1 (en) * | 2012-03-26 | 2015-01-08 | Shenzhen Shi Ji Guang Su Information Technology Co., Ltd. | Recommendation search method for search engine, device and computer readable storage medium |
US9043351B1 (en) * | 2011-03-08 | 2015-05-26 | A9.Com, Inc. | Determining search query specificity |
US20150161201A1 (en) * | 2009-11-02 | 2015-06-11 | Google Inc. | Clustering query refinements by inferred user intent |
US20150169789A1 (en) * | 2012-08-10 | 2015-06-18 | Google Inc. | Providing local data with search results |
WO2015103198A1 (en) * | 2013-12-31 | 2015-07-09 | Google Inc. | Surfacing navigational search results |
US9122755B2 (en) | 2013-02-26 | 2015-09-01 | Sap Se | Instantaneous incremental search user interface |
US20150254294A1 (en) * | 2014-03-04 | 2015-09-10 | International Business Machines Corporation | Dynamic result set caching with a database accelerator |
WO2015134306A1 (en) * | 2014-03-03 | 2015-09-11 | Microsoft Technology Licensing, Llc | Personalized information query suggestions |
US9135307B1 (en) * | 2012-12-27 | 2015-09-15 | Google Inc. | Selectively generating alternative queries |
WO2015179556A1 (en) * | 2014-05-22 | 2015-11-26 | Alibaba Group Holding Limited | Method, apparatus and system for processing promotion information |
US20160048489A1 (en) * | 2013-04-04 | 2016-02-18 | Sony Corporation | Information processing device, data input assistance method, and program |
US20160092511A1 (en) * | 2014-09-29 | 2016-03-31 | Linkedin Corporation | Interactive construction of queries |
US20160124585A1 (en) * | 2014-10-30 | 2016-05-05 | Erin Louise Delacroix | Typeahead features |
US20160335362A1 (en) * | 2008-05-26 | 2016-11-17 | Kenshoo Ltd. | System for finding website invitation cueing keywords and for atrribute-based generation of invitation-cueing instructions |
WO2017087344A1 (en) * | 2015-11-19 | 2017-05-26 | Microsoft Technology Licensing, Llc | Displaying graphical representations of query suggestions |
US9697557B2 (en) * | 2014-05-28 | 2017-07-04 | Blake Quinn | System and method of electronic searching and shopping carts |
US20180114252A1 (en) * | 2016-10-20 | 2018-04-26 | Facebook, Inc. | Determining accuracy of a model determining a likelihood of a user performing an infrequent action after presentation of content |
WO2018129269A1 (en) * | 2017-01-09 | 2018-07-12 | Alibaba Group Holding Limited | Execution of multiple applications on a device |
US10297265B2 (en) * | 2006-07-08 | 2019-05-21 | Staton Techiya, Llc | Personal audio assistant device and method |
US10503741B2 (en) | 2014-08-20 | 2019-12-10 | Samsung Electronics Co., Ltd. | Electronic system with search mechanism and method of operation thereof |
US11171908B1 (en) * | 2018-02-28 | 2021-11-09 | Snap Inc. | Ranking content for display |
US11409805B2 (en) | 2019-05-30 | 2022-08-09 | AdMarketplace | Computer implemented system and methods for implementing a search engine access point enhanced for suggested listing navigation |
Citations (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050076019A1 (en) | 2003-10-06 | 2005-04-07 | Lincoln Jackson | Smart browser panes |
US20050283468A1 (en) | 2004-06-22 | 2005-12-22 | Kamvar Sepandar D | Anticipated query generation and processing in a search engine |
US7047242B1 (en) * | 1999-03-31 | 2006-05-16 | Verizon Laboratories Inc. | Weighted term ranking for on-line query tool |
US20060217953A1 (en) * | 2005-01-21 | 2006-09-28 | Prashant Parikh | Automatic dynamic contextual data entry completion system |
US20060248078A1 (en) | 2005-04-15 | 2006-11-02 | William Gross | Search engine with suggestion tool and method of using same |
US20070061317A1 (en) | 2005-09-14 | 2007-03-15 | Jorey Ramer | Mobile search substring query completion |
US20070162481A1 (en) | 2006-01-10 | 2007-07-12 | Millett Ronald P | Pattern index |
US20070162422A1 (en) | 2005-12-30 | 2007-07-12 | George Djabarov | Dynamic search box for web browser |
US20080109401A1 (en) | 2006-09-12 | 2008-05-08 | Microsoft Corporation | Presenting predetermined search results with query suggestions |
US20080114743A1 (en) | 2006-03-30 | 2008-05-15 | Veveo, Inc. | Method and system for incrementally selecting and providing relevant search engines in response to a user query |
US20080140519A1 (en) | 2006-12-08 | 2008-06-12 | Microsoft Corporation | Advertising based on simplified input expansion |
US20080214156A1 (en) | 2005-09-14 | 2008-09-04 | Jorey Ramer | Mobile dynamic advertisement creation and placement |
US20090094145A1 (en) * | 2006-03-17 | 2009-04-09 | Nhn Corporation | Method and system for automatically completed general recommended word and advertisement recommended word |
US20090094211A1 (en) | 2007-10-05 | 2009-04-09 | Fujitsu Limited | Implementing an expanded search and providing expanded search results |
US20090106224A1 (en) | 2007-10-19 | 2009-04-23 | Xerox Corporation | Real-time query suggestion in a troubleshooting context |
US20090119289A1 (en) | 2004-06-22 | 2009-05-07 | Gibbs Kevin A | Method and System for Autocompletion Using Ranked Results |
US20090171929A1 (en) | 2007-12-26 | 2009-07-02 | Microsoft Corporation | Toward optimized query suggeston: user interfaces and algorithms |
US20090187515A1 (en) | 2008-01-17 | 2009-07-23 | Microsoft Corporation | Query suggestion generation |
US20090287680A1 (en) | 2008-05-14 | 2009-11-19 | Microsoft Corporation | Multi-modal query refinement |
US20090327235A1 (en) | 2008-06-27 | 2009-12-31 | Google Inc. | Presenting references with answers in forums |
US20100228710A1 (en) | 2009-02-24 | 2010-09-09 | Microsoft Corporation | Contextual Query Suggestion in Result Pages |
US20100306228A1 (en) | 2008-06-19 | 2010-12-02 | Boopsie, Inc. | Dynamic menus for multi-prefix interactive mobile searches using predictive text to yield targeted advertisements |
US20110060984A1 (en) * | 2009-09-06 | 2011-03-10 | Lee Yung-Chao | Method and apparatus for word prediction of text input by assigning different priorities to words on a candidate word list according to how many letters have been entered so far by a user |
US20110258035A1 (en) * | 2010-04-14 | 2011-10-20 | Microsoft Corporation | Considering user-relevant criteria when serving advertisements |
US20110264537A1 (en) * | 2008-09-18 | 2011-10-27 | Nhn Business Platform Corporation | Method for billing for search advertisement based on publication ratio, system and computer-readable recording medium |
-
2010
- 2010-11-04 US US12/939,983 patent/US8504437B1/en active Active
Patent Citations (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7047242B1 (en) * | 1999-03-31 | 2006-05-16 | Verizon Laboratories Inc. | Weighted term ranking for on-line query tool |
US20050076019A1 (en) | 2003-10-06 | 2005-04-07 | Lincoln Jackson | Smart browser panes |
US20050283468A1 (en) | 2004-06-22 | 2005-12-22 | Kamvar Sepandar D | Anticipated query generation and processing in a search engine |
US20090119289A1 (en) | 2004-06-22 | 2009-05-07 | Gibbs Kevin A | Method and System for Autocompletion Using Ranked Results |
US20060217953A1 (en) * | 2005-01-21 | 2006-09-28 | Prashant Parikh | Automatic dynamic contextual data entry completion system |
US20060248078A1 (en) | 2005-04-15 | 2006-11-02 | William Gross | Search engine with suggestion tool and method of using same |
US20080214156A1 (en) | 2005-09-14 | 2008-09-04 | Jorey Ramer | Mobile dynamic advertisement creation and placement |
US20070061317A1 (en) | 2005-09-14 | 2007-03-15 | Jorey Ramer | Mobile search substring query completion |
US20070162422A1 (en) | 2005-12-30 | 2007-07-12 | George Djabarov | Dynamic search box for web browser |
US20070162481A1 (en) | 2006-01-10 | 2007-07-12 | Millett Ronald P | Pattern index |
US20090094145A1 (en) * | 2006-03-17 | 2009-04-09 | Nhn Corporation | Method and system for automatically completed general recommended word and advertisement recommended word |
US20080114743A1 (en) | 2006-03-30 | 2008-05-15 | Veveo, Inc. | Method and system for incrementally selecting and providing relevant search engines in response to a user query |
US20080109401A1 (en) | 2006-09-12 | 2008-05-08 | Microsoft Corporation | Presenting predetermined search results with query suggestions |
US20080140519A1 (en) | 2006-12-08 | 2008-06-12 | Microsoft Corporation | Advertising based on simplified input expansion |
US20090094211A1 (en) | 2007-10-05 | 2009-04-09 | Fujitsu Limited | Implementing an expanded search and providing expanded search results |
US20090106224A1 (en) | 2007-10-19 | 2009-04-23 | Xerox Corporation | Real-time query suggestion in a troubleshooting context |
US20090171929A1 (en) | 2007-12-26 | 2009-07-02 | Microsoft Corporation | Toward optimized query suggeston: user interfaces and algorithms |
US20090187515A1 (en) | 2008-01-17 | 2009-07-23 | Microsoft Corporation | Query suggestion generation |
US20090287680A1 (en) | 2008-05-14 | 2009-11-19 | Microsoft Corporation | Multi-modal query refinement |
US20100306228A1 (en) | 2008-06-19 | 2010-12-02 | Boopsie, Inc. | Dynamic menus for multi-prefix interactive mobile searches using predictive text to yield targeted advertisements |
US20090327235A1 (en) | 2008-06-27 | 2009-12-31 | Google Inc. | Presenting references with answers in forums |
US20110264537A1 (en) * | 2008-09-18 | 2011-10-27 | Nhn Business Platform Corporation | Method for billing for search advertisement based on publication ratio, system and computer-readable recording medium |
US20100228710A1 (en) | 2009-02-24 | 2010-09-09 | Microsoft Corporation | Contextual Query Suggestion in Result Pages |
US20110060984A1 (en) * | 2009-09-06 | 2011-03-10 | Lee Yung-Chao | Method and apparatus for word prediction of text input by assigning different priorities to words on a candidate word list according to how many letters have been entered so far by a user |
US20110258035A1 (en) * | 2010-04-14 | 2011-10-20 | Microsoft Corporation | Considering user-relevant criteria when serving advertisements |
Non-Patent Citations (8)
Title |
---|
"Google Suggests Search Destinations." TechWeb. Dec. 10, 2004. [recovered from ProQuest on Mar. 15, 2013]. * |
Bast, Holger; ‘Type Less, Find More: Fast Autocompletion Search With a Succinct Index;’ Proceedings of the 29th Annual International ACM Sigir Conference on Research and Development in Information Retrieval; Seattle Washington, Aug. 6-11, 2006; pp. 364-371. |
Bast, Holger; 'Type Less, Find More: Fast Autocompletion Search With a Succinct Index;' Proceedings of the 29th Annual International ACM Sigir Conference on Research and Development in Information Retrieval; Seattle Washington, Aug. 6-11, 2006; pp. 364-371. |
International Search Report and Written Opinion for Application No. PCTUS2010047409; dated Jul. 7, 2011, 23 pages. |
International Search Report and Written Opinion; PCT/US2010/047409; Mar. 15, 2012; 15 pages. |
Invitation to Pay Additional Fees and, Where Applicable, Protest Fee and Partial International Search for International Application No. PCT/US2010/047409; dated Jan. 19, 2011; 9 pages. |
Li, Guoliang; "Efficient Type-Ahead Search on Relational Data: A Tastier Approach;" Proceedings of the 35th Sigmod International Conference on Management of Data; Providence, Rhode Island, Jun. 29-Jul. 2, 2009, pp. 695-706. |
White, Ryen W.; "Studying the Use of Popular Destinations to Enhance Web Search Interaction;" Proceedings of 30th Annual International ACM Sigir Conference on Research and Development in Information Retrieval; Amsterdam, The Netherlands, Jul. 23-27, 2007, pp. 159-166. |
Cited By (54)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10297265B2 (en) * | 2006-07-08 | 2019-05-21 | Staton Techiya, Llc | Personal audio assistant device and method |
US20160335362A1 (en) * | 2008-05-26 | 2016-11-17 | Kenshoo Ltd. | System for finding website invitation cueing keywords and for atrribute-based generation of invitation-cueing instructions |
US20150161201A1 (en) * | 2009-11-02 | 2015-06-11 | Google Inc. | Clustering query refinements by inferred user intent |
US9582766B2 (en) | 2009-11-02 | 2017-02-28 | Google Inc. | Clustering query refinements by inferred user intent |
US9323806B2 (en) * | 2009-11-02 | 2016-04-26 | Google Inc. | Clustering query refinements by inferred user intent |
US9043351B1 (en) * | 2011-03-08 | 2015-05-26 | A9.Com, Inc. | Determining search query specificity |
US8996650B2 (en) * | 2011-08-26 | 2015-03-31 | Accenture Global Services Limited | Preparing content packages |
US9672534B2 (en) | 2011-08-26 | 2017-06-06 | Accenture Global Services Limited | Preparing content packages |
US20130054667A1 (en) * | 2011-08-26 | 2013-02-28 | Accenture Global Service Limited | Preparing content packages |
US20140337131A1 (en) * | 2011-09-23 | 2014-11-13 | Amazon Technologies, Inc. | Keyword determinations from voice data |
US10373620B2 (en) | 2011-09-23 | 2019-08-06 | Amazon Technologies, Inc. | Keyword determinations from conversational data |
US9679570B1 (en) | 2011-09-23 | 2017-06-13 | Amazon Technologies, Inc. | Keyword determinations from voice data |
US9111294B2 (en) * | 2011-09-23 | 2015-08-18 | Amazon Technologies, Inc. | Keyword determinations from voice data |
US11580993B2 (en) | 2011-09-23 | 2023-02-14 | Amazon Technologies, Inc. | Keyword determinations from conversational data |
US10692506B2 (en) | 2011-09-23 | 2020-06-23 | Amazon Technologies, Inc. | Keyword determinations from conversational data |
US20130110643A1 (en) * | 2011-10-28 | 2013-05-02 | Yahoo! Inc., A Delaware Corporation | Methods and systems for facilitating caching of advertisements |
US9767465B2 (en) * | 2011-10-28 | 2017-09-19 | Excalibur Ip, Llc | Methods and systems for facilitating caching of advertisements |
US20150012519A1 (en) * | 2012-03-26 | 2015-01-08 | Shenzhen Shi Ji Guang Su Information Technology Co., Ltd. | Recommendation search method for search engine, device and computer readable storage medium |
US9934312B2 (en) * | 2012-03-26 | 2018-04-03 | Shenzhen Shi Ji Guang Su Information Technology Co., Ltd. | Recommendation search method for search engine, device and computer readable storage medium |
US20140032314A1 (en) * | 2012-07-30 | 2014-01-30 | Nokia Corporation | Method and apparatus for providing collection-based feature programming |
US9418156B2 (en) * | 2012-08-10 | 2016-08-16 | Google Inc. | Providing local data with search results |
US20150169789A1 (en) * | 2012-08-10 | 2015-06-18 | Google Inc. | Providing local data with search results |
US20140108939A1 (en) * | 2012-10-15 | 2014-04-17 | Nokia Corporation | Method and apparatus for managing online content collections using a single programming tool |
US9135307B1 (en) * | 2012-12-27 | 2015-09-15 | Google Inc. | Selectively generating alternative queries |
US9122755B2 (en) | 2013-02-26 | 2015-09-01 | Sap Se | Instantaneous incremental search user interface |
US9940316B2 (en) * | 2013-04-04 | 2018-04-10 | Sony Corporation | Determining user interest data from different types of inputted context during execution of an application |
US20160048489A1 (en) * | 2013-04-04 | 2016-02-18 | Sony Corporation | Information processing device, data input assistance method, and program |
WO2015103198A1 (en) * | 2013-12-31 | 2015-07-09 | Google Inc. | Surfacing navigational search results |
US9454621B2 (en) | 2013-12-31 | 2016-09-27 | Google Inc. | Surfacing navigational search results |
RU2680757C2 (en) * | 2013-12-31 | 2019-02-26 | Гугл Инк. | Surfacing navigational search results |
US10095748B2 (en) | 2014-03-03 | 2018-10-09 | Microsoft Technology Licensing, Llc | Personalized information query suggestions |
WO2015134306A1 (en) * | 2014-03-03 | 2015-09-11 | Microsoft Technology Licensing, Llc | Personalized information query suggestions |
US9613096B2 (en) * | 2014-03-04 | 2017-04-04 | International Business Machines Corporation | Dynamic result set caching with a database accelerator |
US10210198B2 (en) | 2014-03-04 | 2019-02-19 | International Business Machines Corporation | Dynamic result set caching with a database accelerator |
US20150254294A1 (en) * | 2014-03-04 | 2015-09-10 | International Business Machines Corporation | Dynamic result set caching with a database accelerator |
US20150254245A1 (en) * | 2014-03-04 | 2015-09-10 | International Business Machines Corporation | Dynamic result set caching with a database accelerator |
US9613097B2 (en) * | 2014-03-04 | 2017-04-04 | International Business Machines Corporation | Dynamic result set caching with a database accelerator |
US10127269B2 (en) | 2014-03-04 | 2018-11-13 | International Business Machines Corporation | Dynamic result set caching with a database accelerator |
WO2015179556A1 (en) * | 2014-05-22 | 2015-11-26 | Alibaba Group Holding Limited | Method, apparatus and system for processing promotion information |
US9697557B2 (en) * | 2014-05-28 | 2017-07-04 | Blake Quinn | System and method of electronic searching and shopping carts |
US10503741B2 (en) | 2014-08-20 | 2019-12-10 | Samsung Electronics Co., Ltd. | Electronic system with search mechanism and method of operation thereof |
US20160092511A1 (en) * | 2014-09-29 | 2016-03-31 | Linkedin Corporation | Interactive construction of queries |
US20160124585A1 (en) * | 2014-10-30 | 2016-05-05 | Erin Louise Delacroix | Typeahead features |
US10042514B2 (en) * | 2014-10-30 | 2018-08-07 | Microsoft Technology Licensing, Llc | Typeahead features |
US10204156B2 (en) | 2015-11-19 | 2019-02-12 | Microsoft Technology Licensing, Llc | Displaying graphical representations of query suggestions |
WO2017087344A1 (en) * | 2015-11-19 | 2017-05-26 | Microsoft Technology Licensing, Llc | Displaying graphical representations of query suggestions |
US20180114252A1 (en) * | 2016-10-20 | 2018-04-26 | Facebook, Inc. | Determining accuracy of a model determining a likelihood of a user performing an infrequent action after presentation of content |
US11222366B2 (en) * | 2016-10-20 | 2022-01-11 | Meta Platforms, Inc. | Determining accuracy of a model determining a likelihood of a user performing an infrequent action after presentation of content |
US20180196584A1 (en) * | 2017-01-09 | 2018-07-12 | Alibaba Group Holding Limited | Execution of multiple applications on a device |
WO2018129269A1 (en) * | 2017-01-09 | 2018-07-12 | Alibaba Group Holding Limited | Execution of multiple applications on a device |
US11171908B1 (en) * | 2018-02-28 | 2021-11-09 | Snap Inc. | Ranking content for display |
US20220029944A1 (en) * | 2018-02-28 | 2022-01-27 | Snap Inc. | Ranking content for display |
US11611525B2 (en) * | 2018-02-28 | 2023-03-21 | Snap Inc. | Ranking content for display |
US11409805B2 (en) | 2019-05-30 | 2022-08-09 | AdMarketplace | Computer implemented system and methods for implementing a search engine access point enhanced for suggested listing navigation |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8504437B1 (en) | Dynamically selecting and presenting content relevant to user input | |
US10089393B2 (en) | Selecting and presenting content relevant to user input | |
US20220051288A1 (en) | Presenting options for content delivery | |
US8099412B2 (en) | Query statistics provider | |
US8768922B2 (en) | Ad retrieval for user search on social network sites | |
US11263248B2 (en) | Presenting content in accordance with a placement designation | |
US20160253715A1 (en) | Hashtags and Content Presentation | |
US8548981B1 (en) | Providing relevance- and diversity-influenced advertisements including filtering | |
US9064264B2 (en) | Predicting visibility of content items | |
US20090006207A1 (en) | Using Previous User Search Query To Target Advertisements | |
US20100185687A1 (en) | Selecting advertisements | |
US10691679B2 (en) | Providing query completions based on data tuples | |
US20170109785A1 (en) | Providing content with branding labels | |
US20130339333A1 (en) | Providing a modified content item to a user | |
US20150142565A1 (en) | Targeting Content Based On Local Queries | |
US8886585B1 (en) | Search suggestions based on viewport content | |
AU2017216516B2 (en) | Predictive query completion and predictive search results | |
US20110276391A1 (en) | Expansion of term sets for use in advertisement selection | |
US8620925B1 (en) | System and method for identifying advertising opportunities | |
US10042936B1 (en) | Frequency-based content analysis | |
US9152634B1 (en) | Balancing content blocks associated with queries | |
US8688669B1 (en) | Content item searching and retrieval | |
US10019455B2 (en) | Selecting search queries for display with data associated with search terms |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: GOOGLE INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:AGARWAL, ASHISH;BARATLOO, ARASH;MA, QICHENG;AND OTHERS;SIGNING DATES FROM 20100809 TO 20100810;REEL/FRAME:025603/0719 |
|
AS | Assignment |
Owner name: GOOGLE INC., CALIFORNIA Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE CORRECT NAME OF FIFTH ASSIGNOR CHIU WAH KELVIN SO PREVIOUSLY RECORDED ON REEL 025603 FRAME 0719. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT;ASSIGNORS:AGARWAL, ASHISH;BARATLOO, ARASH;MA, QICHENG;AND OTHERS;SIGNING DATES FROM 20100809 TO 20100810;REEL/FRAME:025893/0671 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
AS | Assignment |
Owner name: GOOGLE LLC, CALIFORNIA Free format text: CHANGE OF NAME;ASSIGNOR:GOOGLE INC.;REEL/FRAME:044101/0299 Effective date: 20170929 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |