TARGETED PRESENTATION AND DELIVERY OF THEMES
A content delivery system supplying themes for user computers based on user interest. Each theme may be a collection of components that define an audio, visual or functional aspect of computer operation related to a topic or area of interest, such as sports, a sports team, travel or fine art. The system includes client and server components. At each client, information about user interactions is collected and compared to information defining a set of user interest categories, allowing the client to determine one or more interest categories for the user. The client offers themes that are classified in accordance with the same set of user categories. The server can supply information defining user interest categories and a manifest of themes with associated categories. Additionally, the server can receive indications of when each theme is presented to a user and when the user elects to acquire a theme or engages with theme elements. The server may also supply, unlock or otherwise provide selected themes.
Latest Microsoft Patents:
- SYSTEMS AND METHODS FOR IMMERSION-COOLED DATACENTERS
- HARDWARE-AWARE GENERATION OF MACHINE LEARNING MODELS
- HANDOFF OF EXECUTING APPLICATION BETWEEN LOCAL AND CLOUD-BASED COMPUTING DEVICES
- Automatic Text Legibility Improvement within Graphic Designs
- BLOCK VECTOR PREDICTION IN VIDEO AND IMAGE CODING/DECODING
Computer users may wish to personalize the user experience of the software on their computers. For example, a user may apply a user interface theme to their computer desktop display. Applying the theme may change the appearance of aspects of the user experience, such as the desktop background, icons, or window colors. Similarly, a user may apply a theme, or skin, to an application, such as a media player application or web browser, to change the appearance of the application.
Typically, an initial number of such themes are provided to the user at the time the operating system or application is installed on the computer. To obtain additional themes for the computer, a user may browse third-party sites hosting additional themes in order to locate themes that match the user's interests.
Some operating systems, such as the WINDOWS® VISTA® operating system developed by Microsoft Corporation, include extensible user-interface elements, such as “gadgets,” one or more of which may be selected by the user to appear on his computer desktop. A gadget is a computer program that provides services, and that does not need to be explicitly launched by the user; that is, a gadget may always run in the background and be displayed on a client desktop. For example, a gadget may display on the user's desktop the time, the current weather at a particular location, news headlines or particular stock quotes.
SUMMARYThe experience for a user of a computer may be improved by collecting data indicating user interactions with the computer to determine one or more categories of user interest. Content, classified as of interest to users in a category matching a category assigned to the user, may then be offered to the user.
The content offered to the user may include themes that can be applied to a computer to configure aspects of the user interaction in accordance with a theme. The aspects configured may relate to visual elements, such as a desktop background image or appearance of icons. A theme may alternatively or additional configure sounds made by the computer, such as sounds to notify a user when an error occurs or to alert a user to information being present on the computer's display. Alternatively or additionally, a theme may configure a computer with functional elements, such by installing on the desktop gadgets or links to functional elements on or off the computer.
One or more categories may be assigned to a user by collecting data indicating interactions between the user and the computer. Such interactions may include, for example, visiting web sites from the computer, submitting search queries to search engines, having a software application open for a period of time or editing documents stored on a disk of the computer. Information about user interactions with the computer gained through monitoring may be compared to classification criteria. The classification criteria may be downloaded to the computer and applied locally, avoiding the need to communicate information about user interactions outside the local computer environment.
The user may be notified of the availability of the themes deemed appropriate for users in a user-interest category to which the user of a computer has been assigned. The user computer may select the appropriate themes to offer to a user based on a user interest category selected by the computer and theme information that identifies available themes and associated categories. The computer may present a user a choice of multiple themes, though a subset of all possible themes. In response to user input, a theme may be identified and applied to the computer.
A server, or other computer system, that supports category-based content offers may maintain information about themes and categorization information. This information may be downloaded to user computers or other client devices. When a client device offers themes to the user, the client device may indicate which themes were presented. The server may track and aggregate such indications for reporting to suppliers of the themes or for other purposes.
The foregoing is a non-limiting summary of the invention, which is defined by the attached claims.
The accompanying drawings are not intended to be drawn to scale. In the drawings, each identical or nearly identical component that is illustrated in various figures is represented by a like numeral. For purposes of clarity, not every component may be labeled in every drawing. In the drawings:
The inventors have recognized and appreciated that conventional approaches to supplying themes are generally perceived by users as unhelpful. Though many components that configure an audible, visual or functional aspect of a computer are available, the components are not necessarily grouped into a consistent theme, making it difficult for an average computer user to create a theme. Moreover, users have been deterred in adopting themes because of the difficulties in locating the information and program components that define themes. The prospect of downloading information and program elements from multiple web sites or other locations, frequently unknown or un-trusted by the user, is a further deterrent to the adoption of themes.
The inventors believe that most computer users will perceive a computer that selects themes based on user interest and offers them to a user to be providing a valuable function. Though users may have a limited number of choices for themes, those choices should be more meaningful to the user. Moreover, when the computer provides multiple components that impact audio, visual or functional aspects of a computer as an integrated theme, an average user is able to assemble an appropriate theme. Moreover, supplying those components from a known location or location for which trust can be verified further facilitates user adoption of themes.
According to some embodiments of the content delivery system described herein, customized content may be offered while being sensitive to user privacy concerns. A user computer may be operated to collect data indicating user interactions with the computer and derive from them one or more categories of user interest. The categories may be derived by applying classification criteria that can come from an external source. Further, in some embodiments, the user computer will request a manifest of available content with its associated classification. By comparing the user classification with the classification of available content, appropriate content can be selected to offer to the user. This selection can be made on the user computer.
User computers may report user selection to a server or other computer system that can supply the selected content, either by providing the components of a theme or by providing information that can unlock or otherwise enable components that are already stored on the user computer. The server can thus track provision of themes to users, such as to collect a licensing fees from users or to track royalties owed to content providers. Information about user selection of an installation of themes offered to users may be received at the server from multiple user computers, acting as clients to the server. This information may be aggregated to determine payment due to the content providers.
Alternatively or additionally, the supplier of content, such as a vendor that develops the components of a theme, may pay a fee to an operator of the system that offers software applications based on user interest. In this case, the server, or other computer, system may receive indications from the client computers as the client computers offer software applications to users. The server may aggregate these indications to determine a number of user “impressions” for each theme, which may be a basis for a fee from the supplier of the software application.
In the environment of
User 108a, 108b, and 108c may interact with client computing devices 104a, 104b, and 104c, respectively. Although each client computing device is illustrated in
The client computing devices 104a . . . 104c may categorize their respective users 108a . . . 108c into one or more of a plurality of categories. Selecting a category may be based on criteria or indicia of user interactions for each category indicating user association with the category. Classification information, including a list of categories and indicia or criteria of user interactions, may be obtained by each of client computing devices 104 in any suitable way. For example, the classification information may be stored locally on each of client computing devices, or additionally or alternatively may be obtained from another computing device, such as by downloading it from server computer 106. Once a user is assigned to a category, category specific content may be suggested to the user or other category based actions may be taken.
In the example of
Data store 110 and data store 112 may be any suitable computer storage, such as a database or file system implemented on any suitable computer storage medium. While data store 110 and data store 112 are illustrated as two separate data stores, alternatively, the data stored in each of data store 110 and data store 112 may be combined into a single data store, or generally organized and distributed among a greater or lesser number of data stores in any suitable way.
Suggested content may be obtained or displayed on client computing devices 104a . . . 104c, based on a match between the selected category and the suggested content associated with the category. In some embodiments, a list of suggested content may be obtained by client computing devices 104a . . . 104c from the server computer 106 and the match is performed locally on the clients based on filtering the content in accordance with the selected category, while in other embodiments a selected category may be transmitted from client computing devices 104a . . . 104c to allow the server computing device 106 to perform the match. The suggested content may include, for example, user interface themes, available applications, available plugins or extensions to already installed applications, website content, or advertisements, including those displayed on a website.
Information such as metrics indicating the use of the suggested content by the user of a client computing device may be sent to the server 106. The information may be used for various purposes, such as for determining a level of user interest in the suggested content or for billing purposes. Such information may include an identifier of the manufacturer of the client computing device, such as the manufacturer ID 105, which may be used, for example, in embodiments in which the manufacturer receives payment from a provider of the suggested content for the use of the suggested content by the user of the client computing device.
More details of the monitoring and categorization for user interactions performed by client computing devices 104 are illustrated in
Data collection mechanism 206 and agent 212 may be implemented in any suitable way, including as software components comprising machine executable instructions. For example, they may be components of an operating system loaded on a client computing device. Data collection mechanism 206 and agent 212 may, for example, be implemented as a software service or daemon that periodically performs its functionality in the background. Data collection mechanism 206 may collect user interactions data in real time or periodically, including by monitoring or measuring user interactions with the client device. While the data collection mechanism 206 and agent 212 are illustrated as two components, the functionality ascribed to them may be divided or combined in any suitable number of components. Similarly, data store 210 and data store 212 may be implemented in any suitable way, including with a database or file system over any suitable computer storage medium, and may be divided or combined into any suitable number of data stores.
Data collection mechanism 206 collects user interactions with application(s) 202 and operating system interface(s) 204, and stores collected user interactions data in data store 210. Data collection mechanism 206 may collect the user interactions in a number of ways, including collecting internet usage information 216, application or operating system usage information 218, or a collecting information stored on the client (e.g., by scanning documents index 220).
Internet usage information 216 may be obtained, for example, by analyzing data maintained by a particular internet application loaded on the client computing device. For example, data collection mechanism 206 may analyze a search history 222, websites visited stored in a web browser history 224, or web browser cookies 226 maintained and stored locally by a web browser.
Additionally or alternatively, data collection mechanism may obtain internet usage information 216 by monitoring networking commands passing through a networking stack on the client computer device.
The networking stack 300 may also include a monitoring and tagging component 313. Monitoring and tagging component 313 may monitor networking commands passing through the stack. In this way, monitoring and tagging component 313 may collect information about interactions with any web site from any browser or any web-enabled application. Though, information passing through the networking stack that is to be collected may be identified in any suitable way. For example, it may be identified based on a port identified in packets passing through the stack. Alternatively, it may be identified by destination address in packets or by source address, such that packets originating from one or more web browsers or web-enabled applications can be identified and collected.
Monitoring and tagging component 313 may also insert an identifier into outgoing messages directed to a content provider. In some embodiments, the identifier may uniquely identify the user to the content provider without including any sensitive or private user information. The identifier may be generated based on characteristics of a client computing device operated by the user, such as an IP address or MAC address, or it may be generated by the content provider, and stored on the client computing device. For example, the identifier may be inserted by the monitoring and tagging component 313 into all website requests directed to websites operated by the same content provider. The identifier may serve as a link between a website request made by the user and data already provided by the user to the content provider, so that content delivered in response to the website requests may then be targeted to the user.
Analyzing networking commands passing through networking stack 300 has an advantage in that it is independent of any application that generated the command, and thus does not require data collection mechanism 206 to have knowledge of any particular information maintenance mechanism used by a particular internet application. Collecting Internet usage information by analyzing networking commands passing through a networking stack has another advantage in that it allows aggregation of commands sent across multiple applications that may be used to access the Internet.
Collecting user interactions data such as Internet usage locally on a client computer also has advantages compared to the characterization of user behavior typically performed by internet websites. Individual websites frequently track pages visited by a user on the website, and may use this history to present to the user more relevant content on that website. However, the information available to an individual website is limited to the pages visited and behavior of the user on that website, and thus is fragmented across a large number of websites. Therefore, aggregating the Internet usage of a user not only across multiple websites but also across multiple applications, by analyzing networking commands passing through a networking stack, as discussed above, allows for a more complete view to be assembled of the user interest.
Returning to
Data collection mechanism may also collect other information stored on the computer, such as in documents index 220. The stored information may include documents stored as files on the computer, such as, for example, word processing documents or spreadsheet documents. The stored information may also include additional information, such as emails. The document index 220 may be in any suitable format, including an existing documents index used by an indexing service on the client computing device.
Based on user interactions data stored in data store 210 and classification information, agent 212 may select a matching category. As was discussed in connection with
In some embodiments, before collecting user interactions data on a client computing device, such as one of client computing device 104a . . . 104c, user permission may first be obtained. For example, in some embodiments, no collection of user interactions data, such as by the monitoring of user interactions, may be performed by default, and collection may therefore not be performed unless explicitly allowed by a user.
At block 402, the method may include prompting the user for permission to collect user interactions data. At block 404, a determination is made whether permission has been received from the user to collect user interactions data. If it is determined that the user has not given permission for user interactions data collection, the method may proceed to block 406, in which no user interactions data collection is performed. The determination that the user has not given permission may be made as a result of an explicit indication from the user, or additionally or alternatively, it may be a default position taken by the computing client device if the user has not given any indication whether user interactions data collection may be performed. The flowchart may be done at this point.
Alternatively, if it is determined at block 404 that the user has given permission to collect user interactions data, the user may then be prompted at block 408 to specify a desired type of collection. That is, in some embodiments, the user may be able to selectively allow certain types of user interactions data collection, while disallowing other types of collection. The types of user interactions data collection that may be allowed or disallowed by the user may include, for example, any of the types of collection performed by data collection mechanism 206, such as, collecting internet usage, such as website history, search history, cookies, either from an internet application, or by inspecting the networking stack, collecting application or operating system usage, including features, duration, and frequency, or collecting data in stored documents, such as files or emails.
At block 410, indications of the desired types of collection are received from the user, and at block 412, user interactions data collection is enabled based on the desired types of collection received from the user. The flowchart of
Besides obtaining user permission to collect user interactions data, permission may be obtained from the user to determine what type of data may be shared. If user permission has been granted, the data may be shared with server 106, for example, or with another third party, which may then provide suggested content to the user, based on the shared data.
As discussed above, a client may select a category based on a match between classification information and collected user interactions data. At block 420, the method may include prompting the user for permission to share one or more such selected categories. At block 422, a determination is made whether permission has been received from the user to share a selected category. If it is determined that the user has not given permission for sharing a selected category, the method may proceed to block 424, in which no information related to user interactions will be shared. The determination that the user has not given permission may be made as a result of an explicit indication from the user, or additionally or alternatively, it may be a default position taken by the computing client device if the user has not given any indication whether a selected category may be shared. The flowchart of
Alternatively, if it is determined at block 422 that the user has given permission to share a selected category, the user may then be prompted at block 426 for permission to share the collected raw user interactions data, in order to receive more targeted content. At block 428, it is determined whether permission has been received from the user to share raw collected user interactions data. If it is determined that the user has not given permission for sharing user interactions data, the method may proceed to block 430, in which case only the selected category is shared, and the flowchart of
On the other hand, if it is determined that permission has been received from the user to share collected raw user interactions data, the method may proceed to block 432 in which case collected user interactions data is shared with the server 106, or other third party. In some embodiments, the default setting may be to not share more specific user interactions data unless the user has explicitly given permission to do so.
If the user has consented to sharing user interactions data, in some embodiments, the type of user interactions data shared with a third party may be limited to a particular type of data, such as, for example, Internet usage. Additionally or alternatively, in some embodiments, the user may select what type(s) of user interactions data may be shared (e.g., Internet usage, application/OS usage, etc.). Thus, some or all of the collected user interactions data may be shared. The flowchart of
Sharing the more specific user interactions data with a third party may enable more targeted content to be offered to the user than if only a more general user interest category is shared. Sharing more detailed information may result in advantages to the user and content provider alike. For example, user interactions may be sufficient to result in a match with a category of automobile shoppers. Thus, if a user shares a selected category with a content provider, the user may be presented with content, such as advertisements, related to a variety of vehicles made by multiple vehicle manufacturers. It may be, however, that the user interactions data includes multiple occurrences of a website searches related to a particular vehicle manufacturer, thus indicating a predisposition to purchase a vehicle made by the particular vehicle manufacturer. Thus, if the raw user interactions data is shared with the content provider, the user may receive advertisements informing the user of special targeted offers specific to the vehicle manufacturer of interest.
Once permission has been obtained from the user to collect user interactions data and to share data with a third party, such as the server 106, suggested content may be obtained based on the user interactions data.
The flowchart of
The process of
At block 512, the server may maintain a content list and/or classification information. These may be in any suitable format, including the format illustrated by
At block 514, the client may obtain classification information, which may be either stored locally or obtained from the server. In the latter case, the server, at block 516, may provide the classification information to the client. In such embodiments, the client may obtain classification information from the server in any suitable way, including by downloading the classification information or by periodically synchronizing a copy of classification information stored locally with classification information obtained from the server.
At block 518, the server may provide the client with the content list, in which, as discussed above, the content is associated with classification information, such as a user interest category. At block 520, the client may obtain the content list provided to it by the server.
At block 506, the client may select a category based on the classification information and the collected data. It may do this based on a match between the indicia or criteria indicating membership in a user interest category and the collected data. The match may be performed based on a precise match, such as a direct one to one matching, between the criteria indicating membership in a user interest category and the collected data, such as when every keyword in a list of keywords included in the criteria is included in the collected data. Additionally, or alternatively, probabilistic or statistical matching may be performed. For example, the matching could be based on Bayesian classifiers, based on a percentage of portions of text, such as words, in the collected data determined to be related to portions of text in a list associated with a user interest category, or could be based on a comparison of the number of portions of text in the collected data related to one user interest category versus another user interest category.
Additionally or alternatively, in some embodiments, the selection of a user interest category at block 506 may be based on interests explicitly indicated by the user. For example, in some embodiments, the user may specify his interests (e.g., sports or travel) in order to receive suggested content based on the interests he explicitly specified. In embodiments in which the user may explicitly indicate his interests, user interest categories based on the user-specified interests may be selected either instead of or in addition to user interest categories selected based on a match between the classification information and the collected data. The user may specify his interests in any suitable way. For example, a user may submit such user interest information over a website associated with the server. As another example, a user may provide user interest information to a configuration settings module for an operating system loaded on the client computing device, similar to that discussed above in connection with
At block 524, the client may request content from the server based on the selected category and/or collected user interactions data. In some embodiments, the client may request particular content from a content list obtained from the server, in which the particular requested content is associated with the matching category. The content list may be obtained in any suitable way, such as, for example, by downloading or synchronizing content from the server. Alternatively or additionally, such as in embodiments in which the client may not have obtained a content list, the client may provide the selected category in the request to the server, in order to allow the server to deliver a choice of content matching the category.
In other embodiments, the data, such as the selected category or the user interactions data, may be provided to the server in advance along with a user identifier, and the client request for content may include the same user identifier. In some embodiments, the entity with which the client shares user interactions-related data may be different than the entity from which the client requests content. For example, the user interactions-related data may be shared with an advertising platform, while the request for content may be made with a content provider affiliated with the advertising platform. Thus, generally, the operations ascribed to the server may be divided on a functional level between various computing devices, including computing devices operated by different entities.
Providing a matching category to the user many include no personal or user identifying information, and therefore, respects a high degree of user privacy. In addition to, or instead of providing a selected category in the request to the user, the client may also provide the user interactions data itself, in order to allow the server to deliver even more targeted content. As discussed in the embodiment illustrated by
In some embodiments, a user may request content of interest to the user by visiting a particular trusted location in which the user may be presented with choices of suggested content. For example, an operating system may include a feature that, in response to a user request for suggested content, directs the user via a URL (Uniform Resource Locator) to a pre-determined trusted location for locating and obtaining content of interest. While in some embodiments, visiting the trusted location may automatically present the user with content that matches the user's interest(s), such as if the request for content included a user identifier associated with user interactions-related data provided to the trusted location, as discussed above, the user may alternatively or additionally locate and obtain other content from the trusted location that may not have been previously matched to the user's interest(s). At block 524, the server may provide the requested content to the client.
In some embodiments, the client may use the content at block 526, and collect and provide to the server metrics of content usage at block 528. The metrics of content usage may include an identifier of the client manufacturer, such as manufacturer ID 105. At block 530, the server may aggregate the received metrics. This may include aggregating the metrics across a plurality of clients into a report. The information in the report based on the aggregated metrics may be used in a variety of ways, for example, for determining the level of user interest in the suggested content. As another example, the information in the report may be used for billing purposes, including receiving payment from an advertiser or supplying payment to a content provider or computer manufacturer, which may be identified by the identifier of the client manufacturer.
Following the collection of user interactions data performed at block 502, the flowchart turns to
For example, the provider of a financial planning application may wish to offer an application to users who meet certain criteria, such as a user who has visited financial websites and has performed multiple web searches over the last month relating to retirement planning, who has used particular financial features of a spreadsheet application, or who has created documents stored on the client computing device containing appropriate keywords. The provider of the financial planning application may provide these criteria to the server for use as the associated indicia or criteria for user interactions that indicate that a user may be offered the financial planning application.
At block 604, the server may provide to the client the user interest categories and indicia of user interactions indicating membership in each user interest category, which the client may receive at block 606. At block 608, the server may provide the applications list, in which each application is associated with a user interest category. The client may obtain, at block 610, such as by downloading, the applications list from the server.
The flowchart of
Turning to
After having received user input indicating an interest in a selected application, at block 708, the client may request the selected application of interest to the user, and the server may receive the request at block 710. In some embodiments, rather than requesting to acquire the selected application from the server, the request may be made to a third party, such as an independent software vendor (ISV). At block 712, the server or the server of a third party, such as an ISV, may then provide the requested application to the client, and the client, at block 714, may obtain the selected application. The selected application may be obtained in any suitable way, including by downloading, streaming, or periodically obtaining portions of the application in the background over a network. In some embodiments, the selected application may only be provided to the client after having received additional information, such as payment information.
As the flowchart of
At block 806, the acquired application may be installed on the client. This may be done automatically by the client, or it may be done as the result of user input. At block 808, the client may then send a report to the server that a selected application was successfully obtained and/or installed. At block 810, the server may receive from the client the report indicating that an application was successfully installed and/or obtained by the client. The client may also include information in a report sent to the server about the usage of the suggested application, such as the frequency or duration that the suggested application or particular features of the suggested application are used.
At block 812, the server may aggregate the received indications to generate a report of the level of adoption of an application by users of client computing devices. The report may be based on, for example, indications of the usage of an application (or of application features) by users of the client devices. The report may additionally or alternatively be based on, for example, indications of a number of presentations, downloads, and/or installations of an application that were made on client computing devices. Block 812 may include aggregating indications across a plurality of computing devices. The report may be provided to a third party, such as a developer of the application, or an independent software vendor with a commercial interest in the application. For example, the report may be used for billing purposes, such as when the third party may be owed or given payment per sale or impression. The flowchart of
Besides suggested applications or application plugins, suggested content may also include user interface settings, such as user interface themes. Accordingly,
According to the embodiment in which the suggested content is a user interface theme, subsequent to the monitoring of user interactions performed at block 502, the flowchart turns to
At block 626, the client may obtain user interest categories and indicia of user actions that indicate user association with each of the plurality of interest categories. This information may be stored locally on the client, or it may be obtained from the server, in which case the server may provide, at block 628, the user interest categories and the indicia of user actions that indicate user association with each of the plurality of interest categories. The information may be obtained from the server in any suitable way, such as via a download over a network. In embodiments in which the information is stored locally on the client, the information may periodically be updated or synchronized based on information maintained by the server.
At block 630, the server may provide a list of user interface themes, in which each user interface theme is associated with a user interest category, and at block 632, the client may obtain the list of user interface themes, such as by downloading the list from the server.
As the flowchart illustrated in
The process may then continue at
At block 724, the client may present on an output device an indication that the selected user interface theme(s) is available for acquisition. This may be done in any suitable way, including as a desktop icon, a pop-up window, or a notification in a notification area of a desktop, such as a system tray notification in variants of the Windows® operating systems provided by Microsoft Corporation. A system tray may be a display area on the desktop containing icons representing available or actively running services or applications.
The client may then receive user input, at block 726 indicating user interest in acquiring a selected user interface theme. The user input may be received in any suitable way, including by clicking the mouse on any of the indications discussed above in connection with block 724.
At block 728, the user may request the selected user interface theme. The request may be made to the server, or to another computing device working in connection with the server. In embodiments in which the request is sent to the server, at block 730, the server may receive from the client the request for the selected theme in the user interface themes list. The computing device providing the theme, such as the server, may be a secure, trusted location. At block 732, the server (or the party from which the client requested the theme) may then provide the requested user interface theme to the client, which may obtain the selected user interface theme at block 734. The theme may be obtained in any suitable way, including via a download. In some embodiments, the client may first verify that the server (or other computing device providing the theme) is to be trusted before obtaining the theme and/or configuring the client device with the theme. The verification may be done in any suitable way, including using cryptographic identity verification techniques. The theme may be implemented in any suitable number of files or file formats, including an executable file format, that when downloaded and executed on the client, may apply the theme to the client desktop.
The process of
At block 826, the client may configure itself to use the selected user interface theme. As discussed above, prior to configuring the client device to use the selected user interface theme, the client may first verify that the user interface theme provider may be trusted. Configuring the client to use the user interface theme may be done in any suitable way. In some embodiments, the client may automatically configure itself to use the selected user interface theme, while in other embodiments, the user may explicitly configure the client to use the theme, such as through a configuration tool that may be part of an operating system loaded on the client, in which the tool is used to modify the user interface settings of the client.
At block 828, the client computer may send a report to the server that the selected user interface theme was successfully downloaded and/or configured on the client, and at block 830, the client may receive such a report.
The client may then, at block 840, collect metrics indicating user interface theme usage. The metrics may include information such as the frequency and/or duration that the client is configured to use the selected user interface theme. For example, the user may frequently change the user interface theme configured on the computer, in which case the metrics may include, over a particular span of time, the frequency that the user interface theme was configured on the computer, a total amount of time that the user interface theme was configured on the client, and/or the average duration that the theme was configured for use on the client. The metrics may also include the frequency that particular components of the theme, such as desktop icons or active elements (e.g., gadgets), are clicked on by a user or otherwise interacted with by a user. At block 842, the client may then send a report to the server containing the metrics.
At block 844, the server may receive the metrics, and aggregate the received metrics and received reports to generate a report indicating the level of adaption of the user interface theme with users of client devices. The report generated at block 844 may be aggregated across a plurality of client devices. The report may be provided to a third party, such as developer of the theme or an entity thematically associated with the theme, such as, in the example of a sports theme, a sports equipment manufacturer. For example, the third party may be billed each time the user interface theme was presented to a user as being available. The third party may also be billed different amounts based on the metrics discussed above, such as the frequency and/or duration that a client device was configured with a particular user interface theme. The method of
The user interface 1000 includes a category selection pull-down menu 1002, which allows a user to select a user interest category from a list of categories. In the example of
However, while the user may be a sports enthusiast, the user may have minimal interest in the sport of baseball, thus targeted content 1404 is not extremely relevant to the user.
Having thus described several aspects of at least one embodiment of this invention, it is to be appreciated that various alterations, modifications, and improvements will readily occur to those skilled in the art.
For example, while the description of embodiments above described performing a one for one matching between a user interest category and a suggested content category, the matching could also be performed in other ways. For instance, the matching in some embodiments may be performed based on specific combinations of categories (e.g., sports and travel).
Such alterations, modifications, and improvements are intended to be part of this disclosure, and are intended to be within the spirit and scope of the invention. Accordingly, the foregoing description and drawings are by way of example only.
The above-described embodiments of the present invention can be implemented in any of numerous ways. For example, the embodiments may be implemented using hardware, software or a combination thereof. When implemented in software, the software code can be executed on any suitable processor or collection of processors, whether provided in a single computer or distributed among multiple computers.
Further, it should be appreciated that a computer may be embodied in any of a number of forms, such as a rack-mounted computer, a desktop computer, a laptop computer, or a tablet computer. Additionally, a computer may be embedded in a device not generally regarded as a computer but with suitable processing capabilities, including a Personal Digital Assistant (PDA), a smart phone or any other suitable portable or fixed electronic device.
Also, a computer may have one or more input and output devices. These devices can be used, among other things, to present a user interface. Examples of output devices that can be used to provide a user interface include printers or display screens for visual presentation of output and speakers or other sound generating devices for audible presentation of output. Examples of input devices that can be used for a user interface include keyboards, and pointing devices, such as mice, touch pads, and digitizing tablets. As another example, a computer may receive input information through speech recognition or in other audible format.
Such computers may be interconnected by one or more networks in any suitable form, including as a local area network or a wide area network, such as an enterprise network or the Internet. Such networks may be based on any suitable technology and may operate according to any suitable protocol and may include wireless networks, wired networks or fiber optic networks.
Also, the various methods or processes outlined herein may be coded as software that is executable on one or more processors that employ any one of a variety of operating systems or platforms. Additionally, such software may be written using any of a number of suitable programming languages and/or programming or scripting tools, and also may be compiled as executable machine language code or intermediate code that is executed on a framework or virtual machine.
In this respect, the invention may be embodied as a computer readable medium (or multiple computer readable media) (e.g., a computer memory, one or more floppy discs, compact discs, optical discs, magnetic tapes, flash memories, circuit configurations in Field Programmable Gate Arrays or other semiconductor devices, or other tangible computer storage medium) encoded with one or more programs that, when executed on one or more computers or other processors, perform methods that implement the various embodiments of the invention discussed above. The computer readable medium or media can be transportable, such that the program or programs stored thereon can be loaded onto one or more different computers or other processors to implement various aspects of the present invention as discussed above.
The terms “program” or “software” are used herein in a generic sense to refer to any type of computer code or set of computer-executable instructions that can be employed to program a computer or other processor to implement various aspects of the present invention as discussed above. Additionally, it should be appreciated that according to one aspect of this embodiment, one or more computer programs that when executed perform methods of the present invention need not reside on a single computer or processor, but may be distributed in a modular fashion amongst a number of different computers or processors to implement various aspects of the present invention.
Computer-executable instructions may be in many forms, such as program modules, executed by one or more computers or other devices. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Typically the functionality of the program modules may be combined or distributed as desired in various embodiments.
Also, data structures may be stored in computer-readable media in any suitable form. For simplicity of illustration, data structures may be shown to have fields that are related through location in the data structure. Such relationships may likewise be achieved by assigning storage for the fields with locations in a computer-readable medium that conveys relationship between the fields. However, any suitable mechanism may be used to establish a relationship between information in fields of a data structure, including through the use of pointers, tags or other mechanisms that establish relationship between data elements.
Various aspects of the present invention may be used alone, in combination, or in a variety of arrangements not specifically discussed in the embodiments described in the foregoing and is therefore not limited in its application to the details and arrangement of components set forth in the foregoing description or illustrated in the drawings. For example, aspects described in one embodiment may be combined in any manner with aspects described in other embodiments.
Also, the invention may be embodied as a method, of which an example has been provided. The acts performed as part of the method may be ordered in any suitable way. Accordingly, embodiments may be constructed in which acts are performed in an order different than illustrated, which may include performing some acts simultaneously, even though shown as sequential acts in illustrative embodiments.
Use of ordinal terms such as “first,” “second,” “third,” etc., in the claims to modify a claim element does not by itself connote any priority, precedence, or order of one claim element over another or the temporal order in which acts of a method are performed, but are used merely as labels to distinguish one claim element having a certain name from another element having a same name (but for use of the ordinal term) to distinguish the claim elements.
Also, the phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. The use of “including,” “comprising,” or “having,” “containing,” “involving,” and variations thereof herein, is meant to encompass the items listed thereafter and equivalents thereof as well as additional items.
Claims
1. A method of operating a computer, comprising:
- operating at least one processor to: collect user interactions data indicating user interactions with the computer; select a user interest category based on the collected user interactions data and user classification information, the user classification information defining a plurality of user interest categories and indicia of user actions that indicate user association with each of the plurality of interest categories; select a user interface theme associated with the selected user interest category; and present through an output device of the computer an indication that the selected user interface theme is available for acquisition by the user.
2. The method of claim 1, wherein a user interface theme specifies settings for the user interface of the computer desktop.
3. The method of claim 2, wherein a user interface theme comprises an active element displayed on the desktop to provide services to the user.
4. The method of claim 1, wherein presenting through the output device the selected user interface theme comprises presenting a plurality of user interface themes in a user interest category.
5. The method of claim 1, wherein:
- the method further comprises downloading information identifying a plurality of user interface themes configurable on the computer, the plurality of user interface themes each being associated with a user interest category; and
- the selected user interface theme is selected from among the plurality of user interface themes identified in the downloaded information based on a match between the selected user interest category and the user interest category associated with the selected user interface theme.
6. The method of claim 1, wherein the method further comprises sending a report to a server that the indication that the selected user interface theme is available for acquisition by the user was presented through the output device.
7. The method of claim 1, wherein the method further comprises:
- in response to input by the user, configuring the computer to use the selected user interface theme; and
- sending a first report to a server that the selected user interface theme was configured for use on the computer.
8. The method of claim 7, wherein:
- the selected user interface theme configured for use on the computer comprises an active element displayed on the desktop to provide services to the user; and
- the method further comprises: sending a second report to the server indicating the duration the selected user interface theme was configured for use on the computer; and sending a third report to the server indicating the frequency that the user interacted with the active element.
9. Computer storage media encoded with computer executable instructions, that, when executed by a computer having a graphical user interface, perform a method comprising:
- collecting user interactions data indicating user interactions with the computer;
- selecting a user interest category based on the collected user interactions data and user classification information, the user classification information defining a plurality of user interest categories and indicia of user actions that indicate user association with each of the plurality of interest categories;
- selecting a user interface theme based on the selected user interest category from among a plurality of user interface themes configurable on the computer, the plurality of user interface themes each being associated with a user interest category, wherein a user interface theme specifies user interface settings for the graphical user interface;
- downloading the user interface theme;
- presenting through an output device of the computer an indication that the selected user interface theme is available to a user; and
- in response to input by the user, configuring the computer to use the user interface theme, wherein configuring the computer to use the user interface theme comprises configuring user interface elements in the desktop interface.
10. The computer storage media of claim 9, wherein the user interface settings comprise a plurality of settings related to at least one of a desktop background, font, color scheme, mouse cursor, screen-saver, desktop icons, system sounds, login screen appearance, and boot screen appearance.
11. The computer storage media of claim 9, wherein collecting user interactions data comprises analyzing stored data, the stored data comprising text in data documents, email documents, web browser cookies, and/or web browser history stored on the computer.
12. The computer storage media of claim 9, wherein collecting user interactions data comprises detecting networking commands indicating a connection to a web site and the collected user interactions data comprises an identification of the web site.
13. The computer storage media of claim 13, wherein the collected user interactions data further comprises data representing text transmitted to the web site.
14. The method of claim 9, wherein collecting user interactions data comprises tracking the frequency that software modules and/or features of software modules installed on the computer are used by the user.
15. The computer storage media of claim 9, wherein:
- the desktop interface comprises a notification area; and
- presenting through an output device of the computer comprises presenting in the notification area an indication that the selected user interface theme is available for configuration by the user.
16. A method of operating a computer system, the method comprising:
- with at least one computing device adapted for connection to a plurality of client devices over a network: maintaining user interface theme information on a plurality of user interface themes; in response to a request from a client device of the plurality of client devices, providing the user interface theme information over the network to the client device; receiving from each of at least a portion of the plurality of client devices an indication that information describing a user interface theme of the plurality of user interface themes was presented to a user; aggregating the received indications to provide a report of the number of presentations of a user interface theme of the plurality of user interface themes to users of the plurality of client devices; receiving from each client device of at least a portion of the plurality of client devices a metric indicating a level of adoption of a user interface theme of the plurality of user interface themes by a user of the client device; and aggregating the received metrics to provide a report of the level of adoption of a user interface theme of the plurality of user interface themes by users of the plurality of client devices.
17. The method of claim 16, wherein the metric comprises an indication that a user interface theme was selected by a user for download to a client device.
18. The method of claim 16, wherein the metric comprises an indication that a user interface theme was applied by a user of a client device to configure the client device.
19. The method of claim 16, wherein the metric comprises the duration that a user interface theme was applied by a user of a client device to configure the client device.
20. The method of claim 16, wherein the metric comprises the frequency that a user interface theme was applied by a user of a client device to configure the client device.
Type: Application
Filed: Jul 10, 2009
Publication Date: Jan 13, 2011
Applicant: Microsoft Corporation (Redmond, WA)
Inventors: Patrick Brian Wilburn (Redmond, WA), Kyle Davis Hatridge (Seattle, WA), Aidan Stanley Marcuss (Seattle, WA)
Application Number: 12/501,232
International Classification: G06F 3/01 (20060101); G06F 15/16 (20060101); G06F 15/173 (20060101);