# Patent

## Title
Customized search or acquisition of digital media assets

## Abstract

Improved techniques for using usage data are disclosed. The usage data can pertain to a user of an electronic device. The usage data can be monitored and recorded on the electronic device. The improved techniques are particularly useful when the electronic device is a mobile electronic device. In one embodiment, the usage data can be used to enhance searching of digital assets, such as digital media assets, resident at a local or remote repository. In another embodiment, the usage data can be used to determine content to be resident locally on the electronic device. In still another embodiment, the usage data can be used to present (e.g., display) information on the electronic device.

## Background
BACKGROUND OF THE INVENTION
Computerized searching is commonly used for searching through electronic files or searching of the World Wide Web. Searching can be performed using key words supplied by a user that is requesting a search. Upon receiving the key words for the search, a computer can perform a search for matching electronic files.
The results of the search are typically presented as a list of electronic files that include the keyword that has been searched. The electronic files in the list can be referred to as matching electronic files. The ordering of the matching electronic files within the list can be random, alphabetical, or by attribute (e.g., date, size, popularity or user rating). The results of the search are the same regardless of the user initiating the search.
Mobile computing devices are typically dependent upon network availability to access network-based resources (e.g., electronic files on the World Wide Web) or to communicate with other remote computing devices. Many users rely on constant network access to be able to communicate with other computing devices. With wireless networks, network access can be unavailable at certain locations or when there is an excess amount of network congestion. Network unavailability can frustrate users because the mobile computing devices have substantially curtailed capabilities when network access is unavailable.
Thus, there is a need for improved techniques to operate a computing device, such as a mobile computing device, so that search and/or network access capabilities are enhanced.
SUMMARY
The invention pertains to improved techniques for using usage data. The usage data can pertain to a user of an electronic device. The usage data can be monitored and recorded on the electronic device. The improved techniques are particularly useful when the electronic device is a mobile electronic device. In one embodiment, the usage data can be used to enhance searching of digital assets, such as digital media assets, resident at a local or remote repository. In another embodiment, the usage data can be used to determine content to be resident locally on the electronic device. In still another embodiment, the usage data can be used to present (e.g., display) information on the electronic device.
The invention can be implemented in numerous ways, including as a method, system, device, apparatus (including computer readable medium and graphical user interface). Several embodiments of the invention are discussed below.
As a method for providing digital media content to an electronic device, one embodiment can, for example, include at least monitoring usage of a first digital media asset having a plurality of levels or chapters, and comparing the usage of the first digital media asset to at least one trigger point. The embodiment can also include retrieving additional digital media data for use on the electronic device if the comparing determines that the usage of the first digital media asset exceeds the at least one trigger point.
As a computer readable storage medium, the computer readable storage medium can include at least computer program code executable by an electronic device to provide digital media content to the electronic device. According to one embodiment, the computer program code stored on the computer readable storage medium can, for example, include at least computer program code for monitoring usage of a first digital media asset having a plurality of levels or chapters, computer program code for comparing the usage of the first digital media asset to at least one trigger point, and computer program code for retrieving additional digital media data for use on the electronic device if the computer program code for comparing determines that the usage of the first digital media asset exceeds the at least one trigger point.
As a method for processing a user search, one embodiment can, for example, include at least receiving a user search request from an electronic device, where the user search request includes one or more search criteria. The embodiment also can include searching a database in accordance with the one or more search criteria to obtain search results, where the database includes digital asset information pertaining to a plurality of digital media assets. Furthermore, the embodiment can include accessing usage data pertaining to the electronic device or its user, ranking the search results based at least in part on the usage data, and presenting the ranked search results via the electronic device.
As a computer readable storage medium, the computer readable storage medium can include at least computer program code executable by an electronic device for processing a user search. According to one embodiment, the computer program code stored on the computer readable storage medium can, for example, include at least computer program code for receiving a user search request from an electronic device, the user search request including search one or more search criteria; computer program code for searching a database in accordance with the one or more search criteria to obtain search results, the database including digital asset information pertaining to a plurality of digital media assets; computer program code for accessing usage data pertaining to the electronic device or its user; computer program code for ranking the search results based at least in part on the usage data; and computer program code for presenting the ranked search results via the electronic device.
Other aspects and advantages of the invention will become apparent from the following detailed description taken in conjunction with the accompanying drawings which illustrate, by way of example, the principles of the invention.



BRIEF DESCRIPTION OF THE DRAWINGS
The invention will be readily understood by the following detailed description in conjunction with the accompanying drawings, wherein like reference numerals designate like elements, and in which:
FIG. 1 is a block diagram of a digital asset access system according to one embodiment.
FIG. 2A is a block diagram of a user computing device according to one embodiment.
FIG. 2B is an illustrative view of a digital asset representation according to one embodiment.
FIG. 3 is a flow diagram of a data acquisition process according to one embodiment.
FIGS. 4A and 4B are flow diagrams of a data retrieval process according to one embodiment.
FIG. 5 is a block diagram of a user computing device according to another embodiment.
FIG. 6 is a flow diagram of a customized search process according to one embodiment.
FIGS. 7A-7D illustrate exemplary search screens of a search GUI according to one embodiment.



DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION
The invention pertains to improved techniques for using usage data. The usage data can pertain to a user of an electronic device. The usage data can be monitored and recorded on the electronic device. The improved techniques are particularly useful when the electronic device is a mobile electronic device. In one embodiment, the usage data can be used to enhance searching of digital assets, such as digital media assets, resident at a local or remote repository. In another embodiment, the usage data can be used to determine content to be resident locally on the electronic device. In still another embodiment, the usage data can be used to present (e.g., display) information on the electronic device.
The electronic device can, for example, be a computing device. Examples of a computing device include a personal computer (e.g., desktop computer, notebook computer, netbook computer, etc.), or a portable handheld electronic device (e.g., Portable Digital Assistant (PDA), portable media player, multi-function mobile telephone, etc.).
Several embodiments of the invention are discussed below with reference to FIGS. 1-7D. However, those skilled in the art will readily appreciate that the detailed description given herein with respect to these figures is for explanatory purposes as the invention can extend beyond these limited embodiments.
Electronic devices, in particular mobile electronic devices, have limited data storage capacity and users do not always plan ahead to have all the needed electronic data resident on their mobile electronic device. Network access, if available, enables access to digital data from anywhere via a network that would otherwise not be readily available. However, if network access is unreliable or unavailable, a user that has not properly planned ahead may be stuck in a situation where desired or needed data is unavailable. Also, if systems are desirous of providing data to users of mobile electronic devices, these systems are also dependent on network availability.
According to one aspect, predictive digital data acquisition can be used on electronic devices, in particular, mobile electronic devices. The predictive digital data acquisition can be used to acquire and at least temporarily store digital data that may be later desired, needed, promoted or offered. The prediction of digital data to be provided on a mobile electronic device can be determined using usage data that has been obtained through monitoring usage of the mobile electronic device. Thus, even though network access (e.g., wireless network) is unavailable, a user of a mobile electronic device is able to access digital data, such as digital assets, that have been predicatively stored on the mobile electronic device.
The digital data being predicatively acquired and stored can be considered to be cached at an electronic device, such as a mobile electronic device. A cache represents data storage that is provided for reduced memory access times. The digital data being “cached” can pertain to a plurality of digital assets, which can represent one or more types of digital assets.
One example of predictive digital data acquisition is for audiobooks. Usage data can, for example, concern data that is obtained by monitoring a user's usage of an e-book (or audiobook). In such an example, the usage data can estimate where the user is in “reading” the e-book via an electronic device. When the usage data indicates that the reader is nearing the end of the e-book, the predictive digital data acquisition can operate to acquire related digital data from one or more remote servers. The related digital data can be received via a network and stored on the electronic device. Thereafter, some or all of the related digital data can be presented to the user via the electronic device. The user can then subsequently preview, purchase, play, or review some or all of the related digital data without being then dependent on network availability. For instance, as a user completes a first e-book, a second e-book can be pre-stored on the electronic device in advance of any user request for such digital data. Hence, the second e-book is readily available at the electronic device regardless of network availability.
Another example of predictive digital data acquisition is for software games. Usage data can, for example, concern data that is obtained by monitoring a user's usage of a software game to estimate where the user is in “completing” the software game via an electronic device. When the usage data indicates that the user is close to “completing” the software game (such as approaching the end of the software game or approaching the need for another level, tool, feature, etc.), the predictive digital data acquisition can operate to acquire related digital data from one or more remote servers. The related digital data can be received and stored on the electronic device in advance and when the network is available. Thereafter, some or all of the related digital data can be utilized with the software game to the user via the electronic device. The user can then upgrade the software game or install another software game (e.g., a sequel game, a recommended game, etc.) using the related digital data efficiently without any need for network availability. For instance, as a user completes a first software game, an extension to the first software game or a second software game can be pre-stored on the electronic device in advance of any user request for such digital data.
Yet another example of predictive digital data acquisition is for podcasts or television shows. Usage data can, for example, concern data that is obtained by monitoring a user's usage of a particular podcast or television show. The usage data can estimate where the user is in viewing (or playback) of the particular podcast or television show via an electronic device (e.g., play position). When the usage data indicates that the user is nearing the end of the particular podcast or television show, the predictive digital data acquisition can operate to acquire related digital data from one or more remote servers. For example, the related digital data can pertain to a next or subsequent podcast or television show. The related digital data can be received via a network and stored on the electronic device. Thereafter, some or all of the related digital data can be presented to the user via the electronic device. The user can then preview, purchase, play, review some or all of the related digital data without being then dependent on network availability. For instance, as a user completes an episode or television show, a next episode or television show can be pre-stored on the electronic device in advance of any user request for such digital data such that it is available when the user completes the episode or television show.
More generally, as another example, usage data can be used to customize recommendations for a user. The user's electronic device can then operate to acquire digital data associated with the recommendations. The recommendations can be of various different kinds of digital data. A recommendation can also be for a preview of a digital media asset.
FIG. 1 is a block diagram of a digital asset access system 100 according to one embodiment. The digital asset access system 100 can include an online media server 102. The online media server 102 provides access to various digital assets. More particularly, the online media server 102 can manage access to store digital assets. The stored digital assets can be stored at the online media server 102 or stored remotely at a storage server (not shown). In one embodiment, the online media server 102 can enable networked-based access by computing devices for searching, browsing, purchasing, previewing or downloading the various stored digital assets.
The digital asset access system 100 also makes use of a network 104. The network 104 can include one or more wired networks and/or one or more wireless networks to facilitate data transfer between the online media server 102 and one more user computing devices 106.
According to one embodiment, the user computing devices 106 can each independently monitor usage data. The usage data can be stored and thus reside on the user computing device 106 and/or on the online media server 102 (or some other remote storage device). The usage data can be utilized to customize digital assets (or sets thereof) being provided to the particular user computing device 106. The determination of the customized digital assets can be performed at the user computing device 106 or at the online media server 102.
As one example, during a search through a plurality of digital assets, the usage data associated with the particular user computing device 106 that initiated the search can have the results of the search presented at the user computing device 106 such that the search results are customized for the user. For example, the user data associated with the user computing device 106 may indicate that the associated user is more interested in digital assets pertaining to television (TV) shows than digital assets pertaining to music. Hence, for such a user, the associated user computing device 106 can present the search results such that the TV shows within the results of the search can be more prominently presented to the user via the user computing device 106.
As another example, user computing device 106 can monitor usage data to intelligently maintain predicted digital assets on the user computing device 106. Here, in one embodiment, a portion of the local digital storage available to store digital assets at the user computing device 106 can be utilized to store digital assets that are predicted to be of potential interest to the user associated with the user computing device 106. In this case, those predicted digital assets can vary as the user data varies. In one implementation, the predicted digital assets can be acquired from the online media server 102 and electronically downloaded to the user computing device 106. The downloading of the predicted digital assets can be performed in a background mode since the user has at this time not made a specific request for these predicted digital assets.
FIG. 2A is a block diagram of a user computing device 200 according to one embodiment. The user computing device 200 can, for example, represent the user computing device 106 illustrated in FIG. 1.
The user computing device 200 includes a central controller 202. The central controller 202, for example, can include a central processing unit (CPU). The central controller 202 can include support for media playback. Namely, the central controller 202 can include or operate to provide a media play module 204. The media play module 204 can operate to play a digital asset, such as a digital media asset, on the user computing device 200.
The user computing device 200 can include a local data storage 206. The local data storage 206 can store one or more digital assets, such as digital media assets. The media play module 204 can be controlled by the central controller 202 to play one or more of the digital assets stored in the local data storage 206. The output of the media play module 204 can be directed by the central controller 202 to an output device 208. An input device 210, such as a user input device, can be used to supply user inputs to the central controller 202 to designate a digital asset to be played by the media play module 204. The input device 210 can also be used to provide other user inputs to the central controller 202.
The user computing device 200 can also include a network interface 212. The network interface 212 can enable the user computing device 200 to interact with an online media server via a network, such as the online media server 102 and network 104 illustrated in FIG. 1. Consequently, the user computing device 200 can send commands, receive responses and/or receive digital assets from the online media server 102. The digital asset(s) being received from the online media 102 via the network can be stored to the local data storage 206. Alternatively, the digital asset(s) being received from the online media server 102 can be streamed to an output device 208.
The user computing device 200 can also include a usage monitor 214. The usage monitor 214 is provided within the user computing device 200 to monitor usage by a user of the user computing device 200. In doing so, the usage monitor 214 can record usage data 216. The usage data 216 can, in one embodiment, be stored within the usage monitor 214 as shown in FIG. 2A. Alternatively or additionally, the usage data 216 can be stored to the local data storage 206.
The user computing device 200 can also include a predicted asset manager 218. The predicted asset manager 218 can predict one or more digital assets that are likely to be of interest to the user of the user computing device 200. The predicted asset manager 218 can make use of the usage data 216 acquired by the usage monitor 214. The usage data 216 can be acquired and manipulated or updated over time to provide a reliable data set used to predict digital assets likely to be of interest to the user. These predicted digital assets can be obtained from a remote server, such as the online media server 102 via the network interface 212. Upon receiving the predicted digital assets, the predicted digital assets can be stored to the local data storage 206. Typically, as noted above, a portion of the local data storage 206 can be dedicated to storage of predicted digital assets. Hence, it may be necessary to delete or remove a portion of the predicted digital assets previously stored in the dedicated portion of the local data storage 206 so that more recently predicted digital assets can be stored in the portion of the local data storage 206.
FIG. 2B is an illustrative view of a digital asset representation 250 according to one embodiment. The digital asset representation 250 represents a digital asset having a sequential arrangement of sections. These sections can correspond to chapters, tracks, episodes, shows, levels and the like. In the example illustrated in FIG. 2B, the digital asset representation includes six (6) sections. As a user consumes a digital asset, such as through playing the digital asset, a current user position 252 can be recorded and associated with the particular digital asset. Hence, if the user consumes (e.g., views, hears, etc.) a portion of the digital asset and then stops, then when the user later begins to again consume a subsequent portion of the digital media asset, the user can continue at the point at which he previously stopped. The starting position for resuming the consumption of the digital asset can be noted and recorded by the current user position 252.
The current user position 252 for the digital asset can be included within the usage data associated with the user of the user computing device that is consuming (e.g., playing) the digital asset being represented by the digital asset representation 250. The usage monitor 214 can track and record the current user position 252. In addition, the usage monitor 214 can also support one or more trigger points for a given digital asset. The trigger points are positions of a playback or usage of a digital asset. Typically, although not necessarily, the one or more trigger points are provided towards the end of a consumption of the digital asset. For example, a near end marker 254 can be associated with the digital asset. When the current user position 252 exceeds the near end marker 254, it can be denoted that the usage of the digital asset is nearing completion. In such cases, the usage monitor 214 can signal the predictive asset manager 208. The predicted asset manager 208 can then operate to acquire one or more related digital assets that are related to the digital asset being consumed.
The predicted asset manager 218 can cause predicted digital assets to be obtained from a remote media server and stored to a portion of the local data storage 206. For example, the predicted asset manager 218 can predict (e.g., using a trigger point, such as a near-end marker 254) that the user will soon desire to acquire information about a related digital asset to the digital asset being consumed. Hence, one or more related digital assets can be obtained from a remote server and downloaded via the network interface 212 to the local data storage 216 where the one or more related digital assets can reside at least temporarily in the event that the user computing device 200 (by user request or programmatic request) attempts to access such digital assets.
Thereafter, by another subsequent trigger point, by programmatic request or by user request, the central controller 202 can, for example, cause customized information to be presented to the user by way of the output device 208. For example, the output device 208 can present information about other digital assets that are related to the digital asset being consumed. Here, the one or more related digital assets obtained in advance by the predicted asset manager 218 can be accessed from the local data storage 206 by the central controller 202 and presented on the output device 208.
FIG. 3 is a flow diagram of a data acquisition process 300 according to one embodiment. The data acquisition process 300 can be performed by a user computing device, such as the user computing device 106 illustrated in FIG. 1.
The data acquisition process 300 can monitor 302 usage of a first digital media asset. Here, as the first digital media asset is being consumed at the user computing device, the usage thereof can be monitored 302. Usage can be evaluated based on the usage data. In one embodiment, the usage is as to a particular digital media asset (e.g., the first digital media asset); however, in other embodiments, usage can be generally applicable to a user or a category of digital assets. The usage monitoring 302 can cause usage data to be stored at the user computing device. Next, a decision 304 can determine whether usage has reached a trigger point. As an example, a trigger point can correspond to a near-end trigger point or an end trigger. When the decision 304 determines that usage has not reached a trigger point, a decision 306 can determine whether the data acquisition process 300 should quit. When the decision 306 determines that the data acquisition process 300 should quit, the data acquisition process 300 can end. Alternatively, when the decision 306 determines that the data acquisition process 300 should not quit, the data acquisition process 300 returns to repeat the block 302 and subsequent blocks so that usage of the first digital media asset can be continuously monitored 302.
Once the decision 304 determines that usage has reached a trigger point, additional digital media data affiliated with the first digital media asset can be determined 308. Although the nature of the affiliation can differ depending upon implementation, in one example, the first digital media asset can pertain to an audio e-book and the additional digital media data can pertain to an audio e-book from the same author. As another example, the first digital media asset can pertain to a television show and the additional digital media data can pertain to a subsequent show of the same television series.
After the additional digital media data has been determined 308, the additional digital media data can be retrieved 310. For example, the additional digital media data can be retrieved 310 from a remote media server, such as the online media server 102. The additional digital media data can then be stored 312 in local storage (e.g., local data storage 206). Following block 312, the data acquisition process 300 can return to repeat the block 302 and subsequent blocks so that usage can be monitored and so that appropriate additional digital media data can be determined, retrieved and stored so that it is readily accessible from the local storage at the user computing device.
FIGS. 4A and 4B are flow diagrams of a data retrieval process 400 according to one embodiment. The data retrieval process 400 can, for example, be performed by a user computing device, such as the user computing device 106 illustrated in FIG. 1.
The data retrieval process 400 can monitor 402 usage of a first digital media asset at the user computing device. A decision 404 can determine whether usage of the first digital media asset being monitored 402 has exceeded a near-end mark. A near-end mark is one implementation of a trigger point, where the trigger point is positioned near the end of a digital media asset. For example, a near-end trigger point can be provided at any position of a digital media asset that is prior to its end. Typically, the position of the near-end trigger depends on the particular type of digital media asset and how fast it is (or can be) consumed. In a first example, a user might be progressing slowly through a digital media asset (e.g., audiobook, game), while another user might progress faster through a digital media asset. Here, in the first example, the near-end trigger for the “fast progressor” would perhaps be set further from the end than then the near-end trigger for the “slow progressor”. In a second example, a digital media asset having of 30 minutes duration can use a trigger point that is farther from its end point as a percentage of its content than would, in one embodiment, be the case for another digital media asset having 3 hours duration.
When the decision 404 determines that usage of the first digital media asset has exceeded the near-end mark, additional digital media data affiliated with the first digital media asset can be determined 406. The additional digital media data can be retrieved 408 from a remote storage. For example, the remote storage can pertain to any network-accessible data storage device or system. The additional digital media data can be stored 410 in the local data storage of the user computing device.
Thereafter, a decision 412 can determine whether usage of the digital media asset had exceeded an end-mark. When the decision 412 determines that usage has exceeded the end mark, a decision 414 can determine whether additional digital media data is already stored in local storage. When the decision 414 determines that the additional digital media data is stored in local storage, the data retrieval process 400 returns to repeat the block 402 and subsequent blocks. Also, when the decision 412 determines when the usage has not exceeded an end mark, the data retrieval process 400 can also return to repeat the block 402.
On the other hand, when the additional digital media data is available from local storage, at least a portion of the additional digital media data can be retrieved from the local storage. The retrieved data can then be presented 418. Here, the retrieved data can pertain to data that was previously predicted to be of interest to the user of the user computing device and thus pre-stored in the user computing device. Hence, the retrieved data can be presented 418 to the user by way of the user computing device, such as by displaying the retrieved data or by playing the retrieved data.
In one implementation, the presentation 418 of the retrieved data can present to the user an opportunity to purchase at least a portion of the retrieved data. In this regard, a decision 420 can determine whether a purchase request with respect to the retrieved data has been received. When the decision 420 determines that a purchase request has been received, purchase of at least a portion of the retrieved data can be initiated 422. A decision 424 can then determine whether purchase of the at least a portion of the retrieved data has been successful. When the decision 424 determines that the purchase has been successful, the data retrieval process 400 can operate to enable 426 use of the at least a portion of the retrieved data.
On the other hand, when the decision 424 determines that purchase of at least the portion of the retrieved data has not been successful, an error message can be displayed 428. Typically, the error message would be displayed at the user computing device. Following the block 426 or following the block 428, and as well as following the decision 420 if a purchase request is not received, a decision 430 can determine whether the data retrieval process 400 should quit. When the decision 430 determines that the data retrieval process 400 should not quit, the data retrieval process 400 can return to repeat the block 402 and subsequent blocks so that the data retrieval process 400 can be continuously performed. However, it should be noted that in other embodiments, the data retrieval process 400 need only be occasionally or less frequently performed. Alternatively, when the decision 430 determines that the data retrieval process 400 should quit, the data retrieval process 400 can end.
Conventionally, searches of digital assets are not performed differently for different users. That is, the search results are the same regardless of the user requesting the search. However, it may be advantageous to provide search results that are customized for particular users, whereby the search results can differ for different users. Hence, according to another aspect, improved search processing can be provided by customizing search results based on characteristics, interests, tendencies or preferences of particular users. In one embodiment, a search of digital assets being requested by a user can be performed in view of usage data associated with the requesting user. For example, results of a search can be ranked in accordance with the usage data. The usage data can result from monitoring usage of an electronic device (e.g., mobile electronic device).
FIG. 5 is a block diagram of a user computing device 500 according to another embodiment. The user computing device 500 includes a central controller 502. The central controller 502, for example, can include a central processing unit (CPU). The central controller 502 can include support for data searching, such as searching digital media assets. Namely, the central controller 502 can include or operate to provide a media search module 504. The media search module 504 can operate to search a repository of digital media assets. The repository of digital media assets can, for example, be a remote media storage server or a local media library at the user computing device 500.
The user computing device 500 can include a local data storage 506. The local data storage 506 can store one or more digital assets, such as digital media assets. Those digital media assets stored to the local data storage 506 can be referred to as a local media library.
The media search module 504 can be controlled by the central controller 502 to search through the digital assets stored in the local data storage 206 (i.e., the local media library). The search results from the media search module 504 can be directed by the central controller 502 to an output device 508. An input device 510, such as a user input device, can be utilized by the central controller 502 to designate one or more search criteria to be used by the media search module 504. The input device 510 can also be used to provide other user inputs to the central controller 502.
The user computing device 500 can also include a network interface 512. The network interface 512 can enable the user computing device 500 to interact with online media server via a network, such as the online media server 102 and the network 104 illustrated in FIG. 1. Consequently, the user computing device 500 can send commands, received responses and/or receive digital assets from the online media server 102. The digital asset(s) being received from the online media 102 via the network can be stored to the local data storage 206. Alternatively, the digital asset(s) being received from the online media server 102 can be streamed to an output device 208. The media search module 504 can be used to search digital assets available from the online media server 102.
The user computing device 50 can also include a usage monitor 514. The usage monitor 514 is provided within the user computing device 500 to monitor usage by the user of the user computing device 500. In doing so, the usage monitor 514 can record usage data 516. The usage data 516 can be stored with in the usage monitor 514 as shown in FIG. 5. Alternatively or additionally, the usage data 516 can be stored to the local data storage 506. The usage data 516 can be acquired and manipulated or updated over time to provide a reliable data set that can be used to assist in customizing search results for the user.
FIG. 6 is a flow diagram of a customized search process 600 according to one embodiment. The customized search process 600 can, for example, be performed by an electronic device, such as the user computing device 106 illustrated in FIG. 1.
The customized search process 600 can present 602 a search graphical user interface (GUI) on the electronic device. The search GUI enables a user to request a user search. Typically, a user would interact with the search GUI to enter one or more search criteria into one or more user input regions prior to requesting that a search be performed. After the search GUI has been presented 602, a decision 604 can determine whether a user search request has been received at electronic device. When the decision 604 determines that a user search request has not been received, a decision 606 can determine whether the customized search process 600 should quit. When the decision 606 determines that the customized search process 600 should quit, the customized search process 600 can end. Alternatively, when the decision 606 determines that the customized search process 600 should not quit, then the customized search process 600 returns to repeat the block 602 and subsequent blocks so that the user has the ability to interact with the search GUI to provide a user search request.
Once the decision 604 determines that a user search request has been received, usage data pertaining to the electronic device or its user can be accessed 608. Next, a search for digital media assets that match the user search request can be initiated 610. After a search has been initiated 610, a decision 612 can determine whether search results have been received. When the decision 612 determines that search results have not yet been received, the customized search process 600 can await such search results.
On the other hand, when the decision 612 determines that search results have been received, the search results can be ranked 614 based in part on the usage data. The usage data can, upon evaluation, suggest content that is more likely to be of interest to the user of the electronic device. Hence, these search results can be ranked 614 such that those of the digital assets within the search results that are more likely to be of interest to the user (e.g., based on the usage data) can be ranked higher than other digital assets within the search results. Thereafter, the ranked search results can be presented 616. For example, the ranked search results can be displayed on a display device associated with the electronic device. After the ranked search results have been presented 616, the customized search process 600 can end. However, in some embodiments, prior to ending the customized search process 600, additional processing could be performed to present additional ones of the ranked search results, to preview one or more of the digital assets within the ranked search results, and/or to purchase one or more of the digital assets within the ranked search results.
In the customized search process 600, the search results can be ranked 614 at the electronic device (e.g., user computing device 106) after the search results are received. Alternatively, the search and the ranking can be performed by a remote server prior to returning the search results to the electronic device.
Another aspect of the invention is a search graphical user interface (GUI). The search GUI can facilitate a user requesting a search and/or presenting results of a search to the user. FIGS. 7A-7D illustrate exemplary search screens of a search GUI according to one embodiment. The search GUI can be displayed on a display device associated with an electronic device.
FIG. 7A is an illustration of a search GUI 700 according to one embodiment. The search GUI 700 can include a search box 702 capable of receiving a search text string that has been input by a user. The search GUI 700 also includes a facet region 704 that includes one or more user-selectable facets that can impact a search to be performed. As illustrated in FIG. 7A, the facet region 704 can include a category facet 706, a release date facet 708, a star rating facet 710, a price facet 712, and a type facet 714. Besides these illustrated facets, other facets can be additionally or alternatively utilized depending upon the particular implementation. Also, in the case of the category facet 706, it should also be noted that an additional facet could pertain to a sub-category. For each of the facets 706-714, on selection, a list or menu of available items can be presented. A user can select one of the available items associated with each of the facets. For example, the category facet 706 can include a list of selectable categories. Examples of categories for mobile device software applications can include: all, books, business, education, entertainment, finance, games, healthcare & fitness, lifestyle, medical, music and navigation. The star rating facet 710 can provide a list of selectable ratings. Examples of ratings can include: all, 5 star, 4 star, 3 star and 2 star. The type facet 714 can provide a list of selectable types of electronic devices for which the digital assets are to be usable on. Examples of types can include: all, netbook (e.g., iPadTM) and smart phone (e.g., iPhoneTM).
The facet region 704 can also include a reset facet 716. Upon user selection of the recent facet 716, all the facets 706-714 can all reset to their default state, as illustrated in FIG. 7A.
Still further, the search GUI 700 can also include a results region 718. Here, the results of a search that has been performed in accordance with a search text string provided in the search text string box 702 as well as in accordance with the plurality of facets within the facet region 704. The results of the search can be presented in the results region 718 in a variety of different ways. For example, the results of the search can be presented as a list of matching digital assets, namely digital media assets. As discussed above, the results of the search can be ranked in accordance with usage data. However, as illustrated, since the search text string box 702 is empty, no search has been performed and thus the results region 718 is empty.
FIG. 7B is an illustration of a search GUI 700′ according to one embodiment. The search GUI 700′ represents the search GUI 700 illustrated in FIG. 7A in which the results region 718 is now represented as the results region 718′. Here, representative search results are depicted in the results region 718′. As an example, the results region 718′ illustrated in FIG. 7B illustrates four (4) distinct digital media assets 720 being concurrently represented. These four distinct digital media assets 720 are all or part of a set of digital media assets that are the search results. In this illustrated embodiment, for each of the digital media assets 720, the representation can, for example, include a graphic 722, descriptive information 724, a price 726 and a “buy” button 728. The graphic 722 can pertain to an image associated with the digital media asset 720. For example, the image can pertain to a representative image (e.g., an album cover or a poster), a corporate logo, and the like. The descriptive information can, for example, provide artist or developer name, category, date released or updated, and/or rating information. The rating information can, for example, include a rating as well as a number of ratings that form the basis for the rating.
FIG. 7C is an illustration of a search GUI 700′′ according to one embodiment. The search GUI 700′′ represents the search GUI 700 illustrated in FIG. 7A in which a specific search has been requested. In this example, the search key word “graphics” 730 has been entered into the search box 702. The plurality of facets within the facet region 704′ remain in their default settings. The results of the search are partially presented in the results region 718′′. Each of the digital media assets 720 that match the keyword 730 as well as the facet settings can be presented similar to that discussed above in FIG. 7B. Additionally, the facet region 704′ includes a numerical reference 732 and a sort control 734. The numerical indicators 732 can specify the number of digital media assets that match the search criteria. In addition, the numerical indicators 732 can also indicate those of the set of digital media assets that match the search criteria are being presented. For example, as shown in FIG. 7C, and the numerical indicator specifies “1-4 of 1000”, meaning that the first four of the matching digital media assets are presented in the results region 718′′. The sort control 734 is a user selectable control and that enables a user to sort the matching digital media assets within the results region 718′′. By sorting the matching digital media assets, the order in which the various digital media assets are presented can be controlled.
FIG. 7D is an illustration of a search GUI 700′′′ according to one embodiment. The search GUI 700′′′ represents a modification to the GUI 700′′ illustrated in FIG. 7C. Specifically, several of the facets within the facet region 704′′ have been user selected so as to specify different search criteria than the default criteria. Specifically, the category facet 706 has been selected to the category “Games”, and the release date facet 708 has been selected to limit the release date to “This Month”, and the star rating facet 710 has been selected to limit the search results to those digital media assets having a star rating of at least “5 stars”. It should also be noted that the numerical indicator 732′ is also updated to reflect that the number of matching digital media assets has now been reduced to 210 through use of the search criteria imposed by the facets 706, 708 and 710 which serves to further limit the scope of the search. The digital media assets 720 being depicted in the results region 718′′′ are not necessarily the same digital media assets being presented in the results region 718′′ shown in FIG. 7C.
Although the facets 706-714 discussed above in FIGS. 7A-7D are user-selected, in another embodiment, one or more of the facets 706-714 can be automatically selected based on usage data. In such an embodiment, a user could allow the electronic device to determine the facet settings based on usage data. As discussed above, usage data can be monitored and then used for customization. Here, the usage data can be used to automatically set one or more of the facet settings. The search GUI could, as an example, not present the facets 706-714 for user selection if the facets were automatically selected. However, even if the facets are automatically determined by the electronic device, a user may still desire that the facets 706-714 be displayed so as to be able to over-ride or set one or more of the facets.
The various aspects, features, embodiments or implementations of the invention described above can be used alone or in various combinations.
Embodiments of the invention can, for example, be implemented by software, hardware, or a combination of hardware and software. Embodiments of the invention can also be embodied as computer readable code on a computer readable medium. The computer readable medium is any data storage device that can store data which can thereafter be read by a computer system. Examples of the computer readable medium generally include read-only memory and random-access memory. More specific examples of computer readable medium are tangible and include Flash memory, EEPROM memory, memory card, CD-ROM, DVD, hard drive, magnetic tape, and optical data storage device. The computer readable medium can also be distributed over network-coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.
Numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will become obvious to those skilled in the art that the invention may be practiced without these specific details. The description and representation herein are the common meanings used by those experienced or skilled in the art to most effectively convey the substance of their work to others skilled in the art. In other instances, well-known methods, procedures, components, and circuitry have not been described in detail to avoid unnecessarily obscuring aspects of the present invention.
In the foregoing description, reference to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment can be included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments. Further, the order of blocks in process flowcharts or diagrams representing one or more embodiments of the invention do not inherently indicate any particular order nor imply any limitations in the invention.
The many features and advantages of the present invention are apparent from the written description. Further, since numerous modifications and changes will readily occur to those skilled in the art, the invention should not be limited to the exact construction and operation as illustrated and described. Hence, all suitable modifications and equivalents may be resorted to as falling within the scope of the invention.

## Claims

1. A method for processing a search request, the method comprising:
receiving a search request from an electronic device, the search request including one or more search criteria;
searching a database in accordance with the one or more search criteria to obtain search results, the database including digital asset information pertaining to a plurality of digital media assets and the search results corresponding to different digital media assets;
monitoring usage of the electronic device to determine usage data, wherein monitoring the usage includes determining a level of completion of a digital media asset consumed by the electronic device;
determining, based on the level of completion of the digital media asset consumed by the electronic device, that a particular type of digital media asset is of more interest to a user of the electronic device compared to another type of digital media asset when the level of completion of the digital media asset consumed by the electronic device has exceeded a trigger point of the digital media asset, wherein the trigger point indicates a position in the digital media asset;
ranking the search results based at least in part on the usage data and the particular type of digital media asset determined to be of more interest to the user compared to the other type of digital media asset, wherein ranking the search results includes increasing a ranking for digital media assets belonging to the determined particular type of digital media assets compared to digital media assets of the other type within the search results; and
presenting the ranked search results via the electronic device.

2. The method of claim 1, wherein the search results includes resultant digital asset information pertaining to a subset of the plurality of digital media assets.

3. The method of claim 1, wherein the usage data pertains to historical usage of the electronic device or its user.

4. The method of claim 1, wherein the searching is influenced by the usage data.

5. The method of claim 1, wherein the one or more search criteria comprises one or more search facets that further limit a scope of the search, and wherein presenting the ranked search results comprises displaying information concerning a set of the digital media assets that fall under the one or more search facets.

6. The method of claim 5, wherein the one or more search facets are automatically determined by the electronic device.

7. The method of claim 5, wherein the one or more search facets are each individually user-selectable.

8. The method of claim 1, further comprising:
enabling purchase of at least a portion of the ranked search results;
determining whether a purchase request with respect to the ranked search results has been received; and
purchasing at least the portion of the ranked search results when the purchase request has been determined to be received.

9. The method of claim 1, wherein a category of a digital media asset is one of a group consisting of a television show, a musical piece, a video, an electronic book, an audiobook, a software game, and a podcast.

10. The method of claim 1, wherein searching the database includes searching digital media assets resident at a local repository of the electronic device and digital media assets resident at a remote repository associated with an online media server.

11. The method of claim 1, wherein the position of the trigger point in the digital media asset is dependent upon the particular type of the digital media asset and duration of the digital media asset.

12. The method of claim 1, wherein different types of digital media assets have trigger points in different positions of the digital media assets.

13. The method of claim 1, wherein the plurality of digital media assets corresponds to a plurality of mobile device software applications, wherein the plurality of mobile device software applications includes at least one of a book application, a business application, an education application, an entertainment application, a finance application, a game application, a healthcare and fitness application, a lifestyle application, a medical application, a music application, or a navigation application.

14. The method of claim 1, wherein presenting the ranked search results includes presenting a representation of a software application, descriptive information for the software application, and a price to acquire the software application.

15. A computer readable memory encoded with a set of program instructions that, when executed, causes a processor to execute a method, the method comprising:
receiving a search request from an electronic device, the search request including one or more search criteria;
searching a database in accordance with the one or more search criteria to obtain search results, the database including digital asset information pertaining to a plurality of digital media assets and the search results corresponding to different digital media assets;
monitoring usage of the electronic device to determine usage data, wherein monitoring the usage includes determining a level of completion of a digital media asset consumed by the electronic device;
determining, based on the level of completion of the digital media asset consumed by the electronic device, that a particular type of digital media asset is of more interest to a user of the electronic device compared to another type of digital media asset when the level of completion of the digital media asset consumed by the electronic device has exceeded a trigger point of the digital media asset, wherein the trigger point indicates a position in the digital media asset;
ranking the search results based at least in part on the usage data and the particular type of digital media asset determined to be of more interest to the user compared to the other type of digital media asset, wherein ranking the search results includes increasing a ranking for digital media assets belonging to the determined particular type of digital media assets compared to digital media assets of the other type within the search results; and
presenting the ranked search results via the electronic device.

16. The computer readable storage medium of claim 15, wherein the search results includes resultant digital asset information pertaining to a subset of the plurality of digital media assets.

17. The computer readable storage medium of claim 15, wherein the one or more search criteria are determined automatically based on the usage data.

18. The computer readable storage medium of claim 15, wherein the method further comprises:
receiving a user selection for at least one of the one or more search criteria.

19. The computer readable storage medium of claim 15, wherein presenting the search results comprises displaying information concerning a set of the digital media assets that match at least the one or more search criteria.

20. The computer readable storage medium of claim 15, wherein the one or more search criteria are presented as user interface elements on a display device associated with the electronic device, and wherein the user interface elements are user-selectable.

21. The computer readable storage medium of claim 15, wherein at least one of the user interface elements enable selection of one of a list of selectable search criteria.