Brevet FR3001854A1 — publié le 20140808

Procédé d'optimisation temporelle d'envoi de notifications La présente invention concerne le domaine des notifications de messages, notamment de type push, en particulier sur terminaux mobiles (smartphones, tablettes, etc.) pour transmettre par exemple des messages promotionnels, d'actualités, ou autres, en temps réel sur de tels terminaux mobiles. Actuellement, plusieurs solutions (par exemple UrbanAirshipe) proposent des services d'envoi de notifications vers des mobiles, et en particulier des envois de type «à la demande» : la notification est envoyée en lot groupé, à la demande d'un client immédiatement ou éventuellement selon une programmation horaire prédéterminée (envoi d'une notification à une date/heure donnée). Cette solution d'envois «en masse» à date et heure fixe pour tout utilisateur ne permet d'atteindre qu'une partie des utilisateurs qui seraient réellement disponibles au moment de l'envoi. L'efficacité de la notification est donc sous-optimale. La présente invention vient améliorer cette situation. Elle propose à cet effet un procédé d'optimisation d'un instant de notification de message à au moins un terminal d'utilisateur, le procédé comportant, en cas de détection de réaction de l'utilisateur à une notification donnée dans une période de temps prédéterminée : - un stockage d'une information de réaction de l'utilisateur, en correspondance d'un instant associé à ladite notification donnée, et - une commande de notifications ultérieures au moins à cet utilisateur, à des instants de périodes suivantes, ces instants étant fonctions de l'instant associé à ladite notification donnée. Ainsi, l'invention prévoit d'adapter l'instant des notifications en fonction par exemple des instants successifs de réaction d'un utilisateur ou des instants moyens de réaction de plusieurs utilisateurs présenté ultérieurement dans un mode de réalisation particulier. Le message peut être notifié par exemple en mode push. Préférentiellement, en cas de non-détection de réaction de l'utilisateur à une notification, on décale un instant prévu pour les notifications ultérieures précitées. En cas de non-détection de réaction, on peut alors mettre à jour la commande de notifications ultérieures à un instant incrémenté d'une durée choisie, inférieure à la période prédéterminée précitée et incrémenter l'instant de notification de cette durée choisie tant qu'aucune réaction de l'utilisateur aux notifications n'a été détectée. En cas de dépassement des incréments de durées choisies au-delà de la période prédéterminée, et sans réaction détectée de l'utilisateur, on génère une information d'absence de réaction de l'utilisateur dans la période prédéterminée. On peut en déduire par exemple une information de non-sollicitation de cet utilisateur. Dans un mode de réalisation, en complément ou en variante, la notification précitée est effectuée vers un ensemble d'utilisateurs, et le procédé comporte : - un stockage d'informations de réactions d'utilisateurs, en correspondance d'une succession d'instants de notification dans ladite période prédéterminée, pour déterminer une variation d'un nombre de réactions sur ladite période, et - une détermination d'au moins un instant identifié de ladite période correspondant à un nombre maximum de réactions d'utilisateurs dans ladite période. Dans cette réalisation, on peut prévoir un choix de l'instant identifié précité pour des notifications ultérieures à une partie au moins des utilisateurs (par exemple ceux dont l'instant de réaction est très proche d'un instant de réaction moyen, par exemple dans un écart-type statistique donné). La réaction de l'utilisateur à la notification, quant à elle, peut être détectée par réception d'une information de lancement d'une application correspondant à cette notification. Par exemple, l'accès à un site distant prédéterminé peut confirmer une réaction de l'utilisateur à la notification. En complément ou en variante, la réaction de l'utilisateur à la notification peut être détectée par des capteurs du terminal. Par exemple, un capteur signalant une prise en main du terminal par l'utilisateur et un capteur signalant consécutivement une activation de l'écran du terminal, peuvent être utilisés pour confirmer une réaction de l'utilisateur à la notification. Dans une forme de réalisation du procédé au sens de l'invention, on peut, de façon générale : - mesurer une durée entre la notification de message et une réaction de l'utilisateur, - comparer la durée mesurée à une durée seuil, et * générer une information de détection de réaction de l'utilisateur à la notification, si la durée mesurée est inférieure à la durée seuil, * générer une information de non-détection de réaction de l'utilisateur à la notification, sinon. La présente invention vise aussi une utilisation d'un procédé d'optimisation pour la notification de messages, comportant une émission de notifications ultérieures à destination d'au moins un terminal et à des instants de périodes successives qui sont fonctions d'un instant associé à une notification ayant suscité une réaction d'un utilisateur du terminal précité. La présente invention vise aussi un programme informatique comportant des instructions pour la mise en oeuvre du procédé ci-avant, lorsqu'elles sont exécutées par un processeur. A ce titre, un organigramme général tel que représenté sur la figure 2 peut représenter l'algorithme général de ce programme informatique. La présente invention vise aussi un dispositif d'optimisation d'un instant de notification de message à au moins un terminal d'utilisateur, comportant : - une entrée pour recevoir une information de détection de réaction de l'utilisateur à une notification donnée dans une période de temps prédéterminée, et - une mémoire pour stocker, en cas de réception d'une information de détection de réaction de l'utilisateur, ladite information en correspondance d'un instant associé à ladite notification donnée, et - des moyens pour générer une commande de notifications ultérieures au moins à cet utilisateur, à des instants de périodes suivantes correspondant à l'instant associé à ladite notification donnée. La présente invention vise aussi un serveur de notification de message à au moins un terminal d'utilisateur, comportant alors un tel dispositif au sens de l'invention. La présente invention vise aussi un terminal du type précité dès lors qu'il comporte des moyens de détection de réaction d'un utilisateur à une notification de message et une sortie pour émettre une information de détection de réaction à cette notification, à destination d'un dispositif d'optimisation d'un instant de notification de message. Ainsi, l'invention permet une notification de messages par exemple en mode push, à un ensemble d'utilisateurs comportant par exemple les étapes : a) Mettre en oeuvre des moyens de détection d'une réaction éventuelle de chaque utilisateur à la notification, par exemple directement sur le terminal de l'utilisateur comme on le verra dans un exemple de réalisation plus loin, b) Sur détection d'une réaction de l'utilisateur à la notification, stocker une information de réaction en correspondance d'un instant de notification dans une mémoire de serveur par exemple, et envoyer les futures notifications au moins à cet utilisateur et à ce même instant, quotidiennement, de façon hebdomadaire, mensuelle ou autres, c) En cas de non-détection de réaction, décaler l'instant d'une future notification et mettre en oeuvre les étapes b) et c) sur la base de cet instant décalé dans le temps. Ainsi, par décalages successifs dans la journée ou la semaine de l'instant de notification jusqu'à susciter une réaction auprès de l'utilisateur ou d'un groupe donné d'utilisateurs, la présente invention permet d'identifier, par détection de la réaction des utilisateurs, les instants les plus opportuns pour émettre les notifications, correspondant aux moments de disponibilité de cet utilisateur ou de ce groupe d'utilisateurs. Aussi, il peut être envisagé deux options de mise en oeuvre : - envoyer une notification à un utilisateur individuel, au moment où il sera le plus susceptible d'être disponible pour être intéressé par le contenu de la notification ; - ou permettre à un éditeur de messages de choisir un instant d'envoi de sa notification à une heure spécifique, dans une plage horaire de la journée (ou de la semaine) la plus adéquate pour intéresser un maximum d'utilisateurs. D'autres avantages et caractéristiques de l'invention apparaîtront à la lecture de la description détaillée d'exemples de réalisation présentés en référence aux dessins annexés, sur lesquels : - la figure 1 illustre schématiquement un système pour une mise en oeuvre possible de la présente invention, et - la figure 2 illustre les étapes principales d'un procédé selon un exemple de réalisation de la présente invention. - la figure 3 illustre schématiquement un exemple de réalisation d'un serveur d'optimisation pour la mise en oeuvre de l'invention, - la figure 4 illustre schématiquement un exemple de réalisation d'un terminal pour la mise en oeuvre de l'invention, On se réfère à la figure 1 sur laquelle on a représenté un serveur de messagerie SM capable de notifier un message à au moins un terminal d'utilisateur TER. Au sens de l'invention, on prévoit en outre un dispositif d'optimisation de l'instant de notification des futurs messages, par exemple ici sous la forme d'un serveur d'optimisation SO qui, dans un exemple de réalisation possible, peut être intégré directement au serveur de messagerie SM. En référence à la figure 2, une collecte et une analyse de données est mise en oeuvre afin de définir les habitudes d'un utilisateur ou d'un groupe d'utilisateurs, et proposer alors un moment de notification en mode push, le plus adapté. L'étape Si de collecte des données consiste à récupérer et stocker tous les moments auxquels la réaction de l'utilisateur est détectée. Cette information de présence peut être obtenue suite à au moins l'une des situations suivantes : a) L'utilisateur à ouvert une application correspondante suite à la notification, à un instant donné (le lancement de l'application impliquant par exemple le contact avec un numéro d'appel ou une connexion avec identification sur un site web), b) L'utilisateur à ouvert l'application correspondante sans en être notifié, à un instant donné, c) L'utilisateur met en service son terminal et le tient dans une position particulière (avec une position de «lecture» détectée par les accéléromètres et gyroscopes de smartphones, tablettes, ou autres). Concernant la détermination de l'instant déterminé dans la situation a) ci-dessus, suite à une notification, il est prévu une durée seuil de N minutes telle que, si l'utilisateur ouvre l'application via la notification push dans les N minutes qui suivent l'envoi effectif de la notification, on considère que l'utilisateur a ouvert l'application simplement au moment de l'envoi de la notification. En revanche, si l'utilisateur ouvre l'application via la notification plus de N minutes après son envoi, on estime que le moment d'envoi n'est pas optimum et nécessite alors un ajustement comme décrit plus loin. Dans la situation c) ci-dessus, il peut être fait usage de différents capteurs et différents états du terminal dès lors que celui-ci gère un fonctionnement en mode multitâche et autorise l'application à accéder aux capteurs et aux états précités en tâche de fond (ou "background", comme tel est le cas par exemple dans les terminaux à système d'exploitation Androide). Dans ce cas, un utilisateur est réputé utiliser son terminal: - si ce dernier n'est pas en mode veille (écran allumé et éventuellement déverrouillé) ; - si le terminal est tenu dans une position de lecture (utilisation à cet effet d'un capteur de type gyroscope, d'un accéléromètre, et/ou d'un capteur d'orientation) ; - si le terminal est à une distance du lecteur suffisante pour justifier une position de lecture d'écran par l'utilisateur (capteur de proximité indiquant qu'il n'est pas tenu à l'oreille, par exemple) ; - et/ou optionnellement, si l'utilisateur se trouve dans une zone permettant une réception de notification (par un test de la disponibilité du réseau, par exemple). Ensuite, l'étape S2 de traitement de données de la figure 2 consiste à prendre la donnée brute, l'organiser et la mettre en forme pour l'étape suivante S3, de calcul de la disponibilité de l'utilisateur sur des périodes données. Cette étape de calcul S3 vise à définir: - la ou les tranches horaires de disponibilité pour un utilisateur, sur une période donnée (24 heures ou 7 jours), - et/ou le volume d'utilisateurs disponibles sur une période donnée. L'étape suivante S4 d'envoi des notifications groupées sur une ou N périodes consiste à exécuter l'envoi réel des notifications groupées (en 1 ou N lots) en fonction du taux de disponibilité d'utilisateurs calculé. Par exemple, il peut être prévu d'envoyer une notification à midi à tous les utilisateurs, sachant que le taux de disponibilité des utilisateurs calculé est de 78%. Le procédé peut se poursuivre avantageusement par une étape S5 d'envoi de notifications personnalisées, à des périodes calculées plus finement, de disponibilité d'un utilisateur donné, et ce grâce aux retours sur les réactions détectées de cet utilisateur donné. On envoie ainsi, à chaque utilisateur, une notification au moment où il est le plus susceptible d'en tenir compte, dans une tranche horaire optimisée. Cette optimisation est effectuée grâce aux traitements des retours (« feedbacks ») réalisés à la dernière étape S6 de la figure 2 : une fois les notifications envoyées (de manière groupée ou personnalisée), on récupère notamment les données d'instant de chaque lancement d'application faisant suite à la notification, pour la renvoyer dans une base de données de collecte afin d'affiner les prévisions pour la future notification. On décrit maintenant l'évolution temporelle du procédé divulgué précédemment. On considère ci-après une période T pour laquelle on cherche un instant de notification optimal, ainsi que des entiers naturels n et k. La suite (ta) nEN à valeurs dans [0; T] et représentant l'évolution temporelle du procédé de détection d'un instant optimal peut alors être définie comme suit : tn = n.-T avec to = 0 En effet, lors de l'initialisation du procédé, la valeur de l'indice temporel t est nul (par exemple, dans le référentiel d'une journée, le procédé commence à minuit). Ensuite, un premier test utilisateur est effectué (étape Si sur la figure 2). Puis, par exemple à l'étape S6 telle qu'exposée à la figure 2, une temporisation (incrémentation temporelle) est effectuée avant un nouveau test utilisateur (détection de réaction). On peut donc caractériser l'évolution temporelle des étapes du procédé comme suit : INITIALISATION : t = 0 TESTO. t=0 INCREMENTATION1. t1 = 0 + TEST1 t1 = 0 + INCREMENTATION2 . t2 = 0 + + = 2. TEST 2 t2 = 2. INCREMENTATIONs : t = n. TESTS. = n.30 Ainsi, le pas de variation caractérisant la finesse souhaitée pour la détermination d'un instant optimal est égal à -T . La réactivité de l'utilisateur est donc échantillonnée sur [0; 7]. On définit donc une fonction de réactivité par exemple comme suit : dans le cas d'un utilisateur unique, f /single user [o ; Ti -> ; 111 dans le cas d'une pluralité d'utilisateurs, 1:multiple users [o ; Ti [o ;1001 En effet, dans le cas d'un utilisateur unique, il n'existe que deux solutions possibles à un test de réactivité (réaction et absence de réaction) et dans le cas d'une pluralité d'utilisateurs, la réponse 10 peut être ramenée à un pourcentage ( f multiple users(tn) = Nanswer ) par exemple. L'envoi des Ntotal notifications aura par exemple lieu au niveau du maximum de ces fonctions. Ce maximum étant par exemple calculé à l'étape S3 (figure 2). Dans un mode de réalisation, un seuil d'attente As est pris en compte entre l'instant de 15 notification et l'instant de réaction d'un utilisateur. Or comme expliqué ci-avant, un échantillonnage est effectué tous les Atn= tn+1 tn = -k, le seuil peut donc être compris dans un intervalle inférieur à -T. Ainsi, pour éviter des phénomènes de repliements, on peut choisir As 2k comme suit : As E [- : -T1. 2k 2k 20 La figure 3 présente schématiquement un exemple de structure du serveur d'optimisation SO, comportant : - une première interface d'entrée 10 pour recevoir des données relative à la réactivité d'un ou plusieurs utilisateurs de terminaux TERM, 25 - une deuxième interface d'entrée 11 pour recevoir des instructions de configuration du procédé d'optimisation (par exemple relative au pas k ou au seuil As décrits précédemment) dans un mode de réalisation (en pointillé sur la figure 3), - un processeur 12 et une mémoire de travail 13 pour traiter ces données, - une interface d'échange 15 pour recevoir des données de la base de données 16 30 contenant les instructions (codes sources par exemple) du procédé d'optimisation, - et une interface de sortie 14 pour délivrer les données requise par le serveur de messagerie SM pour l'envoi de notification par ce serveur. La figure 4 présente schématiquement un exemple de structure d'un terminal TERM utilisé pour la mise en oeuvre d'un mode de réalisation de l'invention, comportant : - des capteurs Cl et C2 utilisés pour détecter une réaction de l'utilisateur pouvant par exemple détecter des entrées utilisateurs (utilisateur appuie sur un bouton du terminal, utilise son écran tactile) ou encore un mouvement du téléphone (via un capteur de géolocalisation ou gyroscopique par exemple), - un processeur 12 et une mémoire de travail 13 pour traiter ces données. Bien entendu, la présente invention ne se limite pas à la forme de réalisation décrite ci-avant à titre d'exemple ; elle s'étend à d'autres variantes. Ainsi, par exemple, les messages communiqués peuvent être du type issus d'une messagerie en mode push (ou « push emails »), ou encore de type SMS, ou courriels.15 REVENDICATIONS1. Procédé d'optimisation d'un instant de notification de message à au moins un terminal d'utilisateur, comportant, en cas de détection de réaction de l'utilisateur à une notification donnée dans une période de temps prédéterminée : - un stockage d'une information de réaction de l'utilisateur (S1,S2,S3), en correspondance d'un instant associé à ladite notification donnée, et - une commande de notifications ultérieures (S4,S5) au moins à cet utilisateur, à des instants de périodes suivantes, ces instants étant fonctions de l'instant associé à ladite notification donnée. 2. Procédé selon la revendication 1, dans lequel le message est notifié en mode push. 3. Procédé selon l'une des revendications 1 et 2, dans lequel, en cas de non-détection de réaction de l'utilisateur à une notification, on décale un instant prévu pour lesdites notifications 15 ultérieures. 4. Procédé selon la revendication 3, dans lequel, en cas de non-détection de réaction, on met à jour la commande de notifications ultérieures (S5) à un instant incrémenté d'une durée choisie, inférieure à ladite période prédéterminée, 20 l'instant de notification étant incrémenté de ladite durée choisie tant qu'aucune réaction de l'utilisateur aux notifications n'a été détectée. 5. Procédé selon la revendication 4, dans lequel, en cas de dépassement des incréments de durées choisies au-delà de la période prédéterminée, sans réaction détectée de l'utilisateur, on génère 25 une information d'absence de réaction de l'utilisateur dans ladite période prédéterminée. 6. Procédé selon l'une des revendications précédentes, dans lequel la notification est effectuée vers un ensemble d'utilisateurs (S4), et le procédé comporte : - un stockage d'informations de réactions d'utilisateurs, en correspondance d'une succession d'instants de notification dans ladite période prédéterminée, pour déterminer une variation d'un nombre de réactions sur ladite période, et - une détermination d'au moins un instant identifié de ladite période correspondant à un nombre maximum de réactions d'utilisateurs dans ladite période. 7. Procédé selon la revendication 6, comportant un choix dudit au moins un instant identifié pour des notifications ultérieures à une partie au moins des utilisateurs. 8. Procédé selon l'une quelconque des revendications précédentes, dans lequel la réaction de l'utilisateur à la notification est détectée par réception d'une information de lancement d'une application correspondant à ladite notification. 9. Procédé selon l'une quelconque des revendications précédentes, dans lequel la réaction de l'utilisateur à la notification est détectée par des capteurs du terminal. 10. Procédé selon l'une quelconque des revendications précédentes, dans lequel : - on mesure une durée entre la notification de message et une réaction de l'utilisateur, - on compare la durée mesurée à une durée seuil, et * on génère une information de détection de réaction de l'utilisateur à la notification, si la durée mesurée est inférieure à la durée seuil, * on génère une information de non-détection de réaction de l'utilisateur à la notification, sinon. 11. Utilisation d'un procédé d'optimisation selon l'une des revendications précédentes, pour la notification de messages, comportant une émission de notifications ultérieures à destination d'au moins un terminal et à des instants de périodes successives qui sont fonctions d'un instant associé à une notification ayant suscité une réaction d'un utilisateur dudit terminal. 12. Programme informatique comportant des instructions pour la mise en oeuvre du procédé selon l'une des revendications 1 à 10, lorsqu'elles sont exécutées par un processeur. 13. Dispositif d'optimisation (SO) d'un instant de notification de message à au moins un terminal d'utilisateur, comportant : - une entrée pour recevoir une information de détection de réaction de l'utilisateur à une notification donnée dans une période de temps prédéterminée, et - une mémoire pour stocker, en cas de réception d'une information de détection de réaction de l'utilisateur, ladite information en correspondance d'un instant associé à ladite notification donnée, et - des moyens pour générer une commande (T(NOTIF)) de notifications ultérieures au moins à cet utilisateur, à des instants de périodes suivantes correspondant à l'instant associé à ladite notification donnée. 14. Serveur (SM) de notification de message à au moins un terminal d'utilisateur, comportant un dispositif selon la revendication 13. 15. Terminal (TER) comportant des moyens de détection de réaction d'un utilisateur à une notification de message et une sortie pour émettre une information de détection de réaction à ladite notification à destination d'un dispositif d'optimisation d'un instant de notification de message.