Optimized push message presentation

The notification timing handler optimizes push notification presentation on user devices by considering user behavior and preferences, enhancing engagement and privacy by determining optimal display times and storing data locally.

WO2026062642A1PCT designated stage Publication Date: 2026-03-26ANAGOG
View PDF 4 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-09-15
Publication Date
2026-03-26

AI Technical Summary

Technical Problem

Existing push notification systems display messages at unpredictable times, often disrupting users and reducing engagement, and may infringe on user privacy by storing personal data remotely.

Method used

A notification timing handler installed on the user device determines optimal presentation times based on user behavior and preferences, postponing notifications until the user is likely to be receptive, while keeping data private by storing it locally.

Benefits of technology

Enhances user engagement by presenting notifications at convenient times and maintains privacy by keeping user data secure on the device, improving interaction with applications.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure IL2025050806_26032026_PF_FP_ABST
    Figure IL2025050806_26032026_PF_FP_ABST
Patent Text Reader

Abstract

A method, apparatus and computer program product for displaying push notifications in a user device having installed thereon a handler and an application, the method comprising: receiving by the handler an indication sent from the application about a push notification to be displayed transmitted from a server to the application; the handler causing the notification to be presented after a receipt time of the notification, said causing comprises: determining that a user is engaged with the device at a first time; determining that the user has stopped engagement at a second time after the first; subject to determining that the user is re-engaged at a third time after the second, determining a time / time range for the application to present the notification, the third time after the second, the time or time range after the third; and instructing the application to present the notification at the time or time range.
Need to check novelty before this filing date? Find Prior Art

Description

GA Ref: 329-36.2OPTIMIZED PUSH MESSAGE PRESENTATIONCROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application claims the benefit of U.S. Provisional Application No. 63 / 697,268 filed September 20, 2024, titled “Optimized Push Message Presentation”, hereby incorporated by reference in its entirety for all purposes without giving rise to disvowment.TECHNICAL FIELD

[0002] The present disclosure relates to computer systems in general, and to notifications sent to applications installed on mobile devices, in particular.BACKGROUND

[0003] Push notifications are messages sent from an application or from a website to a user's device. Unlike in-app messages, push notifications can be received even when the application is not open or active. Push notifications can include media such as text, images, buttons or other controls for user interaction, and can show up as alerts, banners, or badges on the device's screen. Push notifications are often accompanied by a notification sound.

[0004] Push notifications usually require user opt-in, meaning that a user needs to enable push notifications for a specific app or website in order for them to be received.

[0005] Push notifications may be used for delivering important information, even when the user is not actively using the application, delivering personal information, and encouraging users to take specific actions.

[0006] Push notifications are traditionally initiated by a service, e.g., a news application, sending a notification request to a push notification service, which in turn relays the notification to the user's device. The device immediately displays the notification, such that the user sees it as soon as the user engages with the device, thereby allowing the user to interact with it.GA Ref: 329-36.2BRIEF SUMMARY

[0007] One exemplary embodiment of the disclosed subject matter is a method for displaying push notifications in a user device, wherein the user device having installed thereon a notification timing handler and an application, said method comprising: receiving by the notification timing handler an indication sent from the application about a push notification to be displayed by the application, the push notification is transmitted from a server to the application; the notification timing handler causing the push notification to be presented to a user of the user device at a time later than a receipt time of the push notification at the user device, said causing comprises: determining that the user is engaged with the device at a first time; determining that the user has stopped engagement with the device at a second time, the second time is later than the first time; subject to determining that the user is re-engaged with the device at a third time, determining a time or time range for the application to present the push notification to the user, the third time is later than the second time, the time or time range is later than the third time; and instructing the application to present the push notification at the time or time range. Within the method, the first time is optionally a time at which the notification timing handler received the indication from the application. Within the method, the time range optionally starts immediately or non-immediately after the user has re-engaged with the device, subject to the user still being engaged with the device. Within the method, the time or time range is after a predetermined time has elapsed since the third time. Within the method, the indication is optionally associated with accompanying data; and said determining the time or time range is optionally based at least on the accompanying data. Within the method, the accompanying data optionally depends on user preferences. Within the method, said determining the time or the time range is optionally configured to exclude from the time or time range a predetermined time of day range. Within the method, said determining the time or the time range is optionally configured to postpone the time or time range later than the third time in case prior to the third time, the user has not been engaged with the user device for at least a predetermined period of time. Within the method, said causing is optionally configured to avoid presenting the push notification when the user is engaged with the user device and is using one of a predetermined collection of applications. Within the method, said determining the time or the time range is optionally based on learned behavior of the user of the user device, wherein the learned user behavior is stored exclusively at the user device and is inaccessible by the server. Within the method, the notification timing handler is optionally implemented as aGA Ref: 329-36.2Software Development Kit (SDK). Within the method, subject to the user being re-engaged with the device, a first indication associated with a first push notification is optionally sent before a second indication associated with a second push notification, subject to the first notification having been received before the second push notification. Within the method, said determining that the user is engaged or re-engaged with the device is optionally based at least on readings from an accelerometer embedded within the user device. Within the method, said determining that the user is engaged or re-engaged with the device is optionally based at least on processor utilization data of a processor of the user device.

[0008] Another exemplary embodiment of the disclosed subject matter is a computerized apparatus for displaying push notifications in a user device having a processor, wherein the user device having installed thereon a notification timing handler and an application, the processor being adapted to perform the steps of: receiving by the notification timing handler an indication sent from the application about a push notification to be displayed by the application, the push notification is transmitted from a server to the application; the notification timing handler causing the push notification to be presented to a user of the user device at a time later than a receipt time of the push notification at the user device, said causing comprises: determining that the user is engaged with the device at a first time; determining that the user has stopped engagement with the device at a second time, the second time is later than the first time; subject to determining that the user is re-engaged with the device at a third time, determining a time or time range for the application to present the push notification to the user, the third time is later than the second time, the time or time range is later than the third time; and instructing the application to present the push notification at the time or time range. Within the apparatus, the first time is optionally a time at which the notification timing handler received the indication from the application. Within the apparatus, said determining the time or the time range is optionally configured to: exclude from the time or time range a predetermined time of day range; postpone the time or time range later than the third time in case prior to the third time, the user has not been engaged with the user device for at least a predetermined period of time; or avoid presenting the push notification when the user is engaged with the user device and is using one of a predetermined collection of applications. Within the apparatus, said determining the time or the time range is optionally based on learned behavior of the user of the user device, wherein the learned user behavior is stored exclusively at the user device and is inaccessible byGA Ref: 329-36.2 the server. Within the apparatus, the notification timing handler is optionally implemented as a Software Development Kit (SDK).

[0009] Another exemplary embodiment of the disclosed subj ect matter is a computer program product comprising a non-transitory computer readable medium retaining program instructions, which instructions when read by a processor, cause the processor to perform: receiving by the notification timing handler an indication sent from the application about a push notification to be displayed by the application, the push notification is transmitted from a server to the application; the notification timing handler causing the push notification to be presented to a user of the user device at a time later than a receipt time of the push notification at the user device, said causing comprises: determining that the user is engaged with the device at a first time; determining that the user has stopped engagement with the device at a second time, the second time is later than the first time; subject to determining that the user is re-engaged with the device at a third time, determining a time or time range for the application to present the push notification to the user, the third time is later than the second time, the time or time range is later than the third time; and instructing the application to present the push notification at the time or time range.GA Ref: 329-36.2THE BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

[0010] The present disclosed subject matter will be understood and appreciated more fully from the following detailed description taken in conjunction with the drawings in which corresponding or like numerals or characters indicate corresponding or like components. Unless indicated otherwise, the drawings provide exemplary embodiments or aspects of the disclosure and do not limit the scope of the disclosure. In the drawings:

[0011] Fig. 1 shows a schematic illustration of an exemplary configuration of traditional notification pushing, in accordance with some exemplary embodiments of the disclosed subject matter;

[0012] Fig. 2 shows the entities and actions taken by the entities in the exemplary configuration of traditional notification pushing shown in Fig. 1, in accordance with some exemplary embodiments of the disclosed subject matter;

[0013] Fig. 3 shows a schematic block diagram of a solution for presenting a notification, in accordance with some exemplary embodiments of the disclosed subject matter;

[0014] Fig. 4 shows the entities and actions taken by the entities in the exemplary configuration of traditional notification pushing shown in Fig. 3, in accordance with some exemplary embodiments of the disclosed subject matter;

[0015] Fig. 5 shows a flowchart of steps in a method for presenting notifications, in accordance with some exemplary embodiments of the disclosed subject matter; and

[0016] Fig. 6 shows a schematic block diagram of the elements of a user device which are relevant for displaying notifications, in accordance with some exemplary embodiments of the disclosed subject matter.GA Ref: 329-36.2DETAILED DESCRIPTION

[0017] The terms “device”, “user device”, “user computing device”, “client device”, and similar ones used in the disclosure are to be widely construed to cover any computing platform used by a user for executing applications, such as but not limited to a mobile phone, a tablet, a laptop computer, a desktop computer, or others.

[0018] The term “server application” used in the disclosure is to be widely construed to cover any application executed by a computing platform such as a server used by an organization or an individual, wherein the server application provides products or services to users, and initiates sending notifications from the server to be presented on users’ devices.

[0019] The term “application” or "user application" used in the disclosure is to be widely construed to cover any program installed on a user device, or a web application, which provides to the users links, alerts, information, services, promotions, propositions, or the like on behalf of an organization operating a server and providing a server application. Typically, each application is associated with a corresponding server application.

[0020] The term “notification pushing server” used in the disclosure is to be widely construed to cover any computing platform having installed therein corresponding applications or programs adapted to receive push notifications from a server executing a server application, and transmit the notifications to one or more users having installed a corresponding application on their devices. The list of users may be received from the application server, or filtered by the notification pushing server from an available list of users and characteristics thereof, according to criteria provided to the notification pushing server by the server application. In further alternatives, the notification may be transmitted to all user devices associated with the application, and optionally filtered by the user device according to the user's or user account characteristics.

[0021] It is appreciated that the timing of the presentation of push notifications can significantly impact user engagement and overall user experience. Traditionally, push notifications are displayed immediately upon receipt by a device, regardless of the user's current context or activity. This approach, while simple, may be suboptimal for user interaction or receptiveness to the notification content.

[0022] One technical problem dealt with by the present disclosure is optimizing the time at which a push notification is presented on a user device, such that the notification is moreGA Ref: 329-36.2 noticeable by the user, and user engagement with the application associated with the notification, or with the content presented to the user, may be improved.

[0023] With currently used methods and systems, once received by a user device, a notification is presented to a user on the user device’s screen and / or speaker and / or other output component, in a timing that is unconditional. Depending on the user’s settings, the notification may not be presented if the user is not using the device, and is shown to the user together with other notifications when the user engages with the device, e.g., turns on the screen or unlocks the device. Typically, at the user device, the pending notifications from all applications are maintained and presented as a list in the order they were received, such that often none gets the user’s attention, and users often delete all notifications without paying attention to specific ones. Thus, the opportunity for increasing the user’s engagement with the application is lost. If the notification is received when the user is engaged with the device, it may pop up a notification that covers at least a part of the screen, plays a sound, or the like, such that the user inevitably notices the notification. However, such timing may be bad for the user, for example disturb the user during an important task, and may thus be dismissed and forgotten until the user is free. Furtehrmore, such badly timed notification may even aggravate the user and reduce the user’s engagement with the application.

[0024] Another technical problem dealt with by the present disclosure relates to maintaining the privacy of the user. In some embodiments, server applications may select a notification to be sent to a user device, and select the time at which the notification is sent, based on information about the user of the device. Thus, the user’s privacy may be infringed, as personal data is maintained on a remote server, possibly accessible to employees of the organization operating the server, and is generally more vulnerable to hackers, interception, or the like.

[0025] One technical solution provided by the disclosure relates to causing push notifications sent by applications servers to be presented to users at optimized timing, such that the user may be more likely to engage with the application and relate to the notification, have higher engagement w. The solution comprises a notification timing handler (hereinafter "handler"), which may be installed on the user device, and addressed by user applications upon receiving notifications to be presented to the user. The handler may receive a notification from an application, or from a notification pushing server, calculate an appropriate time or time range for the notification to be presented, and provide an indication to the application when to present the notification. Additionally, or alternatively, the handler may notify the application of the timeGA Ref: 329-36.2 or time range. The application can then present the notification at said time, to increase the user engagement with the application, thereby encouraging the user to consume the services, make purchases, or the like.

[0026] In some embodiments, the time may be determined according to a policy learnt over historic behavior patterns of the user, in particular with the application.

[0027] The best time may be, for example, when the user is engaged with the device, such that the notification will cover a part of the user's screen and the user cannot ignore it. However, at said time, the user may already be engaged with another usage or application, and may not be free to engage with the application associated with the notification.

[0028] Therefore, in some embodiments, if the user is already engaged with the device, it may be assumed that the user is busy with another application or task, and the handler may postpone the notification time until the user disengages from the device and then re-engages with the device.

[0029] The proposed time may also be subject to additional limitations. For example, the time or time range may be postponed to later than the third time, in case prior to the third time the user has not been engaged with the user device for at least a predetermined period of time, for example 2 hours, 6 hours or more, as the user may be assumed to be occupied with urgent tasks. In another example, if the user engaged with the device for using one of a predetermined collection of applications, such as a phone call, the notification may be postponed after the third time as well. In yet another example, determining the time or the time range may be configured to exclude a predetermined time of day range. For example between midnight and 6AM, such that even if the user checked the device during the night hours, the user is unlikely to refer to a notification. [[[More examples?]]]

[0030] Thus, in accordance with the disclosure, although the server or another computer may keep sending (i.e., pushing) notifications in the traditional manner, the timing of the presentation of the notification received on the user device may depend on the user or user device.

[0031] Another technical solution of the disclosure relates to optimizing the time in accordance with user specific data, while maintaining the user's privacy. The data may be stored by the application and transmitted to the handler together with the notification to be presented. Additionally or alternatively, the data per one or more applications may be stored by the handler and used when calculating the presentation time.GA Ref: 329-36.2

[0032] Either way, the user-specific data may be maintained on the device, rather than on a remote computing platform, thus maintaining the user's privacy and making the user's data much less vulnerable to hacking.

[0033] One technical effect of the disclosure relates to selecting a time that may be convenient for the user for presenting a notification, and causing presentation of the notification at the time, thereby increasing the probability that the user will access the application and refer to the notification, and improving the user's usage and engagement with the application.

[0034] Another technical effect of the disclosure relates to causing the presentation of a notification received when or before the user is engaged with the device. In such circumstances, the user may be assumed to be busy with other tasks, therefore presenting the notification may be delayed until the user disengages and then re-engages with the device, such that the notification is presented immediately when the user engages with the device, before the user engages with other applications.

[0035] Yet another technical effect of the disclosure relates to maintaining the user's data, such as actions, known behaviors and patterns, preferences, or the like, exclusively on the device, thereby improving the protection of user data.

[0036] Referring now to Fig. 1, showing a schematic illustration of an exemplary configuration of traditional notification pushing, in accordance with some exemplary embodiments of the disclosure.

[0037] An Application, executed by an Application Server 100, upon determining that it needs to send a notification to one or more users, may transmit the notification through a Medium 104 such as Internet to a Notification Pushing Server 108, to distribute the notification to one or more User Devices 112. For example, Notification Pushing Server 108 may be implemented by FireBase™ (also known as FCM). In some embodiments, Notification Pushing Server 108 may be implemented as a server providing services to a plurality of server applications. In further embodiments, Notification Pushing Server 108 may be implemented as part of Application Server 100 rather than as an independent service.

[0038] In some embodiments, the notification as sent by Application Server 100 may be accompanied with identifiers of the users to whom the notification is to be sent. Alternatively, Notification Pushing Server 108 may maintain a list of all users and may send the notification to all users of the application, and the user application installed on each device may determineGA Ref: 329-36.2 whether to present the notification or not, based for example on demographic details of the user, a service suggested by the notification, or the like.

[0039] User device 112, and in particular User Application 116 which is associated with the application executed by Application Server 100 may be addressed by Notification Pushing Device 108 for presenting a notification. For example, User Application 16 may comprise a System Development Kit (SDK) called by Notification Pushing Server 108. User Application 116 may present the notification over Display 120. In some embodiments, Display 120 may include an audio player for playing an audio signal which may be a part of the notification.

[0040] Referring now to Fig. 2, showing the entities and actions taken by the entities in the traditional embodiments.

[0041] Notification Pushing Server 108, upon receiving a notification from Application Server, 100 sends 224 the notification to each User Application 116, which in turn issues a display instruction 228 to Display 120 to display the notification. Traditionally, there are no pauses or suspensions, such that the notifications are presented substantially in real time or near real time after being sent, meaning that the time is determined by Application Server 100 based on data available on the sender side. Accordingly, the notification presentation timing is unlikely to be optimized with respect to a state of User Device 112 and the client device’s use by the user, as especially in real time, such information is usually not available to the sender.

[0042] Referring now to Fig. 3, showing a schematic block diagram of a solution for presenting a notification, in accordance with some exemplary embodiments of the disclosure.

[0043] As in Fig. 1 above, Application Server 100 may send notification to Notification Pushing Server 108 through a Medium 104 such as the Internet.

[0044] Notification Pushing Server 108 may then forward the notification to one or more User Devices 112, each executing Application 116 corresponding to the application executed by Application Server 100, which initiated the notification.

[0045] Application 116 may then transmit the notification or an indication thereof to a Notification Timing Handler 304, for determining a time when Application 116 may present the notification to the user over Display 120.

[0046] Notification Timing Handler 304 may be implemented as an SDK installed on User Device 112 and accessed by a plurality of Applications 116 that require this service ofGA Ref: 329-36.2 determining a time for presenting a notification received from a corresponding Server Application.

[0047] Referring now also to Fig. 4, showing the entities and actions taken by the entities, in accordance with some exemplary embodiments of the disclosure.

[0048] As in Fig, 2 above, Notification Pushing Server 108, upon receiving a notification sent 224 from the server application, sends the notification to a plurality of Applications 116 executed by a plurality of User Devices 112.

[0049] Application 116 may then send 408 the notification to a Notification Timing Handler 304. Only upon receiving 412 an indication from Notification Timing Handler 304 indicating when to present the notification, Application 116 may present the notification to the user (228).

[0050] Referring now to Fig. 5, showing a flowchart of steps in a method for presenting a notification, in accordance with some exemplary embodiments of the disclosure.

[0051] The method may be performed by Notification Timing Handler 304, installed on a User Device 112.

[0052] Notification timing handler 304 may be accessed by a plurality of user applications installed on the device.

[0053] At step 504, an indication of a notification received by an application installed on the device from a corresponding server application, may be received from the application.

[0054] The indication may or may not be associated with user data, such as user preferences, user behavior or patterns as related to handling previous notifications, e.g., at what context or time did the user relate to notifications, or the like.

[0055] At step 508, Notification Timing Handler 304 may cause the push notification to be presented to the user of the user device, wherein the presentation is at a time later than a receipt time of the push notification at the user device.

[0056] Step 508 may comprise step 512 at which it is determined that the user is engaged with the device at a first time, , i.e., at the first time the user has already turned on the device, unlocked the screen, or the like. The user may be assumed to be busy with one or more applications executed by the device at the first time, therefore Notification Timing Handler 304 will not send an indication back to the application to present the notification.GA Ref: 329-36.2

[0057] It is appreciated that the first time may be the time at which the notification timing handler received the indication from the application, or later.

[0058] Step 508 may further comprise step 516 at which it is determined that at a second time, later than the first time, the user has stopped engagement with the device.

[0059] Step 508 may further comprise step 520, at which subject to determining that the user has re-engaged with the device at a third time later than the second time, Notification Timing Handler 304 may determine a time or time range for the application to present the notification. For example, Notification Timing Handler 304 may determine that the engagement time or shortly after is best for grabbing the user's attention, since the user has engaged with the device but has not started using a specific application yet.

[0060] User engagement and disengagement with the device may be determined in a plurality of ways.

[0061] In some exemplary embodiments, the detection may be based on receiving (for example upon subscribing to) operating system events that indicate the opening or unlocking of the screen.

[0062] In some exemplary embodiments, the handler may periodically attempt to determine the time elapsed since the last “unlock” event or “screen on” event occurred.

[0063] User interaction data, such as clicks may be fed by Application 116 to Notification Timing Handler 304. Additionally, or alternatively, Notification Timing Handler 304 may obtain some or all of the data directly from the OS, such as using Application Programming Interface (API) of the OS. The data may be used by Notification Timing Handler 304 to improve the prediction of the time when the notification should be presented.

[0064] Additionally or alternatively, the time at which the user engaged or disengaged may be identified using a log of the operating system.

[0065] In some exemplary embodiments, the time at which the user engaged or disengaged may be determined using current or historical accelerometer data of the device to detect changes in movement patterns that are likely to indicate the start of a user interaction session. In some cases, a trained model that detects the typical movement when the event occurs may be utilized to estimate the time in which the event previously occurred.GA Ref: 329-36.2

[0066] Additionally or alternatively, whether the user engaged or disengaged with the device, or the time at which the user engaged or disengaged, may be based on CPU temperature. In some embodiments, the time may be based on the detection of a pattern of change in the temperature of the user device or a processor thereof. For example, when the screen turns the device on, the temperature of the CPU may increase or reach a certain range. In some cases, the determination may also take into account environmental data, such as environment temperature.

[0067] As indicated above, the interaction data remains on the device and is neither sent over a communication device, neither stored on another device.

[0068] In some embodiments, one or more notifications may be time sensitive and be marked accordingly. Such notifications may be subject to a different policy, for example presenting them as soon as the user activates the device. In some embodiments, Application 116 may avoid calling Notification Timing Handler 304 and present the notification as soon as possible. In some embodiments, Application 116 may call Notification Timing Handler 304, which may prioritize the notification by placing it at the top of the queue of notifications to be handled. In this case, Notification Timing Handler 304 may still optimize the presentation timing, but ensure that time-sensitive notifications are given priority over other notifications.

[0069] The choice between the options may depend on the level of urgency and the specific requirements of Application 116. In some cases, the application developer may define criteria for determining which notifications are considered time-sensitive and how they should be handled. By implementing these options, the system may balance the need for optimized notification presentation with the requirement to deliver urgent information promptly. This approach may allow for flexibility in handling different types of notifications while still maintaining the benefits of the optimized push notification presentation system.

[0070] In some embodiments, the system may handle scenarios where the timing of notification presentation is affected by factor such as device state and system initialization. For instance, a notification may be presented but the device was turned off a short time afterwards, for example a time shorter than a threshold afterwards, such that the user was unable to see the notification. In such scenarios, the system may wait for the next opportunity to present the notification. This approach allows the system to handle various scenarios where immediate presentation is impossible or suboptimal, while still ensuring that important notifications are delivered to the user at appropriate times. By doing so, the system may improve the likelihoodGA Ref: 329-36.2 of user engagement with the notifications while avoiding potential disruptions or missed notification due to timing issues.

[0071] At step 524, Notification Timing Handler 304 may instruct the application to present the notification at the time or time range.

[0072] The instruction may be immediate, i.e., instructing the application to present the notification immediately.

[0073] In further embodiments, the indication may comprise the presentation time range, comprising a start time, an end time, or both. The time range may be, for example, 10 seconds, 20 seconds, 30 seconds, 1 minute, 90 seconds, 5 minutes, or the like. In some exemplary embodiments, the start time may be immediate, while in other embodiments it may be defined relatively to the start of the re-engagement, for example a predefined number of seconds after the interaction starts. For example, the start time may be defined as two minutes after the detected beginning of the interaction session, whereas the end time is defined as ten minutes after the beginning of the session.

[0074] Optionally, the determined presentation time may be further based on the state of the screen. Thus, in one example, the start time and the end time are conditioned upon the screen being still turned on and unblocked. Thus, in one example, the time range is determined to be open (i.e., have a start time) only if the screen is not locked or turned off. In another example, the time range closes automatically when the screen locks or is turned off.

[0075] In some exemplary embodiments, the start time and / or the end time relative to the reengagement start may be predefined, for example by a system administrator, by the user, by a computer programmer of the exemplary system, etc.

[0076] In some exemplary embodiments, the start and / or end of the time window may further depend on other user interactions with the client device, for example by closing the time range when the user opens a specific application or mutes the device.

[0077] Optionally, if more than one notification awaits presentation during the time range, whether from one application or from multiple applications, the notifications may be stored on the client device and presented 330 in a first-in-first-out (FIFO) order.

[0078] At step 528, the application may present the notification in accordance with the time or time range, thereby increasing the probability of better user engagement with the application.GA Ref: 329-36.2

[0079] Referring now to Fig. 6, showing a schematic block diagram of the elements of a user device which are relevant for displaying notifications, in accordance with some exemplary embodiments of the disclosure.

[0080] User Device 112 may be a computing device, such as a mobile phone, a tablet computer, a laptop computer, a desktop computer, or the like.

[0081] User Device 112 may comprise a Processor 604. Processor 604 may be a Central Processing Unit (CPU), a microprocessor, an electronic circuit, an Integrated Circuit (IC) or the like. Processor 604 may be utilized to perform computations required by User Device 112 or any of its subcomponents. Processor 604 may be implemented as one or more central processing units (CPUs), a microprocessor, an electronic circuit, an Integrated Circuit (IC) or the like. Processor 604 may be configured to provide the required functionality, for example by loading to memory and activating the modules stored on Storage Device 616 detailed below or perform steps of the method of Fig. 5 above.

[0082] In some exemplary embodiments of the disclosed subject matter, User Device 112 may comprise an Input / Output (VO) Device 608 such as a display, a pointing device, a keyboard, a touch screen, a speaker, a microphone, or the like. I / O Device 608 may be utilized to provide output to and receive input from a user, for example present a notification to the user, or enable the user to interact with the notification.

[0083] In some exemplary embodiments of the disclosed subject matter, User Device 112 may comprise a Communication Device 612 such as a network adaptor, enabling User Device 112 to communicate with other platforms such as Notification Pushing Sever 108.

[0084] In some exemplary embodiments, User Device 112 may comprise a Storage Device 616. Storage Device 616 may be a hard disk drive, a Flash disk, a Random Access Memory (RAM), a memory chip, or the like. In some exemplary embodiments, Storage Device 616 may retain program code operative to cause Processor 604 to perform acts associated with any of the subcomponents of the apparatus. The components detailed below may be implemented as one or more sets of interrelated computer instructions, executed for example by Processor 604 or by another processor. The components may be arranged as one or more executable files, dynamic libraries, static libraries, methods, functions, services, or the like, programmed in any programming language and under any computing environment.GA Ref: 329-36.2

[0085] Storage Device 616 may comprise one or more Applications 116. Each Application 116 may be a banking or investment application, a gaming application, a news application, a social network application, or any other application that may attempt to present notifications to a user for enhancing the user's engagement with the application.

[0086] Storage Device 616 may comprise User Data Storage 624, storing data related to the user's preferences, behavior and patterns, such as past interactions with notifications, activity hours, or the like. User Data Storage 624 may be specific to an application, or comprise information applicable to a plurality of applications.

[0087] Storage Device 616 may comprise Notification Timing Handler 304, for determining a time for Application 116 to display a notification.

[0088] Notification Timing Handler 304 may be implemented as an SDK, addressed by each of Applications 116, and returning timing indications to Applications 116.

[0089] Notification Timing Handler 304 may comprise Application Communication Module 632 for receiving a notification for which it is required to determine a presentation time from Application 116.

[0090] In some embodiments, the notification may include the notification details, such as content, as received from Notification Pushing Server 108. In other embodiments, only the mere existence of a notification may be received, without further details or content.

[0091] In some embodiments, the notification may be accompanied by details of the user and / or the user's behavior, in particular regarding notifications, e.g., what percentage of all notifications are handled by the user and what percentage is simply discarded, when the user is more likely to handle a notification, or the like.

[0092] Application Communication Module 632 may also be adapted to send the suggested time or time range back to Application 116.

[0093] It is appreciated that Application Communication Module 632 may enable communication between Notification Timing Handler 304 and a plurality of applications, each receiving its specific notifications from a corresponding server and operating under different policies for the users.

[0094] Notification Timing Handler 304 may comprise Engagement Status Determination Module 636, for determining whether a user is engaged with the device or not, or when the userGA Ref: 329-36.2 has last engaged with or disengaged from the device. The determination may be based upon system events, a log file of the operating system, accelerometer data, CPU temperature or other measurements, which may also take into account environmental parameter, such as environmental temperature, or the like.

[0095] Notification Timing Handler 304 may comprise User and Device Data Obtaining Module 640 for obtaining data related to the user or device, such as usage history, notification handling history and patterns, hours at which the device is used or not used, applications with which the user is spending more time than others, or the like.

[0096] Notification Timing Handler 304 may comprise Presentation Time Calculation Module 644, for determining the best time to present the notification to the user, based on the recent engagement history of the user, the user data and patterns, or the like. Once the time or time range is determined, Notification Timing Handler 304 may send an indication to Application 116 to present the notification.

[0097] In some embodiments, Presentation Time Calculation Module 644 may comprise or be in effective communication with a learning module or system that may learn the user behavior patterns, and determine policies or guidelines for determining the best time for presenting a notification to the user. The learning nodule may be located on user device 112, for avoiding the transfer of user data from the device, thereby endangering the user's privacy.

[0098] According to exemplary embodiments presented hereinbelow, an exemplary module implemented on the user device is installed in addition to one or more application(s) installed on the user device, so as to control the timing of presentation of a notification received by the application. A system and method in accordance with the disclosure thus improve the likelihood of user engagement with the notifications while avoiding potential disruptions or missed notifications due to timing issues, and while preserving the user's privacy and protecting from undesired exposure.

[0099] The present disclosed subject matter may be a system, a method, and / or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present disclosed subject matter.

[0100] The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storageGA Ref: 329-36.2 medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.

[0101] Computer readable program instructions described herein can be downloaded to respective computing / processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and / or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and / or edge servers. A network adapter card or network interface in each computing / processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing / processing device.

[0102] Computer readable program instructions for carrying out operations of the present disclosed subject matter may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remoteGA Ref: 329-36.2 computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present disclosed subject matter.

[0103] Aspects of the present disclosed subject matter are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the disclosed subject matter. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer readable program instructions.

[0104] These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / acts specified in the flowchart and / or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and / or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function / act specified in the flowchart and / or block diagram block or blocks.

[0105] The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions / acts specified in the flowchart and / or block diagram block or blocks.GA Ref: 329-36.2

[0106] The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosed subject matter. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and / or flowchart illustration, and combinations of blocks in the block diagrams and / or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.

[0107] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the disclosed subject matter. As used herein, the singular forms "a", "an" and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms "comprises" and / or "comprising," when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.

[0108] The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present disclosed subject matter has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the disclosed subject matter in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the disclosed subj ect matter. The embodiment was chosen and described in order to best explain the principles of the disclosed subject matter and the practical application, and to enable others of ordinary skill in the art to understand the disclosed subject matter for various embodiments with various modifications as are suited to the particular use contemplated.GA Ref: 329-36.221DELETED

Claims

GA Ref: 329-36.2CLAIMSWhat is claimed is:

1. A method for displaying push notifications in a user device, wherein the user device having installed thereon a notification timing handler and an application, said method comprising: receiving by the notification timing handler an indication sent from the application about a push notification to be displayed by the application, the push notification is transmitted from a server to the application; the notification timing handler causing the push notification to be presented to a user of the user device at a time later than a receipt time of the push notification at the user device, said causing comprises: determining that the user is engaged with the device at a first time; determining that the user has stopped engagement with the device at a second time, the second time is later than the first time; subject to determining that the user is re-engaged with the device at a third time, determining a time or time range for the application to present the push notification to the user, the third time is later than the second time, the time or time range is later than the third time; and instructing the application to present the push notification at the time or time range.

2. The method of Claim 1, wherein the first time is a time at which the notification timing handler received the indication from the application.

3. The method of Claim 1, wherein the time range starts immediately or non- immediately after the user has re-engaged with the device, subject to the user still being engaged with the device.

4. The method of Claim 1, wherein the time or time range is after a predetermined time has elapsed since the third time.

5. The method of Claim 1, wherein the indication is associated with accompanying data; and wherein said determining the time or time range is based at least on the accompanying data.GA Ref: 329-36.

26. The method of Claim 5, wherein the accompanying data depends on user preferences.

7. The method of Claim 1, wherein said determining the time or the time range is configured to exclude from the time or time range a predetermined time of day range.

8. The method of Claim 1, wherein said determining the time or the time range is configured to postpone the time or time range later than the third time in case prior to the third time, the user has not been engaged with the user device for at least a predetermined period of time.

9. The method of Claim 1, wherein said causing is configured to avoid presenting the push notification when the user is engaged with the user device and is using one of a predetermined collection of applications.

10. The method of Claim 1, wherein said determining the time or the time range is based on learned behavior of the user of the user device, wherein the learned user behavior is stored exclusively at the user device and is inaccessible by the server.

11. The method of Claim 1, wherein the notification timing handler is implemented as a Software Development Kit (SDK).

12. The method of Claim 1, wherein subject to the user being re-engaged with the device, a first indication associated with a first push notification is sent before a second indication associated with a second push notification, subject to the first notification having been received before the second push notification.

13. The method of Claim 1 , wherein said determining that the user is engaged or reengaged with the device is based at least on readings from an accelerometer embedded within the user device.

14. The method of Claim 1, wherein said determining that the user is engaged or reengaged with the device is based at least on processor utilization data of a processor of the user device.

15. A computerized apparatus for displaying push notifications in a user device having a processor, wherein the user device having installed thereon aGA Ref: 329-36.2 notification timing handler and an application, the processor being adapted to perform the steps of: receiving by the notification timing handler an indication sent from the application about a push notification to be displayed by the application, the push notification is transmitted from a server to the application; the notification timing handler causing the push notification to be presented to a user of the user device at a time later than a receipt time of the push notification at the user device, said causing comprises: determining that the user is engaged with the device at a first time; determining that the user has stopped engagement with the device at a second time, the second time is later than the first time; subject to determining that the user is re-engaged with the device at a third time, determining a time or time range for the application to present the push notification to the user, the third time is later than the second time, the time or time range is later than the third time; and instructing the application to present the push notification at the time or time range.

16. The apparatus of Claim 15, wherein the first time is a time at which the notification timing handler received the indication from the application.

17. The apparatus of Claim 15, wherein said determining the time or the time range is configured to: exclude from the time or time range a predetermined time of day range; postpone the time or time range later than the third time in case prior to the third time, the user has not been engaged with the user device for at least a predetermined period of time; or avoid presenting the push notification when the user is engaged with the user device and is using one of a predetermined collection of applications.

18. The apparatus of Claim 15, wherein said determining the time or the time range is based on learned behavior of the user of the user device, wherein the learned user behavior is stored exclusively at the user device and is inaccessible by the server.

19. The apparatus of Claim 15, wherein the notification timing handler isGA Ref: 329-36.2 implemented as a Software Development Kit (SDK).

20. A computer program product comprising a non-transitory computer readable medium retaining program instructions, which instructions when read by a processor, cause the processor to perform: receiving by the notification timing handler an indication sent from the application about a push notification to be displayed by the application, the push notification is transmitted from a server to the application; the notification timing handler causing the push notification to be presented to a user of the user device at a time later than a receipt time of the push notification at the user device, said causing comprises: determining that the user is engaged with the device at a first time; determining that the user has stopped engagement with the device at a second time, the second time is later than the first time; subject to determining that the user is re-engaged with the device at a third time, determining a time or time range for the application to present the push notification to the user, the third time is later than the second time, the time or time range is later than the third time; and instructing the application to present the push notification at the time or time range.

Citation Information

Patent Citations

  • Managing Notifications Pushed to User Devices

    US20140330933A1

  • Post-delivery dynamic control of notifications in a push notification life-cycle

    US20210067598A1

  • Filtering notifications and messages

    US20240031320A1

  • Behavior and attention targeted notification system and method of operation thereof

    WO2011067675A2