Context-based notifications on the user display
The computer system addresses the issue of disruptive notification presentation in GUIs by contextually integrating notifications within applications, ensuring seamless content continuity and efficient resource use.
Patent Information
- Application Number
- JP2022513463
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-08-30
- Filing Date
- 2020-08-19
- Publication Date
- 2025-07-03
- Estimated Expiration
- 2040-08-19
AI Technical Summary
Existing graphical user interfaces (GUIs) often require user input to switch between applications for presenting notifications, disrupting ongoing content and limiting seamless information presentation.
A computer system that determines context matching between notification data and application execution to present notifications within the application window while ongoing content continues, using various notification styles such as inline, in-application, and inflow notifications, and manages notification summaries and lists based on context and rules.
Enhances user experience by timely and relevant notification presentation without interrupting ongoing content, reducing processing and memory usage by managing notifications efficiently.
Smart Images

Figure 0007702087000001 
Figure 0007702087000002 
Figure 0007702087000003
Abstract
Description
Background Art
[0001] A graphical user interface (GUI) is a major type of interface that a user can use to interact with a computer system. The GUI is operable to present notifications to the user. For example, when receiving message data, a message application presents a text message on the GUI. Similarly, when receiving a news alert, a news application presents a news notification on the GUI.
[0002] Normally, when a first application is presenting content on the GUI (e.g., a video game application is presenting video game content) and notification data is addressed to a second application (e.g., a message application), the presentation of the content is paused and the entire notification data (e.g., the entire text message) may not be presented on the GUI unless a switch from the first application to the second application is executed. Thus, user input may be required to switch to the second application before the notification data is presented. Additional user input may also be required to close the notification data and return to the presentation of the content.
[0003] Therefore, although the GUI can be an effective user interface, the switching between applications may not be seamless and the presentation of information may be limited. There is a need for an improved GUI that enables better presentation of notifications.
Summary of the Invention
[0004] Techniques for presenting notifications are described. In one example, a computer system presents content within an application window on a display based on the execution of an application. The computer system also receives notification data and determines a matching between a first context associated with the notification data and a second context associated with the application. Based on this matching, the computer system presents a notification within the application window. This notification corresponds to the notification data and is presented while the presentation of the content is ongoing.
Brief Description of the Drawings
[0005]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Figure 12
Figure 13
Figure 14
Figure 15
Figure 16
Figure 17
Figure 18
Figure 19
Figure 20
Figure 21
Figure 22
DETAILED DESCRIPTION OF THE INVENTION
[0006] Generally, systems and methods for better management of notifications are described. In one example, a computer system presents a GUI on a display. When an application is run, the content of the application is presented within the GUI. Also, the computer system determines one or both of a context related to a user of the application and a context related to the execution of one or more applications. This context indicates user interaction with the application(s) and interest in the application(s). Further, the computer system stores notification rules that specify when, how, where, and / or which notifications need to be presented based on the context. When the computer system receives notification data, it manages the presentation of the corresponding notifications based on the context and the notification rules. The management of notifications includes multiple aspects. In a first aspect, the computer system determines whether a notification should be presented in the GUI and presentation type (e.g., within context or as a popup), or whether such presentation should be restricted. In a second aspect, when a determination of restriction is made, the computer system can add the notification to a notification summary and update the notification summary over time based on the priority of the notification. When the context changes, the notification summary is presented on the display. In a third aspect, notifications that are not presented to the user can be added to a notification list. The notification list is updated over time such that some or all of the notifications are replaced, changed, and / or grouped. Further, when a notification is presented, the presentation of the basic content can continue without the need for user input to switch back and resume the presentation of this content. Also, the presented notification can be updated so that any information and / or selectable actions presented in the notification continue to be relevant to the latest context if there is a change in the context.
[0007] For illustration purposes, an example of a video game system that hosts a video game application, a chat application, a video streaming application, a social media application, and a plurality of other applications will be discussed. When a video game player logs in, the video game system presents a home user interface on the display. From this interface, the video game player can launch the video game application, and the video game content can be presented within the application window that is in the foreground on the display. When the video game system receives notification data from a second user's device, it determines that the notification data is associated with the chat application. If the application window in the foreground corresponds to the video game application rather than the chat application, the video game system presents a corresponding notification within a pop-up window on the application window. This notification is presented in a collapsed state indicating that a message has been sent by the second user, but the presentation of the video game content continues and the application window remains in the foreground. Upon user interaction with this notification, the video game system presents the notification in an expanded state, presenting the actual content of the notification and options that can be selected to respond. In this state, the presentation of the video game content also continues and the application window remains in the foreground.
[0008] Next, the video game player completes a certain level of the video game, and the video game system receives user input to start a flow for downloading and launching the next level. A new application window is presented on the display. In one example, an application different from a video game application such as a menu application can be executed to present a new application window. The new application window presents confirmation of user input (e.g., while downloading the next level). While tasks within the flow are being executed, the video game system receives system notifications regarding these tasks and presents in-flow notifications within the new application window. The in-flow notifications provide updates regarding the tasks.
[0009] Thereafter, the video game player launches a chat application. The chat with other users is presented within the application window of the chat application in the foreground. During an active chat with a second user, the video game system receives second notification data from a second device and presents the corresponding text within the application window. If the text is available within the display area of the application window, the video game system can alert the video game player about the text by presenting a visual indicator (e.g., a blue rectangle, a blinking rectangle, or any other visual alert) around the text. This visual indicator corresponds to an in-line notification indicating that new notification data is available within the displayable area.
[0010] After scrolling up to display the previous text, the video game system receives third notification data from the second device. Here, the corresponding text needs to be presented, but the presentation is not in the current display area. Therefore, the video game system presents an in-application notification within the display area indicating that new text is available and will be presented when scrolled down.
[0011] The video game player switches from a chat application to a video streaming application. The video game system runs a video game application and presents an application window for this application within the foreground. The application window presents video content streamed from a network source. The video operation mode indicates that social media notifications need to be restricted while the video is being streamed. Thus, during streaming, the video game system receives first notification data corresponding to an invitation from a second user to a first social media event starting in 5 minutes. The corresponding first social media notification is suppressed and sent to the notification list instead of being presented while the video stream is occurring. After 10 minutes, while the video stream is continuing, the video game system receives second notification data corresponding to an invitation from a second user to a second social media event starting in 1 hour. Since the first event has expired and the two social media notifications are from the same second user, the video game system replaces the first social media notification in the notification list with the second social media notification. When the video stream ends, since the notification list can be presented on the display, the second social media notification can be displayed and the invitation to the second media event can be accepted.
[0012] In another example, while a video game player is playing a video game and video game content is presented within the foreground, the video game system receives social media notification data. When given a game title related to the video game and user interaction with the video game, the video game system determines that, if the context indicates an immersive game session, instead of presenting the corresponding social media notification, it should be queued or put in a waiting line. Thus, the video game system adds the social media notification to the queue and optionally sends the social media notification to a mobile device associated with the video game player. The notifications in the queue are sorted according to priority, and each priority can be updated based on the relevance of the corresponding notification to the current context and the recency of the notification. When the context changes, such as at the end of a video game level, the video game system can present a notification summary that identifies the total number of notifications queued. Upon user interaction with the notification summary, the video game system presents the notification summary in an expanded state. In the expanded state, the video game system presents the top three (or other number) most prioritized notifications and provides an option to view the remaining notifications. Each of these three notifications is presented in a collapsed state and can be further selected to be presented in an expanded state. The content (such as information and selectable action(s)) in each summarized notification is updated based on the current context.
[0013] Embodiments of the present disclosure provide several advantages over existing computer systems and their underlying GUIs. For example, the effectiveness of the GUI and the efficiency of the underlying processing and memory are improved. In particular, the GUI can provide an enhanced user experience, where timely and relevant notifications are presented to the user on the GUI while the presentation of ongoing content continues, while other notifications are either summarized, added to a notification list for later presentation, or both. In this way, the user can view relevant notifications in a timely manner without interrupting the presentation of ongoing content and can expand any of such notifications as needed. Since relevant notifications are presented, the usage of processing and memory can be reduced compared to existing systems that require presenting all notifications and switching back and forth between foreground and background applications.
[0014] For clarity of explanation, the embodiments are described in relation to a video game system, but the embodiments are not limited thereto and are equally applicable to any other type of computer system. Generally, a computer system can include one or more user devices, each of which is communicatively coupled to one or more displays. Also, the computer system can include a backend system, such as a server, for among other functions, tracking context between one or more devices and receiving, adding to a queue, prioritizing, and / or interacting with notifications.
[0015] FIG. 1 shows an example of a computing environment for presenting notifications according to an embodiment of the present disclosure. As shown, the computing environment includes a video game system 110 communicatively coupled to a display 120, a mobile device 130 that integrates the display, a backend server 150, and a user device 140. The video game system 110 and the mobile device 130 are available to a video game player 112 (e.g., operated by the video game player 112 or associated with the video game player 112 under a user account). In comparison, the user device 140 is available to a user 142 (e.g., another video game player). The backend server 150 provides a management function for controlling when, how, where, and / or which notifications should be presented.
[0016] In one example, the user 142 operates the user device 140 to send notification data 144 targeted at the video game player 112. The backend server 150 receives the notification data 144 and determines that the video game player 112 is associated with the video game console 110 and the mobile device 130. The backend server 150 also determines the context associated with the video game player 112 and / or the video game console 110. Based on the context, the backend server 150 determines whether corresponding notification data 152 should be sent to the video game console 110 for presentation as a notification 114 on the display 120, or whether such presentation should be restricted. When notification 114 is presented, backend server 150 determines the type of notification 114, e.g., whether it is a context-in notification, a popup notification, etc. Video game player 112 can interact with video game system 110 by operating a user input device such as a video game controller. The user input device may include buttons operable to interact with notification 114. Interacting with notification 114 may include viewing the notification in one or more states, closing notification 114, requesting a notification summary including notification 114, requesting a notification list including notification 114, or any other type of interaction.
[0017] Furthermore, backend server 150 determines whether the corresponding notification data 154 should be sent to mobile device 130 for presentation as notification 132 on the display of mobile device 130. In the example, if notification 114 does not need to be presented by video game console 110, backend server 150 sends notification data 154 to mobile device 130. In this example, notification data 152 can be sent to a queue for a notification summary, and its priority within the queue can be updated based on whether a user interaction with notification 132 presented by the mobile device has occurred.
[0018] In one example, a notification represents an output that can be presented on a user interface such as a GUI and notifies the user by including presentable information and / or selectable actions. Text messages, social media posts and / or the like, download status of multimedia (such as audio, video, video game content, etc.), purchase of multimedia are examples of notifications. Notification data represents data that can be used to render a notification at presentation time and metadata that defines presentation parameters of the notification. In existing systems, typically, notifications are presented in a dedicated notification area such as the lower right corner of the display or the upper bar of the GUI. This is notification data. In comparison, embodiments of the present disclosure enable the presentation of notifications in other areas of the GUI. In particular, the notification can be a pop-up notification, and this pop-up notification can be presented within a pop-up window on the application window in the foreground. The notification can be a context-in notification, and this context-in notification can be presented within the application window. Various types of context-in notifications are possible, such as inline notifications, in-application notifications, and inflow notifications. Each type corresponds to a presentation style. An inline notification corresponds to the style of inline presentation and represents a notification that includes presentable information located in the user display area within the application window. An in-application notification corresponds to the style of in-application presentation and represents a notification that includes presentable information located outside the user display area but within the application window. An inflow notification corresponds to the style of inflow presentation and represents a notification that includes presentable information regarding the tasks of the running flow.
[0019] Pop-up notifications, inline notifications, in-application notifications, and inflow notifications can be dynamically updated based on the latest context. Further, each of the pop-up notification, inline notification, in-application notification, and inflow notification can be associated with a plurality of attributes including a source application (such as the application that generated the notification), a destination application (such as the application that needs to present the notification), the type of the notification (such as a message), the subject of the notification (such as a message thread), an accumulation parameter (such as a counter like the number of messages), a time constraint (such as it needs to be presented immediately, otherwise the notification will expire), a priority, a timestamp (the time when the notification was received), and / or an expiration date (such as the notification becomes irrelevant after the expiration date). Such attributes can be used to manage the presentation of the notification.
[0020] Generally, the backend server 150 can also determine the current context. Further, the backend server 150 stores rules that specify when, how, where, and / or which notifications should be presented based on the context. These rules can be defined according to notification settings that have default values and can be configured via user input of the video game player 112 on the video game console 110. Some or all of the notification settings can be dynamically configured and updated based on an artificial intelligence model, such as a model using a machine learning algorithm trained based on historical data of multiple video game players.
[0021] Although the backend server 150 is shown as a separate computer system from the video game console 110, some or all of the functions of the backend server 150 can be implemented by the video game system 110 (for example, the video game system 110 can include a video game console specific to the video game player 112 and a cloud server available to multiple players). For example, these rules can be stored locally in the video game system 110, but the notification settings can be stored locally with the user profile or remotely on the backend server 150 with the user profile. Context determination can be executed locally on the video game console 110. Further, the video game player 112 can be associated with different numbers and other types of devices. For example, in addition to or instead of being associated with the mobile device 130, the video game player 112 can be associated with a tablet, a desktop computer, or any other user device.
[0022] Figure 2 shows a computer system for presenting notifications according to an embodiment of the present disclosure. As shown in the figure, the computer system includes a video game console 210 and a display 220. Although not shown, the computer system may include a backend system such as a cloud server set communicatively coupled to the video game console 210. The video game console 210 is communicatively coupled (e.g., via a communication bus) to a video game controller (not shown) and the display 220. A video game player operates the video game controller to interact with the video game console 210. These interactions may include playing a video game presented on the display 220 and interacting with other applications of the video game console 210.
[0023] The video game console 210 includes a processor and a memory (such as a non-transitory computer-readable storage medium) storing computer-readable instructions (instructions), which can be executed by the processor and, when executed by the processor, cause the video game console 210 to perform operations related to various applications. In particular, the computer-readable instructions can correspond to various applications of the video game console 210, including a video game application 240, a music application 242, a video application 244, a social media application 246, a chat application 248, and a notification application 250, among other applications of the video game console 210 (e.g., a home user interface (UI) application facilitating a home page on the display 220).
[0024] The video game controller is an example of an input device. Other types of input devices are possible, including a keyboard, a touch screen, a touch pad, a mouse, an optical system, or other user devices suitable for receiving user input.
[0025] In one example, when the video game application 240 is executed, the rendering process of the video game console 210 presents video game content (e.g., shown as car racing video game content) within an application window on the GUI of the display 220. The application window is presented within the foreground of the GUI, indicating that the video game application is active and that user input on the video game controller can be used to interact with the video game application. In comparison, other applications can also be executed in the background, or their application windows can be presented within the background of the GUI, indicating that user input cannot be used to interact with such applications.
[0026] When receiving notification data from another device, the notification application 250 determines attributes for the corresponding notification 212, including, for example, whether the notification data is targeted at the video game application 240, the music application 242, the video application 244, the social media application 246, or the chat application 246. Also, the notification application 250 can determine a context such as the level of user interaction and the active application (e.g., the video game application 240 having a foreground application window), and apply rules to determine whether the corresponding notification 212 needs to be presented within a pop-up window on the foreground application window or as a context-aware notification within the foreground application window, or whether the corresponding notification 212 needs to be restricted (e.g., placed in a notification summary queue or added to a notification list). When the notification 212 needs to be presented, the notification application 250 passes the notification data and instructions (instructions) for presenting the notification 212 (e.g., as a pop-up or in-context notification) to an active application (such as the video game application 240) via, for example, an application programming interface (API). Next, the active application presents the notification 212 as a pop-up notification on the foreground application window or as an in-context notification within the foreground application window.
[0027] FIG. 2 shows various applications being executed on the video game console 210, but embodiments of the present disclosure are not so limited. Instead, the applications may be executed on a backend system (such as a cloud server), and / or their execution may be distributed between the video game console 210 and the backend system.
[0028] FIG. 3 shows an example of a module for presenting a notification according to an embodiment of the present disclosure. As shown, upon receiving the notification data 302, the module is used to determine whether an in-context notification 312 with an in-context presentation style (e.g., any style of inline presentation, in-application presentation, or in-flow presentation), a notification summary 322, or a pop-up notification 324 needs to be used. In particular, the first module implements in-context logic 310 to determine whether an in-context notification 312 needs to be presented. If not, the second module implements action mode logic 320 to determine whether a notification summary 322 needs to be presented. If not, it is determined to present the pop-up notification 324.
[0029] In one example, each of the in-context logic 310 and the operation mode logic 320 is implemented as computer-readable instructions, such as software code, that can be executed by a processor. Such instructions can be stored in a non-transitory computer-readable medium, such as a computer memory, and can be part of a notification application, such as the notification application 250 of FIG. 2. The computer-readable instructions stored in the non-transitory computer-readable medium, and the processor, represent a module. The module can be a computing component of a video game system, such as the video game system 110 of FIG. 1, a backend server, such as the backend server 150 of FIG. 1, or can be distributed between the video game system and the backend server.
[0030] In one example, the in-context logic 310 includes, or has access to, a rule set that specifies whether an in-context notification 312 needs to be presented based on context related to notification data 302, one or more users, and / or one or more applications. The rule set can be predefined as conditional statements and can be customized based on user preferences. User preferences can be indicated in user settings, and / or the customization can be performed based on machine learning algorithms.
[0031] Similarly, the operation mode logic 320 includes, or has access to, a rule set that specifies whether a notification summary 322 needs to be presented based on the operation mode of the device. The rule set can be predefined as conditional statements and can be customized based on user preferences. User preferences can be indicated in user settings, and / or the customization can be performed based on machine learning algorithms.
[0032] FIG. 3 shows two modules, but modules with different numbers and / or different arrangements are possible. For example, a third module can be implemented to determine whether a notification needs to be added to the notification list. The operation of these modules will be further described in relation to the next figure.
[0033] Referring to FIGS. 4 - 7, these drawings illustrate examples of inline notifications, in-application notifications, inflow notifications, and popup notifications. The type of notification presented depends on the context related to the notification data, the user, and / or the applications available to the user. Understanding where the user is distracted, or where the user's attention is, and what the impact is if the user misses a notification are factors to be considered. If the user is not distracted and / or the notification is relevant to the current context, it is a context - in notification (inline, in - application, or inflow notification). If the notification causes the user's frustration, confusion, or negative aspects and / or is of low relevance, a popup notification is possible. A set of rules for implementing this approach can be defined.
[0034] In one example, a notification is generally related to an activity, an update, an event, or feedback regarding a task from the flow being executed. If the activity, update, or event occurs within the display area of the application window in the foreground, an inline notification can be used. If the activity, update, or event occurs outside the display area but within the application window, an in - application notification can be used. If the application window presents information regarding the flow, an inflow notification providing feedback can be presented. Pop-up notifications are available when an activity, update, or event occurs within the background or within an application window presented during the background. Similarly, pop-up notifications are available when feedback is related to the completion of a sensitive task, the failure of a task, or a task that was remotely initiated and is still in progress when the user logs in to the device.
[0035] FIG. 4 shows an example of an inline notification according to an embodiment of the present disclosure. Generally, an inline notification is used when there is a position of information that can be notified (such as notified content) within the area currently being viewed by the user (such as the user display area). The information that can be presented within the user's view is updated and / or animated.
[0036] As shown in the figure, the GUI 410 is presented on the display. An application (such as a chat application) is executed, and content (such as chat content) is presented within the application window 420 on the GUI 410. The presented content relates to a subject 422 (such as a chat thread). Further, a second window 430 is presented on the GUI 410 and provides information about another application (such as a recently executed video game).
[0037] Notification data (such as text for a chat from Friend A) is received. It is determined that the notification data is associated with the application (such as when the chat application is the destination of the chat) and the subject 422 (such as when the text belongs to the chat thread), rather than the second window 430. Therefore, it is determined to present a notification within the context.
[0038] Next, it is determined that the notification data (such as text from Friend A) can be presented at a position within the user display area of the application window 420 (when the notification data is presented, it is within the user view). Since this position is within the display area, an inline notification 450 is possible. The inline notification 450 provides a visual indicator of the notification data, such as an indicator that updates and / or animates the notification data (e.g., a blue rectangle around the chat text, or any other type of visual indicator).
[0039] An example of an in-application notification according to an embodiment of the present disclosure is shown. Generally, an in-application notification is used when the position of the information that can be presented for the notification (such as the notified content) is within the application window in the foreground (such as the focus area), but outside the display area. The in-application notification can present an alert to the user that the information that can be presented is outside the display area within the display area. The in-application notification may be interactive such that the display area is changed to show the position of the information that can be presented when interacting with the in-application notification.
[0040] As shown in the figure, the GUI 510 is presented on the display. An application (such as a chat application) is running and presents content (such as chat content) within the application window 520 on the GUI 510. The presented content relates to a subject 522 (such as a chat thread). Further, a second window 530 is presented on the GUI 510 and provides information regarding another application (such as a recently executed video game).
[0041] Receive notification data (such as text for a chat from Friend A). It is determined that the notification data is associated with the application (e.g., the chat application is the destination of the chat) and the subject 522 (e.g., the text belongs to the chat thread), rather than the second window 530. Therefore, it is determined to present an in-context notification.
[0042] Next, it is determined that the notification data (such as text from Friend A) can be presented at a position outside the user display area of the application window 520 (e.g., the notification data is shown at the end of the chat thread, but the user scrolls up and the current display area does not include the end of this chat thread). Since this position is outside the display area, an in-application notification 550 is possible. The in-application notification 550 provides a visual indicator (e.g., when new text is received and the user scrolls down to the end of the chat thread, the notification includes a description that it is available) of information that can be presented at a position within the application window 520 but outside the display area and is available to the user.
[0043] FIG. 6 shows an example of an in-flow notification according to an embodiment of the present disclosure. Generally, in-flow notifications are used when the flow of activities in the foreground communicates and provides feedback to the user about one or more tasks of the flow being executed.
[0044] As shown in the figure, the GUI 610 is presented on the display. An application is running (such as a video game application), and content related to the flow (downloading, installing, or purchasing of a video game application, video game level, another application, or any other content) is presented within the application window 620 on the GUI 610.
[0045] Receive notification data (e.g., receive the progress of a download from a network source). It is determined that the notification data is associated with an application (such as a video game application) and a flow (such as a download). Accordingly, it is determined to present an in-flow notification 650. The in-flow notification 650 provides a visual indicator regarding the progress of the running flow and / or task. The in-flow notification 650 is presented within the application window 620 and is updated to reflect the progress. When the flow is completed (e.g., when the download is completed), the in-flow notification 650 is updated to present selectable actions related to the flow (e.g., a launch button to launch the downloaded application).
[0046] FIG. 7 shows an example of a pop-up notification according to an embodiment of the present disclosure. Generally, when the notification data is not associated with an application (such as an active application) that presents content in an application window within the foreground, and the notification data is time-constrained and / or related to the context of the user and / or the application, a pop-up notification is used. The pop-up notification is presented within a pop-up window on top of the application window. The presentation of the content continues within the application window, and the user focus remains on the application (e.g., user input on a controller is used to interact with the presented content).
[0047] As shown in the figure, a GUI 710 is presented on a display. An application (such as a chat application) is running and presents content (such as chat content) within an application window 720 on the GUI 710. The presented content is related to a subject 722 (such as a chat thread). Further, a second window 730 is presented on the GUI 410 and provides information regarding another application (such as a recently executed video game).
[0048] In one example, notification data (e.g., system notifications, data related to recently executed video game applications, etc.) is received. It is determined that the notification data is not associated with an application (e.g., the chat application is not the destination of the notification data). Therefore, it is determined not to present an in-context notification. In another example, the notification data is associated with an application. However, in this example, it is determined that the notification data is not associated with the subject 722 (e.g., the notification data relates to another chat thread). Therefore, in this example, it is also determined not to present an in-context notification.
[0049] Next, it is determined whether a pop-up notification 750 needs to be presented. If the notification data is associated with another thread or the secondary window 730, is a system notification, or is feedback regarding the completion of a sensitive task, the failure of a task, or a task that was remotely initiated and is still in progress when the user logs in to the device presenting the GUI 710, the determination may be to present the pop-up notification 750. The pop-up notification 750 may be on the application window 720 or located in any other area of the GUI 720. For example, the notification 750 can slide from right to left on the upper side of the GUI 720 or slide from top to bottom on the upper side of the GUI 720. If another pop-up notification is already presented on the GUI 720, the new pop-up notification 750 may be shown below the existing pop-up notification or the existing pop-up notification may be slid and pushed down.
[0050] Generally, when a context or a pop-up notification is presented, the execution of the active application continues, and the presentation of content by the active application within the application window in the foreground also continues. Depending on the type of this notification, various types of information are available for the notification. For example, an inline notification can visually indicate that the notification data is available at a position within the user display area. An in-application notification can visually indicate that the notification data is available at a position outside the user display area and may not include the notification data. In contrast, an inflow notification or a pop-up notification can include some or all of the notification data. Further, depending on the type of the notification, notifications in various states are available. For example, an inline notification can be presented according to one state, while other types of notifications can be presented according to one of a plurality of possible states. When multiple states are used, the type and / or amount of information that can be presented vary between these states.
[0051] FIG. 8 shows an example of the state of a notification according to an embodiment of the present disclosure. The first state corresponds to a folded state, and in this state, a minimum amount of information is presented to alert the user about the reception of notification data. The second state corresponds to an expanded state, and in this state, some or all of the notification data can be presented.
[0052] In one example, the notification is presented in a folded state 810. In this state 810, the notification includes a header 812 that generally identifies the type and / or title of the notification (e.g., "Text message from friend" for a chat notification).
[0053] In the expanded state 850, the size of the notification increases and its content is updated to provide supplementary information. For example, the notification includes a header 852 (which can be the same as header 812, in other words, the size and presentable information within the header do not change between those states). Also, the notification includes a body 854 and an action 856. The body 854 provides supplementary information derived from the notification data (e.g., the actual text from a text message). The action 856 represents selectable icons that can trigger a related application to perform a task or trigger a flow (e.g., a response icon to respond to a text message). When the action 856 is selected, the application window of the related application is presented as available, or the notification can be shown in a third state that provides the functionality of such an application window.
[0054] When the notification is presented, regardless of whether it is in the collapsed state 810 or the expanded state 850, its content (e.g., the information within the header, body, and / or action) can be updated over time. For example, when an in-flow notification is presented, the body of such a notification can indicate the progress of the flow and is updated according to the status of this progress.
[0055] FIG. 9 shows an example of a flow for presenting context-aware notifications according to an embodiment of the present disclosure. The operations of the flow may be implemented as hardware circuitry and / or stored as computer-readable instructions in a non-transitory computer-readable medium of a computer system such as a video game system or a back-end server. When implemented, the instructions represent modules that include circuitry or code executable by a processor(s) of the computer system. By executing such instructions, the computer system is configured to perform the specific operations described herein. Each circuitry or code in combination with the processor represents means for performing respective operations(s). It should be understood that the operations are shown in a particular order but no particular order is required.
[0056] As shown in the illustration, the flow begins with operation 902 where the computer system presents content within an application window. For example, an application is running and presenting content within an application window on the GUI of the display.
[0057] In one example, in operation 904, the computer system receives notification data. The notification data is received from another device and is associated with a context. The context indicates, among other attributes, a source application, a destination application, a notification type, and / or a notification subject. Other information may also be indicated by the context.
[0058] In one example, in operation 906, the computer system determines whether the notification data is associated with an application. Specifically, if the application and the destination application of the notification data are the same, it is determined that the notification data is associated with that application. In this case, operation 908 follows operation 906. Otherwise, operation 912 follows operation 906.
[0059] In one example, in operation 908, the computer system determines whether the application window is in the foreground. If so, it is determined to present an in-context notification in response to the notification data being associated with the active application. In this case, operation 910 follows operation 908. Otherwise, operation 912 follows operation 908.
[0060] In one example, in operation 910, the computer system presents an in-context notification within an application window. Various types of in-context notifications are possible. By way of illustration, an inline notification is used when notification data can be presented at a location within the user display area of the application window. An in-application notification is used when notification data can be presented at a location outside of the user display area. An in-flow notification is used when the triggered flow is related to the notification data and the application window presents information about that flow.
[0061] In one example, in operation 912, the computer system determines that the notification data is not associated with the active application and / or the application window is not in the foreground. Accordingly, the computer system determines that the presentation of in-context notifications needs to be restricted. Instead, the computer system can determine whether a pop-up notification needs to be presented, whether the notification data needs to be sent to a queue and added to a notification summary, and / or whether the notification needs to be sent to a notification list. Various techniques are possible to make this determination. In one example technique, a ruleset is used to determine whether a pop-up notification needs to be used. Otherwise, the notification data can be added to the notification summary and / or the notification list. The ruleset typically specifies that a pop-up notification needs to be used when there are time constraints for the notification and / or the notification has a certain level of relevance to the user. For example, a pop-up notification can be used when an activity, update, or event related to the notification data occurs in the background or within an application window presented in the background. Similarly, a pop-up notification can be used if the feedback is related to the completion of a confidential task, the failure of a task, or a task that was remotely initiated and is still in progress when the user logs in to the device. Otherwise, the notification data can be added to the notification summary and / or notification list. In another exemplary technique, an operation mode can be used. Here, the operation mode can be associated with a notification setting indicating whether pop-up notifications are permitted or restricted. If permitted, a pop-up notification is presented. Otherwise, the notification data can be added to the notification summary and / or notification list. The use of the operation mode is further described in relation to the next figure.
[0062] In the above description of the flow, the association of the notification data with the application and the application presenting content within the application window in the foreground are examples of context matching. Other ways of using context and / or other types of context are also possible.
[0063] In one example, the computer system can determine whether there is a match between the context related to the notification data and the context related to the application. If there is a match, the computer system can determine the presentation style (e.g., in-line presentation style, in-application presentation style, and / or in-flow presentation style) for the in-context notification as shown under operation 910. Otherwise, the computer system can determine that a pop-up notification needs to be presented, or that some other form of presenting the in-context application is to be used. Here, in this example, the context related to the notification data includes at least one of a first user identifier related to the first user of the application, a second user identifier related to the second user of the source application that generated the notification data, the subject of the notification data, the type of the notification data, a first application identifier related to the application, a second application identifier related to the second application, a first platform identifier related to the first platform (such as a video game platform) hosting the application, or a second platform identifier related to the second platform (such as a social media platform) hosting the source application. The context related to the application includes at least one of a first user identifier, a first application identifier, a first platform identifier, an operation mode, or an indication that the application window is in the foreground of the display. The matching exists, for example, when the first user identifier is the same in two contexts (or can be mapped to the same user account), when the first application identifier is the same in two contexts, and / or when the first platform identifier is the same in two contexts. Also, the matching exists when the operation mode and / or the foreground state indicate that the subject of the notification data, the type of the notification data, the second user identifier, the second application identifier, and / or the second platform identifier are associated with the permission to present the notification data (e.g., are in an exception list).
[0064] Some or all of these contexts can also be used in other ways under operations 906 and / or 908. For example, the notification source, notification type, and / or notification subject can be further used to determine whether an in-context notification needs to be presented. If the notification source is in the exception list of the permitted applications, the in-context notification can be presented. Furthermore, or alternatively, if the notification type matches the permitted type, and / or if the notification subject matches the subject of the content presented within the foreground application window, the in-context notification can be presented. For illustration, the active application is a chat application running on the first device of the first user. The second user operates the second device to run another instance of the chat application and sends text as notification data. Assuming that the notification source (such as the other instance of the chat application) and the notification type (such as chat) are permitted, if the text corresponds to an ongoing chat thread, the in-context notification can be presented. Otherwise, a pop-up notification is used.
[0065] Other types of contexts are also possible. User context and application context are examples of such possible contexts. User context indicates the level of the user's attention (or focus) on the content. Various techniques are available to determine this level. In one example technique, the operating mode of the device indicates the level of user attention or user focus. For example, a user watching a movie can correspond to a lower level of attention than a user playing a video game. In another example technique, the type of content indicates the level of user attention. For example, a user playing a chess video game can correspond to a lower level of attention than a user playing a first-person shooting video game. In yet another technique, the gaze information detected by a gaze tracking system, or the motion data detected by a motion tracking system, can indicate the level of user attention. For example, gaze information indicating that the user is not looking at the GUI, or motion information indicating a relatively low level of motion, can correspond to a lower level of attention than when the gaze is on the GUI or a higher level of motion is detected. The application context indicates the level of user interaction with the application. Various techniques are also available for determining this level. In one example technique, the operating mode of the device indicates the level of user interaction. For example, in movie mode, a relatively low level of user interaction is expected compared to game mode. In another example technique, the type of content indicates the level of user attention. For example, in the case of a chess video game, a relatively low level of user interaction is expected compared to a first-person shooting video game. In yet another technique, the amount and / or frequency of user input received by an input device (such as a video game controller) indicates the level of user interaction. The greater the amount and / or the higher the frequency, the higher the level of user interaction.
[0066] Given user context and / or application context, rules can be defined to trigger in-context notifications, or pop-up notifications, of a particular type, or to use notification summaries or notification lists. For example, when the level of user attention and / or the level of user interaction is high (e.g., exceeds a predetermined threshold level), in-context notifications are shown only if the notification data is relevant to the activity the user is engaged in (e.g., associated with the active application). Otherwise, if there are time constraints on the notification data, or if the notification data is related to the user context and / or application context, pop-up notifications are used. And in other cases, the notification data is sent to a notification summary and / or a notification list.
[0067] Furthermore, the above flow is shown in relation to conditional statements that can be stored as a rule set. The conditional statements are predefined and can be updated manually based on user input to reflect user preferences and / or user settings. Additionally, rules such as those and / or other types of rules can be automatically learned by a computer system. For example, data regarding user context and / or application context can be tracked for a user and across different users. Based on such data, a machine learning (ML) algorithm is trained to output parameters that define the rules. Next, such rules may be pushed to the computer system, or the trained ML algorithm itself may be hosted on the computer system, such that the user context and / or application context is used as input and an output indicating whether a notification needs to be presented and the type of the notification is received.
[0068] FIG. 10 shows an example of an operation mode of a device according to an embodiment of the present disclosure. The device presents a GUI 1010 on a display. The GUI 1010 includes various fields related to notification settings. The first field 1020 corresponds to general settings, the second field 1030 corresponds to an operation mode, and the third field corresponds to a notification type (shown as various channels such as a social media channel that provides social media notifications, a game channel that provides game notifications, a media and event channel that provides media and event notifications, a download and upload channel that provides download and upload notifications, a promotion and offer channel that provides promotion and offer notifications, etc.). Each of the three fields can be selected to further present notification settings that can be defined under the selected field. FIG. 10 shows the selection of the operation mode field 1030.
[0069] As shown, a plurality of operation modes are possible (FIG. 10 shows four of such modes). Such modes can be identified within different fields 1032, and each of such fields can be selected to further present notification settings applicable to the corresponding operation mode, as further shown in FIG. 11. Each mode indicates an operation mode of the device. Within each of such modes, different user contexts and / or different application contexts can be expected. In other words, the level of user attention and / or the level of user interaction can be changed between operation modes. To reflect such a change, the notification settings can be different between operation modes.
[0070] For the sake of explanation, the device is a video game console. These operation modes include a game mode, a content on-demand mode (such as a movie and video mode), a content broadcast mode, or a virtual reality mode. In the game mode, it is expected that the level of user attention and / or user interaction is higher than in the content on-demand mode or the content broadcast mode, but lower than the level in the virtual reality mode.
[0071] FIG. 11 shows an example of notification settings related to an operation mode according to an embodiment of the present disclosure. For example, upon user selection of "operation mode A" as presented in field 1032 of FIG. 10, notification settings applicable to the selected operation mode are presented.
[0072] In one example, the GUI 1110 identifies an operation mode 1120 and presents an exception list indicating different notification types 1130 (such as download complete, upload complete, online friends, invitation to a game, invitation to a broadcast, change of music track, group activity, etc.). Each of those notification types 1130 is selectable. For example, a checkbox 1140 can be displayed next to each notification type, and when checked, it indicates that the notification type is selected. Selection of a notification type from the exception list indicates that when notification data is received and associated with the selected notification type, a corresponding notification can be presented (regardless of whether it is in-context or a pop-up) when the device is in operation mode 1120. In other words, the operation mode 1120 is associated with the exception list, and a corresponding notification can be presented only when a notification type on the exception list is selected. When a notification type is not selected, the presentation of the corresponding notification is restricted.
[0073] FIG. 11 shows an exception list, although other types of lists are available. For example, a permission list is possible. If a notification type is not selected under the permission list, presentation of the corresponding notification is permitted. When selected, presentation of the notification is restricted. Further, although notification types are illustrated, other parameters can be used to define permissions and restrictions for each mode of operation. For example, the exception list can identify a source application, a destination application, and / or the type of the source application and / or the destination application (e.g., a social media application, a game application, etc.). If any of these parameters are selected, the notification data associated with the selected parameter (e.g., the notification data associated with the selected source application, destination application, or application type) can result in presentation of the corresponding notification.
[0074] Each mode of operation can be associated with its own set of notification settings. Such settings can be set to a certain default configuration (e.g., default selections and notification types). Also, user input to change the default configuration (e.g., deselect a selected notification setting and select a deselected notification setting) can be received. Further, changes to the default configuration or a customized configuration can be pushed from a computer system (such as one including a backend server). In one example, to support pushing, the computer system automatically learns the changes. For example, data regarding user context and / or application context can be tracked for the user under each mode of operation and across different users. Based on such data, an ML algorithm is trained to output parameters that define the configuration.
[0075] In one example, the device is in an operation mode related to notification settings. It receives notification data. The notification type related to the notification data (and additional or alternative source applications, destination applications, types of source applications, types of destination applications) is compared with the notification settings. If the notification settings permit the presentation of the corresponding notification, the notification data is further used to present an in-context notification or a pop-up notification. Otherwise, the corresponding notification can be sent to a queue for addition to a notification summary, or added to a notification list so that the notification can be retrieved and presented at a different time.
[0076] The notification summary supports, in addition to the option to view the remaining notifications, the collation of notifications not presented in order of priority and the presentation of a subset of the highest-priority notifications to the user. FIGS. 17-20 illustrate examples of notification summaries. In comparison, the notification list represents different ways of collating notifications, as further shown in FIGS. 12-16. Generally, the notification list includes notifications having various attributes (such as various notification types related to various source applications and / or destination applications). Further, in the notification list, when the notification list is presented to the user, the notifications can be replaced, replaced and accumulated, changed, and / or grouped with other notifications so that the latest notification is presented. Further, given a particular context (for example, assuming that the device is in a particular operation mode that restricts presentation), the notification can be presented as an in-context notification or a pop-up notification when the context changes (for example, when the device changes to another operation mode that permits presentation). Thus, the operations of replacement, replacement and accumulation, change, and grouping can also affect the presentation of in-context notifications and pop-up notifications.
[0077] FIG. 12 shows an example of replacing a notification. Replacing a notification represents a method of removing a first notification and replacing the first notification with a second notification. Usually, the second notification has a newer timestamp than the first notification. Replacing a notification can result in a new notification (e.g., an in-context notification or a pop-up notification), and such a notification can be placed at the top of the notification list.
[0078] In one example, replacing a notification does not include any information or indication of the previous notification that is being replaced. Thus, this replacement method is typically used when there is no value in notifying the user of the previous content that is being replaced. To reflect this approach, a ruleset can be defined. For example, when the previous content has expired (e.g., its timestamp is in the past) or has become irrelevant (e.g., when notification data is associated with an application that is no longer active), notification replacement is used. Notification replacement is also used when the content being replaced relates to the status of a task within a flow (e.g., when a download is in progress and is now complete). Notification replacement is also used when the notification data contains updated information but the update does not affect the relevance of the notification data (e.g., when the notification data indicates that the name of a video game team has changed three times, where the number "2" does not affect the relevance).
[0079] As shown in FIG. 12, the first notification 1210 relates to a task (such as a download). The first notification 1210 has a first timestamp (such as 2 hours) and indicates a task status (such as the start of a download). As the task progresses, additional notification data indicating the progress of the task is received. Since the notification data relates to the task status, the notification data is used to replace the first notification 1210. In particular, the first notification 1210 is replaced with a second notification 1250, which has a second timestamp (such as 3 minutes), and this second timestamp indicates the status at that timestamp (e.g., the download completed 3 minutes ago).
[0080] Thus, when notification 1210 is added to the notification list, the notification list is updated to instead include second notification 1250. Second notification 1250 is placed in the notification list according to a second timestamp. Similarly, when first notification 1210 is presented as an in-context or pop-up notification, this presentation is updated to instead indicate second notification 1250.
[0081] FIG. 13 shows an example of replacing and accumulating notifications according to an embodiment of the present disclosure. Replacing and accumulating notifications is another notification replacement method. Here, in addition to replacing the notification, a counter (such as an accumulation parameter) is used to count up the number of times the replacement has been performed. Thus, not only can the user be notified that the notification has been replaced, but also that there has been additional activity regarding the replaced notification. The presentation of the counter can be within the notification, separate from the notification, or shown alone without presenting the notification.
[0082] In one example, replacing and accumulating notifications is used when the previous content has not expired and / or is still relevant. Further, replacing and accumulating notifications is used when the quantity of the counter value may affect the perceived importance of the replaced content.
[0083] As shown in FIG. 13, the first notification 1310 relates to an event (such as a photo posted by a user on a social media platform). The first notification 1310 has a first timestamp (such as 2 hours) and includes notification data regarding the event (a "like" of a photo by Friend A). Over time, other notification data is received regarding the same event. For example, second, third, and fourth notification data indicating "likes" of the photo from three other friends are received at different times. The latest notification data (the fourth notification data - a "like" of the photo from Friend B) has a fourth timestamp (such as 3 minutes) and is used as the last replacement. Further, since a counter increases each time one of the notification data is received, its current value is 3. Thus, the new notification 1350 replaces the first notification 1310 and has the fourth timestamp. The new notification 1350 includes the latest notification data (e.g., a "like" of the photo from Friend D) and indicates the latest value of the counter (such as three other people).
[0084] Thus, when the notification 1310 is added to the notification list, the notification list is updated to include the new notification 1350 instead. The new notification 1350 is placed in the notification list according to the fourth timestamp. Similarly, when the first notification 1310 is presented within the context or as a pop-up notification, this presentation is updated to indicate the new notification 1350 instead.
[0085] FIG. 14 shows an example of changing a notification according to an embodiment of the present disclosure. The change of the notification represents a method that includes additional notification data to which the notification is added without notifying the user in the foreground. This method maintains the notifications in the notification list in their chronological order without re-notifying the user of the change.
[0086] In one example, a notification change is used when no existing notification is yet presented and the additional notification data does not affect the relevance or time constraints of the original notification data, or when the additional notification data is for the same destination application and includes the same action as the original notification data. The notification change is also used to prevent generating a new notification and to not change its order in the notification list.
[0087] As shown in FIG. 14, the first notification 1410 is regarding an event (such as an invitation to a game play). The first notification 1410 has a first timestamp (such as two hours) and includes notification data regarding the event (such as a game invitation from Friend A). Thereafter, additional notification data is received, related to the event, and does not change the relevance of the first notification. For example, the additional notification data indicates that Friend A is still waiting for an acceptance or rejection of the game invitation. Accordingly, a changed notification 1450 is presented, and this changed notification 1450 is the same as the first notification 1450 except that its content is changed (e.g., indicates that Friend A is still waiting). The timestamp of the first notification 1410 may be shown in the changed notification 1450.
[0088] FIG. 15 shows an example of grouping notifications according to an embodiment of the present disclosure. Grouping of notifications represents a way to group at least one notification with another notification. The notifications are grouped together but are processed as individual notifications. This method enables a user to view a high-level summary of notification activities. Even when viewed in the notification list, the notifications are presented separately and in chronological order.
[0089] In one example, grouping of notifications is used when the notifications share at least one common attribute. For example, if multiple notifications include the same notification type (such as a chat message), these notifications are grouped together under a group corresponding to the notification type. Similarly, if multiple notifications are associated with the same source application, destination application, and / or type of source and / or destination application, these notifications can be grouped together.
[0090] As shown in FIG. 15, a first set 1510 of notifications is added to the notification list. The first set 1510 includes a first chat notification having a first timestamp (2 hours ago), a social media notification having a second timestamp (1 hour ago), and a second chat notification having a third timestamp (30 minutes ago). The two chat notifications are grouped together, but the social media notification is not grouped. No notification or their timestamps are changed by the grouping. Thus, upon completion of the grouping, a second set 1550 of notifications is defined. The second set 1550 represents the rearrangement of the first set 1510. In the second set 1550, the first chat notification and the second chat notification are grouped together according to their chronological order (e.g., the first chat notification is listed first in the list).
[0091] FIG. 16 shows an example of a flow for presenting a notification according to an embodiment of the present disclosure. The operations of the flow can be implemented as a hardware circuit and / or stored as computer-readable instructions in a non-transitory computer-readable medium of a computer system such as a video game system or a backend server. When implemented, the instructions represent a module that includes circuitry or code executable by a processor(s) of the computer system. By executing such instructions, the computer system is configured to perform the specific operations described herein. Each circuit or code in combination with the processor represents means for performing respective operation(s). The operations are shown in a particular order, but it should be understood that a particular order is not required.
[0092] As shown, the flow starts at operation 1602 where the computer system presents content within an application window. For example, the application is running and presenting content within an application window on the GUI of a display communicatively coupled to the device. The device may be a computing component of the computer system.
[0093] In one example, at operation 1604, the computer system receives notification data. The notification data is received from another device and is associated with, among other attributes, a source application, a destination application, a type of notification, and / or a subject of the notification.
[0094] In one example, in operation 1606, the computer system determines the operating mode of the device. Generally, the operating mode corresponds to the operating mode of the device at the time of receiving the notification data or within a time window including this time point. To determine the operating mode, various techniques are available. In one example of a technique, a user input that activates the operating mode is received. This user input represents a user selection of the operating mode. In another example of a technique, the determination need not depend on a user selection. Instead, based on the type of content presented, the title of the content, the source of the content, the type of application, the level of user attention, and / or the level of user interaction, the operating mode is determined. For example, if the content represents video game content and the level of user interaction indicates that the user is actively playing a video game, the video game mode is determined.
[0095] In one example, in operation 1608, the computer system determines whether a notification corresponding to the notification data needs to be presented. In particular, the notification mode is associated with notification settings. The notification settings can specify whether to permit the presentation of a notification based on attributes of the notification data, such as the source application, the destination application, the type of notification, and / or the subject of the notification. If permitted, operation 1610 follows operation 1608. Otherwise, operation 1612 follows operation 1608.
[0096] In one example, in operation 1610, the computer system presents the notification as a context notification or a pop-up notification. As described above herein in connection with FIGS. 4-9, a rule set can be used to determine the type of notification.
[0097] In one example, in operation 1612, the computer system determines that the presentation of the notification needs to be restricted. Accordingly, the computer system sends the notification to a notification list (or a notification summary as described in connection with the next figure thereof).
[0098]
[0098] In one example, in operation 1614, the computer system updates the notifications in the notification list. Various types of updates are possible, including replacing notifications, replacing and accumulating notifications, changing notifications, and / or grouping notifications. These updates can depend on a set of notification attributes and update rules described above herein in connection with FIGS. 12-15.
[0099] In one example, in operation 1616, the computer system presents the notification list. Various triggers are possible to trigger this presentation. In one illustration, user input is received indicating a request for notifications. In particular, selectable icons can be presented on the GUI, and user selection of one of these icons indicates that request. The notification list shows various notifications in a collapsed state and is arranged in chronological order. When the user selects one of those notifications, the presentation changes to an expanded state.
[0100] As shown above herein for operations 1608 and 1612, if the notification settings related to the operation mode indicate that the presentation of a notification is restricted, this notification may not be presented and instead is added to the notification list. However, it may be determined by the computer system when the operation mode changes to a second operation mode related to a second set of notification settings. In this case, the computer system determines whether the second set permits presentation. If so, the notification is presented and removed from the notification list. For example, during an operation mode, a notification may have been received but not presented. When determining the change to the second operation mode, the computer system can determine a set of such notifications and present at least one subset of the notifications that were received but not presented. Here, the presentation (e.g., the notifications to present, the total number of such notifications, the presentation style, and other presentation elements) can depend on the notification settings of the second operation mode.
[0101] The above flow is shown in relation to notification settings and rules. The notification settings and rules can be predefined and updated manually based on user input to reflect user preferences and / or user settings. Further, such notification settings and rules can be automatically learned by a computer system. For example, data regarding user context and / or application context can be tracked for a user and across different users under various modes of operation. Based on such data, an ML algorithm is trained to output parameters that define the notification settings and rules. Next, by being able to push such notification settings and rules to a computer system or host the trained ML algorithm itself on a computer system, the user context and / or application context is used as input to receive an output indicating whether a notification needs to be presented and the type of the notification.
[0102] FIG. 17 shows an example of a notification summary according to an embodiment of the present disclosure. Generally, an application can be running and presenting content within an application window on a GUI. If it is determined that it is not necessary to present notification data within a notification (in-context or pop-up), the notification data can be added to a queue. A notification summary can be generated from that queue, and this notification summary includes notifications that have not been presented. Those notifications can have various attributes (e.g., various notification types related to various source applications and / or destination applications). The notifications in the summary are sorted based on their priorities. The priority of a notification can be defined based on the relevance and currency of the notification. Over time, the priorities can change and the notifications can be re-sorted. The notification summary can be presented on the GUI in a first state, such as a collapsed state indicating the total number of notifications in the notification summary. When a user selects the notification summary, the notification summary is presented in a second state, such as an expanded state showing some or all of the notifications. In this way, the user can quickly determine the total number of notifications that have not been shown and can quickly and efficiently access the most highly prioritized notifications.
[0103] As shown in FIG. 17, an application (such as a video game application) presents content (such as video game content) within an application window 1720 on a GUI 1710 of a display. Notification data corresponding to a plurality of notifications is received. Given a particular context (e.g., notification data not associated with an application and an application window 1720 in the foreground), it is determined not to present the notifications. Instead, a notification summary 1730 is presented on the GUI 1710 in a first state indicating that the notifications have been received and are ready to be displayed.
[0104] In one example, the notification summary 1730 is presented within a pop-up window outside the application window 1720. In another example, the notification summary 1730 is presented within a pop-up window that is at least partially on top of the application window 1720. In yet another example, the notification summary 1730 is presented as a dynamic icon within a predetermined region (e.g., the upper right corner) of the GUI 1710 that indicates the total number of notifications. In a further example, the notification summary 1730 is not presented until a particular context changes. For example, the notification summary 1730 is presented when the application stops running or the application window 1720 moves to the background.
[0105] Upon user interaction with the notification summary 1730 indicating user selection, the notification summary 1730 is presented in a second state (FIG. 17 shows the notification summary 1730 in the second state as the notification summary 1750). In the second state, additional information related to the notification can be presented. For example, one or more of the notifications can be identified.
[0106] FIG. 18 shows an example of the state of a notification summary according to an embodiment of the present disclosure. In one example, multiple states are possible, and in each state, different levels of information can be indicated.
[0107] The first state 1810 corresponds to the folded state and indicates the header of the notification summary. The header indicates that no notifications have been presented (e.g., by including text such as "while you were [away / playing / watching, etc.]...") and the total number of such notifications (e.g., "8 new notifications"). Further, the header can indicate the reason for presenting the notification summary. Various reasons exist and generally depend on the user context and / or application context and can correspond to conditions that resulted in queuing the notifications rather than presenting them immediately. For example, the notification summary is presented on a display coupled to a computing device. One reason corresponds to the operating mode of the computing device that prevented immediate presentation (e.g., "while you were playing, 8 notifications were received"). Another reason corresponds to one or more notifications being received while the power of the computing device was off (e.g., "while you were away, 8 notifications were received"). Yet another reason corresponds to the associated user not being logged in to the computing device (e.g., "while you were logged off, 8 notifications were received"). In this way, the notification summary and the reason for the notification summary are presented simultaneously under the first state 1810.
[0108] The second state 1840 corresponds to the unfolded state and indicates the header, a preview of a selected subset of the notifications, and the total number of the remaining notifications not in the preview. The header can remain the same or can be changed (e.g., be text-free, not necessary but able to indicate the reason for the notification summary, etc.). Still, the header typically indicates the total number of notifications within the notification summary. The selected subset corresponds to a predetermined number of the highest-priority notifications (e.g., the top 3 notifications). The preview indicates each such notification in the folded state (as described in relation to FIG. 8). At the bottom of the notification summary, the total number of the remaining notifications is indicated, which corresponds to the number obtained by subtracting the total number of notifications in the preview from the total number of notifications in the notification summary (e.g., "5 remaining notifications").
[0109] As described above in this specification, the notification is presented in a folded state during preview from the notification summary. User input can be received and can indicate a user selection of the notification. In response, the notification can be presented in an expanded state. Various techniques are possible for presenting the notification in the expanded state. In one technique, the notification summary is further expanded (e.g., the size of its window increases), and the expanded notification continues to be presented within the notification summary (e.g., presented within the window by pushing down other notifications from the preview). In another technique, the expanded notification is shown in a window separate from the notification summary. In this case, the notification summary can be updated by removing the notification from there.
[0110] The third state 1870 also corresponds to the expanded state. However, here, all notifications are previewed instead of a subset. If the preview of the notification requires a larger area than the window of the notification summary, a scrolling mechanism can be used to scroll the entire notification. These notifications are sorted according to their priorities, and the highest-priority notification is previewed at the top of the notification summary, and the lowest-priority notification is previewed at the bottom of the notification summary.
[0111] FIG. 19 shows an example of summarizing notifications according to an embodiment of the present disclosure. In one example, the notifications are sorted according to their priorities. In the expanded state, the notification summary previews a subset of the notifications, and this subset is selected based on the priorities. The priority of the notification can be defined as either its relevance and / or its recency, or both. Relevance indicates how relevant the notification is to the current context such as the user context and / or the application context. Recency indicates the difference between the current time and the time when the corresponding notification data was received.
[0112] As shown, a set 1910 of notifications (or notification data) is queued (FIG. 19 shows eight notifications). Each such notification is associated with a timestamp representing the point in time when the corresponding notification data was received. The freshness of a notification can be determined as the difference between the current time and the timestamp (e.g., as shown, “Notification A” has a freshness of one minute indicating that the corresponding notification data was received one minute ago).
[0113] To determine the relevance of a notification, various techniques are available. In one technique, the relevance depends on the type of the notification. In particular, the relevance can be predefined for each type of notification (or any other attribute of the notification type such as the source application, destination application, counter, type of the source and / or destination application, etc.). For example, if a notification is a video game notification, its relevance is higher than that of a social media notification and similarly higher than that of a promotion notification. In another technique, the relevance can vary depending on the operating mode. In particular, each operating mode can be associated with a predetermined relevance for each type of notification (or any other attribute). For example, if the operating mode is the social media mode, social media notifications are associated with the highest relevance. In a further technique, the relevance depends on whether the notification is associated with an application having an application window in the foreground or in the background. If it is in the foreground, the relevance is higher than that of a notification associated with a background application window. In yet another technique, the relevance depends on the user context and / or application context. If such contexts indicate an activity, event, update, or feedback and the notification is associated with the activity, event, update, or feedback, its relevance is high. For example, when the user context indicates that the user attention is on video game content, and the application context indicates user interaction with a specific video game application, notifications related to the video game application have a higher relevance than notifications related to another video game application, and similarly, higher relevance than notifications related to non-video game applications. In another technique, when notification data is sent to a queue and the corresponding first notification is added to the notification summary, this notification data can also be sent to a second device of the user, such as the user's mobile device. Monitor user interaction with the corresponding second notification on the second device. When the second notification is presented, the relevance of the first notification in the notification summary can be reduced to the lowest level, or even the first notification can be removed from the notification summary. If the second notification is closed without being presented, the relevance of the first notification can be reduced to a predetermined level (but not the lowest). If no user interaction with the second notification is detected, the relevance of the first notification is not changed. In a further technique, an ML algorithm can be used to generate the relevance of notifications. In particular, data regarding the user context and / or application context, how a notification was presented and then closed, or whether a notification was viewed after being restricted, can be tracked for the user and across different users. Based on such data, the ML algorithm is trained to output the relevance of notifications.
[0114] Over time, the priority of notifications in the notification summary is changed based on one or both of their relevance and recency. At time intervals (e.g., every 5 minutes), or when a change in priority is detected, the notifications in the notification summary can be rearranged. Additionally, or alternatively, these notifications can be rearranged in response to determining the latest priority of the notifications at the time the notification summary is presented on the GUI.
[0115] In one example, the notification summary is first compiled based on the relevance assigned to each notification (e.g., a message having a higher relevance than a promotion). Next, these notifications are sorted based on recency (e.g., the most recent message is shown above older messages). A predetermined number (such as 3) of the highest-priority notifications (such as the first 3 notifications in the notification summary) can be presented within a preview of the notification summary.
[0116] As shown in FIG. 19, the notification summary 1950 of the set of notifications 1910 can be presented in an expanded state that also shows the reason why the notification summary 1950 is presented. At the time of presentation, "Notification A" was received before "Notification D", but "Notification D" is the most relevant, followed by "Notification A" and "Notification G".
[0117] FIG. 20 shows an example of a flow for summarizing and presenting notifications according to an embodiment of the present disclosure. The operations of the flow can be implemented as a hardware circuit and / or stored as computer-readable instructions in a non-transitory computer-readable medium of a computer system such as a video game system or a backend server. When implemented, the instructions represent a module that includes circuitry or code executable by a processor(s) of the computer system. By executing such instructions, the computer system is configured to perform the specific operations described herein. Each circuit or code in combination with the processor represents a means for performing each operation(s). It should be understood that the operations are shown in a particular order but no particular order is required.
[0118] As shown in the illustration, the flow begins with operation 2002 where the computer system presents content within an application window. For example, the application is running and presenting content within an application window on the GUI of a display communicatively coupled to the device. The device can be a computing component of the computer system.
[0119] In one example, in operation 2004, the computer system receives notification data. The notification data is received from another device and is associated with, among other attributes, a source application, a destination application, a type of notification, and / or a subject of the notification. The notification data can be used to present a notification on the GUI.
[0120] In one example, in operation 2006, the computer system determines whether to queue the notification. In particular, the computer system determines to restrict the presentation of the notification (e.g., not present the notification as a context notification or a pop-up notification). As described above herein, various techniques are possible for determining whether to restrict or present a notification. If the notification needs to be restricted, the computer system can determine whether to queue the notification. In an illustration, the computer system determines to queue the notification based on a determination that the notification data is not associated with an application and a determination that the application window is presented in the foreground of the display. In another illustration, the computer system determines to queue the notification based on a determination that the notification data is associated with an application and a determination that the application window is presented in the background of the display. If the notification is to be presented, operation 2008 follows operation 2006. Otherwise, operation 2010 follows operation 2006.
[0121] In one example, in operation 2008, the computer system presents the notification as a context notification or a pop-up notification. As described above herein in connection with FIGS. 4-9, a rule set can be used to determine the type of notification.
[0122] In one example, in operation 2010, the computer system, at a first time, sends the notification to the queue of notifications. Each notification in the queue is associated with a priority of the notification. The priority of the notification can be defined as relevance and recency.
[0123] In one example, in operation 2012, the computer system updates the notifications in the queue at a second point in time. For example, the relevance of each notification is updated as described above in this specification in connection with FIG. 19. The currency of each notification is also updated based on the notification's timestamp. The notifications are reorganized (such as ranked) according to their relevance and sorted according to their currency.
[0124] In one example, in operation 2014, the computer system selects a subset of the notifications. For example, a predetermined number (such as 3) of notifications are selected. The 3 most prioritized (or a predetermined number of) notifications are selected to form the subset.
[0125] In one example, in operation 2016, the computer system generates a notification summary. The notification summary includes various notifications organized according to priority. The notification summary may also include a header indicating the total number of notifications, a preview of a subset of the notifications, and a footer indicating the total number of the remaining notifications.
[0126] In one example, in operation 2018, the computer system presents the notification summary. For example, the notification summary is presented in a first state showing the header. Based on user interaction with the header, the notification summary is presented in a second state further showing the preview and the footer. When interacting with the footer, various notifications in the notification summary are previewed.
[0127] In FIG. 20, it is shown that notification data is received while presenting content in an application window, but the flow is similarly applicable to presenting a notification summary when notification data is received while the device's power is off or when the user is not logged in to the device. Further, the computer system can generate a notification list that includes various sets of notifications. The first set can correspond to the first notifications that were received but not presented. The second set can correspond to the notifications that were received and presented. When triggering the presentation of the notification summary, the notification summary can be generated from the notification list, and this notification summary includes a subset corresponding to one or more of the first notifications.
[0128] FIG. 21 shows an example of a flow for presenting context-aware notifications and pop-up notifications on a video game console according to an embodiment of the present disclosure. The operations of the flow can be implemented as a hardware circuit and / or stored as computer-readable instructions on a non-transitory computer-readable medium of the video game console. When implemented, the instructions represent a module that includes a circuit or code executable by a processor(s) of the video game console. By executing such instructions, the video game console is configured to perform the specific operations described herein. Each circuit or code in combination with the processor represents a means for performing each operation(s). It should be understood that the operations are shown in a particular order, but no particular order is required.
[0129] In one example, the video game console receives notification data. At operation 2102, the video game console determines whether there is a user login to the video game console. If so, operation 2104 follows operation 2102. Otherwise, operation 2126 follows operation 2102.
[0130] In one example, in operation 2104, the video game console determines whether an immersive user experience is being provided. In the example, the immersive user experience corresponds to one of a predetermined set of operating modes of the video game console. For example, if the operating mode is the game mode, the video game console determines that an immersive user experience is being provided. Additionally, the immersive user experience can depend on the user context (such as the level of user attention) and the application context (such as the level of user interaction). When the level of user attention and / or the level of user interaction exceeds a predetermined level, it is determined that an immersive user experience is being provided. If so, operation 2106 follows operation 2104. Otherwise, operation 2120 follows operation 2104.
[0131] In one example, in operation 2106, the video game console determines whether a video game is being played. For example, a video game application can be executed and video game content can be presented within an application window. If the application window is in the foreground, it is determined that a video game is being played. If so, operation 2108 follows operation 2106. Otherwise, operation 2110 follows operation 2106.
[0132] In one example, in operation 2108, the video game console determines that a pop-up notification needs to be presented. In particular, the user of the video game console is engaged in an immersive user experience and is playing a video game. Therefore, a pop-up notification can be presented to alert the user.
[0133] In one example, in operation 2110, the video game console determines whether the user is associated with a mobile device or a device that can access the web. This determination can be made by the video game console based on a user profile or based on a backend server. If a backend server is used, the backend server may also monitor activities on the mobile device and / or online activities. In this case, it also determines whether such activities exist. In that case (where the user is associated with a mobile device or a device that can access the web and optionally activities are detected), operation 2112 follows operation 2110. Otherwise, operation 2114 follows operation 2110.
[0134] In one example, in operation 2112, the video game console sends a push notification to the mobile device or other device.
[0135] In one example, in operation 2114, the video game console determines whether there are temporal constraints for the notification (e.g., based on the attributes of the notification, e.g., there are temporal constraints for system notifications). If there are temporal constraints, operation 2116 follows operation 2114. Otherwise, operation 2118 follows operation 2114.
[0136] In one example, in operation 2116, the video game console determines that a pop-up notification needs to be presented. Specifically, due to temporal constraints, a pop-up notification is required. Therefore, a pop-up notification can be presented to alert the user.
[0137] In one example, in operation 2118, the video game console sends this notification to the notifications added to the notification summary and / or the queue.
[0138] In one example, in operation 2120, the video game console determines a user focus on the content presented (or any service provided) by the video game console. The user focus can depend on the user context and / or the application context. When the level of user attention and / or the level of user interaction exceeds a predetermined level, it is determined that the user focus is on the content. If so, operation 2122 follows operation 2120. Otherwise, operation 2124 follows operation 2120.
[0139] In one example, in operation 2122, the video game console determines that a context-aware notification needs to be presented. Thus, the context-aware notification can be presented inline, within the application, or as an inflow.
[0140] In one example, in operation 2124, the game console determines that a pop-up notification needs to be presented. Thus, the pop-up notification can be presented to alert the user.
[0141] In one example, in operation 2126, similar to operation 2110, it is determined whether the user is associated with a mobile device or a device accessible via the web. In that case (where the user is associated with a mobile device or a device accessible via the web and optionally an activity is detected), operation 2128 follows operation 2126. Otherwise, operation 2134 follows operation 2126.
[0142] In one example, in operation 2128, the video game console determines whether a mobile device or other device is connected to the local area network. For example, this determination is made based on the service set identifier (SSID) of the access point to which the mobile device or other device is connected. If so, operation 2130 follows operation 2128. Otherwise, operation 2132 follows operation 2128.
[0143] In one example, in operation 2130, the video game console sends this notification to a notification being added to the notification summary and / or a queue. Also, the video game console sends a push notification to the mobile device or other device. This push can be performed via the local area network.
[0144] In one example, in operation 2132, the video game console sends this notification to a notification being added to the notification summary and / or a queue. Also, the video game console sends a push notification to the mobile device or other device. This push can be performed via the remote network.
[0145] In one example, in operation 2134, the video game console sends this notification to a notification being added to the notification summary and / or a queue.
[0146] FIG. 22 shows an example of a hardware system suitable for implementing a computer system 2200 according to an embodiment of the present disclosure. The computer system 2200 represents, for example, a video game system, a server backend set, or other types of computer systems. The computer system 2200 includes a central processing unit (CPU) 2205 for executing software applications and optionally an operating system. The CPU 2205 may be composed of one or more homogeneous or heterogeneous processing cores. The memory 2210 stores the applications and data used by the CPU 2205. The storage 2215 provides non-volatile storage for applications and data and other computer-readable media, and may include a fixed disk drive, a removable disk drive, a flash memory device, and a CD-ROM, DVD-ROM, Blu-ray (registered trademark), HD-DVD, or other optical storage device, as well as signal transmission and storage media. The user input device 2220 communicates user input from one or more users to the computer system 2200, and examples thereof may include a keyboard, a mouse, a joystick, a touch pad, a touch screen, a steel or video camera, and / or a microphone. The network interface 2225 enables the computer system 2200 to communicate with other computer systems via an electronic communication network, and may include wired or wireless communication on a wide area network such as a local area network or the Internet. The audio processor 2255 is adapted to generate an analog or digital audio output from the instructions and / or data provided by the CPU 2205, the memory 2210, and / or the storage 2215. The components of the computer system 2200 including the CPU 2205, the memory 2210, the data storage 2215, the user input device 2220, the network interface 2225, and the audio processor 2255 are connected via one or more data buses 2260.
[0147] The graphics subsystem 2230 is further connected to the data bus 2260 and the components of the computer system 2200. The graphics subsystem 2230 includes a graphics processing unit (GPU) 2235 and a graphics memory 2240. The graphics memory 2240 includes a display memory (e.g., a frame buffer) used to store pixel data for each pixel of the output image. The graphics memory 2240 can be integrated into the same device as the GPU 2235, connected to the GPU 2235 as a separate device, and / or implemented within the memory 2210. Pixel data can be provided directly from the CPU 2205 to the graphics memory 2240. Alternatively, the CPU 2205 provides data and / or instructions that define a desired output image to the GPU 2235, from which the GPU 2235 generates pixel data for one or more output images. The data and / or instructions that define the desired output image can be stored within the memory 2210 and / or the graphics memory 2240. In an embodiment, the GPU 2235 includes a 3D rendering function that generates pixel data for an output image from instructions and data that define the geometric structure, lighting, shading, texture, motion, and / or camera parameters of a scene. The GPU 2235 can further include one or more programmable execution units capable of executing shader programs.
[0148] The graphics subsystem 2230 periodically outputs pixel data of an image from the graphics memory 2240 for display on the display device 2250. The display device 2250 can be any device capable of displaying visual information in response to a signal from the computer system 2200, including CRT, LCD, plasma, and OLED displays. The computer system 2200 can provide an analog or digital signal to the display device 2250.
[0149] According to various embodiments, the CPU 2205 is one or more general-purpose microprocessors having one or more processing cores. Further embodiments can be implemented using one or more CPUs 2205 having a microprocessor architecture particularly adapted for highly parallel and computationally intensive applications, such as media and two-way entertainment applications.
[0150] System components may be connected via a network, which in various embodiments may be any combination of the following: the Internet, an IP network, an intranet, a wide area network ("WAN"), a local area network ("LAN"), a virtual private network ("VPN"), a public switched telephone network ("PSTN"), or any other type of network that supports data communication between the devices described herein. The network may include both wired and wireless connections, including optical links. In light of the present disclosure, many other examples are possible and will be apparent to those skilled in the art. For the discussion herein, the network may or may not be particularly noted.
[0151] Examples of embodiments of the present disclosure can be described in view of the following aspects.
[0152] Aspect 1. A method implemented by a computer system that presents a notification, the method comprising presenting content within an application window on a display based on execution of an application, receiving notification data, determining a match between a first context associated with the notification data and a second context associated with the application, presenting a notification within the application window based on the match, the notification corresponding to the notification data and being presented while presentation of the content continues.
[0153] Aspect 2. The method according to aspect 1, further comprising determining a position within the application window at which to present the notification data, determining that a user display area includes the position, and presenting the notification data within the position, wherein the notification is presented as a visual indicator of at least a portion of the notification data.
[0154] Aspect 3. Determining a position within the application window for presenting the notification data, determining that the position is outside the user display area, presenting the notification as a notification window within the user display area, and determining that the notification data is available for presentation, the method according to any of the preceding aspects.
[0155] Aspect 4. Presenting the content within the application window is associated with the flow of a task executed by the application, and the notification is presented as an update to the flow, the method according to any of the preceding aspects.
[0156] Aspect 5. Receiving second notification data, determining that the second notification data is associated with a second application, determining that a second application window of the second application is within the background of the display, and presenting a second notification within a pop-up window on the application window based on the second notification data associated with the second application and the second application window within the background, the second notification corresponding to the second notification data and being presented while the presentation of the content is ongoing, the presenting according to any of the preceding aspects.
[0157] Aspect 6. The second notification is presented in a first state indicating at least one of the notification type or title of the second notification, the method according to Aspect 5.
[0158] Aspect 7. Receiving a user interaction with the second notification, and presenting the second notification in a second state within the pop-up window while the presentation of the content is ongoing based on the user interaction, the second state indicating a description of the second notification from the notification data and selectable actions, the method according to Aspect 6.
[0159] Aspect 8. The method according to aspect 7, comprising receiving an update to at least one of the description or the selectable action, and presenting the update within the second notification while the presentation of the content and the presentation of the second notification in the second state continue.
[0160] Aspect 9. The method according to any of the preceding aspects, wherein the content is presented by a user device of the computer system, comprising determining an operating mode of the user device, receiving second notification data, determining that the presentation of the second notification data is restricted by the operating mode based on at least one of an association between the second notification data and a second application or a type of the second notification data, and sending the second notification data to a queue.
[0161] Aspect 10. The first context includes at least one of a first user identifier related to a first user of the application, a second user identifier related to a second user of a source application that generated the notification data, a subject of the notification data, a type of the notification data, a first application identifier related to the application, a second application identifier related to the second application, a first platform identifier related to a first platform hosting the application, or a second platform identifier related to a second platform hosting the source application, and the second context includes at least one of the first user identifier, the first application identifier, the first platform identifier, an operating mode, or an indication that the application window is in the foreground of the display. The method according to any of the preceding aspects.
[0162] Aspect 11. A computer system including one or more processors and one or more memories, wherein the one or more memories store computer-readable instructions that, when executed by the one or more processors, cause the computer system to be configured to present content within an application window on a display based on execution of an application, to receive notification data, to determine a matching between a first context associated with the notification data and a second context associated with the application, and to present a notification within the application window based on the matching, the notification corresponding to the notification data and being presented while presentation of the content continues, the computer system.
[0163] Aspect 12. The first context indicates a source application, a notification type, and a notification subject, and determining the matching includes determining a first matching between the source application and the application and a second matching between at least the notification type and a type of the content or between the notification subject and a subject of the notification, the computer system according to aspect 11.
[0164] Aspect 13. The content is presented to a user, and execution of the computer-readable instructions further causes the computer system to be configured to determine at least one of a level of the user's attention to the content or a level of user interaction with the application in response to receiving the notification data, and to select a first presentation mode for the notification from a plurality of presentation modes based on at least one of the level of attention or the level of user interaction, the first presentation mode indicating presentation of the notification within the application window, the plurality of presentation modes including a second mode indicating presentation within a pop-up window on the application window, the computer system according to aspect 11 or 12.
[0165] Aspect 14. The notification includes at least one of a description regarding the notification or a selectable action, and by the execution of the computer-readable instructions, the computer system is further configured to determine an update to at least one of the level of attention or the level of user instructions, and based on the update, is configured to determine at least one of an updated description regarding the notification or an updated selectable action, and to present at least one of the updated description or the updated selectable action within the notification within the application window. The computer system according to Aspect 13.
[0166] Aspect 15. Determining the matching includes determining that the notification data is associated with the application and determining that the application window is in the foreground of the display. The computer system according to Aspect 13.
[0167] Aspect 16. One or more non-transitory computer-readable storage media storing computer-readable instructions that, when executed on a computer system, cause the computer system to perform operations including presenting content based on the execution of an application within an application window on a display, receiving notification data, determining a match between a first context related to the notification data and a second context related to the application, determining a presentation style for presenting a notification corresponding to the notification data, the presentation style being based on the match, presenting the notification on the display according to the presentation style, and presenting the notification while the presentation of the content continues. The one or more non-transitory computer-readable storage media.
[0168] Aspect 17. The one or more non-transitory computer-readable storage media according to aspect 16, wherein the presentation style is determined from a plurality of presentation styles including in-line presentation, in-application presentation, and in-flow presentation.
[0169] Aspect 18. The one or more non-transitory computer-readable storage media according to any one of aspects 16 to 17 above, wherein the application window is presented by a video game console, and the operation includes receiving second notification data, determining that the video game console is not presenting video game content within the foreground of the display, determining a user context of a user of the video game console, the user context indicating that the user is not viewing the content, and presenting a second notification within a pop-up window on the application window based on the user context.
[0170] Aspect 19. The one or more non-transitory computer-readable storage media according to any one of aspects 16 to 18 above, wherein the application is a video game application, the content is video game content, the operation includes receiving second notification data, determining a user context of a user, the user context indicating that the user is playing the video game application, and presenting a second notification within a pop-up window on the application window based on the user context.
[0171] Aspect 20. The one or more non-transitory computer-readable storage media according to any one of aspects 16 to 19 above, wherein the application is a video game application, the content is video game content, the operation includes receiving second notification data, determining a user context of a user, the user context indicating that the user is not playing the video game application, and sending the second notification data to a queue based on the user context.
[0172] In the foregoing specification, the present invention has been described with reference to specific embodiments, but those skilled in the art will recognize that the invention is not limited thereto. The various features and aspects of the invention described above may be used individually or in combination. Furthermore, the present invention can be utilized in any number of environments and applications beyond those described herein without departing from the broader spirit and scope of this specification. Accordingly, the specification and drawings should be regarded as illustrative rather than restrictive.
[0173] Note that the methods, systems, and devices discussed above are intended to be merely examples. It should be emphasized that various embodiments may omit, substitute, or add various procedures or components as necessary. For example, in alternative embodiments, the methods can be executed in a different order than described, and various steps can be added, omitted, or combined. Also, the features described with respect to a particular embodiment may be combined with various other embodiments. Different aspects and elements of the embodiments may be combined in a similar manner. Also, since technology is evolving, many of the elements are illustrative and should not be construed as limiting the scope of the present invention.
[0174] Specific details are provided in the description to provide a thorough understanding of the embodiments. However, it will be apparent to those skilled in the art that the embodiments can be practiced without these specific details. For example, well-known circuits, processes, algorithms, structures, and techniques are shown without unnecessary detail to avoid obscuring the embodiments.
[0175] Note that the present embodiment can be described as a process shown as a flowchart or a block diagram. Although each operation may be described as a sequential process, many of the operations can be executed in parallel or simultaneously. Also, the order of these operations may be rearranged. The process may include additional steps not included in the figures.
[0176] Furthermore, as disclosed herein, the term "memory" or "memory unit" can represent one or more devices for storing data, including read-only memory (ROM), random access memory (RAM), magnetic RAM, core memory, magnetic disk storage media, optical storage media, flash memory devices, or other computer-readable media for storing information. The term "computer-readable media" includes, but is not limited to, portable or fixed storage devices, optical storage devices, wireless channels, SIM cards, other smart cards, and various other media that can store, contain, or carry instructions or data.
[0177] Furthermore, the embodiment can be implemented by hardware, software, firmware, middleware, microcode, a hardware description language, or any combination thereof. When implemented in software, firmware, middleware, or microcode, the program code or code segments for performing the necessary tasks can be stored in a computer-readable medium such as a storage medium. The processor can execute the necessary tasks.
[0178] Unless otherwise specified, all measurements, values, evaluations, positions, sizes, dimensions, and other specifications described in this specification that are included in the following claims are approximate and not exact. They are intended to have a reasonable range that is consistent with the functions to which they relate and that is customary in the art to which they relate. "About" includes within tolerances of ±0.01%, ±0.1%, ±1%, ±2%, ±3%, ±4%, ±5%, ±8%, ±10%, ±15%, ±20%, ±25%, or as otherwise known in the art. "Substantially" refers to values otherwise known in the art, depending on the context in which the term appears, such as greater than 66%, 155%, 80%, 90%, 95%, 99%, 99.9%, or otherwise.
[0179] Although several embodiments have been described, those skilled in the art will recognize that various modifications, alternative constructions, and equivalents can be used without departing from the spirit of the invention. For example, the above elements may only be components of a larger system, and other rules may take precedence over or otherwise modify the application of the invention. Also, several steps can be performed before, during, or after considering the above elements. Accordingly, the above description should not be construed as limiting the scope of the invention.
Claims
1. A method of presenting a notification, executed by a computer system, comprising: executing an application to present content for display to a user within an application window; receiving notification data; in response to receiving the notification data, determining at least one of the user's attention level to the content or the user interaction level with the application; determining whether there is a matching between a first context associated with the notification data and a second context associated with the application; selecting a first presentation mode from a plurality of presentation modes as the notification corresponding to the notification data based on whether the matching exists and at least one of the user's attention level or the user interaction level, the first presentation mode indicating presentation of the notification within the application window, and the plurality of presentation modes including a second presentation mode indicating presentation within a pop-up window on the application window; presenting the notification within the application window, the notification corresponding to the notification data and being presented while the presentation of the content continues.
2. Determining a position within the application window to present the notification data; determining that the user display area includes the position; presenting the notification data at the position, the notification being presented as a visual indicator of at least a portion of the notification data. The method according to claim 1.
3. Determining a position within the application window to present the notification data; determining that the position is outside the user display area, and presenting the notification as a notification window within the user display area, indicating that the notification data is available for presentation. The method according to claim 1.
4. The content within the application window includes information regarding the flow of a task executed by the application, and the notification is presented as an update to the information regarding the flow. The method according to claim 1.
5. Receiving second notification data; determining that the second notification data is associated with a second application; Determine that the second application window of the second application is in the background of the display, Based on the second notification data associated with the second application and the second application window in the background, present a second notification in a pop-up window on the application window, the second notification corresponding to the second notification data and being presented while the presentation of the content is ongoing, the method according to claim 1. **Claim 6** The second notification is presented in a first state indicating at least one of the notification type or title of the second notification, Receive a user interaction with the second notification, Based on the user interaction, present the second notification in a second state in the pop-up window while the presentation of the content is ongoing, the second state indicating a description of the second notification from the notification data and selectable actions, Receive an update to at least one of the description or the selectable action, Present the update in the second notification while the presentation of the content and the presentation of the second notification in the second state are ongoing, the method according to claim 5. **Claim 7** The content is presented by a user device of the computer system, Determine the operating mode of the user device, Receive second notification data, Based on at least one of the association between the second notification data and the second application or the type of the second notification data, determine that the presentation of the second notification data is restricted by the operating mode, Transmit the second notification data to a queue, the method according to claim 1. **Claim 8** The first context is A first user identifier associated with a first user of the application, A second user identifier associated with a second user of the source application that generated the notification data, The subject of the notification data, The type of the notification data, A first application identifier associated with the application, A second application identifier associated with the second application, A first platform identifier associated with a first platform hosting the application, or A second platform identifier associated with a second platform hosting the source application, including at least one of them, The method according to claim 5, wherein the second context includes at least one of the first user identifier, the first application identifier, the first platform identifier, the operation mode, or an indication that the application window is in the foreground of the display.
9. A computer system including one or more processors and one or more memories storing computer-readable instructions, wherein the computer-readable instructions, when executed by the one or more processors, execute an application within an application window to present content to a user, receive notification data, in response to receiving the notification data, determine at least one of the user's attention level to the content or the user interaction level with the application, determine whether there is a matching between a first context related to the notification data and a second context related to the application, select a first presentation mode from a plurality of presentation modes as a notification corresponding to the notification data based on whether the matching exists and at least one of the user's attention level or the user interaction level, the first presentation mode indicates the presentation of the notification within the application window, and the plurality of presentation modes includes a second presentation mode indicating the presentation within a pop-up window on the application window, configure the computer system to present the notification within the application window, the notification corresponding to the notification data and presented while the presentation of the content continues.
10. The computer system according to claim 9, wherein the first context indicates a source application, a notification type, and a notification subject, and in determining the matching, a first matching between the source application and the application and a second matching between at least the notification type and the content type or between the notification subject and the content subject are determined.
11. One or more computer-readable storage media storing computer-readable instructions, which, when executed on a computer system, cause the computer system to present content to a user by executing an application within an application window, receive notification data, in response to receiving the notification data, determine at least one of the user's attention level to the content or the user interaction level with the application, determine whether there is a match between a first context associated with the notification data and a second context associated with the application, select a first presentation mode from a plurality of presentation modes as a notification corresponding to the notification data based on whether the match exists and at least one of the user's attention level or the user interaction level, the first presentation mode indicating presentation of the notification within the application window, and the plurality of presentation modes including a second presentation mode indicating presentation within a pop-up window on the application window, determine a presentation style for presenting the notification corresponding to the notification data, the presentation style being based on the determination of whether the match exists, present the notification within the application window according to the presentation style, the notification being presented while the presentation of the content continues, One or more computer-readable storage media that cause the execution of operations including.
12. The one or more computer-readable storage media according to claim 11, wherein the presentation style is determined from a plurality of presentation styles including in-line presentation, in-application presentation, and in-flow presentation.
13. The application window is presented by a video game console, The operations further include receiving second notification data, determining that the video game console is not presenting video game content within the foreground of the display, determining the user context of the user of the video game console, the user context indicating that the user is not viewing the content. One or more computer-readable storage media according to claim 11, including presenting a second notification within a pop-up window on the application window based on the user context.
14. The application is a video game application, The content is video game content, The operation further includes Receiving second notification data, Determining the user context of the user, where the user context indicates that the user is playing the video game application, One or more computer-readable storage media according to claim 11, including presenting a second notification within a pop-up window on the application window based on the user context.
Citation Information
Patent Citations
Information display
JP2006285434A
Message transmission method and device and system for transmitting message
JP2014178822A
Push notification management device, push notification management method and push notification management program
JP2015103031A
Generation apparatus, generation method, and generation program
JP2018129004A
JPP6556913B