The disclosed embodiments relate generally to providing information to computer users.
As with traditional advertising, online advertising seeks to provide advertising to individuals likely to respond to the advertisement in some way, for example, by increasing a user's awareness of the brand or by ultimately stimulating a user to purchase a product or service. One way advertisers target a user is to provide advertisements that are related to the content of a web page that the user is viewing. Some advertising systems are designed to receive an input of content and return advertisements based on that content.
According to some embodiments, a method of presenting information includes identifying a set of content components, where each content component comprises at least a subset of a respective source content. A determination is made as to whether one or more in the set satisfies a condition. Content is identified in accordance with the determination and information is obtained relevant to the identified content.
For a better understanding of the nature and embodiments of the invention, reference should be made to the Description of Embodiments below, in conjunction with the following drawings in which like reference numerals refer to corresponding parts throughout the figures.
The client 102 can be any of a number of devices (e.g., a computer, an internet kiosk, a personal digital assistant, a cell phone, a gaming device, a desktop computer, or a laptop computer) and can include a client application 132, a client assistant 134, and other applications or data stored in client memory 136. The client application 132 can be a software application that permits a user to interact with the client 102 and/or network resources to perform one or more tasks. For example, the client application 132 can be a browser (e.g., Firefox) or other type of application that permits a user to search for, browse, and/or use resources (e.g., web pages and web services) on the client 102 and/or accessible via the communication network 104. The client assistant 134 can perform one or more tasks related to monitoring a user's activities with respect to the client application 132 and/or other applications, searching or browsing for resources (e.g., files) on the client 102, and processing information received from or being sent to information service 106. The client assistant 134 can be part of the client application 132, for instance a plug-in to the client application 132 (provided, for example, from various online sources), or provided as a stand-alone program. The client assistant 134 can be a web-based messaging application such as the client executable portion of the Google Gmail product. In particular, the client assistant 134 may be embedded in one or more web pages downloaded to the client 102 from a remote server. The client assistant 134 can include JavaScript instructions embedded in the one or more web pages, and those JavaScript instructions can be executed by the client 102 in an environment (e.g., a virtual machine environment or program interpreter) provided by the client application 132. Client memory 136 can store system information and information about a user, among other things.
The communication network 104 can be any local area network (LAN) and/or wide area network (WAN), such as an intranet, an extranet, or the Internet. It is sufficient that the communication network 104 provide communication capability between the clients 102 and the information service 106. In some embodiments, the communication network 104 uses the HyperText Transport Protocol (HTTP) to transport information using the Transmission Control Protocol/Internet Protocol (TCP/IP). HTTP permits client computers to access various resources available via the communication network 104. The various embodiments of the invention, however, are not limited to the use of any particular protocol. The term “resource” as used throughout this specification refers to any piece of information or service that is accessible via a Uniform Resource Locator (URL) and can be, for example, a web page, a document, a database, an image, or a computational object.
The conversation engine 110 can respond to a variety of requests from the client assistant 134 related to messages and return conversation-based responses via its connection with the communication network 104. A conversation can include one or more relevant messages relating to a conversation topic. Various criteria can be used to determine which messages are part of each distinct conversation. For example, an analysis can be made of the contents of a user's message and messages whose contents are found to be related can be grouped together. In another example, a thread identifier found in a message header can be used to identify related messages. In yet another example, a subject line in the message header can be used to identify related messages. The senders and recipients of the messages are considered participants in the conversation. All messages directed to a user of the information service 106 can be grouped into a plurality of conversations and presented to the user in a conversation-based format, individually or jointly. In a conversation list view, a user can see a listing of the user's conversations in summary form. In a conversation view, the user can see one or more of the conversation messages in an expanded form.
The information service 106 can create a snippet of a conversation and/or a message. A snippet provides a user with a preview of the contents of the conversation or message without the user having to open the conversation or the message. In a list of conversations, a snippet can be generated from the most recent message in the conversation. A snippet can also be extracted from the first message (e.g., an oldest message) in the conversation. A snippet can also be extracted from all the messages in the conversation according to predefined heuristic rules, e.g., listing a set of keywords appearing most frequently in the conversation. If the information service 106 is preparing a list of conversations in response to a search submitted by a user, the information service 106 can create a snippet including a highlighted portion that matches user-submitted query terms, which may be similar in one or more respects to snippets included in search results returned by a search engine, such as the Google search engine. In a conversation view, a snippet can be generated for one or more messages in the conversation. Snippets can be generated based on a user profile. A user profile can contain information about a user such as the user's preferences with respect to certain types or categories of information and/or terms. One or more user profiles can be stored in the user information database 126. Alternatively, or in addition to, a user profile can be stored in a cookie stored on a user's computer. The user profile can be provided to the information service 106 as part of a search request. User profiles can be created in a variety of ways, such as by receiving information from a user, and/or by inferring information about a user from the user's computing activities such as browsing, searching, messaging, and use of various software applications (e.g., a word processing application).
The SMTP gateway 122 is also connected to the communication network 104. The SMTP gateway 122 can be directly involved in receiving and sending messages. In some embodiments, the SMTP gateway 122, for example, transmits and receives messages using the simple mail transfer protocol (SMTP). The SMTP gateway 122 can receive a new message from the communication network 104 and send the message to conversation engine 110 for additional processing. Additionally, the SMTP gateway 122 can receive messages from the conversation engine 110 and then transmit (via the communication network 104) those messages to recipient addresses specified in the messages.
The one or more auxiliary services servers 120 can provide additional services to the conversation engine 110. The auxiliary services servers 120 can, for example, include a spam detection module for detecting and processing spam and/or an attachment management module for managing the storage and retrieval of files attached to messages.
As mentioned above, the conversation engine 110 can be connected to a targeted information processor 124. The targeted information processor 124 can provide information items for display to a user at the client 102. The targeted information processor 124 can provide, for example, advertisements and/or other information items related to content (e.g., messages or conversations) being provided to the client assistant 134. The targeted information processor 124 can be connected to the user information database 126 to use information about a user (e.g., a user profile) to affect the targeted information provided to the user.
As mentioned above, the client 102 can include a client application 132 and a client assistant 134. The client application 132 can provide a window used for displaying. conversations. The conversations and messages in the conversations can be encoded using HyperText Markup Language (HTML), eXtensible Markup Language (XML), or any other appropriate markup language or encoding, and then rendered by the client application 132. When a user submits a request through the client application 132 to the information service 106 to access messages stored in the user's account, the information service 106 identifies conversations in the user's account in accordance with the user's request and transfers one or more portions of them as well as a set of display instructions back to the client 102. The client assistant 134 can, in response, generate one or more forms in accordance with the display instructions, where each form can include information of some of the conversations. The forms can then be submitted to and rendered by the application 132. In one embodiment, the client assistant 134 may alternatively exist and operate in the information service 106.
The information service 106 and the client assistant 134 can work together to allow a user to view and/or search messages in a user's message account and to present the search results in a highly intuitive fashion. The information service 106 can extract information from a user's message account (e.g., an e-mail account) or process a message being composed by the user, while the client assistant 134 can assist in rendering the information prepared by the information service 106. In other embodiments, a different division of duties between the information service 106 and the client assistant 134 can be used. Because many of the tasks can be performed by either the information service 106 or the client assistant 134 or by the two working together, these two components are sometimes referred to jointly in this specification as the “conversation system”.
The conversation system can provide at least two different views including a conversation list view and a conversation view, both as mentioned briefly above. In a conversation list view, a plurality of conversations can be displayed, where each conversation can be displayed in a summary form. For example, each conversation can be represented by a number of conversation elements. The conversation elements can include one or more of: a number indicating the number of messages in the conversation, a list of one or more of the identifiers or names of the senders of messages in the conversation, a conversation description (e.g., the text of a subject line of one of the messages in a conversation), a date/time value of the conversation (e.g., a date/time value of the last received message in the conversation), and a snippet from one or more of the messages in the conversation. In some embodiments, each conversation can be represented in a single row in a list of conversations.
In a conversation view, one or more messages from a conversation can be displayed. Each message can be displayed in one of a number of various modes, for example an expanded mode, a compacted mode, or a compressed mode. In an expanded mode, the body of the message can be displayed along with, for example, header information including the names or other identifiers of the sender and the recipients of the message, a date/time of the message, routing information, and other properties of the message. An expanded mode can be used, for example, for messages which are new. In a compacted mode, the body can be hidden and a snippet from the message provided in its place. The snippet can be chosen to occupy less space than the body. For example, snippets can be chosen to occupy one line in a display window. The compacted mode can be used for messages which have been read. The compacted mode can allow messages to be displayed in a window more densely than if the expanded mode were used. In a compressed mode, a message can be represented with a small bar. The small bar can contain no message information. The visual effect of such a mode can be that multiple compressed messages appear like the edges of cards in a deck of cards. A user can toggle between the various display modes by selecting a message or using various controls in the display window. It should be understood that the techniques described in this specification with reference to a conversation (as might be found in the Google Gmail product) can be equally used with any message system (e.g., Outlook or Thunderbird) where messages can be displayed in various views (and can include portions of messages) such as a message view or a thread view where related messages can be displayed.
When a list of conversations is being displayed, additional information (sometimes referred to in this specification as “information items”) can be displayed. For example, one or more advertisements relevant to, or related to, one or more of the conversations in the conversation list can be displayed. In another example, one or more other types of information can be displayed. Such other information can include, but is not limited to news items, map links, product reviews, phone numbers, web page links, dictionary entries, images, RSS feeds, blog (web log) events, user polls, links to files or other content on the client 102, and other types of information. In some embodiments, the relevant information displayed to the user can depend on information about the user stored in the user information database 126.
RSS feeds 114 can be content distributed from various sources on a network (e.g., the Internet). RDF Site Summary (RSS) (and sometimes, Real Simple Syndication) is an XML-based lightweight multipurpose extensible metadata description and syndication format. RSS is typically used for distributing various types of content to a number of receivers simultaneously. News items can be news items from one or more sources. Blog events can be events generated from one or more web logs (blogs). User polls can be polls that the user may participate in which may come from a variety of sources.
When a user is viewing a list of conversations and possibly associated snippets, it can be useful to display advertising or other information which may be of interest to the user. However, determining what information to display to the user can sometimes be difficult.
Once the list of conversations has been identified (202), content components for each conversation in the list can be identified (204). Content components can be identified for a subset of conversations in the list. For example, a subset can comprise those conversations which are in a current display window provided to the user. A content component can be any portion of a conversation. For example, the content components for a conversation can comprise a snippet of the conversation and/or the conversation description. The content components can also comprise one or more portions of one or more of the messages in the conversation and/or the conversation itself. One or more portions of a message can include header information or other information associated with a message or a conversation (e.g., a date/time value of when a message was viewed or the subject line of the message).
One or more conversations can then be selected (206) according to various criteria based on the identified content components. A single conversation can be selected by being a top most conversation in the list (e.g., a conversation having a most recently received message). A single conversation can be selected based on which conversation was most recently viewed. A single conversation can be selected by having a most recently received message which has been viewed. A single conversation can be selected by being a most recently viewed conversation for which at least one advertisement had been presented. A single conversation can be selected by being a most recently viewed conversation for which no advertisement has been presented, or for which the number of presented advertisements is equal to or less than the number of advertisements presented with other recently viewed conversations. A single conversation can be selected at random from those conversations which have already been viewed. It may be noted that the term “random”, when used in this document to refer to selecting or choosing one or more items from a set or list, encompasses both random and pseudorandom selection methodologies. For instance, “randomly” selecting a term from a set of terms (or a conversation from a set of conversations) may be accomplished by randomly or pseudo-randomly generating a value in a predefined range (e.g., between 0 and 1) and then using that value to select a term (or conversation) from the set.
A single conversation having a highest number of words and/or word phrases from a list of words and/or word phrases can be selected. In some embodiments, the number can be based on the number of distinct words and/or word phrases from the list which are present in the content components of the conversation. A list of words or word phrases can be created, for example, from keywords and/or word phrases associated with advertisements, where the advertisements have been frequently selected by a community of users over a period of time. Users can select an advertisement by, for example, clicking on the advertisement when the advertisement is presented to the user. Advertisements can be chosen for presentation to a user by being associated with a particular keyword or word phrase. Advertisers can bid on keywords and/or word phrases such that when the bid-upon keyword and/or word phrase is present in a content (e.g., in a search query or a web page), the advertisement from the advertiser having the highest bid for that keyword or word phrase can be presented. Of course, other factors can affect which advertisements are presented (e.g., advertisements can be selected, at least in part, in accordance with a user's profile, in accordance with a calculated score indicating how relevant the advertisements are to the content, and/or in accordance with the respective click-through rates of the advertisements). A list of keywords and/or word phrases used for selecting a conversation and/or conversations can be those keywords and/or word phrases having selection rates (e.g., advertisements being selected based on the keywords and/or word phrases) greater than a threshold. The list can be a number of keywords or word phrases (e.g., 1000) having the highest selection rates, for example. A single conversation can be selected from among conversations having a number of distinct keywords and/or word phrases from the list present in their identified content components greater than threshold. The conversation selected can be randomly selected from among those conversations.
In some embodiments, a conversation can be selected based on an advertising metric determined using the conversation's content components. The advertising metric can be determined based on various factors such as a predicted click-though metric which represents a predicted probability of a user selecting co-displayed advertising based on the content. The advertising metric can be based on a user's actual advertising selections in the past.
In some embodiments, more than one conversation can be selected. For example, those conversations having a number of distinct keywords and/or word phrases from the list present in their identified content components greater than threshold can be selected. In another example, the first N conversations (e.g., 5) in the conversation list can be selected where N is an integer from 0 to the number of conversations displayed to the user. In yet another example, the first U conversations having unread messages in the conversation list can be selected, where U is an integer up to the number of conversations displayed to the user. In still yet another example, all of the conversations in the list can be selected.
Once a conversation (or conversations) is selected at 206, content can be identified (208) that will be used to obtain relevant information at a later step. The identified content can include one or more of the elements of a conversation. A conversation's elements can include one or more of: a number indicating the number of messages in the conversation, a list of one or more sender identifiers or names of senders of messages in the conversation, a conversation description (e.g., the text of one of the messages in the conversations), a date/time value of the conversation (e.g., a date/time value of the last received message in the conversation), a snippet from one or more of the messages in the conversation, and one or more portions of one or more of the messages in the conversation. The one or more message portions can include header information or other information associated with a message (e.g., a date/time value of when a message was viewed). In one embodiment, the identified content can be the conversation description and the snippet of the selected conversation(s) displayed in a conversation list presented to the user. In another embodiment, one or more of the conversation elements from the identified conversation(s) can be examined to identify those keywords from a list of keywords and or word phrases (e.g., names of products, brands or businesses) that are present. The content identified at 206 can be one or more of the identified keywords and/or word phrases chosen at random.
It may be that no conversation is selected at 206. In this instance, one or more portions of any (or all) of the conversations can be used as the identified content. For example, the identified content can be all of the descriptions of the conversations along with their respective snippets. In another example, the identified content can be one or more portions of one of the conversations selected at random.
In some embodiments, the identified content from 208 can be modified by adjusting an importance factor associated with one or more content elements in the identified content. This can be useful because some information servers (e.g., ad server 128 or information server 130) can accept information relating to an importance of one or more portions of the input relative to the other portions. Accordingly, based on various criteria, it can be determined that one or more portions of the identified content from 208 to be provided as an input to an information server should be treated differently from other portions. Adding this importance factor information can cause the output of the information server to be weighted toward those portions deemed important and/or down-weighted for portions deemed unimportant. In some embodiments, one or more elements associated with a particular part of a pattern identified in a conversation can be accorded importance factors different from others parts of the pattern. For example, an element associated with a product name can be accorded more weight than other elements (e.g., the text of an indicated shipping method such as “air freight”). In another example, an element identified as a destination shipping address in a receipt for an online purchase can be down-weighted in importance.
In another example of modifying importance factors, the content identified at 208 can be examined to identify which keywords and/or word phrases from a list of keywords and/or word phrases are present in the content. From the keywords and/or word phrases identified in the content, one or more of these keywords and/or word phrases can be selected and their importance factors modified. The keywords and/or word phrases can be selected in any number of ways. For example, one or more of the keywords or word phrases can be selected at random from the identified keywords and/or word phrases present in the content. In another example, one or more of the keywords or word phrases having advertising metrics (e.g., a selection rate) greater than other keywords or word phrases can be selected. In yet another example, one or more of the keywords or word phrases having profile similarity scores greater than other keywords or word phrases can be selected. A profile similarity score for each keyword or word phrase can be determined by, for example, comparing the keyword or word phrase to the user's profile according to various criteria. The more closely aligned a keyword or word phrase is to the user's profile, the higher the profile similarity score will be. Those content elements corresponding to the selected keywords or word phrases can have their respective importance factor increased.
Furthermore, keywords and/or word phrases can be added to the content identified at 208. These keywords and/or word phrases can be related to the identified content, and can be known to result in information items (e.g., advertisements) with a higher selection rate. In some embodiments, the additional keywords and/or word phrases are selected from keywords and/or word phrases known to be correlated with words and/or word phrases in the identified content. For example, an abbreviation of a product name can be correlated with the full name of the product. Therefore, when the abbreviation is identified in the content, the full product name can be added to the content (and vice versa).
Once the content is identified at 208 and, if desired, certain importance factors modified at 210, the identified content can be used to obtain information relevant to it (212). In response to receiving the identified content, the targeted information processor 124, for example, can return information (hereinafter called the targeted information) to the conversation engine 110 relevant to the identified content. As mentioned above, the targeted information can include, but is not limited to, one or more of the following: advertisements, product reviews, news items, map links, phone numbers, web page links, dictionary entries, images, RSS feeds, blog (web log) events, user polls, and other types of information. The targeted information obtained for the user can depend on information about the user (e.g., a user profile) stored in the user information database 126. The information in the user profile can be used by the targeted information processor 124 to enhance a likelihood that the targeted information is consistent with the preferences indicated in the user profile.
The targeted information can be displayed along with the list of conversations (214). The conversation engine 110 can receive the information from the targeted information processor 124 and determine formatting information which can be used, for example, by a client application (e.g., client application 132) to display the list of conversations and the targeted information. The conversation engine can send the formatting information, the targeted information, and list of conversations to the client 102 in one or more transmissions.
In some embodiments, the information service 106 includes the following elements, or a subset or superset of such elements: a conversation engine 110 for responding to a variety of requests from the client assistant 134 returning conversation-based responses; an updater engine 112 for updating a message database 118; a message index 114 containing index information for messages in the message database 118; a query engine 116 for performing various queries using the message index 114 and message database 118; an auxiliary services server 120 for performing various auxiliary services; and an SMTP gateway 122 for sending and receiving messages.
The information service 106 can be connected to an ad server 128 and/or an information item server 130 via the communication interface 504. The ad server 128 can contain one or more advertisements 524. The ad server 128 can receive input and return advertisements that can be relevant to the input. The information item server 130 can include one or more information items 526. Similar to the ad server 128, the information server 130 can receive input and return informational items that can be relevant to the input.
Each of the above identified elements in
Although
The foregoing description, for purpose of explanation, has been described with reference to specific embodiments. However, the illustrative discussions above are not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, to thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated.
This application is related to U.S. patent application Ser. No. 10/914,035, filed Aug. 6, 2004, entitled “Displaying Conversations in a Conversation-Based Email System” which application is incorporated by reference herein in its entirety. This application is also related to U.S. Patent Application No. _____, filed Apr. 20, 2005, entitled “System and Method for Targeting Information Based on Message Content” which application is incorporated by reference herein in its entirety.