WO2023079229A1 - Systeme de suivi d´interactions sur une page internet - Google Patents

Systeme de suivi d´interactions sur une page internet Download PDF

Info

Publication number
WO2023079229A1
WO2023079229A1 PCT/FR2022/052028 FR2022052028W WO2023079229A1 WO 2023079229 A1 WO2023079229 A1 WO 2023079229A1 FR 2022052028 W FR2022052028 W FR 2022052028W WO 2023079229 A1 WO2023079229 A1 WO 2023079229A1
Authority
WO
WIPO (PCT)
Prior art keywords
interaction
detected
web page
tracking system
extractor
Prior art date
Application number
PCT/FR2022/052028
Other languages
English (en)
Inventor
Florent Defontis
Original Assignee
Scalefast Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Scalefast Inc. filed Critical Scalefast Inc.
Publication of WO2023079229A1 publication Critical patent/WO2023079229A1/fr

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/986Document structures and storage, e.g. HTML extensions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/875Monitoring of systems including the internet

Definitions

  • the invention relates to the monitoring of Internet browsing, and in particular the monitoring of browsing or activity within a site and within the pages of a site.
  • Website designers have access to a limited amount of data that allows them to quantify the quality of the sites they design. Historically, their main source of information was audience measurement, via page count.
  • the solution should not generate server-side overhead. Indeed, tracking all of a user's interactions with a page is a task that generates a large amount of data that can pose significant problems in terms of network and server load.
  • the invention improves the situation. To this end, it proposes an Internet browsing tracking system comprising a web server arranged to provide at least one web page in which at least some of the elements associated with the browsing tracking are coded in the web page by a CSS code, the page web comprising an interaction detection mechanism to be logged, which mechanism is arranged, when a type of interaction to be logged is detected, to send the CSS code associated with the element concerned with an indicator of the detected interaction to an interaction logging server.
  • the interaction logging server comprises an input memory arranged to receive the CSS codes associated with an element concerned and at least one indicator of the detected interaction, and an extractor arranged to analyze each CSS code associated with an element concerned and the at least one indicator of the detected interaction, cutting them into pieces, encoding some at least of the pieces in the form of a number, and storing the resulting sequence of numbers encoding the pieces in a database.
  • This device is particularly advantageous because it makes it possible to offer a system which does not require modification of the code of the web page, which systematizes the navigation monitoring on all the elements, and which allows real-time analysis of the data without additional cost. Because the database is structured with the data of the code of the web page, which is therefore controlled with the design of the latter.
  • the invention may have one or more of the following characteristics:
  • the logging server comprises a content delivery network server, and in which the input memory is a logging memory of the content delivery network server,
  • the extractor is an extractor-loader
  • the extractor is also arranged to store the series of numbers encoding the pieces composing the CSS code associated with the element concerned with an indicator of the interaction detected in a row of a table of the database, each number being stored in a separate column,
  • the extractor is also arranged to store the pairs associating a piece with a number in a two-column database table
  • the extractor is arranged to look for a piece in the two-column database table to retrieve the corresponding number, and, when the piece is absent, to generate a number and create a new line with the piece and the generated number ,
  • the detection mechanism is implemented by JavaScript code included in the web page, - the detection mechanism sends a content request to the content delivery network server, which content has a weight less than Iko, and in which said request contains as parameters at least the URL of the web page on which the interaction has been detected, the CSS code of the element concerned and an indicator of the detected interaction,
  • the detection mechanism is arranged to detect an interaction in the group comprising the display of a page, the single click, the double click, the long press, the quick touch and the long touch, and
  • the detection mechanism comprises an enrichment function arranged to detect that the type of interaction of a detected interaction is such that two interactions each presenting a chosen type of interaction have been detected on the same web page without changing the page, to calculate a duration from time markers associated with these two interactions, and to return this duration with the CSS code associated with the element concerned with an indicator of the second interaction detected.
  • FIG. 1 shows a generic diagram of an Internet browsing monitoring system according to the invention
  • figure 2 represents an example of a function implemented by the extractor of figure 1.
  • FIG. 1 represents a generic diagram of an Internet navigation tracking system 2 according to the invention.
  • the personalized Internet browsing monitoring system 2 comprises, in the example described here, a web server 4 and a logging server 6.
  • the web server 4 is arranged to supply web content, in particular web pages, to one or more devices 8 who are connected to the Internet.
  • the logging server 6 comprises a memory 10 and an extractor 12.
  • the memory 10 comprises an input memory and a logging database which will be described below.
  • the logging server 6 is a content delivery network server (or CDN server for "Content distribution network server” in English)
  • the extractor 12 is an extractor-loader ("Extract - transform-load" or "ETL" in English).
  • the role of the ETL is to transform the browsing tracking data received by the CDN server to save them in the logging database which is a relational database.
  • this database is stored in the same space as the input memory.
  • the navigation data could be stored in separate spaces.
  • the ETL is part of the CDN server.
  • the ETL could be implemented in another server or computing resource.
  • the memory 10 can be any type of data storage suitable for receiving digital data: hard disk, hard disk with flash memory, flash memory in any form, random access memory, magnetic disk, storage distributed locally or in the cloud, etc.
  • the data calculated by the device can be stored on any type of memory similar to memory 4, or on the latter. This data can be erased after the device has performed its tasks or retained.
  • the extractor 12 directly or indirectly accesses the input memory. It can be realized in the form of appropriate computer code executed on one or more processors.
  • processor it must be understood any processor suitable for the calculations described below.
  • Such a processor can be produced in any known manner, in the form of a microprocessor for a personal computer, a dedicated chip of the FPGA or SoC type, a computing resource on a grid or in the cloud, a cluster of graphics processors (GPUs), a microcontroller, or any other form capable of providing the computing power necessary for the implementation described below.
  • GPUs graphics processors
  • microcontroller or any other form capable of providing the computing power necessary for the implementation described below.
  • One or more of these elements can also be made in the form of specialized electronic circuits such as an ASIC.
  • a combination of processor and electronic circuits can also be envisaged.
  • the operation of navigation tracking is as follows.
  • a device 8 sends a request to the web server 4 to consult a web page Page.html.
  • the elements to be displayed are encoded with CSS code to format it.
  • the Page.html web page contains JavaScript code that implements an interaction detection mechanism to be logged. This mechanism is arranged to detect that a user interacts with an element of the web page and that this interaction must be logged. For example, this interaction can be the display of the page (“Pageview” event), a click on an element (single, long, double click, long press, quick touch, long touch, etc.), a hover an event (“Mouseover” event), etc.
  • the mechanism can be arranged to detect all possible interactions on the web page or only a subset of these, depending on the degree of logging desired.
  • the JavaScript code triggers a silent Int_Dat request to the CDN server.
  • the term silent request is used because this request targets content that has no interest for the device 8, and whose result must remain transparent for the latter.
  • this request targets an image that contains a single pixel (i.e. an image of dimension 1 pixel * 1 pixel) and whose display cannot be seen.
  • the Int Dat request therefore contains the address on the CDN server of this resource, but also all the data of interest for logging. For this, these data are passed as parameters of the request.
  • the resource on the logging server side will weigh less than Iko, which makes it possible to preserve bandwidth, and to offer a resource which, even if it is displayed, will not be perceived by the user.
  • This request when received by the CDN server, is stored in a log which constitutes the input memory. It appears here that the use of a CDN server is particularly interesting. Indeed, it allows you to use the request logging function that all CDN servers have. In addition, these are naturally made to handle very large access loads, which means that System 2 can serve several hundred thousand users simultaneously.
  • the use of a transparent request means that on the one hand, the user is not impacted by the logging of his interactions, and that, on the other hand, the call URL is a vector ideal for transporting data to be logged.
  • the use of the CSS code associated with the logged element is very advantageous because it allows easy identification of the elements by their CSS properties, without requiring any particular processing on the user side viewing the web page, or in the design of the page.
  • the extractor 12 processes it to store the data in the logging database. In the example described here, this is done periodically, for example the extractor 12 accesses the input memory every minute.
  • This desynchronization is interesting because it allows system 2 to support large connection peaks without having to perform scaling or risk a loss of service, while remaining real time in most situations.
  • the Applicant's experiments have shown that with a conventional CDN server, even in the event of peaks at several hundred thousand connections per minute for about ten minutes, the extractor 12 manages to unstack the input memory in 30 minutes.
  • Figure 2 shows an example of the operation of the extractor 12 to process the data in the input memory 10.
  • the extractor 12 retrieves an entry from the input memory 10 by executing a Pop() function which pops the latter and stores the result in a local variable Dat.
  • the extractor 12 cleans the variable Dat by means of a Clean() function, in particular to remove the URL of the resource on the CDN server and the data separators in the URL, and cuts the result in chunks into a Dat2Conv[] array.
  • the Dat2Conv[] array is then traversed using a Conv() function to convert a given input to a unique number. This conversion is performed by accessing a conversion table comprising two columns. One of the columns contains text strings, and the other a number.
  • the Conv() function searches for the input text of the Dat2Conv[] array and returns the corresponding number if this text is present. If the text is not present, then a pseudo-random generator is used to determine a number for that text, and this double entry is added to the two-column table. Finally, the numbers corresponding to the entries of the Dat2Conv[] array are returned in a ConvDat variable in which the numbers are separated by a separator, for example “; " Or " # ".
  • a Wrt() function writes the ConvDat variable to a row of a relational database table.
  • This operation of the extractor 12 is particularly interesting because it is easy to implement by an ETL, and produces a form of encoding of each transparent request into a sequence of numbers.
  • this type of data is particularly easy to manipulate in extraction, and searches are inexpensive in terms of calculation.
  • the mechanism can directly calculate the time that has elapsed between the first interaction and the second, and transmit this information in the transparent request.
  • the logging server may include routines that automatically calculate certain composite indicators in the database, such as the average time for the indices just described, the average number of clicks per hour / day / other unit of time on each element or on a subset thereof, etc.
  • the Internet navigation tracking system 2 makes it possible to offer an enriched interface to the designers, who can access an enriched version of the web pages which makes it possible to display for each element all the relevant information in the database. relational data, instantly.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

Un système de suivi de navigation Internet comprend un serveur web (4) agencé pour fournir au moins une page web dans laquelle certains au moins des éléments associés au suivi de navigation sont codés dans la page web par un code CSS, la page web comprenant un mécanisme de détection d'interaction à journaliser, lequel mécanisme est agencé, lorsqu'un type d'interaction à journaliser est détecté, pour envoyer le code CSS associé à l'élément concerné avec au moins un indicateur de l'interaction détectée à un serveur de journalisation d'interactions (6). Le serveur de journalisation d'interactions (6) comprend une mémoire (10) d'entrée agencée pour recevoir les codes CSS associés à un élément concerné et l'au moins un indicateur de l'interaction détectée et un extracteur (12) agencé pour analyser chaque code CSS associé à un élément concerné et l'au moins un indicateur de l'interaction détectée, les découper en morceaux, encoder certains au moins des morceaux sous la forme d'un nombre, et stocker la suite résultante de nombres encodant les morceaux dans une base de données.

Description

Description
Titre :
SYSTEME DE SUM D'INTERACTIONS SUR UNE PAGE INTERNET
L’invention concerne le suivi de navigation Internet, et en particulier le suivi de navigation ou activité au sein d’un site et au sein des pages d’un site.
Les concepteurs de sites web ont accès à une quantité limitée de données leur permettant de quantifier la qualité des sites qu’ils conçoivent. Historiquement, leur principale source d’information était la mesure d’audience, via le comptage de pages.
Pour enrichir ces données, certaines solutions ont été développées afin d’essayer de systématiser la récupération de la plupart des opérations d’un utilisateur au sein d’un site, y compris au sein d’une page.
Cependant, ces solutions posent plusieurs problèmes. Tout d’abord, la solution ne doit pas générer de surcharge côté serveur. En effet, suivre toutes les interactions d’un utilisateur avec une page est une tâche génératrice d’une quantité importante de données qui peut poser des problèmes conséquents en termes de charge réseau et serveur.
Pour contourner ce problème, il est connu de référencer les objets d’une page web par son ordre d’apparition dans le code. Les données de suivi de navigation sont ensuite remontées sur la base de cet ordre. Le problème de ces solutions est qu’en l’absence d’un taggage spécifique, dès que la structure de la page est perdue, ce sont toutes les données du passé qui perdent leur pertinence. Le coût est donc déporté sur l’entretien des pages web et leur conception.
L’invention vient améliorer la situation. À cet effet, elle propose un système de suivi de navigation Internet comprenant un serveur web agencé pour fournir au moins une page web dans laquelle certains au moins des éléments associés au suivi de navigation sont codés dans la page web par un code CSS, la page web comprenant un mécanisme de détection d’interaction à journaliser, lequel mécanisme est agencé, lorsqu’un type d’interaction à journaliser est détecté, pour envoyer le code CSS associé à l’élément concerné avec un indicateur de l’interaction détectée à un serveur de journalisation d’interactions. Le serveur de journalisation d’interactions comprend une mémoire d’entrée agencée pour recevoir les codes CSS associés à un élément concerné et au moins un indicateur de l’interaction détectée, et un extracteur agencé pour analyser chaque code CSS associé à un élément concerné et l’au moins un indicateur de l’interaction détectée, les découper en morceaux, encoder certains au moins des morceaux sous la forme d’un nombre, et stocker la suite résultante de nombres encodant les morceaux dans une base de données.
Ce dispositif est particulièrement avantageux car il permet, d’offrir un système qui ne nécessite pas de modification du code de la page web, qui systématise le suivi de navigation sur tous les éléments, et qui permet une analyse en temps réel des données sans surcoût car la base de données est structurée avec les données du code de la page web, qui sont donc maîtrisées avec la conception de celle-ci.
Selon divers modes de réalisation, l’invention peut présenter une ou plusieurs des caractéristiques suivantes :
- le serveur de journalisation comprend un serveur de réseau de diffusion de contenu, et dans lequel la mémoire d’entrée est une mémoire de journalisation du serveur de réseau de diffusion de contenu,
- l’extracteur est un extracto-chargeur,
- l’extracteur est en outre agencé pour stocker la suite de nombres encodant les morceaux composant le code CSS associé à l’élément concerné avec un indicateur de l’interaction détectée dans une ligne d’une table de la base de données, chaque nombre étant stocké dans une colonne distincte,
- l’extracteur est en outre agencé pour stocker les couples associant un morceau à un nombre dans une table de la base de données à deux colonnes,
- l’extracteur est agencé pour chercher un morceau dans table de la base de données à deux colonnes pour récupérer le nombre correspondant, et, lorsque le morceau est absent, pour générer un nombre et créer une nouvelle ligne avec le morceau et le nombre généré,
- le mécanisme de détection est mis en œuvre par du code JavaScript inclus dans la page web, - le mécanisme de détection émet une requête de contenu vers le serveur de de réseau de diffusion de contenu, lequel contenu présente un poids inférieur à Iko, et dans lequel ladite requête contient comme paramètres au moins l’URL de la page web sur laquelle l’interaction a été détectée, le code CSS de l’élément concerné et un indicateur de l’interaction détectée,
- le mécanisme de détection est agencé pour détecter une interaction dans le groupe comprenant l’affichage d’une page, le clic simple, le double clic, la pression longue, le toucher rapide et le toucher long, et
- le mécanisme de détection comprend une fonction d’enrichissement agencée pour détecter que le type d’interaction d’une interaction détectée est tel que deux interactions présentant chacune un type d’interaction choisi ont été détectées sur la même page web sans changement de la page, pour calculer une durée à partir de marqueurs de temps associés à ces deux interactions, et pour retourner cette durée avec le code CSS associé à l’élément concerné avec un indicateur de la deuxième interaction détectée.
D’autres caractéristiques et avantages de l’invention apparaîtront mieux à la lecture de la description qui suit, tirée d’exemples donnés à titre illustratif et non limitatif, tirés des dessins sur lesquels :
- la figure 1 représente un schéma générique d’un système de suivi de navigation Internet selon l’invention,
- la figure 2 représente un exemple d’une fonction mise en œuvre par l’extracteur de la figure 1.
Les dessins et la description ci-après contiennent, pour l'essentiel, des éléments de caractère certain. Ils pourront donc non seulement servir à mieux faire comprendre la présente invention, mais aussi contribuer à sa définition, le cas échéant.
La figure 1 représente un diagramme générique d’un système de suivi de navigation Internet 2 selon l’invention. Le système de suivi de navigation Internet personnalisé 2 comprend dans l’exemple décrit ici un serveur web 4 et un serveur de journalisation 6. Le serveur web 4 est agencé pour fournir des contenus web, en particulier des pages web à un ou plusieurs dispositifs 8 qui sont connectés à Internet. Le serveur de journalisation 6 comprend une mémoire 10 et un extracteur 12. Dans l’exemple décrit ici, la mémoire 10 comprend une mémoire d’entrée et une base de données de journalisation qui sera décrite plus bas. Toujours dans l’exemple décrit ici, le serveur de journalisation 6 est un serveur de réseau de diffusion de contenu (ou serveur CDN pour « Content distribution network server » en anglais), et l’extracteur 12 est un extracto-chargeur (« Extract- transform-load » ou « ETL » en anglais). Comme on le verra plus bas, le rôle de l’ETL est de transformer les données de suivi de navigation reçues par le serveur CDN pour les enregistrer dans la base de données de journalisation qui est une base de données relationnelle. Dans l’exemple décrit ici, cette base de données est stockée dans le même espace que la mémoire d’entrée. En variante, les données de navigation pourraient être stockées dans des espaces distincts. Dans l’exemple décrit ici, l’ETL fait partie du serveur CDN. En variante, l’ETL pourrait être mis en œuvre dans un autre serveur ou ressource de calcul.
La mémoire 10 peut être tout type de stockage de données propre à recevoir des données numériques : disque dur, disque dur à mémoire flash, mémoire flash sous toute forme, mémoire vive, disque magnétique, stockage distribué localement ou dans le cloud, etc. Les données calculées par le dispositif peuvent être stockées sur tout type de mémoire similaire à la mémoire 4, ou sur celle-ci. Ces données peuvent être effacées après que le dispositif a effectué ses tâches ou conservées.
L’extracteur 12 accède directement ou indirectement à la mémoire d’entrée. Il peut être réalisé sous la forme d’un code informatique approprié exécuté sur un ou plusieurs processeurs. Par processeur, il doit être compris tout processeur adapté aux calculs décrits plus bas. Un tel processeur peut être réalisé de toute manière connue, sous la forme d’un microprocesseur pour ordinateur personnel, d’une puce dédiée de type FPGA ou SoC, d’une ressource de calcul sur une grille ou dans le cloud, d’une grappe de processeurs graphiques (GPUs), d’un microcontrôleur, ou de toute autre forme propre à fournir la puissance de calcul nécessaire à la réalisation décrite plus bas. Un ou plusieurs de ces éléments peuvent également être réalisés sous la forme de circuits électroniques spécialisés tel un ASIC. Une combinaison de processeur et de circuits électroniques peut également être envisagée. Le fonctionnement du suivi de navigation est le suivant. Un dispositif 8 envoie une requête au serveur web 4 pour consulter une page web Page.html. Dans cette page web, les éléments à afficher sont encodés avec du code CSS pour la mettre en forme. En plus des codes CSS, la page web Page.html contient un code Javascript qui met en œuvre un mécanisme de détection d’interaction à journaliser. Ce mécanisme est agencé pour détecter qu’un utilisateur interagit avec un élément de la page web et que cette interaction doit être journalisée. Par exemple, cette interaction peut être l’affichage de la page (évènement « Pageview »), un clic sur un élément (clic simple, long, double, pression longue, toucher rapide, toucher long, etc...), un survol d’un évènement (évènement « Mouseover »), etc. Le mécanisme peut être agencé pour détecter toutes les interactions possibles sur la page web ou seulement un sous-ensemble de celles-ci, selon le degré de journalisation souhaité.
Lorsqu’une de ces interactions est détectée, le code JavaScript déclenche une requête silencieuse Int_Dat vers le serveur CDN. Le terme de requête silencieuse est utilisé car cette requête vise un contenu qui n’a pas d’intérêt pour le dispositif 8, et dont le résultat doit rester transparent pour ce dernier. Ainsi, dans l’exemple décrit ici, cette requête vise une image qui contient un unique pixel (c’est-à-dire une image de dimension 1 pixel* 1 pixel) et dont l’affichage ne pourra pas se voir. La requête Int Dat contient donc l’adresse sur le serveur CDN de cette ressource, mais également toutes les données d’intérêt pour la journalisation. Pour cela, ces données sont passées en tant que paramètres de la requête. Avantageusement, la ressource côté serveur de journalisation pèsera moins de Iko, ce qui permet de préserver la bande passante, et d’offrir une ressource qui, même si elle est affichée, ne sera pas perçue par l’utilisateur.
Ci-dessous, un exemple de l’adresse visée par la requête sur le serveur CDN. https://8vhgfgcwsnjp.air360tracker.net/i?a=8vhgfgcwsnjp&d=dc4912ea8f9b966fa3860 81cbfe8e46e&s=648d8686-fa31-4d55-bd04-075294e3155c-1632908375& p=web&t=1632909753.266&et=pv&el=Pageview&wu=https%3A%2P%2Pbilletterie.fr %2P&wt=Billetterie&wr=https%3A%2P%2Fbilletterie.fr%2Pcontent%2P168- billetterie-europa-league-21 -22&web_i= 1 Dans cette requête, on voit : l’adresse de la ressource sur le serveur CDN : 8vhgfgcwsnjp.air360tracker.net/i?a=8vhgfgcwsnjp,
- l’identifiant d’utilisateur : dc4912ea8f9b966fa386081cbfe8e46e,
- le code CSS de l’élément concerné : p=web
- l’identifiant de session : 648d8686-fa31-4d55-bd04-075294e3155c- 1632908375,
- le type d’interaction et son marqueur de temps : Pageview ; 1632909753.266,
- l’URL de la page web d’origine : https%3A%2F%2Fbilletterie.fr%2F&wt=Billetterie l’URL de la page web de destination du lien qui été cliqué : https%3A%2F%2Fbilletterie.fr%2Fcontent%2F168-billetterie-europa-league-21-22.
Cette requête, lorsqu’elle est reçue par le serveur CDN, est stockée dans un journal qui constitue la mémoire d’entrée. Il apparaît ici que l’utilisation d’un serveur CDN est particulièrement intéressante. En effet, elle permet d’utiliser la fonction de journalisation des requêtes dont sont munis tous les serveurs CDN. De plus, ceux-ci sont naturellement faits pour gérer des charges d’accès très importantes, ce qui signifie que le système 2 peut servir plusieurs centaines de milliers d’utilisateurs simultanément.
En outre, l’utilisation d’une requête transparente fait que d’une part, l’utilisateur n’est pas impacté par la journalisation de ses interactions, et que, d’autre part, l’URL d’appel est un vecteur idéal pour transporter les données à journaliser. Enfin, l’utilisation du code CSS associé à l’élément journalisé est très avantageuse car elle permet une identification aisée des éléments par leurs propriétés CSS, sans nécessiter de traitement particulier côté utilisateur consultant la page web, ou à la conception de la page.
Une fois cette requête reçue dans la mémoire d’entrée 10, l’extracteur 12 vient la traiter pour stocker les données dans la base de données de journalisation. Dans l’exemple décrit ici, cela est réalisé de manière périodique, par exemple l’extracteur 12 accède à la mémoire d’entrée toutes les minutes. Cette désynchronisation est intéressante car elle permet au système 2 de supporter des pics de connexion importants sans avoir à réaliser une mise à l’échelle ou risquer une perte de service, tout en restant temps réel dans la plupart des situations. Ainsi, les expérimentations de la Demanderesse ont montré qu’avec un serveur CDN classique, même en cas de pics à plusieurs centaines de milliers de connexions par minute pendant une dizaine de minutes, l’extracteur 12 arrive à dépiler la mémoire d’entrée en 30 minutes.
La figure 2 représente un exemple de fonctionnement de l’extracteur 12 pour traiter les données dans la mémoire d’entrée 10.
Dans une opération 200, l’extracteur 12 récupère une entrée de la mémoire d’entrée 10 par l’exécution d’une fonction Pop() qui dépile cette dernière et stocke le résultat dans une variable locale Dat.
Si l’on reprend l’exemple mentionné plus haut, la variable locale Dat contient donc l’URL entière https://8vhgfgcwsnjp.air360tracker.net/i?a=8vhgfgcwsnjp&d=dc4912ea8f9b966fa3860 81cbfe8e46e&s=648d8686-fa31-4d55-bd04-075294e3155c-1632908375& p=web&t=1632909753.266&et=pv&el=Pageview&wu=https%3A%2F%2Fbilletterie.fr %2F&wt=Billetterie&wr=https%3A%2F%2Fbilletterie.fr%2Fcontent%2F168- billetterie-europa-league-21 -22&web_i= 1
Ensuite, dans une opération 210, l’extracteur 12 nettoie la variable Dat au moyen d’une fonction Clean(), notamment pour enlever l’URL de la ressource sur le serveur CDN et les séparateurs de données dans l’URL, et découpe le résultat en morceaux dans un tableau Dat2Conv[].
A partir de l’URL ci-dessus, le tableau Dat2Conv[] obtenu est comme suit :
Figure imgf000009_0001
Figure imgf000010_0001
Le tableau Dat2Conv[] est ensuite parcouru au moyen d’une fonction Conv() pour convertir une entrée donnée en un nombre unique. Cette conversion est réalisée en accédant à une table de conversion comprenant deux colonnes. L’une des colonnes contient des chaînes de texte, et l’autre un nombre. La fonction Conv() recherche le texte en entrée du tableau Dat2Conv[] et retourne le nombre correspondant si ce texte est présent. Si le texte n’est pas présent, alors un générateur pseudo-aléatoire est utilisé pour déterminer un nombre pour ce texte, et cette double entrée est ajoutée à la table à deux colonnes. Enfin, les nombres correspondant aux entrées du tableau Dat2Conv[] sont retournés dans une variable ConvDat dans laquelle les nombres sont séparés par un séparateur, par exemple « ; » ou « # ».
Selon une première variante, toutes les entrées du tableau Dat2Conv[] sont transformées par la fonction Conv(). Selon une seconde variante, certains éléments de nature unique comme l’identifiant utilisateur ne sont pas convertis et seront stockés à l’identique dans la base de données relationnelle.
Enfin, dans une opération 230, une fonction Wrt() écrit la variable ConvDat dans une ligne d’une table de la base de données relationnelle.
Ce fonctionnement de l’extracteur 12 est particulièrement intéressant car il est aisé à mettre en œuvre par un ETL, et produit une forme d’encodage de chaque requête transparente en une suite de nombres. Or ce type de données est particulièrement aisé à manipuler en extraction, et les recherches sont peu coûteuses en termes de calcul.
Ainsi, il devient possible de manière industrialisable de journaliser la totalité des évènements de navigation d’une quantité illimitée de dispositifs, avec une disponibilité temps réel, et d’une manière qui rend l’extraction des données d’autant plus aisée que le découpage en morceaux (« chunks » en anglais) de l’opération 210 rend celle-ci particulièrement agile. En effet, en concevant de manière réfléchie les entrées CSS des pages web, il devient possible de faire non seulement de l’analyse sur une page web, mais également sur tout un site. Il suffit pour cela de nommer des éléments que l’on souhaite analyser simultanément de la même manière : la partie de ces éléments qui correspond au nom dans le code CSS sera encodée avec le même nombre, et il suffira de chercher ce nombre pour récupérer tous les évènements associés à ceux-ci. Dans le même esprit, la combinaison de plusieurs nombres entre eux reviendra à une requête sur un sous- ensemble d’éléments, etc.
Il apparaît donc que, prises seules, chacune des caractéristiques décrite ci-dessus apporte un avantage conséquent par rapport à l’art antérieur. Ainsi, il serait possible d’utiliser un autre type de serveur qu’un serveur CDN, ou un autre outil qu’un ETL, ou encore utiliser un autre véhicule qu’une requête transparente pour transmettre les données à encoder. Les éléments les plus cruciaux sont l’utilisation des données de code CSS, découpées en morceaux et encodées en série de nombres qui permet d’obtenir l’effet technique principal. Les spécificités visées plus haut permettent d’améliorer encore le résultat obtenu.
Il est en outre possible d’enrichir encore le fonctionnement du système 2 en combinant certains évènements côté dispositif.
En effet, lorsque deux évènements se suivent sans changement de page (par exemple, chargement de la page, puis clic sur un élément particulier, qui peut provoquer un changement de page ou marquer un intérêt particulier pour un élément chez l’utilisateur), le mécanisme peut calculer directement le temps qui s’est écoulé entre la première interaction et la deuxième, et transmettre cette information dans la requête transparente. Cela permet de créer des indicateurs composites sans alourdir la charge serveur, avec un coût imperceptible côté client. En outre, le serveur de journalisation peut comprendre des routines qui calculent de manière automatique certains indicateurs composites dans la base de données, comme le temps moyen pour les indices qu’on vient de décrire, le nombre moyen de clics par heure /jour / autre unité de temps sur chaque élément ou sur un sous-ensemble de ceux-ci, etc.
Grâce à tout ce qui précède, le système de suivi de navigation Internet 2 permet d’offrir une interface enrichie aux concepteurs, qui peuvent accéder à une version enrichie des pages web qui permet d’afficher pour chaque élément toutes les informations pertinentes dans la base de données relationnelles, de manière instantanée.

Claims

Revendications
[Revendication 1] Système de suivi de navigation Internet comprenant un serveur web
(4) agencé pour fournir au moins une page web dans laquelle certains au moins des éléments associés au suivi de navigation sont codés dans la page web par un code CSS, la page web comprenant un mécanisme de détection d’interaction à journaliser, lequel mécanisme est agencé, lorsqu’un type d’interaction à journaliser est détecté, pour envoyer le code CSS associé à l’élément concerné avec au moins un indicateur de l’interaction détectée à un serveur de journalisation d’interactions (6), le serveur de journalisation d’interactions (6) comprenant une mémoire (10) d’entrée agencée pour recevoir les codes CSS associés à un élément concerné et l’au moins un indicateur de l’interaction détectée et un extracteur (12) agencé pour analyser chaque code CSS associé à un élément concerné et l’au moins un indicateur de l’interaction détectée, les découper en morceaux, encoder certains au moins des morceaux sous la forme d’un nombre, et stocker la suite résultante de nombres encodant les morceaux dans une base de données.
[Revendication 2] Système de suivi de navigation Internet selon la revendication 1, dans lequel le serveur de journalisation (6) comprend un serveur de réseau de diffusion de contenu, et dans lequel la mémoire (10) d’entrée est une mémoire de journalisation du serveur de réseau de diffusion de contenu.
[Revendication 3] Système de suivi de navigation Internet selon la revendication 1 ou 2, dans lequel l’extracteur (12) est un extracto-chargeur.
[Revendication 4] Système de suivi de navigation Internet selon l’une des revendications précédentes, dans lequel l’extracteur (12) est en outre agencé pour stocker la suite de nombres encodant les morceaux composant le code CSS associé à l’élément concerné avec un indicateur de l’interaction détectée dans une ligne d’une table de la base de données, chaque nombre étant stocké dans une colonne distincte.
[Revendication 5] Système de suivi de navigation Internet selon l’une des revendications précédentes, dans lequel l’extracteur (12) est en outre agencé pour stocker les couples associant un morceau à un nombre dans une table de la base de données à deux colonnes.
[Revendication 6] Système de suivi de navigation Internet selon la revendication 5, dans lequel l’extracteur (12) est agencé pour chercher un morceau dans table de la base de données à deux colonnes pour récupérer le nombre correspondant, et, lorsque le morceau est absent, pour générer un nombre et créer une nouvelle ligne avec le morceau et le nombre généré.
[Revendication 7] Système de suivi de navigation Internet selon l’une des revendications précédentes, dans lequel le mécanisme de détection est mis en œuvre par du code JavaScript inclus dans la page web.
[Revendication 8] Système de suivi de navigation Internet selon la revendication 2 ensemble avec la revendication 7, dans lequel le mécanisme de détection émet une requête de contenu vers le serveur de de réseau de diffusion de contenu, lequel contenu présente un poids inférieur à Iko, et dans lequel ladite requête contient comme paramètres au moins l’URL de la page web sur laquelle l’interaction a été détectée, le code CSS de l’élément concerné et un indicateur de l’interaction détectée.
[Revendication 9] Système de suivi de navigation Internet selon l’une des revendications précédentes, dans lequel le mécanisme de détection est agencé pour détecter une interaction dans le groupe comprenant l’affichage d’une page, le clic simple, le double clic, la pression longue, le toucher rapide et le toucher long.
[Revendication 10] Système de suivi de navigation Internet selon l’une des revendications précédentes, dans lequel le mécanisme comprend une fonction d’enrichissement agencée pour détecter que le type d’interaction d’une interaction détectée est tel que deux interactions présentant chacune un type d’interaction choisi ont été détectées sur la même page web sans changement de la page, pour calculer une durée à partir de marqueurs de temps associés à ces deux interactions, et pour retourner cette durée avec le code CSS associé à l’élément concerné avec un indicateur de la deuxième interaction détectée.
PCT/FR2022/052028 2021-11-02 2022-10-25 Systeme de suivi d´interactions sur une page internet WO2023079229A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2111635A FR3128802B1 (fr) 2021-11-02 2021-11-02 Système de suivi de navigation Internet
FRFR2111635 2021-11-02

Publications (1)

Publication Number Publication Date
WO2023079229A1 true WO2023079229A1 (fr) 2023-05-11

Family

ID=79269870

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2022/052028 WO2023079229A1 (fr) 2021-11-02 2022-10-25 Systeme de suivi d´interactions sur une page internet

Country Status (3)

Country Link
US (2) US11451461B1 (fr)
FR (1) FR3128802B1 (fr)
WO (1) WO2023079229A1 (fr)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11663615B1 (en) * 2022-07-29 2023-05-30 Content Square SAS Pageview payload storage and replay system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120173966A1 (en) * 2006-06-30 2012-07-05 Tea Leaf Technology, Inc. Method and apparatus for intelligent capture of document object model events
US20130132833A1 (en) * 2008-04-15 2013-05-23 Foresee Results, Inc. Systems and Methods For Remote Tracking And Replay Of User Interaction With A Webpage
US20140258372A1 (en) * 2013-03-11 2014-09-11 Say Media, Inc Systems and Methods for Categorizing and Measuring Engagement with Content

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110191676A1 (en) * 2010-01-29 2011-08-04 Microsoft Corporation Cross-Browser Interactivity Recording, Playback, and Editing
US20120311040A1 (en) * 2011-06-02 2012-12-06 Dror Sherzer Real-time browsing monitoring
US10061860B2 (en) * 2011-07-29 2018-08-28 Oath Inc. Method and system for personalizing web page layout
US9251287B2 (en) * 2011-08-26 2016-02-02 International Business Machines Corporation Automatic detection of item lists within a web page
US20130268516A1 (en) * 2012-04-06 2013-10-10 Imran Noor Chaudhri Systems And Methods For Analyzing And Visualizing Social Events
US8639559B2 (en) * 2012-04-09 2014-01-28 International Business Machines Corporation Brand analysis using interactions with search result items
US20170091270A1 (en) * 2015-09-30 2017-03-30 Linkedln Corporation Organizational url enrichment
US10587696B2 (en) * 2016-07-06 2020-03-10 Nasdaq, Inc. Systems and methods for monitoring cross-domain applications in web environments
US11210353B2 (en) * 2017-06-26 2021-12-28 Nasdaq, Inc. Systems and methods for enterprise web application dashboard management
US11729247B2 (en) * 2020-09-24 2023-08-15 Capital One Services, Llc Systems and methods for decentralized detection of software platforms operating on website pages

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120173966A1 (en) * 2006-06-30 2012-07-05 Tea Leaf Technology, Inc. Method and apparatus for intelligent capture of document object model events
US20130132833A1 (en) * 2008-04-15 2013-05-23 Foresee Results, Inc. Systems and Methods For Remote Tracking And Replay Of User Interaction With A Webpage
US20140258372A1 (en) * 2013-03-11 2014-09-11 Say Media, Inc Systems and Methods for Categorizing and Measuring Engagement with Content

Also Published As

Publication number Publication date
US11736376B2 (en) 2023-08-22
US20230138676A1 (en) 2023-05-04
US11451461B1 (en) 2022-09-20
FR3128802B1 (fr) 2024-01-19
FR3128802A1 (fr) 2023-05-05

Similar Documents

Publication Publication Date Title
CN108230024B (zh) 基于线索收集的广告投放引擎系统
US7587486B2 (en) Click stream analysis
Vaughan et al. Web traffic and organization performance measures: Relationships and data sources examined
EP2105002A2 (fr) Systeme et procede de traçabilite de contenus sur internet
CA2699397C (fr) Procede d'interrogation d'une base de donnees et dispositif d'interrogation
CN108052679A (zh) 一种基于hadoop的日志分析系统
WO2023079229A1 (fr) Systeme de suivi d´interactions sur une page internet
CN112418941A (zh) 一种基于实时流的资源人气计算方法、系统及存储介质
CN110019152A (zh) 一种大数据清洗方法
Van Caillie La détection des signaux financiers annonciateurs de faillite en contexte PME: une approche méthodologique spécifique
Amahowé et al. Analyse spatio-temporelle de la faune et des pressions anthropiques dans le ranch de Gibier de Nazinga au Burkina Faso
EP2880557B1 (fr) Procédé de traitement de données de connexion d'une plateforme d'un site internet
EP2161683A1 (fr) Procédé et système de détermination d'un profil comportemental d'internaute
FR2960371A1 (fr) Procede et dispositif d'analyse de donnees interceptees sur un reseau ip pour la surveillance de l'activite des utilisateurs d'un site web
Keita Big Data et Technologies de Stockage et de Traitement des Données Massives: Comprendre les bases de l’écosystème HADOOP (HDFS, MAPREDUCE, YARN, HIVE, HBASE, KAFKA et SPARK)
Bai et al. Research of an algorithm based on web usage mining
Rathod Customizable web log mining from web server log
Yeo The Impact of Mergers and Acquisitions Announcement on Share Prices: Evidence from Malaysia
Hauet et al. Handicap, incapacités, dépendance et déplacements
FR2902907A1 (fr) Procede de recherche d'informations sur un reseau intranet, extranet, internet ou toute autre source de diffusion d'informations numeriques et moteur de recherche pour la mise en oeuvre dudit procede
EP2880558B1 (fr) Procédé de traitement de données pour analyse situationnelle
Barberis et al. Integration of the Eventlndex with other ATLAS systems
Sarkar et al. Hit Count Analysis using Big Data Hadoop
EP1807778A1 (fr) Procede et systeme exploitant le codage de cookie pour repartir des informations relatives a des internautes
Djemaci Quelle distance optimale pour résoudre le syndrome Nimby dans les villes Algériennes? Cas de service de déchets

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22813656

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2022813656

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2022813656

Country of ref document: EP

Effective date: 20240603