Application software products (i.e., applications) have been developed to perform a variety of functions related to, for example, word processing, spreadsheets, slide show presentations, database management, electronic mail, Internet access, business productivity, educational assistance, health and fitness management, providing digital content (such as, for example, text, pictures, audio, video, and electronic games), navigation, text messaging, access to social media networks, etc. Often, entities, such as developers, that prepare, maintain, or own such applications want or need to provide updates to them. Such updates can be made for a variety of reasons including, for example, to fix software bugs, to add features, to address issues related to security, and to ensure compatibility with changes to operating systems used to run the corresponding applications.
Additionally, the advancement of electronic communication network bandwidth capabilities in the last decade has enabled the delivery of applications to shift from being primarily performed via physical data storage devices (such as, for example, floppy disks, compact discs, digital versatile discs, and Universal Serial Bus flash drives) to being performed via online distribution in which developers can upload applications to a digital distribution platform and users can download applications from the digital distribution platform.
According to an embodiment of the disclosed subject matter, in a computer-implemented method for communicating information about an update of an application, a digital distribution platform can receive, at a first time, the update of the application. The digital distribution platform can receive, at a second time, a signal from a user device. The signal can include a request to receive a transmission of a user interface customized for a user account. The digital distribution platform can automatically determine, in response to receipt of the request to receive the transmission of the user interface customized for the user account, that the application was downloaded, at a third time, to the user device. The digital distribution platform can automatically generate, in response to the second time being later than the first time, the user interface. The user interface can include the information about the update.
According to an embodiment of the disclosed subject matter, in a non-transitory computer-readable medium storing computer code for controlling a processor to cause the processor to communicate information about an update of an application, the computer code can include instructions to cause the processor to receive, at a first time, the update of the application. The computer code can include instructions to cause the processor to receive, at a second time, a signal from a user device. The signal can include a request to receive a transmission of a user interface customized for a user account. The computer code can include instructions to cause the processor to determine, in response to receipt of the request to receive the transmission of the user interface customized for the user account, that the application was downloaded, at a third time, to the user device. The computer code can include instructions to cause the processor to generate, in response to the second time being later than the first time, the user interface. The user interface can include the information about the update.
According to an embodiment of the disclosed subject matter, a system for communicating information about an update of an application can include communications circuitry and a processor. The communications circuitry can be configured to receive the update of the application. The communications circuitry can be configured to receive a signal from a user device. The signal can include a request to receive a transmission of a user interface customized for a user account. The processor can be configured to determine a time at which the system received the update. The processor can be configured to determine a time at which the system received the request. The processor can be configured to determine, in response to receipt of the request to receive the transmission of the user interface customized for the user account, a time at which the application was downloaded to the user device. The processor can be configured to generate, in response to the time at which the system received the update being later than the time at which the application was downloaded to the user device and in response to the time at which the system received the request being later than the time at which the system received the update, the user interface. The user interface can include the information about the update.
According to an embodiment of the disclosed subject matter, a system for communicating information about an update of an application can include means for receiving the update of the application. The system can include means for receiving a signal from a user device. The signal can include a request to receive a transmission of a user interface customized for a user account. The system can include means for determining a time at which the update was received. The system can include means for determining a time at which the request was received. The system can include means for determining, in response to receipt of the request to receive the transmission of the user interface customized for the user account, a time at which the application was downloaded to the user device. The system can include means for generating, in response to the time at which the system received the update being later than the time at which the application was downloaded to the user device and in response to the time at which the system received the request being later than the time at which the system received the update, the user interface. The user interface can include the information about the update.
Additional features, advantages, and embodiments of the disclosed subject matter are set forth or apparent from consideration of the following detailed description, drawings, and claims. Moreover, it is to be understood that both the foregoing summary and the following detailed description are illustrative and are intended to provide further explanation without limiting the scope of the claims.
The accompanying drawings, which are included to provide a further understanding of the disclosed subject matter, are incorporated in and constitute a part of this specification. The drawings also illustrate embodiments of the disclosed subject matter and together with the detailed description serve to explain the principles of embodiments of the disclosed subject matter. No attempt is made to show structural details in more detail than may be necessary for a fundamental understanding of the disclosed subject matter and various ways in which it may be practiced.
A wide assortment of information (such as, for example, software, text, pictures, audio, video, and interactive games) can be provided to users as digital content. Digital content intended to be presented to users can be included in application software products (i.e., applications or “apps”). In addition to presenting digital content, applications have also been developed to perform a variety of functions related to, for example, word processing, spreadsheets, slide show presentations, database management, electronic mail, Internet access, business productivity, educational assistance, health and fitness management, navigation, text messaging, access to social media networks, etc. Often, entities, such as developers, that prepare, maintain, or own such applications may want or need to provide updates to them. Such updates can be made for a variety of reasons including, for example, to fix software bugs, to add features, to address issues related to security, and to ensure compatibility with changes to operating systems used to run the corresponding applications.
Additionally, the advancement of electronic communication network bandwidth capabilities in the last decade has fostered the development of mobile computing devices such as, for example, tablet computers, smartphones, and personal digital assistants. Through electronic communication networks, mobile computing devices can obtain information about their locations. The combination of the portability of mobile computing devices and the ability of these devices to obtain information about their locations has encouraged the introduction of vast numbers of applications to expand the functionality of these devices. Additional numbers of applications have also been produced for traditional, stationary computing devices such as, for example, desktop computers.
Moreover, the growth in electronic communication network bandwidth has also enabled the delivery of applications to shift from being performed primarily via physical data storage devices (such as, for example, floppy disks, compact discs, digital versatile discs, and Universal Serial Bus flash drives) to being performed via online distribution in which developers can upload applications to a digital distribution platform and users can download applications from the digital distribution platform. Online distribution has also allowed applications to be updated at an increasingly frequent rate. This situation gives rise to the specific problem, rooted in the vast numbers of applications and the increasingly frequent rate at which they are updated, of communicating to users information about updates made to previously downloaded applications.
Conventionally, information about updates made to previously downloaded applications is automatically communicated via a push approach. In a push approach, information about the updates is automatically communicated, when a threshold is reached, to user devices to which respective applications were previously downloaded. The threshold can be a count of updates to be made to several applications and/or a duration of time since information about updates was previously communicated. Conventionally, such information merely includes notices that the applications have been updated and invitations for users of the user devices to download the updates. Such an approach fails to provide users with specific information about the updates such as the content of the update, what features or portions of an application may be available in conjunction with installation of the update, which are unavailable or function differently without installation of the update, and the like. Additionally, because the information about the updates is automatically communicated to the user devices, the push approach may result in users declining to download updates out of a belief that the updates are irrelevant or not of interest to the users.
In contrast, according to embodiments disclosed herein, information about updates can be communicated to the user in response to a user account, provided by a digital distribution provider, being accessed by a user. In this manner, the information about the update can be presented to the user in an environment in which the user may be more likely to be receptive to thinking about the information about the update. In such an environment, the user may be more likely to act on the information about the update, for example, by downloading the update. Moreover, according to embodiments disclosed herein, the user can be provided with specific information about the update, such as that the update includes additional content, features, options, or the like, or specific descriptions of the additional or different content, features, options, or the like (e.g., “50% New Content!”, “Free currency now included!”, “Check out the free items inside!”, “See the discounts on back to school items!”, etc.). Having such specific information, the user may be more likely to act on the information about the update, for example, by downloading the update.
For example, the developer 112, using the upload platform 104 and via the network 108, can upload an application to the digital distribution platform 102. For example, the user 114, using the user device 106 and via the network 108, can establish a user account provided by the digital distribution provider 110. In response to the user 114 being logged into the user account via the user device 106 and the network 108, the digital distribution platform 102 may then provide a user interface, such as a web page, for the user account. For example, the user interface can be provided to the user device 106 via the network 108. The user interface can include one or more graphical control elements that can be selected or otherwise activated by the user, such as to execute or to access one or more applications. A graphical representation, such as an icon, can be associated with each of the graphical control elements. Each graphical representation can identify a particular application. For example, the user 114, using the user interface, can download an application from the digital distribution platform 102, via the network 108, to the user device 106. The developer 112, using the upload platform 104 and via the network 108, can also upload an update to an application to the digital distribution platform 102, which then can be used by the user 114 to update the application as disclosed in further detail herein.
In general, each of the platforms 102 and 104 can be a computer-implemented platform configured to automatically perform some or all of the functions disclosed herein. The digital distribution platform 102 can be, for example, a combination of hardware architecture, operating system, runtime libraries, and/or computer software or code object to support digital distribution applications. In an embodiment, the digital distribution platform 102 can be configured specifically to perform digital distribution operations. The upload platform 104 can be, for example, a combination of hardware architecture, operating system, runtime libraries, and/or computer software or code object to support upload applications. In an embodiment, the upload platform 104 can be configured specifically to perform upload operations.
The user device 106 can be, for example, any suitable electronic user device, such as a smartphone, a cellular phone, a personal digital assistant (PDA), a wireless communication device, a handheld device, a desktop computer, a laptop computer, a netbook, a tablet computer, a web portal, a digital video recorder, a video game console, an e-book reader, etc.
The network 108 can be, for example, a telecommunications network configured to allow computers to exchange data. Connections between elements of the environment 100 via the network 108 can be established using cable media, wireless media, or both. Data traffic on the network 108 can be organized according to a variety of communications protocols including, but not limited to, the Internet Protocol Suite (Transmission Control Protocol/Internet Protocol (TCP/IP)), the Institute of Electrical and Electronics Engineers (IEEE) 802 protocol suite, the synchronous optical networking (SONET) protocol, the Asynchronous Transfer Mode (ATM) switching technique, or any combination thereof. In an embodiment, the network 108 can include the Internet.
At an operation 204, the digital distribution platform can receive, at a second time, a signal from a user device. The signal can include a request to receive a transmission of a user interface customized for a user account. The user device and the user account can be associated with a user. The user account can be with a digital distribution provider. The digital distribution provider can be configured to provide, for each user account, a customized user interface. The customized user interface can be configured to present information in a manner preferred by the associated user. For example, the user device can be the user device 106, the user can be the user 114, and the digital distribution provider can be the digital distribution provider 110 as illustrated in
At an operation 206, the digital distribution platform can automatically determine, in response to receipt of the request to receive the transmission of the user interface customized for the user account, that the application was downloaded, at a third time, to the user device. In an aspect, the digital distribution platform can include or can be operatively coupled to a second database. The second database can be configured to store information about a user account provided by the digital distribution provider such as an application marketplace, online store, or other distribution system. The second database can be configured to record activities of the user with respect to the user account. Such activities can include, for example, dates and times at which the user logs into the user account, dates and times at which the user logs out of the user account, identifications of applications downloaded, dates and times at which applications are downloaded, dates and times at which graphical control elements are selected or otherwise activated on a user interface for the user account, etc. In an aspect, a processor of the digital distribution platform can be configured to retrieve the third time from the second database.
At an operation 208, the digital distribution platform can automatically generate, in response to the first time being later than the third time and in response to the second time being later than the first time, the user interface. The user interface can include the information about the update. For example, if the digital distribution platform received the update of the application on Sep. 15, 2015 (the first time), received the request to receive the transmission of the user interface customized for the user account on Sep. 30, 2015 (the second time), determined that the application was downloaded to the user device on Jul. 1, 2015 (the third time), the digital distribution platform can automatically generate the user interface with the information about the update.
In an implementation, the information about the update can include a description of a change in content of the application included in the update. In an aspect, the change in content can be a new user feature of the application, a new game component in the application, a new promotion available, within the application, to a user, a change determined to be of interest to the user, the like, or any combination thereof. For example, the new user feature can be background information added to a digital media content application, new graphical control elements that allow the user to perform additional operations, new security features, etc. For instance, the new game component can include additional levels, new characters, changed items, etc. For illustration, the new promotion can include coupons, digital currency, virtual currency, award points, etc. For example, the change determined to be of interest to the user can be a particular change made to the application based upon information obtained from a profile of the user.
In an implementation, the information about the update can be presented as a change in an appearance of the user interface. The appearance of the user interface can be customized for the user account. For example, the appearance of the user interface can include an arrangement of one or more graphical representations such that each graphical representation is associated with a corresponding application. In an aspect, the change in the appearance can be a change in an appearance of a graphical representation for the application (e.g., a change in appearance of an icon for the application, a star placed next to the icon, text placed next to the icon in which the text states “50% New Content!”, “Free currency now included!”, “Check out the free items inside!”, “See the discounts on back to school items!”, etc.), an addition of text that includes at least some of the information about the update (e.g., addition of text in a display window of the user interface in which the text states “Application A now has new content!”), a change in a position of the graphical representation for the application in the arrangement (e.g., changing the position of the icon for the application to a more prominent position in the arrangement), the like, or any combination thereof.
In an aspect, an ordering of graphic representations in the arrangement can be based on an expected response of a user associated with the user account to the ordering. In an embodiment, a processor of the digital distribution platform can be configured to retrieve, from the second database, a user history with respect to one or more applications. The digital distribution platform can be configured to retrieve information about how the arrangement of the graphical representations for those one or more application were ordered on the user interface for the user account. Using this information, the digital distribution platform can be configured to determine if the user is more likely to respond to a graphical representation presented at a center of the user interface and less likely to respond to graphical representations presented progressively further away from the center of the user interface, or if the user is more likely to respond to a graphical representation presented near a top, left corner of the user interface and less likely to respond to graphical representations presented progressively further away from the top, left corner of the user interface, etc.
Advantageously, because the information about the update can be communicated to the user in response to a request from the user to receive the transmission of the user interface customized for the user account, the information about the update can be presented to the user in an environment in which the user may be more likely to be receptive to thinking about the information about the update. In such an environment, the user may be more likely to act on the information about the update, for example, by downloading the update.
Advantageously, because the user can be provided with specific information about the update (e.g., “50% New Content!”, “Free currency now included!”, “Check out the free items inside!”, “See the discounts on back to school items!”, etc.), the user may be more likely to act on the information about the update, for example, by downloading the update.
Advantageously, having the information about the update communicated according to the method 200, rather than automatically communicated according to a push approach, can reduce an amount of time that a processor of the digital distribution platform spends processing such automatic push approach communications, which can free the processor to perform other operations. Additionally or alternatively, reducing the operation of the circuits of the digital distribution platform to process such automatic push approach communications can prolong the life of such circuits.
Advantageously, having the information about the update communicated according to the method 200, rather than automatically communicated according to a push approach, can reduce an amount of time that a processor of the user device spends processing such automatic push approach communications, which can free the processor to perform other operations. Additionally or alternatively, reducing the operation of the circuits of the user device to process such automatic push approach communications can prolong the life of such circuits.
Additionally or alternatively, if the user device receives power from a portable energy source, such as a battery or a fuel cell, then reducing the operation of the circuits of the user device to process such automatic push approach communications can prolong a duration of time before the portable energy source would need to be replenished.
Advantageously, having the information about the update communicated according to the method 200, rather than automatically communicated according to a push approach, can free the bandwidth, which would otherwise be consumed to convey such automatic push approach communications, to convey other information.
As described above, the information about the update can be presented as a change in an appearance of the user interface. The appearance of the user interface can be customized for the user account. For example, the appearance of the user interface can include an arrangement of one or more graphical representations such that each graphical representation is associated with a corresponding application. In an aspect, the change in the appearance can be a change in an appearance of a graphical representation for the application, an addition of text that includes at least some of the information about the update, a change in a position of the graphical representation for the application in the arrangement, the like, or any combination thereof.
In an implementation, the change in the appearance can be based on a first prediction. The first prediction can be a prediction of a response of a user associated with the user account to the information about the update. In an embodiment, a processor of the digital distribution platform can be configured to retrieve, from the second database, a user history with respect to one or more applications. The digital distribution platform can be configured to determine, from the user history, activities performed by the user in response to information about one or more previous updates to the one or more applications. The activities performed by the user in response to the information about a previous update can include activities such as selecting or otherwise activating a graphical control element in response to the information about the previous update to find out information about the respective update and/or the corresponding application, to download the respective update and/or the corresponding application, to make a purchase, etc. Based on an analysis of the user history of the activities performed by the user in response to the information about the previous update, the digital distribution platform can produce the first prediction. Based on the first prediction, the change in the appearance of the user interface can include a change in the information about the update and/or a change in a classification of the user with respect to being targeted to receive the information about the update.
Additionally or alternatively, the change in the appearance can be based on a second prediction. The second prediction can be a prediction of a preference of the user for the application, a prediction of an expected value for a developer of the application, a prediction of an expected value for a digital distribution provider, associated with the digital distribution platform, of the application, the like, or any combination thereof.
In an embodiment, a processor of the digital distribution platform can be configured to retrieve, from the second database, a user history with respect to one or more other applications. The digital distribution platform can be configured to determine, from the user history, preferences of the user for one or more other applications. Based on the preferences of the user for the one or more other applications, the digital distribution platform can produce a prediction of the preference of the user for the application.
Additionally or alternatively, the developer and the digital distribution provider can have an agreement in which the digital distribution provider is compensated in response to the user selecting or otherwise activating a graphical control element of an application of the developer. The expected value for the developer can be a product of a value to the developer of an application in having a user select or otherwise activate a graphical control element of the application multiplied by a probability that the user will select or otherwise activate the graphical control element of the application. The user may select or otherwise activate the graphical control element of the application to find out information about the application, to download the application, etc. The value to the developer of the application can be different depending upon the purpose for which the user selects or otherwise activates the graphical control element of the application. The expected value for the digital distribution provider can be a product of a value to the digital distribution provider in having a user select or otherwise activate a particular graphical control element of a particular application multiplied by a probability that the user will select or otherwise activate that graphical control element.
Using the prediction of the preference of the user for the application, the prediction of the expected value for the developer of the application, the prediction of the expected value for the digital distribution provider of the application, or any combination thereof, the digital distribution platform can change the appearance of the user interface to arrange the one or more graphic representations for the one or more applications to have a form that is likely to optimize the expected value to the developer, the expected value to the digital distribution provider, or both.
In the method 300, at an operation 302, the digital distribution platform can automatically receive at least some of the predictions. Such predictions can have been produced external of the digital distribution platform. Additionally or alternatively, at an operation 304, the digital distribution platform can automatically produce at least some of the predictions. In an embodiment, the digital distribution platform can include or can be operatively coupled to a recommendation engine configured to interact with a processor of the digital distribution platform to produce the prediction of the preference of the user for the application, the prediction of the expected value for the developer of the application, the prediction of the expected value for the digital distribution provider of the application, or any combination thereof.
In an embodiment, the information that the application has been updated can be used to produce one or more of the predictions. In an aspect, the digital distribution platform can be configured to receive the information that the application has been updated. For instance, a developer, using an upload platform and via a network, can upload the update to the application to a digital distribution platform. For example, the developer can be the developer 112, the upload platform can be the upload platform 104, the network can be the network 108, and the digital distribution platform can be the digital distribution platform 102 as illustrated in
In an aspect, the information that the application has been updated can include an index of the application. For example, an application that includes digital media content (e.g., a movie, an e-book, etc.) can often include an index of the digital media content. Such an index can identify portions of the digital media content. Additionally or alternatively, the digital distribution platform can produce at least some of the index of the application. For example, a processor of the digital distribution platform can be configured to retrieve, from the first database, a first version of the application and a second version of the application. The processor can be configured to produce an index of the first version of the application and an index of a second version of the application. The processor can be configured to determine that the application has been updated from a comparison of the index of the first version of the application with the index of the second version of the application.
At the operation 306, the digital distribution platform can automatically generate, in response to the first time being later than the third time and in response to the second time being later than the first time, the user interface with the information about the update by changing the arrangement, on the user interface, of the graphical representations for the applications based on the one or more predictions.
At an operation 402, the digital distribution platform can automatically determine that the application had last been executed on the user device at a fourth time. For example, the digital distribution platform can be configured to retrieve, from the user device via a network, information that indicates the last time that the application had been executed on the user device. The fourth time can be earlier than a difference of a predetermined duration of time subtracted from a present time. For example, if the fourth time is May 1, 2015, the predetermined duration of time is three months, and the present time is Sep. 30, 2015, then the application had last been executed on the user device more than three months earlier than the present time. For example, if the application is an electronic game, then it could be the situation that the user is no longer interested in playing this electronic game. However, it could also be the situation that the user is unaware that there has been an update to this electronic game and that if the user was aware of the update, then the user would be inclined to resume playing this electronic game. At an operation 404, the digital distribution platform can automatically generate, in response to the first time being later than the third time, in response to the second time being later than the first time, and in response to the application having last been executed on the user device at the fourth time, the user interface with the information about the update. In this manner, the information about the update can be communicated to the user in response to determining that the application had last been executed on the user device a long time ago. Having such information, the user may decide to download the update.
At an operation 502, the digital distribution platform can automatically determine that the application has been deleted from the user device. For example, the digital distribution platform can be configured to retrieve, from the user device via the network, information that indicates that the application has been deleted from the user device. At an operation 504, the digital distribution platform can automatically generate, in response to the first time being later than the third time, in response to the second time being later than the first time, and in response to the application having been deleted from the user device, the user interface with the information about the update. In this manner, the information about the update can be communicated to the user in response to determining that the application has been deleted from the user device. Having such information, the user may decide to re-download the application with the update.
At an operation 602, the digital distribution platform can receive a search request. The information about the update of the application can be relevant to the search request. For example, the search request can be for a particular application, for a particular classification of applications, for a particular feature in an application, etc. At an operation 604, the digital distribution platform can automatically process the search request. At an operation 606, the digital distribution platform can automatically generate, in response to the first time being later than the third time, in response to the second time being later than the first time, and based on a result of the search request, the user interface with the information about the update. Generation of the user interface can include a change in a position of a graphical representation for the application in an arrangement, on the user interface, of one or more graphical representations for one or more applications.
As described above, the information about the update can be presented as a change in an appearance of the user interface. The appearance of the user interface can be customized for the user account. For example, the appearance of the user interface can include an arrangement of one or more graphical representations such that each graphical representation is associated with a corresponding application. Often, the user interface can include more graphical representations than can ergonomically be displayed on a screen of the user interface initially presented to the user. In such a case, graphical representations that are not displayed on the screen initially presented to the user can be displayed on one or more other screens. Additionally or alternatively, the screen can include a scroll feature so that the user can cause such graphical representations to be displayed on the screen.
For example, in the absence of the search request, the arrangement of the graphical representations can have a first form in which a first set of graphical representations is displayed on the screen initially presented to the user and a second set of graphical representations is not displayed on the screen initially presented to the user. In response to the search request, the arrangement of the graphical representations can have a second form such that graphical representations for applications included in the result of the search request can be included in the first set and displayed on the screen initially presented to the user. Additionally or alternatively, the graphical representations for applications included in the result of the search request can be placed at more prominent positions in the arrangement. Additionally, the change in the appearance of the user interface can include a change in an appearance of a graphical representation for the application (e.g., a change in appearance of an icon for the application, a star placed next to the icon, text placed next to the icon in which the text states “50% New Content!”, “Free currency now included!”, “Check out the free items inside!”, “See the discounts on back to school items!”, etc.) and/or an addition of text that includes at least some of the information about the update (e.g., addition of text in a display window of the user interface in which the text states “Application A now has new content!”). In this manner, the information about the update can be communicated to the user in response to the search request. Having such information, the user may decide to download the application with the update.
In various embodiments, the user interface with the information about the update can be generated using any combination of the operations of the methods 200, 300, 400, 500, and 600.
The communications circuitry 704 can be configured to receive the update of the application. In an embodiment, the system 700 can include a first database 708. The first database 708 can be configured to store the application, information about the application, etc. The first database 708 can be configured to record activities of a developer with respect to the application. Such activities can include, for example, dates and times at which the application is uploaded, dates and times at which updates to the application are uploaded, information about the updates, etc. In an aspect, the processor 702 can be configured to retrieve, from the first database 708, a time at which the system 700 received the update of the application.
The communications circuitry 704 can be configured to receive a signal from a user device. The signal can include a request to receive a transmission of a user interface customized for a user account. The user device and the user account can be associated with a user. The user account can be with a digital distribution provider. The digital distribution provider can be configured to provide, for each user account, a customized user interface. The customized user interface can be configured to present information in a manner preferred by the associated user. For example, the user device can be the user device 106, the user can be the user 114, and the digital distribution provider can be the digital distribution provider 110 as illustrated in
The processor 702 can be configured to determine, in response to receipt of the request to receive the transmission of the user interface customized for the user account, a time at which the application was downloaded to the user device. In an embodiment, the system 700 can include a second database 710. The second database 710 can be configured to store information about a user account provided by the digital distribution provider such as an application marketplace, online store, or other distribution system. The second database 710 can be configured to record activities of the user with respect to the user account. Such activities can include, for example, dates and times at which the user logs into the user account, dates and times at which the user logs out of the user account, identifications of applications downloaded, dates and times at which applications are downloaded, dates and times at which graphical control elements are selected or otherwise activated on a user interface for the user account, etc. In an aspect, the processor 702 can be configured to retrieve, from the second database 710, the time at which the application was downloaded to the user device.
The processor 702 can be configured to generate, in response to the time at which the system received the update being later than the time at which the application was downloaded and in response to the time at which the system received the request being later than the time at which the system received the update, the user interface. The user interface can include the information about the update. For example, if the system 700 received the update of the application on Sep. 15, 2015, and received the request to receive the transmission of the user interface customized for the user account on Sep. 30, 2015, and the processor 702 determined that the application was downloaded to the user device on Jul. 1, 2015, the processor 702 can generate the user interface with the information about the update.
In an implementation, the information about the update can include a description of a change in content of the application included in the update. In an aspect, the change in content can be a new user feature of the application, a new game component in the application, a new promotion available, within the application, to a user, a change determined to be of interest to the user, the like, or any combination thereof. For example, the new user feature can be background information added to a digital media content application, new graphical control elements that allow the user to perform additional operations, new security features, etc. For instance, the new game component can include additional levels, new characters, changed items, etc. For illustration, the new promotion can include coupons, digital currency, virtual currency, award points, etc. For example, the change determined to be of interest to the user can be a particular change made to the application based upon information obtained from a profile of the user.
In an implementation, the information about the update can be presented as a change in an appearance of the user interface. The appearance of the user interface can be customized for the user account. For example, the appearance of the user interface can include an arrangement of one or more graphical representations such that each graphical representation is associated with a corresponding application. In an aspect, the change in the appearance can be a change in an appearance of a graphical representation for the application (e.g., a change in appearance of an icon for the application, a star placed next to the icon, text placed next to the icon in which the text states “50% New Content!”, “Free currency now included!”, “Check out the free items inside!”, “See the discounts on back to school items!”, etc.), an addition of text that includes at least some of the information about the update (e.g., addition of text in a display window of the user interface in which the text states “Application A now has new content!”), a change in a position of the graphical representation for the application in the arrangement (e.g., changing the position of the icon for the application to a more prominent position in the arrangement), the like, or any combination thereof.
In an aspect, an ordering of graphic representations in the arrangement can be based on an expected response of a user associated with the user account to the ordering. In an embodiment, the processor 702 can be configured to retrieve, from the second database 710, a user history with respect to one or more applications. The processor 702 can be configured to retrieve information about how the arrangement of the graphical representations for those one or more application were ordered on the user interface for the user account. Using this information, the processor 702 can be configured to determine if the user is more likely to respond to a graphical representation presented at a center of the user interface and less likely to respond to graphical representations presented progressively further away from the center of the user interface, or if the user is more likely to respond to a graphical representation presented near a top, left corner of the user interface and less likely to respond to graphical representations presented progressively further away from the top, left corner of the user interface, etc.
In an aspect, the change in the appearance can be based on a first prediction. The first prediction can be a prediction of a response of a user associated with the user account to the information about the update. In an embodiment, the processor 702 can be configured to retrieve, from the second database 710, a user history with respect to one or more applications. The processor 702 can be configured to determine, from the user history, activities performed by the user in response to information about one or more previous updates to the one or more applications. The activities performed by the user in response to the information about a previous update can include activities such as selecting or otherwise activating a graphical control element in response to the information about the previous update to find out information about the respective update and/or the corresponding application, to download the respective update and/or the corresponding application, to make a purchase, etc. Based on an analysis of the user history of the activities performed by the user in response to the information about the previous update, the processor 702 can produce the first prediction. Based on the first prediction, the change in the appearance of the user interface can include a change in the information about the update and/or a change in a classification of the user with respect to being targeted to receive the information about the update.
Additionally or alternatively, the change in the appearance can be based on a second prediction. The second prediction can be a prediction of a preference of the user for the application, a prediction of an expected value for a developer of the application, a prediction of an expected value for a digital distribution provider, associated with the digital distribution platform, of the application, the like, or any combination thereof.
In an embodiment, the processor 702 can be configured to retrieve, from the second database 710, a user history with respect to one or more other applications. The processor 702 can be configured to determine, from the user history, preferences of the user for one or more other applications. Based on the preferences of the user for the one or more other applications, the processor 702 can produce a prediction of the preference of the user for the application.
Additionally or alternatively, the developer and the digital distribution provider can have an agreement in which the digital distribution provider is compensated in response to the user selecting or otherwise activating a graphical control element of an application of the developer. The expected value for the developer can be a product of a value to the developer of an application in having a user select or otherwise activate a graphical control element of the application multiplied by a probability that the user will select or otherwise activate the graphical control element of the application. The user may select or otherwise activate the graphical control element of the application to find out information about the application, to download the application, etc. The value to the developer of the application can be different depending upon the purpose for which the user selects or otherwise activates the graphical control element of the application. The expected value for the digital distribution provider can be a product of a value to the digital distribution provider in having a user select or otherwise activate a particular graphical control element of a particular application multiplied by a probability that the user will select or otherwise activate that graphical control element.
Using the prediction of the preference of the user for the application, the prediction of the expected value for the developer of the application, the prediction of the expected value for the digital distribution provider of the application, or any combination thereof, the system 700 can change the appearance of the user interface to arrange the one or more graphic representations for the one or more applications to have a form that is likely to optimize the expected value to the developer, the expected value to the digital distribution provider, or both.
In an embodiment, the system 700, via the communications circuitry 704, can be configured to receive at least some of the predictions. Such predictions can have been produced external of the system 700. Additionally or alternatively, the processor 704 can be configured to produce at least some of the predictions. In an embodiment, the system 700 can include a recommendation engine 712 configured to interact with the processor 702 to produce the prediction of the preference of the user for the application, the prediction of the expected value for the developer of the application, the prediction of the expected value for the digital distribution provider of the application, or any combination thereof.
In an embodiment, the information that the application has been updated can be used to produce one or more of the predictions. In an aspect, the system 700, via the communications circuitry 704, can be configured to receive the information that the application has been updated. For instance, a developer, using an upload platform and via a network, can upload the update to the application to the system 700. For example, the developer can be the developer 112, the upload platform can be the upload platform 104, the network can be the network 108, and the digital distribution platform can be the digital distribution platform 102 as illustrated in
In an aspect, the information that the application has been updated can include an index of the application. For example, an application that includes digital media content (e.g., a movie, an e-book, etc.) can often include an index of the digital media content. Such an index can identify portions of the digital media content. Additionally or alternatively, the system 700 can produce at least some of the index of the application. For example, the processor 702 can be configured to retrieve, from the first database 708, a first version of the application and a second version of the application. The processor 702 can be configured to produce an index of the first version of the application and an index of a second version of the application. The processor 702 can be configured to determine that the application has been updated from a comparison of the index of the first version of the application with the index of the second version of the application.
In an embodiment, the processor 702 can be configured to generate, in response to the time at which the system received the update being later than the time at which the application was downloaded to the user device and in response to the time at which the system received the request being later than the time at which the system received the update, the user interface with the information about the update by changing the arrangement, on the user interface, of the graphical representations for the applications based on the one or more predictions.
In an embodiment, the processor 702 can be configured to determine that the application had last been executed on the user device at a particular time. For example, the processor 702 can be configured to retrieve, from the user device via a network, information that indicates the last time that the application had been executed on the user device. The particular time can be earlier than a difference of a predetermined duration of time subtracted from a present time. For example, if the particular time is May 1, 2015, the predetermined duration of time is three months, and the present time is Sep. 30, 2015, then the application had last been executed on the user device more than three months earlier than the present time. For example, if the application is an electronic game, then it could be the situation that the user is no longer interested in playing this electronic game. However, it could also be the situation that the user is unaware that there has been an update to this electronic game and that if the user was aware of the update, then the user would be inclined to resume playing this electronic game. In this embodiment, the processor 702 can be configured to generate, in response to the time at which the system received the update being later than the time at which the application was downloaded to the user device, in response to the time at which the system received the request being later than the time at which the system received the update, and in response to the application having last been executed on the user device at the particular time, the user interface with the information about the update. In this manner, the information about the update can be communicated to the user in response to determining that the application had last been executed on the user device a long time ago. Having such information, the user may decide to download the update.
In an embodiment, the processor 702 can be configured to determine that the application has been deleted from the user device. For example, the processor 702 can be configured to retrieve, from the user device via the network, information that indicates that the application has been deleted from the user device. In this embodiment, the processor 702 can be configured to generate, in response to the time at which the system received the update being later than the time at which the application was downloaded to the user device, in response to the time at which the system received the request being later than the time at which the system received the update, and in response to the application having been deleted from the user device, the information about the update to the user. Having such information, the user may decide to re-download the application with the update.
In an embodiment, the system 700, via the communications circuitry 704, can be configured to receive a search request. The information about the update of the application can be relevant to the search request. For example, the search request can be for a particular application, for a particular classification of applications, for a particular feature in an application, etc. In this embodiment, the processor 702 can be configured to process the search request and to generate, in response to the time at which the system received the update being later than the time at which the application was downloaded to the user device, in response to the time at which the system received the request being later than the time at which the system received the update, and based on a result of the search request, the user interface with the information about the update. Generation of the user interface can include a change in a position of a graphical representation for the application in an arrangement, on the user interface, of one or more graphical representations for one or more applications.
As described above, the information about the update can be presented as a change in an appearance of the user interface. The appearance of the user interface can be customized for the user account. For example, the appearance of the user interface can include an arrangement of one or more graphical representations such that each graphical representation is associated with a corresponding application. Often, the user interface can include more graphical representations than can ergonomically be displayed on a screen of the user interface initially presented to the user. In such a case, graphical representations that are not displayed on the screen initially presented to the user can be displayed on one or more other screens. Additionally or alternatively, the screen can include a scroll feature so that the user can cause such graphical representations to be displayed on the screen.
For example, in the absence of the search request, the arrangement of the graphical representations can have a first form in which a first set of graphical representations is displayed on the screen initially presented to the user and a second set of graphical representations is not displayed on the screen initially presented to the user. In response to the search request, the arrangement of the graphical representations can have a second form such that graphical representations for applications included in the result of the search request can be included in the first set and displayed on the screen initially presented to the user. Additionally or alternatively, the graphical representations for applications included in the result of the search request can be placed at more prominent positions in the arrangement. Additionally, the change in the appearance of the user interface can include a change in an appearance of a graphical representation for the application (e.g., a change in appearance of an icon for the application, a star placed next to the icon, text placed next to the icon in which the text states “50% New Content!”, “Free currency now included!”, “Check out the free items inside!”, “See the discounts on back to school items!”, etc.) and/or an addition of text that includes at least some of the information about the update (e.g., addition of text in a display window of the user interface in which the text states “Application A now has new content!”). In this manner, the information about the update can be communicated to the user in response to the search request. Having such information, the user may decide to download the application with the update.
In situations in which the systems discussed here collect personal information about users, or may make use of personal information, the users may be provided with an opportunity to control whether programs or features collect user information (e.g., information about a user's social network, social actions or activities, profession, a user's preferences, or a user's current location), or to control whether and/or how to receive content from the content server that may be more relevant to the user. In addition, certain data may be treated in one or more ways before it is stored or used, so that personally identifiable information is removed. For example, a user's identity may be treated so that no personally identifiable information can be determined for the user, or a user's geographic location may be generalized where location information is obtained (such as to a city, ZIP code, or state level), so that a particular location of a user cannot be determined. Thus, the user may have control over how information is collected about the user and used by a system as disclosed herein.
Embodiments of the presently disclosed subject matter may be implemented in and used with a variety of component and network architectures.
The bus 21 can allow data communication between the central processor 24 and one or more memory components, which can include RAM, ROM, and other memory, as previously noted. Typically RAM can be the main memory into which an operating system and application programs are loaded. A ROM or flash memory component can contain, among other code, the basic input-output system (BIOS) which can control basic hardware operation such as the interaction with peripheral components. Applications resident with the computer 20 can generally be stored on and accessed via a computer readable medium, such as a hard disk drive (e.g., fixed storage 23), an optical drive, floppy disk, or other storage medium.
The fixed storage 23 can be integral with the computer 20 or can be separate and accessed through other interfaces. The network interface 29 can provide a direct connection to a remote server via a wired or wireless connection. The network interface 29 can provide such connection using any suitable technique and protocol as is readily understood by one of skill in the art, including digital cellular telephone, WiFi™, Bluetooth®, near-field, and the like. For example, the network interface 29 can allow the computer to communicate with other computers via one or more local, wide-area, or other communication networks, as described in further detail below.
Many other devices or components (not shown) can be connected in a similar manner (e.g., document scanners, digital cameras and so on). Conversely, all of the components illustrated in
More generally, various embodiments of the presently disclosed subject matter can include or be embodied in the form of computer-implemented processes and apparatuses for practicing those processes. Embodiments also can be embodied in the form of a computer program product having computer program code containing instructions embodied in non-transitory and/or tangible media, such as floppy diskettes, CD-ROMs, hard drives, universal serial bus (USB) drives, or any other machine readable storage medium, such that when the computer program code is loaded into and executed by a computer, the computer becomes an apparatus for practicing embodiments of the disclosed subject matter. Embodiments also can be embodied in the form of computer program code, for example, whether stored in a storage medium, loaded into and/or executed by a computer, or transmitted over some transmission medium, such as over electrical wiring or cabling, through fiber optics, or via electromagnetic radiation, such that when the computer program code is loaded into and executed by a computer, the computer becomes an apparatus for practicing embodiments of the disclosed subject matter. When implemented on a general-purpose microprocessor, the computer program code segments configure the microprocessor to create specific logic circuits.
In some configurations, a set of computer-readable instructions stored on a computer-readable storage medium can be implemented by a general-purpose processor, which can transform the general-purpose processor or a device containing the general-purpose processor into a special-purpose device configured to implement or carry out the instructions. Embodiments can be implemented using hardware that can include a processor, such as a general purpose microprocessor and/or an application-specific integrated circuit (ASIC) that embodies all or part of the techniques according to embodiments of the disclosed subject matter in hardware and/or firmware. The processor can be coupled to memory, such as RAM, ROM, flash memory, a hard disk or any other device capable of storing electronic information. The memory can store instructions adapted to be executed by the processor to perform the techniques according to embodiments of the disclosed subject matter.
The foregoing description, for purpose of explanation, has been described with reference to specific embodiments. However, the illustrative discussions above are not intended to be exhaustive or to limit embodiments of the disclosed subject matter to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to explain the principles of embodiments of the disclosed subject matter and their practical applications, to thereby enable others skilled in the art to utilize those embodiments as well as various embodiments with various modifications as may be suited to the particular use contemplated.
Number | Name | Date | Kind |
---|---|---|---|
6763403 | Cheng et al. | Jul 2004 | B2 |
6829475 | Lee | Dec 2004 | B1 |
8914791 | Salzano | Dec 2014 | B1 |
20020069213 | Moslander et al. | Jun 2002 | A1 |
20040098314 | Cool | May 2004 | A1 |
20070233782 | Tali | Oct 2007 | A1 |
20110246904 | Pinto | Oct 2011 | A1 |
20110252114 | Okuyama | Oct 2011 | A1 |
20120303573 | Pan et al. | Nov 2012 | A1 |
20120317154 | Fish | Dec 2012 | A1 |
20130232229 | Firman | Sep 2013 | A1 |
20140195297 | Abuelsaad et al. | Jul 2014 | A1 |
20150081660 | Margulis | Mar 2015 | A1 |
20150143409 | Maughan | May 2015 | A1 |
20150261518 | Viswanathan | Sep 2015 | A1 |
Entry |
---|
“Are You Always Updating Your Apps?”, LockerGnome; Jan. 22, 2013; http://www.lockergnome.com/mobile/2013/01/22/areyoualwaysupdatingyourapps/ as downloaded on Aug. 5, 2015. |
International Search Report and Written Opinion dated Jan. 19, 2017 as received in Application No. PCT/US2016/061112. |