Systems and methods for improving notifications

Systems and methods are provided for generating for output a modified notification. A notification is generated. The notification is received at a notification manager running on a first computing device. The notification is modified at the notification manager, thereby creating a modified notification. The modified notification is generated for display.

BACKGROUND

The present disclosure is directed towards systems and methods for generating notifications for output at a computing device. In particular, systems and methods are provided herein that modify a received notification at a computing device to generate a modified notification and generate the modified notification for output at a computing device.

SUMMARY

Applications running on computing devices, such as smartphones and smart televisions, generate notifications that are displayed on a computing device in order to notify a user about information. These notifications can relate to almost anything, from a notification indicating that a new message has arrived at the computing device, to notification that a computing device is low on battery, to a notification that a sports team has won a game. Typically, users can prevent notifications generated by an application, including only a subset of notifications, from being displayed at the computing device via a selectable setting. However, these settings tend to be coarse settings and do not accommodate all user preferences with respect to how information is displayed in a notification. In addition, there may be limits placed by, for example, an operating system on a payload size associated with a notification. As such, it may be possible to fit only a limited amount of information in the payload. Furthermore, notifications tend to be static once generated. For example, if a notification is generated by a shopping application that indicates that a promotional discount is available, this notification will continue to be displayed to a user until, for example, it is dismissed. If a user selects the notification, for example, a few days after the notification has been generated, the promotion may no longer be available. Even if an additional notification is sent informing the user that the promotion is no longer available, this additional notification may not be displayed to the user (if, for example, the user has many notifications pending on their computing device), or the user may not make a connection between the initial notification informing them of the promotion and the subsequent notification informing them that the promotion has finished.

In view of the foregoing, it would be beneficial to have a system that is capable of modifying notifications that have been generated by applications before they are generated for output at a computing device.

Systems and methods are described herein for generating modified notifications for output. In accordance with a first aspect of the disclosure, a method is provided. The method includes generating a notification and receiving the notification at a notification manager running on a first computing device. The notification is modified at the notification manager, thereby creating a modified notification. The modified notification is generated for output. In an example system, an application running on a smartphone generates a notification for display. This notification is received by a notification manager running on the smartphone. On receiving the notification, the notification manager modifies the notification. For example, if the notification is notifying a user of a score of a game, the notification manager may modify the notification to include a button and/or icon to enable input that causes the computing device to generate an associated portion of the game for display. Such a button and/or icon may comprise the words “Watch Now.” The modified notification is generated for display at the smartphone. In another example system, an application running on a server generates a notification. The notification is received by a notification manager running on the server. On receiving the notification, the notification manager modifies the notification. The modified notification is transmitted via a network, such as the internet, to a tablet device where it is generated for display.

A user preference for displaying a notification comprising a location may be received at the first computing device. Generating the notification may comprise generating a notification comprising a location, and modifying the notification may comprise modifying the notification in accordance with the user preference. In some examples, where the notification manager is running on the same computing device as the computing device on which the notification will be displayed, such as a tablet device, the user preference may be received at a settings section of the tablet device and may be locally accessed by the notification manager. In other examples, where the notification manager is running on, for example, a server, then the user preference may be received at a second computing device, such as a smartphone, and the user preference may be transmitted to the server.

Generating the notification may further comprise generating a notification indicating a change in a score of a game, and modifying the notification may comprise modifying the notification to enable an input to cause a portion of the game associated with the change in score to be generated for display. The notification manager may receive, via a network, subscription data for a service associated with the game, and the notification manager may determine, based on the subscription data, whether a user profile is subscribed to the service. The notification may modify the notification to comprise the portion that enables the input only if it is determined that the user profile is subscribed to the service. In some examples, the portion of the game associated with the change of score may be generated for display at the same computing device as where the input is received, and the notification manager is running. In other examples, the notification manager may be running on a separate computing device to the computing device at which the input is received and the portion of the game is generated for display.

Generating the notification may further comprise generating a notification indicating an action associated with a content item, and the notification manager may receive, via a network, content timing data for the action. Modifying the notification may comprise modifying the notification to enable an input to cause a portion of the content item associated with the action to be generated for display, wherein the portion is based on the received content timing data for the action. In some examples, the portion of the content item associated with the action may be generated for display at the same computing device as where the input is received, and the notification manager is running. In other examples, the notification manager may be running on a separate computing device to the computing device at which the input is received and the portion of the content item is generated for display.

Generating the notification may further comprise generating a notification associated with a portion of a content item, and the notification manager may receive, via a network, a token that enables the portion of the content item to be generated for display. In some examples, the portion of the content item may be generated for display at the same computing device as where the token is received, and the notification manager is running. In other examples, the notification manager may be running on a separate computing device to the computing device at which the portion of the content item is generated for display.

Generating the notification may further comprise generating a notification associated with a category, and the notification manager may identify the category associated with the notification. Modifying the notification may comprise modifying the notification based on the category. In some examples, the category may be promotion, and the notification manager may determine, via a network, a status of the promotion. In response to receiving an input a copy of the promotion identified in the notification may be stored in a memory. In other examples, the category may be news, and the notification manager may determine, via a network, a news source to subscribe to in order to receive updates associated with the notification. Modifying the notification may comprise modifying the notification to enable an input to subscribe to the news source to receive updates associated with the notification. In some examples, the input may be received at the same computing device as where the notification manager is running, and the modified notification is generated for output. In other examples, the notification manager may be running on a separate computing device to the computing device at which the input is received and the modified notification is generated for output.

The notification manager may identify a context of the computing device. The computing device may be the first computing device on which the notification manager runs or may be a second computing device. The notification manager may compare the identified context of the computing device with the modified notification. The notification manager may determine whether to queue the modified notification, based on the identified context, such that the modified notification is generated for display at an appropriate time.

DETAILED DESCRIPTION

Systems and methods are described herein for generating modified notifications for output. Different types of notifications may be modified, types of notification include, for example, notifications related to promotions, news, and/or game scores. A notification manager may be implemented on a computing device and may be in communication with various web services, such that the notification manager can modify a notification to produce a smart notification. The modification of a notification by the notification manager may be based on the type of the notification, the content of the notification, and/or a user profile, including, for example, user subscriptions and/or entitlements to access different content sources.

A notification is typically based on information that is generated by an application running on a computing device. In some examples, a notification may be generated at a first computing device and may be transmitted, via a network, to a second computing device. A notification generated by an application is typically passed to a notification manager of an operating system running on the computing device. The notification manager takes the notification and generates it for display via a user interface (UI) that is controlled by the operating system, rather than the application. As such, notifications displayed on a computing device running the operating system tend to look similar, as they share the UI components. Notifications can be used to display any type of message, including, for example, reminders, communications from other people and/or other information from an application. Typically, an input can be received via a notification, for example, a touch event at a notification and, in response to the input, an application associated with the notification can be accessed and/or an action associated with the notification can be performed. A notification manager comprises any component of an operating system that takes notifications from applications, or other sources, and generates them for display at the computing device on which the operating system is running. In some examples, a notification may be generated for audible output at, for example, a smart speaker. In this example, the notification may not be generated for display and may, for example, comprise only an audible output.

Generating for output includes generating for display, generating for audio output and generating for a combination of display and audio output. Enabling an input includes enabling a touch event to be received via a notification and/or via a portion of a notification, such as by an icon and/or a button. In other examples, an input may be received via an input device, such as a keyboard, mouse, microphone and/or virtual reality glove. Content includes audio, video and/or any other media content. Audio includes audio-only content, such as podcasts, stories and music. Video includes audiovisual content such as movies and/or television programs. An over-the-top content platform may be accessed via a website and/or an app running on a computing device and may receive any type of media content, including live media content and/or on-demand media content.

The disclosed methods and systems may be implemented on one or more computing devices. As referred to herein, the computing device can be any device comprising a processor and memory, for example, a television, a smart television, a set-top box, an integrated receiver decoder (IRD) for handling satellite television, a digital storage device, a digital media receiver (DMR), a digital media adapter (DMA), a streaming media device, a DVD player, a DVD recorder, a connected DVD, a local media server, a BLU-RAY player, a BLU-RAY recorder, a personal computer (PC), a laptop computer, a tablet computer, a WebTV box, a personal computer television (PC/TV), a PC media server, a PC media center, a handheld computer, a stationary telephone, a personal digital assistant (PDA), a mobile telephone, a portable video player, a portable music player, a portable gaming machine, a smartphone, a smartwatch, an augmented reality device, a mixed reality device, a virtual reality device, or any other television equipment, computing equipment, or wireless device, and/or combination of the same.

The figures below describe environments comprising more than one application, and the applications have different locations associated with them. These are for example only, and embodiments comprising a single application, for example, running on a computing device on which the notification manager is running, or on a separate computing device to which the notification manager is running are contemplated as well. Any of the below environments may comprise any number of applications, in different locations or the same location, in communication with the notification manager.

FIG.1shows an example environment in which a notification is modified to generate a modified notification, in accordance with some embodiments of the disclosure. The environment100comprises a computing device102, a first application104, a second application106, a third application108and a fourth application110. The computing device102comprises a notification manager112, a modification module114and a display116. An application104,106,108,110generates a notification. For example, application104may be a news aggregation service and may generate notifications relating to news stories. Application106may be a sports aggregation service and may generate notifications relating to games. Application108may be a fitness application that is in communication with a computing device such as a smart watch and may generate notifications suggesting that a user of the smart watch be more active. Application110may be an email client and may generate notifications when a new email is received. If the application104,106is running on a computing device external to the computing device102, the generated notification is transmitted to the computing device102via a network, such as the internet and/or a home network, where it is received by the notification manager112. The network may comprise wired and/or wireless means for transmitting the notification to the computing device102. The application104,106may be running a computing device such as a smartphone, tablet and/or smart television that is connected to the same home network as the computing device102. In another example, the application104,106may be running on a server remote from the computing device102. The server may be a physical server or may be a virtual machine running on a physical server. Applications108,110run on the computing device102itself. The generated notification is transmitted from the application108,110to the notification manager112. The data and/or trigger for the application108,110to generate a notification may be generated by the application108,110itself. In another example, the application108,110may receive data and/or a trigger via a network, such as the internet and/or a home network, and the application108,110may generate a notification based on the received data and/or trigger.

Once the notification is received at the notification manager112, a modification module114of the notification manager112modifies the notification to create a modified notification. Examples of how notifications may be modified are detailed previously and subsequently. Typical modifications include expanding or contracting information contained in the notification, adding an icon to the notification, adding a data field to the notification and/or enabling additional input to be received via the notification. The notification manager generates the modified notification for output, in this case for display, at a display116of the computing device. In other examples, the modified notification may be generated for audible output in addition to, or alternatively to, displaying the modified notification. In this example, the notification manager112runs on the same computing device102at which the modified notification is generated for display. In similar examples, the notification manager112may run on a computing device remote to the computing device102, and the modified notification may be transmitted to computing device102, where it is generated for display. In some examples, the notification manager112may run on the same computing device as the first and/or second applications104,106. In other examples, the notification manager112may run on an entirely separate computing device and a notification from the first, second, third and/or fourth applications104,106,108,110may be transmitted via a network, such as the internet, to the notification manager112and the modified notification may be transmitted via the network to the computing device102. In all subsequent figures, it is contemplated that the notification manager may run on a computing device separate to the computing device at which the modified notification is displayed, and the modified notification may be transmitted via a network, such as the internet, to the computing device at which the modified notification is displayed.

FIG.2shows another example environment in which a notification is modified to generate a modified notification, in accordance with some embodiments of the disclosure. In a similar manner to the environment depicted inFIG.1, the environment200comprises a first computing device, such as server202, a second computing device, such as computing device204, a first application206running on server202, a second application208in communication with the server202, and a third application210running on computing device204. The server202comprises a notification manager214and a modification module216. The first application206may run on the server202and be in communication with notification manager214. The second application208may be in communication with the notification manager214via a network212, such as the internet. Computing device204comprises a display218, and the third application210may run on the computing device204. The third application210may be in communication with the notification manager214via the network212. Once a notification is received at the notification manager214, a modification module216of the notification manager214modifies the notification to create a modified notification. The modified notification is transmitted via the network212, to the computing device204. The modified notification is generated for display at the computing device204and is displayed on a display218of the computing device204.

FIG.3shows another example environment in which a notification is modified to generate a modified notification, in accordance with some embodiments of the disclosure. In a similar manner to the environments depicted inFIGS.1and2, the environment300comprises a computing device302, a first application304, a second application306, a third application308and a fourth application310. The computing device302comprises a notification manager312, a modification module314and a display318. In addition, the computing device302comprises a user preferences module316. A user may indicate a user preference for how notifications are displayed on computing device302. The user preferences module316is in communication with the modification module314, such that the modification module314modifies the notifications in accordance with the user preference, or preferences. For example, a user preference may be set such that notifications comprising a location always display an address associated with the location. In such an example, when the modification module314receives a notification, the modification module314analyzes the notification to determine whether the notification comprises a location. If the notification comprises a location, but not an address associated with the notification, then the modification module314may modify the notification to include an address associated with the notification. In some examples, the modification module314may communicate, via a network such as the internet, with an address look-up service in order to determine an address for a location. As before, the modified notification is generated for display and is displayed on a display318of the computing device302.

In some examples, a user preference may be determined by analyzing a user's past behaviors with respect to notifications comprising different location representations. For example, it may be determined whether a notification has been clicked and/or read or discarded and/or whether a user has visited a location indicated in a notification. The user preferences may also include an option to enable locations and/or directions to be displayed in a notification with respect to another location, for example, a current location of the computing device and/or a fixed location, such as an identified home address. The location may be determined automatically by analyzing past movement of the computing device. In some examples, where the notification manager312is running on the same computing device as the computing device302on which the notification will be displayed, such as a tablet device, the user preference may be received at a settings section of the tablet device and may be locally accessed by the notification manager312. In other examples, where the notification manager312is running on, for example, a server, then the user preference may be received at a second computing device, such as a smartphone, and the user preference may be transmitted to the server.

FIG.4shows another example environment in which a notification is modified to generate a modified notification, in accordance with some embodiments of the disclosure. In a similar manner to the environments depicted inFIGS.1-3, the environment400comprises a computing device402, a first application404and a second application406. The computing device402comprises a notification manager408, a modification module410and a display420. In addition, the computing device402is in communication, via a network412(such as the internet), with a server414. The server414comprises a database of subscription data416, and the notification manager comprises a subscription module418. On identifying a modification to a notification that may require a user profile associated with the computing device402to be subscribed to a service, the modification module sends a query, via the network412, to server414. The query may comprise, for example, data identifying a user profile and data identifying a relevant service. On receiving the query, the server414queries a subscription database416in order to identify whether the user profile is subscribed to the relevant service. The server414transmits the results of the query back to the computing device402, where they are passed to the subscriber module418. If the user profile is not subscribed to the relevant service, then the notification is modified to include a modification that requires the user profile to be subscribed to the service and, as before, the modified notification is generated for display and is displayed at a display420of the computing device402.

For example, a sports application may generate a notification associated with a change in score of a game, such as an NFL game. In another example, an over-the-top (OTT) provider can provide a service than enables score changes in a game to be received by the notification manager408. On receiving the notification, the modification module410may identify that a portion of content associated with the change in score, e.g., a touchdown being scored, is available to display at the computing device402; however, to display the portion of content, the user must be subscribed to an OTT service. If the user is subscribed to the relevant OTT service, as identified via the server414, then the notification may be modified to include a “Watch touchdown” button and/or icon. In some examples, subscription data is provided via the OTT service. The notification comprising the button and/or icon is generated for display and is displayed at the computing device402. On receiving input, such as a touch event, indicating that the button and/or icon has been selected, the computing device402may open, for example, an application associated with the OTT service and may generate the portion of content for display.

In another example, a notification received at a mobile device in proximity to a smart television can be modified with a “Watch touchdown on smart television” button and/or icon. In another example, a smart television may have a picture in picture (PiP) mode, and a notification received at the smart television may be modified with a “Watch touchdown in PiP” button and/or icon. In some examples, the subscription may be to a channel associated with the game and electronic program guide (EPG) data, which may be utilized to determine which channel the game is being transmitted on.

FIG.5shows another example environment in which a notification is modified to generate a modified notification, in accordance with some embodiments of the disclosure. In a similar manner to the environments depicted inFIGS.1-4, the environment500comprises a computing device502, a first application504and a second application506. The computing device502comprises a notification manager508, a modification module510and a display520. In addition, the computing device502is in communication, via a network512(such as the internet), with a server514. The server514comprises a database of content timing data516, and the notification manager comprises a timing module518. On identifying a modification to a notification that may require further information about content timing, the modification module sends a query, via the network512, to server514. The query may comprise, for example, data identifying a content item and data identifying an event in the content item. On receiving the query, the server514queries a content timing database516in order to identify a time associated with the event in the content item. The server514transmits the results of the query back to the computing device502, where they are passed to the timing module518. The notification is modified to include a modification that requires the timing data associated with a content item and, as before, the modified notification is generated for display and is displayed at a display520of the computing device502.

For example, a news application may generate a notification associated with a breaking news story. On receiving the notification, the modification module510may generate a query, for transmission to the server514, querying a time period associated with the breaking news event on a live news broadcast. The server514may query the content timing database516to identify the time period and may transmit the results of the query to the computing device502. The timing module518may receive the results of the query and they may be used to generate a modified notification. The notification may be modified to include a “Watch breaking news” button and/or icon. The notification comprising the button and/or icon is generated for display and is displayed at the computing device502. On receiving input, such as a touch event, indicating that the button and/or icon has been selected, the computing device502may open, for example, an application associated with the news service and may generate the portion of content for display.

Any button and/or icon that is included in a notification may be deep-linked to appropriate content and/or a segment and/or portion of a content item. For example, many OTT services allow users to control live television (e.g., pause and rewind), and the content may be stored on servers at least for the duration of a live program. The modification module may access the stored content and use the time of a notification to construct and/or to create a deep link. For example, if a notification of a change in score occurred at 30 minutes into a broadcast, then the modification module may create a deep link from minute 28 to the current time. Content that can be deep-linked into, by the modification module, may be analyzed in real time by, for example, an application running on a server remote to the computing device to determine the type of alerts that can be created, for example, using computer vision and machine learning algorithms to determine, for example, that a team scored and/or a player intercepted a pass. Timing associated with such analysis can be used to construct a concise deep link to include only the play related to the notification. Similarly, the modification module can create a deep link based on user, or profile, preferences or predefined rules based on the type of action addressed by the alert. For example, the user might have a preference for two-minute clips of content.

FIG.6shows another example environment in which a notification is modified to generate a modified notification, in accordance with some embodiments of the disclosure. In a similar manner to the environments depicted inFIGS.1-5, the environment600comprises a computing device602, a first application604and a second application606. The computing device602comprises a notification manager608, a modification module610and a display620. In addition, the computing device602is in communication, via a network612(such as the internet), with a server614. The server614comprises a token generation module616, and the notification manager comprises a decryption module618. On identifying a modification to a notification that may require access to a service that requires authentication, the modification module sends a request, via the network612, to server614. The query may comprise, for example, an authentication request for an identified service. On receiving the request, the server614requests a token from a token generation module616in order to receive a token for accessing the identified service. The server614transmits the token to the computing device602, where it is passed to the decryption module618. The notification is modified to include a modification that requires access to an authenticated service; as before, the modified notification is generated for display and is displayed at a display620of the computing device602.

For example, an OTT application may generate a notification associated with a new episode of a series. On receiving the notification, the modification module610may generate a request, for transmission to the server614, requesting a token to access content via the OTT application. The server614may request a token from the token generation module616and may transmit the token to the computing device602. The decryption module618may receive the token and it may be used to generate a modified notification. The notification may be modified to include a “Watch episode” button and/or icon. The notification comprising the button and/or icon is generated for display and is displayed at the computing device602. On receiving input, such as a touch event, indicating that the button and/or icon has been selected, the computing device602may open, for example, an application associated with the news service and may generate the portion of content for display. In other examples, the token may grant temporary access to content and/or a content delivery service to enable a user to watch a content item, or a portion of a content item, associated with a notification.

The modification module can communicate with an authorization and/or digital rights management service associated with the OTT service to authenticate the user and obtain any needed keys that a player running on the computing device needs for decrypting content for playback. Such license/keys can be obtained once the user plays the first clip and used for any notification associated with, for example, a particular game and/or for a particular duration. Additionally, single sign-on (SSO) data (e.g., stored at the user device) can be used by the modification module to authenticate the user.

FIG.7shows another example environment in which a notification is modified to generate a modified notification, in accordance with some embodiments of the disclosure. In a similar manner to the environments depicted inFIGS.1-6, the environment700comprises a computing device702, a first application704and a second application706. The computing device702comprises a notification manager708, a modification module710and a display714. In addition, the computing device702comprises a categorization module712. On receiving a notification at the notification manager708, the notification is analyzed by the categorization module712, which applies a categorization to the notification. For example, the notification could be categorized as “promotion,” “sport,” “news,” and/or “OTT content”. The categorization may be based on metadata associated with the notification, natural language processing and/or based on a category of application that the notification is received from. The modification module710modifies the notification based on the category associated with the notification.

FIG.8shows another example environment in which a notification is modified to generate a modified notification, in accordance with some embodiments of the disclosure. In a similar manner to the environments depicted inFIGS.1-7, the environment800comprises a computing device802, a first application804and a second application806. The computing device802comprises a notification manager808, a modification module810and a display820. In addition, the computing device802is in communication, via a network812(such as the internet), with a server814. The server814comprises a promotion status database816, and the notification manager comprises a categorization module818. In addition, the memory822of the computing device is explicitly shown in this example. In a similar manner to the computing device702shown inFIG.7, the computing device802categorizes a notification received from an application, for example, a shopping application. On categorizing a notification as, for example, “promotion,” the modification module sends a query, via a network812(such as the internet), to determine a status of the promotion. The query may comprise, for example, a request to determine whether the promotion is still valid and how long it is valid for. On receiving the request, the server814requests the data from the promotion status database816. The server814transmits the requested data to the computing device802, where it is passed to the modification module810. The notification is modified to include a selectable icon and/or button that enables the user to save the promotion to the memory822of the computing device. As before, the modified notification is generated for display and is displayed at a display820of the computing device802.

A notification of the type “promotion” may be modified to display a store locator icon whose value is populated when the notification is accessed by the user for the purpose of using it or when the user explicitly queries for it (e.g., by clicking on the icon). The value is then retrieved based on the location of the device (e.g., the nearest store that is associated with the notification). Similarly, a “redeem” icon may only be displayed in response to determining that the user needs to redeem a deal in the notification, for example, when it is determined that the device is at a particular store, such as Walmart. Such determination can be done using any location service running on the computing device, including receiving data via GPS, GLONASS, Galileo, Wi-Fi scanning and/or Bluetooth scanning.

The status of a promotion may be verified at any time (e.g., when the user opens the notification) or whenever the user desires to check the status of any notification received that comprises a promotion. Users may be able to clip any notification that they are interested in for later use, for example, if the notification contains promotional material and the notification is not associated with an application installed on the computing device. This may, for example, enable the creation of a coupon from the notification. This coupon may then be stored on the computing device and/or in a digital wallet for easy access and dynamic verification and/or updates. Additionally, these coupons can be automatically redeemed based on a presence (e.g., at a store) of the computing device and communication with a point-of-sale terminal (e.g., via NFC) to apply the discount.

A notification may comprise, for example, a JSON dictionary and may comprise notification data and a recipient, i.e., a device identifier. The notification manager running on a computing device (e.g., native to operating system) may determine whether a notification is associated with an app that is installed on the device, based on an application identifier. The modification module may determine whether a notification received at the notification manager has fields with updatable and/or dynamic values, or whether the notification should be augmented with additional fields and/or icons. Such fields may be location fields, day and/or time fields, store hours fields and/or discount fields. An example of such a field includes “open for two more hours”. The value of such fields is dynamic in the sense that the store closest to the computing device might be in one zip code if the computing device is located in or near such zip code in the morning, but the closest store might be in a second zip code if the computing device is present in or near such zip code in the afternoon.

Promotional notifications may be identified by the categorization module via different means. For example, the presence of promotional material could be signaled to the device in the JSON data structure (as an attribute). Similarly, if the notification is associated with an application installed on the computing device, then the application type (e.g., if the application is associated with a movie theater or a department store) can be used to determine whether the notification is promotional or not.

FIG.9shows another example environment in which a notification is modified to generate a modified notification, in accordance with some embodiments of the disclosure. In a similar manner to the environments depicted inFIGS.1-8, the environment900comprises a computing device902, a first application904and a second application906. The computing device902comprises a notification manager908, a modification module910and a display920. In addition, the computing device902is in communication, via a network912(such as the internet), with a server914. The server914comprises a news source database916, and the notification manager comprises a categorization module918. In a similar manner to the computing device702shown inFIG.7, the computing device902categorizes a notification received from an application, for example, a news application. On categorizing a notification as, for example, “news,” the modification module sends a query, via a network912(such as the internet), to determine a subscribable news source. The query may comprise a request to enable subscription to a single news source. In other examples, the query may comprise a request to enable subscription to a single story and/or headline. On receiving the request, the server914requests the data from the news source database916. The server914transmits the requested data to the computing device902, where it is passed to the modification module910. The notification is modified to include a selectable icon and/or button that enables the user to subscribe, or follow, a news source, story and/or headline, such that they receive additional notifications related to the news source, story and/or headline. As before, the modified notification is generated for display and is displayed at a display920of the computing device902. Related updates to a news story may be automatically added to a section (e.g., subscribed tab) within an application (e.g., a news app on the computing device902).

FIG.10shows another example environment in which a notification is modified to generate a modified notification, in accordance with some embodiments of the disclosure. A computing device1002may be associated with a context, such as a time of day and/or a location, such as work1000a, home1000band/or a store1000c. In a similar manner to the computing devices depicted inFIGS.1-9, the computing device1002receives a notification from a first application1004external to the computing device1002or a second application1006running on the computing device. The computing device1002comprises a notification manager1008, a modification module1010and a display1022. In addition, the computing device comprises a location module1012, a time and date module1014and a calendar module1016, which are in communication with a context module1018. The context module1018is in communication with a notification queue1020. On receiving a notification from an application at the notification manager1008, the notification is modified by the modification module1010. The modified notification is passed to the context module1018, where a context of the computing device is determined. The context module1018receives location data, time and date data and calendar data from the respective modules1012,1014,1016. The context module determines, based on the determined context, whether to place a notification in a queue1020, or to enable the notification manager1008to generate the notification for display and display the notification at a display1022of the computing device1002. For example, if the modified notification relates to a promotion at a local store, the context module may place the notification in a queue until it determines that a context of the computing device is relevant to the promotion, for example, when a location generated by the location module1012of the computing device corresponds to a location of the store for which the promotion is valid.

In additional examples, a notification about a sale at “Target” might be pointless if presented to a user at work. The context module may determine this based, for example, on the computing device's presence at a particular location five days a week between the hours of nine and five. Such notification might be better suited to be displayed at the computing device when it is determined that the computing device is going to a Target store, or when a computing device is being used to create a shopping list, or in response to determining that the user might be going to Target (e.g., user receives a text message that mentions Target), all of which may be determined via the context module.

FIG.11shows an example modified notification, in accordance with some embodiments of the disclosure. A notification1102generated at a computing device1100may indicate that a movie is now on at a local cinema. In addition, the notification may include a link to directions to the local cinema. The notification1102may be modified to create a modified notification1104, with the link removed and replaced with an address1106for the cinema and/or a map1108indicating a location of the cinema.

FIG.12shows another example modified notification, in accordance with some embodiments of the disclosure. A notification1202generated at a computing device1200may indicate a change in score associated with a game. The notification1202may be modified to create a modified notification1204, with the modified notification1204including a button1206to enable the change in score to be viewed at the computing device1200.

FIG.13shows another example modified notification, in accordance with some embodiments of the disclosure. A notification1302generated at a computing device1300may indicate a promotion associated with a store. The notification1302may be modified to create a modified notification1304, with the modified notification1304including an icon1306, a button1308to locate the nearest store, for example, by passing location data to a mapping application on receipt of input associated with the button. The modified notification1304may also include a button1310to save the promotion to a memory of the computing device1300on receipt of input associated with the button.

FIG.14shows another example modified notification, in accordance with some embodiments of the disclosure. A notification1402generated at a computing device1400may indicate a breaking news story. The notification1402may be modified to create a modified notification1404, with the modified notification1404including a button1406to subscribe to updates to the story on receipt of input associated with the button.

FIG.15shows a block diagram representing components of a computing device and data flow therebetween for modifying a notification to generate a modified notification, in accordance with some embodiments of the disclosure. Computing device1500(e.g., computing device102,202,302,402,502,602,702,802,902,1000,1100,1200,1300,1400) as discussed above comprises input circuitry1504, control circuitry1508and an output module1522. Control circuitry1508may be based on any suitable processing circuitry (not shown) and comprises control circuits and memory circuits, which may be disposed on a single integrated circuit or may be discrete components and processing circuitry. As referred to herein, processing circuitry should be understood to mean circuitry based on one or more microprocessors, microcontrollers, digital signal processors, programmable logic devices, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), etc., and may include a multi-core processor (e.g., dual-core, quad-core, hexa-core, or any suitable number of cores). In some embodiments, processing circuitry may be distributed across multiple separate processors or processing units, for example, multiple of the same type of processing units (e.g., two Intel Core i9 processors) or multiple different processors (e.g., an Intel Core i5 processor and an Intel Core i7 processor) and/or a system on a chip (e.g., a Qualcomm Snapdragon 888). Some control circuits may be implemented in hardware, firmware, or software.

Input is received by the input circuitry1504. The input circuitry is configured to receive any notification as input. For example, this may include an application generating a notification on receiving a message, a smart watch transmitting data to a fitness application running on computing device1500, that causes the fitness application to generate a notification and/or a notification received via a network, such as the internet.

The control circuitry1508comprises a notification manager module1510, a notification modification module1514and a modified notification generation module1518. The notification is received1502at the input circuitry1504, where it is transmitted1506from the input circuitry1504to the notification manager module1510. The notification manager module1510transmits1512the notification to the notification modification module1514, where the notification is modified, thereby creating a modified notification. The modified notification is transmitted1516to the modified notification generation module1518, where the modified notification is generated for display. The generated for display modified notification is transmitted1520to the output circuitry1522where it is displayed at the computing device via the display module1524.

FIG.16shows a flowchart of illustrative steps involved in modifying a notification to generate a modified notification, in accordance with some embodiments of the disclosure. Process1600may be implemented on any of the aforementioned computing devices (e.g., computing device102,202,302,402,502,602,702,802,902,1000,1100,1200,1300,1400). In addition, one or more actions of the process1600may be incorporated into or combined with one or more actions of any other process or embodiments described herein.

At1602, a notification is generated by an application running on a computing device. At1604, the notification is received at a notification manager. At1606, it is determined whether data is required from an external service to modify the notification. If data is required from an external service, at1608, the computing device communicates, via a network such as the internet, with the external service to obtain the data. At1610, it is determined whether a context of the computing device is required. If it is required, the context of the computing device is identified at1612. At1614, it is determined whether there are user preferences relevant to modifying the notification. If there are no relevant user preferences, then notification is modified at1616to include the data from the external service, if obtained, and based on the context of the computing device, if required. If there are relevant user preferences, then notification is modified at1618in accordance with the user preferences and to include the data from the external service, if obtained, and based on the context of the computing device, if required. At1620, the modified notification is generated for display.